unityからpythonに数値を与えてグラフ化する方法
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 1,521
初めまして。
GetLocalSpaceOrientations()の数値を( (0.0, 0.0, 0.0, 0.0) のクウォータ二オンが出力されますが数値として考えるため深く考えなくていいです。)
現在consoleの出力内容をテキストにしてからpythonで数値を統計化してと考えていたのですが、unityから直接できることを知り調べたのですがわからなくて止まっています。
またテキストに書き込むこともできていないため、プログラムが中途半端になっています。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Enflux.SDK.Core;
using UnityEngine.UI;
using System;
using System.Linq;
using Enflux.Common.DataTypes;
using Enflux.SDK.Core.Devices;
using Enflux.SDK.DataTypes;
using Enflux.SDK.Extensions;
using Enflux.SDK.Utils;
using Enflux.Shim.Utils;
using System.IO;
public class math : MonoBehaviour
{
// Assign these in the editor.
public EnfluxManager EnfluxManager;
public Humanoid Humanoid;
// Retrieve limb orientations as Unity local space quaternions.
private void GetLocalSpaceOrientations()
{
var chest = Humanoid.LocalOrientations.Chest.Orientation;
var leftUpperArm = Humanoid.LocalOrientations.LeftUpperArm.Orientation;
var leftLowerArm = Humanoid.LocalOrientations.LeftLowerArm.Orientation;
var rightUpperArm = Humanoid.LocalOrientations.RightUpperArm.Orientation;
var rightLowerArm = Humanoid.LocalOrientations.RightLowerArm.Orientation;
var pelvis = Humanoid.LocalOrientations.Pelvis.Orientation;
var leftUpperLeg = Humanoid.LocalOrientations.LeftUpperLeg.Orientation;
var leftLowerLeg = Humanoid.LocalOrientations.LeftLowerLeg.Orientation;
var rightUpperLeg = Humanoid.LocalOrientations.RightUpperLeg.Orientation;
var rightLowerLeg = Humanoid.LocalOrientations.RightLowerLeg.Orientation;
}
// Retrieve limb orientations as real world NED (North-East-Down) space quaternions.
private string GetNedSpaceOrientations()
{
var chest = EnfluxManager.NedOrientations.Chest.Orientation;
var leftUpperArm = EnfluxManager.NedOrientations.LeftUpperArm.Orientation;
var leftLowerArm = EnfluxManager.NedOrientations.LeftLowerArm.Orientation;
var rightUpperArm = EnfluxManager.NedOrientations.RightUpperArm.Orientation;
var rightLowerArm = EnfluxManager.NedOrientations.RightLowerArm.Orientation;
var pelvis = EnfluxManager.NedOrientations.Pelvis.Orientation;
var leftUpperLeg = EnfluxManager.NedOrientations.LeftUpperLeg.Orientation;
var leftLowerLeg = EnfluxManager.NedOrientations.LeftLowerLeg.Orientation;
var rightUpperLeg = EnfluxManager.NedOrientations.RightUpperLeg.Orientation;
var rightLowerLeg = EnfluxManager.NedOrientations.RightLowerLeg.Orientation;
/* Debug.Log("胸 " + chest);
Debug.Log("<color=blue>" + "左肘 " + leftUpperArm + "</color>");
Debug.Log("<color=blue>" + "左手首 " + leftLowerArm + "</color>");
Debug.Log("<color=red>" + "右肘 " + rightUpperArm + "</color>");
Debug.Log("<color=red>" + "右手首 " + rightLowerArm + "</color>");
*/
return "胸 " + chest + "\n左肘 " + leftUpperArm + "\n左手首 " + leftLowerArm + "\n右肘 " + rightUpperArm + "\n右手首 " + rightLowerArm + "\n\n"+
"\n腰 " + pelvis + "\n左膝 " + leftUpperLeg + "\n左足首 " + leftLowerLeg + "\n右膝 " + rightUpperLeg + "\n右足首 " + rightLowerLeg;
}
void Start()
{
}
private float timeleft;
int log;
void Update()
{
timeleft -= Time.deltaTime;
if (timeleft <= 0.0)
{
timeleft = 1.0f;
log++;
Debug.Log(GetNedSpaceOrientations());
this.GetComponent<Text>().text = GetNedSpaceOrientations();
}
}
/* public void logSave(int num, string txt)
{
StreamWriter sw;
FileInfo fi;
fi = new FileInfo(Application.dataPath + "/FileName.csv");
sw = fi.AppendText();
sw.WriteLine("test output");
sw.Flush();
sw.Close();
}
*/
public void textSave(float GetNedSpaceOrientations)
{
StreamWriter sw = new StreamWriter("../aaaaa.txt", true); //true=追記 false=上書き
sw.WriteLine(GetNedSpaceOrientations);
sw.Flush();
sw.Close();
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.20%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
fiveHundred
2017/12/13 12:12
確かに、前の質問で直接実行できる(http://tkitao.hatenablog.com/entry/2015/05/18/225902のようなものを想定していました)と言いましたが、これはUnityの機能外の内容ですし、そもそもグラフを出力できるかどうか私は分かっておりません。素直にファイルにしてからPythonに読み込ませた方がよいと思いますが、そこまでして直接呼び出したい理由は何でしょうか?
daityann
2017/12/13 12:17
必ずしもそのやり方でやりたいというわけではありませんが、卒業研究で先生からそのやり方でできるからやってみなさいと言われまして。難しい場合はcsvファイルにいったん落としてからpythonを使ったほうがいいですよね?
fiveHundred
2017/12/13 12:27
私もそのように思います。
daityann
2017/12/13 12:58
csvファイルにしようとして。この https://teratail.com/questions/92972 を引用して進めたいのですが書き出しできないのですが、どこを変更すればconsole内容を書き出せますか?すみません初歩的な質問で。
daityann
2017/12/13 13:02
すみませんできました。お手数かけます。
sakura_hana
2017/12/15 13:29
もし質問が解決したなら、どうやったら出来たのかを自己回答してください。まだ解決していない(一部分は出来た)のなら質問内容を編集してください。
daityann
2017/12/15 15:35
sw.WriteLine(stopwatch.Elapsed); の内容を変えるだけでいけました。
sakura_hana
2017/12/15 15:37
回答は回答欄に記入しましょう。(この欄は見ていない人もいます&未回答質問のままになってしまいます)
fiveHundred
2017/12/15 15:46
自己回答したら、その回答をベストアンサーにしておいてください(ベストアンサーにして初めて解決済みの質問として扱われます)。