JP5161498B2 - 姿勢信号演算装置 - Google Patents

姿勢信号演算装置 Download PDF

Info

Publication number
JP5161498B2
JP5161498B2 JP2007160599A JP2007160599A JP5161498B2 JP 5161498 B2 JP5161498 B2 JP 5161498B2 JP 2007160599 A JP2007160599 A JP 2007160599A JP 2007160599 A JP2007160599 A JP 2007160599A JP 5161498 B2 JP5161498 B2 JP 5161498B2
Authority
JP
Japan
Prior art keywords
quaternion
rotation
posture
rotation angle
attitude
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007160599A
Other languages
English (en)
Other versions
JP2008310767A (ja
Inventor
裕 野々村
基弘 藤吉
整 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Toyota Central R&D Labs Inc
Original Assignee
Toyota Motor Corp
Toyota Central R&D Labs Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp, Toyota Central R&D Labs Inc filed Critical Toyota Motor Corp
Priority to JP2007160599A priority Critical patent/JP5161498B2/ja
Publication of JP2008310767A publication Critical patent/JP2008310767A/ja
Application granted granted Critical
Publication of JP5161498B2 publication Critical patent/JP5161498B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、ロボットなどの運動体の姿勢を表す姿勢信号の演算を行う姿勢信号演算装置に関する。
ロボット、産業機器、及び自動車などの運動体の姿勢制御において、運動体の姿勢は姿勢角、姿勢行列、4元数などで表現される。例えば、姿勢角は、直交する3軸(x軸、y軸、及びz軸)の各軸の周りの回転角によって表される。運動体の姿勢角は、姿勢センサ及び画像センサなどのセンサによって検出される。例えば、角速度センサでx軸、y軸、及びz軸それぞれの軸の周りの角速度を検出し、検出した角速度センサの出力を時間積分することで、各軸の周りの角度すなわち姿勢角が得られる。また例えば、加速度センサの出力信号、地磁気センサの出力信号、及びGPS(Global Positioning System)信号などを用いて姿勢角を得ることもある。また例えば、画像センサによって撮像した運動体の画像から得られる位置情報に基づいて運動体の姿勢角を求めることもある。
一般に、姿勢を検出するためのセンサからの出力信号には、制御や表現を乱す周波数成分が含まれていることが多い。例えば、角速度センサの出力信号は、低周波成分にドリフト成分を含むことが多いため、角速度センサの出力を積分することで姿勢角を求めると、低周波成分のドリフト分が蓄積されて、姿勢の誤差が制御の安定性を乱す程度に大きくなることが多い。また例えば、加速度センサの出力信号は、並進加速度及び振動加速度などの外乱によって比較的高い周波数成分に誤差を含む。
姿勢センサの検出誤差を低減する従来技術として、例えば特許文献1には、角速度センサの出力から得られる姿勢を、角速度センサと比較して低周波成分に誤差の少ない加速度センサの出力から得られる姿勢を用いて補正する技術が開示されている。特許文献1に記載の技術では、角速度センサの出力に基づく姿勢と、加速度センサの出力に基づく姿勢と、をそれぞれ姿勢行列の形式で表し、それぞれの姿勢行列をローパスフィルタに通して低域成分を抽出し、両者の低域成分の差分を演算することで、角速度センサの出力に基づく姿勢行列のドリフト分を抽出する。その後、抽出されたドリフト分を表す行列を角速度センサの出力に基づく姿勢行列から減算することで、角速度センサの出力に基づく姿勢のドリフト分を除去する。また、特許文献1には、姿勢を姿勢行列で表す代わりに4元数表記で表して前述と同様の演算を行う技術も開示されている。
特開2007−41733号公報
運動体の姿勢を高精度で検出するために、一般的な姿勢センサと比較して検出誤差の小さい周波数特性を有する姿勢センサを用いて姿勢検出システムを構成することが考えられる。しかしながら、このような高精度の姿勢センサは、通常、一般的な姿勢センサよりも高価で大型であるため、高精度の姿勢センサを用いると、システム全体の高価格化及び大型化を招く。
また、誤差の多い周波数成分を除去するため姿勢センサの出力をデジタルフィルタ処理する場合、姿勢の演算に必要な周波数成分まで除去されたり、デジタルフィルタ処理による位相遅れなどの誤差が生じたりする場合がある。
また、特許文献1に記載の技術では、誤差成分の除去のための演算は、姿勢を表す姿勢行列又は4元数の加減算により行われる。しかしながら、特に姿勢を4元数で表す場合、4元数の加減算によっては運動体の並進が表現されるため、運動体の姿勢の回転に関する誤差成分を適切に除去するのが困難である場合がある。
本発明に係る姿勢信号演算装置は、運動体の姿勢を表す信号の演算を行う姿勢信号演算装置であって、前記運動体の姿勢を表す4元数である入力姿勢4元数に基づいて得られる第1姿勢4元数と、前記運動体の姿勢を表す4元数であって前記第1姿勢4元数と異なる第2姿勢4元数と、を取得し、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果に基づいて得られる4元数を誤差4元数とする誤差演算部と、前記入力姿勢4元数を取得し、前記入力姿勢4元数を前記誤差4元数で除算した結果の4元数を出力姿勢4元数とする出力姿勢4元数演算部と、を備えることを特徴とする。
本発明の1つの態様の姿勢信号演算装置において、前記誤差演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、この回転軸ベクトルVpと、この回転角ηpを所定の定数Kp倍した回転角Kpηpと、によって規定される4元数を倍率回転4元数とする倍率回転演算部と、所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、この回転軸ベクトルViと、この回転角ηiを所定の定数Ki倍した回転角Kiηiと、によって規定される4元数を積算回転4元数とする積算回転演算部と、ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、この回転軸ベクトルVdと、この回転角ηdを所定の定数Kd倍した回転角Kdηdと、によって規定される4元数を差分回転4元数とする差分回転演算部と、を備え、前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数を乗算した結果の4元数を前記誤差4元数とすることが好ましい。
本発明の他の1つの態様の姿勢信号演算装置において、前記誤差演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、この回転軸ベクトルVpと、この回転角ηpを所定の定数Kp倍した回転角Kpηpと、によって規定される4元数を倍率回転4元数とする倍率回転演算部と、所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、この回転軸ベクトルViと、この回転角ηiを所定の定数Ki倍した回転角Kiηiと、によって規定される4元数を積算回転4元数とする積算回転演算部と、ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、この回転軸ベクトルVdと、この回転角ηdを所定の定数Kd倍した回転角Kdηdと、によって規定される4元数を差分回転4元数とする差分回転演算部と、のいずれか1つを備え、前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数のいずれか1つを前記誤差4元数としてもよい。
本発明の他の1つの態様の姿勢信号演算装置において、前記誤差演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、この回転軸ベクトルVpと、この回転角ηpを所定の定数Kp倍した回転角Kpηpと、によって規定される4元数を倍率回転4元数とする倍率回転演算部と、所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、この回転軸ベクトルViと、この回転角ηiを所定の定数Ki倍した回転角Kiηiと、によって規定される4元数を積算回転4元数とする積算回転演算部と、ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、この回転軸ベクトルVdと、この回転角ηdを所定の定数Kd倍した回転角Kdηdと、によって規定される4元数を差分回転4元数とする差分回転演算部と、のいずれか2つを備え、前記倍率回転4元数と前記積算回転4元数とを乗算した結果の4元数、前記倍率回転4元数と前記差分回転4元数とを乗算した結果の4元数、又は、前記積算回転4元数と前記差分回転4元数とを乗算した結果の4元数、を前記誤差4元数としてもよい。
本発明の他の1つの態様の姿勢信号演算装置において、前記誤差演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、前記回転角ηpを所定の定数Kp倍した回転角Kpηpが所定の値の範囲内である場合は、前記回転軸ベクトルVpと前記回転角Kpηpとによって規定される4元数を倍率回転4元数とし、前記回転角Kpηpが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVpと前記所定の値の範囲内の回転角とによって規定される4元数を倍率回転4元数とする倍率回転演算部と、所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、前記回転角ηiを所定の定数Ki倍した回転角Kiηiが前記所定の値の範囲内である場合は、前記回転軸ベクトルViと前記回転角Kiηiとによって規定される4元数を積算回転4元数とし、前記回転角Kiηiが前記所定の値の範囲内でない場合は、前記回転軸ベクトルViと前記所定の値の範囲内の回転角とによって規定される4元数を積算回転4元数とする積算回転演算部と、ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、前記回転角ηdを所定の定数Kd倍した回転角Kdηdが前記所定の値の範囲内である場合は、前記回転軸ベクトルVdと前記回転角Kdηdとによって規定される4元数を差分回転4元数とし、前記回転角Kdηdが前記所定の値の範囲ではない場合は、前記回転軸ベクトルVdと前記所定の値の範囲内の回転角とによって規定される4元数を差分回転4元数とする差分回転演算部と、を備え、前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数を乗算した結果の4元数を前記誤差4元数とすることが好ましい。
本発明の他の1つの態様の姿勢信号演算装置において、前記誤差演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、前記回転角ηpを所定の定数Kp倍した回転角Kpηpが所定の値の範囲内である場合は、前記回転軸ベクトルVpと前記回転角Kpηpとによって規定される4元数を倍率回転4元数とし、前記回転角Kpηpが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVpと前記所定の値の範囲内の回転角とによって規定される4元数を倍率回転4元数とする倍率回転演算部と、所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、前記回転角ηiを所定の定数Ki倍した回転角Kiηiが前記所定の値の範囲内である場合は、前記回転軸ベクトルViと前記回転角Kiηiとによって規定される4元数を積算回転4元数とし、前記回転角Kiηiが前記所定の値の範囲内でない場合は、前記回転軸ベクトルViと前記所定の値の範囲内の回転角とによって規定される4元数を積算回転4元数とする積算回転演算部と、ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、前記回転角ηdを所定の定数Kd倍した回転角Kdηdが前記所定の値の範囲内である場合は、前記回転軸ベクトルVdと前記回転角Kdηdとによって規定される4元数を差分回転4元数とし、前記回転角Kdηdが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVdと前記所定の値の範囲内の回転角とによって規定される4元数を差分回転4元数とする差分回転演算部と、のいずれか1つを備え、前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数のいずれか1つを前記誤差4元数としてもよい。
本発明の他の1つの態様の姿勢信号演算装置において、前記誤差演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、前記回転角ηpを所定の定数Kp倍した回転角Kpηpが所定の値の範囲内である場合は、前記回転軸ベクトルVpと前記回転角Kpηpとによって規定される4元数を倍率回転4元数とし、前記回転角Kpηpが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVpと前記所定の値の範囲内の回転角とによって規定される4元数を倍率回転4元数とする倍率回転演算部と、所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、前記回転角ηiを所定の定数Ki倍した回転角Kiηiが前記所定の値の範囲内である場合は、前記回転軸ベクトルViと前記回転角Kiηiとによって規定される4元数を積算回転4元数とし、前記回転角Kiηiが前記所定の値の範囲内でない場合は、前記回転軸ベクトルViと前記所定の値の範囲内の回転角とによって規定される4元数を積算回転4元数とする積算回転演算部と、ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、前記回転角ηdを所定の定数Kd倍した回転角Kdηdが前記所定の値の範囲内である場合は、前記回転軸ベクトルVdと前記回転角Kdηdとによって規定される4元数を差分回転4元数とし、前記回転角Kdηdが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVdと前記所定の値の範囲内の回転角とによって規定される4元数を差分回転4元数とする差分回転演算部と、のいずれか2つを備え、前記倍率回転4元数と前記積算回転4元数とを乗算した結果の4元数、前記倍率回転4元数と前記差分回転4元数とを乗算した結果の4元数、又は、前記積算回転4元数と前記差分回転4元数とを乗算した結果の4元数、を前記誤差4元数としてもよい。
また、本発明に係る姿勢信号演算装置において、前記距離演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を前記距離4元数とする代わりに、当該除算した結果の4元数を正規化し、この正規化した4元数を前記距離4元数とすることが好ましい。
本発明の他の1つの態様の姿勢信号演算装置において、前記運動体の姿勢を検出する姿勢検出センサの出力を用いて前記入力姿勢4元数を求める入力姿勢4元数演算部と、前記入力姿勢4元数から所定の周波数成分を抽出するフィルタと、をさらに備え、前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記入力姿勢4元数から前記フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することが好ましい。
本発明の他の1つの態様の姿勢信号演算装置において、前記運動体の姿勢の変化である微小回転角を表す微小回転信号に基づいて求めた4元数を微小回転4元数とする微小回転4元数演算部と、前記微小回転4元数と前記出力姿勢4元数とを用いて求めた4元数を前記入力姿勢4元数とする入力姿勢4元数演算部と、前記入力姿勢4元数から所定の周波数成分を抽出するフィルタと、をさらに備え、前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記入力姿勢4元数から前記フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することが好ましい。
本発明の他の1つの態様の姿勢信号演算装置において、前記運動体の姿勢を検出する第1姿勢検出センサの出力を用いて前記入力4元数を求める入力姿勢4元数演算部と、前記運動体の姿勢を検出するセンサであって前記第1姿勢検出センサと異なる特性を有する第2姿勢検出センサの出力を用いて求めた4元数を参照姿勢4元数とする参照姿勢4元数演算部と、をさらに備え、前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記参照姿勢4元数を前記第2姿勢4元数として取得することが好ましい。
本発明の他の1つの態様の姿勢信号演算装置において、前記運動体の姿勢の変化である微小回転角を表す微小回転信号に基づいて求めた4元数を微小回転4元数とする微小回転4元数演算部と、前記微小回転4元数と前記出力姿勢4元数とを用いて求めた4元数を前記入力姿勢4元数とする入力姿勢4元数演算部と、前記運動体の姿勢を検出する姿勢検出センサの出力を用いて求めた4元数を参照姿勢4元数とする参照姿勢4元数演算部と、をさらに備え、前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記参照姿勢4元数を前記第2姿勢4元数として取得することが好ましい。
また、前記参照姿勢4元数演算部を備える本発明の態様において、前記入力姿勢4元数から所定の周波数成分を抽出する第1フィルタをさらに備え、前記誤差演算部は、前記入力姿勢4元数から前記第1フィルタが抽出した周波数成分の4元数を前記第1姿勢4元数として取得することが好ましい。
また、前記参照姿勢4元数演算部を備える本発明の態様において、前記参照姿勢4元数から所定の周波数成分を抽出する第2フィルタをさらに備え、前記誤差演算部は、前記参照姿勢4元数から前記第2フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することが好ましい。
また、前記微小回転4元数演算部を備える本発明の態様において、前記入力姿勢4元数から所定の低域周波数成分を抽出する第1フィルタと、前記参照姿勢4元数から所定の低域周波数成分を抽出する第2フィルタと、をさらに備え、前記微小回転信号は、前記運動体の角速度を検出する角速度センサの出力から得られる信号であり、前記姿勢検出センサは、前記運動体の加速度を検出する加速度センサであり、前記誤差演算部は、前記入力姿勢4元数から前記第1フィルタが抽出した周波数成分の4元数を前記第1姿勢4元数として取得し、前記参照姿勢4元数から前記第2フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することが好ましい。
本発明によると、運動体の姿勢を表す姿勢信号を高精度に演算する装置を提供できる。
<第1実施形態>
図1は、本発明の第1実施形態の姿勢信号演算装置の構成の例を示すブロック図である。図1に示す姿勢信号演算装置は、入力器10、姿勢4元数変換器20、4元数フィルタ器30、4元数誤差演算器40、4元数フィードバック演算器50、4元数姿勢変換器60、及び出力器70を備える。
入力器10は、姿勢センサなどから受け取った入力姿勢信号Sinを、姿勢信号演算装置における処理に適した形式に変換するインターフェイス部である。入力器10は、センサなどの特性に応じてアナログデータをデジタルデータへ変換したり、必要に応じてデジタルデータのフォーマットやプロトコルの変換を行ったりする。入力姿勢信号Sinは、基準座標系XYZから見たセンサ座標系xyzを表す信号である。入力姿勢信号Sinの種類及び表現形式などの詳細については後述する。
姿勢4元数変換器20は、入力器10が処理した入力姿勢信号Sinを受け取り、受け取った入力姿勢信号Sinを4元数表記に変換して出力する。図1では、姿勢4元数変換器20は、入力姿勢信号Sinを表す4元数(以下「入力姿勢4元数」と呼ぶ)を、4元数フィルタ器30、4元数誤差演算器40、及び4元数フィードバック演算器50へ出力する。
4元数フィルタ器30は、予め設定された周波数特性を有するフィルタを備え、4元数表記の時系列信号を処理する。図1では、4元数フィルタ器30は、姿勢4元数変換器20が出力した入力姿勢4元数を入力として受け取り、受け取った入力姿勢4元数から所定の周波数成分を抽出した4元数を出力する。本実施形態においては、4元数フィルタ器30が備えるフィルタの周波数特性は、入力姿勢4元数において誤差成分を多く含む周波数成分を除去するように設定される。
4元数誤差演算器40は、運動体の姿勢を表す2つの4元数Q1,Q2を入力として受け取り、4元数Q1に含まれる誤差成分を表す4元数を演算して出力する。図1に示す本実施形態では、4元数誤差演算器40は、姿勢4元数変換器20が出力した入力姿勢4元数(誤差成分を含む)をQ1として、この入力姿勢4元数から4元数フィルタ器30が抽出した周波数成分の4元数(誤差成分を含まない)をQ2として受け取って、入力姿勢4元数の誤差成分を表す4元数(以下「誤差4元数」と呼ぶ)を演算して出力する。4元数誤差演算器40で行われる演算の詳細については後述する。
4元数フィードバック演算器50は、姿勢4元数変換器20が出力した入力姿勢4元数と、4元数誤差演算器40が出力した誤差4元数と、を受け取って、入力姿勢4元数を誤差4元数で除算した結果の4元数を出力姿勢4元数として出力する。出力姿勢4元数は、入力姿勢4元数が表す姿勢から誤差成分を取り除いた姿勢を表す4元数である。
4元数姿勢変換器60は、4元数フィードバック演算器50から受け取った出力姿勢4元数をユーザの設定に従った形式に変換し、変換後の姿勢信号を出力する。例えば、4元数表記の出力姿勢4元数を、ロール角・ピッチ角・ヨー角による姿勢角(ψ,θ,φ)表記、オイラー角(Ox,Oy,Oz)表記、又は姿勢行列表記などの形式に変換する。姿勢信号の各種表現形式及び4元数姿勢変換器60で行われる演算の詳細については後述する。
出力器70は、4元数姿勢変換器60が出力した姿勢信号を受け取って、外部制御装置などに出力するインターフェイス部である。出力器70は、必要に応じて、デジタルデータをアナログデータへ変換したり、デジタルデータのフォーマットやプロトコルの変換を行ったりする。
入力姿勢信号Sinとして姿勢信号演算装置に入力される姿勢データは、角速度センサからの積分、加速度センサからの傾斜角、磁気センサからの方位角(仰角を含む)、2つ以上のGPS(Global Positioning System)受信機から得られる姿勢、電波灯台から得られる姿勢、ICタグ信号からの姿勢、カメラなどの画像から得られる姿勢、及びコンピュータ演算で生成された姿勢などのデータである。カメラ画像から姿勢データを求める場合は、ステレオカメラ画像を用いるとよい。
このような姿勢信号は、一般的に、姿勢行列、ロール角・ピッチ角・ヨー角による姿勢角、オイラー角による姿勢角、及び姿勢行列などの表現形式によって表される。
例えば、基準座標系XYZにおけるセンサ座標系xyzを表す姿勢行列Aは、次の式(1)で表すことができる。
Figure 0005161498
姿勢行列Aにおいて、第1列(a,b,c)、第2列(d,e,f)、第3列(g,h,i)は、それぞれ基準座標系からみたセンサ座標系のx軸、y軸、z軸の方向ベクトルを表す。第4列は、基準座標系におけるセンサ座標系の原点位置を表す(一般に並進がある場合はこの第4列に並進量が表される)。原点の移動がない場合は、位置の変換を表す第4列の1〜3行目の要素を0とおく。運動体の姿勢のみを取り扱い、移動を取り扱わない場合は、原点移動がないとみなして取り扱う。
また例えば、ロール角・ピッチ角・ヨー角による姿勢角は、図2に示すように、基準座標系のX軸,Y軸,Z軸のそれぞれの周りの回転角ψ(ロール角)、θ(ピッチ角)、φ(ヨー角)によって表される。
以上のような様々な形式で表された入力姿勢信号Sinは、姿勢4元数変換器20において4元数表記に変換される。
ここで、4元数について概説する。4元数は、2次元の自由度を有する複素数を4次元の自由度に拡張したものである。4元数Qの表記方法には、様々な形態がある。以下、4元数Qの表記方法の代表的なものとして、「虚数単位系表記」、「成分表記」、及び「回転表記」について説明する。
・虚数単位系表記
4元数Qは、虚数単位i,j,kを用いて、
Figure 0005161498
又は、
Figure 0005161498
と表される。虚数単位i,j,kは、それぞれ、x軸、y軸、及びz軸に対応する。ε0,ε1,ε2,ε3はスカラー量である。式(2)及び式(3)の虚部をベクトルvとして、式(4)のように表記してもよい。
Figure 0005161498
ここで、vは、
Figure 0005161498
である。
・成分表記
式(2)及び式(3)におけるスカラー量ε0,ε1,ε2,ε3を4元数Qの4つの要素として、式(6)又は式(7)のように表記してもよい。
Figure 0005161498
Figure 0005161498
以下、式(6)又は式(7)のような4元数Qの成分表記を「ε表記」とも呼ぶ。
・回転表記
4元数Qを用いて、3次元空間上の回転を表すことができる。基準座標系からセンサ座標系への回転変換を表す4元数Qは、その回転軸ベクトルを(α,β,γ)、回転角をηとすると、
Figure 0005161498
と表される。式(8)の4元数Qは、回転軸ベクトル(α,β,γ)の周りに角度ηだけ回転させる回転変換を表す。
運動体の姿勢を取り扱う場合、並進、拡大縮小は除外し、回転のみを取り扱う。そこで、回転角ηの変域を、0≦η≦πとすると、0≦η/2≦π/2であり、回転軸ベクトル(α,β,γ)の各要素の変域は、−1≦α,β,γ≦1である。また、α2+β2+γ2=1という関係がある。以下、4元数の回転表記を「η表記」とも呼ぶ。
次に、4元数の基本的な演算について説明する。
・加減算
2つの4元数Q1=(ε0Q1;ε1Q1,ε2Q1,ε3Q1),Q2=(ε0Q2;ε1Q2,ε2Q2,ε3Q2)の加算及び減算は、それぞれ、次の式(9−1)及び式(9−2)で表される。
Figure 0005161498
・乗算
2つの4元数Q1=(ε0Q1;ε1Q1,ε2Q1,ε3Q1),Q2=(ε0Q2;ε1Q2,ε2Q2,ε3Q2)の乗算は、次の式(10)で表される。
Figure 0005161498
・除算
4元数の除算は、4元数Qの逆4元数Q-1を右から乗算することとして定義できる。4元数Qと逆4元数Q-1との間には、
Figure 0005161498
の関係がある。また、4元数Q=(ε0;ε1,ε2,ε3)について、Q*=(ε0;−ε1,−ε2,−ε3)で定義される共役4元数Q*を用いると、逆4元数Q-1は、
Figure 0005161498
と表される。式(12)で、|Q|は、4元数Qのノルム(大きさ)を表す。
・4元数の正規化
本実施形態の姿勢信号演算装置においては、回転変換を表す4元数Qを用いた演算が行われる。4元数Qを用いて、運動体の並進を考慮せずに回転のみを取り扱う場合、4元数Qのノルム|Q|は、常に、|Q|=1とする。4元数Qのノルムは、
Figure 0005161498
で表されるため、4元数Qを正規化した4元数Q´は、次の式(14)によって求められる。
Figure 0005161498
以下、図1の姿勢4元数変換器20、4元数フィルタ器30、4元数誤差演算器40、4元数フィードバック演算器50、及び4元数姿勢変換器60のそれぞれにおいて行われる演算の詳細について説明する。
姿勢4元数変換器20は、一般的な姿勢表現を4元数表記に変換する演算を行う。一例として、姿勢行列表記された姿勢を4元数表記で表す演算について説明する。前述の式(1)に示す姿勢行列Aを表す4元数Qは、姿勢行列Aの各要素を用いて、次の式(15)で表すことができる。
Figure 0005161498
入力姿勢信号Sinが4元数表現されている場合は、姿勢4元数変換器20は、特に演算を行わずに入力された4元数を出力する。
4元数フィルタ器30は、ε表記された4元数Q(n)=(ε0(n);ε1(n),ε2(n),ε3(n))の各成分に対して、予め設定された周波数特性のフィルタを作用させる処理を行う。例えば、4元数フィルタ器30は、時系列に変化する4元数の各要素ε(n)に対して、低域通過フィルタ(Low Pass Filter, LPF)、高域通過フィルタ(High Pass Filter, HPF)、帯域通過フィルタ(Band Pass Filter, BPF)、又は帯域除去フィルタ(Band Elimination Filter, BEF)などのフィルタを作用させ、フィルタ処理後の4元数QF(n)=(ε0F(n);ε1F(n),ε2F(n),ε3F(n))を得る。次に、4元数フィルタ器30は、QF(n)を式(14)に従って正規化し、正規化された4元数QFN(n)を出力する。
4元数誤差演算器40は、入力された2つの姿勢4元数Q1,Q2を用いて、第1姿勢4元数Q1が表す姿勢と第2姿勢4元数Q2が表す姿勢との間の距離を表す4元数を求め、この距離を表す4元数を誤差4元数として出力する。第1姿勢4元数Q1と第2姿勢4元数Q2との間の距離を表す距離4元数Eqは、次の式(16)で定義できる。
Figure 0005161498
式(16)では、第1姿勢4元数Q1に第2姿勢4元数Q2の逆4元数Q2-1を右から乗算している。したがって、距離4元数Eqは、第1姿勢4元数Q1を第2姿勢4元数Q2で「除算」した結果の4元数であると言える。ここで、第2姿勢4元数Q2は、基準座標系からセンサ座標系への回転変換を表すため、そのノルム|Q2|は|Q2|=1である。よって、式(12)より、第2姿勢4元数Q2の共役4元数Q2*は、姿勢4元数Q2の逆4元数Q2-1と等しい。よって、4元数を用いて運動体の回転を取り扱う本実施形態の姿勢信号装置においては、4元数の除算とは、共役4元数Q*を右から乗算することであるとも言える。第1姿勢4元数Q1、第2姿勢4元数Q2、及び距離4元数Eqを成分表記で表すと、
Figure 0005161498
となる。
4元数の除算は、物理的には、回転軸ベクトル(α,β,γ)の周りに角度−η回転する回転変換を意味する。回転表記の4元数(式(8))の乗算は、回転軸ベクトル(α,β,γ)の周りに角度η回転する回転変換を表すため、4元数の除算は、4元数の乗算の逆回りの回転変換を表すことになる。4元数の除算を表す回転変換をη表記の4元数で表すと、
Figure 0005161498
となる。式(18)より、回転軸ベクトル(α,β,γ)の周りに角度−η回転する回転変換は、回転軸ベクトル(−α,−β,−γ)の周りに角度η回転する回転変換と同義であることがわかる。
回転角η=0の場合、その回転変換を表す4元数は、(1;0,0,0)である。したがって、距離4元数Eq=Q1・Q2-1=(1;0,0,0)となる場合、第1姿勢4元数Q1と第2姿勢4元数Q2とが同じ姿勢を表していると解釈できる。距離4元数Eq≠(1;0,0,0)の場合、第1姿勢4元数Q1と第2姿勢4元数Q2とは異なる姿勢を表しており、距離4元数Eqは、第1姿勢4元数Q1と第2姿勢4元数Q2との間の回転に関する差、つまりQ1とQ2との間の姿勢としての「距離」を表していると解釈できる。
図1を参照し、第1実施形態における4元数誤差演算器40は、姿勢4元数変換器20から出力された姿勢4元数を第1姿勢4元数Q1とし、4元数フィルタ器30から出力された4元数を第2姿勢4元数Q2として、式(16)に従って求めた距離4元数Eqを誤差4元数Uqとして出力する。
4元数フィードバック演算器50は、4元数誤差演算器40から出力された誤差4元数Uqと、姿勢4元数変換器20から得られた入力姿勢4元数Yq(n)と、を用いて、次の式(19)に従って出力姿勢4元数Yuq(n)を求める。
Figure 0005161498
式(19)によると、4元数フィードバック演算器50は、入力姿勢4元数Yq(n)を誤差4元数Uq(n)で除算することで出力姿勢4元数Yuq(n)を得る。よって、出力姿勢4元数Yuq(n)は、入力姿勢4元数Yq(n)が表す姿勢を、誤差4元数Uq(n)が表す回転の分だけ逆回転させた姿勢を表す。
次に、4元数姿勢変換器60が行う演算について説明する。一例として、ユーザが姿勢行列の形式で出力姿勢信号を出力するように設定している場合の演算について説明する。4元数Q=(ε0;ε1,ε2,ε3)を、姿勢行列A(式(1))の各要素は、次の式(20)で表すことができる。
Figure 0005161498
4元数姿勢変換器60は、4元数フィードバック演算器50が出力した出力姿勢4元数を、式(20)に従って演算して出力する。また、ユーザが出力形式として4元数表記を設定している場合は、4元数姿勢変換器60は、形式変換の演算を行わずに、4元数フィードバック演算器50が出力した出力姿勢4元数を出力する。
図1に示す第1実施形態において、4元数フィルタ器30が備えるフィルタの周波数特性は、入力姿勢4元数において誤差成分を多く含む周波数成分を除去するように設定される。このように4元数フィルタ器30の周波数特性を設定すると、4元数誤差演算器40において、姿勢4元数変換器20が出力した入力姿勢4元数(誤差成分を含む)を第1姿勢4元数Q1とし、4元数フィルタ器30が出力した4元数を第2姿勢4元数Q2として上述の演算を行うことで、入力姿勢4元数に含まれる誤差成分を表す4元数が誤差4元数Uqとして求められる。
例えば、図1に示す本実施形態において、ビームなどの先端部に取り付けられた画像センサからの出力を入力姿勢信号Sinとして処理する場合について考える。例えば、この画像センサを取り付けたビームが1Hzから10Hz程度の固有振動数で揺れたり、画像センサからの入力姿勢信号Sinにノイズ(例えば、50Hz又は60Hzの電源周波ノイズ)が混入していたりする場合を想定する。この場合、画像センサから得られる入力姿勢信号Sin及び姿勢4元数変換器20が出力する入力姿勢4元数は、ある特定の周波数成分の揺らぎ及びノイズなどの誤差成分を含む。この場合、誤差成分を多く含む特定の周波数成分を通過させない帯域除去フィルタ、又は誤差成分の比較的少ない周波数成分を通過させる帯域通過フィルタを用いて4元数フィルタ器30を構成すると、4元数フィルタ器30は、入力姿勢4元数から誤差成分を除去した姿勢4元数を出力する。4元数誤差演算器40において、姿勢4元数変換器20から出力された入力姿勢4元数(誤差成分を含む)と、4元数フィルタ器30から出力された誤差成分除去後の姿勢4元数と、の間の距離を求めると、この距離は、入力姿勢4元数に含まれる誤差成分を表すものとなる。この距離を誤差4元数としてフィードバック演算器50に入力すると、姿勢4元数変換器20が出力した入力姿勢4元数から、揺らぎ及びノイズなどの誤差成分による姿勢成分を取り除いた出力姿勢4元数を得ることができる。
本実施形態の姿勢信号演算装置によって得られる姿勢信号は、帯域通過フィルタなどのフィルタ処理で揺らぎ及びノイズなどの誤差成分を除去して得られる姿勢データと比較して、フィルタ処理されない信号を基準として出力信号を得るため応答性が良く、補正効果を調整できるため滑らかな姿勢変化データが得られる。
入力姿勢信号Sinの他の例として、角速度センサからの姿勢や、電波灯台からの姿勢などのように、DC付近にドリフト成分がある信号を処理する場合は、高域通過フィルタを用いて4元数フィルタ器30を構成する。そうすると、4元数フィルタ器30は、入力姿勢4元数の低周波成分に含まれるドリフト成分を除去した姿勢4元数を出力するため、4元数誤差演算器40は、入力姿勢4元数と、4元数フィルタ器30によってドリフト成分が除去された姿勢4元数と、に基づいて、入力姿勢4元数に含まれるドリフト成分を抽出できる。また、入力姿勢信号中の姿勢変化成分、求める帯域以上の揺らぎ、ノイズによる姿勢成分を誤差成分として求める場合は、低域通過フィルタを用いて4元数フィルタ器30を構成すればよい。
入力姿勢信号Sinの他の例として、コンピュータで生成した姿勢データを用いる場合について考える。コンピュータによる姿勢データの生成は離散時間で行われるため、単位時間当たりの姿勢データ量を少なくするほど低コストに演算を実現できる。しかしながら、単位時間当たりの姿勢データ量を少なくすると、姿勢変化が滑らかでなく階段状になる。この階段状の変化成分は高周波成分に含まれる。この場合、図1に示す本実施形態によると、4元数フィルタ器30を低域通過フィルタで構成する。そうすると、4元数フィルタ器30は、この階段状の変化成分を入力姿勢4元数から除去した姿勢4元数を出力する。よって、4元数誤差演算器40において、この階段状の変化成分を含む元の入力姿勢4元数から、この階段状の変化成分を誤差4元数として取り出すことができる。そして、4元数フィードバック演算器50により、この階段状の変化成分を表す誤差4元数を用いて入力姿勢4元数を補正することで、滑らかな姿勢変化データを得ることができる。
<第2実施形態>
図3は、本発明の第2実施形態の姿勢信号演算装置において用いられる4元数誤差演算器40の構成の例を示すブロック図である。第2実施形態の姿勢信号演算装置は、図1に示す構成の姿勢信号演算装置において、第1姿勢4元数Q1と第2姿勢4元数Q2との間の距離Eq(式(16))を誤差4元数Uqとして出力する上述の4元数誤差演算器40の代わりに、図3に示す構成の4元数誤差演算器40を用いる。
図3を参照すると、4元数誤差演算器40は、4元数距離演算器402、4元数倍率回転器404、4元数積算回転器406、4元数差分回転器408、及び4元数乗算器410を備える。
4元数距離演算器402は、4元数誤差演算器40が受け取った第1姿勢4元数Q1及び第2姿勢4元数Q2について、上述の式(16)に従って距離4元数Eqを求める。
4元数倍率回転器404は、ある離散時間nに4元数距離演算器402から出力された距離4元数Eq(n)=(ε0Ep(n);ε1Ep(n),ε2Ep(n),ε3Ep(n))の各要素から、この距離4元数Eq(n)が表す回転軸ベクトルVp=(αp,βp,γp)及び回転角ηpを求める。Eq(n)は、
Figure 0005161498
と表すことができるので、
Figure 0005161498
である。式(22)を解くことで、回転軸ベクトルVp及び回転角ηpを求めることができる。回転軸ベクトルVp及び回転角ηpを求めた後、4元数倍率回転器404は、予め設定された比例定数Kpを用い、次の式(23)に従って倍率回転4元数Uqpを求める。
Figure 0005161498
4元数積算回転器406は、予め定められた離散時間の期間iからnまでの間に4元数距離演算器402から出力された距離4元数Eq(i),Eq(i+1),・・・,Eq(n)について、これらを乗算して積算4元数Iq(n)を求める(式(24))。
Figure 0005161498
次に、4元数積算回転器406は、積算4元数Iq(n)=(ε0Ei(n);ε1Ei(n),ε2Ei(n),ε3Ei(n))の各要素から、この積算4元数Iq(n)が表す回転軸ベクトルVi=(αi,βi,γi)及び回転角ηiを求める。Iq(n)は、
Figure 0005161498
と表すことができるので、
Figure 0005161498
である。式(26)を解くことで、回転軸ベクトルVi及び回転角ηiを求める。回転軸ベクトルVi及び回転角ηiを求めた後、4元数積算回転器406は、予め設定された積算定数Kiを用いて、次の式(27)に従って、積算回転4元数Uqiを求める。
Figure 0005161498
4元数差分回転器408は、離散時間nに4元数距離演算器402が出力した距離4元数Eq(n)を、離散時間nの一時刻前の離散時間n−1に4元数距離演算器402が出力した距離4元数Eq(n−1)で除算することで、Eq(n)とEq(n−1)との間の距離、すなわち回転の差分を表す差分4元数ΔEq(n)を求める(式(28))。
Figure 0005161498
次に、4元数差分回転器408は、差分4元数ΔEq(n)=(ε0Ed(n);ε1Ed(n),ε2Ed(n),ε3Ed(n))の各要素から、この差分4元数ΔEq(n)が表す回転軸ベクトルVd=(αd,βd,γd)及び回転角ηdを求める。ΔEq(n)は、
Figure 0005161498
と表すことができるので、
Figure 0005161498
である。式(30)を解くことで、回転軸ベクトルVd及び回転角ηdを求める。回転軸ベクトルVd及び回転角ηdを求めた後、4元数積算回転器406は、予め設定された差分定数Kdを用いて、次の式(31)に従って、差分回転4元数Uqdを求める。
Figure 0005161498
4元数乗算器410は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408がそれぞれ求めた倍率回転4元数Uqp、積算回転4元数Uqi、及び差分回転4元数Uqdを乗算し(式(32))、その乗算結果の4元数Uq(n)を誤差4元数として出力する。
Figure 0005161498
図3に示す構成の4元数誤差演算器40を用いる姿勢信号演算装置によると、第1姿勢4元数Q1及び第2姿勢4元数Q2について、現在の距離、過去から積算された距離、及び瞬時変化の距離を求め、それらの距離を反映させた誤差4元数を用いて、4元数フィードバック演算器50の演算を行うことができる。したがって、図3に示す4元数誤差演算器40を用いると、時間の経過及び短時間の変化に適応した処理が可能となる。
4元数倍率回転器404によると、比例定数Kpの値を調整することで、現在の姿勢のずれに従った補正効果を容易に調整できる。4元数積算回転器406によると、一定期間内の姿勢のずれ量を積算により求めるので、長時間にわたって徐々にずれてゆく姿勢変化を修正できる。4元数差分回転器408によると、直前の姿勢と現在の姿勢の変化に対応した補正が可能となるので、最終的に得られる姿勢データの応答性を向上することができる。
なお、第2実施形態の変形例として、4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のいずれか1つを備えるものであってよい。この変形例の場合、4元数誤差演算器40は、4元数乗算器410を備えず、4元数倍率回転器404が求めた倍率回転4元数Uqp、4元数積算回転器406が求めた積算回転4元数Uqi、又は4元数差分回転器408が求めた差分回転4元数Uqdを誤差4元数Uqとして出力する。
第2実施形態のさらに他の変形例では、4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のいずれか2つを備えるものであってよい。この変形例の場合、4元数乗算器410は、4元数倍率回転器404が求めた倍率回転4元数Uqpと4元数積算回転器406が求めた積算回転4元数Uqiとを乗算した結果の4元数Uqp・Uqi、4元数倍率回転器404が求めた倍率回転4元数Uqpと4元数差分回転器408が求めた差分回転4元数Uqdとを乗算した結果の4元数Uqp・Uqd、又は、4元数積算回転器406が求めた積算回転4元数Uqiと4元数差分回転器408が求めた差分回転4元数Uqdとを乗算した結果の4元数Uqi・Uqd、を誤差4元数Uqとして出力する。
<第3実施形態>
図4は、本発明の第3実施形態で用いられる4元数誤差演算器40の構成の例を示すブロック図である。図4において、図3と同様の要素には、図3と同様の符号を付す。第3実施形態の姿勢信号演算装置は、図1に示す構成の姿勢信号演算装置において、図4に示す構成の4元数誤差演算器40を用いる。図4に示す4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のそれぞれと、4元数乗算器410と、の間に4元数リミット器412a,412b,412cを備える。
4元数リミット器412a,412b,412cは、回転変換を表す4元数の回転角ηが所定の値の範囲内にない場合は、予め定められた値に制限(リミット)する。4元数倍率回転器404と4元数乗算器410との間に設けられた4元数リミット器412aを例に説明すると、4元数リミット器412aは、4元数倍率回転器404から倍率回転4元数Uqpを受け取ると、倍率回転4元数Uqpの表す回転角Kpηpが、−π≦Kpηp≦πの範囲内であるか否かを判定する。4元数リミット器412aは、回転角Kpηpが、−π≦Kpηp≦πの範囲内である場合は、4元数倍率回転器404から受け取った倍率回転4元数Uqpをそのまま出力し、回転角Kpηpがπを超えている場合は、式(23)において、Kpηp=πとした4元数を倍率回転4元数Uqpとして出力し、回転角Kpηpが−πを下回っている場合は、式(23)において、Kpηp=−πとした4元数を倍率回転4元数Uqpとして出力する。4元数リミット器412b及び4元数リミット器412cは、それぞれ、積算回転4元数Uqi及び差分回転4元数Uqdについて、4元数リミット器412aを例に説明した処理と同様の処理を行う。
また、第3実施形態の変形例として、4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のいずれか1つを備えるものであってよい。この変形例の場合、4元数誤差演算器40は、4元数乗算器410を備えず、4元数倍率回転器404が求めた倍率回転4元数Uqp、4元数積算回転器406が求めた積算回転4元数Uqi、又は4元数差分回転器408が求めた差分回転4元数Uqdについて、4元数リミット器412による上述の処理を行った結果の4元数を誤差4元数Uqとして出力する。
第3実施形態のさらに他の変形例では、4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のいずれか2つを備えるものであってよい。この変形例の場合、4元数倍率回転器404が求めた倍率回転4元数Uqp、4元数積算回転器406が求めた積算回転4元数Uqi、及び4元数差分回転器408が求めた差分回転4元数Uqdのいずれか2つについて、それぞれ、4元数リミット器412による上述の処理を行った結果の4元数が、4元数乗算器410に対して出力される。4元数乗算器410は、受け取った2つの4元数を乗算した結果の4元数を誤差4元数Uqとして出力する。
<第4実施形態>
図5は、本発明の第4実施形態で用いられる4元数誤差演算器40の構成の例を示すブロック図である。図5において、図3及び図4と同様の要素には、図3及び図4と同様の符号を付す。第4実施形態の姿勢信号演算装置は、図1に示す構成の姿勢信号演算装置において、図5に示す構成の4元数誤差演算器40を用いる。図5に示す4元数誤差演算器40は、図4に示す4元数誤差演算器40の構成に加えて、4元数正規化器414を備える。4元数正規化器414は、4元数距離演算器402が出力する距離4元数Eqを式(14)に従って正規化し、正規化後の4元数を距離4元数Eqとして4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408に対して出力する。
なお、第4実施形態の変形例として、4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のいずれか1つを備えるものであってよい。また、第4実施形態のさらに他の変形例として、4元数誤差演算器40は、4元数倍率回転器404、4元数積算回転器406、及び4元数差分回転器408のいずれか2つを備えるものであってよい。これらの第4実施形態の変形例において、誤差4元数Uqは、対応する第3実施形態の変形例に関して説明した上述の処理と同様の処理によって求められる。
<第5実施形態>
図6は、本発明の第5実施形態の姿勢信号演算装置の構成の例を示すブロック図である。図6を参照すると、本実施形態の姿勢信号演算装置は、入力器10、微小回転4元数変換器80、4元数回転器90、4元数フィルタ器30、4元数誤差演算器40、4元数フィードバック演算器50、4元数姿勢変換器60、及び出力器70を備える。
入力器10は、図1を参照して説明した第1実施形態の姿勢信号演算装置が備える入力器10と同様のインターフェイス部である。図6において、入力器10は、センサなどから、運動体の姿勢の変化を表す微小回転信号Srotを受け取って、例えばアナログデジタル変換処理などによって、本実施形態の姿勢信号演算装置で扱うのに適したデータ形式に変換し、変換した信号を微小回転4元数変換器80へ出力する。微小回転信号Srotは、例えば角速度センサによって得られる、センサ座標系のx軸、y軸、及びz軸の周りの角速度を表す信号である。
微小回転4元数変換器80は、入力器10から受け取った微小回転信号を4元数表記に変換する。以下、微小回転4元数変換器80で行われる演算について、入力器10に対して、センサ座標系のx軸、y軸、z軸の正方向に向けて設けられた角速度センサから、それぞれ図7に示す回転方向(軸の正方向に対して右回り)を正とする角速度ωx,ωy,ωzが微小回転信号Srotとして入力された場合を例に説明する。
センサ座標系のx軸、y軸、z軸それぞれの周りの角速度ωx,ωy,ωz及びサンプリング周期tsを用いると、各軸の周りの回転変換を表す4元数Qx,Qy,Qzは、
Figure 0005161498
と表すことができる。x軸、y軸、z軸の周りの回転変換をまとめて表記した回転変換Qxyzは、次の式(34)で表される。
Figure 0005161498
微小回転4元数変換器80は、式(34)に従って求めたQxyzを、微小回転4元数として4元数回転器90へ出力する。
4元数回転器90は、微小回転4元数変換器80から得られる微小回転4元数Qxyzを用いて、基準座標系から見たセンサ座標系を表す姿勢4元数Qを求める。例えば、4元数回転器90は、4元数フィードバック演算器50から出力される出力姿勢4元数Yuq(n)に微小回転4元数Qxyzを右から乗算し、新たな姿勢4元数Q=Yuq(n+1)を得る(式(35))。
Figure 0005161498
また、4元数回転器90は、4元数フィードバック演算器50から出力姿勢4元数Yuq(n)を用いる代わりに、初期姿勢Q(0)が離散時間nにおいてQ(n)となった場合、離散時間0からnまでの微小回転4元数Qxyzを順に右からかけて、姿勢4元数Q(n)を求めてもよい(式(36))。
Figure 0005161498
4元数回転器90は、求めた姿勢4元数Qを、4元数フィルタ器30、4元数誤差演算器40、及び4元数フィードバック演算器50に対してそれぞれ出力する。
4元数フィルタ器30は、4元数回転器90が出力した姿勢4元数に対して、図1を参照して説明した第1実施形態の4元数フィルタ器30と同様のフィルタ処理を行う。
4元数誤差演算器40は、4元数回転器90が出力した姿勢4元数を第1姿勢4元数Q1とし、4元数フィルタ器30が出力した4元数を第2姿勢4元数Q2として、第1実施形態の4元数誤差演算器40と同様に、第1姿勢4元数Q1と第2姿勢4元数との間の距離4を表す距離4元数をそのまま誤差4元数として出力する。図6に示す第5実施形態における4元数誤差演算器40としては、第1実施形態の4元数誤差演算器40と同様のものを用いる代わりに、図3から図5を参照して説明した第2から第4実施形態の4元数誤差演算器40のいずれかと同様のものを用いてもよい。
4元数フィードバック演算器50、4元数姿勢変換器60、及び出力器70は、それぞれ、図1を参照して説明した第1実施形態の姿勢信号演算装置の対応する各要素と同様の処理を行う。
<第6実施形態>
図8は、本発明の第6実施形態の姿勢信号演算装置の構成の例を示すブロック図である。図8を参照すると、本実施形態の姿勢信号演算装置は、入力器10a,10b、姿勢4元数変換器20a,20b、4元数誤差演算器40、4元数フィードバック演算器50、4元数姿勢変換器60、及び出力器70を備える。図8に示す姿勢信号演算装置の各要素で行われる処理は、図1を参照して説明した第1実施形態において対応する各要素で行われる処理と同様である。
図8に示す姿勢信号演算装置は、2つの入力姿勢信号Sin1,Sin2を入力として受け付ける。入力姿勢信号Sin1,Sin2は、それぞれ、入力器10a,10bを介して姿勢4元数変換器20a,20bに入力される。姿勢4元数変換器20a,20bは、それぞれ、受け取った入力姿勢信号Sin1,Sin2を4元数表記に変換する。4元数誤差演算器40は、姿勢4元数変換器20aが出力した姿勢4元数を第1姿勢4元数Q1として、姿勢4元数変換器20bが出力した姿勢4元数を第2姿勢4元数Q2として受け取って、誤差4元数の演算を行う。図8に示す姿勢信号演算装置の4元数誤差演算器40は、第1姿勢4元数Q1と第2姿勢4元数Q2との間の距離を表す距離4元数をそのまま誤差4元数として出力するものであってよいし、図3から図5を参照して説明した4元数誤差演算器40のいずれかと同様のものであってもよい。
図8に示す第6実施形態によると、2つの異なるセンサから得られる姿勢信号を用いて、補正された姿勢信号を得ることができる。例えば、図8に示す実施形態において、入力姿勢信号Sin1として、ロボットの頭部に設けられたカメラ(以下「頭部カメラ」と呼ぶ)の出力から得られる姿勢信号を、入力姿勢信号Sin2として、ロボットの胴体に設けられたカメラ(以下「胴体カメラ」と呼ぶ)の出力から得られる姿勢信号を処理する場合について考える。
頭部カメラはロボットの頭部に設けられるため、頭部カメラとしては、軽量、かつ小型のカメラを用いる必要がある。一方、胴体カメラとしては、頭部カメラと比較してより大きなカメラを用いることができる。頭部カメラは、胴体カメラの設置位置よりも高い位置に設けられるため、胴体カメラと比較してより広範囲の画像を撮像することができる。したがって、頭部カメラの出力からは、胴体カメラと比較して、より正確な姿勢信号を得ることができる。しかしながら、頭部カメラはロボットの頭部に設けられるため、その出力信号はある特定の振動数で振動することが多い。また、頭部カメラは、胴体カメラよりも小型であるため、胴体カメラと比較して出力信号にノイズを多く含む。これに対して、胴体カメラからの出力は、振動に強く安定しており、また、頭部カメラからの出力と比較してノイズが少ない。ただし、胴体カメラは、頭部カメラの設置位置よりも低い位置に設けられるため撮像できる画像の範囲が制限され、胴体カメラの出力から得られる姿勢信号の信頼性は、頭部カメラから得られる姿勢信号よりも低い。
図8の4元数誤差演算器40において、頭部カメラの出力に基づく入力姿勢信号Sin1を表す姿勢4元数を第1姿勢4元数Q1として、胴体カメラの出力に基づく入力姿勢信号Sin2を表す姿勢4元数を第2姿勢4元数Q2として、両者の距離に基づいて誤差4元数Uqを求めると、この誤差4元数Uqは、頭部カメラの出力に含まれる誤差成分(特定の振動数で振動する姿勢成分及びノイズによる姿勢成分)を表すものとなる。4元数フィードバック演算器50において、姿勢4元数変換器20aが出力した頭部カメラの出力に基づく姿勢4元数を、4元数誤差演算器40が出力した誤差4元数Uqで除算することにより、頭部カメラの出力に基づく精度の良い姿勢信号から振動成分及びノイズ成分などの誤差成分を取り除いた良好な姿勢信号が得られる。
<第7実施形態>
図9は、本発明の第7実施形態の姿勢信号演算装置の構成の例を示すブロック図である。図9に示す第7実施形態の姿勢信号演算装置は、図8に示す第6実施形態の姿勢信号演算装置の構成要素に加えて、4元数フィルタ器30a,30bを備える。4元数フィルタ器30a,30bは、それぞれ、姿勢4元数変換器20a,20bが出力した姿勢4元数に対して、予め設定された周波数特性を有するフィルタを作用させ、フィルタ処理後の4元数を4元数誤差演算器40へ出力する。4元数誤差演算器20は、4元数フィルタ器30aが出力した4元数を第1姿勢4元数Q1として、4元数フィルタ器30bが出力した4元数を第2姿勢4元数Q2として、両者の距離に基づいて誤差4元数Uqを演算する。
図9に示す第7実施形態の姿勢信号演算装置において、第6実施形態について説明した上述の例と同様、入力姿勢信号Sin1として、ロボットの頭部に設けられた頭部カメラの出力から得られる姿勢信号を、入力姿勢信号Sin2として、ロボットの胴体に設けられた胴体カメラの出力から得られる姿勢信号を処理する場合について考える。一般にタイプが異なるカメラからの姿勢信号の応答性は異なっている。そこで、4元数誤差演算器40に入力する2つの信号の周波数特性をそろえることが望ましい。
この例では、4元数フィルタ器30aは、頭部カメラの出力に含まれる振動成分及びノイズ成分などの誤差成分を多く含む周波数成分を抽出する帯域通過フィルタを用いて構成される。4元数フィルタ器30aは、頭部カメラの出力に基づく入力姿勢信号Sin1を表す姿勢4元数から、誤差成分を多く含む周波数成分を抽出して出力する。この信号Q1は、誤差成分と帯域通過フィルタを通過した一部の姿勢信号とを含む。
他方、4元数フィルタ器30bも、4元数フィルタ器30aと同じ帯域通過フィルタを用いて構成される。4元数フィルタ器30bは、胴体カメラの出力に基づく姿勢4元数から、頭部カメラの出力に含まれる誤差成分(振動成分及びノイズ成分)に対応する周波数帯域に対応した姿勢4元数を出力する。この信号Q2は、胴体カメラからの姿勢信号を用いているので、頭部カメラからの姿勢信号に含まれる誤差成分を含まないが、帯域通過フィルタを通過した一部の姿勢信号を含む。
4元数誤差演算器40は、頭部カメラの出力に基づく姿勢4元数であって、誤差成分を多く含む周波数成分と姿勢信号の一部とからなる第1姿勢4元数(4元数フィルタ器30aからの出力)Q1と、胴体カメラの出力に基づく姿勢4元数であって、頭部カメラの出力に含まれる誤差成分に対応する周波数成分からなり、誤差成分を含まないが姿勢信号の一部を含む第2姿勢4元数(4元数フィルタ器30bからの出力)Q2と、の間の距離を表す4元数に基づいて、誤差4元数Uqを演算する。この誤差4元数Uqは、頭部カメラの出力に含まれる誤差成分に対応する成分からなる姿勢を表す。4元数フィードバック演算器50において、姿勢4元数変換器20aが出力した頭部カメラの出力に基づく姿勢4元数を、4元数誤差演算器40が出力した誤差4元数Uqで除算することにより、頭部カメラの出力に基づく精度の良い姿勢信号から振動成分及びノイズ成分などの誤差成分を取り除き、姿勢信号成分の一部が欠落しない良好な姿勢信号が得られる。
図9に示す第7実施形態によると、例えば頭部カメラの出力から得られる姿勢信号が、胴体カメラの出力から得られる姿勢信号より高い応答性を有する場合に、より応答性の高い頭部カメラの出力から得られる姿勢4元数に基づいて、誤差成分を除去した4元数を出力とするため、応答性が高く、かつ誤差の少ない出力を得ることができる。
必要に応じて、図10及び図11に示すように、姿勢4元数変換器20a,20bが出力する4元数の両方ではなく、いずれか一方のみを4元数フィルタ器を介して4元数誤差演算器40に入力するようにしてもよい。
<第8実施形態>
図10に示す第8実施形態の姿勢信号演算装置では、姿勢4元数変換器20aの出力は4元数フィルタ器30aによるフィルタ処理の後、第1姿勢4元数Q1として4元数誤差演算器40に入力され、姿勢4元数変換器20bの出力はフィルタ処理なしでそのまま第2姿勢4元数Q2として4元数誤差演算器40に入力される。
<第9実施形態>
図11に示す第9実施形態の姿勢信号演算装置では、姿勢4元数変換器20aの出力はフィルタ処理なしでそのまま第1姿勢4元数Q1として4元数誤差演算器40に入力され、姿勢4元数変換器20bの出力は4元数フィルタ器30bによるフィルタ処理の後、第2姿勢4元数Q2として4元数誤差演算器40に入力される。
<第10実施形態>
図12は、本発明の第10実施形態の姿勢信号演算装置の構成の例を示すブロック図である。図12に示す姿勢信号演算装置は、図6に示す第5実施形態の姿勢信号演算装置の構成要素に加えて、入力器10b、姿勢4元数変換器20b、及び4元数フィルタ器30bを備える。
図12を参照すると、運動体の姿勢の変化を表す微小回転信号Srotは、入力器10aを介して微小回転4元数変換器80に入力される。微小回転4元数変換器80及び4元数回転器90、及びフィルタ器30aは、図6に示す第5実施形態の微小回転4元数変換器80、4元数回転器90、及び4元数フィルタ30と同様の処理を行う。また、図12において、入力器10bは、運動体の姿勢を表す入力姿勢信号Sin2を受け取って姿勢4元数変換器20bへ渡す。入力姿勢信号Sin2は、第1実施形態に関連して説明した上述の入力姿勢信号と同様の信号である。また、図12に示す姿勢4元数変換器20b及び4元数フィルタ器30aは、図1を参照して説明した第1実施形態の姿勢4元数変換器20及び4元数フィルタ器30と同様の処理を行う。
図12を参照すると、4元数誤差演算器40は、4元数回転器90が出力した姿勢4元数から4元数フィルタ器30aが抽出した周波数成分を表す4元数を第1姿勢4元数Q1として受け取る。また、4元数誤差演算器40は、入力姿勢信号Sin2に基づいて姿勢4元数変換器20bが出力した姿勢4元数から4元数フィルタ器30bが抽出した周波数成分を表す4元数を第2姿勢4元数Q2として受け取る。図12に示す4元数誤差演算器40は、第1姿勢4元数Q1と第2姿勢4元数との間の距離4を表す距離4元数をそのまま誤差4元数として出力するものであってよいし、図3から図5を参照して説明した4元数誤差演算器40のいずれかと同様のものであってもよい。
<第11実施形態>
図13は、本発明の第11実施形態の姿勢信号演算装置の構成の例を示すブロック図である。図13に示す姿勢信号演算装置は、図12に示す姿勢信号演算装置において、加速度姿勢演算器120をさらに備え、入力器10aには微小回転信号として角速度センサ100の出力が入力され、入力器10bには、入力姿勢信号として加速度姿勢演算器120の出力が入力される。
角速度センサ100の出力を微小回転信号として、微小回転4元数変換器80及び4元数回転器90によって姿勢4元数を求める処理は、式(33−1)〜(33−3)、式(34)、及び図6を参照して説明した上述の処理と同様である。
加速度姿勢演算器120は、運動体に設けられた加速度センサ110の出力に基づいて、運動体の姿勢を表す姿勢行列を演算して出力する。加速度センサ110は、センサ座標系のx軸、y軸、及びz軸のそれぞれの軸方向の加速度Gx、Gy、及びGzを出力する。加速度姿勢演算器120は、加速度Gx、Gy、及びGzを用いて、まず、センサ座標系のx軸、y軸、及びz軸のそれぞれと、基準座標系のX軸、Y軸、及びZ軸のそれぞれと、の間の角度(傾斜角)を求める。x軸とX軸との間の角度をλx、y軸とY軸との間の角度をλy、かつz軸とZ軸との間の角度をλzとすると、それぞれの角度は、次の式(37)に従って求めることができる。
Figure 0005161498
ここで、Acos()は逆余弦関数である。また、G0=1G、又はG0=9.80665m/s2とする。傾斜角λx,λy,λzの変域は、
0≦λx≦π
0≦λy≦π
0≦λz≦π
である。
傾斜角λx,λy,λzを求めた後、加速度姿勢演算器120は、姿勢行列A(式(1))の各要素を傾斜角λx,λy,λzを用いて求める。傾斜角λx,λy,λzから姿勢行列Aの各要素は、
Figure 0005161498
と得られる。
角速度センサの出力は、低周波数領域にドリフト成分を含むことが多い。一方、加速度センサの出力は、高周波数領域に誤差成分を含むことがあるが、低周波数領域は角速度センサの出力と比較して安定している。図13に示す姿勢信号演算装置において、4元数フィルタ器30a,30bは、互いに同じ周波数特性を有する低域通過フィルタを用いて構成される。4元数フィルタ器30aは、角速度センサに基づく姿勢4元数から、ドリフト成分(誤差成分)を多く含む低周波数領域を抽出する。4元数フィルタ器30bは、加速度センサに基づく姿勢4元数から、4元数フィルタ器30aと同様に低周波数領域の成分を抽出する。すると、4元数誤差演算器40において、ドリフト成分を含む角速度センサに基づく姿勢4元数の低周波成分と、誤差成分を含まない加速度センサに基づく姿勢4元数の低周波成分と、の間の距離に基づいて誤差4元数Uqが求められるため、この誤差4元数Uqは、角速度センサ出力のドリフト成分を表す4元数となる。4元数フィードバック演算器50において、4元数回転器90が出力した姿勢4元数(角速度センサ出力に基づく姿勢4元数)を、ドリフト成分を表す誤差4元数Uqで除算することで、角速度センサ出力による姿勢からドリフト成分を取り除いた姿勢を表す4元数が出力される。
なお、本実施形態においても、図13に示す4元数誤差演算器40は、第1姿勢4元数Q1と第2姿勢4元数との間の距離4を表す距離4元数をそのまま誤差4元数として出力するものであってよいし、図3から図5を参照して説明した4元数誤差演算器40のいずれかと同様のものであってもよい。
<第12実施形態>
以上で説明した第1から第11実施形態では、1つの入力姿勢信号又は2つの入力姿勢信号を用いて生成した2つの姿勢4元数に基づいて4元数誤差演算器が求めた誤差成分を、4元数フィードバック演算器での演算に用いる。本発明の第12実施形態では、3つ以上の入力姿勢信号を用いて、4元数フィードバック演算器での演算に用いる誤差を演算する。図14に、N(≧3)個の入力姿勢信号を用いる実施形態の姿勢信号演算装置の構成の例を示す。図14に示す姿勢信号演算装置の各構成要素において行われる演算は、以上で説明した実施形態の姿勢信号演算装置の対応する各構成要素で行われる演算と同様である。
図14に示す姿勢信号演算装置において、N個の入力姿勢信号Sin1,Sin2,…,SinNは、それぞれ、入力器10を介して姿勢4元数演算器20に入力され、4元数表記に変換される。また、図14に示す姿勢信号演算装置は、N−1個の4元数誤差演算器40を備える。図14を参照すると、4元数誤差演算器40はそれぞれ、入力姿勢信号Sin1に基づく姿勢4元数を第1姿勢4元数Q1として受け取り、入力姿勢信号Sink(k=2,3,…,N)に基づく姿勢4元数を第2姿勢4元数Q2として受け取る。4元数誤差演算器40は、それぞれ、入力姿勢信号Sin1に基づく姿勢4元数と、入力姿勢信号Sink(k=2,3,…,N)に基づく姿勢4元数と、の間の距離を求め、求めた距離を誤差4元数Uqi(i=1,2,…,N−1)として出力する。求めた距離に所定の定数をかけて重み付けした4元数を誤差4元数Uqiとして出力してもよい。
4元数乗算器410は、4元数誤差演算器40が出力した誤差4元数Uq1,Uq2,…,UqN-1を乗算し、その乗算結果の4元数Uqs(式(39))を4元数フィードバック演算器50に対して出力する。
Figure 0005161498
4元数フィードバック演算器50は、入力姿勢信号Sin1に基づく姿勢4元数を、4元数乗算器410が出力した4元数Uqsで除算した結果の4元数を出力姿勢4元数として、4元数姿勢変換器60に渡す。
図14に示す姿勢信号演算装置は、4元数フィルタ器を備えない。しかしながら、図14に示す姿勢信号演算装置において、必要に応じて、例えば図9に示す第7実施形態と同様に、姿勢4元数変換器20と4元数誤差演算器40との間に4元数フィルタ器を設け、4元数誤差演算器40は、フィルタ処理後の姿勢4元数を第1姿勢4元数Q1及び第2姿勢4元数Q2として受け取って演算を行ってもよい。
本発明の第1実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 基準座標系におけるロール角・ピッチ角・ヨー角による姿勢角を表す図である。 本発明の第2実施形態の姿勢信号演算装置の4元数誤差演算器40の構成の例を示すブロック図である。 本発明の第3実施形態の姿勢信号演算装置の4元数誤差演算器40の構成の他の例を示すブロック図である。 本発明の第4実施形態の姿勢信号演算装置の4元数誤差演算器40の構成の他の例を示すブロック図である。 本発明の第5実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 センサ座標系における微小回転角を示す図である。 本発明の第6実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 本発明の第7実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 本発明の第8実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 本発明の第9実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 本発明の第10実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 本発明の第11実施形態の姿勢信号演算装置の構成の例を示すブロック図である。 本発明の第12実施形態の姿勢信号演算装置の構成の例を示すブロック図である。
符号の説明
10 入力器、20 姿勢4元数変換器、30 4元数フィルタ器、40 4元数誤差演算器、50 4元数フィードバック演算器、60 4元数姿勢変換器、70 出力器、80 微小回転4元数変換器、90 4元数回転器、100 角速度センサ、110 加速度センサ、120 加速度姿勢演算器、402 4元数距離演算器、404 4元数倍率回転器、406 4元数積算回転器、408 4元数差分回転器、410 4元数乗算器、412 4元数リミット器、414 4元数正規化器。

Claims (15)

  1. 運動体の姿勢を表す信号の演算を行う姿勢信号演算装置であって、
    前記運動体の姿勢を表す4元数である入力姿勢4元数に基づいて得られる第1姿勢4元数と、前記運動体の姿勢を表す4元数であって前記第1姿勢4元数と異なる第2姿勢4元数と、を取得し、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果に基づいて得られる4元数を誤差4元数とする誤差演算部と、
    前記入力姿勢4元数を取得し、前記入力姿勢4元数を前記誤差4元数で除算した結果の4元数を出力姿勢4元数とする出力姿勢4元数演算部と、
    を備えることを特徴とする姿勢信号演算装置。
  2. 請求項1に記載の姿勢信号演算装置において、
    前記誤差演算部は、
    前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、
    前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、この回転軸ベクトルVpと、この回転角ηpを所定の定数Kp倍した回転角Kpηpと、によって規定される4元数を倍率回転4元数とする倍率回転演算部と、
    所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、この回転軸ベクトルViと、この回転角ηiを所定の定数Ki倍した回転角Kiηiと、によって規定される4元数を積算回転4元数とする積算回転演算部と、
    ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、この回転軸ベクトルVdと、この回転角ηdを所定の定数Kd倍した回転角Kdηdと、によって規定される4元数を差分回転4元数とする差分回転演算部と、
    を備え、
    前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数を乗算した結果の4元数を前記誤差4元数とすることを特徴とする姿勢信号演算装置。
  3. 請求項1に記載の姿勢信号演算装置において、
    前記誤差演算部は、
    前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、
    前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、この回転軸ベクトルVpと、この回転角ηpを所定の定数Kp倍した回転角Kpηpと、によって規定される4元数を倍率回転4元数とする倍率回転演算部と、
    所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、この回転軸ベクトルViと、この回転角ηiを所定の定数Ki倍した回転角Kiηiと、によって規定される4元数を積算回転4元数とする積算回転演算部と、
    ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、この回転軸ベクトルVdと、この回転角ηdを所定の定数Kd倍した回転角Kdηdと、によって規定される4元数を差分回転4元数とする差分回転演算部と、
    のいずれか1つを備え、
    前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数のいずれか1つを前記誤差4元数とすることを特徴とする姿勢信号演算装置。
  4. 請求項1に記載の姿勢信号演算装置において、
    前記誤差演算部は、
    前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、
    前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、この回転軸ベクトルVpと、この回転角ηpを所定の定数Kp倍した回転角Kpηpと、によって規定される4元数を倍率回転4元数とする倍率回転演算部と、
    所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、この回転軸ベクトルViと、この回転角ηiを所定の定数Ki倍した回転角Kiηiと、によって規定される4元数を積算回転4元数とする積算回転演算部と、
    ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、この回転軸ベクトルVdと、この回転角ηdを所定の定数Kd倍した回転角Kdηdと、によって規定される4元数を差分回転4元数とする差分回転演算部と、
    のいずれか2つを備え、
    前記倍率回転4元数と前記積算回転4元数とを乗算した結果の4元数、前記倍率回転4元数と前記差分回転4元数とを乗算した結果の4元数、又は、前記積算回転4元数と前記差分回転4元数とを乗算した結果の4元数、を前記誤差4元数とすることを特徴とする姿勢信号演算装置。
  5. 請求項1に記載の姿勢信号演算装置において、
    前記誤差演算部は、
    前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、
    前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、前記回転角ηpを所定の定数Kp倍した回転角Kpηpが所定の値の範囲内である場合は、前記回転軸ベクトルVpと前記回転角Kpηpとによって規定される4元数を倍率回転4元数とし、前記回転角Kpηpが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVpと前記所定の値の範囲内の回転角とによって規定される4元数を倍率回転4元数とする倍率回転演算部と、
    所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、前記回転角ηiを所定の定数Ki倍した回転角Kiηiが前記所定の値の範囲内である場合は、前記回転軸ベクトルViと前記回転角Kiηiとによって規定される4元数を積算回転4元数とし、前記回転角Kiηiが前記所定の値の範囲内でない場合は、前記回転軸ベクトルViと前記所定の値の範囲内の回転角とによって規定される4元数を積算回転4元数とする積算回転演算部と、
    ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、前記回転角ηdを所定の定数Kd倍した回転角Kdηdが前記所定の値の範囲内である場合は、前記回転軸ベクトルVdと前記回転角Kdηdとによって規定される4元数を差分回転4元数とし、前記回転角Kdηdが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVdと前記所定の値の範囲内の回転角とによって規定される4元数を差分回転4元数とする差分回転演算部と、
    を備え、
    前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数を乗算した結果の4元数を前記誤差4元数とすることを特徴とする姿勢信号演算装置。
  6. 請求項1に記載の姿勢信号演算装置において、
    前記誤差演算部は、
    前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、
    前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、前記回転角ηpを所定の定数Kp倍した回転角Kpηpが所定の値の範囲内である場合は、前記回転軸ベクトルVpと前記回転角Kpηpとによって規定される4元数を倍率回転4元数とし、前記回転角Kpηpが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVpと前記所定の値の範囲内の回転角とによって規定される4元数を倍率回転4元数とする倍率回転演算部と、
    所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、前記回転角ηiを所定の定数Ki倍した回転角Kiηiが前記所定の値の範囲内である場合は、前記回転軸ベクトルViと前記回転角Kiηiとによって規定される4元数を積算回転4元数とし、前記回転角Kiηiが前記所定の値の範囲内でない場合は、前記回転軸ベクトルViと前記所定の値の範囲内の回転角とによって規定される4元数を積算回転4元数とする積算回転演算部と、
    ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、前記回転角ηdを所定の定数Kd倍した回転角Kdηdが前記所定の値の範囲内である場合は、前記回転軸ベクトルVdと前記回転角Kdηdとによって規定される4元数を差分回転4元数とし、前記回転角Kdηdが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVdと前記所定の値の範囲内の回転角とによって規定される4元数を差分回転4元数とする差分回転演算部と、
    のいずれか1つを備え、
    前記倍率回転4元数、前記積算回転4元数、及び前記差分回転4元数のいずれか1つを前記誤差4元数とすることを特徴とする姿勢信号演算装置。
  7. 請求項1に記載の姿勢信号演算装置において、
    前記誤差演算部は、
    前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を距離4元数とする距離演算部と、
    前記距離4元数が表す回転軸ベクトルVp及び回転角ηpを求め、前記回転角ηpを所定の定数Kp倍した回転角Kpηpが所定の値の範囲内である場合は、前記回転軸ベクトルVpと前記回転角Kpηpとによって規定される4元数を倍率回転4元数とし、前記回転角Kpηpが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVpと前記所定の値の範囲内の回転角とによって規定される4元数を倍率回転4元数とする倍率回転演算部と、
    所定の期間内に得られる複数の前記距離4元数を乗算し、この乗算結果の4元数が表す回転軸ベクトルVi及び回転角ηiを求め、前記回転角ηiを所定の定数Ki倍した回転角Kiηiが前記所定の値の範囲内である場合は、前記回転軸ベクトルViと前記回転角Kiηiとによって規定される4元数を積算回転4元数とし、前記回転角Kiηiが前記所定の値の範囲内でない場合は、前記回転軸ベクトルViと前記所定の値の範囲内の回転角とによって規定される4元数を積算回転4元数とする積算回転演算部と、
    ある時刻に得られた前記距離4元数を当該時刻よりも前の時刻に得られた前記距離4元数で除算し、この除算結果の4元数が表す回転軸ベクトルVd及び回転角ηdを求め、前記回転角ηdを所定の定数Kd倍した回転角Kdηdが前記所定の値の範囲内である場合は、前記回転軸ベクトルVdと前記回転角Kdηdとによって規定される4元数を差分回転4元数とし、前記回転角Kdηdが前記所定の値の範囲内でない場合は、前記回転軸ベクトルVdと前記所定の値の範囲内の回転角とによって規定される4元数を差分回転4元数とする差分回転演算部と、
    のいずれか2つを備え、
    前記倍率回転4元数と前記積算回転4元数とを乗算した結果の4元数、前記倍率回転4元数と前記差分回転4元数とを乗算した結果の4元数、又は、前記積算回転4元数と前記差分回転4元数とを乗算した結果の4元数、を前記誤差4元数とすることを特徴とする姿勢信号演算装置。
  8. 請求項2から7に記載の姿勢信号演算装置において、
    前記距離演算部は、前記第1姿勢4元数を前記第2姿勢4元数で除算した結果の4元数を前記距離4元数とする代わりに、当該除算した結果の4元数を正規化し、この正規化した4元数を前記距離4元数とすることを特徴とする姿勢信号演算装置。
  9. 請求項1から8のいずれか1項に記載の姿勢信号演算装置において、
    前記運動体の姿勢を検出する姿勢検出センサの出力を用いて前記入力姿勢4元数を求める入力姿勢4元数演算部と、
    前記入力姿勢4元数から所定の周波数成分を抽出するフィルタと、
    をさらに備え、
    前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記入力姿勢4元数から前記フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することを特徴とする姿勢信号演算装置。
  10. 請求項1から8のいずれか1項に記載の姿勢信号演算装置において、
    前記運動体の姿勢の変化である微小回転角を表す微小回転信号に基づいて求めた4元数を微小回転4元数とする微小回転4元数演算部と、
    前記微小回転4元数と前記出力姿勢4元数とを用いて求めた4元数を前記入力姿勢4元数とする入力姿勢4元数演算部と、
    前記入力姿勢4元数から所定の周波数成分を抽出するフィルタと、
    をさらに備え、
    前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記入力姿勢4元数から前記フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することを特徴とする姿勢信号演算装置。
  11. 請求項1から8のいずれか1項に記載の姿勢信号演算装置において、
    前記運動体の姿勢を検出する第1姿勢検出センサの出力を用いて前記入力4元数を求める入力姿勢4元数演算部と、
    前記運動体の姿勢を検出するセンサであって前記第1姿勢検出センサと異なる特性を有する第2姿勢検出センサの出力を用いて求めた4元数を参照姿勢4元数とする参照姿勢4元数演算部と、
    をさらに備え、
    前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記参照姿勢4元数を前記第2姿勢4元数として取得することを特徴とする姿勢信号演算装置。
  12. 請求項1から8のいずれか1項に記載の姿勢信号演算装置において、
    前記運動体の姿勢の変化である微小回転角を表す微小回転信号に基づいて求めた4元数を微小回転4元数とする微小回転4元数演算部と、
    前記微小回転4元数と前記出力姿勢4元数とを用いて求めた4元数を前記入力姿勢4元数とする入力姿勢4元数演算部と、
    前記運動体の姿勢を検出する姿勢検出センサの出力を用いて求めた4元数を参照姿勢4元数とする参照姿勢4元数演算部と、
    をさらに備え、
    前記誤差演算部は、前記入力姿勢4元数を前記第1姿勢4元数として取得し、前記参照姿勢4元数を前記第2姿勢4元数として取得することを特徴とする姿勢信号演算装置。
  13. 請求項11又は12に記載の姿勢信号演算装置において、
    前記入力姿勢4元数から所定の周波数成分を抽出する第1フィルタをさらに備え、
    前記誤差演算部は、前記入力姿勢4元数から前記第1フィルタが抽出した周波数成分の4元数を前記第1姿勢4元数として取得することを特徴とする姿勢信号演算装置。
  14. 請求項11から13のいずれか1項に記載の姿勢信号演算装置において、
    前記参照姿勢4元数から所定の周波数成分を抽出する第2フィルタをさらに備え、
    前記誤差演算部は、前記参照姿勢4元数から前記第2フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することを特徴とする姿勢信号演算装置。
  15. 請求項12に記載の姿勢信号演算装置において、
    前記入力姿勢4元数から所定の低域周波数成分を抽出する第1フィルタと、
    前記参照姿勢4元数から所定の低域周波数成分を抽出する第2フィルタと、
    をさらに備え、
    前記微小回転信号は、前記運動体の角速度を検出する角速度センサの出力から得られる信号であり、
    前記姿勢検出センサは、前記運動体の加速度を検出する加速度センサであり、
    前記誤差演算部は、前記入力姿勢4元数から前記第1フィルタが抽出した周波数成分の4元数を前記第1姿勢4元数として取得し、前記参照姿勢4元数から前記第2フィルタが抽出した周波数成分の4元数を前記第2姿勢4元数として取得することを特徴とする姿勢信号演算装置。
JP2007160599A 2007-06-18 2007-06-18 姿勢信号演算装置 Expired - Fee Related JP5161498B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007160599A JP5161498B2 (ja) 2007-06-18 2007-06-18 姿勢信号演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007160599A JP5161498B2 (ja) 2007-06-18 2007-06-18 姿勢信号演算装置

Publications (2)

Publication Number Publication Date
JP2008310767A JP2008310767A (ja) 2008-12-25
JP5161498B2 true JP5161498B2 (ja) 2013-03-13

Family

ID=40238282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007160599A Expired - Fee Related JP5161498B2 (ja) 2007-06-18 2007-06-18 姿勢信号演算装置

Country Status (1)

Country Link
JP (1) JP5161498B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5747752B2 (ja) * 2011-09-06 2015-07-15 トヨタ自動車株式会社 姿勢推定装置、姿勢推定方法、姿勢推定プログラム
CN104237380B (zh) * 2014-10-10 2017-01-18 北京理工大学 复杂构件机械手扫查位姿的四元数转换方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161504A (ja) * 1988-12-14 1990-06-21 Japan Aviation Electron Ind Ltd 姿勢角制御装置
JP3200059B2 (ja) * 1990-03-30 2001-08-20 株式会社東芝 ロボットの制御装置
JPH095104A (ja) * 1995-06-23 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> 移動物体の三次元姿勢角測定法および三次元姿勢角計測装置
JP2904118B2 (ja) * 1996-05-27 1999-06-14 日本電気株式会社 姿勢角検出装置及び方法
US6377906B1 (en) * 2000-02-03 2002-04-23 Independence Technology, L.L.C. Attitude estimation in tiltable body using modified quaternion data representation
JP2001293638A (ja) * 2000-02-10 2001-10-23 Fanuc Ltd 制御装置
DE60336519D1 (de) * 2002-04-26 2011-05-05 Honda Motor Co Ltd Selbstpositionsabschätzvorrichtung für mobile Roboter mit Beinen
JP2004053530A (ja) * 2002-07-23 2004-02-19 National Institute Of Advanced Industrial & Technology 移動体の高精度姿勢検出方法及びその装置
JP2006038650A (ja) * 2004-07-27 2006-02-09 Sumitomo Precision Prod Co Ltd 姿勢計測方法、姿勢制御装置、方位計及びコンピュータプログラム
JP4615287B2 (ja) * 2004-11-01 2011-01-19 東京計器株式会社 方位姿勢検出装置

Also Published As

Publication number Publication date
JP2008310767A (ja) 2008-12-25

Similar Documents

Publication Publication Date Title
JP4876204B2 (ja) 小型姿勢センサ
CN109550219B (zh) 一种运动信息的确定方法、系统及移动设备
US10247748B2 (en) Method to reduce data rates and power consumption using device based attitude generation
JP5643334B2 (ja) 角速度検出装置、角速度検出方法、移動状態検出装置およびナビゲーション装置
JP2007041733A (ja) 運動体の姿勢角検出装置
CN108225370B (zh) 一种运动姿态传感器的数据融合与解算方法
US10018468B2 (en) Physical-quantity detection circuit, physical-quantity sensor, and electronic device
CN107917707B (zh) 一种任意姿态下行人方向的确定方法、装置及电子设备
JP7025215B2 (ja) 測位システム及び測位方法
Edwan et al. Reduced DCM based attitude estimation using low-cost IMU and magnetometer triad
CN112504298B (zh) 一种gnss辅助的dvl误差标定方法
CN106815868A (zh) 摄像头实时标定方法、系统和装置
US11340247B2 (en) Method to reduce data rates and power consumption using device based attitude generation
CN109739088B (zh) 一种无人船有限时间收敛状态观测器及其设计方法
CN112985384B (zh) 一种抗干扰磁航向角优化系统
JP2002323322A (ja) 慣性計測装置を用いた姿勢推定装置及び方法並びにプログラム
JP5161498B2 (ja) 姿勢信号演算装置
CN106595669B (zh) 一种旋转体姿态解算方法
Wöhle et al. A robust quaternion based Kalman filter using a gradient descent algorithm for orientation measurement
JP2006038650A (ja) 姿勢計測方法、姿勢制御装置、方位計及びコンピュータプログラム
KR101858976B1 (ko) 자세 및 방위각 측정장치의 가속도센서 신호처리 방법
KR101878253B1 (ko) 자세 및 방위각 측정장치의 지자기센서 신호처리 방법
Wang et al. Three dimensional attitude estimation via the triad algorithm and a time-varying complementary filter
JP6536162B2 (ja) 移動情報計算方法、移動情報計算装置、及び移動情報計算プログラム
US9921335B1 (en) Systems and methods for determining linear acceleration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121214

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees