JP2009507272A - 運動体の姿勢角検出装置 - Google Patents

運動体の姿勢角検出装置 Download PDF

Info

Publication number
JP2009507272A
JP2009507272A JP2008524609A JP2008524609A JP2009507272A JP 2009507272 A JP2009507272 A JP 2009507272A JP 2008524609 A JP2008524609 A JP 2008524609A JP 2008524609 A JP2008524609 A JP 2008524609A JP 2009507272 A JP2009507272 A JP 2009507272A
Authority
JP
Japan
Prior art keywords
angular velocity
posture
acceleration
posture angle
angle
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.)
Granted
Application number
JP2008524609A
Other languages
English (en)
Other versions
JP4751930B2 (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 JP2008524609A priority Critical patent/JP4751930B2/ja
Publication of JP2009507272A publication Critical patent/JP2009507272A/ja
Application granted granted Critical
Publication of JP4751930B2 publication Critical patent/JP4751930B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37024Measure single value, parameter with two detectors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37388Acceleration or deceleration, inertial measurement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40536Signal processing for sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41166Adaptive filter frequency as function of oscillation, rigidity, inertia load
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42152Learn, self, auto tuning, calibrating, environment adaptation, repetition

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Gyroscopes (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Manipulator (AREA)
  • Navigation (AREA)

Abstract

角速度センサ(10)で検出された角速度は、微小角行列演算器(12)、行列加算演算器(14)で積分され、行列姿勢角演算器(16)で姿勢角(角速度姿勢角)に復元される。加速度センサ(20)で検出された加速度は、傾斜角演算器(22)、加速度行列演算器(24)で姿勢行列が演算され、行列姿勢角演算器(26)で姿勢角(加速度姿勢角)に復元される。ローパスフィルタ(18)、(28)はそれぞれの低域成分を抽出し、差分器(30)で両者の差分を演算してドリフト分のみを抽出する。減算器(32)で角速度姿勢角からドリフト分を除去して出力装置(34)から出力し、また姿勢角行列演算器(36)で姿勢行列に変換して行列加算演算器(14)にフィードバックする。

Description

本発明は運動体の姿勢角検出装置、特にロボット等の運動体の姿勢角を高精度に検出する技術に関する。
ロボット等の移動体の姿勢制御に加速度センサや角速度センサが用いられている。直交する3軸をx軸、y軸、z軸とすると、各軸方向の加速度を3個の加速度センサで検出し、各軸回りの角速度を3個の角速度センサで検出する。軸回りの角度、あるいは姿勢角は、角速度センサの出力を時間積分して得られ、ロール角、ピッチ角、ヨー角が算出される。
特開2004−268730号公報には、ジャイロセンサから出力される加速度データ及び姿勢データを用いて姿勢制御する技術が開示されている。
しかしながら、角速度センサ(ヨーレートセンサ)のオフセット及びドリフトが大きいと、角速度の積分により姿勢角を求めるため、オフセット、ドリフト値が徐々に蓄積して極めて大きな値となり、時間とともに増加、発散してしまう。これを防止するために、オフセット、ドリフトの小さい角速度センサを用いればよいが、このような角速度センサは大型で重く、かつ高価である。
一方、加速度センサから重力方向を検出し、角速度センサから得られる姿勢角をこの重力方向を用いて適当なタイミングで修正することで積分による誤差の蓄積を補正することも可能であるが、運動体の運動の変化が速く重力以外の加速度が発生する頻度が高い用途に用いることができない。
本発明の目的は、高価で高精度な角速度センサを用いることなく、簡易な構成で積分誤差の蓄積を防止し運動体の姿勢角を検出することができる装置を提供することにある。
本発明は、運動体の角速度を検出する角速度センサと、前記運動体の加速度を検出する加速度センサと、前記角速度から前記運動体の姿勢角を角速度姿勢角として演算する角速度姿勢角演算手段と、前記加速度から運動体の姿勢角を加速度姿勢角として演算する加速度姿勢角演算手段と、前記角速度姿勢角の低域成分を抽出する角速度姿勢角低域成分抽出手段と、前記加速度姿勢角の低域成分を抽出する加速度姿勢角低域成分抽出手段と、前記角速度姿勢角の低域成分と前記加速度姿勢角の低域成分の差分を誤差として演算する差分演算手段と、前記角速度姿勢角から前記誤差を除去する誤差除去手段と、前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記運動体の姿勢角として出力する出力手段と、前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記角速度姿勢角演算手段にフィードバックするフィードバック手段とを有する。
ここで、前記角速度姿勢角低域成分抽出手段及び前記加速度姿勢角低域成分抽出手段は、前記角速度姿勢角をsin変換及びcos変換する手段と、前記sin変換及びcos変換して得られた値の低域成分を抽出する手段と、低域成分が抽出された値をatan2演算、あるいはatan演算する手段とを有する。
また、本発明は、運動体の角速度を検出する角速度センサと、前記運動体の加速度を検出する加速度センサと、前記角速度から前記運動体の姿勢角を角速度姿勢角として演算する角速度姿勢角演算手段と、前記加速度から運動体の姿勢角を加速度姿勢角として演算する加速度姿勢角演算手段と、前記角速度姿勢角と前記加速度姿勢角の差分を演算する差分演算手段と、前記差分の低域成分を誤差として抽出する低域成分抽出手段と、前記角速度姿勢角から前記誤差を除去する誤差除去手段と、前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記運動体の姿勢角として出力する出力手段と、前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記角速度姿勢角演算手段にフィードバックするフィードバック手段と、を有することを特徴とする運動体の姿勢角検出装置である。
また、本発明は、運動体の角速度を検出する角速度センサと、前記運動体の加速度を検出する加速度センサと、前記角速度から微小時間ts経過後の微小回転角を規定する微小角行列を演算する手段と、前記微小角行列とフィードバックされた姿勢行列とから新たな角速度系姿勢行列を演算する手段と、前記加速度から傾斜角を演算する手段と、前記傾斜角から加速度系姿勢行列を演算する手段と、前記角速度系姿勢行列の低域成分を抽出する角速度系低域成分抽出手段と、前記加速度系姿勢行列の低域成分を抽出する加速度系低域成分抽出手段と、前記角速度系姿勢行列の低域成分と前記加速度系姿勢行列の低域成分の差分を誤差として演算する差分演算手段と、前記角速度系姿勢行列から前記誤差を除去する誤差除去手段と、前記誤差除去手段で前記誤差が除去された角速度系姿勢行列から姿勢角を演算し前記運動体の姿勢角として出力する出力手段と、前記誤差除去手段で前記誤差が除去された角速度系姿勢行列を前記新たな角速度系姿勢行列を演算する手段にフィードバックするフィードバック手段とを有する。
また、本発明は、運動体の角速度を検出する角速度センサと、前記運動体の加速度を検出する加速度センサと、前記角速度から微小時間ts経過後の微小回転角を規定する微小角4元数を演算する手段と、前記微小角4元数とフィードバックされた4元数とから新たな角速度系4元数を演算する手段と、前記加速度から傾斜角を演算する手段と、前記傾斜角から加速度系4元数を演算する手段と、前記角速度系4元数の低域成分を抽出する角速度系低域成分抽出手段と、前記加速度系4元数の低域成分を抽出する加速度系低域成分抽出手段と、前記角速度系4元数の低域成分と前記加速度系4元数の低域成分の差分を誤差として演算する差分演算手段と、前記角速度系4元数から前記誤差を除去する誤差除去手段と、前記誤差除去手段で前記誤差が除去された角速度系4元数から姿勢角を演算し前記運動体の姿勢角として出力する出力手段と、前記誤差除去手段で前記誤差が除去された角速度系4元数を前記新たな角速度系4元数を演算する手段にフィードバックするフィードバック手段とを有する。
本発明において、角速度センサで検出された角速度に基づき演算された姿勢角である角速度姿勢角は低域成分抽出手段に供給される。角速度姿勢角には、積分誤差の蓄積によるドリフト分が含まれており、姿勢角の真値を高域成分と低域成分に分けると、(高域の姿勢角真値+低域の姿勢角真値+低域のドリフト分)が含まれる。低域成分抽出手段は、これらの成分のうち高域成分を除去し、(低域の姿勢角真値+低域のドリフト分)を抽出する。一方、加速度センサで検出された加速度に基づき演算された姿勢角である加速度姿勢角も低域成分抽出手段に供給される。加速度姿勢角には、積分誤差の蓄積によるドリフト分はなく、高域のノイズ成分と低域の姿勢角真値が含まれる。低域成分抽出手段は、これらの成分のうち高域成分を除去し、低域の姿勢角真値を抽出する。したがって、これらの低域成分抽出手段の出力を差分演算手段に供給し、(低域の姿勢角真値+低域のドリフト分)−(低域の姿勢角真値)を演算することで、ドリフト分(誤差)のみを抽出することができる。抽出されたドリフト分を角速度姿勢角から除去することで、高精度に姿勢角を検出できる。また、抽出されたドリフト分を角速度姿勢角から除去してフィードバックすることで、積分誤差の蓄積防止、出力応答性の向上、出力の安定化が実現できる。なお、高域のノイズ分は被測定体の運動に伴う重力以外の加速度成分と振動加速度ノイズ、電気的なノイズ成分からなる。特に被測定体の運動に伴う重力以外の加速度成分によるノイズは、ロボット等の小型で運動量が多い被測定体では大きなノイズ成分となり姿勢角を得るために大きな障害となる。
また、本発明において、本発明において、角速度センサで検出された角速度に基づき演算された角速度系姿勢行列は低域成分抽出手段に供給される。角速度系姿勢行列には、積分誤差の蓄積によるドリフト分が含まれており、姿勢の真値を高域成分と低域成分に分けると、(高域の姿勢真値+低域の姿勢真値+低域のドリフト分)が含まれる。低域成分抽出手段は、これらの成分のうち高域成分を除去し、(低域の姿勢真値+低域のドリフト分)を抽出する。一方、加速度センサで検出された加速度に基づき演算された加速度系姿勢行列も低域成分抽出手段に供給される。加速度系姿勢行列には、積分誤差の蓄積によるドリフト分はなく、高域のノイズ成分と高域の姿勢真値成分と低域の姿勢真値が含まれる。低域成分抽出手段は、これらの成分のうち高域成分を除去し、低域の姿勢真値を抽出する。したがって、これらの低域成分抽出手段の出力を差分演算手段に供給し、(低域の姿勢真値+低域のドリフト分)−(低域の姿勢真値)を演算することで、ドリフト分(誤差)のみを抽出することができる。抽出されたドリフト分を角速度系姿勢行列から除去することで、誤差のない角速度系姿勢行列が得られ、この角速度系姿勢行列から姿勢角を演算することで、高精度に姿勢角を検出できる。また、抽出されたドリフト分を角速度系姿勢行列から除去してフィードバックすることで、積分誤差の蓄積防止、出力応答性の向上、出力の安定化が実現できる。また、角速度系姿勢行列から4元数を演算するとともに、加速度系姿勢行列から4元数を演算し、4元数の段階で低域成分を抽出してその差分を演算することによっても、同様にドリフト分を抽出することができる。姿勢行列と4元数は実質的に等価であるが、4元数を用いると演算数が削減され処理時間が短縮化される利点がある。
本発明によれば、高価で大型、重量のあるセンサを用いることなく積分誤差の蓄積を防止して運動体の姿勢角を高精度に検出することができる。
以下、図面に基づき本発明の実施形態について、運動体としてロボット、姿勢角検出装置としてセンサユニットを例にとり説明する。
まず、第1実施形態について説明する。図1に、本実施形態に係る運動体の姿勢角検出装置の構成ブロック図を示す。ロボットの所定位置に角速度センサ10及び加速度センサ20を有するセンサユニット1が設けられる。
角速度センサ10は、センサ座標系(センサユニットの座標系)における角速度を検出する。各軸回りの角速度をωx、ωy、ωzとする。角速度センサ10は、検出した角速度を微小角行列演算器12に出力する。
微小角行列演算器12は、基準座標系XYZから見たセンサ座標系xyzを算出するための座標変換行列を演算する。微小角行列については後述する。微小角行列演算器12は、演算した微小角行列を行列加算演算器14に出力する。
行列加算演算器14は、微小角行列演算器12から入力した、角速度センサ10で検出された現在の微小角行列と、出力側からフィードバックされた姿勢角行列とを加算することで積分演算する。行列加算演算器14は、積分した行列を行列姿勢角演算器16に出力する。
行列姿勢角演算器16は、入力した積分行列から姿勢角を演算し、角速度姿勢角SYAとしてローパスフィルタLPF18に出力するとともに、減算器32にも出力する。
ローパスフィルタ(角速度系ローパスフィルタ)18は、角速度姿勢角SYAから低域成分を抽出して差分器30に出力する。角速度姿勢角SYAには真の姿勢角(姿勢角真値)と積分誤差によるドリフト分が含まれており、ローパスフィルタ18は、角速度姿勢角SYAから高域の姿勢角真値を除去し、低域の姿勢角真値とドリフト分を抽出する。
一方、加速度センサ20は、センサ座標系xyzの各軸方向の加速度を検出する。検出された加速度をGx、Gy、Gzとする。加速度センサ20は、検出された加速度を傾斜角演算器22に出力する。
傾斜角演算器22は、センサ座標系xyzの各軸と基準座標系XYZのZ軸との間の角度を演算する。演算された傾斜角をλx、λy、λzとする。傾斜角演算器22は、演算した傾斜角を加速度行列演算器24に出力する。
加速度行列演算器24は、入力した傾斜角を用いて基準座標系から見たセンサ座標系に対する姿勢行列を演算し、行列姿勢角演算器26に出力する。
行列姿勢角演算器26は、行列姿勢角演算器16と同様に、入力した行列から姿勢角を演算し、加速度姿勢角SGAとしてローパスフィルタLPF28に出力する。
ローパスフィルタ(加速度系ローパスフィルタ)28は、カットオフ周波数及び減衰率がローパスフィルタ18と同一に設定されたフィルタであり、加速度姿勢角SGAから低域成分を抽出して差分器30に出力する。加速度姿勢角SGAには高域成分に存在する高域の姿勢角偽値と低域成分に存在する低域の姿勢角真値が含まれている。加速度姿勢角には積分誤差によるドリフトは生じない。ローパスフィルタ28は、カットオフ周波数及び減衰率がローパスフィルタ18と同一に設定されたフィルタであるので、低域の姿勢角真値が周波数特性も含めて角速度系と加速度系と同一となり、減算器32による演算で正確に両者が減算により除去され、ドリフト成分のみが出力される。但し、角速度系と加速度系からもたらされる姿勢角相当成分の応答性が予め分かっている場合は、それぞれの特性に合わせてローパスフィルタのカットオフ周波数と減衰率を調整することができる。これは、適応範囲が狭いが、運動特性が予め分かっている場合には有効な方法となり得る。
以上のように、差分器30にはローパスフィルタ18から(低域の姿勢角真値+ドリフト分)、ローパスフィルタ28から(低域の姿勢角真値)が入力される。差分器30は両者の差分を演算し、(低域の姿勢角真値+ドリフト分)−(低域の姿勢角真値)=ドリフト分を抽出する。差分器30は、差分演算して得られたドリフト分を減算器32に出力する。
減算器32は、行列姿勢角演算器16から入力した角速度姿勢角SYAと差分器30から入力したドリフト分との差分を演算し、行列姿勢角演算器16からの角速度姿勢角SYAに含まれるドリフト分を除去する。上記のように、行列姿勢角演算器16からの角速度姿勢角SYAには姿勢角真値(高域成分+低域成分)とドリフト分が含まれており、減算器32は減算により、(低域姿勢角真値+ドリフト分)−(ドリフト分)=低域姿勢角真値を抽出する。減算器32は、減算して得られた姿勢角真値を出力装置34に出力する。また、減算器32は、姿勢角真値を姿勢角行列演算器36に出力する。
姿勢角行列演算器36は、入力した姿勢角から姿勢角行列を演算し、行列加算演算器14にフィードバックする。姿勢角行列演算器36は、行列姿勢角演算器16の逆演算を実行して姿勢角から姿勢角行列を生成する。行列加算演算器14は、フィードバックされた姿勢角行列と、新たに角速度センサ10で検出された角速度に基づいて演算された微小角行列とを加算することで積分演算を実行し、角速度から姿勢角を演算する。
出力装置34は、減算器32からの、ドリフト分が除去された姿勢角を外部に出力する。ロボットの場合、メインプロセッサ(あるいはホストプロセッサ)がセンサユニットで検出された姿勢角等を入力してロボットの姿勢をフィードバック制御する。出力装置34は、メインプロセッサからのコマンドに従い、所定のタイミングで姿勢角をメインプロセッサに出力する。なお、角速度センサ10で検出された角速度や加速度センサで検出された加速度を出力装置34に供給してもよく、出力装置34は姿勢角に加え、角速度や加速度をメインプロセッサに出力してもよい。いずれを出力するかはメインプロセッサからのコマンドあるいは設定パラメータにより決定される。出力装置34は、あるタイミングでは角速度、加速度及び姿勢角の全てをメインプロセッサに出力し、別のタイミングではこれらのいずれかを選択的に出力する。図中に示さないが、姿勢角行列演算器36で得られた姿勢行列を出力装置34を介してロボットへ出力することも可能である。ロボット内部で行列演算する場合に有効な手法である。
以上のようにして、ドリフト分が除去された高精度な姿勢角が検出され出力される。加速度センサ20で検出される各軸方向の加速度に基づいてドリフト分を抽出し、このドリフト分を角速度姿勢角から除去し、フィードバックしているので、角速度センサ10としては高価で大型、高精度なセンサを用いる必要はない。
以下、微小角行列演算器12、行列姿勢角演算器16、傾斜角演算器22及び行列姿勢角演算器26における演算について説明する。
まず、姿勢行列について説明する。基準座標系XYZにおけるセンサ座標系の表記法として、離散時間nにおける姿勢行列T(n)で表す。姿勢行列T(n)は、(1)式に示すように4×4の要素から構成される。
Figure 2009507272
行列T(n)の意味として、第一列(a,b,c)、第二列(d,e,f)、第三列(g,h,i)は、それぞれ基準座標系からみたセンサ座標系nのx軸、y軸、z軸の方向ベクトルを表す。第四列は、基準座標系におけるセンサ座標系nの原点位置を表す(一般に並進が有る場合はこの第四列に並進量が表される)。原点の移動がない場合は、位置の変換を表す第4列の1〜3行目の要素を0とおく。図7に示すように、センサ座標系nの原点Oが、基準座標系において(0,0,0)の位置にあり、x軸ベクトルは基準座標系上の(a,b,c)、y軸ベクトルは(d,e,f)、z軸ベクトルは(g,h,i)の成分を持つ。
姿勢角ロール・ピッチ・ヨー角から姿勢行列T(n)を求める手法を以下に説明する。減算器32からの姿勢角に基づき姿勢角行列演算器36で姿勢行列を演算する方法である。姿勢行列T(n)を表すために行列による回転変換は、回転軸についての順序を考慮する必要がある。図8に示すように、ロボットで一般的に用いられるロール・ピッチ・ヨー角を用いる場合は、最初にz軸周りの回転φ、次に回転後のy軸周りの回転θ、最後に回転後のx軸周りの回転ψの3回の回転が生じたと定義する(軸の回転順番が規定されている点に注意)。
ロール・ピッチ・ヨー角による変換行列をRPY(φ、θ、ψ)とする。RPY(φ、θ、ψ)は回転変換行列を左から右に掛けた行列の積となり、式(2)で表される。
Figure 2009507272
式(2)は具体的に式(3)で表される。
Figure 2009507272
式(3)を書き下すと、式(4)で表記できる。
Figure 2009507272
なお、ロール・ピッチ・ヨー角の代わりに、オイラー角を姿勢角として用いることもできる。オイラー角では、最初にz軸周りの回転φ、次に回転後のy軸周りの回転θ、最後に回転後のz軸周りの回転ψが起こった時の変換行列をEuler(Eφ、Eθ、Eψ)とおき、式(5)で表される。
Figure 2009507272
式(5)は具体的に式(6)で表される。
Figure 2009507272
式(6)を書き下すと、式(7)で表記できる。
Figure 2009507272
基準座標系をO−XYZ、初期のセンサ座標系をO0−x000とおく。基準座標系と時刻t=0時の座標系O0−x000の関係を、座標変換A(0)で関係づける。時刻t=tn時の座標系をOn−xnnnとおく。各座標系の原点O,O0,Onは位置の移動がなく同一とする。その後運動体の姿勢変化により、図9に示すように、座標系O(n-1)−x(n-1)yz(n-1)からOn−xnnnへ変化したとき、O(n-1)−x(n-1)(n-1)(n-1)とOn−xnnnはセンサ出力から求まる行列A(n)で関係づけられる。基準座標系からみたセンサ座標系T(n)は、変換A(n)を右からかけていくことで式(8)で求める。センサ座標の原点が時間と共に移動する場合は、行列Aの第4列の1〜3行目の要素に時間と共に移動した座標が逐次入れられる。行列Aの第4列はセンサ座標系の回転に対しては影響を与えないので、ここでは特に述べない。
Figure 2009507272
次に、センサ出力から微小回転行列A(n)行列を導出する方法について説明する。角速度センサ10からの角速度に基づき微小角行列演算器12で微小角行列を演算する方法である。3個の角速度センサは、センサ座標系の各軸に設置されており、図10に示すように、センサx,y,z軸まわりの角速度を計測している。式(4)において、回転角Δφ,Δθ,Δψが十分小さいとき、
Figure 2009507272
Figure 2009507272
である。これよりセンサx軸回りの微小回転角Δψ、センサy軸回りの微小回転角Δθ、センサz軸回りの微小回転角Δφを用いて式(11)で表すことができる。式(11)の結果は行列の各要素が独立に各微小回転角で表せるため、回転の順番に依存しないと近似している。
Figure 2009507272
微小角とセンサ出力との間には、微小回転角Δψ、Δθ、Δφ、角速度センサ出力ωx,ωy,ωz,サンプリング周期tsから、式(12)〜(13)の関係がある。サンプリング周期tsが回転運動に対して十分早い周期としているため、サンプリング周期tsの時間内での回転は十分小さく、微小回転角とみなすことができる。
Figure 2009507272
Figure 2009507272
Figure 2009507272
このためA(n)行列は式(15)で表される。
Figure 2009507272
次に、姿勢行列から姿勢角を求める手法について述べる。行列加算演算器14からの姿勢行列(積分後の姿勢行列)に基づき行列姿勢角演算器16で姿勢角を演算する方法である。また、加速度行列演算器24からの姿勢行列に基づき行列姿勢角演算器26で姿勢角を演算する方法でもある。
姿勢行列T(n)が式(16)で表されている。
Figure 2009507272
ヨー角φは、
Figure 2009507272
姿勢角φの変域は、−π<f≦πである。
ピッチ角θは、
Figure 2009507272
姿勢角θの変域は、−π/2<θ<π/2である。
ロール角ψは、
Figure 2009507272
姿勢角ψの変域は、 −π<ψ≦πである。
オイラー角を用いる場合は、式(21)〜(23)を使う。
Figure 2009507272
Eφは、
Figure 2009507272
Eθは、
Figure 2009507272
Eψは、
Figure 2009507272
次に、行列の正規化について説明する。
Figure 2009507272
姿勢行列T(n)では、演算後、姿勢行列の各列が単位ベクトルとならないことがあるため式(24)の各列ベクトルの大きさが1になるように式(25)で正規化を行う。後述する図5における正規化・直交化器54、56の演算である。
Figure 2009507272
ここでp1,p2は式(26)、(27)で与えられる。
Figure 2009507272
Figure 2009507272
その後、正規化後の各要素をあらためて、
Figure 2009507272
と置き直す。
さらに、行列の直交化について説明する。
Figure 2009507272
姿勢行列T(n)では演算後、姿勢行列の各列が直交した軸とならないことがあるため、式(29)の各列ベクトルが直交する直交化処理を行う(この場合、z軸を基準としている)。z軸、y軸に直交する新しいx’軸を得るため、a’,b’,c’を求める。
Figure 2009507272
Figure 2009507272
Figure 2009507272
次に、z軸、x’軸に直交する新しいy’軸を得るために、d’,e’,f’を求める。
Figure 2009507272
Figure 2009507272
Figure 2009507272
求めたa’〜f’から、直交化した姿勢行列T(n)を得る。
Figure 2009507272
ここで、atan2について説明する。atan2(y,x)は、2変数x,yを持つ計算機用関数である。通常使われるatan関数よりも適用範囲が広い。
Figure 2009507272
−π<ξ≦π
は、
x>0、y>0の時
Figure 2009507272
x>0、y<0の時
Figure 2009507272
となる。同様にして、
x<0,y>0の時
ξ=π+tan-1(y/x)
x<0,y<0の時
ξ=−π+tan-1(y/x)
x=0,y>0の時
ξ=π/2
x=0,y<0の時
ξ=−π/2
x=0,y=0の時
ξ=0
となる。
次に、傾斜角の演算について説明する。加速度センサ20からの加速度に基づき、傾斜角演算器22で傾斜角を演算する方法である。傾斜角とは、センサx、y、z軸と基準Z軸との間の角度λx、λy、λzである。すなわち、
λx:x軸とZ軸の間の角度
λy:y軸とZ軸の間の角度
λz:z軸とZ軸の間の角度
であり、λx、λy、λzの範囲は、0≦(λx、λy、λz)≦πである。図11に、傾斜角と重力ベクトルを示す。
センサ座標に配置された加速度センサから以下のように傾斜角を求める。加速度Gx、Gy、Gzを式(40)〜(42)用いて正規化し、正規化後の加速度Gx’、Gy’、Gz’を求める。
Figure 2009507272
Figure 2009507272
Figure 2009507272
加速度Gx’、Gy’、Gz’から、式(43)〜(45)を用いて傾斜角λx、λy、λzを求める。
Figure 2009507272
Figure 2009507272
Figure 2009507272
次に、傾斜角λx、λy、λzから姿勢行列T(n)を求める手法について述べる。傾斜角演算器22からの傾斜角に基づき、加速度行列演算器24で姿勢行列を求める演算である。
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
以上の結果から、姿勢行列T(n)を求める。
次に、姿勢行列T(n)から傾斜角λx、λy、λzを求める手法について述べる。
Figure 2009507272
Figure 2009507272
Figure 2009507272
Figure 2009507272
次に第2実施形態について説明する。図2に、本実施形態の構成ブロック図を示す。図1と異なる点は、差分器30はローパスフィルタ18の出力とローパスフィルタ28の出力との差分を演算して倍率器38、積算器40及び差分器42に出力する点である。倍率器38、積算器40、差分器42は、PID(Proportional Integral Differential) 制御を実行する。すなわち、倍率器38は、差分器30からのドリフト分に予め設定された係数を乗じる演算を行い、その値(比例項)を減算器32に出力する。積算器40は、差分器30からのドリフト分を時間積算した値に予め設定された係数を乗じる演算を行い、その値(積分項)を減算器32に出力する。差分器42は、差分器30からのドリフト分の時間差分を演算した値に予め設定された係数を乗じる演算を行い、その値(微分項)を減算器32に出力する。各係数は固定でもよいが、後述するように可変でもよい。減算器32は、行列姿勢角演算器16から入力した角速度姿勢角からこれらの項の和(比例項+積分項+微分項)を減算し、ドリフト分を除去した運動体の姿勢角として出力装置34及び姿勢角行列演算器36に出力する。減算器32の出力は姿勢角行列演算器36で姿勢行列に変換されてフィードバックされるが、倍率器38がフィードバックの程度を主に決定し、積算器40が長時間ずれ量を蓄積してフィードバック量を決定し、差分器42が短時間変化に対するフィードバック量を決定する。このようなPID制御を用いることにより、短時間特性と長時間特性をともに向上できる。
次に第3実施形態について説明する。図3に、本実施形態の構成ブロック図を示す。図2と異なる点は、外部姿勢角44からのZ軸回りの姿勢角、すなわちヨー角を行列姿勢角演算器26に供給する点である、加速度センサ20はx、y、z各軸方向の加速度を検出するが、Gセンサを用いるとZ軸回りの姿勢角であるヨー角φは不明であり、したがってヨー角φは一定値に固定する必要があるが、本実施形態ではヨー角を別途検出して行列姿勢角演算器26に供給することで、ヨー角φも正確に算出できる。具体的には、行列姿勢角演算器26は、上記の演算により姿勢行列T(n)から姿勢角としてヨー角φ、ピッチ角θ、ロール角ψを演算するが、このうちのヨー角φを外部から入力したヨー角φに置換する。これにより、ヨー角φの発散も防止できる。
次に第4実施形態について説明する。図4に、本実施形態の構成ブロック図を示す。上記の各実施形態では、行列姿勢角演算器16からの角速度姿勢角をローパスフィルタ18に出力するとともに、行列姿勢角演算器26からの加速度姿勢角をローパスフィルタ28に出力しているが、本実施形態では、行列加算演算器14からの姿勢行列をローパスフィルタ(ALPF)46に出力するとともに、加速度行列演算器24からの姿勢行列をローパスフィルタ(ALPF)48に出力し、姿勢角段階で低域成分を抽出するのではなく、行列段階で低域成分を抽出する。ローパスフィルタ46、48は、4×4の姿勢行列の各行列成分に適用され、それぞれの低域成分を抽出する。ローパスフィルタ46、48のカットオフ周波数及び減衰率は同一に設定される。ローパスフィルタ(角速度系)46は、姿勢行列から低域成分を抽出した後、姿勢行列を行列姿勢角演算器50に出力する。行列姿勢角演算器50は、行列姿勢角演算器16と同様に姿勢行列から角速度姿勢角を演算し、差分器30に出力する。ローパスフィルタ46、48は、4×4の姿勢行列の内、回転を表す成分の第一列(a,b,c)、第二列(d,e,f)、第三列(g,h,i)、すなわち3×3の各行列成分に適用され、それぞれの低域成分を抽出することに簡略化することもできる。また、さらに3×3の各行列成分の内の対角成分3個と非対角成分の片側3個の計6個の成分にローパスフィルタを作用させて等価的に行列フィルタを形成させることも可能である。
また、ローパスフィルタ(加速度系)48は、姿勢行列から低域成分を抽出した後、姿勢行列を行列姿勢角演算器26に出力する。図3と同様に、外部の外部姿勢角44からのZ軸回りの姿勢角、すなわちヨー角を加速度系に供給してもよい。但し、図3では外部センサで検出したヨー角φを行列姿勢角演算器26に供給するが、本実施形態では加速度行列演算器24に供給する。これはもちろん、ローパスフィルタ48で姿勢行列の低域成分を抽出するためであり、外部センサで検出されたヨー角φも姿勢行列の成分として含める必要があるからである。
次に第5実施形態について説明する。図5に、本実施形態の構成ブロック図を示す。図4と異なる点は、ローパスフィルタ46、48の後段に正規化・直交化器54、56を付加した点である。ローパスフィルタ46、48で姿勢行列から低域成分を抽出すると、姿勢行列に歪みが生じ、正規性及び直交性が担保されなくなる。そこで、正規化・直交化器54、56で正規化、直交化することで歪みを修正する。正規化及び直交化の方法については上記のとおりである。
次に第6実施形態について説明する。
図6に、本実施形態の構成ブロック図を示す。図4と異なる点は、角速度センサ10からの角速度、及び加速度センサ20からの加速度を入力し、運動体であるロボットの運動に特有な周波数を検出する運動周波数検知器52を設ける点である。運動周波数検知器52は、角速度及び加速度から頻繁に現れる周波数成分を抽出し、ローパスフィルタ46、48に出力する。運動体としてのロボットが2足歩行する場合の、2足歩行に特有の周波数等が一例である。ローパスフィルタ46、48は、運動周波数検知器52から入力した周波数に応じてそのカットオフ周波数を適応的に調整する。運動周波数が増大するほど、ローパスフィルタ46、48はカットオフ周波数を上げるように調整する。また、運動周波数検知器52は、PID制御を実行する倍率器38、積算器40、差分器42それぞれに運動周波数を出力する。倍率器38、積算器40、差分器42は、入力した運動周波数に応じて乗算係数を調整する。このように、運動に特有な周波数に応じて適応的にカットオフ周波数やPID制御の係数を調整することで、応答性、追従性、及び適応性を向上できる。
次に第7実施形態について説明する。
図12に、本実施形態に係る運動体の姿勢角検出装置の構成ブロック図を示す。
角速度センサ10は、センサ座標系(センサユニットの座標系)における角速度を検出する。各軸回りの角速度をωx、ωy、ωzとする。角速度センサ10は、検出した角速度を微小角行列演算器12に出力する。
微小角行列演算器12は、基準座標系XYZから見たセンサ座標系xyzを算出するための座標変換行列を演算する。微小角行列については後述する。微小角行列演算器12は、演算した微小角行列を行列加算演算器14に出力する。
行列加算演算器14は、微小角行列演算器12から入力した、角速度センサ10で検出された現在の微小角行列と、出力側からフィードバックされた姿勢行列とを加算することで積分演算する。行列加算演算器14は、積分した行列(角速度系姿勢行列)をローパスフィルタ(ALPF)46に出力する。また、行列加算演算器14は、積分した行列を減算器32にも出力する。
ローパスフィルタ(角速度系ローパスフィルタ)46は、角速度系姿勢行列の各成分から低域成分を抽出して差分器30に出力する。角速度系姿勢行列には真の姿勢(姿勢真値)と積分誤差によるドリフト分が含まれており、ローパスフィルタ46は、角速度系姿勢行列から高域の姿勢真値を除去し、低域の姿勢真値とドリフト分を抽出する。
一方、加速度センサ20は、センサ座標系xyzの各軸方向の加速度を検出する。検出された加速度をGx、Gy、Gzとする。加速度センサ20は、検出された加速度を傾斜角演算器22に出力する。
傾斜角演算器22は、センサ座標系xyzの各軸と基準座標系XYZのZ軸との間の角度を演算する。演算された傾斜角をλx、λy、λzとする。傾斜角演算器22は、演算した傾斜角を加速度行列演算器24に出力する。
加速度行列演算器24は、入力した傾斜角を用いて基準座標系から見たセンサ座標系に対する姿勢行列を演算し、加速度系姿勢行列としてローパスフィルタ(ALPF)48に出力する。
ローパスフィルタ(加速度系ローパスフィルタ)48は、カットオフ周波数及び減衰率がローパスフィルタ46と同一に設定されたフィルタであり、加速度系姿勢行列から低域成分を抽出して差分器30に出力する。加速度系姿勢行列には高域に生じるノイズと高域の姿勢真値と低域の姿勢真値が含まれている。加速度系姿勢行列には積分誤差によるドリフトは生じない。ローパスフィルタ48は、カットオフ周波数及び減衰率がローパスフィルタ46と同一に設定されたフィルタであるので、低域の姿勢真値が周波数特性も含めて角速度系と加速度系と同一となり、減算器による減算で正確に両者が減算により除去され、ドリフト成分のみが出力される。但し、角速度系と加速度系からもたらされる姿勢相当成分の応答性が予め分かっている場合は、それぞれの特性に合わせてローパスフィルタのカットオフ周波数と減衰率を調整することができる。これは、適応範囲は狭いが、運動特性が予め分かっている場合には有効な方法となり得る。
以上のように、差分器30にはローパスフィルタ46から(低域の姿勢真値+ドリフト分)、ローパスフィルタ48から(低域の姿勢真値)が入力される。差分器30は両者の差分を演算し、(低域の姿勢真値+ドリフト分)−(低域の姿勢真値)=ドリフト分を抽出する。差分器30は、差分演算して得られたドリフト分を減算器32に出力する。
減算器32は、行列加算演算器14から入力した角速度系姿勢と差分器30から入力したドリフト分との差分(行列の差分)を演算し、行列加算演算器14からの角速度系姿勢行列に含まれるドリフト分を除去する。上記のように、行列加算演算器14からの角速度系姿勢行列には姿勢真値とドリフト分が含まれており、減算器32は減算により、(姿勢真値+ドリフト分)−(ドリフト分)=姿勢真値を抽出する。減算器32は、減算して得られた姿勢真値の角速度系姿勢行列を行列姿勢角演算器37に出力する。行列姿勢角演算器37は、姿勢行列から姿勢角を演算し、運動体の姿勢角として出力装置34に出力する。また、減算器32は、ドリフト分が除去された姿勢行列を行列加算演算器14にフィードバックする。行列加算演算器14は、フィードバックされた姿勢行列と、新たに角速度センサ10で検出された角速度に基づいて演算された微小角行列とを加算することで積分演算を実行し、角速度から新たな角速度系姿勢行列を演算する。
出力装置34は、行列姿勢角演算器37からの、ドリフト分が除去された姿勢角を外部に出力する。ロボットの場合、メインプロセッサ(あるいはホストプロセッサ)がセンサユニットで検出された姿勢角等を入力してロボットの姿勢をフィードバック制御する。出力装置34は、メインプロセッサからのコマンドに従い、所定のタイミングで姿勢角をメインプロセッサに出力する。なお、角速度センサ10で検出された角速度や加速度センサで検出された加速度を出力装置34に供給してもよく、出力装置34は姿勢角に加え、角速度や加速度をメインプロセッサに出力してもよい。いずれを出力するかはメインプロセッサからのコマンドあるいは設定パラメータにより決定される。出力装置34は、あるタイミングでは角速度、加速度及び姿勢角の全てをメインプロセッサに出力し、別のタイミングではこれらのいずれかを選択的に出力する。
以上のようにして、ドリフト分が除去された高精度な姿勢角が検出され出力される。加速度センサ20で検出される各軸方向の加速度に基づいてドリフト分を抽出し、このドリフト分を角速度姿勢から除去しフィードバックしているので、角速度センサ10としては高価で大型、高精度なセンサを用いる必要はない。
次に第8実施形態について説明する。
図13に、本実施形態の構成ブロック図を示す。図12と異なる点は、差分器30はローパスフィルタ46の出力とローパスフィルタ48の出力との差分を演算して倍率器38、積算器40及び差分器42に出力する点である。倍率器38、積算器40、差分器42は、PID制御を実行する。すなわち、倍率器38は、差分器30からのドリフト分に予め設定された係数を乗じる演算を行い、その値(比例項)を減算器32に出力する。積算器40は、差分器30からのドリフト分を時間積算した値に予め設定された係数を乗じる演算を行い、その値(積分項)を減算器32に出力する。差分器42は、差分器30からのドリフト分の時間差分を演算した値に予め設定された係数を乗じる演算を行い、その値(微分項)を減算器32に出力する。乗算演算、積分演算及び差分演算は、ドリフト分の行列の各成分毎に実行する。各係数は固定でもよいが、後述するように可変でもよい。減算器32は、行列加算演算器14から入力した角速度系姿勢行列からこれらの項の和(比例項+積分項+微分項)を減算し、ドリフト分を除去した角速度系姿勢行列を算出して行列姿勢角演算器37に出力する。減算器32の出力は行列加算演算器14にフィードバックされるが、倍率器38がフィードバックの程度を主に決定し、積算器40が長時間ずれ量を蓄積してフィードバック量を決定し、差分器42が短時間変化に対するフィードバック量を決定する。このようなPID制御を用いることにより、短時間特性と長時間特性をともに向上できる。
また、図13では、外部姿勢角44からのZ軸回りの姿勢角、すなわちヨー角φを加速度行列演算器24に供給している。加速度センサ20はx、y、z各軸方向の加速度を検出するが、Gセンサを用いるとZ軸回りの姿勢角であるヨー角φは不明であり、ヨー角φは一定値(例えば0)に固定する必要がある。本実施形態ではヨー角φを別途検出して加速度行列演算器24に供給しているため、ヨー角φの発散も防止できる。
次に第9実施形態について説明する。
図14に、本実施形態の構成ブロック図を示す。図13と異なる点は、ローパスフィルタ46、48の後段に正規化・直交化器54、56を付加した点である。ローパスフィルタ46、48で姿勢行列から低域成分を抽出すると、姿勢行列に歪みが生じ、正規性及び直交性が担保されなくなる。そこで、正規化・直交化器54、56で正規化、直交化することで歪みを修正する。正規化及び直交化の方法については上記のとおりである。ローパスフィルタ46、48は、4×4の姿勢行列の内、回転を表す成分の第一列(a,b,c)、第二列(d,e,f)、第三列(g,h,i)、すなわち3×3の各行列成分に適用され、それぞれの低域成分を抽出することで簡略化できる。また、さらに3×3の各行列成分の内の対角成分3個と非対角成分の片側3個の計6個の成分にローパスフィルタを作用させて等価的に行列フィルタを形成させることも可能である。
次に第10実施形態について説明する。図15に、本実施形態の構成ブロック図を示す。図13と異なる点は、角速度センサ10からの角速度、及び加速度センサ20からの加速度を入力し、運動体であるロボットの運動に特有な周波数を検出する運動周波数検知器52を設ける点である。運動周波数検知器52は、角速度及び加速度から頻繁に現れる周波数成分を抽出し、ローパスフィルタ46、48に出力する。運動体としてのロボットが2足歩行する場合の、2足歩行に特有の周波数等が一例である。ローパスフィルタ46、48は、運動周波数検知器52から入力した周波数に応じてそのカットオフ周波数を適応的に調整する。運動周波数が増大するほど、ローパスフィルタ46、48はカットオフ周波数を上げるように調整する。また、運動周波数検知器52は、PID制御を実行する倍率器38、積算器40、差分器42それぞれに運動周波数を出力する。倍率器38、積算器40、差分器42は、入力した運動周波数に応じて乗算係数を調整する。このように、運動に特有な周波数に応じて適応的にカットオフ周波数やPID制御の係数を調整することで、応答性、追従性、及び適応性を向上できる。
次に第11実施形態について説明する。図16に、本実施形態の構成ブロック図を示す。上記の各実施形態では、姿勢行列を用いているが、姿勢行列の代わりに4元数を用いる。角速度センサ10から得られる微小角を用いて微小角4元数を微小角4元数演算器13により生成する。この微小角4元数を用いフィードバックされた4元数に微小回転を作用させ、回転後の4元数を4元数積算演算器15により得る。この積算4元数は減算器32へ出力される。減算器32へ出力されると同じ出力を4元数用ローパスフィルタ63へ入力する。4元数用ローパスフィルタ63は姿勢の低域成分を抽出する。加速度センサ20からの出力は傾斜角演算器22で傾斜角を得た後、加速度4元数演算器25により加速度4元数を得る。この加速度4元数は4元数用ローパスフィルタ67へ入力する。4元数用ローパスフィルタ67は姿勢の低域成分を抽出する。差分器30は、角速度系4元数の低域成分と加速度系4元数の低域成分との差分を演算し、角速度系4元数に含まれるドリフト分を抽出する。差分器30は、ドリフト分を減算器32に出力する。
減算器32は、4元数積算演算器15から入力した角速度系4元数と差分器30からのドリフト分の差分を演算し、角速度系4元数からドリフト分を除去する。減算器32は、ドリフト分が除去された角速度系4元数を4元数積算演算器15に出力するとともに4元数姿勢角演算器70に出力する。
フィードバックする4元数はドリフト分が除去された4元数であるから、積分誤差の蓄積を防止できる。4元数姿勢角演算器70は、入力した4元数から姿勢角を演算し、出力装置34に出力する。
以下、4元数を演算する方法、及び4元数から姿勢角を演算する方法について説明する。
まず、4元数について概説する。4元数(Quaternion)は、2次元の自由度を有する複素数を4次元の自由度に拡張したものである。4元数は、一般に、
q=a+bi+cj+dk
と表現される。ここで、a、b、c、dは実数、i、j、kは基底(大きさは1)である。各基底の積は以下の関係にある。
i・l=l・i=i
j・l=l・j=j
k・l=l・k=k
i・j=−j・i=k
j・k=−k・j=i
k・i=−i・k=j
また、2つの4元数q1=a1+b1i+c1j+d1k、q2=a2+b2i+c2j+d2kに対し、和及び差は、
q1+q2=a1+a2+(b1+b2)i+(c1+c2)j+(d1+d2)k
q1−q2=a1−a2+(b1−b2)i+(c1−c2)j+(d1−d2)k
となり、積は、
q1q2=(a1+b1i+c1j+d1k)・(a2+b2i+c2j+d2k)=(a1a2−b1b2−c1c2−d1d2)+(a1b2+b1a2+c1d2−d1c2)i+(a1c2−b1d2+c1a2+d1b2)j+(a1d2+b1c2−c1b2+d1a2)k
となる。
虚数単位i、j、kを用いて4元数を以下のように表記する。
P=(a;xi,yj,zk)
基準座標系XYZから見たセンサ座標系xyzの関係、すなわち姿勢を4元数Qを用いて、
Q=(cosη/2;αsinη/2,βsinη/2,γsinη/2)
のように表す。これは、基準座標系を基準座標系で表された回転軸(α、β、γ)回りに角度η回転した座標系(センサ座標系)を示し、センサ座標系の姿勢を表している。
次に、角速度センサ出力の4元数による表記について説明する。回転角とセンサ出力との間には、微小回転角Δψ、Δθ、Δφ、角速度センサ出力ωx、ωy、ωz、サンプリング周期tsから次の関係がある。
ΔΨ=ωx・ts
Δθ=ωy・ts
Δφ=ωz・ts
このときの回転変換を4元数で表すと以下のようになる。
qx=(cosΔΨ/2;sinΔΨ/2i,0j,0k)
qy=(cosΔθ/2;0i,sinΔθ/2j,0k)
qz=(cosΔφ/2;0i、0j,sinΔφ/2k)
x軸、y軸、z軸回りの回転変換をまとめて表記する。回転角αが十分小さいとき、以下のようになる。
qxqyqz=(1+ΔΨΔθΔφ/8;(ΔΨ/2−ΔθΔφ/4)i,(Δθ/2+ΔΨΔφ/4)j,(Δφ/2−ΔΨΔθ/4)k)
次に、4元数による回転変換の積算について説明する。回転変換q1を
q1=(cosη1/2;αsinη1/2,βsinη1/2,γsinη1/2)
とおき、回転変換q2を
q2=(cosη2/2;αsinη2/2,βsinη2/2,γsinη2/2)
とおく。まず基準座標系について回転変換q1を行い、次に回転後の座標系について回転変換q2を行ったとする。2つの回転変換による変換q3は、
q3=q1・q2
=(cosη1/2;αsinη1/2,βsinη1/2,γsinη1/2)・(cosη2/2;αsinη2/2,βsinη2/2,γsinη2/2)
である。
次に、4元数の正規化について説明する。回転を表す4元数では、演算後、変換qの大きさ(ノルム)が1となるように正規化を行う。回転を表す4元数がqで表されているとき、qの大きさを求め、次にqを大きさで割ることで正規化し、q’を得る。
q=(ε0;ε1,ε2,ε3)
|q|=(ε02+ε12+ε22+ε320.5
q’=q/|q|
である。4元数は直交条件を維持した表記方法なので、さらなる直交化は必要ない。
次に、4元数から姿勢角への変換について説明する。4元数で表された変換q=(ε0;ε1,ε2,ε3)において、
a=ε02+ε12−ε22−ε32
b=2(ε1ε2+ε0ε3)
c=2(ε1ε3−ε0ε2)
d=2(ε1ε2−ε0ε3)
e=ε02−ε12+ε22−ε32
f=2(ε2ε3+ε0ε1)
g=2(ε1ε3+ε0ε2)
h=2(ε2ε3−ε0ε1)
i=ε02−ε12−ε22+ε32
とおき、以下の式で姿勢角を求める。
ヨー角φ=atan2(b,a)
ピッチ角θ=atan2(−c,cosφ・a+sinφ・b)
ロール角ψ=atan2(sinφ・g−cosφ・h,−sinφ・d+cosφ・e)
である。
次に、姿勢角(ロール角、ピッチ角、ヨー角)から4元数への変換について説明する。姿勢角(ψ,θ,φ)によるそれぞれの回転変換を4元数で表す。
x軸回りの回転を
R(Ψ;i)=cosΨ/2+isinΨ/2
y軸回りの回転を
R(θ;j)=cosθ/2+jsinθ/2
z軸回りの回転を
R(φ;k)=cosφ/2+ksinφ/2
これらを掛け合わせると、
S=R(φ;k)・R(θ;j)・R(Ψ;i)
=(cosφ/2+ksinφ/2)・(cosθ/2+jsinθ/2)・(cosΨ/2+isinΨ/2)
このとき、4元数で表された変換qをq=(ε0;ε1,ε2,ε3)と表すと、回転角はSの計算結果における実部、回転軸はSの虚部となる。
ε0=cosφ/2・cosθ/2・cosΨ/2+sinφ/2・sinθ/2・sinΨ/2
ε1=−sinφ/2・sinθ/2・cosΨ/2+cosφ/2・cosθ/2・sinΨ/2
ε2=sinφ/2・cosθ/2・sinΨ/2+cosφ/2・sinθ/2・cosΨ/2
ε3=sinφ/2・cosθ/2・cosΨ/2−cosφ/2・sinθ/2・sinΨ/2
このとき、回転角αは、cosα/2=ε0から得られる。また、回転角は(ε1,ε2,ε3)である。
次に第12実施形態について説明する。
図17に、本実施形態の構成ブロック図を示す。図16と異なる点は、PID制御を実行するための倍率器38、積算器40及び差分器42を設けた点と、外部姿勢角44で検出したヨー角を加速度4元数演算器25に供給した点である。図13に対応する構成である。倍率器38は、差分器30からのドリフト分(4元数)に予め設定された係数を乗じる演算を行い、その値(比例項)を減算器32に出力する。積算器40は、差分器30からのドリフト分(4元数)を時間積算した値に予め設定された係数を乗じる演算を行い、その値(積分項)を減算器32に出力する。差分器42は、差分器30からのドリフト分(4元数)の時間差分を演算した値に予め設定された係数を乗じる演算を行い、その値(微分項)を減算器32に出力する。各係数は固定でもよく可変でもよい。減算器32は、入力した角速度系4元数とこれらの項の和(比例項+積分項+微分項)の差分を演算し、ドリフト分を除去した角速度系4元数を算出して4元数姿勢角演算器70に出力する。
次に第13実施形態について説明する。図18に、本実施形態の構成ブロック図を示す。図17と異なる点は、ローパスフィルタ63、67の後段に正規化器72、74を設けた点である。図14に対応する構成である。角速度系4元数及び加速度系4元数はそれぞれローパスフィルタ63、67で処理されるが、この処理に伴い歪みが生じ、非正規化され得る。そこで、正規化器72、74で歪みを補正することにより、姿勢角の検出精度を維持できる。
次に第14実施形態について説明する。図19に、本実施形態の構成ブロック図を示す。図17と異なる点は、角速度センサ10からの角速度、及び加速度センサ20からの加速度を入力し、運動体であるロボットの運動に特有な周波数を検出する運動周波数検知器52を設ける点である。図15に対応する構成である。運動周波数検知器52は、角速度及び加速度から頻繁に現れる周波数成分を抽出し、ローパスフィルタ63、67に出力する。ローパスフィルタ63、67は、運動周波数検知器52から入力した周波数に応じてそのカットオフ周波数を適応的に調整する。運動周波数が増大するほど、ローパスフィルタ63、67はカットオフ周波数を上げるように調整する。また、運動周波数検知器52は、PID制御を実行する倍率器38、積算器40、差分器42それぞれに運動周波数を出力する。倍率器38、積算器40、差分器42は、入力した運動周波数に応じて乗算係数を調整する。このように、運動に特有な周波数に応じて適応的にカットオフ周波数やPID制御の係数を調整することで、応答性、追従性、及び適応性を向上できる。
次に第15実施形態について説明する。図20に、本実施形態に係る運動体の姿勢角検出装置の構成ブロック図を示す。図1と異なるのは、ローパスフィルタ18、28でそれぞれsin変換、cos変換、atan2変換を行う(SCA変換)ことである。
角速度センサ10は、センサ座標系(センサユニットの座標系)における角速度を検出する。各軸回りの角速度をωx、ωy、ωzとする。角速度センサ10は、検出した角速度を微小角行列演算器12に出力する。
微小角行列演算器12は、基準座標系XYZから見たセンサ座標系xyzを算出するための座標変換行列を演算する。微小角行列については後述する。微小角行列演算器12は、演算した微小角行列を行列加算演算器14に出力する。
行列加算演算器14は、微小角行列演算器12から入力した、角速度センサ10で検出された現在の微小角行列と、出力側からフィードバックされた姿勢角行列とを加算することで積分演算する。行列加算演算器14は、積分した行列を行列姿勢角演算器16に出力する。
行列姿勢角演算器16は、入力した積分行列から姿勢角を演算し、角速度姿勢角SYAとしてローパスフィルタLPF18に出力するとともに、減算器32にも出力する。
ローパスフィルタ(角速度系ローパスフィルタ)18は、角速度姿勢角SYAから低域成分を抽出して差分器30に出力する。角速度姿勢角SYAには真の姿勢角(姿勢角真値)と積分誤差によるドリフト分が含まれており、ローパスフィルタ18は、角速度姿勢角SYAから高域の姿勢角真値を除去し、低域の姿勢角真値とドリフト分を抽出する。
一方、加速度センサ20は、センサ座標系xyzの各軸方向の加速度を検出する。検出された加速度をGx、Gy、Gzとする。加速度センサ20は、検出された加速度を傾斜角演算器22に出力する。
傾斜角演算器22は、センサ座標系xyzの各軸と基準座標系XYZのZ軸との間の角度を演算する。演算された傾斜角をλx、λy、λzとする。傾斜角演算器22は、演算した傾斜角を加速度行列演算器24に出力する。
加速度行列演算器24は、入力した傾斜角を用いて基準座標系から見たセンサ座標系を演算し、行列姿勢角演算器26に出力する。
行列姿勢角演算器26は、行列姿勢角演算器16と同様に、入力した行列から姿勢角を演算し、加速度姿勢角SGAとしてローパスフィルタLPF28に出力する。
ローパスフィルタ(加速度系ローパスフィルタ)28は、カットオフ周波数及び減衰率がローパスフィルタ18と同一に設定されたフィルタであり、加速度姿勢角SGAから低域成分を抽出して差分器30に出力する。加速度姿勢角SGAには高域成分に存在する高域の姿勢角偽値と低域成分に存在する低域の姿勢角真値が含まれている。加速度姿勢角には積分誤差によるドリフトは生じない。ローパスフィルタ28は、カットオフ周波数及び減衰率がローパスフィルタ18と同一に設定されたフィルタであるので、低域の姿勢角真値が周波数特性も含めて角速度系と加速度系と同一となり、減算器32による演算で正確に両者が減算により除去され、ドリフト成分のみが出力される。但し、角速度系と加速度系からもたらされる姿勢角相当成分の応答性が予め分かっている場合は、それぞれの特性に合わせてローパスフィルタのカットオフ周波数と減衰率を調整することができる。これは、適応範囲が狭いが、運動特性が予め分かっている場合には有効な方法となり得る。
以上のように、差分器30にはローパスフィルタ18から(低域の姿勢角真値+ドリフト分)、ローパスフィルタ28から(低域の姿勢角真値)が入力される。差分器30は両者の差分を演算し、(低域の姿勢角真値+ドリフト分)−(低域の姿勢角真値)=ドリフト分を抽出する。差分器30は、差分演算して得られたドリフト分を減算器32に出力する。
減算器32は、行列姿勢角演算器16から入力した角速度姿勢角SYAと差分器30から入力したドリフト分との差分を演算し、行列姿勢角演算器16からの角速度姿勢角SYAに含まれるドリフト分を除去する。上記のように、行列姿勢角演算器16からの角速度姿勢角SYAには姿勢角真値(高域成分+低域成分)とドリフト分が含まれており、減算器32は減算により、(低域姿勢角真値+ドリフト分)−(ドリフト分)=低域姿勢角真値を抽出する。減算器32は、減算して得られた姿勢角真値を出力装置34に出力する。また、減算器32は、姿勢角真値を姿勢角行列演算器36に出力する。
姿勢角行列演算器36は、入力した姿勢角から姿勢角行列を演算し、行列加算演算器14にフィードバックする。姿勢角行列演算器36は、行列姿勢角演算器16の逆演算を実行して姿勢角から姿勢角行列を生成する。行列加算演算器14は、フィードバックされた姿勢角行列と、新たに角速度センサ10で検出された角速度に基づいて演算された微小角行列とを加算することで積分演算を実行し、角速度から姿勢角を演算する。
出力装置34は、減算器32からの、ドリフト分が除去された姿勢角を外部に出力する。ロボットの場合、メインプロセッサ(あるいはホストプロセッサ)がセンサユニットで検出された姿勢角等を入力してロボットの姿勢をフィードバック制御する。出力装置34は、メインプロセッサからのコマンドに従い、所定のタイミングで姿勢角をメインプロセッサに出力する。なお、角速度センサ10で検出された角速度や加速度センサで検出された加速度を出力装置34に供給してもよく、出力装置34は姿勢角に加え、角速度や加速度をメインプロセッサに出力してもよい。いずれを出力するかはメインプロセッサからのコマンドあるいは設定パラメータにより決定される。出力装置34は、あるタイミングでは角速度、加速度及び姿勢角の全てをメインプロセッサに出力し、別のタイミングではこれらのいずれかを選択的に出力する。
以上のようにして、ドリフト分が除去された高精度な姿勢角が検出され出力される。加速度センサ20で検出される各軸方向の加速度に基づいてドリフト分を抽出し、このドリフト分を角速度姿勢角から除去しフィードバックしているので、角速度センサ10としては高価で大型、高精度なセンサを用いる必要はない。一方、行列姿勢角演算器16、26は、姿勢行列から姿勢角を算出する際に、関数atan2を用いて演算するため、本来の姿勢角は連続的に変化しているにもかかわらず、演算上は姿勢角が不連続的に変化してしまう事態が生じ得る。これが姿勢角表現における不連続性である。そこで、行列姿勢角演算器16、26からの姿勢角をそのまま用いてローパスフィルタで低域成分を抽出するのではなく、連続的な姿勢角に変換した後にその低域成分を抽出する。
図21に、ローパスフィルタ18の構成ブロック図を示す。ローパスフィルタ18は、姿勢角をsin変換、cos変換する変換器及びatan2演算器、あるいはatan演算器を有する。ローパスフィルタ28も同様の構成であるためその説明は省略する。
sin・cos変換器18a、18b、18cは、それぞれ3軸の姿勢角に対してsin変換及びcos変換を施して出力する。例えば、角速度姿勢角がそれぞれS1ψ、S1θ、S1φであるとすると、sin・cos変換器18aは、S1ψに対して、sin(S1ψ)及びcos(S1ψ)を演算して出力する。sin変換及びcos変換された値は、それぞれローパスフィルタ18d、18eに出力される。ローパスフィルタ18d、18eは、sin変換及びcos変換された値からそれぞれ低域成分を抽出し、atan2演算器18jに出力する。atan2演算器18jは、sin変換値及びcos変換値を用いてatan2を演算し、姿勢角S2ψとして出力する。また、sin・cos変換器18bは、S1θに対して、sin(S1θ)及びcos(S1θ)を演算して出力する。sin変換及びcos変換された値は、それぞれローパスフィルタ18f、18gに出力される。ローパスフィルタ18f、18gは、sin変換及びcos変換された値からそれぞれ低域成分を抽出し、atan演算器18kに出力する。atan演算器18kは、sin変換値及びcos変換値を用いてatanを演算し、姿勢角S2θとして出力する。また、sin・cos変換器18cは、S1φに対して、sin(S1φ)及びcos(S1φ)を演算して出力する。sin変換及びcos変換された値は、それぞれローパスフィルタ18h、18iに出力される。ローパスフィルタ18h、18iは、sin変換及びcos変換された値からそれぞれ低域成分を抽出し、atan2演算器18mに出力する。atan2演算器18mは、sin変換値及びcos変換値を用いてatan2を演算し、姿勢角S2φとして出力する。
このように、sin・cos変換とatan2演算、あるいはatan演算を組み合わせることで、姿勢角の不連続性によるローパスフィルタの動作不良をなくし、安定して低域成分を抽出できる。sin変換後、cos変換後の値は±1の範囲内で連続で滑らかに変化するので、フィルタ処理において発散や異常な値を示すことがない。フィルタ処理後のsin変換値とフィルタ処理後のcos変換値を用いてatan2演算処理により、姿勢角成分に再変換するので、姿勢角表現範囲を超えるおそれがなく、姿勢角成分のフィルタ処理が実現される。
次に第16実施形態について説明する。
図22に、本実施形態の構成ブロック図を示す。図20と異なる点は、差分器30はローパスフィルタ18の出力とローパスフィルタ28の出力との差分を演算して倍率器38、積算器40及び差分器42に出力する点である。倍率器38、積算器40、差分器42は、PID制御を実行する。すなわち、倍率器38は、差分器30からのドリフト分に予め設定された係数を乗じる演算を行い、その値(比例項)を減算器32に出力する。積算器40は、差分器30からのドリフト分を時間積算した値に予め設定された係数を乗じる演算を行い、その値(積分項)を減算器32に出力する。差分器42は、差分器30からのドリフト分の時間差分を演算した値に予め設定された係数を乗じる演算を行い、その値(微分項)を減算器32に出力する。各係数は固定でもよいが、後述するように可変でもよい。減算器32は、行列姿勢角演算器16から入力した角速度姿勢角からこれらの項の和(比例項+積分項+微分項)を減算し、ドリフト分を除去した運動体の姿勢角として出力装置34及び姿勢角行列演算器36に出力する。減算器32の出力は姿勢角行列演算器36で姿勢行列に変換されてフィードバックされるが、倍率器38がフィードバックの程度を主に決定し、積算器40が長時間ずれ量を蓄積してフィードバック量を決定し、差分器42が短時間変化に対するフィードバック量を決定する。このようなPID制御を用いることにより、より、短時間特性と長時間特性をともに向上できる。
次に第17実施形態について説明する。図23に、本実施形態の構成ブロック図を示す。図22と異なる点は、外部姿勢角44からのZ軸回りの姿勢角、すなわちヨー角を行列姿勢角演算器26に供給する点である。加速度センサ20はx、y、z各軸方向の加速度を検出するが、Gセンサを用いるとZ軸回りの姿勢角であるヨー角φは不明であり、したがってヨー角φは一定値に固定する必要があるが、本実施形態ではヨー角を別途検出して行列姿勢角演算器26に供給することで、ヨー角φも正確に算出できる。具体的には、行列姿勢角演算器26は、上記の演算により姿勢行列T(n)から姿勢角としてヨー角φ、ピッチ角θ、ロール角ψを演算するが、このうちのヨー角φを外部から入力したヨー角φに置換する。これにより、ヨー角φの発散も防止できる。
また、本実施形態では、差分器30の代わりに差分器31を設けている。この差分器31は、ローパスフィルタ18,28と同様にsin・cos変換器及びatan2演算器、あるいはatan演算器を有する。
図24に、差分器31の構成ブロック図を示す。ローパスフィルタ18からの角速度姿勢角及びローパスフィルタ28からの加速度姿勢角は、ともに差分器31に供給される。3軸それぞれの角速度姿勢角をξn0ψ、ξn0θ、ξn0φとし、3軸それぞれの加速度姿勢角をξm0ψ、ξm0θ、ξm0φとする。
sin・cos変換器31aは、ξn0ψに対してsin変換及びcos変換を行い、それぞれの値をatan2演算器31gに出力する。atan2演算器31gは、sin変換値及びcos変換値を用いてatan2演算を行い、差分器31nに出力する。一方、sin・cos変換器31bは、ξm0ψに対してsin変換及びcos変換を行い、それぞれの値をatan2演算器31hに出力する。atan2演算器31hは、sin変換値及びcos変換値を用いてatan2演算を行い、差分器31nに出力する。差分器31nは両者の差分を演算し、ドリフト分を抽出する。差分器31nは、sin・cos変換器31rにドリフト分を出力する。sin・cos変換器31r及びatan2演算器31uは同様な演算を行い、ドリフト分としてξd1ψを出力する。sin・cos変換器31cは、ξn0θに対してsin変換及びcos変換を行い、それぞれの値をatan演算器31iに出力する。atan演算器31iは、sin変換値及びcos変換値を用いてatan演算を行い、差分器31pに出力する。一方、sin・cos変換器31dは、ξm0θに対してsin変換及びcos変換を行い、それぞれの値をatan演算器31jに出力する。atan演算器31jは、sin変換値及びcos変換値を用いてatan演算を行い、差分器31pに出力する。差分器31pは両者の差分を演算し、ドリフト分を抽出する。差分器31pは、sin・cos変換器31sにドリフト分を出力する。sin・cos変換器31s及びatan演算器31vは同様な演算を行い、ドリフト分としてξd1θを出力する。sin・cos変換器31eは、ξn0φに対してsin変換及びcos変換を行い、それぞれの値をatan2演算器31kに出力する。atan2演算器31kは、sin変換値及びcos変換値を用いてatan2演算を行い、差分器31qに出力する。一方、sin・cos変換器31fは、ξm0φに対してsin変換及びcos変換を行い、それぞれの値をatan2演算器31mに出力する。atan2演算器31mは、sin変換値及びcos変換値を用いてatan2演算を行い、差分器31qに出力する。差分器31qは両者の差分を演算し、ドリフト分を抽出する。差分器31qは、sin・cos変換器31tにドリフト分を出力する。sin・cos変換器31t及びatan2演算器31wは同様な演算を行い、ドリフト分としてξd1φを出力する。
以上のようにして、角速度姿勢角、加速度姿勢角の不連続性による異常計算発生を防止している。また、姿勢角差を演算したときの姿勢角の不連続性による異常計算発生を防止している。また、ドリフト分の姿勢角の不連続性も除去してPID制御の動作不良を防止できる。
図25に、本実施形態の処理フローチャートを示す。まず、角速度姿勢角ξn1と加速度姿勢角ξm1に対してそれぞれsin・cos変換を行い、atan2、あるいはatan演算を行う(S101)。次に、演算後の値の差分を演算する(S102)。演算して得られた値ξd0=ξm1−ξn1はドリフト分である。このドリフト分に対して、さらにsin・cos変換及びatan2演算、あるいはatan演算を行ってξd1を算出する(S103)。ドリフト分ξd1を演算した後、このドリフト分に対してPID制御を行う。すなわち、比例項、積分項、微分項を、
ξd1p=P・ξd1
ξd1i=I・ξd1
ξd1d=D・ξd1
と演算し、これらを加算してξs0=ξd1p+ξd1i+ξd1dを算出する(S104、S105)。
その後、角速度姿勢角ξn1とξs0との差分を演算すればよいが、姿勢角はψ、φがξm=−πとξp=+πの間の値、θがξm=−π/2とξp=+π/2の間の値として定義されているから、ψ、φについてはξs0の値が−πと+πの間の値を超えると制御が不安定になる。そこで、ξs0がこの範囲を超える場合には、この範囲内の直近の値に置き換える必要が生じる。そこで、まず、ξs0がξm=−πより小さいか否かを判定し(S106)、ξm=−πより小さい場合には、ξs0をξm=−πに置き換えてξs1とする(S108)。また、ξs0がξp=πより大きい場合も(S107)、ξs0をξp=πに置き換えてξs1とする(S109)。ξs0がξm=−πとξp=πの間である場合には問題ないので、そのままの値をξs1とし、ξn1との差分を演算する(S111)。一方、θについてはξs0の値がξm=−π/2とξp=π/2の間の値を超えると制御が不安定になる。そこで、ξs0がこの範囲を越える場合には、この範囲内の直近の値に置き換える必要が生じる。そこで、まず、ξs0がξm=−π/2より小さいか否かを判定し(S106)、ξm=−π/2より小さい場合には、ξs0をξm=−π/2+δに置き換えてξs1とする(S108)。また、ξs0がξp=π/2より大きい場合も(S107)、ξs0をξp=π/2−δに置き換えてξs1とする(S109)。ここで、δは実数であり演算で有効な最小数値を表す。ξs0がξm=−π/2とξp=π/2の間である場合には問題ないので、そのままの値をξs1とし、ξn1との差分を演算する(S111)。但し、ξs0が−π/2となるときは−π/2+δ、π/2となるときはπ/2−δとする。以上の処理により、安定な姿勢角を出力できる。
このように、本実施形態ではsin変換・cos変換・atan2変換(SCA変換)を行ってパラメータの不連続性を解消しているが、以下に姿勢角の不連続性及び差分器31の処理について補足説明する。
次に姿勢角の不連続性について説明する。姿勢角はX軸回りのψ、Y軸回りのθ、Z軸回りのφを用いて(ψ、θ、φ)で表す。それぞれの範囲は、
−π<ψ≦π(rad)あるいは−180<ψ≦180(deg)
−π/2<θ<π/2(rad)あるいは−90<θ<90(deg)
−π<φ≦π(rad)あるいは−180<φ≦180(deg)
である。
図26に、Z軸回りに回転したときの回転角度と姿勢角φとの関係を示す。Z軸回転が−720〜720degに変化するとき、φは±180degの範囲を振動し180degを超えるときに−180deg付近へ急激に遷移する。これが不連続性の発生メカニズムである。運動体は時間に対して連続に回転(図ではZ軸回転で表示)しているが、姿勢角φは不連続となる。
図27に、具体的にφ=180deg付近で±20degのsin波的な連続回転振動を与えたときの状態を示す。図において、Z軸回転180±20degのsin波的な振動となっており連続的に変化する。しかし、φは±180degの間を不連続に変化する。
図28及び図29に、本発明による結果をSCA処理として同時に示す。これによるとSCA処理による波形は図27に示したφと同じ波形を示しており、従来の波形Mφのような歪んだ波形あるいは全く異なった波形となる問題を解決していることが分かる。ψについても同様である。これにより、高精度で動作範囲の広い姿勢角検出を可能としている。
図30に、Y軸回りに回転したときの回転速度とθの関係を示す。Y軸回転が−720〜720degに変化するとき、θは±90degの範囲を振動し90degを超えるときに−90deg付近へ急激に遷移する。これが不連続性の発生メカニズムである。運動体は時間に対して連続に回転しているが、姿勢角θは不連続となる。
図31に、具体的にθ=90deg付近で±20degのsin波的な連続回転振動を与えたときの状態を示す。Y軸回転は連続的に変化するが、θは±90degの間を不連続に変化する。
図32及び図33に、本発明による結果をSCA処理として同時に示す。これによるとSCA処理による波形は図27に示したθと同じ波形を示しており、従来の波形Mθのような歪んだ波形あるいは全く異なった波形となる問題を解決していることが分かる。これにより、高精度で動作範囲の広い姿勢角検出を可能としている。
次にSCA差分器について説明する。差分器31は、姿勢角(ψ、θ、φ)の各成分に対して差分を行う。例えばφに関しては、図26において角速度姿勢角ξnoφが175deg、加速度姿勢角ξmoが−25degとする。差演算するとξno−ξmo=200degとなる。これは、φの定義範囲±180degを超えているので不合理が生じる。このように、演算処理によりφが定義範囲を超えてしまうことが容易に発生する。そこで、差分器31は定義範囲に入れる処理を行う。これがsin・cos・atan2変換(SCA変換)である。具体的には、ξnoφ−ξmoφのsin値とcos値を得る。そして、atan2演算によりsin値とcos値を用いてξd1φを得る。このとき、ξd1φは定義範囲に入っている。条件次第で200−360=−160degにする方法もある。しかし、±180degを大きく超えた、±360deg、±540deg、±720deg、・・・と考えられるケースが多く、条件次第では極めて多くの、本質的には無限に組合せを記述する必要が生じる。また、条件次第では演算上大きな数値変化が生じ不連続となる。そのため、取扱が非常に困難となる。実際はノイズが重畳した信号を対象とするので、±180deg付近でノイズ重畳したとき、極めて大きい不連続な振動が発生することになる。これは、演算精度との関係で、演算上、不安定になりやすく、精度の高い、安定した出力を得ることができなくなる。これを滑らかに算術的に実行する方法がSCA変換処理である。これは、計算処理過程で定義範囲を超えたデータを定義範囲に入れる処理で、正規化に似た処理である。
ところで、ξnoφ自体も途中の演算で定義範囲を超えていることがある。そこで、ξnoφをsinとcosで表現し、atan2を演算することにより、まずξnoφが±180deg内に入るようにする。ξmoφも同様に定義範囲に正規化される。次に、差分器31でξnoφ−ξmoφの演算を行う。この差分器の出力は状態によってはφの定義範囲を超える。そこで、sin・cos・atan2変換により定義範囲に入れ直し、正規化を行う。姿勢角ψ、θ、φの内、ψ、φの定義域は−π〜πでありatan2処理の出力範囲と同じなのでatan2演算を行う。一方、θの定義域は−π/2〜π/2なのでatan2処理の出力範囲の半分となる。そこで、θはatan演算を用いる。atanの出力範囲は−π/2〜π/2でθと一致する。atan(y,x)=tan-1(y,x)はx小の領域ではtan(y/x)の分母が小さいため誤差が大きくなる。このため、xがyに対して小さいときにはcot-1(y,x)を用いる。
以上、本発明の実施形態について説明したが、本発明はこれに限定されず種々の変更が可能である。
例えば、図6の構成では運動周波数検知器52で2足歩行等ロボットの運動に特有の周波数を検出してローパスフィルタ46、48に出力しているが、図1〜図3の構成におけるローパスフィルタ18、28に出力し、これらのローパスフィルタ18、28のカットオフ周波数を適応的に可変設定してもよい。
また、図1の構成では、行列姿勢角演算器(角速度系)16からの角速度系姿勢角をローパスフィルタ18に出力し、行列姿勢角演算器(加速度系)26からの加速度姿勢角をローパスフィルタ28に出力しているが、行列姿勢角演算器16からの角速度系姿勢角及び行列姿勢角演算器26からの加速度姿勢角をともに直接差分器30に出力し、差分器30からの差分を単一のローパスフィルタに入力して低域成分を出力し、この低域成分をドリフト分として減算器32に出力してもよい。これにより、LPFの数を減らせるという利点がある。図2、図3の構成についても同様である。
また、図1〜図6におけるローパスフィルタとしては、アナログフィルタあるいはデジタルフィルタのいずれを用いてもよい。デジタルフィルタとしては、FIR(Finite−duration Impulse Response)フィルタあるいはIIR(Infinite−duration Impulse Response)フィルタのいずれでもよい。
また、各構成において、出力装置34から姿勢角、角速度、加速度の少なくともいずれかをロボットのメインプロセッサに出力しているが、これに加えて、行列加算演算器14で演算された姿勢行列、加速度行列演算器24で演算された姿勢行列、差分器30で演算されたドリフト分、4元数LPF63、67等で抽出された4元数等を出力装置34に出力し、出力装置34からメインプロセッサに出力してもよい。
また、図20、図22、図23の各構成においても、角速度センサ10からの角速度、及び加速度センサ20からの加速度を入力し、運動体であるロボットの運動に特有な周波数を検出する運動周波数検知器52を設けてもよい。運動周波数検知器は、角速度及び加速度から頻繁に現れる周波数成分を抽出し、ローパスフィルタ18、28に出力する。運動体としてのロボットが2足歩行する場合の、2足歩行に特有の周波数等が一例である。ローパスフィルタ18、28は、運動周波数検出器から入力した周波数に応じてそのカットオフ周波数を適応的に調整する。運動周波数が増大するほど、ローパスフィルタ18、28はカットオフ周波数を上げるように調整する。また、運動周波数検出器は、PID制御を実行する倍率器38、積算器40、差分器42それぞれに運動周波数を出力する。倍率器38、積算器40、差分器42は、入力した運動周波数に応じて乗算係数を調整する。
以上、本発明の実施形態について説明したが、各実施形態の方式はそれぞれ以下のような固有の効果を奏する。すなわち、姿勢角を用いた方式では、出力はロボット、車両、船舶、航空関係で制御等に用いられる姿勢角である。姿勢角そのものを装置内での補正ループの制御対象としているので、実現象に適した安定した出力が得られる。また、適応する計測・制御対象により装置内の制御パラメータを最適化する際に、実運動による姿勢角と適合性が良く、効率良く各種パラメータを最適化できる。そのため、最適化に必要とされる時間や労力が少なくて済み、応用に適した特性が得られる。
本方式によれば、姿勢角を主体に活用する計測・制御対象に適した方式であり、従来不可能あるいは不十分であったロボットの姿勢計測・制御や車両の姿勢計測・制御が可能となる。また、姿勢行列を用いた方式では、出力はロボット、車両、船舶、航空関係で計測・制御等に用いられる姿勢角であるが、内部演算では姿勢行列を補正ループ対象としている。そのため、内部演算において特異点等の回避等の特殊処理を行わないので分かりやすいという利点がある。また、外部に姿勢行列そのものを出力することもできる。従って、姿勢行列を用いて計測・制御を行う計測・制御対象に適した方式である。姿勢行列は要素数が姿勢角より多くデータ数が多い。そのため通信に要する時間やデータ処理が煩雑になるという欠点がある。しかし、データ数が多い分、特異点の問題を回避できる点や、拡大、縮小、変形座標系への対応が可能であるという自由度の高さをもっている。通信速度が十分速く、計測・制御側の演算速度が十分速く、演算に必要なメモリ領域が大きな場合は使いやすいという利点がある。従って、高速通信網を持ち、演算速度の速い高性能な計測・制御処理システムに応用する場合、例えば産業用機器、原子力発電所等での高度な計測・制御機器、宇宙用機器等において本方式は特に効果を発揮する。
また、4元数を用いた方式では、出力はロボット、車両、船舶、航空関係で計測・制御等に用いられる姿勢角であるが、内部演算では4元数を補正ループ対象としている。4元数を用いているので演算に必要なデータ量や演算ステップを少なくできるという利点を有する。従って、装置において少ないメモリ、中規模の演算速度をもつプロセッサを用いて本機能を実現できる利点がある。その結果、コストの低減が可能となる。しかしながら、4元数は実空間での振る舞いが分かりにくい表記方法であるので姿勢角に変換して用いている。従って、本方式は計測・制御対象の特性が明確であり、同様な運動が多い対象に適した方式であり、汎用ロボットや量産車両、小規模産業用機器の計測・制御に適した方式である。
第1実施形態の構成ブロック図である。 第2実施形態の構成ブロック図である。 第3実施形態の構成ブロック図である。 第4実施形態の構成ブロック図である。 第5実施形態の構成ブロック図である。 第6実施形態の構成ブロック図である。 基準座標系(XYZ)とセンサ座標系(xyz)との関係を示す図である。 基準座標系における姿勢角(ロール角、ピッチ角、ヨー角)を示す図である。 センサ座標系nの時間的変化を示す図である。 センサ座標系における微小回転角を示す図である。 傾斜角を示す図である。 第7実施形態の構成ブロック図である。 第8実施形態の構成ブロック図である。 第9実施形態の構成ブロック図である。 第10実施形態の構成ブロック図である。 第11実施形態の構成ブロック図である。 第12実施形態の構成ブロック図である。 第13実施形態の構成ブロック図である。 第14実施形態の構成ブロック図である。 第15実施形態の構成ブロック図である。 図20におけるローパスフィルタの構成ブロック図である。 第16実施形態の構成ブロック図である。 第17実施形態の構成ブロック図である。 図23における差分器の構成ブロック図である。 前記17実施形態の処理フローチャートである。 Z軸回転と姿勢角φとの関係を示すグラフ図である。 Z軸回転180±20degにおける姿勢角φを示すグラフ図である。 LPF(fc=中)を通過した回転角、姿勢角φ、SCA処理の各信号を示すグラフ図である。 LPF(fc=小)を通過した回転角、姿勢角φ、SCA処理の各信号を示すグラフ図である。 Y軸回転と姿勢角θとの関係を示すグラフ図である。 Y軸回転90±20degにおける姿勢角θを示すグラフ図である。 LPF(fc=中)を通過した回転角、姿勢角θ、SCA処理の各信号を示すグラフ図である。 LPF(fc=小)を通過した回転角、姿勢角θ、sincos変換の各信号を示すグラフ図である。

Claims (29)

  1. 運動体の姿勢角検出装置であって、
    運動体の角速度を検出する角速度センサと、
    前記運動体の加速度を検出する加速度センサと、
    前記角速度から前記運動体の姿勢角を角速度姿勢角として演算する角速度姿勢角演算手段と、
    前記加速度から運動体の姿勢角を加速度姿勢角として演算する加速度姿勢角演算手段と、
    前記角速度姿勢角の低域成分を抽出する角速度姿勢角低域成分抽出手段と、
    前記加速度姿勢角の低域成分を抽出する加速度姿勢角低域成分抽出手段と、
    前記角速度姿勢角の低域成分と前記加速度姿勢角の低域成分の差分を誤差として演算する差分演算手段と、
    前記角速度姿勢角から前記誤差を除去する誤差除去手段と、
    前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記運動体の姿勢角として出力する出力手段と、
    前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記角速度姿勢角演算手段にフィードバックするフィードバック手段と、
    を有する運動体の姿勢角検出装置。
  2. 請求項1記載の装置において、
    前記誤差除去手段は、倍率器、積分器、及び差分器を有し、前記差分演算手段からの前記誤差を前記倍率器で比例演算し、前記積分器で積分演算し、前記差分器で差分演算した値を加算して得られた値を前記角速度姿勢角から減算することで前記誤差を除去する運動体の姿勢角検出装置。
  3. 請求項1、2のいずれかに記載の装置において、さらに、
    前記加速度センサとは別個に前記運動体の鉛直軸回りの姿勢角を検出して前記加速度姿勢角演算手段に出力する出力手段を有する運動体の姿勢角検出装置。
  4. 請求項1〜3のいずれかに記載の装置において、
    前記角速度姿勢角演算手段は、
    前記角速度から微小時間Δt経過後の微小回転角を規定する微小角行列を演算する手段と、
    前記微小角行列と、前記フィードバック手段からフォードバックされた角速度姿勢角に対応する姿勢行列とから新たな角速度系姿勢行列を演算する手段と、
    前記新たな角速度系姿勢行列から前記角速度姿勢角を演算する手段と、
    を有し、
    前記加速度姿勢角演算手段は、
    前記加速度から傾斜角を演算する手段と、
    前記傾斜角から加速度系姿勢行列を演算する手段と、
    前記加速度系姿勢行列から前記加速度姿勢角を演算する手段と、
    を有する運動体の姿勢角検出装置。
  5. 請求項4記載の装置において、
    前記角速度姿勢角低域成分抽出手段は、前記角速度姿勢角を演算する手段からの前記角速度姿勢角の低域成分を抽出する角速度系ローパスフィルタを有し、
    前記加速度姿勢角低域成分抽出手段は、前記加速度姿勢角を演算する手段からの前記加速度姿勢角の低域成分を抽出する加速度系ローパスフィルタを有し、
    前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタは、カットオフ周波数及び減衰率が同一に設定される運動体の姿勢角検出装置。
  6. 請求項4記載の装置において、
    前記角速度姿勢角低域成分抽出手段は、前記新たな角速度系姿勢行列を演算する手段からの前記新たな角速度系姿勢行列の低域成分を抽出する角速度系ローパスフィルタを有し、
    前記加速度姿勢角低域成分抽出手段は、前記加速度系姿勢行列を演算する手段からの前記加速度系姿勢行列の低域成分を抽出する加速度系ローパスフィルタを有し、
    前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタは、カットオフ周波数及び減衰率が同一に設定される運動体の姿勢角検出装置。
  7. 請求項6記載の装置において、さらに、
    前記角速度系ローパスフィルタからの角速度系姿勢行列を正規化及び直交化する手段と、
    前記加速度系ローパスフィルタからの加速度系姿勢行列を正規化及び直交化する手段
    を有する運動体の姿勢角検出装置。
  8. 請求項5〜7のいずれかに記載の装置において、さらに、
    前記角速度及び加速度から前記運動体特有の運動周波数を検出する手段
    を有し、
    前記運動周波数に応じて前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタのカットオフ周波数が可変設定される運動体の姿勢角検出装置。
  9. 請求項2記載の装置において、さらに、
    前記角速度及び加速度から前記運動体特有の運動周波数を検出する手段
    を有し、前記運動周波数に応じて前記倍率器、積分器及び差分器の係数が可変設定される運動体の姿勢角検出装置。
  10. 運動体の姿勢角検出装置であって、
    運動体の角速度を検出する角速度センサと、
    前記運動体の加速度を検出する加速度センサと、
    前記角速度から前記運動体の姿勢角を角速度姿勢角として演算する角速度姿勢角演算手段と、
    前記加速度から運動体の姿勢角を加速度姿勢角として演算する加速度姿勢角演算手段と、
    前記角速度姿勢角と前記加速度姿勢角の差分を演算する差分演算手段と、
    前記差分の低域成分を誤差として抽出する低域成分抽出手段と、
    前記角速度姿勢角から前記誤差を除去する誤差除去手段と、
    前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記運動体の姿勢角として出力する出力手段と、
    前記誤差除去手段で前記誤差が除去された角速度姿勢角を前記角速度姿勢角演算手段にフィードバックするフィードバック手段と、
    を有する運動体の姿勢角検出装置。
  11. 運動体の姿勢角検出装置であって、
    運動体の角速度を検出する角速度センサと、
    前記運動体の加速度を検出する加速度センサと、
    前記角速度から微小時間ts経過後の微小回転角を規定する微小角行列を演算する手段と、
    前記微小角行列とフィードバックされた姿勢行列とから新たな角速度系姿勢行列を演算する手段と、
    前記加速度から傾斜角を演算する手段と、
    前記傾斜角から加速度系姿勢行列を演算する手段と、
    前記角速度系姿勢行列の低域成分を抽出する角速度系低域成分抽出手段と、
    前記加速度系姿勢行列の低域成分を抽出する加速度系低域成分抽出手段と、
    前記角速度系姿勢行列の低域成分と前記加速度系姿勢行列の低域成分の差分を誤差として演算する差分演算手段と、
    前記角速度系姿勢行列から前記誤差を除去する誤差除去手段と、
    前記誤差除去手段で前記誤差が除去された角速度系姿勢行列から姿勢角を演算し前記運動体の姿勢角として出力する出力手段と、
    前記誤差除去手段で前記誤差が除去された角速度系姿勢行列を前記新たな角速度系姿勢行列を演算する手段にフィードバックするフィードバック手段と、
    を有する運動体の姿勢角検出装置。
  12. 請求項11記載の装置において、
    前記誤差除去手段は、倍率器、積分器、及び差分器を有し、前記差分演算手段からの前記誤差を前記倍率器で比例演算し、前記積分器で積分演算し、前記差分器で差分演算した行列を加算して得られた行列を前記角速度系姿勢行列から減算することで前記誤差を除去する運動体の姿勢角検出装置。
  13. 運動体の姿勢角検出装置であって、
    運動体の角速度を検出する角速度センサと、
    前記運動体の加速度を検出する加速度センサと、
    前記角速度から微小時間ts経過後の微小回転角を規定する微小角4元数を演算する手段と、
    前記微小角4元数とフィードバックされた4元数とから新たな角速度系4元数を演算する手段と、
    前記加速度から傾斜角を演算する手段と、
    前記傾斜角から加速度系4元数を演算する手段と、
    前記角速度系4元数の低域成分を抽出する角速度系低域成分抽出手段と、
    前記加速度系4元数の低域成分を抽出する加速度系低域成分抽出手段と、
    前記角速度系姿勢行列の低域成分と前記加速度系姿勢行列の低域成分の差分を誤差として演算する差分演算手段と、
    前記角速度系4元数から前記誤差を除去する誤差除去手段と、
    前記誤差除去手段で前記誤差が除去された角速度系4元数から姿勢角を演算し前記運動体の姿勢角として出力する出力手段と、
    前記誤差除去手段で前記誤差が除去された角速度系4元数を前記新たな角速度系4元数を演算する手段にフィードバックするフィードバック手段と、
    を有する運動体の姿勢角検出装置。
  14. 請求項13記載の装置において、
    前記誤差除去手段は、倍率器、積分器、及び差分器を有し、前記差分演算手段からの前記誤差を前記倍率器で比例演算し、前記積分器で積分演算し、前記差分器で差分演算した値を加算して得られた4元数を前記角速度系4元数から減算することで前記誤差を除去する運動体の姿勢角検出装置。
  15. 請求項11〜14のいずれかに記載の装置において、さらに、
    前記加速度センサとは別個に前記運動体の鉛直軸回りの傾斜角を検出して前記加速度系姿勢行列を演算する手段に出力する手段
    を有する運動体の姿勢角検出装置。
  16. 請求項11〜15のいずれかに記載の装置において、
    前記角速度系低域成分抽出手段は、角速度系ローパスフィルタを有し、
    前記加速度系低域成分抽出手段は、加速度系ローパスフィルタを有し、
    前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタは、カットオフ周波数及び減衰率が同一に設定される運動体の姿勢角検出装置。
  17. 請求項16記載の装置において、さらに、
    前記角速度系ローパスフィルタの出力を正規化する手段と、
    前記加速度系ローパスフィルタの出力を正規化する手段
    を有する運動体の姿勢角検出装置。
  18. 請求項16、17のいずれかに記載の装置において、さらに、
    前記角速度及び加速度から前記運動体特有の運動周波数を検出する手段
    を有し、前記運動周波数に応じて前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタのカットオフ周波数が可変設定される運動体の姿勢角検出装置。
  19. 請求項12、14のいずれかに記載の装置において、さらに、
    前記角速度及び加速度から前記運動体特有の運動周波数を検出する手段
    を有し、前記運動周波数に応じて前記倍率器、積分器及び差分器の係数が可変設定される運動体の姿勢角検出装置。
  20. 請求項1記載の装置において、
    前記角速度姿勢角低域成分抽出手段及び前記加速度姿勢角低域成分抽出手段は、
    前記角速度姿勢角をsin変換及びcos変換する手段と、
    前記sin変換及びcos変換して得られた値の低域成分を抽出する手段と、
    低域成分が抽出された値をatan2演算、あるいはatan演算する手段と、
    を有する運動体の姿勢角検出装置。
  21. 請求項20記載の装置において、
    前記誤差除去手段は、倍率器、積分器、及び差分器を有し、前記差分演算手段からの前記誤差を前記倍率器で比例演算し、前記積分器で積分演算し、前記差分器で差分演算した値を加算して得られた値を前記角速度姿勢角から減算することで前記誤差を除去する運動体の姿勢角検出装置。
  22. 請求項20、21のいずれかに記載の装置において、さらに、
    前記加速度センサとは別個に前記運動体の鉛直軸回りの傾斜角を検出して前記加速度姿勢角演算手段に出力する手段を有する運動体の姿勢角検出装置。
  23. 請求項20〜22のいずれかに記載の装置において、
    前記角速度姿勢角演算手段は、
    前記角速度から微小時間ts経過後の微小回転角を規定する微小角行列を演算する手段と、
    前記微小角行列と、前記フィードバック手段からフィードバックされた角速度姿勢角に対応する姿勢行列とから新たな角速度系姿勢行列を演算する手段と、
    前記新たな角速度系姿勢行列から前記角速度姿勢角を演算する手段と、
    を有し、
    前記加速度姿勢角演算手段は、
    前記加速度から傾斜角を演算する手段と、
    前記傾斜角から加速度系姿勢行列を演算する手段と、
    前記加速度系姿勢行列から前記加速度姿勢角を演算する手段と、
    を有する運動体の姿勢角検出装置。
  24. 請求項20〜23のいずれかに記載の装置において、
    前記角速度姿勢角低域成分抽出手段は、前記sin変換及びcos変換された値の低域成分を抽出する角速度系ローパスフィルタを有し、
    前記加速度姿勢角低域成分抽出手段は、前記sin変換及びcos変換された値の低域成分を抽出する加速度系ローパスフィルタを有し、
    前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタは、カットオフ周波数及び減衰率が同一に設定される運動体の姿勢角検出装置。
  25. 請求項20〜24のいずれかに記載の装置において、
    前記差分演算手段は、
    前記角速度姿勢角の低域成分をsin変換及びcos変換してatan2演算、あるいはatan演算した値と、前記加速度姿勢角の低域成分をsin変換及びcos変換してatan2演算、あるいはatan演算した値の差分を演算する手段を有する運動体の姿勢角検出装置。
  26. 請求項25記載の装置において、さらに、
    差分して得られた値をsin変換及びcos変換してatan2演算、あるいはatan演算する手段
    を有する運動体の姿勢角検出装置。
  27. 請求項20〜26のいずれかに記載の装置において、
    前記角速度姿勢角及び加速度姿勢角のψあるいはφは−πからπまでの間の角度として規定され、
    前記誤差除去手段は、前記誤差が−πより小さい場合には−πに置換し、πより大きい場合にはπに置換して前記角速度姿勢角から除去し、
    前記角速度姿勢角及び加速度姿勢角のθは−π/2からπ/2までの間の角度として規定され、
    前記誤差除去手段は、前記誤差が−π/2より小さい場合には−π/2+δ(但しδは実数)に置換し、π/2より大きい場合にはπ/2−δに置換して前記角速度姿勢角から除去する運動体の姿勢角検出装置。
  28. 請求項24記載の装置において、さらに、
    前記角速度及び加速度から前記運動体特有の運動周波数を検出する手段
    を有し、前記運動周波数に応じて前記角速度系ローパスフィルタ及び前記加速度系ローパスフィルタのカットオフ周波数が可変設定される運動体の姿勢角検出装置。
  29. 請求項21記載の装置において、さらに、
    前記角速度及び加速度から前記運動体特有の運動周波数を検出する手段
    を有し、前記運動周波数に応じて前記倍率器、積分器器及び差分器の係数が可変設定される運動体の姿勢角検出装置。
JP2008524609A 2005-08-01 2006-08-01 運動体の姿勢角検出装置 Expired - Fee Related JP4751930B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008524609A JP4751930B2 (ja) 2005-08-01 2006-08-01 運動体の姿勢角検出装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005223507 2005-08-01
JP2005223507A JP2007041733A (ja) 2005-08-01 2005-08-01 運動体の姿勢角検出装置
JP2008524609A JP4751930B2 (ja) 2005-08-01 2006-08-01 運動体の姿勢角検出装置
PCT/IB2006/002084 WO2007015134A2 (en) 2005-08-01 2006-08-01 Moving body posture angle detecting apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011086174A Division JP5167383B2 (ja) 2005-08-01 2011-04-08 運動体の姿勢角検出装置

Publications (2)

Publication Number Publication Date
JP2009507272A true JP2009507272A (ja) 2009-02-19
JP4751930B2 JP4751930B2 (ja) 2011-08-17

Family

ID=37594935

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2005223507A Pending JP2007041733A (ja) 2005-08-01 2005-08-01 運動体の姿勢角検出装置
JP2008524609A Expired - Fee Related JP4751930B2 (ja) 2005-08-01 2006-08-01 運動体の姿勢角検出装置
JP2011086174A Expired - Fee Related JP5167383B2 (ja) 2005-08-01 2011-04-08 運動体の姿勢角検出装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2005223507A Pending JP2007041733A (ja) 2005-08-01 2005-08-01 運動体の姿勢角検出装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011086174A Expired - Fee Related JP5167383B2 (ja) 2005-08-01 2011-04-08 運動体の姿勢角検出装置

Country Status (4)

Country Link
US (1) US7949487B2 (ja)
JP (3) JP2007041733A (ja)
CN (1) CN100560305C (ja)
WO (1) WO2007015134A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010247303A (ja) * 2009-04-20 2010-11-04 Seiko Epson Corp 角速度または角度の検出方法及びロボットの制御方法
JP2019120587A (ja) * 2018-01-05 2019-07-22 ローム株式会社 測位システム及び測位方法

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4365402B2 (ja) * 2006-12-20 2009-11-18 本田技研工業株式会社 移動体の移動角度検出装置
JP5234574B2 (ja) * 2007-07-25 2013-07-10 株式会社モリタホールディングス 高所作業車
JP2009053039A (ja) * 2007-08-27 2009-03-12 Honda Motor Co Ltd 車両姿勢推定装置、車両姿勢推定方法
GB0808081D0 (en) * 2008-05-02 2008-06-11 In2Games Ltd Bridging ultrasonic position with accelerometer/gyroscope inertial guidance
US8744799B2 (en) * 2008-09-25 2014-06-03 Blackberry Limited System and method for analyzing movements of an electronic device
CN101702258B (zh) * 2009-04-28 2011-03-30 中国科学院合肥物质科学研究院 一种人体摔倒自动检测报警系统的信息处理方法
FR2948759B1 (fr) * 2009-07-31 2011-08-12 Movea Procede d'estimation de l'orientation d'un solide en mouvement
GB2474536B (en) 2009-10-13 2011-11-02 Pointgrab Ltd Computer vision gesture based control of a device
JP5685842B2 (ja) * 2010-07-12 2015-03-18 セイコーエプソン株式会社 ロボット装置およびロボット装置の制御方法
EP2508127B1 (en) 2011-04-06 2017-01-18 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Method and system for posture evaluation
WO2013008236A1 (en) * 2011-07-11 2013-01-17 Pointgrab Ltd. System and method for computer vision based hand gesture identification
US8938124B2 (en) 2012-05-10 2015-01-20 Pointgrab Ltd. Computer vision based tracking of a hand
DE102012106306A1 (de) * 2012-07-13 2014-01-16 Continental Automotive Gmbh Verfahren zur Signalverarbeitung eines Sensorsignals eines Inertialsensors mittels Tiefpassfilterung sowie Tiefpassfiltervorrichtung
CN103401538B (zh) * 2013-08-10 2016-01-20 福州大学 一种惯性加速度传感器频控力反馈信号处理电路
CN104883105A (zh) * 2014-02-28 2015-09-02 北京谊安医疗系统股份有限公司 电机的转速控制方法、转速控制装置及电机的控制系统
JP6653517B2 (ja) * 2014-04-15 2020-02-26 前田建設工業株式会社 三次元データ処理方法、三次元データ処理プログラム及び三次元データ処理装置
JP5893144B1 (ja) 2014-06-04 2016-03-23 株式会社小松製作所 作業機械の姿勢演算装置、作業機械及び作業機械の姿勢演算方法
CN104589355A (zh) * 2014-11-21 2015-05-06 安徽省库仑动力自动化科技有限公司 多点定位结合重力传感确定机器人绝对坐标的方法
JP6476925B2 (ja) * 2015-01-30 2019-03-06 カシオ計算機株式会社 情報処理装置、位置更新方法及びプログラム
EP3268848A1 (en) * 2015-03-13 2018-01-17 Sang, Yinan Attitude detecting device
CN105563482A (zh) * 2015-12-01 2016-05-11 珞石(北京)科技有限公司 用于工业机器人的末端执行器的旋转运动规划方法
CN105425806A (zh) * 2015-12-25 2016-03-23 深圳先进技术研究院 移动机器人的人体探测与跟踪方法及装置
CN106843245B (zh) * 2016-12-01 2022-02-01 北京京东乾石科技有限公司 一种无人机姿态控制方法、装置及无人机
DE102017202539A1 (de) * 2017-02-16 2018-08-16 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erkennen eines Stillstands eines Fahrzeugs
JP6607229B2 (ja) * 2017-05-11 2019-11-20 トヨタ自動車株式会社 車両姿勢制御装置
US11385059B2 (en) 2017-05-26 2022-07-12 Guangzhou Xaircraft Technology Co., Ltd Method for determining heading of unmanned aerial vehicle and unmanned aerial vehicle
KR101922700B1 (ko) * 2017-06-08 2018-11-27 주식회사 해치텍 가속도 센서와 지자기 센서 기반의 각속도 산출 방법 및 장치
CN107783150A (zh) * 2017-09-13 2018-03-09 成都路行通信息技术有限公司 一种车载gps设备安装姿态的判断方法及装置
CN109960479B (zh) * 2017-12-22 2022-05-17 中科创达软件股份有限公司 一种显示设备抗眩晕的方法及装置
US10911675B2 (en) * 2017-12-28 2021-02-02 Samsung Electronics Co., Ltd. Method for providing shake correction, signal processing device performing the method, and imaging device including the signal processing device
JP7155562B2 (ja) * 2018-03-22 2022-10-19 トヨタ自動車株式会社 姿勢角演算装置、移動装置、姿勢角演算方法、およびプログラム
CN110480291B (zh) * 2018-05-15 2021-07-16 中国科学院沈阳自动化研究所 一种基于6自由度工业机器人的复杂结构件精密对接方法
CN109341677B (zh) * 2018-09-30 2021-03-12 歌尔科技有限公司 累计误差去除方法、装置、用户设备及存储介质
CN110285810B (zh) * 2019-06-13 2023-07-14 兖矿集团有限公司 一种基于惯性导航数据的采煤机自主定位方法及装置
CN112169296B (zh) * 2019-07-05 2021-10-22 荣耀终端有限公司 一种运动数据监测方法和装置
CN110427106B (zh) * 2019-07-19 2022-07-12 武汉恒新动力科技有限公司 体感动作数据处理方法、设备及计算机可读存储介质
KR102194426B1 (ko) * 2020-04-29 2020-12-24 주식회사 트위니 실내 이동 로봇이 엘리베이터에서 환경을 인식하기 위한 장치 및 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
CN112611378B (zh) * 2020-10-26 2022-12-20 西安航天精密机电研究所 一种基于四环惯导平台的载体姿态角速度测量方法
CN112649884B (zh) * 2021-01-13 2024-02-09 中国自然资源航空物探遥感中心 应用于航空电磁测量系统的吊舱姿态实时调整方法
US11834813B2 (en) * 2021-07-09 2023-12-05 Topcon Positioning Systems, Inc. IMU based system for vertical axis joint angle estimation for swing boom excavators
CN114654462A (zh) * 2022-02-28 2022-06-24 电子科技大学 一种稳定运输的送餐机器人
CN115597571B (zh) * 2022-12-15 2023-03-28 西南应用磁学研究所(中国电子科技集团公司第九研究所) 电子罗盘传感器误差及安装误差快速标定与补偿方法

Citations (4)

* 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 姿勢角制御装置
JPH09318382A (ja) * 1996-05-27 1997-12-12 Nec Corp 姿勢角検出装置及び方法
JPH11211474A (ja) * 1998-01-20 1999-08-06 Tokin Corp 姿勢角検出装置
JP2000097637A (ja) * 1998-09-24 2000-04-07 Olympus Optical Co Ltd 姿勢位置検出装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200059B2 (ja) * 1990-03-30 2001-08-20 株式会社東芝 ロボットの制御装置
US5737500A (en) 1992-03-11 1998-04-07 California Institute Of Technology Mobile dexterous siren degree of freedom robot arm with real-time control system
JPH095104A (ja) * 1995-06-23 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> 移動物体の三次元姿勢角測定法および三次元姿勢角計測装置
US6792344B2 (en) * 1997-04-25 2004-09-14 Hitachi, Ltd. Automotive control apparatus and method
JPH11223505A (ja) 1997-12-03 1999-08-17 Mitsutoyo Corp 誘導型位置測定装置
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 制御装置
DE60100372T2 (de) * 2000-02-10 2003-12-04 Fanuc Ltd Steuervorrichtung für eine Maschine
EP1502712B1 (en) 2002-04-26 2010-04-21 Honda Giken Kogyo Kabushiki Kaisha Self-position estimating device for leg type movable robots
JP2004053530A (ja) 2002-07-23 2004-02-19 National Institute Of Advanced Industrial & Technology 移動体の高精度姿勢検出方法及びその装置
JP2004268730A (ja) 2003-03-07 2004-09-30 Yamaha Motor Co Ltd 無人ヘリコプタの姿勢制御方法
US7698020B2 (en) 2003-07-11 2010-04-13 Honda Motor Co., Ltd. Method of estimating joint moment of two-legged walking mobile body
US7610313B2 (en) * 2003-07-25 2009-10-27 Attenex Corporation System and method for performing efficient document scoring and clustering
JP4410051B2 (ja) * 2004-07-22 2010-02-03 本田技研工業株式会社 角速度計測装置および脚式移動ロボット

Patent Citations (4)

* 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 姿勢角制御装置
JPH09318382A (ja) * 1996-05-27 1997-12-12 Nec Corp 姿勢角検出装置及び方法
JPH11211474A (ja) * 1998-01-20 1999-08-06 Tokin Corp 姿勢角検出装置
JP2000097637A (ja) * 1998-09-24 2000-04-07 Olympus Optical Co Ltd 姿勢位置検出装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010247303A (ja) * 2009-04-20 2010-11-04 Seiko Epson Corp 角速度または角度の検出方法及びロボットの制御方法
JP2019120587A (ja) * 2018-01-05 2019-07-22 ローム株式会社 測位システム及び測位方法
JP7025215B2 (ja) 2018-01-05 2022-02-24 ローム株式会社 測位システム及び測位方法
US11408735B2 (en) 2018-01-05 2022-08-09 Rohm Co., Ltd. Positioning system and positioning method

Also Published As

Publication number Publication date
CN100560305C (zh) 2009-11-18
CN101232979A (zh) 2008-07-30
US20100138180A1 (en) 2010-06-03
JP5167383B2 (ja) 2013-03-21
JP2007041733A (ja) 2007-02-15
JP4751930B2 (ja) 2011-08-17
US7949487B2 (en) 2011-05-24
JP2011203257A (ja) 2011-10-13
WO2007015134A3 (en) 2007-08-23
WO2007015134A2 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
JP4751930B2 (ja) 運動体の姿勢角検出装置
JP5349478B2 (ja) 逆運動学
CN111278613B (zh) 校准装置、校准方法和控制装置
RU2253092C2 (ru) Оценка пространственного положения наклоняющегося тела с использованием модифицированного кватернионного представления данных
CN114450131A (zh) 机器人系统的无导数模型学习系统及设计
Sabatelli et al. A sensor fusion algorithm for an integrated angular position estimation with inertial measurement units
Hoang et al. Measurement optimization for orientation tracking based on no motion no integration technique
Algrain et al. Novel Kalman filtering method for the suppression of gyroscope noise effects in pointing and tracking systems
Palomba et al. Reduced-order observers for nonlinear state estimation in flexible multibody systems
WO2019127092A1 (en) State estimatation
Guner et al. Novel self-calibration method for imu using distributed inertial sensors
Zhe et al. Adaptive complementary filtering algorithm for imu based on mems
JP4774522B2 (ja) 状態推定装置、状態推定方法、状態推定プログラム、およびコンピュータ読取可能な記録媒体
CN114111772B (zh) 一种基于数据手套的水下机器人软体作业手位置跟踪方法
JP2022045269A (ja) 移動体の姿勢推定方法
CN114459478A (zh) 一种基于姿态运动学模型的惯性测量单元数据融合方法
Huynh et al. Dynamic Hybrid Filter for Vision-Based Pose Estimation of a Hexa Parallel Robot
D'Amore et al. Imu-based manipulator kinematic identification
Li et al. Discrete-time complementary filter for attitude estimation based on MARG sensor
Huynh et al. Research Article Dynamic Hybrid Filter for Vision-Based Pose Estimation of a Hexa Parallel Robot
CN113927157B (zh) 激光设备输出功率的控制方法、装置、计算机设备及介质
Kim et al. Vibration-robust attitude and heading reference system using windowed measurement error covariance
GEETHA et al. KINEMATIC PARAMETER ESTIMATION OF VRT 6 ROBOT USING UNSCENTED KALMAN FILTER WITH ADAPTIVE CHOICE OF SCALING PARAMETER.
Péntek et al. Bacterial Programming Based Kinematic Chain Estimation of Construction Vehicle
Kong et al. Re-fusion of Inertial Attitude Measurement Sensors Based on Phase-lag-free LPF and Kalman Filter

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110408

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110408

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110408

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: 20110510

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110523

R151 Written notification of patent or utility model registration

Ref document number: 4751930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

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

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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