JP5962679B2 - 2足歩行ロボット制御方法及び2足歩行ロボット制御システム - Google Patents

2足歩行ロボット制御方法及び2足歩行ロボット制御システム Download PDF

Info

Publication number
JP5962679B2
JP5962679B2 JP2014007544A JP2014007544A JP5962679B2 JP 5962679 B2 JP5962679 B2 JP 5962679B2 JP 2014007544 A JP2014007544 A JP 2014007544A JP 2014007544 A JP2014007544 A JP 2014007544A JP 5962679 B2 JP5962679 B2 JP 5962679B2
Authority
JP
Japan
Prior art keywords
robot
free leg
weight
operator
biped
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.)
Active
Application number
JP2014007544A
Other languages
English (en)
Other versions
JP2015134397A (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
Original Assignee
Toyota Motor Corp
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 filed Critical Toyota Motor Corp
Priority to JP2014007544A priority Critical patent/JP5962679B2/ja
Priority to US14/597,607 priority patent/US9434430B2/en
Priority to CN201510020500.6A priority patent/CN104793622B/zh
Publication of JP2015134397A publication Critical patent/JP2015134397A/ja
Application granted granted Critical
Publication of JP5962679B2 publication Critical patent/JP5962679B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Manipulator (AREA)
  • Robotics (AREA)

Description

本発明は、2足歩行ロボット制御方法及び2足歩行ロボット制御システムに関し、特に2足歩行ロボットをマスタスレーブ制御する技術に関する。
特許文献1には、脚式移動ロボットをマスタスレーブ方式で操縦するためのマスタ装置を備えた脚式移動ロボットの遠隔制御システムが開示されている。このマスタ装置は、オペレータの足平部を可動に指示する足平支持機構と、足平支持機構を駆動する足平支持機構駆動装置と、オペレータの足平部への作用力を検出するマスタ側足平作用力検出手段とを設けるようにしている。また、脚式移動ロボットに、脚式移動ロボットの足平部への床からの作用力を検出するロボット側足平作用力検出手段を設けるようにしている。
そして、この遠隔制御システムは、オペレータの足平部への作用力とロボットの足平部への作用力とが互いに対応するように、オペレータの上体に対する足平部の目標位置及び姿勢を決定し、決定した目標位置及び姿勢に従って足平支持機構を足平支持機構駆動装置を介して制御する。また、この遠隔制御システムは、ロボットの上体に対する足平部の目標位置及び姿勢を決定し、決定した目標位置及び姿勢に従ってロボットに備えた脚部起動装置を制御する。
すなわち、この遠隔制御システムでは、オペレータとロボットとが互いに同じような作用力を足平部に受けるように制御が行われるようにしている。これにより、オペレータがロボットの安定性あるいは不安定さを、自己の安定性あるいは不安定さとして認識して、オペレータがロボットの安定性を保つための操縦を的確に行うことができるようにしている。
特開平10−217159号公報
しかしながら、特許文献1に開示の技術では、オペレータに体性感覚をフィードバックするために装置が大がかりとなってしまうという問題がある。
本発明は、上述のような問題を解決するためになされたものであり、簡易な構成でロボットの直観的な操作をすることができる2足歩行ロボット制御方法及び2足歩行ロボット制御システムを提供することを目的とする。
本発明の第1の態様に係る2足歩行ロボット制御方法は、2足歩行ロボットの歩行をマスタスレーブ制御する2足歩行ロボット制御方法であって、操作者の右足及び左足のそれぞれから地面に対して加えられる加重を検出する加重検出ステップと、前記検出された右足加重と左足加重の比を有する加重を、前記2足歩行ロボットが生じさせた場合の目標ZMPを算出する目標ZMP算出ステップと、前記算出された目標ZMPに従って前記2足歩行ロボットを制御する制御ステップと、を備えたものである。これによれば、操作者が2足歩行ロボットの右足及び左足の加重を直観的に操作することができる。また、操作者の右足加重と左足加重さえ検出できればよいため、簡易な構成とすることができる。
また、上述の2足歩行ロボット制御方法は、さらに、前記検出された右足加重と左足加重の変化から、前記操作者による一歩を検出する検出ステップと、前記操作者による一歩が終了したときに検出された右足加重と左足加重から、当該一歩に対応する前記2足歩行ロボットの一歩分の遊脚軌道を算出する遊脚軌道算出ステップと、を備え、前記制御ステップでは、さらに、前記算出された遊脚軌道で歩行するように前記2足歩行ロボットを制御するようにしてもよい。これによれば、随時遊脚軌道を反映する必要がないため、簡便に2足歩行ロボットの操作をすることができる。
また、上述の2足歩行ロボット制御方法は、前記遊脚軌道算出ステップでは、前記操作者による一歩の遊脚時間に応じたサイズで前記遊脚軌道を示す遊脚軌道情報を生成してバッファに格納し、前記制御ステップでは、前記バッファに格納された遊脚軌道情報が示す遊脚軌道に従って前記2足歩行ロボットを制御し、前記2足歩行ロボット制御方法は、さらに、前記検出された右足加重と左足加重の変化から、前記操作者による一歩の遊脚時間を算出する遊脚時間算出ステップを備え、前記遊脚軌道算出ステップでは、前記算出された遊脚時間が前記遊脚軌道情報を前記バッファに格納可能な時間の上限を超えている場合、前記遊脚時間を上限におさまる時間に補正してから前記遊脚軌道情報を生成するようにしてもよい。これによれば、操作者の一歩が非常に長い場合であっても、2足歩行ロボットを適切に動作させることができる。
また、上述の2足歩行ロボット制御方法は、さらに、前記検出された右足加重と左足加重から、前記操作者による一歩の遊脚時間を算出する遊脚時間算出ステップを備え、前記遊脚軌道算出ステップでは、前記算出された遊脚時間が、前記2足歩行ロボットが前記操作者による一歩に対応する一歩を再現可能な時間の下限未満となっている場合、当該操作者による一歩の遊脚時間を下限におさまるに時間に補正してから前記遊脚軌道を生成するようにしてもよい。これによれば、操作者の一歩が非常に短い場合であっても、2足歩行ロボットを適切に動作させることができる。
また、上述の2足歩行ロボット制御方法は、前記検出された右足加重と左足加重から、前記操作者による一歩の遊脚時間を算出する遊脚時間算出ステップを備え、前記遊脚軌道算出ステップでは、前記算出された遊脚時間が、前記2足歩行ロボットが前記操作者による一歩に対応する一歩を再現可能な時間の下限未満となっている場合、当該操作者による一歩を無効とするようにしてもよい。これによれば、操作者の一歩が非常に短い場合であっても、2足歩行ロボットを適切に動作させることができる。
また、上述の2足歩行ロボット制御方法は、さらに、前記操作者の右足及び左足のそれぞれの姿勢を、前記検出された右足加重と左足加重のそれぞれからの加重の比に応じて合成した姿勢として、前記2足歩行ロボットの鉛直軸周りの腰姿勢を算出する腰姿勢算出ステップを備え、前記制御ステップでは、さらに、前記算出された腰姿勢となるように前記2足歩行ロボットを制御するようにしてもよい。これによれば、操作者が2足歩行ロボットの上体を直観的に操作することができる。
本発明の第2の態様に係る2足歩行ロボット制御システムは、スレーブとなる2足歩行ロボットの歩行を、マスタとしてマスタスレーブ制御する2足歩行ロボット制御装置であって、操作者の右足及び左足のそれぞれから地面に対して加えられる加重を検出する加重検出部と、前記検出された右足加重と左足加重の比を有する加重を、前記2足歩行ロボットが生じさせた場合の目標ZMPを算出する目標ZMP算出部と、前記算出された目標ZMPに従って前記2足歩行ロボットを制御する制御部と、を備えたものである。これによれば、上述の2足歩行ロボット制御方法と同様に、操作者が2足歩行ロボットの右足及び左足の加重を直観的に操作することができ、簡易な構成とすることができる。
上述した本発明の各態様によれば、簡易な構成でロボットの直観的な操作をすることができる2足歩行ロボット制御方法及び2足歩行ロボット制御システムを提供することができる。
実施の形態に係るマスタスレーブ制御システムの構成図である。 実施の形態に係る安定化処理の概念を示す図である。 実施の形態に係るマスタスレーブ制御システムの処理を示すフローチャートである。 バッファの更新位置と動作遅延・安定性の関係を示す図である。 実施の形態に係る着床判定を示す図である。 実施の形態に係る離床判定を示す図である。 操作者の足運びの軌跡を示す図である。 操作者の片足を離床して着床するまでの遊脚時間のイメージを示す図である。 実施の形態に係る遊脚時間の上限及び下限を示す図である。 実施の形態に係る遊脚軌道生成に用いるパラメータを示す図である。 実施の形態に係る目標脚位置姿勢の更新例を示す図である。 実施の形態に係る目標ZMPの更新例を示す図である。 実施の形態の実験結果を示す図である。 実施の形態の実験結果を示す図である。 予見制御ゲインの一例を示す図である。 実施の形態に係るロボットの直観操作のイメージを示す図である。 実施の形態に係るロボットの直観操作のイメージを示す図である。 実施の形態に係るロボットの障害物回避のイメージを示す図である。 実施の形態に係るロボットを操作者が座って操作する例を示す図である。
以下に図面を参照しながら、本発明の好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
<1.システム構成>
まず、図1を参照して、本実施の形態に係るマスタスレーブ制御システム1の構成について説明する。図1は、本実施の形態に係るマスタスレーブ制御システム1の構成図である。
マスタスレーブ制御システム1は、2足歩行ロボット3(以下、単に「ロボット」とも言う)、一対のフォースプレート4、複数のモーションキャプチャ装置5、及び計測用PC(Personal Computer)6を有する。マスタスレーブ制御システム1は、2足歩行ロボット制御システムとして機能する。
フォースプレート4、モーションキャプチャ装置5、及び計測用PC6を含む単位は、マスタスレーブ制御におけるマスタ装置2に相当し、ロボット3は、マスタスレーブ制御におけるスレーブ装置に相当する。
一対のフォースプレート4は、操作者が、一方のフォースプレート4に左足を置き、他方のフォースプレート4に右足を置くように載ることで利用される。これにより、一対のフォースプレート4のそれぞれは、操作者の右足及び左足のそれぞれの足底から地面に対する加重を検出する。一対のフォースプレート4のそれぞれは、操作者の足底から地面に対する加重の検出に応じて、その加重量を示す加重情報を生成して計測用PC6に送信する。計測用PC6は、フォースプレート4から受信した加重情報をロボット3に送信する。これにより、ロボット3は、フォースプレート4のそれぞれから送信された加重情報が示す加重量から、操作者の右足及び左足のそれぞれから地面に対して加えられる加重量を認識可能となっている。
複数のモーションキャプチャ装置5のそれぞれは、足先に複数のマーカー7を付けた操作者を撮像し、その画像を示す画像情報を生成して計測用PC6に送信する。計測用PC6は、複数のモーションキャプチャ装置5のそれぞれから受信した画像情報が示す画像に含まれるマーカーの動きから、遊脚の足上げ高さ、及び、両足の足先の位置及び姿勢を計算する。計算用PC6は、計算した遊脚の足上げ高さ、及び、両足の足先の位置及び姿勢を示す足先位置姿勢情報をロボット3に送信する。これにより、ロボット3は、操作者の遊脚の足上げ高さ、及び、操作者の右足と左足の相対位置姿勢を認識可能となっている。
このように、計算用PC6は、上述の加重情報及び足先位置姿勢情報を操作情報としてロボット3に送信する。ロボット3は、このようにして得られる(1)〜(3)の操作情報を用いて、下肢マスタスレーブ操作を行う。
(1)右足及び左足のそれぞれの加重量
(2)遊脚の足上げ高さ
(3)右足と左足の相対位置姿勢
なお、(1)〜(3)の操作情報は、フォースプレート4が随時加重を検出して加重信号を送信すること、及び、モーションキャプチャ装置5が随時撮像して画像情報を送信することによって、計測用PC6が随時取得し、ロボット3に送信している。これらの操作情報を随時取得する時間分解能は例えば最低限25msec程度あればよく、ロボット3側では実用上それを補間して用いるようにしている。
ロボット3に搭載されたCPU8(Central Processing Unit)(以下、本説明では「ロボットCPU」とも言う)は、計測用PC6から送信された操作情報が示す右足及び左足の加重量、遊脚の足上げ高さ、及び右足と左足の相対位置姿勢に基づいて、ロボット3の動きが操作者の動きをトレースした動きとなるような、ロボット3の目標ZMP、左足の目標脚位置姿勢、右足の脚目標位置姿勢、及び目標腰姿勢を算出する。
ロボットCPU8は、計算した情報(目標ZMP、左足の目標脚位置姿勢、右足の目標脚位置姿勢、及び目標腰位置姿勢)に基づいて、ロボット3の各関節角度を計算し、計算した関節角度となるように各関節を制御する。具体的には、ロボット3は、各関節として機能する複数のアクチュエータ(図示せず)を有している。ロボットCPU8は、各関節角度として各アクチュエータの目標角度を計算し、各アクチュエータの角度が、計算した目標角度となるように、各アクチュエータを制御する。すなわち、目標ZMP、左足の目標脚位置姿勢、右足の目標脚位置姿勢、及び目標腰姿勢となる目標角度が算出される。これにより、ロボット3の動きが操作者の動きをトレースした動きとなるようにマスタスレーブ制御が行われる。なお、ロボットCPU8は、例えば、ロボット3に搭載され、ロボット3の動作を統括的に制御するマイクロコントローラ(マイコン)に含まれる。
以上にマスタスレーブ制御システム1の構成について説明したが、操作者の遊脚の足上げ高さ及び足先の位置姿勢(右足の位置姿勢及び左足の位置姿勢)を取得する手段は、上述の例に限られない。上述の例では、モーションキャプチャ方式として、光学式モーションキャプチャを利用する例を説明したが、機械式又は磁気式等の他のモーションキャプチャ方式を利用するようにしてもよい。また、KINECT(登録商標)に代表されるような深度情報を取得できるモーションセンサを利用してもよい。
また、操作者の右足及び左足のそれぞれからの加重量を取得する手段についても、上述の例に限られない。例えば、操作者が力センサを備えた靴を履くことで、操作者の右足及び左足のそれぞれから力センサに加えられる力を、地面に対する加重として検出するようにしてもよい。そして、右足及び左足の力センサのそれぞれは、検出した力を示す加重情報を生成して計測用PC6に送信するようにすればよい。
また、計測用PC6とロボット3との間の通信の形式も、有線・無線を問わない。すなわち、計測用PC6及びロボット3のそれぞれは、有線及び無線のうち、採用した通信方式に応じた通信モジュールを備え、その通信モジュールを介して通信を行うこととなるが、その実現方法は一般的であるため、説明を省略する。
<2.ロボット側の安定化処理の前提>
本実施の形態に係る2足歩行ロボット3は、目標ZMPに基づいて安定的な重心軌道を算出し、算出した重心軌道と目標脚位置姿勢及び目標腰姿勢を実現する各関節角度を算出するリアルタイム動作ができるものとする。また、このような安定化処理を短周期(数十msecレベル)で逐次計算可能な処理系を有するものとする。
ここで、安定化処理を実現する手法として、一般的な予見制御又はモデル予測制御等を用いて重心軌道を算出すればよい。例えば、特許第3834629号公報に開示されるような予見制御を用いるようにしてもよく、特開2013−184248号公報に開示されるようなモデル予測制御を用いるようにしてもよい。そして、ロボットCPU8は、予見制御又はモデル予見制御を適用して算出した重心軌道から重心ヤコビアンを用いた逆運動学により各関節角度を算出する一般的な手法により、各関節角度を算出するようにすればよい。
本実施の形態において、この手法により安定化処理を実現するためには、ロボット3の長期的安定性を確保するために一定期間(予見期間又は予測期間ともいう)の未来の目標値(目標ZMP、左足の目標脚位置姿勢、右足の目標脚位置姿勢、及び目標腰姿勢)を保持しておく必要がある。図2に、この手法による安定化処理の概念を示す。図2に示すように、ロボット3が有するバッファ(以下、本説明では「予測期間バッファ」とも言う)に、未来の目標値を格納する。予測期間バッファは、目標ZMP、左足の目標脚位置姿勢、右足の目標脚位置姿勢、及び目標腰姿勢のそれぞれについて用意される。なお、図2では、予測期間バッファが1.6sec分の未来の目標値を格納可能なサイズである例を示している。
一般的な予見制御又はモデル予測制御では、操作者の歩行モーション又はジョイスティック等の入力に基づいて、随時、その入力から算出した目標値が予測期間バッファの末端に補充される。ロボットは、予測期間バッファの先頭から、順次、それぞれの目標値を取得し、取得した目標値に基づいて各関節角度を算出する。具体的には、ロボットは、予見制御又はモデル予測制御により、目標ZMPからロボットの重心軌道を算出し、算出した重心軌道と、左足の目標脚位置姿勢、右足の目標脚位置姿勢、及び目標腰姿勢とから逆運動学により各関節角度を算出する。そして、ロボットは、算出した各関節角度となるように、各関節を制御する。すなわち、予測期間バッファは、キューとして機能する。
なお、未来の目標値の格納形式は、上述したようにバッファに格納する形式には限られず、多項式で保持するようにしてもよい。また、本実施の形態では、上述したように未来の目標値を保持し、その目標値を保持している期間の安定性を保証する重心軌道を比較的早い周期で逐次生成する安定化処理を有するロボット制御系を対象としており、同等の処理を実現することができるものであれば、その実現方法は、本実施の形態そのものに限られない。
本実施の形態では、操作情報に基づいて新たに算出した目標値を予測期間バッファの最後尾に格納するように利用することも可能であるが、新たに算出した目標値を先頭から1秒ほど未来となる位置に格納するようにしても算出される重心軌道は大きく変わらないことを確認している。これは、本実施の形態では、操作者の足の加重からロボット3の目標ZMPを算出するようにしているため、そのような処理をしていないものと比較して、後述するようにロボット3のZMPの遷移期間を省略することができ、操作者の動作を反映したロボットの動作を低遅延で実現することができるからである。
<3.処理フロー>
続いて、図3を参照して、本実施の形態に係るマスタスレーブ制御システム1の処理について説明する。図3は、本実施の形態に係るマスタスレーブ制御システム1の処理を示すフローチャートである。
(S1:ロボットの初期状態への遷移)
ロボット3は、その動作開始時に初期状態へ遷移する(S1)。具体的には、ロボットCPU8は、ロボット3の0点復帰、サーボオン、及び初期姿勢への遷移を実施し、倒立制御及び倣い制御を開始する。
ここで、ロボット3は、図2に示すように予測期間バッファを有しており、その予測期間バッファでは事前に更新位置が定められている。図4のパターンAに示すように、更新位置を予測期間バッファの最後尾に設定する場合には、予測期間分(予測期間バッファの目標値を先頭から最後尾まで取得する時間:1.6秒)だけ遅れてロボット3が操作者の動作を反映した動作を実施する。また、更新位置を予測期間バッファの中間に設定すれば予測期間の半分の時間分(0.8秒)だけ遅れてロボット3が操作者の動作を反映した動作を実施する。また、図4のパターンBに示すように、予測期間バッファの先頭に近すぎる位置を更新位置としてしまうと、ロボット3に操作者の動作が反映されるまでの遅延も短くなるが、操作者が長い一歩を実施した場合にその目標値が格納しきれなくなってしまう。よって、上述の通り、図4のパターンCに示すように、ロボット3の動作の安定性と低遅延化を勘案し、予測期間バッファの先頭から1秒程度の期間に更新位置を設定するとよい。
ロボットCPU8は、このようにして事前に設定した更新位置に従って、計測用PC6から受信した操作情報に基づき算出した目標ZMP、左足の目標脚位置姿勢、右足の目標脚位置姿勢、及び目標腰姿勢を予測期間バッファに格納する。ここで、ロボットCPU8は、図4のパターンCに示すように、更新位置における目標値と同一の目標値を予測期間バッファの末端まで埋めるものとする。
ここで、予測期間バッファのサイズを更新位置までのサイズとしてしまってもよい。しかしながら、ロボットCPU8の計算時間に余力があるのであれば、予測期間バッファのサイズは、上述したように、更新位置以降の未来の目標値も格納されるサイズとするとよい。そして、例えば、後述の「6.本実施の形態の変形例」で説明するように、予測期間バッファにおいて更新位置から末端に、より動的安定性を保証する目標値を算出して格納することも有効である。
(S2:操作状態の取得判定)
ロボットCPU8は、操作情報を途絶えずに取得できているか否かを判定する(S2)。具体的には、ロボットCPU8は、計測用PC6から操作情報を途絶えずに所定の間隔で受信することができている否かを判定する。操作者の操作情報が取得できていない場合(S2:No)、ロボットCPU8は、後述のS18におけるエラー処理を実施する。
(S3:操作状態が両脚支持状態かの判定)
操作者の操作状態は、大別して両脚支持/単脚支持(片足離床)/支持なし(両足離床)の3つの状態に分けられる。ロボットCPU8は、取得した操作状態に基づいて以降の処理によって、操作者の操作状態がそれらの状態のうち、いずれの状態となっているかを判定する。
本実施の形態では、両脚離床状態(例えばジャンプしている状態)における動作は取り扱わないため、後述のS6でエラーとして判定される。ここでは、ロボットCPU8は、両脚支持状態であるかどうかを判定し、処理を分岐する。すなわち、操作者の操作情報を取得できている場合(S2:Yes)、ロボットCPU8は、両脚支持状態であるか否かを判定する(S3)。なお、本実施の形態における処理の開始時には、両足支持状態から処理が開始されることが好ましい。
ここで、両脚支持状態であるか否かは、計測用PC6から受信した加重情報が示す右足及び左足の加重に基づき、右足の加重と左足の加重の両方が、図5に示すように所定の加重閾値を超えたか否かによって判定する。ロボットCPU8は、右足の加重と左足の加重の両方が加重閾値を超えている場合、両脚支持状態であると判定する。ロボットCPU8は、右足の加重と左足の加重の両方が加重閾値を超えていない場合、両脚支持状態でないと判定する。
(S4:離床判定)
両脚支持状態であると判定した場合(S3:Yes)、ロボットCPU8は、どちらかの足が離床し、両脚支持状態から単脚支持状態に移行したか否かを判定する(S4)。
ここで、単脚支持状態であるか否かは、計測用PC6から受信した加重情報に基づき、操作者の右足の加重及び左足の加重のいずれか一方が、図6に示すように上述の加重閾値以下となったか否かによって判定する。ロボットCPU8は、操作者の右足の加重及び左足の加重のいずれか一方が加重閾値以下であり、かつ他方が加重閾値を超えている場合、単脚支持状態となったと判定する。ロボットCPU8は、操作者の右足の加重及び左足の加重の両方が加重閾値を超えたままである場合、単脚支持状態となっていないと判定する。操作者の片足が離床していないと判定した場合(S4:No)、ロボットCPU8は、後述のS14における目標ZMP算出処理を実施する。この場合、両脚支持状態において目標ZMPの算出が行われることになる。
なお、チャタリング防止のために一定時間以上、操作者の右足の加重及び左足の加重のいずれか一方が加重閾値以下の状態が続いたら離床状態と判定するようにしてもよい。また、計測した操作者の脚高さも考慮することにより判定精度を向上するようにしてもよい。具体的には、ロボットCPU8は、操作者の片足の加重が加重閾値以下となっており、かつその片足(遊脚)の足上げ高さが所定の足上げ高さ閾値を超えている場合に、単脚支持状態であると判定するようにしてもよい。また、ロボットCPU8は、片足(遊脚)の足上げ高さのみから、単脚支持状態であるか否かを判定するようにしてもよい。
(S5:離床状態の保持)
操作者の片足が離床し、単脚支持状態であると判定した場合(S4:Yes)、ロボットCPU8は、後述の処理で遊脚の着床時の遊脚位置姿勢を算出するための情報として、S4で離床を判定したタイミング、及び、右足及び左足のどちらが離床されたかを示す情報をロボット3が有する記憶装置(例えばハードディスク又はメモリ等)に保持する(S5)。そして、ロボットCPU8は、後述のS14における目標ZMP算出処理を実施する。この場合、片脚支持状態において目標ZMPの算出が行われることになる。
(S6:両脚離床の判定)
一方、両脚支持状態でないと判定した場合(S3:No)、ロボットCPU8は、右足及び左足の両方が離床した両足離床状態に移行したか否かを判定する(S6)。
ここで、両脚支持状態であるか否かは、計測用PC6から受信した加重情報に基づき、右足の加重と左足の加重の両方が、上述の閾値以下となったか否かによって判定する。ロボットCPU8は、右足の加重と左足の加重の両方が閾値以下である場合、両脚離床状態であると判定する。ロボットCPU8は、右足の加重と左足の加重の両方が閾値以下となっていない場合、両脚離床状態でないと判定する。
両脚離床状態であると判定した場合(S6:Yes)、本実施の形態では両足が地面から離れるような場合を想定していないため、ロボットCPU8は、後述のS18におけるエラー処理を実施する。
(S7:足上げ高さ候補量の取得)
単脚支持状態途中である場合(両脚離床状態でないと判定した場合(S6:No))は、常に、この処理を実施する。ここでは、ロボットCPU8は、計測用PC6から受信した操作情報に基づき、操作者の遊脚の足上げ高さが離床してから最大の高さになっているか否かを判定する。最大の高さとなっている場合、ロボットCPU8は、その高さをロボット3の遊脚軌道の足上げ高さの最大の高さの候補量として記憶装置に保持する(S7)。すなわち、ロボットCPU8は、随時、計測用PC6から受信した操作情報に基づき、新たに受信した操作情報が示す遊脚の足上げ高さと、記憶装置に保持している候補量とを比較する。そして、ロボットCPU8は、新たに導出した遊脚の足上げ高さの方が、記憶部に保持している候補量よりも高い場合には、候補量を新たに導出した遊脚の足上げ高さに更新する。ロボットCPU8は、記憶装置に保持している候補量の方が、新たに導出した遊脚の足上げ高さよりも高い場合には、現在保持している候補量を維持する。これにより、図7に示すように、操作者の遊脚軌道中で最も足を高く上げた時点における高さを検出・保持できるようにしている。このようにして、最終的に候補量として残った足上げ高さの最大値は、後述のS13におけるロボット3の遊脚軌道生成処理においてロボット3の足上げ高さの最大値として利用される。
ここで、実用上は、ロボット3の動作可能な足上げ高さを考慮して、足上げ高さの上限及び下限を予め定めておき、足上げ高さがその上限から下限までの範囲外となっている場合に、足上げ高さの候補量をその範囲内となるように丸め込むようにするとよい。
また、ロボット3の遊脚軌道の足上げ高さは、予め定めた固定値としてもよく、上記の方法に限定されるものではない。しかしながら、好ましくは、上述したように、検出した操作者の遊脚の足上げ高さの最大値を、ロボット3の遊脚の足上げ高さの最大値として反映することにより、操作者の意図を反映した歩行が可能となる。
(S8:遊脚着床判定)
単脚支持状態において、この判定が毎回実行される。ロボットCPU8は、遊脚が着床したか否かを判定する(S8)。
ここで、遊脚が着床したか否かは、計測用PC6から受信した操作情報が示す加重に基づき、操作者の遊脚と認識している足からの加重が、図5に示すように上述の閾値を超えたか否かによって判定する。ロボットCPU8は、操作者の遊脚と認識している足の加重が閾値を超えた場合、遊脚が着床したと判定する。ロボットCPU8は、操作者の遊脚と認識している足の加重が閾値を超えていない場合、遊脚が着床していないと判定する。遊脚が着床していないと判定(S8:No)、ロボットCPU8は、後述のS14における目標ZMP算出処理を実施する。この場合、単脚支持状態において目標ZMPの算出が行われることになる。
(S9:遊脚時間長の適正判定)
遊脚が着床したと判定した場合(S8:Yes)、この処理に入る。ロボットCPU8は、保持している離床タイミングと、着床タイミングの差分として、遊脚となっていた時間長(遊脚時間長)を算出する。図8に示すように、操作者が片足を離床して着床するまでの時間を算出することとなる。ロボットCPU8は、算出した遊脚時間長が、適正範囲か否かを判定する(S9)。
具体的には、ロボットCPU8は、算出した遊脚時間長が、予め定めた下限及び上限の範囲内であるか否かを判定する。下限は、ロボット3の足関節の動作性能を勘案して1歩を進める際の最低時間を事前に設定しておく。本実施の形態では、後述するように操作者の遊脚が着床したときに、その1歩に対応するロボット3の遊脚軌道(その1歩分の目標脚位置姿勢)を算出し、予測期間バッファの更新位置から先頭に遡って格納するようにしている。そのため、上限は、予測期間バッファの更新位置から先頭までの分の時間以上の遊脚軌道は格納できないため、図9に示すように予測期間バッファの更新位置から先頭までの分の時間長が、遊脚時間長の上限となる。また、遊脚時間長が下限の時間と等しい場合には、予測期間バッファにおいて更新位置から先頭に向かって下限の時間分の領域に、その遊脚の一歩に対応する目標脚位置姿勢の情報が格納されることになる。ロボットCPU8は、遊脚時間長が上限から下限までの範囲内(上限以下かつ下限以上)である場合、遊脚時間長が適正範囲であると判定し、遊脚時間長が上限から下限までの範囲外(上限よりも大きくかつ下限未満)である場合、遊脚時間長が適正範囲でないと判定する。遊脚時間長が適正範囲であると判定した場合(S9:Yes)、ロボットCPU8は、後述のS13における遊脚軌道生成・更新処理を実施する。
(S10:遊脚時間長の補正の可否判定)
遊脚時間長が適正範囲でないと判定した場合(S9:No)、ロボットCPU8は、遊脚時間長が補正可能か否かを判定する(S10)。
具体的は、ロボットCPU8は、遊脚時間長が上限を超えている場合には、上限におさまる長さに補正すればよいので補正可能と判定する。一方、ロボットCPU8は、遊脚時間長が下限未満となっている場合には、少なくとも下限以上となる長さに補正すればよいが、予測期間バッファにおいて、1つ前の1歩に対応する遊脚軌道の情報が遊脚時間長の下限よりも更新位置側に残っている場合には、後述するS13の遊脚軌道の生成・更新処理により、その一部が中途半端に上書きされてしまうことになる。そのため、ロボットCPU8は、遊脚時間長が下限未満となっている場合には、そのような状況が発生しない場合に補正可能と判定する。
すなわち、ロボットCPU8は、前回にS13の遊脚軌道生成・更新処理を実施してから、遊脚時間長の下限時間以上の時間が経過している場合には補正可能と判定する。この場合には、前回に予測期間バッファの遊脚軌道を更新してから、少なくとも遊脚時間長の下限時間分の情報が先頭から順次取得・利用されており、予測期間バッファにおいて更新位置から遊脚時間長の下限時間分の範囲に前回の遊脚軌道の情報が格納されていないからである。よって、遊脚時間を、遊脚時間長の下限まで引き延ばすように補正したとしても、前回の遊脚軌道を上書きすることがないからである。一方、ロボットCPU8は、遊脚時間長の下限時間以上の時間が経過していない場合には、補正不可能と判定する。ロボットCPU8は、遊脚時間長が補正可能と判定した場合には(S10:Yes)、S12の処理に移行し、遊脚期間長が補正不可能と判定した場合には(S10:No)、S11の処理に移行する。
(S11:遊脚判定の無効化)
遊脚期間長が補正不可能と判定した場合(S10:No)、上述したように短すぎる1歩であり、かつ補正も不可能であるため、ロボットCPU8は、現在の単脚支持状態をキャンセルし、両脚支持状態に変更する。操作者の1歩は無視されることになるが、ロボット3の遊脚軌道はまだ生成していないため、特に処理を施す必要は無く、ロボットCPU8が認識する内部状態を変更するのみ(上述のように認識する操作状態の更新等)でよい。そして、ロボットCPU8は、後述のS14における目標ZMP算出処理を実施する。この場合、両脚支持状態において目標ZMPの算出が行われることになる。
(S12:遊脚期間長の変更)
遊脚期間長が補正可能であると判定した場合(S10:Yes)、ロボットCPU8は、遊脚期間長を補正する(S12)。すなわち、ロボットCPU8は、遊脚期間長を上限及び下限の範囲内となるように補正する。具体的には、ロボットCPU8は、遊脚時間長が上限を超えている場合には、遊脚時間長を上限まで短くした時間となるように補正し、遊脚時間長が下限未満となっている場合には、遊脚時間長を下限まで長くした時間となるように補正する。
(S13:遊脚軌道の生成)
ロボットCPU8は、S1の処理で事前に設定した予測期間バッファの更新位置で遊脚の踏み出しが終わるように遊脚軌道を生成する。その際、使用するパラメータを以下のように定義し、図10に図示する。
ts:S9〜S12で算出した遊脚時間長(スカラー)
hs:S7で算出した足上げ高さ(スカラー)
T1:操作者の支持脚位置姿勢(同時変換行列)
T2:操作者の着床時の遊脚位置姿勢(同時変換行列)
T3:操作者の支持脚基準での遊脚着床店相対位置姿勢(同時変換行列)
T4:ロボット3の支持脚位置姿勢(同時変換行列)
T5:離床前のロボット3の遊脚位置姿勢(同時変換行列)
T6:着床時のロボット3の遊脚位置姿勢(同時変換行列)
ロボットCPU8は、式1により着床時のロボット3の遊脚位置姿勢T6を算出する。
Figure 0005962679
式1からも明らかなように、例えばユーザの足先に3次元磁気センサを取り付けて直接右足と左足の相対位置を検出する等することで、最初からT3を算出できる場合には、ロボットCPU8におけるT1、T2の算出は不要である。また、T3は、人の歩幅とロボット3の歩幅の違いを勘案し、操作情報から算出した値に一定のレートを乗算して変更するようにしてもよい。また、ロボット3の可動範囲及び足の大きさを考慮し、自己干渉を防止するような値に変更してもよい。
ロボットCPU8は、離床前のロボット3の遊脚位置姿勢T5から、遊脚時間長tsで着床時のロボット3の遊脚位置姿勢T6に到達するように補間して遊脚軌道(1歩分の右足及び左足の目標脚位置姿勢)を生成し、ロボット3の予測期間バッファを更新する(S13)。基本的には、遊脚軌道の先端と末端の速度・加速度が0となるように、5次の多項式補間で遊脚軌道を構成する各遊脚位置姿勢の目標値を補間すればよい。足上げ高さも考慮する場合には、鉛直方向に足上げ高さ分だけ足を上げて下ろすような補間が加わり、6次の多項式補間を用いる。
また、ロボット3に適用する実用的な遊脚軌道としては、足位置が鉛直方向に地面を離れてから前後左右方向に振り出さないと摩擦の関係上、足がつまずいたりして安定性に悪影響を及ぼす。そこで、鉛直方向(Z軸方向)の遊脚軌道以外の補間軌道の開始を遅め、終了を早めることで完全に遊脚が上がってから振り出しを行うような軌跡を生成することが実用的である。本実施の形態では、この詳細な実現方法としてどのような方法を採用するかは問わない。
本処理により、予測期間バッファにおいて更新位置から遊脚時間長分遡った点まで遊脚に関する目標脚位置姿勢が更新される。すなわち、図11に示すように、予測期間バッファ内の斜線部が更新される。また、図11に網掛け部として示すように、更新位置以降から予測期間バッファの末端までは、着床時(更新位置)の情報と同じ情報で埋めておくとよい。
具体的には、ロボットCPU8は、図11に示すように、生成した遊脚軌道を示す情報を、予測期間バッファにおいて更新位置から遊脚時間分遡った範囲に格納する。そして、ロボットCPU8は、予測期間バッファにおける更新位置以降の範囲については、着床時の目標脚位置姿勢の情報(遊脚軌道における最後の目標脚位置姿勢の情報)で埋める。
なお、遊脚が着床判定されて遊脚軌道を生成するとき以外は、各足の目標脚位置姿勢は更新位置において、1つ前の情報をそのままコピーして更新すればよい。また、予測期間バッファの先頭から目標足位置姿勢が取得されて、予測期間バッファの末端に空きができるときに、その位置に1つ前の情報をそのままコピーして格納するようにしてもよい。言い換えると、本実施の形態では、遊脚の着床判定時のみしか遊脚軌道分の目標脚位置姿勢の更新は行わない。
(S14:加重操作情報から目標ZMPを算出する)
ロボットCPU8は、計測用PC6から受信した操作情報に基づいてロボット3の目標ZMPを、式2によって算出し、ロボット3の予測期間バッファを更新する(S14)。なお、式2におけるfL、fRは、予測期間バッファ更新位置の時点でのロボット3の脚位置となる。
Figure 0005962679
本処理に入る前までに、操作者の右足及び左足の加重量、及び、ロボット3の右足及び左足の脚位置姿勢(目標脚位置姿勢)は更新されているはずなので、ロボットCPU8は、加重情報が示す右足及び左足の加重量と、予測期間バッファの更新位置での目標脚位置姿勢における右足及び左足の足位置に基づき、更新位置における目標ZMPを算出する。そして、図12に示すように予測期間バッファにおける更新位置以降の全てを、算出した目標ZMPの情報で埋める処理を行う。
具体的には、ロボットCPU8は、図12に示すように、算出した目標ZMPを示す情報を、予測期間バッファにおいて更新位置以降の全ての領域(更新位置及びそれよりも末端方向の領域)に格納する。
ここで、遊脚の離床判定がされている状況では、式2において離床している足の加重量(Fzl又はFzr)は0又はほぼ0となるため、次にS13で遊脚位置が変更されても、殆ど影響を受けることはない。
本処理により、操作者が地面に対して加えている右足及び左足の加重の比に応じて、目標ZMPを算出するようにしているため、ロボット3が地面に対して加える加重の比を、直感的に操作することができる。すなわち、ロボット3の右足及び左足のそれぞれからのZMPまでの距離が、操作者の右足及び左足のそれぞれの加重の比に反比例した比として決定される。言い換えると、ロボット3の右足及び左足のそれぞれの加重の比を、操作者の右足及び左足のそれぞれの加重の比とすることができる。ここで、ロボット3の足位置(例えば足先の中心)を基準として目標ZMPを算出する例について説明したが、操作者の足位置及び足からの加重からZMPを算出して、ロボット3においてそのZMPに対応する位置を目標ZMPとして算出するようにしてもよい。
(S15:加重情報とロボット足姿勢から目標腰姿勢算出)
次に、ロボットCPU8は、加重情報が示す右足及び左足の加重量と、予測期間バッファの更新位置での目標脚位置姿勢における右足及び左足の足姿勢に基づいて目標腰姿勢を算出し、予測期間バッファの更新位置に格納する(S15)。ここでは、鉛直方向(Z軸方向)を軸とする回転方向の腰姿勢を算出する。具体的には、操作者が多く加重した足の向きに上肢が向くようにZ軸周りの腰姿勢を、式3によって算出する。
Figure 0005962679
他の腰姿勢に関しても適用可能であるが、動作の自然さの観点から上述のようにZ軸周りの腰姿勢に適用することが望ましい。また、図12に示した目標ZMPの場合と同様に、予測期間バッファにおける更新位置以降の全てを、算出した目標腰姿勢の情報で埋める処理を行う。
具体的には、ロボットCPU8は、図12に示す場合と同様に、算出した腰姿勢を示す情報を、予測期間バッファにおいて更新位置以降の全ての範囲に格納する。
このように、本処理では、腰姿勢を、操作者の左足及び右足の姿勢が反映されるロボット3の左足及び右足の姿勢のそれぞれを、操作者の左足及び右足のそれぞれの加重の比によって合成することで得られる姿勢とするようにしている。よって、本処理により、操作者が両足の加重操作でロボット3の上肢の向きを直観的に操作することができる。操作者の腰姿勢を計測せずに少ない計測情報から上肢まで操作できるので画期的である。また、腰姿勢に関しては、両脚姿勢の中間姿勢にするようにしてもよく、上述の方式に限定されるものではない。
(S16:安定化処理の実行)
ロボットCPU8は、予見制御又はモデル予測制御を実行し、予測期間の全体にわたって安定な重心軌道を生成する。すなわち、ロボットCPU8は、目標ZMPの予測期間バッファに格納される全ての目標ZMPに基づいて、現在及び未来の目標重心位置を算出する。重心周りのモーメントを考慮し、複数段階で予見制御を実施するようにしてもよい。そして、ロボットCPU8は、算出した重心軌道と、目標脚位置姿勢を満たすように逆運動学を施し、最終的な各関節角度を算出する(S16)。すなわち、ロボットCPU8は、算出した重心軌道と、予測期間バッファの先頭における右足の目標脚位置姿勢、左足の目標脚位置姿勢、及び目標腰姿勢と、に基づいて、現時点でロボット3がとるべき各関節角度を算出する。
一般にロボットの各軸アクチュエータの制御となる低レベル制御は高周期であるのに対し、予見制御などの高レベル制御は計算時間が数十msecと若干遅い周期で回る。実用上、低レベル制御側では、予見制御で重心軌道として求めた数サンプル数分の重心位置を処理することになる。なお、S16における制御は従来手法に従えばよいため、詳細な記述は省略する。
(S17:各関節の制御)
ロボットCPU8は、算出した各関節角度を目標角度として各関節に対応するアクチュエータを制御する(S17)。なお、ここで、予測期間バッファの情報は、1制御周期分消費されるので先頭の情報を排除し、新たな情報を最後尾に加える。上述したように、暫定的に予測期間バッファの末端だった情報と同じ情報を加えるようにしてもよい。
(S18:エラー処理)
本実施の形態では、操作者の両足が離床したり(S6:Yes)、操作情報の取得が途切れたりした場合(S2:No)には、エラーとしてロボット3を安全に停止させる(S18)。その場合、ロボットCPU8は、目標ZMPの軌道を現在のロボット3の両足の中心に戻し、それ以降の遊脚判定及び遊脚軌道生成を行わないようにすればよい。すなわち、ロボットCPU8は、徐々にロボット3の両足の中心に戻るような目標ZMPを順次生成し、予測期間バッファを更新するようにすればよい。また、予測期間バッファは、操作情報の受信が正常復帰した場合、及び、操作者の両足が再度着床したと判定した場合には通常処理の戻してもよい(図3に示す処理を再開してもよい)。
<4.安定化に関して>
本実施の形態では、図4に示すパターンCのように、予測期間バッファにおける目標値の更新位置を最後尾とせずに中間的な位置とし、それ以降は暫定値を格納するようにしている。また、図11に示すように遊脚軌道生成時には、予測期間バッファの更新位置から先頭に遡った範囲を更新するようにしている。そのため、ロボット3の安定化を処理する予見制御又はモデル予測制御を適用した場合に、安定を保証するための重心軌道が急峻に変化するようなことにならないかという懸念が生じる。
そこで、予測期間バッファ(1.6sec分)の最後尾を更新する場合と、予測期間バッファの先頭から1.0sec分後ろの位置を更新位置として更新する場合にモデル予測制御を用いて安定化を行った際の重心軌道を比較した結果をx、y方向に関して、目標ZMPと併せてグラフにプロットした結果を、図13及び図14として示す。実験条件は、1歩を0.8sec程度とし、歩幅を10cm〜20cm程度とした。図13及び図14において「COG_Z_FULL」は、更新位置を最後尾とした場合における重心軌道を示し、「COG_Z_1.0s」は、更新位置を予測期間バッファの先頭から1.0sec分後ろの位置とした場合における重心軌道を示している。なお、図13では、X軸方向の重心軌道の変化を示し、図14では、Y軸方向の重心軌道の変化を示している。
グラフからモデル予測制御から生成される重心軌道には大きな差異は見られず、この程度の歩行においては、予測期間バッファの更新位置の差異は、ロボット3の安定性において大きな問題とはならないことが分かる。それは、予見制御においてもモデル予測制御においても未来の目標値に関して重み付けがなされ、先の未来になるほど安定化への寄与率が下がる特徴があるからである。
図15に予見制御ゲインの一例を示す。このグラフから分かるように1.0秒より先の未来の目標値による影響はそれほど大きくなく、実際にシミュレータでも実人型ロボットを用いても、生成した重心軌道を用いて安定歩行ができる。
また、本実施の形態では、遊脚軌道は、予測期間バッファの更新位置から先頭に向かって遡るように更新しているため、予測制御バッファの先頭の直後の位置が変更される場合があるため、若干重心周りのモーメントの変化が安定化に悪影響を及ぼす懸念もある。しかしながら、より支配的な影響を及ぼす目標ZMPは随時操作情報から生成したものを予測期間バッファの更新位置に反映するようにしているため、遊脚軌道の変更による影響は相対的に非常に小さい。
このように、本実施の形態では、図13及び図14に示すように、予測期間バッファの全範囲を用いた場合と比べ、殆ど遜色の無い精度で重心軌道を生成することができるため、安定化への悪影響のデメリットよりも1秒という低遅延で下肢の直観操作を可能とするメリットの方が非常に大きいといえる。
<5.本実施の形態の利点>
(1.操作者の両足荷重を用いて直観的な操作をすることができる)
本実施の形態では、操作者の右足加重及び左足加重の比に応じてロボット3の目標ZMPを制御するようにしている。言い換えると、操作者の右足加重と左足加重の比を有する加重を、2足歩行ロボット3が生じさせた場合の目標ZMPを算出するようにしている。そのため、図16に示すように、操作者が自己の右足及び左足の加重量によって、ロボット3の右足及び左足の加重量を直観的に操作することができる。例えば、図16に示すように、足元のペダルを踏むと蓋が開く仕組みになっているごみ箱(ペダルペール)を、任意の力でロボット3に踏ませる等の多彩な操作をすることができる。
また、本実施の形態では、操作者の右足加重及び左足加重の比と、右足及び左足の姿勢に応じてロボット3の腰姿勢を制御するようにしている。そのため、図17に示すように、操作者が、自己の右足及び左足の加重量及び足姿勢によって、ロボット3の上体の向きを直観的に操作することができる。
(2.シンプルなマスタ装置構成とすることができる)
本実施の形態では、操作者の両足の加重と、遊脚の着床時の両足間の相対位置姿勢を取得できれば、ロボット3を制御することが可能である。よって、例えば特許文献1のようにロボット3の体性感覚を操作者にフィードバックする構成も必要ない。また、操作者の両足の加重と、遊脚の着床時の両足間の相対位置姿勢を計測することができれば、モーションキャプチャ装置やフォースプレートも必ずしも必要ではない。そのため、簡易な構成とすることができる。
(3.遊脚軌道及び着床位置の柔軟な変更が容易)
本実施の形態では、遊脚の着床のタイミングで遊脚軌道を決定するようにしている。そのため、モーションキャプチャ結果を随時遊脚軌道に反映する制御と比較して、簡便にロボット3の着床位置を制御することができる。また、モーションキャプチャ結果を随時遊脚軌道に反映する制御と比較して、自己干渉回避処理、及び、床面認識結果による着床位置の変更が非常に容易となる。例えば、モーションキャプチャ結果を随時遊脚軌道に反映する制御の場合、ロボット3が自己干渉してしまうような遊脚軌道であっても、操作者の遊脚軌道を忠実に再現するため、ロボット3が自己干渉してしまう場合がある。それに対して、本実施の形態では、操作者の操作として着床位置のみを反映しているため、自己干渉を回避した遊脚軌道を任意に導出することができる。また、例えば、モーションキャプチャ結果を随時遊脚軌道に反映する制御の場合、遊脚が着床するときに着床位置に障害物があることを認識できたとしても、既に操作者の遊脚軌道を忠実に反映した遊脚軌道でロボット3の遊脚が動いているため、着床時に急激な遊脚軌道修正をできず障害物を回避することができない場合がある。それに対して、本実施の形態では、図18に示すように、例えば、ロボット3に周辺の環境を認識することができるセンサ等(例えばカメラ等)を搭載し、操作者の遊脚の着床に応じたロボット3の着床位置に障害物があると認識した場合は、遊脚軌道を一括して修正することができるため、障害物の回避が容易となる。
(4.操作レスポンスが早い)
本実施の形態では、操作者の右足加重及び左足加重の比に応じてロボット3の目標ZMPを制御するようにしている。そのため、操作者が片足を上げるときには支持脚上に完全に目標ZMPが移行していることになる。よって、わざわざ目標ZMPを支持脚上に移行させる遷移期間を設ける必要が無くなり、システムのレスポンスを向上することができる。
また、本実施の形態では、予測期間バッファの更新位置を中間的な位置とすることで動的安定性を考慮しつつ1秒程度の低遅延で歩行操作を可能としている。そのため、この点によっても、未来の目標値の更新が効果的に行われることによるレスポンスの向上が図られている。
(5.操作者が座りながらでも操作が可能)
本実施の形態では、S13の遊脚軌道生成処理で説明したように、操作者の足の位置姿勢として、遊脚の着床時の支持脚と遊脚の相対位置姿勢に着目している。そのため、遊脚を上げている状態(単脚支持状態)や、両脚支持状態においては、操作者が支持している足を床でスライドさせてもロボット3の動作に何ら影響を与えない。
これを利用して、図19に示すように、操作者は座ったままで、遊脚を上げたときに支持脚を後方にスライドさせ、遊脚を前に振り出すといった動作を繰り返すことでロボット3を前進させ続けることができる。同様に、腰姿勢を変更する場合、及び、旋回動作をする場合も座ったまま支持脚をスライドさせることで操作することが可能である。
これにより、操作に必要とするエリアが狭くてもロボット3を無限に広いエリアで動作させることができる。また、細かな操作をする際には、再度立ち上がり歩幅を普段の歩行の間隔で調整して操作することもできる。
<6.本実施の形態の変形例>
(1.予測期間バッファ残部の目標ZMPの修正)
上述の説明では、図12にも示すように、予測期間バッファにおいて、目標ZMP軌道の更新位置から末端までのデータは、更新位置と同様の目標ZMPで埋めて使用するようにしていた。しかしながら、以下のようにして実施するようにしてもよい。
(A)更新位置以降の目標ZMPを両足の中心部に徐々に戻すように補正する。
(B)これまでの目標ZMPの軌跡からその先の軌跡を推定し補正する。
(2.随時、操作者の遊脚動作を反映する)
上述の説明では、操作者の遊脚の着床時に遊脚軌道を算出し、予測期間バッファを一斉に書き換えるようにしていた。これに対し、随時、操作者の遊脚位置姿勢をロボット3の予測期間バッファの更新位置に反映するようにしてもよい。この場合、多項式補間により遊脚軌道を生成するのではなく、操作者の遊脚の動き通りに、ロボット3の遊脚が動くことになる。遊脚時間長の制約がなくなり、予測期間バッファの先頭に近い位置の遊脚軌道が変更されなくなる点で安定性において若干有効である。しかしながら、操作者の足位置姿勢の計測結果に高周波ノイズが混入するととたんにロボット3の関節の駆動速度が過大となってしまう。また、随時、ロボット3の自己干渉や関節角度リミットを考慮しなければならいないなど、非常に制約も大きくなってしまう。したがって、現状の計算機の能力を考慮しても、上述したように遊脚軌道をまとめて生成する手法の方が、使い勝手が良く、上述したように認識結果に応じた動作をする場合にも有効である。
なお、本発明は上述の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上述の実施の形態では、2足歩行ロボットを操作対象とした場合について例示したが、これに限られない。例えば、CGキャラクタを操作対象としてもよい。
また、上記の実施の形態では、操作者の右足加重と左足加重の比を有する加重を、2足歩行ロボット3が生じさせた場合の目標ZMPを算出するようにしているが、操作者の右足加重と左足加重の比と、2足歩行ロボット3の右足加重と左足加重の比とが完全に一致する場合に限定されない。
また、上記の実施の形態では、計測用PC6が操作情報をロボット3に送信し、ロボットCPU8が受信した操作情報に基づいて目標値を算出するようにしているが、これに限られない。例えば、計測用PC6が操作情報から目標値を算出してロボット3に送信し、ロボットCPU8が受信した目標値を予測期間バッファに格納するようにしてもよい。
また、上記の実施の形態では、便宜上、処理の1サイクル(S2からS17まで)において、両脚支持状態の判定(S3)及び離床の判定(S4、S6)を行うように説明した。しかし、ロボット3による操作情報の受信単位を1サイクルとして、両脚支持状態の判定(S3)において1つ前のサイクルにおける操作状態を判定し、離床の判定(S4、S6)において現在のサイクルで受信した操作情報による操作状態の判定をするように処理することも当然に可能である。
1 マスタスレーブ制御システム
2 マスタ装置
3 ロボット(スレーブ装置)
4 フォースプレート
5 モーションキャプチャ装置
6 計測用PC
7 マーカー
8 ロボットCPU

Claims (7)

  1. 2足歩行ロボットの歩行をマスタスレーブ制御する2足歩行ロボット制御方法であって、
    操作者の右足及び左足のそれぞれから地面に対して加えられる加重を検出する加重検出ステップと、
    前記検出された右足加重及び左足加重と、前記2足歩行ロボットの右足位置及び左足位置とに基づいて、前記検出された右足加重と左足加重の比、前記2足歩行ロボットの右足加重と左足加重の比となるように目標ZMPを算出する目標ZMP算出ステップと、
    前記算出された目標ZMPに従って前記2足歩行ロボットを制御する制御ステップと、
    を備えた2足歩行ロボット制御方法。
  2. 前記2足歩行ロボット制御方法は、さらに、
    前記検出された右足加重と左足加重の変化から、前記操作者による一歩を検出する検出ステップと、
    前記操作者による一歩が終了したときに検出された右足加重と左足加重から、当該一歩に対応する前記2足歩行ロボットの一歩分の遊脚軌道を算出する遊脚軌道算出ステップと、を備え、
    前記制御ステップでは、さらに、前記算出された遊脚軌道で歩行するように前記2足歩行ロボットを制御する、
    請求項1に記載の2足歩行ロボット制御方法。
  3. 前記遊脚軌道算出ステップでは、前記操作者による一歩の遊脚時間に応じたサイズで前記遊脚軌道を示す遊脚軌道情報を生成してバッファに格納し、
    前記制御ステップでは、前記バッファに格納された遊脚軌道情報が示す遊脚軌道に従って前記2足歩行ロボットを制御し、
    前記2足歩行ロボット制御方法は、さらに、
    前記検出された右足加重と左足加重の変化から、前記操作者による一歩の遊脚時間を算出する遊脚時間算出ステップを備え、
    前記遊脚軌道算出ステップでは、前記算出された遊脚時間が前記遊脚軌道情報を前記バッファに格納可能な時間の上限を超えている場合、前記遊脚時間を上限におさまる時間に補正してから前記遊脚軌道情報を生成する、
    請求項2に記載の2足歩行ロボット制御方法。
  4. 前記2足歩行ロボット制御方法は、さらに、
    前記検出された右足加重と左足加重から、前記操作者による一歩の遊脚時間を算出する遊脚時間算出ステップを備え、
    前記遊脚軌道算出ステップでは、前記算出された遊脚時間が、前記2足歩行ロボットが前記操作者による一歩に対応する一歩を再現可能な時間の下限未満となっている場合、当該操作者による一歩の遊脚時間を下限におさまるに時間に補正してから前記遊脚軌道を生成する、
    請求項2又は3に記載の2足歩行ロボット制御方法。
  5. 前記2足歩行ロボット制御方法は、さらに、
    前記検出された右足加重と左足加重から、前記操作者による一歩の遊脚時間を算出する遊脚時間算出ステップを備え、
    前記遊脚軌道算出ステップでは、前記算出された遊脚時間が、前記2足歩行ロボットが前記操作者による一歩に対応する一歩を再現可能な時間の下限未満となっている場合、当該操作者による一歩を無効とする、
    請求項2又は3に記載の2足歩行ロボット制御方法。
  6. 前記2足歩行ロボット制御方法は、さらに、
    前記2足歩行ロボットの右足及び左足のそれぞれの姿勢を、前記検出された右足加重と左足加重のそれぞれからの加重の比に応じて合成した姿勢として、前記2足歩行ロボットの鉛直軸周りの腰姿勢を算出する腰姿勢算出ステップを備え、
    前記制御ステップでは、さらに、前記算出された腰姿勢となるように前記2足歩行ロボットを制御する、
    請求項1乃至5のいずれか1項に記載の2足歩行ロボット制御方法。
  7. スレーブとなる2足歩行ロボットの歩行を、マスタとしてマスタスレーブ制御する2足歩行ロボット制御システムであって、
    操作者の右足及び左足のそれぞれから地面に対して加えられる加重を検出する加重検出部と、
    前記検出された右足加重及び左足加重と、前記2足歩行ロボットの右足位置及び左足位置とに基づいて、前記検出された右足加重と左足加重の比、前記2足歩行ロボットの右足加重と左足加重の比となるように目標ZMPを算出する目標ZMP算出部と、
    前記算出された目標ZMPに従って前記2足歩行ロボットを制御する制御部と、
    を備えた2足歩行ロボット制御システム。
JP2014007544A 2014-01-20 2014-01-20 2足歩行ロボット制御方法及び2足歩行ロボット制御システム Active JP5962679B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014007544A JP5962679B2 (ja) 2014-01-20 2014-01-20 2足歩行ロボット制御方法及び2足歩行ロボット制御システム
US14/597,607 US9434430B2 (en) 2014-01-20 2015-01-15 Biped walking robot control method and biped walking robot control system
CN201510020500.6A CN104793622B (zh) 2014-01-20 2015-01-15 两足步行机器人控制方法和两足步行机器人控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014007544A JP5962679B2 (ja) 2014-01-20 2014-01-20 2足歩行ロボット制御方法及び2足歩行ロボット制御システム

Publications (2)

Publication Number Publication Date
JP2015134397A JP2015134397A (ja) 2015-07-27
JP5962679B2 true JP5962679B2 (ja) 2016-08-03

Family

ID=53543998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014007544A Active JP5962679B2 (ja) 2014-01-20 2014-01-20 2足歩行ロボット制御方法及び2足歩行ロボット制御システム

Country Status (3)

Country Link
US (1) US9434430B2 (ja)
JP (1) JP5962679B2 (ja)
CN (1) CN104793622B (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9412010B2 (en) * 2011-07-15 2016-08-09 Panasonic Corporation Posture estimation device, posture estimation method, and posture estimation program
US9987749B2 (en) * 2014-08-15 2018-06-05 University Of Central Florida Research Foundation, Inc. Control interface for robotic humanoid avatar system and related methods
US10081098B1 (en) 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9618937B1 (en) 2014-08-25 2017-04-11 Google Inc. Slip detection using robotic limbs
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9440353B1 (en) * 2014-12-29 2016-09-13 Google Inc. Offline determination of robot behavior
US9499218B1 (en) 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US9586316B1 (en) * 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
US9789607B1 (en) * 2015-11-03 2017-10-17 Google Inc. Achieving a target gait in a legged robot based on steering commands
US10017218B1 (en) * 2015-11-11 2018-07-10 Boston Dynamics, Inc. Achieving a target gait behavior in a legged robot
CN105511465B (zh) * 2015-12-02 2017-08-04 歌尔股份有限公司 一种双足机器人的步态控制方法和装置
US9789919B1 (en) 2016-03-22 2017-10-17 Google Inc. Mitigating sensor noise in legged robots
JP6682341B2 (ja) * 2016-05-10 2020-04-15 パナソニック株式会社 歩行制御方法、歩行制御プログラム及び2足歩行ロボット
KR101875510B1 (ko) * 2016-11-22 2018-07-09 한국과학기술연구원 이족 보행 로봇의 안정된 보행 제어를 위해 단순화된 로봇의 모델링 방법
WO2018212226A1 (ja) * 2017-05-17 2018-11-22 Telexistence株式会社 制御装置、ロボット制御方法及びロボット制御システム
CN109693233B (zh) * 2017-10-20 2020-11-24 深圳市优必选科技有限公司 机器人姿态检测方法、装置、终端设备及计算机存储介质
CN109693234B (zh) * 2017-10-20 2021-08-27 深圳市优必选科技有限公司 机器人跌倒预测方法、装置、终端设备及计算机存储介质
CN109991989B (zh) * 2017-12-29 2021-12-17 深圳市优必选科技有限公司 机器人空闲状态下的动态平衡方法、装置及存储介质
CN110065062A (zh) * 2018-01-24 2019-07-30 南京机器人研究院有限公司 一种多关节机器人的运动控制方法
US11173605B2 (en) 2018-02-26 2021-11-16 dogugonggan Co., Ltd. Method of controlling mobile robot, apparatus for supporting the method, and delivery system using mobile robot
JP7285703B2 (ja) * 2019-06-17 2023-06-02 株式会社ソニー・インタラクティブエンタテインメント ロボット制御システム
CN110244791B (zh) * 2019-07-11 2020-05-15 北京理工大学 一种双足机器人足部力和力矩跟随控制方法
CN110920769B (zh) * 2019-11-28 2020-12-15 深圳市优必选科技股份有限公司 机器人的足腰协调步态规划方法、装置、介质及机器人
CN112975941B (zh) * 2019-12-13 2022-06-24 深圳市优必选科技股份有限公司 机器人控制方法、装置、计算机可读存储介质及机器人
CN111098300B (zh) * 2019-12-13 2021-06-04 深圳市优必选科技股份有限公司 一种机器人平衡控制方法、装置、可读存储介质及机器人
JP2021142589A (ja) * 2020-03-10 2021-09-24 本田技研工業株式会社 移動体の操縦システム
CN111538234B (zh) * 2020-07-08 2020-10-09 深圳市优必选科技股份有限公司 任务分层控制方法、装置、机器人和可读存储介质
CN114905478A (zh) * 2021-02-08 2022-08-16 腾讯科技(深圳)有限公司 双边遥操作系统及控制方法
CN114986526A (zh) * 2021-03-01 2022-09-02 腾讯科技(深圳)有限公司 机器人运动控制方法、装置、机器人及存储介质
CN113552880B (zh) * 2021-07-14 2023-08-04 中国北方车辆研究所 一种双足轮式机器人平衡控制方法
CN113770997A (zh) * 2021-09-06 2021-12-10 广州科语机器人有限公司 机器人及机器人越障控制方法、存储介质和设备
CN115256396B (zh) * 2022-08-23 2024-05-28 北京理工大学 基于双层模型预测控制的双足机器人全向行走质心轨迹规划方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3667914B2 (ja) * 1997-01-31 2005-07-06 本田技研工業株式会社 脚式移動ロボットの遠隔制御システム
JP3649852B2 (ja) * 1997-04-21 2005-05-18 本田技研工業株式会社 二足歩行型ロボットの遠隔制御システム
JP3649861B2 (ja) * 1997-06-20 2005-05-18 本田技研工業株式会社 二足歩行型ロボットの遠隔制御システム
JP2003170374A (ja) 2001-11-30 2003-06-17 Kawasaki Heavy Ind Ltd ロボットの遠隔操作装置
US7313463B2 (en) * 2005-03-31 2007-12-25 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics
JP4910552B2 (ja) * 2006-08-04 2012-04-04 トヨタ自動車株式会社 動作データ作成装置及びその方法
JP2010099418A (ja) 2008-10-27 2010-05-06 Dainippon Printing Co Ltd 歩行パターン生成装置、歩行パターン生成方法、及び歩行パターン生成プログラム
CN100594459C (zh) * 2008-10-28 2010-03-17 北京理工大学 一种仿人机器人稳定行走的脚着地时间的控制方法及系统
CN101414190A (zh) * 2008-10-28 2009-04-22 北京理工大学 基于有效稳定区域仿人机器人稳定行走的控制方法和系统
CN101751037A (zh) * 2008-12-03 2010-06-23 上海电气集团股份有限公司 一种用于双足步行机器人的动态步行控制方法
JP5644312B2 (ja) 2010-09-21 2014-12-24 大日本印刷株式会社 歩行状態表示システム
US9162720B2 (en) * 2010-12-03 2015-10-20 Disney Enterprises, Inc. Robot action based on human demonstration
JP2013111118A (ja) * 2011-11-25 2013-06-10 Tomohito Takubo 歩行補助装置

Also Published As

Publication number Publication date
US9434430B2 (en) 2016-09-06
US20150202768A1 (en) 2015-07-23
CN104793622B (zh) 2018-01-30
CN104793622A (zh) 2015-07-22
JP2015134397A (ja) 2015-07-27

Similar Documents

Publication Publication Date Title
JP5962679B2 (ja) 2足歩行ロボット制御方法及び2足歩行ロボット制御システム
US20230347524A1 (en) Generalized coordinate surrogates for integrated estimation and control
JP4818716B2 (ja) ロボット制御装置
US9073209B2 (en) Walking robot and control method thereof
KR101029228B1 (ko) 로봇과 그 제어 방법
US8805582B2 (en) Robot control apparatus
US10183712B2 (en) Walking control method, walking control program and biped walking robot
US20110172823A1 (en) Robot and control method thereof
JP4810880B2 (ja) ロボットとその制御方法
US8761926B2 (en) Apparatus and method for robot control
JP4905041B2 (ja) ロボット制御装置
JP2007007803A (ja) ロボットとその制御方法
JP6407409B2 (ja) 脚型機構体、歩行ロボット、姿勢制御方法及びプログラム
JP2009107032A (ja) 脚式ロボット及びその制御方法
JP2008126382A (ja) 脚式移動ロボット、及びその制御方法
KR101317761B1 (ko) 안정적인 이족 보행을 위한 수직 방향과 로봇 정면, 측면 방향의 허리 중심과 발의 움직임 생성 방법
CN106363625A (zh) 一种基于操控员足部位姿传感器的四足机器人遥操作方式
Hengst Reinforcement learning inspired disturbance rejection and Nao bipedal locomotion
CN117840984A (zh) 机器人控制方法、机器人控制系统及计算机可读介质
JP2007007802A (ja) 脚式ロボットとその制御方法
JP2008126330A (ja) 脚式ロボット、及びその制御方法
JP2007007801A (ja) 脚式ロボットとその制御方法
JP2015098066A (ja) 2足走行ロボットの移動制御システム
JP2008126383A (ja) 関節駆動型ロボット、及びその制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160613

R151 Written notification of patent or utility model registration

Ref document number: 5962679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151