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

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

▶ ソニー株式会社の特許一覧

特開2022-128093情報処理装置、情報処理方法及びプログラム
<>
  • 特開-情報処理装置、情報処理方法及びプログラム 図1
  • 特開-情報処理装置、情報処理方法及びプログラム 図2
  • 特開-情報処理装置、情報処理方法及びプログラム 図3
  • 特開-情報処理装置、情報処理方法及びプログラム 図4
  • 特開-情報処理装置、情報処理方法及びプログラム 図5
  • 特開-情報処理装置、情報処理方法及びプログラム 図6
  • 特開-情報処理装置、情報処理方法及びプログラム 図7
  • 特開-情報処理装置、情報処理方法及びプログラム 図8
  • 特開-情報処理装置、情報処理方法及びプログラム 図9
  • 特開-情報処理装置、情報処理方法及びプログラム 図10
  • 特開-情報処理装置、情報処理方法及びプログラム 図11
  • 特開-情報処理装置、情報処理方法及びプログラム 図12
  • 特開-情報処理装置、情報処理方法及びプログラム 図13
  • 特開-情報処理装置、情報処理方法及びプログラム 図14
  • 特開-情報処理装置、情報処理方法及びプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022128093
(43)【公開日】2022-09-01
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   B25J 13/00 20060101AFI20220825BHJP
   B25J 5/00 20060101ALI20220825BHJP
【FI】
B25J13/00 Z
B25J5/00 E
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021026428
(22)【出願日】2021-02-22
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】木下 将也
(72)【発明者】
【氏名】長阪 憲一郎
(72)【発明者】
【氏名】高杉 憲明
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707CS08
3C707KS20
3C707KS22
3C707KS23
3C707KS24
3C707KS34
3C707KS35
3C707KS36
3C707KS37
3C707LV19
3C707MT05
3C707WA14
3C707WK08
(57)【要約】
【課題】未知の外乱に対する脚式のロボット装置の安定性能を向上させる。
【解決手段】1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、および前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、
前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、を備える情報処理装置。
【選択図】図1
【特許請求の範囲】
【請求項1】
1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、および前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、
前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、
を備える情報処理装置。
【請求項2】
前記算出部は、
前記ロボット装置の現在の重心の平面位置および平面速度、N歩先(Nは自然数)までの各歩における前記ロボット装置の接地脚の計画上の接地点位置の平均である計画支持点位置、ならびにN歩先までの各歩における前記ロボット装置の重心の垂直位置に基づいて、前記着床点変更量および前記圧力中心点変更量を算出する、
請求項1に記載の情報処理装置。
【請求項3】
前記算出部は、
前記ロボット装置の制御モデルを、前記ロボット装置の重心と前記ロボット装置の接地脚が発生すべき圧力中心点とからなる重心-圧力中心点モデルとみなして、N歩先までの各歩における前記ロボット装置の重心の運動方程式を前記着床点変更量と前記圧力中心点変更量を未知パラメータとして算出する、
請求項1に記載の情報処理装置。
【請求項4】
前記算出部は、
滞空期を含む前記ロボット装置の重心の運動方程式を算出する、
請求項1に記載の情報処理装置。
【請求項5】
前記算出部は、
前記ロボット装置がN歩先に到達してから時間的無限遠が経過したときにN歩先の前記ロボット装置の重心がN歩先の前記ロボット装置の前記計画支持点位置の真上で静止するという拘束条件の下で、N歩先の前記ロボット装置の重心の運動方程式を解くことで、前記着床点変更量および前記圧力中心点変更量を算出する、
請求項2に記載の情報処理装置。
【請求項6】
前記算出部は、
N歩先の前記ロボット装置の姿勢および移動と(N-1)歩先の前記ロボット装置の姿勢および移動が一致するという拘束条件の下で、N歩先の前記ロボット装置の重心の運動方程式を解くことで、前記着床点変更量および前記圧力中心点変更量を算出する、
請求項1に記載の情報処理装置。
【請求項7】
前記算出部は、
前記着床点変更量の最小値および前記圧力中心点変更量の最小値を算出する、
請求項1に記載の情報処理装置。
【請求項8】
前記ロボット装置は、4つの前記脚部を備える脚式のロボット装置である、
請求項1に記載の情報処理装置。
【請求項9】
演算処理装置によって、
1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、または前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出することと、
算出した前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御することと、
を含む情報処理方法。
【請求項10】
コンピュータを、
1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、または前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、
前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、移動ロボットとして、脚式のロボット装置(脚部を備えるロボット装置)の開発が進められている。脚式のロボット装置は、車輪式のロボット装置では移動が困難な段差又は階段を含む環境、及び不整地などの環境でも自由に移動することが可能である。そのため、脚式のロボット装置は、人間が行っていた山道などでの荷物の運搬を代替することが可能な移動体として期待されている。
【0003】
このような脚式のロボット装置の姿勢および歩行を安定化させる技術として、様々な技術が検討されている。例えば、下記の特許文献1には、外乱によって回転した2足歩行ロボットの上半身を元に戻すような立脚または遊脚の制御を行うことで、2足歩行ロボットの姿勢および歩行を安定化させる技術が開示されている。また、下記の特許文献2には、外乱安定化用の制御タスク(低周期)と、計画タスクを実行する制御が並列して動作し、外乱が入った際には処理を切り替えることで、2足歩行ロボットの姿勢および歩行を安定化させる技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017-202535号公報
【特許文献1】特開2011-240475号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、未知の外乱に対する脚式のロボット装置の安定性能を向上させることができるとは限らない。例えば、上記の特許文献1に記載された従来技術では、外乱によって回転した2足歩行ロボットの上半身を元に戻すような立脚または遊脚の制御を行うにすぎず、ロボット全体の重心バランスが考慮されていないため、外乱耐性が高いとは言えない場合がある。また、上記の特許文献2に記載された従来技術では、外乱安定化用の制御タスク(低周期)と、計画タスクを実行する制御が並列して動作し、外乱が入った際には処理を切り替えるにすぎず、制御切り替えタイミングまでに遅延が生じるため即座に外乱に対応できない場合がある。
【0006】
そこで、本開示では、未知の外乱に対する脚式のロボット装置の安定性能を向上させることができる情報処理装置、情報処理方法及びプログラムを提案する。
【課題を解決するための手段】
【0007】
本開示によれば、1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、および前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、を備える情報処理装置が提供される。
【0008】
また、本開示によれば、演算処理装置によって、1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、または前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出することと、算出した前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御することと、を含む情報処理方法が提供される。
【0009】
また、本開示によれば、コンピュータを、1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、または前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、として機能させるプログラムが提供される。
【0010】
本開示によれば、1以上の脚部を備えるロボット装置の現在の接地脚が発生すべき圧力中心点位置および現在の遊脚が次に着床する着床点位置を、同時に、かつ実時間で実行可能な演算量で算出することができるため、未知の外乱に対する脚式のロボット装置の安定性能を向上させることが可能である。
【図面の簡単な説明】
【0011】
図1】本開示の実施形態に係る情報処理装置によるロボット装置の制御処理の概要を説明するための図である。
図2】同実施形態に係るロボット装置の歩容の生成例を示す図である。
図3】同実施形態に係るロボット装置の制御モデルを説明するための図である。
図4】同実施形態に係る重心水平安定化器の出力イメージおよび床反力と関節トルクの関係を示す図である。
図5】同実施形態に係る情報処理装置を含むロボット装置の機能構成を示すブロック図である。
図6】同実施形態に係るロボット装置の重心-圧力中心点モデルを示す図である。
図7】同実施形態に係るステップ刻みの重心-圧力中心点モデルを示す図である。
図8】同実施形態に係る支持点変更時の重心-圧力中心点モデルを示す図である。
図9】同実施形態に係るN歩先(N=3)の重心状態を表すモデリング結果のイメージを示す図である。
図10】同実施形態に係るN歩目が着床してからt秒後の重心の運動方程式を説明するための図である。
図11】同実施形態に係る安定化条件(Capture Point)を満たす運動方程式を説明するための図である。
図12】同実施形態に係る安定化に用いる出力の選択行列の構成例を示す図である。
図13】同実施形態に係る軌道エネルギーと歩行動作の関係を説明するための図である。
図14】同実施形態に係る安定化条件(Limit Cycle)を満たす運動方程式を説明するための図である。
図15】情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0012】
以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
【0013】
(実施形態)
[1.概要]
まず、図1を用いて、本開示の実施形態に係る情報処理装置100によるロボット装置1の制御処理の概要を説明する。図1は、本開示の実施形態に係る情報処理装置100によるロボット装置1の制御処理の概要を説明するための図である。本実施形態では、ロボット装置1が、図1に示すような4つの脚部を備える脚式のロボット装置1である場合について説明する。図1に示すブロックのうち、重心水平安定化器が本願発明に係るブロックである。
【0014】
情報処理装置100は、歩行コマンド生成器を備える。歩行コマンド生成器は、利用者から受け付けたロボット装置1の目標並進速度、目標旋回角速度、およびロボット装置1の歩き方(歩容)の指示に基づいて、ロボット装置1に対する歩行コマンドを生成する。なお、歩行コマンドについては後述する図5で詳しく説明する。
【0015】
また、情報処理装置100は、歩容生成器を備える。歩容生成器は、歩行コマンド生成器によって生成された歩行コマンドに基づいて、後述する図2示すようなロボット装置1の歩行パターンを示すチャート(以下、歩容チャートともいう)を生成する。
【0016】
また、歩容生成器は、歩容チャートを生成するとともに、ロボット装置1の現在の遊脚が次に着床する着床点位置の計画着床点位置を示す着床点座標を生成する。
【0017】
また、情報処理装置100は、将来支持点予測器を備える。将来支持点予測器は、歩容生成器によって生成された歩容チャートから、N歩先(Nは自然数)までの各歩におけるロボット装置1の接地脚の計画上の接地点位置を示す接地点座標を平均した計画支持点位置(以下、N歩先までの各歩における計画支持点位置ともいう)を示す支持点座標の配列(以下、支持点配列ともいう)を生成する。
【0018】
また、情報処理装置100は、姿勢推定器を備える。姿勢推定器は、ロボット装置1に搭載された慣性計測装置(IMU)によって検出されたロボット装置1の加速度および角速度に基づいて、ロボット装置1の姿勢角度および姿勢角速度を推定する。
【0019】
また、情報処理装置100は、自己位置推定器を備える。自己位置推定器は、ロボット装置1の関節に搭載されたエンコーダによって検出されたロボット装置1の関節のモータ角度および姿勢推定器によって推定されたロボット装置1の姿勢角度および姿勢角速度に基づいて、ロボット装置1の基本位置および基本姿勢、基本関節角度および基本関節角速度を推定する。
【0020】
また、情報処理装置100は、重心推定器を備える。重心推定器は、ロボット装置1の脚部の各々の関節に印加されるトルクに基づいて、脚部の各々が接地面から受ける反力を算出する。重心推定器は、脚部の各々が接地面から受けている反力の大きさに基づいて、ロボット装置1の現在の重心の平面位置を推定する。また、重心推定器は、ロボット装置1の重心の平面位置に基づいて、ロボット装置1の現在の重心の平面速度を推定する。また、重心推定器は、複数の姿勢におけるロボット装置1での重心の平面位置を用いて幾何的な計算を行うことで、ロボット装置1の現在の重心の垂直位置を推定する。また、重心推定器は、ロボット装置1の重心の垂直位置に基づいて、ロボット装置1の現在の重心の垂直速度を推定する。
【0021】
また、情報処理装置100は、重心垂直安定化器を備える。重心垂直安定化器は、ロボット装置1の重心の基準となる垂直位置、重心推定器によって推定されたロボット装置1の現在の重心の垂直位置および垂直速度、ならびに将来支持点予測器によって生成されたN歩先までの支持点配列に基づいて、N歩先までの各歩におけるロボット装置1の重心の垂直位置(垂直軌道ともいう)および目標合力または目標位置を算出する。
【0022】
また、情報処理装置100は、重心水平安定化器を備える。重心水平安定化器の内部では、計画支持点を目標圧力中心点として扱う。重心水平安定化器は、ロボット装置1の現在の重心の平面位置および平面速度、N歩先までの各歩におけるロボット装置1の計画支持点位置(目標圧力中心点位置)、ならびに重心垂直安定化器によって算出されたN歩先までの各歩におけるロボット装置1の重心の垂直位置に基づいて、ロボット装置1の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、およびロボット装置1の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する。なお、以下では、圧力中心点(CoP:Center of pressure)のことを単にCoPと記載する場合がある。
【0023】
また、情報処理装置100は、足先軌道生成器を備える。足先軌道生成器は、歩容生成器によって生成された計画着床点位置および重心水平安定化器によって算出された着床点変更量に基づいて、ロボット装置1の現在の遊脚が次に着床する着床点位置である目標足先位置を算出する。
【0024】
また、情報処理装置100は、ロボット装置1の安定化を実現するための(重心水平安定化器によって算出された)圧力中心点位置および(足先軌道生成器によって算出された)目標足先位置を一般化逆動力学(GID:Generalized Inverse Dynamics)を用いた全身協調制御によって実際のロボット装置1で実現する。
【0025】
次に、図3を用いて、実施形態に係るロボット装置1の制御モデルについて説明する。図3は、実施形態に係るロボット装置1の制御モデルを説明するための図である。図3の左側に示すように、本実施形態では、1以上の脚部を備えるロボット装置1の制御モデルを、ロボット装置1の重心とロボット装置1の接地脚が発生すべき圧力中心点(CoP)からなる重心-圧力中心点モデルとみなす。
【0026】
ロボット装置1全体の複雑な機構をすべて考慮すると、演算時間が増大してしまう。そこで、本実施形態では、図3の左側に示すように、ロボット装置1の重心とロボット装置1の圧力中心点(CoP)からなる竹馬モデルのような重心-圧力中心点モデルへと簡略化する。この重心-圧力中心点モデルに対し、現在の重心状態を入力として、数歩先(例えば、N歩先)で安定化するような圧力中心点位置と、計画着床点位置からの着床点変更量を求める。ここで、数歩先としているのは、ロボット装置1が押されるといった大きな外乱や利用者指令変更時に、過大な歩幅変更量の発生を抑制するためである。この重心-圧力中心点モデルは、ロボット装置1の脚数、接地(着床)パターンに依存しないため、高い一般性を有したモデルとなっている。また単純なモデルであるため、実時間性も高い。
【0027】
また、図3の右側に示すように、本実施形態では、情報処理装置100が、ロボット装置1の制御モデルをロボット装置1の重心と圧力中心点(CoP)からなる重心-圧力中心点モデルとみなして、N歩先までの各歩におけるロボット装置1の重心の運動方程式を着床点変更量と圧力中心点変更量を未知パラメータとして算出する。情報処理装置100は、算出された着床点変更量に基づく着床点位置と圧力中心点変更量に基づく圧力中心点を実現するようにロボット装置1の姿勢および移動を制御する。これにより、情報処理装置100は、N歩先(例えば、数歩先)でロボット装置1が転ばないようにロボット装置1を安定化させることができる。
【0028】
次に、図4を用いて、実施形態に係る重心水平安定化器の出力イメージおよび床反力と関節トルクの関係について説明する。図4は、実施形態に係る重心水平安定化器の出力イメージおよび床反力と関節トルクの関係を示す図である。図4の左側は、重心水平安定化器の出力イメージを示す。図4の左側に示すように、重心水平安定化器は、ロボット装置1の遊脚の足先が次に着床する着床点位置の計画着床点位置からの着床点変更量(将来の着床点変更量)を算出する。将来の着床点変更量とは、ロボット装置1が倒れないようにするには、ロボット装置1が所望な動作を実現するための計画された脚の軌道からどこに脚を着けばよいかという最小の着床点変更量を意味する。情報処理装置100は、将来の着床点変更量を毎ティック(tick)計算することで、極力利用者から指示された所望な動作を実現しつつ、ロボット装置1が倒れない位置へと着床点を変更する。
【0029】
また、図4の左側に示すように、重心水平安定化器は、ロボット装置1の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する。ここで、圧力中心点は、ロボット装置1の各接地脚の接地位置を結ぶことで形成される多角形(支持多角形ともいう)上の力の中心点である。圧力中心点は、ロボット装置1の接地脚が地面を押す力と、ロボット装置1の接地脚が地面に接地している接地位置から算出される。図4の右側は、床反力と関節トルクの関係を示す。ロボット装置1の接地脚が地面を押す力は、ロボット装置1へは反力(床反力)として外力となり伝わる。また、ロボット装置1の接地脚が地面を押す力の大きさは、ロボット装置1の脚の各関節が発生するトルクとロボット装置1の幾何関係から決定される。すなわち、圧力中心点は、ロボット装置1の脚の各関節のモータのトルクを制御することにより、制御可能となる。
【0030】
このように、情報処理装置100は、ロボット装置1の遊脚の将来の着床点操作とロボット装置1の現在の接地脚が発生すべき圧力中心点操作の両方もしくは一方だけを制御することで、ロボット装置1による所望の動作とロボット装置1の安定化を同時に実現可能とする。
【0031】
[2.構成例]
次に、図5を用いて、実施形態に係る情報処理装置100を含むロボット装置1の機能構成について説明する。図5は、実施形態に係る情報処理装置を含むロボット装置1の機能構成を示すブロック図である。なお、情報処理装置100は、例えば、ロボット装置1の本体部に備えられてもよい。
【0032】
図5に示すように、ロボット装置1は、入力部11と、駆動部12と、トルク検出部13と、情報処理装置100と、を備える。
【0033】
入力部11は、利用者からロボット装置1への情報の入力を可能とする入力装置を含む。入力部11は、例えば、タッチパネル、ボタン、マイクロフォン、スイッチ又はレバーなどの情報が入力される入力装置と、入力された情報に基づいて入力信号を生成する入力制御回路とを含んで構成されてもよい。
【0034】
駆動部12は、駆動制御部114からの制御指令等に基づいて、脚部の各々に備えられる関節を回動させるトルクを発生させる。駆動部12は、例えば、電気エネルギーによって回転運動を行う電動機であり、脚部の各々の関節ごとに設けられてもよい。脚部の各々は、駆動部12によって脚部の各々の関節が回動されることで、屈曲又は伸展される。
【0035】
トルク検出部13は、脚部の各々において、駆動部12から関節に印加されるトルクの大きさを検出する。トルク検出部13は、磁歪式、ひずみゲージ式、圧電式、光学式、ばね式又は静電容量式のトルクセンサを含み、関節に印加されるトルクを直接検出してもよい。または、トルク検出部13は、駆動部12に印加される電圧又は電流の大きさを検出する電圧計又は電流計を含み、駆動部12に印加される電圧又は電流の大きさに基づいて、関節に印加されるトルクを算出してもよい。トルク検出部13が検出したトルクの大きさは、脚部の各々を構成するリンクの長さと併せて、脚部の各々が接地面から受ける反力を算出するために用いられる。
【0036】
情報処理装置100は、制御部110を備える。制御部110は、コントローラ(Controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、情報処理装置100の内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAM等の記憶領域を作業領域として実行されることにより実現される。図5に示す例では、制御部110は、生成部111と、推定部112と、算出部113と、駆動制御部114と、を備える。
【0037】
生成部111は、図1に示す歩行コマンド生成器の機能を実行する。具体的には、生成部111は、入力部11が利用者から受け付けたロボット装置1の目標並進速度、目標旋回角速度、およびロボット装置1の歩き方(歩容)の指示を取得する。続いて、生成部111は、ロボット装置1の目標並進速度、目標旋回角速度、およびロボット装置1の歩き方(歩容)の指示に基づいて、ロボット装置1に対する歩行コマンドを生成する。生成部111は、クロール(crawl)、ウォーク(walk)、トロット(trot)、ギャロップ(gallop)といった様々な歩き方に対応する歩行コマンドを生成する。ロボット装置1の歩き方(歩容)の指示とは、ロボット装置1の4つの脚それぞれの接地のさせ方の指示と言い換えることができる。
【0038】
例えば、クロール(crawl)は、ロボット装置1の4つの脚のうちの3つの脚が常に接地しており、接地している3つの脚を同じ速度で後ろに送り出すことでロボット装置1の体を前に送り出す歩き方のことを指す。また、トロット(trot)は、ロボット装置1の4つの脚のうちの対角に位置する2つの脚のペア(右前脚と左後脚、左前脚と右後脚)を交互に動かす歩き方のことを指す。
【0039】
また、生成部111は、図1に示す歩容生成器の機能を実行する。具体的には、生成部111は、(歩行コマンド生成器によって)生成された歩行コマンドに基づいて、図2示すようなロボット装置1の歩行パターンを示すチャート(以下、歩容チャートともいう)を生成する。図2は、実施形態に係るロボット装置1の歩容の生成例を示す図である。図2には上段から下段にかけて、クロール(crawl)、ウォーク(walk)、跳躍期がないトロット(trot)、跳躍期があるトロット(trot)の4種類の歩き方に対応する歩容チャートを示す。ここで、跳躍期とは、ロボット装置1の4つの脚がいずれも接地していない(空中に浮いている)期間のことを指す。
【0040】
図2示す各歩容チャートの横軸は、時刻を示す。また、各歩容チャートの縦軸は、ロボット装置1の4つの脚のうち、左前脚(FL:Left front leg)、右前脚(FR:Right front leg)、左後脚(RL:Left rear leg)、右後脚(RR:Right rear leg)それぞれが対応する時刻に地面に接しているか否かを示す。以下では、ロボット装置1の脚のうち、地面に接している脚のことを接地脚または支持脚という。また、ロボット装置1の脚のうち、地面に接していない脚(すなわち空中に浮いている脚)のことを遊脚という。また、各歩容におけるロボット装置1の4つの脚それぞれの相対的な位置関係から、各歩容におけるロボット装置1の4つの脚の足先の位置を示す座標が決定される。
【0041】
図2示す各歩容チャートのうち、灰色で塗りつぶされた期間は、対応する脚が遊脚である遊脚期間を示す。また、灰色で塗りつぶされていない期間は、対応する脚が接地脚である接地期間を示す。また、ロボット装置1の脚の接地パターンが一定である期間を一歩とみなす。例えば、図2の上段に示すクロール(crawl)歩容チャートでは、時刻t=0から時刻t=0.25の期間は、ロボット装置1が1歩目を踏み出している期間であることを示す。また、t=0.25でロボット装置1が1歩先に着床する。また、時刻t=0.25から時刻t=0.5の期間は、ロボット装置1が2歩目を踏み出している期間であることを示す。また、t=0.5でロボット装置1が2歩先に着床する。
【0042】
また、時刻t=0.5から時刻t=0.75の期間は、ロボット装置1が3歩目を踏み出している期間であることを示す。また、t=0.75でロボット装置1が3歩先に着床する。また、時刻t=0.75から時刻t=1.0の期間は、ロボット装置1が4歩目を踏み出している期間であることを示す。また、t=1.0でロボット装置1が4歩先に着床する。また、1つ目の歩容チャートの横に続く2つ目の歩容チャートは、時刻t=0から時刻t=1.0までの1つ目の歩容チャートの繰り返しパターンであるが、1つ目の歩容チャートの時刻に続く時刻t=1.0から時刻t=2.0の歩容パターンを示す。また、2つ目の歩容チャートの横に続く3つ目の歩容チャートは、時刻t=0から刻t=1.0までの1つ目の歩容チャートの繰り返しパターンであるが、2つ目の歩容チャートの時刻に続く時刻t=2.0から時刻t=3.0の歩容パターンを示す。
【0043】
また、生成部111は、歩容チャートを生成するとともに、ロボット装置1の現在の遊脚が次に着床する着床点位置の計画着床点位置を示す着床点座標を生成する。例えば、図2の上段に示すクロール(crawl)歩容チャートに基づけば、1歩目の期間である時刻t=0から時刻t=0.25におけるロボット装置1の現在の遊脚は左前脚(FL)である。そこで、生成部111は、ロボット装置1の現在の遊脚である左前脚(FL)が、次(この場合、時刻t=0.25)に着床する1歩先の着床点位置の計画着床点位置を示す着床点座標を生成する。
【0044】
また、生成部111は、図1に示す将来支持点予測器の機能を実行する。具体的には、生成部111は、(歩容生成器によって)生成された歩容チャートから、N歩先(Nは自然数)までの各歩におけるロボット装置1の接地脚の計画上の接地点位置を示す接地点座標を平均した計画支持点位置(以下、N歩先までの各歩における計画支持点位置ともいう)を示す支持点座標の配列(以下、支持点配列ともいう)を生成する。
【0045】
ここで、図2の上段に示すクロール(crawl)歩容チャートを例に挙げて、生成部111が生成する支持点配列について具体的に説明する。例えば、時刻t=0から時刻t=0.25の期間(1歩目)は、ロボット装置1の左前脚(FL)が遊脚、右前脚(FR)と左後脚(RL)と右後脚(RR)が接地脚である。そこで、生成部111は、1歩先のロボット装置1の接地脚である右前脚(FR)と左後脚(RL)と右後脚(RR)の計画上の接地点位置を示す接地点座標を平均した1歩先の計画支持点位置を示す支持点座標を算出する。
【0046】
続いて、時刻t=0.25から時刻t=0.5の期間(2歩目)は、ロボット装置1の右後脚(RR)が遊脚、左前脚(FL)と右前脚(FR)と左後脚(RL)が接地脚である。そこで、生成部111は、2歩先のロボット装置1の接地脚である左前脚(FL)と右前脚(FR)と左後脚(RL)の計画上の接地点位置を示す接地点座標を平均した2歩先の計画支持点位置を示す支持点座標を算出する。
【0047】
続いて、時刻t=0.5から時刻t=0.75の期間(3歩目)は、ロボット装置1の右前脚(FR)が遊脚、左前脚(FL)と左後脚(RL)と右後脚(RR)が接地脚である。そこで、生成部111は、3歩先のロボット装置1の接地脚である左前脚(FL)と左後脚(RL)と右後脚(RR)の計画上の接地点位置を示す接地点座標を平均した3歩先の計画支持点位置を示す支持点座標を算出する。
【0048】
続いて、時刻t=0.75から時刻t=1.0の期間(4歩目)は、ロボット装置1の左後脚(RL)が遊脚、左前脚(FL)と右前脚(FR)と右後脚(RR)が接地脚である。そこで、生成部111は、4歩先のロボット装置1の接地脚である左前脚(FL)と右前脚(FR)と右後脚(RR)の計画上の接地点位置を示す接地点座標を平均した4歩先の計画支持点位置を示す支持点座標を算出する。続く時刻についても、同様にして、生成部111は、N歩先までの計画支持点位置を示す支持点座標を算出する。
【0049】
このように、生成部111は、1歩目からN歩目までの各歩における計画支持点位置を示すN個の支持点座標を並べた列であるN歩先までの支持点配列(1歩目の支持点座標、2歩目の支持点座標、3歩目の支持点座標、…、N歩目の支持点座標)を生成する。なお、以下では、〇〇点配列(〇〇は点の名称)とは、ロボット装置1の1歩目からN歩目までの各歩における〇〇点位置を示すN個の〇〇点座標を並べた列のことを指すものとする。
【0050】
推定部112は、図1に示す姿勢推定器の機能を実行する。具体的には、推定部112は、ロボット装置1に搭載された慣性計測装置(IMU)によって検出されたロボット装置1の加速度および角速度に基づいて、ロボット装置1の姿勢角度および姿勢角速度を推定する。
【0051】
また、推定部112は、図1に示す自己位置推定器の機能を実行する。具体的には、推定部112は、ロボット装置1の関節に搭載されたエンコーダによって検出されたロボット装置1の関節のモータ角度および(姿勢推定器によって)推定されたロボット装置1の姿勢角度および姿勢角速度に基づいて、ロボット装置1の基本位置および基本姿勢、基本関節角度および基本関節角速度を推定する。
【0052】
また、推定部112は、図1に示す重心推定器の機能を実行する。具体的には、推定部112は、ロボット装置1の脚部の各々の関節に印加されるトルクに基づいて、脚部の各々が接地面から受ける反力を算出する。推定部112は、脚部の各々が接地面から受けている反力の大きさに基づいて、ロボット装置1の現在の重心の平面位置を推定する。また、推定部112は、ロボット装置1の重心の平面位置に基づいて、ロボット装置1の現在の重心の平面速度を推定する。また、推定部112は、複数の姿勢におけるロボット装置1での重心の平面位置を用いて幾何的な計算を行うことで、ロボット装置1の現在の重心の垂直位置を推定する。また、推定部112は、ロボット装置1の重心の垂直位置に基づいて、ロボット装置1の現在の重心の垂直速度を推定する。
【0053】
算出部113は、図1に示す重心垂直安定化器の機能を実行する。具体的には、推定部112は、ロボット装置1の重心の基準となる垂直位置、(重心推定器によって)推定されたロボット装置1の現在の重心の垂直位置および垂直速度、ならびに生成部111によって生成されたN歩先までの支持点配列に基づいて、N歩先までの各歩におけるロボット装置1の重心の垂直位置(垂直軌道ともいう)および目標合力または目標位置を算出する。
【0054】
また、算出部113は、図1に示す重心水平安定化器の機能を実行する。重心水平安定化器の内部では、計画支持点を目標圧力中心点として扱う。具体的には、算出部113は、ロボット装置1の現在の重心の平面位置および平面速度、N歩先までの各歩におけるロボット装置1の計画支持点位置(目標圧力中心点位置)、ならびに(重心垂直安定化器によって)算出されたN歩先までの各歩におけるロボット装置1の重心の垂直位置に基づいて、ロボット装置1の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、およびロボット装置1の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する。算出部113は、着床点変更量の最小値および圧力中心点変更量の最小値を算出する。
【0055】
また、算出部113は、図1に示す足先軌道生成器の機能を実行する。具体的には、算出部113は、生成部111によって生成された計画着床点位置および(重心水平安定化器によって)算出された着床点変更量に基づいて、ロボット装置1の現在の遊脚が次に着床する着床点位置である目標足先位置を算出する。
【0056】
駆動制御部114は、ロボット装置1の安定化を実現するための圧力中心点位置および目標足先位置を、一般化逆動力学(GID)を用いた全身協調制御によって実際のロボット装置1で実現する。具体的には、駆動制御部114は、算出部113によって算出された圧力中心点位置および目標足先位置を実現するようにロボット装置1の姿勢および移動を制御する。より具体的には、駆動制御部114は、算出部113によって算出された圧力中心点位置および目標足先位置を実現するようにロボット装置1の各関節に発生させるべき関節駆動力(トルク)を算出する。例えば、駆動制御部114は、推定部112によって推定されたロボット装置1の全状態量(基本位置および基本姿勢、基本関節角度および基本関節角速度)、利用者によって指定された目標姿勢角度、算出部113によって算出された目標合力または目標位置、圧力中心点位置、および目標足先位置に基づいて、ロボット装置1の各関節に発生させるべき関節駆動力(トルク)を算出する。続いて、駆動制御部114は、算出した関節駆動力(トルク)をロボット装置1の各関節に発生させるようにロボット装置1の各関節の動作を制御する。
【0057】
[3.重心水平安定化器内部アルゴリズムの概要]
本実施形態に係る重心水平安定化器は、ロボット装置1の水平方向((X、Y)方向)について取り扱う。ロボット装置1の垂直方向(Z方向)に関しては、別モジュール(図1に示す重心垂直安定化器)で別途設計され、本モジュール(重心水平安定化器)に入力として与える。このようにすることで、垂直方向の非線形性を時変線形化して取り扱う。
重心水平安定化器内部アルゴリズムの概要は、下記の3つのステップからなる。なお、上述したように、重心水平安定化器の内部では、計画支持点を目標圧力中心点(目標CoP)として扱う。そこで、以下では、支持点配列のことを目標圧力中心配列(目標CoP配列ともいう)と記載する場合がある。
【0058】
ステップ#1:ロボット装置1の現在の重心の平面位置および平面速度、N歩先までの各歩におけるロボット装置1の計画支持点位置(目標圧力中心点位置)を示す支持点座標の支持点配列(目標圧力中心点配列)、N歩先までの各歩におけるロボット装置1の接地脚の計画上の接地点位置を示す接地点座標の接地点配列、N歩先までの各歩におけるロボット装置1の接地脚が発生すべき圧力中心点位置(支持点位置)の目標圧力中心点位置(計画支持点位置)からの圧力中心点変更量(支持点変更量)の圧力中心点変更量配列(支持点変更量配列)、N歩先までの各歩におけるロボット装置1の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量の着床点変更量配列を含んだN歩先のロボット装置1の重心の平面位置および平面速度の状態を、滞空期を含んだ形でモデリングする。
【0059】
ステップ#2:N歩先のロボット装置1の重心の状態に関して、安定化条件を拘束条件(Capture Point、Limit Cycle)とし、N歩先までの各歩におけるロボット装置1の圧力中心点変更量配列(支持点変更量配列)および着床点変更量配列を求める。
【0060】
ステップ#3:ステップ#2の直近の変更量(つまり、直近の圧力中心点変更量および着床点変更量)を出力とし、ロボット装置1で実現する。
【0061】
[3-1.モデリング方法]
図6図9を用いて、重心水平安定化器内部アルゴリズムのステップ#1のモデリング方法について説明する。
【0062】
図6は、実施形態に係るロボット装置1の重心-圧力中心点モデルを示す図である。図6に示すように、算出部113は、ロボット装置1の制御モデルを、ロボット装置1の重心と支持点(圧力中心点)からなる重心-圧力中心点モデルとみなして、N歩先までの各歩におけるロボット装置1の重心の運動方程式を支持点変更量(圧力中心点変更量)および着床点変更量を未知パラメータとして算出する。
【0063】
図6では、ロボット装置1の重心の質量をm、ロボット装置1の重心に作用する力をf、ロボット装置1の重心の位置をx=(x、y,z)、ロボット装置1の支持点(圧力中心点)位置をp=(p、p、p)、支持点回りに作用するモーメントnからなる重心-圧力中心点モデルを考える。
【0064】
図6に示すモデルを用いると、グローバル座標からみた重心の運動方程式は、以下の式(1)で示される。
【0065】
【数1】
【0066】
また、グローバル座標からみた重心の角運動量の運動方程式は、以下の式(2)で示される。
【0067】
【数2】
【0068】
ここで、L=0、n=0と仮定し、式(1)から求めたfを式(2)に代入すると、以下の式(3)~(5)が得られる。
【0069】
【数3】
【0070】
【数4】
【0071】
【数5】
【0072】
上記の式(5)により、グローバル座標からみた重心の運動方程式が求められた。
【0073】
次に、式(5)を支持点位置pから見た運動方程式に置き換える。支持点位置pから見た重心位置を(X,Y、Z)とすると、以下の式(6)のように表せる。
【0074】
【数6】
【0075】
ここで、支持点位置pは不動と仮定すると、式(5)、(6)より、以下の式(7)で示す水平方向の支持点から見た運動方程式が得られる。
【0076】
【数7】
【0077】
上記の式(7)のZの要素が、上位の制御系において独立して制御され、既知であると仮定すると、Zは自明な時間関数として扱うことができ、上記の式(7)は以下の式(8)で示すような時変線形系として考えることができる。
【0078】
【数8】
【0079】
上記の式(8)はX方向について立式したものであるが、Y方向も同様に成り立つため、以降はX方向のみについて扱う。
【0080】
図7は、実施形態に係るステップ刻みの重心-圧力中心点モデルを示す図である。図7では、重心の動きを、ある時刻k=0からdtステップごとにNまで変化させたときの遷移ダイナミクスを考える。また、図7では、pを計画支持点位置(目標圧力中心点位置)、dxを支持点位置(圧力中心点位置)の計画支持点位置(目標圧力中心点位置)pからの支持点変更量(圧力中心点変更量)とし、時刻k=0~Nの間、計画支持点位置pは不変であると仮定する。
【0081】
図7に示すモデルを用いると、水平方向の重心の運動の離散化式は以下の式(9)のように与えられる。
【0082】
【数9】
【0083】
ここで、上記の式(9)に対し、上記の式(8)のα(t)をkステップごとにαとして代入し、支持点位置がdxだけ並行移動したものとして扱うと、状態空間表現は以下の式(10)となる。
【0084】
【数10】
【0085】
上記の式(10)において、Akは、定数であるdtと時変なαから求めることができ、αとdxを与えれば、Nステップ先までの状態を得ることができる。初期状態XからNステップ先までの遷移式を以下の式(11)に示す。
【0086】
【数11】
【0087】
図8は、実施形態に係る支持点変更時の重心-圧力中心点モデルを示す図である。図8では、ロボット装置1の第i歩目の状態を考える。また、図8では、ロボット装置1の第i歩目における計画支持点位置(目標圧力中心点位置)をpxiとする。また、図8では、図7で求めたNステップ目に、計画支持点位置(目標圧力中心点位置)pxiから計画支持点位置(目標圧力中心点位置)pxi+1へli+1だけ計画支持点位置(目標圧力中心点位置)の変更が発生した時の様子を示す。上記の式(11)より、k=0~Nまでの遷移ダイナミクスは以下の式(12)となる。
【0088】
【数12】
【0089】
上記の式(12)において、pi図8k=0時点での、pii+1k=N時点での、計画支持点位置(目標圧力中心点位置)pxiから見た重心位置である。また、変更後の計画支持点位置(目標圧力中心点位置)pxi+1から見たk=N時点での重心運動は以下の式(13)となる。
【0090】
【数13】
【0091】
上記の式(13)に上記の式(12)を代入すると、計画支持点位置(目標圧力中心点位置)変更に伴うダイナミクスを以下の式(14)のように表すことができる。
【0092】
【数14】
【0093】
次に、滞空期を考える。ここで、滞空期とは、ロボット装置1の脚がいずれも接地していない(空中に浮いている)期間のことを指す。例えば、滞空期が図8k=Nの設置期間後に、計画支持点位置(目標圧力中心点位置)変更前と隣接していたとする。滞空期では、並進運動は等速直線運動となるため、以下の式(15)が成り立つ。
【0094】
【数15】
【0095】
上記の式(13)に上記の式(15)を代入すると、滞空期を有する場合のダイナミクスを以下の式(16)のように表すことができる。
【0096】
【数16】
【0097】
上記の式(16)は、滞空期がゼロの(つまり、ロボット装置1が跳躍しない)場合は、計画支持点位置(目標圧力中心点位置)変更ダイナミクスの式(14)と等しくなる。以上により、滞空期を有する場合の計画支持点位置(目標圧力中心点位置)変更ダイナミクスを表す式を得ることができた。
【0098】
次に、上記の式(16)で表される計画支持点位置(目標圧力中心点位置)変更がN回行われたとき、現在の重心の状態を初期値としてN歩目までの遷移ダイナミクスを表す式を求める。上記の式(16)のli+1を、新たに計画上の歩幅li+1とこれに対する変更量dli+1の和として表すと、以下の式(17)となる。
【0099】
【数17】
【0100】
上記の式(17)を用いて、i=0~2までのダイナミクスを計算すると、以下の式(18)~(20)となる。
【0101】
【数18】
【0102】
【数19】
【0103】
【数20】
【0104】
上記の式(18)~(20)を行列形式にまとめると、以下の式(21)を得る。
【0105】
【数21】
【0106】
上記の式(21)を、N歩目までの重心状態として一般化すると、下記の式(22)となる。
【0107】
【数22】
【0108】
最終状態のみを利用する場合には、上記の式(22)を用いればよい。また、中間の軌道を求めたい場合には、上記の式(21)より計算可能である。以上により、重心の初期状態から、支持点変更量(圧力中心点変更量)、歩幅の計画値(計画着床点位置に対応)、歩幅の変更量(着床点変更量に対応)を考慮したN歩先の重心状態が求められた。
【0109】
図9は、実施形態に係るN歩先(N=3)の重心状態を表すモデリング結果のイメージを示す図である。図9は、上記の式(22)でN=3とした場合のN歩後の重心状態を表すモデリング結果のイメージを示す図である。
【0110】
上記の式(22)は、滞空期を含んだモデリング結果であり、ロボット装置1の跳躍も扱えるのがポイントとなっている。滞空期が存在しない場合、δiをゼロにすれば良く、制御モデルを切り替える必要がない。また上下動がない、線形倒立振子を仮定する場合、上下動に関する時変行列を計算する必要がなく、解析解で次の1歩までの遷移をモデリングすれば良く、演算量を削減可能である。
【0111】
このように、情報処理装置100は、上記の式(22)を用いることで、脚式ロボット装置の跳躍を含む多様な歩容を低演算量、単一制御モデルで安定化可能とすることができる。これにより、情報処理装置100は、脚式ロボット装置に対し、低コストで多様な歩行パターンを表現可能とすることができる。
【0112】
また、情報処理装置100は、上記の式(22)を用いることで、高速演算が可能なため、外乱の大きさを制御量から推定可能とすることができる。これにより、情報処理装置100は、対応できないような大きな外乱や不安定化を事前に予測することができるため、利用者がロボット装置に対し、緊急停止や回避動作を即座にとらせることができる。
【0113】
また、上記の式(22)のアルゴリズムはヒューリスティックな方法ではない。そのため、情報処理装置100は、さまざまな形状のロボット装置に対し、同一のアルゴリズム(式(22))で対応できる。
【0114】
[3-2.安定条件の記述、圧力中心点変更量配列(支持点変更量配列)および着床点変更量配列の算出]
図10図14を用いて、重心水平安定化器内部アルゴリズムのステップ#2の安定条件の記述、圧力中心点変更量配列(支持点変更量配列)および着床点変更量配列の算出について説明する。
【0115】
図10は、実施形態に係るN歩目が着床してからt秒後の重心の運動方程式を説明するための図である。図10に示すように、N歩先のロボット装置1の重心状態Xに関して、Xからの将来状態が安定化を達成する拘束を課す。このようにすることによって、複数歩を利用した安定化が考慮でき、1歩では対応しきれない強い外乱にも対応可能である。X(0)からt秒後経過した状態をX(t)とし、高さ一定を仮定すると、その間の運動方程式は図10の式(a)のような解析解で表すことが出来る。hは床から重心までの距離、gは重力定数であり、初期状態と時間のみで運動が決定される。
【0116】
まず、最初に安定化規範をCapture Pointとする場合の説明を行う。図10の式(a)の発散成分をゼロにするようなX(0)とドット付きX(0)の組を実現すれば、X(t)は無限遠で必ずゼロに収束し、着床点の真上で静止する。このような着床点がCapture Pointと呼ばれる。これを実現するには、図10の式(b)を満たせば良い。
【0117】
次に、図11の式(c)を用いて、圧力中心点変更量(支持点変更量)および着床点変更量を算出する。図11は、実施形態に係る安定化条件(Capture Point)を満たす運動方程式を説明するための図である。図11の式(c)では、ハット付きxが変数ベクトルであり、N歩分のそれぞれの変更量が含まれる。
【0118】
また図11の式(c)は、一般には式の数より変数が多い冗長系であるため、拘束を満たす解が複数存在する。そのため、変数のノルム最小解を重み付き擬似逆行列、SVDなどを用いて求めれば良く、高速に演算が可能である。さらに、ハット付きxに対し、要素を強制的にゼロ代入するような変換行列を乗じることで、ある区間の歩幅変更量(着床点変更量に対応)、圧力中心点変更量(支持点変更量)は行わないといった拘束が簡易に設定可能である。変換例を図12に示す。図12は、実施形態に係る安定化に用いる出力の選択行列の構成例を示す図である。
【0119】
図11の式(c)のハット付きxに図12に示す変換行列Sを乗じることで、変数に強制的にゼロが代入され、その変更量は利用せずに安定化を行うといったことが可能となる。変換行列Sの選択方法はロボットの歩容、タスクによって、簡単に設定することができ、制御モデルとして同一のものを常に利用できるメリットがある。例えば、4脚ロボットではトロットやギャロップなど、支持多角系が構成できない歩容(跳躍もこれに当たる)があるが、その時には、圧力中心点(支持点)操作量の変数をゼロにするように変換行列Sを設定すればよい。
【0120】
しかしながら、上記の安定化規範がCapture Pointである場合、次のようなデメリットが存在する。(1)制御調整用パラメータが、解導出の際の変数に対する最小化の重みしかなく、自由度が低い。(2)未来に拘束を課し、その条件を満たす先頭状態のみを制御する予見制御系に属するため、目標重心位置や速度に対して、定常偏差が発生する。(3)重心のモデル化誤差に脆弱である。
【0121】
そこで次に、安定化規範をLimit Cycleに拡張する。安定化規範がCapture Pointである場合の終端安定化条件を”無限遠で停止”から、Limit Cycle拘束へ拡張を行う。Limit Cycle とは、力学系における相空間上での閉軌道であり、位置と速度の関係が一定な法則を保つ現象である。本実施形態では、終端時刻で、Limit Cycle が形成されるような拘束式を導出する。まず、ロボット装置1が転倒しないLimit Cycle 軌道を算出するため、軌道エネルギーEを考える。高さ一定を仮定する線形倒立振子モードの定常歩行運動では、図13に示すように、軌道エネルギーは常にE>0を満たす領域で動作する。図13は、実施形態に係る軌道エネルギーと歩行動作の関係を説明するための図である。
【0122】
Limit Cycle拘束を課すことにより、N歩目が着床した瞬間の重心位置および速度が、着床後の時刻tでE>0となるような終端拘束条件を設定することで、N歩目以降が転倒せず、かつ、急激な歩幅変更を発生しないような運動が生成可能である。これらを満たす拘束式を図14に示す。図14は、実施形態に係る安定化条件(Limit Cycle)を満たす運動方程式を説明するための図である。線形倒立振子が定常動作を繰り返す時の位置の双対性を利用し、X(t)の位置を、着床直後のX(0)の符号反転としている。これは、着床後、時刻tで目標速度を満たしつつ、E>0を強制するX(0)を求める拘束式となる。
【0123】
安定化規範がCapture Pointである場合は、無限遠で停止するという条件だったため、現在の重心状態を反映した終端条件の設定変更パラメータがなく、動的な変更は不可能であった。しかし、図14に示したvrefを利用することで、現在の重心状態から終端条件を設定可能となった。例えば、Kを偏差に対するフィードバックゲイン、Kを偏差積分値に対するフィードバックゲインとして、vrefを以下の式(23)のように設計する。
【0124】
【数23】
【0125】
上記の式(23)では、ハット付きvrefを利用者からの速度指令値として、誤差e(t)を現在速度との差分として与えれば、速度に関して積分器が導入されたことになり、ロバスト化が実現できる。位置に関しても同様で、立脚時の偏差を解消したい場合、誤差e(t)を位置との差分として計算すれば良い。これは、現在の重心状態と、将来達成したい運動目的から、将来のE>0領域の高さを制御しているという意味を持つ。相空間上のどの高さ(つまり、速度)となったとしても、常にE>0は担保されるため、安定性を保証することができる。このように、情報処理装置100は、利用者の目的に応じた制御量の調整が可能となる。したがって、予測制御系は一般に定常偏差が残留するが、情報処理装置100は、定常偏差の残留を解決することができる。
【0126】
[4.応用例]
本実施形態に係る重心水平安定化器の出力値である圧力中心点変更量(支持点変更量)および着床点変更量を、ロボット装置1の安定化以外の目的で、高次な状況判断にも利用することができる。
【0127】
(例1)特別なセンサを搭載しなくても、安定化器の出力結果である歩幅変更量から、どの方向から外乱が入ったのかを利用者が推定することができるので、ロボット装置1の自律移動性能を高めることができる(例えば、進行方向から外乱が入ったので、ロボット装置1を自動で停止させるなど)。
(例2)重心水平安定化器の出力結果である歩幅変更量に対し、最大値を利用者が設定し、それを超えたら危険と判断し、ロボット装置1を自動停止、転倒回避動作に自律的に移行させることができる。
(例3)平面における着床点変更量の平均値の増加から、ロボットの経年劣化を自律的に判断することができる。
【0128】
[5.ハードウェア構成]
上述してきた実施形態に係る情報処理装置100等の情報機器は、例えば図15に示すような構成のコンピュータ1000によって再現される。図15は、情報処理装置100等の情報処理装置の機能を再現するコンピュータ1000の一例を示すハードウェア構成図である。以下、実施形態に係る情報処理装置100を例に挙げて説明する。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
【0129】
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
【0130】
ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0131】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係るプログラムを記録する記録媒体である。
【0132】
通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
【0133】
入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0134】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部110等の機能を再現する。また、HDD1400には、本開示に係るプログラムや、各種のデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
【0135】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0136】
なお、本技術は以下のような構成も取ることができる。
(1)
1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、および前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、
前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、
を備える情報処理装置。
(2)
前記算出部は、
前記ロボット装置の現在の重心の平面位置および平面速度、N歩先(Nは自然数)までの各歩における前記ロボット装置の接地脚の計画上の接地点位置の平均である計画支持点位置、ならびにN歩先までの各歩における前記ロボット装置の重心の垂直位置に基づいて、前記着床点変更量および前記圧力中心点変更量を算出する、
前記(1)に記載の情報処理装置。
(3)
前記算出部は、
前記ロボット装置の制御モデルを、前記ロボット装置の重心と前記ロボット装置の接地脚が発生すべき圧力中心点とからなる重心-圧力中心点モデルとみなして、N歩先までの各歩における前記ロボット装置の重心の運動方程式を前記着床点変更量と前記圧力中心点変更量を未知パラメータとして算出する、
前記(1)に記載の情報処理装置。
(4)
前記算出部は、
滞空期を含む前記ロボット装置の重心の運動方程式を算出する、
前記(1)に記載の情報処理装置。
(5)
前記算出部は、
前記ロボット装置がN歩先に到達してから時間的無限遠が経過したときにN歩先の前記ロボット装置の重心がN歩先の前記ロボット装置の前記計画支持点位置の真上で静止するという拘束条件の下で、N歩先の前記ロボット装置の重心の運動方程式を解くことで、前記着床点変更量および前記圧力中心点変更量を算出する、
前記(2)に記載の情報処理装置。
(6)
前記算出部は、
N歩先の前記ロボット装置の姿勢および移動と(N-1)歩先の前記ロボット装置の姿勢および移動が一致するという拘束条件の下で、N歩先の前記ロボット装置の重心の運動方程式を解くことで、前記着床点変更量および前記圧力中心点変更量を算出する、
前記(1)に記載の情報処理装置。
(7)
前記算出部は、
前記着床点変更量の最小値および前記圧力中心点変更量の最小値を算出する、
前記(1)に記載の情報処理装置。
(8)
前記ロボット装置は、4つの前記脚部を備える脚式のロボット装置である、
前記(1)に記載の情報処理装置。
(9)
演算処理装置によって、
1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、または前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出することと、
算出した前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御することと、
を含む情報処理方法。
(10)
コンピュータを、
1以上の脚部を備えるロボット装置の現在の遊脚が次に着床する着床点位置の計画着床点位置からの着床点変更量、または前記ロボット装置の現在の接地脚が発生すべき圧力中心点位置の目標圧力中心点位置からの圧力中心点変更量を算出する算出部と、
前記算出部によって算出された前記着床点変更量または前記圧力中心点変更量のうち少なくともいずれか一方に基づいて、前記ロボット装置の姿勢および移動を制御する動作制御部と、
として機能させるプログラム。
【符号の説明】
【0137】
1 ロボット装置
11 入力部
12 駆動部
13 トルク検出部
100 情報処理装置
110 制御部
111 生成部
112 推定部
113 算出部
114 駆動制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【手続補正書】
【提出日】2021-07-02
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正の内容】
図1
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正の内容】
図4
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正の内容】
図5
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図13
【補正方法】変更
【補正の内容】
図13