IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 本田技研工業株式会社の特許一覧 ▶ 学校法人明治大学の特許一覧

特許7553028ロボット制御方法、およびロボット制御システム
<>
  • 特許-ロボット制御方法、およびロボット制御システム 図1
  • 特許-ロボット制御方法、およびロボット制御システム 図2
  • 特許-ロボット制御方法、およびロボット制御システム 図3
  • 特許-ロボット制御方法、およびロボット制御システム 図4
  • 特許-ロボット制御方法、およびロボット制御システム 図5
  • 特許-ロボット制御方法、およびロボット制御システム 図6
  • 特許-ロボット制御方法、およびロボット制御システム 図7
  • 特許-ロボット制御方法、およびロボット制御システム 図8
  • 特許-ロボット制御方法、およびロボット制御システム 図9
  • 特許-ロボット制御方法、およびロボット制御システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】ロボット制御方法、およびロボット制御システム
(51)【国際特許分類】
   B25J 5/00 20060101AFI20240910BHJP
   B25J 13/00 20060101ALI20240910BHJP
【FI】
B25J5/00 E
B25J5/00 F
B25J13/00 Z
【請求項の数】 8
(21)【出願番号】P 2021165016
(22)【出願日】2021-10-06
(65)【公開番号】P2023055542
(43)【公開日】2023-04-18
【審査請求日】2023-10-23
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(73)【特許権者】
【識別番号】801000027
【氏名又は名称】学校法人明治大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】上岡 拓未
(72)【発明者】
【氏名】小澤 隆太
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2016-198873(JP,A)
【文献】特開2018-185747(JP,A)
【文献】特開2006-075945(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 5/00
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
重心補償力算出部が、受動性に基づく多点接触立位制御をロボットに行う際、前記ロボットとの接触点の幾何学的関係より重心補償力を計算し、
拡張部が、前記重心補償力(vff)を制御入力(v)におけるフィード・フォワード項として追加して制御入力(v)を拡張し、
前記フィード・フォワード項は、水平力の項(vffh)と垂直力の項(vffv)に分けられ、
制御装置が、前記拡張された前記制御入力(v)を用いて、前記ロボットの立位制御を行う、
ロボット制御方法。
【請求項2】
前記制御装置は、パワー保存変換(u=Q v)を用いて、前記制御入力(v)から実現可能な制御入力(u)をフィードバック項と前記フィード・フォワード項を用いて生成し、前記パワー保存変換は各項で独立に行う、
請求項1に記載のロボット制御方法。
【請求項3】
前記重心補償力算出部は、絶対座標系からみたfloating baseの位置を、前記ロボットの重心位置(xcom)に変換して重心補償力を計算する、
請求項1に記載のロボット制御方法。
【請求項4】
切替部が、前記ロボットの接触状態に基づいて、前記フィード・フォワード項を前記水平力の項(vffh)と前記垂直力の項(vffv)のうちのいずれか1つに切り替えて使用する、
請求項3に記載のロボット制御方法。
【請求項5】
前記水平力の項(vffh)は、前記ロボットが備えるハンドの力を全身に作用する力にヤコビ行列によって変換して表され、
前記垂直力の項(vffv)は、重力による関数で表される、
請求項3または請求項4に記載のロボット制御方法。
【請求項6】
前記制御装置は、前記フィード・フォワード項の並進力はハンドと足、鉛直力は足、前記フィードバック項はハンドと足で発生させるように制御する、
請求項に記載のロボット制御方法。
【請求項7】
前記ロボットは、ボディに2つ以上の2自由度以上のアームまたは足を持つ、
請求項1から請求項6のうちのいずれか1項に記載のロボット制御方法。
【請求項8】
ロボットの状態を検出するセンサと、
受動性に基づく多点接触立位制御をロボットに行う際、前記ロボットとの接触点の幾何学的関係より重心補償力を計算する重心補償力算出部と、
前記重心補償力(vff)を制御入力(v)におけるフィード・フォワード項として追加して制御入力(v)を拡張する拡張部と、
前記拡張された前記制御入力(v)を用いて、前記ロボットの立位制御を行う制御装置と、
前記制御装置の制御に応じて制御される2自由度以上のアームまたは足と、
を備え、
前記フィード・フォワード項は、水平力の項(vffh)と垂直力の項(vffv)に分けられるロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御方法、およびロボット制御システムに関する。
【背景技術】
【0002】
ヒューマノイドの多点接触制御は、手先足先位置を拘束しながら、ロボットの姿勢を制御する接触力を同一平面上ではない複数の接触点に分配する問題である。この場合は、接触点が同一平面上ではないため、分配方法は一意には求まらない。これに対して、接触力を最適化問題として解いた後,各関節に分配する手法が提案されている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Bernd Henze, Maximo A. Roa, Christian Ott, “Passivity-based whole-body balancing for torque-controlled humanoid robots in multi-contact scenarios”, International Journal of Robotics Research, 35(12), 2016, p1522-1543
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術の最適化よる手法では計算負荷が高いという課題があった。
【0005】
本発明は、上記の問題点に鑑みてなされたものであって、ロボット制御において重心安定化を実現できるロボット制御方法、およびロボット制御システムを少ない計算量で提供することを目的とする。
【課題を解決するための手段】
【0006】
(1)上記目的を達成するため、本発明の一態様に係るロボット制御方法は、重心補償力算出部が、受動性に基づく多点接触立位制御をロボットに行う際、前記ロボットとの接触点の幾何学的関係より重心補償力を計算し、拡張部が、前記重心補償力(vff)を制御入力(v)におけるフィード・フォワード項として追加して制御入力(v)を拡張し、前記フィード・フォワード項は、水平力の項(vffh)と垂直力の項(vffv)に分けられ、制御装置が、前記拡張された前記制御入力(v)を用いて、前記ロボットの立位制御を行う。
【0007】
(2)また、本発明の一態様に係る多点接触制御方法において、前記制御装置は、パワー保存変換(u=Q v)を用いて、前記制御入力(v)から実現可能な制御入力(u)をフィードバック項と前記フィード・フォワード項を用いて生成し、前記パワー保存変換は各項で独立に行うようにしてもよい。
【0008】
(3)また、本発明の一態様に係る多点接触制御方法において、前記重心補償力算出部は、絶対座標系からみたfloating baseの位置を、前記ロボットの重心位置(xcom)に変換して重心補償力を計算するようにしてもよい。
【0009】
(4)また、本発明の一態様に係る多点接触制御方法において、切替部が、前記ロボットの接触状態に基づいて、前記フィード・フォワード項を前記水平力の項(vffh)と前記垂直力の項(vffv)のうちのいずれか1つに切り替えて使用するようにしてもよい。
【0010】
(5)また、本発明の一態様に係る多点接触制御方法において、前記水平力の項(vffh)は、前記ロボットが備えるハンドの力を全身に作用する力にヤコビ行列によって変換して表され、前記垂直力の項(vffv)は、重力による関数で表されるようにしてもよい。
【0011】
(6)また、本発明の一態様に係る多点接触制御方法において、前記制御装置は、パワー保存変換(u=Q v)を用いて、前記制御入力(v)から実現可能な制御入力(u)をフィードバック項と前記フィード・フォワード項を用いて生成するようにしてもよい。
【0012】
(7)また、本発明の一態様に係る多点接触制御方法において、前記制御装置は、前記フィード・フォワード項の並進力はハンドと足、鉛直力は足、前記フィードバック項はハンドと足で発生させるように制御するようにしてもよい。この際、前記パワー保存変換は各項において独立に計算されてもよい。
【0013】
(8)また、本発明の一態様に係る多点接触制御方法において、前記ロボットは、ボディに2つ以上の2自由度以上のアームまたは足を持つようにしてもよい。
【0014】
(9)上記目的を達成するため、本発明の一態様に係るロボット制御システムは、ロボットの状態を検出するセンサと、受動性に基づく多点接触立位制御をロボットに行う際、前記ロボットとの接触点の幾何学的関係より重心補償力を計算する重心補償力算出部と、前記重心補償力(vff)を制御入力(v)におけるフィード・フォワード項として追加して制御入力(v)を拡張する拡張部と、前記拡張された前記制御入力(v)を用いて、前記ロボットの立位制御を行う制御装置と、前記制御装置の制御に応じて制御される2自由度以上のアームまたは足と、を備え、前記フィード・フォワード項は、水平力の項(vffh)と垂直力の項(vffv)に分けられる。
【発明の効果】
【0015】
(1)~(9)によれば、ロボット制御において重心安定化を実現できる。(1)~(9)によれば、複数の接触制約を満たしながら、重心安定化を実現できるようになる。(1)~(9)によれば、受動性における証明により制御系として安定となるので、ロバストである。(1)~(9)によれば、計算は正則なヤコビ行列floating baseに関する正方成分の逆行列を求めるのみという小さい計算コストで可能となる。(1)~(9)によれば、パラメタは比例、微分ゲインのみで、最適化問題で扱う重みのような無次元係数ではなく、物理的意味から直感的にチューニングが可能である。
また、(6)によれば、実現可能な制御入力(u)を用いてロボットを制御することができる。
【図面の簡単な説明】
【0016】
図1】実施形態に係るロボット制御システムの構成例を示す図である。
図2】ロボットの構成を示す図である。
図3】4本の手足で環境に接する3Dヒューマノイドモデルを示す図である。
図4】立っている状態から支えている状態への移行の一例を示す図である。
図5】立っている状態から支えている状態への移行の一例を示す図である。
図6】実施形態に係る制御系の構成例を示す図である。
図7】力コントロールゲインの切り替え例を示す図である。
図8】足で立っている状態から、手と足で体を支える状態への移行についてのシミュレーション結果における時刻毎の状態を示す図である。
図9】壁に接触するシミュレーションを行った場合のCOGのx方向の位置とz方向の力を示す図である。
図10】実施形態に係るロボット制御システムの処理手順のフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明に用いる図面では、各部材を認識可能な大きさとするため、各部材の縮尺を適宜変更している。なお、本実施形態では、ロボットの一例としてヒューマノイドロボットを例に説明する。
【0018】
<概要>
まず、実施形態の概要を説明する。実施形態では、ヒューマノイドロボットの立位制御を多点接触問題へ拡張する。実施形態では、手足の幾何学的関係より重心補償力を計算し、立位時の重力補償項を3次元に拡張することで、3次元の重心補償力をフィード・フォワード項として追加する。この際、実施形態では、水平力と垂直力を独立した項として定義する。また、実施形態では、手を壁等に着く、離すなどの接触点の切り替わりについて、実際の接触に応じてフィード・フォワード項を変化させることで実現する。
【0019】
<ロボット制御システムの構成例>
次に、ロボット制御システム1の構成例を説明する。
図1は、本実施形態に係るロボット制御システムの構成例を示す図である。図1のように、ロボット制御システム1は、センサ7、制御装置8、および少なくとも1つの関節アクチュエータ9(9-1,9-2,…,9-n)(nは1以上の整数)を備える。
センサ7は、例えば、傾斜を検出する傾斜センサ71、加速度や傾き等を検出する6軸センサ72、アクチュエータの回転角度等を検出するエンコーダ73等を備える。
制御装置8は、例えば、取得部81、重心補償力算出部82、拡張部83、切替部84、駆動部85、および制御部86を備える。
【0020】
ロボット制御システム1は、ロボット6(図2参照)の動作を制御する。ロボット6は、例えば、頭部、ボディ、2つの手と、2つの足を備えるヒューマノイドロボットである。ロボット6の構成例は、後述する。
【0021】
センサ7は、例えば、頭部、ボディ、2つの手と、2つの足、各関節等に取り付けられている。なお、本実施形態では、足首から先の「足」も、胴から下の部分の「脚」も「足」という。
【0022】
関節アクチュエータ9は、例えば電動モータあるいは油圧アクチュエータにより構成されたものであり、例えば関節毎に備えられている。この場合、各関節アクチュエータ9による各関節の駆動機構は周知の構造のものでよい。また、関節アクチュエータ9は、回転型のアクチュエータに限らず、直動型のアクチュエータであってもよい。
【0023】
制御装置8は、センサ7が検出した値、制御値等に基づいて、ロボット6の動作を制御する。制御装置8は、例えば、CPU(中央演算装置)、RAM(Read only memory)、ROM(Read Only Memory)、インターフェース回路等を含む電子回路ユニットにより構成されていてもよい。
【0024】
取得部81は、センサ7が検出した検出値を取得する。
【0025】
重心補償力算出部82は、取得部81が取得した検出値を用いて、手足の幾何学的関係より重心補償力を計算する。重心補償力算出部82は、絶対座標系からみたロボット6の重心位置xcomを支える接触力を重心補償力として計算する。なお、重心補償力算出部82の算出方法等については、後述する。
【0026】
拡張部83は、重心補償力算出部82が算出した重心補償力に対して、立位時の重力補償項を3次元に拡張する。なお、拡張部83の処理方法等については、後述する。
【0027】
切替部84は、手を着く、手を離すなどの接触点の切り替わりについて、実際の接触に応じてフィード・フォワード項(水平力の項と垂直力の項)を切り替える。なお、切替部84の切り替え方法等については、後述する。
【0028】
駆動部85は、センサ7が検出した検出値、拡張部83が拡張した結果、切替部84が切り替えた結果に基づいて、駆動信号を生成して関節アクチュエータ9を駆動する。
【0029】
制御部86は、センサ7が検出した検出値を用いて、ロボット6の状態(例えばPhase1~4)を検出する。なお、ロボット6の状態については後述する。制御部86は、検出したロボット6の状態に応じて、例えば、制御モードを切り替えるように制御する。
【0030】
<ロボットの構成例>
ここで、ロボット6の構成例を説明する。
図2は、ロボットの構成を示す図である。図2に示したロボット6は、基体2と、基体2から延設された複数の可動リンク機構3L,3R,4L,4Rと、頭部5とを備える人型の脚式移動ロボットである。
【0031】
4つの可動リンク機構3L,3R,4L,4Rのうちの可動リンク機構3L,3Rは、左右一対の脚リンク機構に相当するリンク機構、可動リンク機構4L,4Rは、左右一対の腕リンク機構に相当するリンク機構である。
【0032】
なお、図示の参照符号中の「L」、「R」は、それぞれロボット6の左側の構成要素、右側の構成要素を示す符号である。ただし、以降の説明では、左右を区別する必要が無いときは、符号「L」,「R」を省略する。また、可動リンク機構3L,3Rを脚リンク機構3L,3R(又は脚リンク機構3)と称し、可動リンク機構4L,4Rを腕リンク機構4L,4R(又は腕リンク機構4)と称する場合がある。
【0033】
また、実施形態の以下の説明では、ヨー方向、ピッチ方向、ロール方向は、それぞれ図1に示すようにロボット6が直立姿勢で起立した状態(基体2、各可動リンク3R,3L,4R,4Lをほぼ上下方向に伸ばした状態)でのロボット6の上下方向の軸(図2に示すZ軸)周りの方向、左右方向の軸(図2に示すY軸)周りの方向、前後方向の軸(図2ではX軸)周りの方向を意味する。なお、図2に示すX軸、Y軸、Z軸は、3軸直交座標系の各座標軸である。
【0034】
基体2は、ロボット6の上体に相当するリンク機構である。この基体2は、例えば、下側基体10と、この下側基体10の上方に配置された上側基体11との2つの要素リンクと、該下側基体10及び上側基体11を連結する関節機構12とから構成されている。図2のロボット6では、関節機構12は、例えばピッチ方向(Y軸周り方向)の回転自由度を有する関節12aにより構成されている。
【0035】
可動リンク機構3L,3R,4L,4Rのうちの脚リンク機構3L,3Rは、互いに同じ構造のものである。具体的には、各脚リンク機構3は、下側基体10に股関節機構13を介して連結された大腿部14と、この大腿部14に膝関節機構15を介して連結された下腿部16と、この下腿部16に足首関節機構17を介して連結された足部18とを、脚リンク3機構を構成する要素リンクとして備える。足部18は、脚リンク機構3の先端部を構成する要素リンクである。
【0036】
図2のロボット6では、股関節機構13は、ヨー方向(Z軸周り方向)、ピッチ方向(Y軸周り方向)及びロール方向(X軸周り方向)の回転自由度をそれぞれ有する3つの関節19,20,21により構成されている。また、膝関節機構15は、ピッチ方向の回転自由度を有する関節22により構成されている。また、足首関節機構17は、ピッチ方向及びロール方向の回転自由度をそれぞれ有する2つの関節23,24により構成されている。従って、図2のロボット6では、各脚リンク3機構が、その先端部(足部18)が下側基体10に対して、6自由度の運動自由度を有するように構成されている。
【0037】
可動リンク機構3L,3R,4L,4Rのうちの腕リンク機構4R,4Lは、互いに同じ構造のものである。具体的には、各腕リンク機構4は、上側基体11に肩関節機構25を介して連結された上腕部26と、この上腕部26に肘関節機構27を介して連結された前腕部28と、この前腕部28に手首関節機構29を介して連結されたハンド部30とを、該腕リンク機構4を構成する要素リンクとして備える。ハンド部30は、腕リンク機構4の先端部を構成する要素リンクである。
【0038】
図2のロボット6では、肩関節機構25は、ピッチ方向、ロール方向、及びヨー方向の回転自由度をそれぞれ有する3つの関節31,32,33により構成されている。また、肘関節機構27は、ピッチ方向(又はロール方向)の回転自由度を有する関節34により構成されている。また、手首関節機構29は、ヨー方向、ピッチ方向及びロール方向の回転自由度をそれぞれ有する2つの関節35,36,37により構成されている。従って、図2のロボット6では、各腕リンク機構4が、その先端部(ハンド部30)が上側基体11に対して、7自由度の運動自由度を有するように構成されている。
【0039】
なお、ハンド部30は、ハンド部30による作業用の開閉機構、あるいは、複数の屈伸可能な指機構等を備えていてもよい。
【0040】
頭部5は、上側基体11の上方に配置され、上側基体11に固定されている。ただし、頭部5は、例えばチルト動作あるいはパン動作等を行い得るように、上側基体11に対して関節機構を介して連結されていてもよい。
【0041】
本実施形態のロボット6は、基本的には、左右の脚リンク機構3L,3Rの動作(各足部18の空中移動及びそれに続く接地を繰り返す2脚歩容の動作)によって移動する。ロボット6は、手と足とを制御して移動や作業の動作を制御する。
【0042】
<受動性に基づくヒューマノイドロボットの制御の概要>
次に本発明の基礎となる受動性に基づくヒューマノイドロボットの制御について、説明する(詳細は参考文献1を参照)。
【0043】
参考文献1;Ryuta Ozawa and Jun’ya Ishizaki, “Passivity-Based Symmetric Posture Control and the Effects of Mass Distribution and Internal Impedance on Balance”, 2012 12th IEEE-RAS International Conference on Humanoid Robots Nov.29-Dec.1, 2012. Business Innovation Center Osaka, Japan, IEEE, p171-176,2012
【0044】
<ロボットの運動方程式>
次に、ロボットの座標系として次式(1)のものを考える。
【0045】
【数1】
【0046】
式(1)において、xCOM、θbaseは絶対座標系からみた重心位置と上体姿勢角であり、これらを合わせた状態をy∈R(Rは二重線文字、実施全体の集合)とし、qbbは背骨の関節角である。qraは右腕の関節角、qlaは左腕の関節角、qrlは右脚の関節角、qllは左脚の関節角である。背骨と各四股の関節角をまとめたベクトルをq∈Rとする。
ここで、多リンクが接地している状況を考える。接触面において、環境から各リンクに作用する力点POAi(i=1,2,…,n)における拘束条件は次式(2)のように表現できる。
【0047】
【数2】
【0048】
式(2)において、xPOAiは第i接触点における位置、θPOAiは第i接触点における姿勢、yPOAiは第i接触点におけるそれらを合わせたベクトル、cは接触している環境の位置姿勢である。また、0(太字)は、k次元のゼロベクトルである。
このため、拘束全体は次式(3)として表現できる。
【0049】
【数3】
【0050】
拘束条件の微分は次式(4)となる。なお、上付き1つドットは微分を表す。
【0051】
【数4】
【0052】
式(4)において、J(∈R6×(6+N))(Rは二重線文字)はzから接触点へのヤコビ行列であり、AはJのyに関する6×6の部分行列であり、Bはqに関する6×Nの部分行列である。ロボットのラグランジュアンを次式(5)とする。
【0053】
【数5】
【0054】
式(5)において、H(z)は慣性行列、U(z)は重力によるポテンシャルエネルギとする。Tは転置を表す。この運動方程式は次式(6)となる。
【0055】
【数6】
【0056】
式(6)において、Sは歪対称行列、λ∈R6nは拘束力であり,u∈R6nは制御入力である。なお、上付き2つドットは二階微分を表す。また、Eは、伝達マトリックスであり、次式(7)である。g(z)は、重力項であり、次式(8)である。なお、Iは単位行列である。
【0057】
【数7】
【0058】
【数8】
【0059】
このように、このロボットは上体に制御入力が直接は入らないため、劣駆動系となっている。
【0060】
<受動性に基づく状態量のフィードバック制御の構成例>
受動性に基づく状態量のフィードバック制御を説明する。
まず、受動性について説明する。電気回路では、回路が受動要素のみで構成されるならば、そのポートから流入するエネルギーは保存または消費されるので、回路の安定化に繋がる。この概念は、線形システムの伝達関数の正実性と等化となることが知られている。受動性に基づくロボット制御は、この概念がハミルトニアンで記述される非線形なロボット制御系に広がる(例えば参考文献2参照)。ロボットにおける受動性に基づく制御方法は、モデルに基づく制御系と並ぶトルク制御の一手法である。
【0061】
参考文献2;Morikazu Takegaki, Suguru Arimoto, “A New Feedback Method for Dynamic Control of Manipulators”、ASME Journal of Dynamic Systems, Measurement, and Contorol, Vol. 102, pp.119-125, 1981
【0062】
一般にロボットの目標状態は、zの関数pctrl(z)として与えられる。この時、目標姿勢pctrl に対して、誤差が次式(9)により与えられる。
【0063】
【数9】
【0064】
式(9)の微分は、次式(10)で与えられる。
【0065】
【数10】
【0066】
通常、フローティングベースへの直接的な制御入力は無い。しかしながら、このフローティングベースへの制御入力v∈Rがあると仮定し、制御入力vを次式(11)のように二つの項から構成する。
【0067】
【数11】
【0068】
式(11)において、v∈Rは関節に直接作用する制御入力となる。vfbはフィードバック項であり、次式(12)のように定義される。
【0069】
【数12】
【0070】
式(12)において、K,D,Cは正定対角行列である。フィード・フォワード項vffは、用いる状況によって形を変えるため、K、D、Cの正定対角行列を使用する際に導入する。
【0071】
なお、式(8)をフィード・フォワード項vffとし、式(11)に式(8)と(12)を代入すると、制御入力vは次式(13)のようにも表せる。
【0072】
【数13】
【0073】
なお、式(13)において、Jsはヤコビアン行列であり、sは任意の制御状態であり、qは関節角度のベクトルである。
式(12)と(13)の関係は、K=K、D=K、Δpctrl=Δs、Δp ctrl=Δs、C=[0 D]、z=qである。
【0074】
<実現可能な制御入力uへの変換>
制御入力の式(12)は、システムzctrlを安定化することができるが、実際には劣駆動系であり、vを生成できないため実現が困難である。このため、接触点における拘束力が仕事をしないことを利用したパワー保存変換により、制御入力の式(13)を実現可能な制御入力uに変換する。
【0075】
図3は、4本の手足で環境に接する3Dヒューマノイドモデルを示す図である。図3のように。手足の4点で床や壁に接触する可能性があるとする。図3において、基準点は床に設定されている。xlaは基準点からみた左腕の位置であり、xraは基準点から右腕の位置であり、xllは基準点から左足の位置であり、xrlは基準点から右足の位置である。この時、φra、φla、φrl、φllを各接触点における拘束条件とすると、式(3)は次式(14)に書き直すことができる。
【0076】
【数14】
【0077】
これらの拘束条件から,制御方向を選択するための行列S(i∈Slimb={ra、la、rl、ll})を導入し、それらを並べたものを次式(15)のようにSpとする。
【0078】
【数15】
【0079】
パワー保存変換では、接触点における拘束条件φから構成された関数は次式(16)となる。
【0080】
【数16】
【0081】
この場合、Sra、Sla、Srl、Sllの各対角要素は零以上であり、次式(17)を満足する。
【0082】
【数17】
【0083】
この時間微分は、次式(18)となる。
【0084】
【数18】
【0085】
式(18)において、Apは正則な行列である。この場合、次式(19)が成り立つ。
【0086】
【数19】
【0087】
これにより、各拘束方向の力をどの接触点で分配するかの記述ができるようになる。この拘束条件を用いて仮想的な全制御入力(式(12)、式(13))を変換し、制御入力u∈Rを次式(20)のように構成する。
【0088】
【数20】
【0089】
式(20)において、Q は、次式(21)である。
【0090】
【数21】
【0091】
これを用いることで、vと等価の効力を持つ制御入力uを構成できる。
【0092】
<多点接触による重心の移動についての縮退モデルの力学>
次に、前記手法を多点接触に拡張した本発明について説明する。
図4図5は、立っている状態から支えている状態への移行の一例を示す図である。図4、5に示すように、立位から壁接触へ映る際の遷移の制御モードの変化は、例えば以下の4つのモードから構成されている。
Phase1(図4の画像g101) 足で立ち、立位安定化する。この場合は、足が床に接している。重力Mgがかかるので、足で支えるため、重力Mgと足の反力λPOA1とが釣り合う。
Phase2(図4の画像g102) 手を前に伸ばし壁との接触を探し、環境と接触する。なお、手は壁に接触しているのみで、力は発生していない。画像g102のように、重心の水平位置は、足の略中心あたりに移動する。
Phase3(図5の画像g103) 手が壁に接触後、重心を前に移動する。このため重心の水平位置は爪先よりも後方にある。
Phase4(図5の画像g104) Phase3からさらに重心を前に移動する。この場合は、画像g104のように、重力Mgの向きと足の反力の向きが白抜き矢印のようにずれているので、重心位置に回転する力が発生する。この回転する分を手で壁に対して水平方向に力を発生させて補償する。
【0093】
体重は両足に均等にかけるものとする。この場合は、選択行列を次式(22)とする。
【0094】
【数22】
【0095】
冗長関節を持たない両足が地面に接地されている時、この座標系に対して、足の関節角qll、qrlとfloating baseの位置姿勢yは独立に選択することができない。この場合は、冗長がない状態として、次式(23)のような状態zctrlを独立に制御する。
【0096】
【数23】
【0097】
一方、Phase3とPhase4では、接触に関する選択行列SpをPhase2とスムーズにつなぐために変更する必要がある。このため、本実施形態では、縮退モデルを用いて重心補償力を考える。
Phase3(図3の画像g103)のように、矢状面においてロボットが多点接触した状況を考える。この場合、足は水平な地面と接触し、手は垂直に反り立った壁に接触している。Phase4では、重心が足と壁の間に移動している。このため、Phase3では、手の接触が無い限りバランスを保つことができない。
【0098】
重心の位置をxCOM=(x,z)とし,その目標位置をxCOMdとする。接触している面に力点を設定し、この位置をxPOAi=(x,z)とし、そこからロボットに作用する反力をλPOAi=(λxizi)とする。この接触により平衡状態を保てているならば,次式(24)~(26)の力条件を満足しなければならない。
【0099】
【数24】
【0100】
【数25】
【0101】
【数26】
【0102】
ここで、壁からの反力λで押す状況を考える。式(24)から、各位置POAiでの水平方向の拘束力は次式(27)となる。λz1は足の水平の力であり、λz2は手の水平力である。
【0103】
【数27】
【0104】
また、全身にかかる重力を足で支えるとすると、式(25)から次式(28)となる。式(28)は、足の垂直力λz1と重力とが釣り合い、手の垂直力λz2が0であることを表している。
【0105】
【数28】
【0106】
この時、式(26)は、次式(29)のような条件に書き換えられる。
【0107】
【数29】
【0108】
Phase3のように、床反力と重心に作用する重力し、この力により半時計回りに回転を始める。式(31)は、手に相当する位置POA2で、次式(30)で表される並進力によりこの回転力をキャンセルできることを意味している。なお、この反力λは、式(27)のように、λ=λz2=-λz1である。
【0109】
【数30】
【0110】
位置POAiは定数であるため、法線力λは重心位置の水平位置xの関数となる。ここで、動的な力や重心高さz-zには依存しな。なお、接触点の高さz-zには依存する。
【0111】
<拡張>
手をついた状態で重心を足の支持多角形の前に出し、バランスを取るためには式(30)のような力を手で発生させる必要がある。この力は重心に作用する力であり、全身に作用する力に変換するには次式(31)のように水平力の項(重心による回転を補償するフィード・フォワード項)vffhを発生させる必要がある。また、実施形態では、vffvを式(8)とする。
【0112】
【数31】
【0113】
並進力は手のみ、鉛直力は足のみ,フィードバック項は手足で発生させるものとする。
Phase2では、フィード・フォワードの入力として安定した力を加えるようにするため、式(11)を次式(32)のように拡張する。
【0114】
【数32】
【0115】
さらに、制御入力uは、次式(33)となる。
【0116】
【数33】
【0117】
piは、それぞれの接触状態に合わせた式(21)であり、それぞれに対応する式(19)の選択行列SPiは、次式(34)~(36)である。
【0118】
【数34】
【0119】
【数35】
【0120】
【数36】
【0121】
すなわち、フィードバック項は手と足に分配し、水平フィードフォード項は式(27)に基づき手と足で逆の符号に分配し、鉛直フィード・フォワード項は式(28)に基づいて足のみに分配する。なお、このパワー保存変換は、各項において独立に計算されてもよい。また、式(18)において、Ap、Bpは接触点へのヤコビ行列のJの部分行列であったが、Phase2では各足の2点接触からPhase3にかけて両手両足の4点接触へ変化する。Qpiの不連続な変化を避けるため、図7に示すような力制御ゲインα(i∈[1,4])を各手足に設定し重みづけする。
また、Qpi は次式(37)であり、[Apipi]=Jpiである。
【0122】
【数37】
【0123】
また、状態量pctrlを次式(38)とする。
【0124】
【数38】
【0125】
<制御系の構成例>
次に制御系の構成例を説明する。図6は、本実施形態に係る制御系の構成例を示す図である。図6のアルゴリズムの実行方法をまとめると、以下のようになる。
I.フィードバック誤差情報量Δpctrl=pctrl(z)-pctrl (式(9))を決定し、そのヤコビ行列JctrlをΔp ctrl=p ctrl=Jctrl(z)z(式(10))から求める。
II.理想的な(実現不能な)制御入力vを式(11)により構成する(g201)。
III.力点での拘束条件φp=Spφc=0(0は太字)(式(17))を求め、パワー保存変換に用いるヤコビ行列A,Bを式(20)から求める。
IV.パワー保存変換(式(21))により、vから実現可能な制御入力uを求める(g202)。
【0126】
<接触に伴うゲインの切り替え>
図7は、力コントロールゲインの切り替え例を示す図である。図7において、信号g301は制御信号であり、信号g302は力コントロールゲインの結果である。また、図7において、横軸は時刻である。
信号g301において、縦軸は制御オン状態とオフ状態を表している。
信号g302において、縦軸は力コントロールゲインである。力コントロールゲインは、“1”のとき接触可能な状態であり、“0”のとき接触不可能な状態である。
本実施形態では、制御信号(g301)に対して、力コントロールゲインの結果(g302)は、急激に切り替えるのではなく、図7のように時刻t1~t2またはt3~t4の期間の所定時間を要してスムーズに切り替えるようにしてもよい。所定時間は、例えば0.2(s)である。
【0127】
<シミュレーション結果>
次に、足で立っている状態から、手と足で体を支える状態への移行についてのシミュレーション結果の一例を説明する。図8は、足で立っている状態から、手と足で体を支える状態への移行についてのシミュレーション結果における時刻毎の状態を示す図である。画像g401~g409は、0.1(s)、8.4(s)、8.9(s)、18.2(s)、22.0(s)、29.2(s)、43.6(s)、45.8(s)、47.5(s)の状態の画像である。図8のように、シミュレーションでは、立位から始め、壁に接触し、接触が安定化した後、壁にもたれかかるように重心を前に移動した。そしてシミュレーションでは、その後、元の立脚姿勢に戻ることができた。
【0128】
制御モードを変更する冗長コントロールモードでは、pctrlは次式(39)である。また、制御入力vは式(13)である。
【0129】
【数39】
【0130】
例えば、画像g401(0.1(s))の状態は、スタンディングモードであり、上半身のコントロールが弱いため、pctrlは次式(40)となる。
【0131】
【数40】
【0132】
画像g404(18.2(s))の状態は、サポートモードであり、手の位置を制御するため、pctrlは次式(41)となる。
【0133】
【数41】
【0134】
図9は、壁に接触するシミュレーションを行った場合のx方向の重心位置とy方向の重心位置と、x方向の接触力とz軸方向の接触力を示す図である。グラフg500はx方向の重心位置の変化を表し、グラフg510はy方向の重心位置の変化を表す。グラフg520はx方向の接触力の変化を表し、グラフg530はy方向の接触力の変化を表す。また、グラフg500~g530において、横軸は時刻(s)であり、グラフg510とg520の縦軸は位置であり、グラフg520とg540の縦軸は接触力(N)である。
【0135】
グラフg500の線g501と、グラフg510の線511は、目標値である。グラフg500の線g502と、グラフg510の線512は、実際値である。グラフg500とg510のように、本実施形態によれば、x方向とz方向の重心位置の実測値(シミュレーション結果)は、目標値に近い値である。
グラフg520の線g521と、グラフg530の線g531は、足の接触力である。グラフg520の線g522と、グラフg530の線g532は、手の接触力である。グラフg520のように、x方向では、手と足とにかかる力が互いに正負反対方向に働いているので、式(29)と一致する。また、グラフg530のように、z方向では、手にほとんど力がかかっていず、体重が掛かっているので足に力がかかっている。
【0136】
<処理手順例>
次に、処理手順例を説明する。
図10は、本実施形態に係るロボット制御システムの処理手順のフローチャートである。
【0137】
(ステップS1)取得部81は、センサ7が検出した検出値を取得する。
【0138】
(ステップS2)制御部86は、センサ7が検出した検出値を用いて、ロボット6の状態(例えばPhase1~4)を検出する。
【0139】
(ステップS3)制御部86は、検出したロボット6の状態に応じて、例えば、制御モード、使用するフィード・フォワード項を切り替えるように制御する。
【0140】
(ステップS4)制御部86は、ロボット6の状態がPhase4であるか、Phase1~3であるかを判別する。制御部86は、Phase4であると判別した場合(ステップS4;Phase4)、ステップS8の処理に進める。制御部86は、Phase1~3であると判別した場合(ステップS4;Phase1~3)、ステップS5の処理に進める。
【0141】
(ステップS5)制御部86は、重心のポテンシャルに合わせてフィード・フォワード項vffを式(23)に設定する。制御部86は、処理後、ステップS6の処理に進める。
【0142】
(ステップS6)拡張部83は、分離型パワー保存則に基づいて実行可能な制御入力uに置き換える。拡張部83は、処理後、ステップS7の処理に進める。
【0143】
(ステップS7)制御部86は、式(22)で関節トルクuを求めて、目標関節トルクを発揮するように関節アクチュエータ9を制御する。制御部86は、処理後、ステップS1の処理に戻す。
【0144】
(ステップS8)重心補償力算出部82は、重心の位置をxCOM=(x,z)とし,その目標位置をxCOMdとする。接触している面に力点を設定する。
【0145】
(ステップS9)重心補償力算出部82は、並進力λを、式(32)を用いて算出する。
【0146】
(ステップS10)重心補償力算出部82は、水平力のフィード・フォワード項vffhを、式(33)を用いて算出し、垂直力のフィード・フォワード項vffvを、式(35)を用いて算出する。
【0147】
(ステップS11)拡張部83は、水平力のフィード・フォワード項vffhを、式(33)を用いて算出し、垂直力のフィード・フォワード項vffvを用いて、制御入力vを拡張する。
【0148】
(ステップS12)拡張部83は、分離型パワー保存則に基づいて実行可能な制御入力uに置き換える。
【0149】
(ステップS13)制御部86は、式(22)で関節トルクuを求めて、目標関節トルクを発揮するように関節アクチュエータ9を制御する。御部86は、処理後、ステップS1の処理に戻す。
【0150】
以上のように、本実施形態では、受動性に基づく制御をマルチコンタクトタスクに適用するための理論と戦略をたて制御するようにした。これにより、本実施形態によれば、シミュレーションによって、マルチコンタクトの安定化問題を実現できることを確認した。
【0151】
そして、本実施形態では、手足の幾何学的関係より重心補償力を計算し、立位時の重力補償項を3次元に拡張することで、3次元の重心補償力をフィード・フォワード項として追加するようにした。本実施形態では、この際、水平力と垂直力は独立した項として定義するようにした。また、本実施形態では、手を着く、離すなどの接触点の切り替わりについては実際の接触に応じてフィード・フォワード項を変化させることで実現した。
【0152】
これにより、本実施形態によれば、複数の接触制約を満たしながら,重心安定化を実現できるようになる。本実施形態によれば、受動性における証明により制御系として安定となるので、ロバストである。本実施形態によれば、計算はヤコビ行列の正則な部分行列の逆行列を求めるのみという小さい計算コストで可能となる。本実施形態によれば、パラメタは比例、微分ゲインのみで、最適化問題で扱う重みのような無次元係数ではなく、物理的意味から直感的にチューニングが可能である。
【0153】
なお、上述した例では、ロボット6が図2のようなボディ、頭部、2つのアーム、2つの足等を備える例を説明したが、これに限らない。本実施形態の制御方法は、2次元空間を移動可能なボディに2つ以上の2自由度以上のアーム(もしくは足)を持つロボットの制御に適用可能である。本実施形態の制御方法は、このようなロボットが非平面上に接触しながらボディを支える状況の制御に適用可能である。
【0154】
また、上述した例では、3次元で説明したが、水平力のフィード・フォワード項を適用できる平面の2次元にも適用可能である。この場合は、2次元空間で任意の方向に力を発生させる必要があるため、アームも2自由度必要である。また、アーム一本ではボディを支えることができないので、この場合は、アームも2本以上必要である。
【0155】
なお、本発明における制御装置8の機能の全てまたは一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより制御装置8が行う処理の全てまたは一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0156】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0157】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【0158】
1…ロボット制御システム、7…センサ、8…制御装置、9(9-1,9-2,…,9-n)…関節アクチュエータ、71…傾斜センサ、72…6軸センサ、73…エンコーダ、81…取得部、82…重心補償力算出部、83…拡張部、84…切替部、85…駆動部、86…制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10