質問: 加速度とジャイロの測定したデータから位置推定するためにクォータニオンを用いて推定する方法を検討しております。 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,gx*dt/2,gy*dt/2,gz*dt/2) Xn Xn+1を求める式は Xn+1=Xn*quarternion(1,gx*dt/2,gy*dt/2,gz*dt/2)でXn+1を出力することが可能。 Quint=np.array([[1,-gx*dt/2,-gy*dt/2,-gz*dt/2], [gy*dt/2,1,gz*dt/2,-gy*dt/2], [gy*dt/2,-gz*dt/2,1,gx*dt/2], [gz*dt/2,gy*dt/2,-gx*dt/2,1]]) X[k+1]=Quint*X[k].Tをクォータニオン積として計算して、位置推定を行なって行きたい。 4元数の設定になっていないため、勉強して今後やりたい方針のみですが記載しております。
回答: すみません自己解決いたしました。 なぜか先ほどはうまくいかなかったのですが、何度かためしているとpip install quaternionでインストールすることができました。 失礼いたしました。