質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1316閲覧

python3.におけるQuarternionを用いるための4元数への変換方法について

yohehe

総合スコア48

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/06/29 14:28

編集2018/06/29 14:32

加速度とジャイロの測定したデータから位置推定するためにクォータニオンを用いて推定する方法を検討しております。
python3.6でQuarternionを作成するメソッドがインストールできなく、自分で組み立てていくしかないのでしょうか?
ネットや本で色々と調べましたが、
pip install Quarternion および pip install pyquaternion
はインストールできない。ディープラーニングなども用いたいため、可能であればバージョンはこのままで行きたいと考えていたのですが。

C#,unityでQuaternionが使われている記事をよく見かけるのですが、c#をの手法をpythonにもってくることなどは難しいかなど検討しています。

現在作りたいプログラムの流れ、
加速度とジャイロセンサーを測定し、quaternionによる回転行列を計算し、センサーの位置推定を行いたい。
加速度xyz、gyroのデータは測定可能。


現在の課題;pythonで4元数の扱いが全くできない。jをつければ複素数として認識するのですが、4元数にはできないです。pythonの複素数のドキュメントも調べましたが、それらしい記事がないと思われる。

今検討しているプログラムの流れをいかに記載。

初期位置を設定する。
shokichi=np.array(1,0,0,0) (w,x,y,z)の順の4元数とする。

取得した加速度のセンサーの値をacX,acY,acZとする[単位は
G]。gyroセンサーの値を(gx,gy,gz)とする[単位rad/sec]。
X=[w,qx,qy,qz]
30hzとするとdt=0.2となる?そうすると

Q=np.array(1,gxdt/2,gydt/2,gzdt/2)
Xn Xn+1を求める式は Xn+1=Xn
quarternion(1,gxdt/2,gydt/2,gzdt/2)でXn+1を出力することが可能。
Quint=np.array([[1,-gx
dt/2,-gydt/2,-gzdt/2],
[gydt/2,1,gzdt/2,-gydt/2],
[gy
dt/2,-gzdt/2,1,gxdt/2],
[gzdt/2,gydt/2,-gxdt/2,1]])
X[k+1]=Quint
X[k].Tをクォータニオン積として計算して、位置推定を行なって行きたい。

4元数の設定になっていないため、勉強して今後やりたい方針のみですが記載しております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すみません自己解決いたしました。
なぜか先ほどはうまくいかなかったのですが、何度かためしているとpip install quaternionでインストールすることができました。

失礼いたしました。

投稿2018/06/29 14:58

yohehe

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問