(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022110261
(43)【公開日】2022-07-29
(54)【発明の名称】移動装置、および移動装置制御方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20220722BHJP
G05D 1/02 20200101ALI20220722BHJP
B25J 5/00 20060101ALI20220722BHJP
【FI】
B25J13/00 Z
G05D1/02 Z
B25J5/00 C
B25J5/00 A
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021005545
(22)【出願日】2021-01-18
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100093241
【弁理士】
【氏名又は名称】宮田 正昭
(74)【代理人】
【識別番号】100101801
【弁理士】
【氏名又は名称】山田 英治
(74)【代理人】
【識別番号】100086531
【弁理士】
【氏名又は名称】澤田 俊夫
(74)【代理人】
【識別番号】100095496
【弁理士】
【氏名又は名称】佐々木 榮二
(74)【代理人】
【識別番号】110000763
【氏名又は名称】特許業務法人大同特許事務所
(72)【発明者】
【氏名】高杉 憲明
(72)【発明者】
【氏名】木下 将也
【テーマコード(参考)】
3C707
5H301
【Fターム(参考)】
3C707CS08
3C707HS27
3C707KS10
3C707KS15
3C707KS16
3C707KS35
3C707KT01
3C707KT02
3C707KV01
3C707KX10
3C707LS15
3C707LV12
3C707WA14
3C707WA15
3C707WA16
3C707WA22
3C707WK04
3C707WL04
3C707WL11
3C707WL14
5H301AA02
5H301BB14
5H301CC03
5H301CC06
5H301CC10
5H301GG09
5H301GG12
(57)【要約】
【課題】階段等の走行面であっても脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させることを可能とする。
【解決手段】脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を交互に入れ替えて走行する脚車輪ロボットの走行面情報を取得し、脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させるための脚の軌道情報を生成する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
脚先に車輪を備えた複数の脚を有する脚車輪ロボットを駆動する制御情報を生成するデータ処理部を有し、
前記データ処理部は、
前記脚車輪ロボットの走行面情報を取得し、
前記走行面情報を利用して、前記脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、
前記脚車輪ロボットの各脚を、各脚対応の移動範囲に接地させて走行させるための各脚の軌道情報を生成する移動装置。
【請求項2】
前記脚車輪ロボットは、
脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を交互に入れ替えて走行する構成であり、
前記データ処理部は、
前記走行面情報を利用して、前記脚車輪ロボットの脚が接地期に走行面に接地して走行可能な各脚対応の移動範囲を算出する請求項1に記載の移動装置。
【請求項3】
前記データ処理部は、
前記脚車輪ロボットを予め規定した目標速度に従って走行させるための各脚対応の移動範囲を算出する請求項1に記載の移動装置。
【請求項4】
前記データ処理部は、
前記脚車輪ロボットを予め規定した歩容パラメータに従って走行させるための各脚対応の移動範囲を算出する請求項1に記載の移動装置。
【請求項5】
前記歩容パラメータは、
前記脚車輪ロボットの各脚について、脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を規定したパラメータである請求項4に記載の移動装置。
【請求項6】
前記データ処理部は、
前記脚車輪ロボットを予め規定した目標速度と、予め規定した歩容パラメータに従って走行させるための各脚対応の目標移動範囲を算出する目標歩容生成部と、
前記目標移動範囲を修正する移動可能範囲決定部を有し、
前記移動可能範囲決定部は、
前記走行面情報を利用して、前記脚車輪ロボットの脚が前記目標移動範囲を走行面に接地して走行可能か否かを判定し、
前記目標移動範囲が走行面に接地して走行可能な移動範囲でない場合、
前記目標移動範囲を走行面に接地して走行可能な移動範囲に修正する請求項1に記載の移動装置。
【請求項7】
前記移動可能範囲決定部は、
前記目標移動範囲が、高さの異なる複数の階段面を含む走行面である場合、前記目標移動範囲が走行面に接地して走行可能な移動範囲でないと判定し、
前記目標移動範囲を、1つの階段面内の移動範囲に修正する請求項6に記載の移動装置。
【請求項8】
前記移動可能範囲決定部は、
複数の離間した目標移動範囲が1つの階段面に属している場合、前記複数の離間した目標移動範囲を連結して1つの移動範囲に修正する請求項6に記載の移動装置。
【請求項9】
前記移動可能範囲決定部は、
前記脚車輪ロボットの内部状態を検出する状態センサの検出情報に基づくロボット状態と、
前記脚車輪ロボットの外部の環境情報を検出する環境センサの検出情報に基づく外部環境情報を入力し、
入力情報を利用して、前記脚車輪ロボットの脚が前記目標移動範囲を走行面に接地して走行可能か否かを判定する請求項6に記載の移動装置。
【請求項10】
前記データ処理部は、
前記移動可能範囲決定部が決定した前記脚車輪ロボットの各脚対応の移動範囲に基づいて、前記脚車輪ロボットの各脚対応の軌道を生成する軌道生成部を有する請求項6に記載の移動装置。
【請求項11】
前記軌道生成部は、
前記移動可能範囲決定部が決定した前記脚車輪ロボットの移動範囲を参照して、各脚先端の車輪が前記移動範囲に設定されるという条件を満たし、かつ、予め規定された目標速度に従って移動が可能となる各脚の軌道を生成する請求項10に記載の移動装置。
【請求項12】
前記軌道生成部は、
非線形計画法を用いた軌道の最適化処理を実行する請求項11に記載の移動装置。
【請求項13】
前記軌道生成部は、
非線形計画法を用いた軌道の最適化処理の代表的手法である二次計画法(QP:Quadratic Programming)を用いて軌道の最適化処理を実行する請求項12に記載の移動装置。
【請求項14】
前記データ処理部は、
前記軌道生成部が生成した各脚の軌道情報に従って、各脚を移動させる各脚対応の駆動情報を生成して各脚を駆動する駆動部を有する請求項10に記載の移動装置。
【請求項15】
脚先に車輪を備えた複数の脚を有する脚車輪ロボットの移動制御を実行する移動装置制御方法であり、
前記移動装置のデータ処理部が、
前記脚車輪ロボットの走行面情報を取得し、
前記走行面情報を利用して、前記脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、
前記脚車輪ロボットの各脚を、各脚対応の移動範囲に接地させて走行させるための各脚の軌道情報を生成する移動装置制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、移動装置、および移動装置制御方法に関する。具体的には脚先に車輪が装着され、車輪の回転駆動と脚を前後に移動させる脚駆動の双方を行って移動する脚車輪ロボット等の移動装置、および移動装置制御方法に関する。
【背景技術】
【0002】
脚を前後に移動させて移動する歩行型の脚走行と、車輪を回転させて移動する車輪走行の2の異なるタイプの走行処理を可能としたロボットとして、脚先に車輪を装着した脚車輪ロボットがある。
【0003】
脚車輪ロボットは、エネルギー高効率化と、不整地踏破性能を兼ね備えた移動体である。
脚車輪ロボットは、走行面の凹凸が少ない整地部分は車輪で移動し、階段や段差の多い走行面などは脚と車輪を協調動作させて移動することが可能であり、様々な走行路を移動することができる。
【0004】
しかし、車輪を回転させながら同時に脚を移動させる動作、すなわち車輪移動と脚移動を並列に行うとロボットのバランスが維持できなくなる可能性が高まる。
例えば階段を昇る場合、車輪や胴体を停止させることなく、階段の段差を踏み越える動作を行うことが理想的である。しかし、この場合、ロボットのいずれかの脚で車輪走行を継続しながら、その他のいずれかの脚を接地面から離して上げるという動作が必要であり、ロボットのバランスを維持して足を上げるタイミングを決めなければならず、高度な制御が必要となる。
【0005】
例えば、前後に3本ずつの脚車輪を持つ6脚車輪ロボットが階段を昇る場合、ロボットの静的安定性を維持するためには、少なくとも3脚以上を接地させて移動する必要がある。
【0006】
しかし、例えば、ロボットの走行中にロボットの6本の脚全てが同時に階段の壁に近づいてしまう場合も想定される。このような場合、ロボットは、一旦、停止して3輪ずつ交互に脚を上げざるを得ない。
ロボットが停止処理をすると、結果として、ロボットの移動速度が低下してしまう。
【0007】
脚車輪ロボットの階段踏破に関する従来技術として、例えば、特許文献1(特開2007-130701号公報)や、特許文献2(特開平10-236350号公報)がある。
【0008】
特許文献1(特開2007-130701号公報)は、階段の壁からある決められたマージンの位置を測距センサによって測定し、その位置まで車輪移動を行い、所定の位置まで着いたら脚移動を行う構成を開示している。
動作の順番としては両脚支持期と遊脚移動を伴う単脚支持期と車輪移動の3パターンを繰り返して階段踏破を行う。
【0009】
しかし、この特許文献1に記載の構成は、車輪を停止してから脚移動を行うことが前提であり、動作が低速になるという問題点がある。
例えば、片方の脚先車輪が次の段差を踏むまではもう片方の脚先車輪は停止せざるを得ない。また、この特許文献1に記載の構成は、単脚支持の場合、車輪移動を行わない構成であり、この構成も低速動作の原因となっている。
さらに、車輪が壁に到達するたびに毎回停止する構成であり、加減速を繰り返し行うことになり、スムーズな移動ができないという問題点もある。
【0010】
また、特許文献2(特開平10-236350号公報)は、垂直方向に伸縮可能な脚と走行車輪による階段踏破方法を開示している。水平方向の車輪移動と垂直方向の脚伸縮動作を繰り返すことで階段昇降を可能としている。
【0011】
しかし、この特許文献2に記載のロボットは脚間距離を調節できないロボットであり、段差を乗り越えるための脚の上下運動の前に一旦停止をすることが必要となる。
そのため、脚移動しながら車輪移動はできず、低速な動作しかできない。
【0012】
上記の特許文献1,2に示される従来技術は、いずれもロボットが階段を踏み越えるために車輪を一旦停止する動作を必要としている。
このため、結果としてロボットの移動速度が低下してしまうという問題が発生する。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2007-130701号公報
【特許文献2】特開平10-236350号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
本開示は、例えば上記問題点に鑑みてなされたものであり、車輪駆動と脚駆動を行う脚車輪ロボットの移動を高速にかつスムーズに行うことを可能とする移動装置、および移動装置制御方法を提供することを目的とする。
【0015】
例えば、本開示の一実施例においては、未来にロボットが移動する位置を予測し、その移動範囲の環境情報から安全に移動可能な時間空間的な範囲を予測し、その範囲を守って滑らかに移動することで、階段と干渉せずかつ高速に移動する動作方法を実現する。
【課題を解決するための手段】
【0016】
本開示の第1の側面は、
脚先に車輪を備えた複数の脚を有する脚車輪ロボットを駆動する制御情報を生成するデータ処理部を有し、
前記データ処理部は、
前記脚車輪ロボットの走行面情報を取得し、
前記走行面情報を利用して、前記脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、
前記脚車輪ロボットの各脚を、各脚対応の移動範囲に接地させて走行させるための各脚の軌道情報を生成する移動装置にある。
【0017】
さらに、本開示の第2の側面は、
脚先に車輪を備えた複数の脚を有する脚車輪ロボットの移動制御を実行する移動装置制御方法であり、
前記移動装置のデータ処理部が、
前記脚車輪ロボットの走行面情報を取得し、
前記走行面情報を利用して、前記脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、
前記脚車輪ロボットの各脚を、各脚対応の移動範囲に接地させて走行させるための各脚の軌道情報を生成する移動装置制御方法にある。
【0018】
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0019】
本開示の一実施例の構成によれば、階段等の走行面であっても脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させることを可能とする構成が実現される。
具体的には、例えば、脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を交互に入れ替えて走行する脚車輪ロボットの走行面情報を取得し、脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させるための脚の軌道情報を生成する。
本構成により、階段等の走行面であっても脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させることを可能とする構成が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
【図面の簡単な説明】
【0020】
【
図1】本開示の移動装置の一例である6脚型の脚車輪ロボットの構成例について説明する図である。
【
図2】本開示の移動装置の一例である6脚型の脚車輪ロボットの構成例について説明する図である。
【
図3】本開示の移動装置の一例である4脚型の脚車輪ロボットの構成例について説明する図である。
【
図4】本開示の移動装置の一例である4脚型の脚車輪ロボットの構成例について説明する図である。
【
図5】本開示の移動装置の一例である6脚型の脚車輪ロボットの走行例について説明する図である。
【
図6】本開示の移動装置の構成と処理について説明する図である。
【
図7】歩容パラメータの一例について説明する図である。
【
図8】歩容パラメータに従ったロボットの走行処理例について説明する図である。
【
図9】脚車輪ロボットが階段を走行する例について説明する図である。
【
図10】脚の接地期間に接地走行する目標移動範囲について説明する図である。
【
図11】脚の接地期間に接地走行する目標移動範囲について説明する図である。
【
図12】移動可能範囲決定部の実行する処理の具体例について説明する図である。
【
図13】走行面が階段である場合に目標移動範囲通りの走行ができない理由について説明する図である。
【
図14】移動可能範囲決定部が実行する修正移動範囲の生成処理の具体例について説明する図である。
【
図15】
図14に示す時間t2のタイミングにおける脚車輪ロボットの前中脚(FM)の動きの具体例について説明する図である。
【
図16】複数の離間した目標移動範囲を連結して1つの接地期間対応の修正移動範囲として設定する処理例について説明する図である。
【
図17】移動可能範囲決定部による目標移動範囲の修正前後の移動範囲設定の差異について説明する図である。
【
図18】軌道生成部が実行する脚軌道生成処理の具体例について説明する図である。
【
図19】軌道生成部が実行する脚軌道生成処理の具体例について説明する図である。
【
図20】軌道生成部が実行する脚軌道生成処理の具体例について説明する図である。
【
図21】脚車輪ロボットがらせん状の階段を昇る場合の処理例について説明する図である。
【
図22】らせん階段を6脚型の脚車輪ロボット1が昇って走行する場合に、目標歩容生成部が生成する目標歩容データの例について説明する図である。
【
図23】各脚の接地期における目標移動範囲を実際の走行面を考慮して修正して生成した修正移動範囲のデータ例を示す図である。
【
図24】本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて説明するフローチャートを示す図である。
【
図25】本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて説明するフローチャートを示す図である。
【
図26】本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて説明するフローチャートを示す図である。
【
図27】本開示の移動装置のハードウェア構成例について説明する図である。
【
図28】本開示の移動装置とサーバからなるシステム構成例について説明する図である。
【
図29】本開示の移動装置とサーバからなるシステム構成におけるサーバのハードウェア構成例について説明する図である。
【発明を実施するための形態】
【0021】
以下、図面を参照しながら本開示の移動装置、および移動装置制御方法の詳細について説明する。なお、説明は以下の項目に従って行なう。
1.本開示の移動装置の概要について
2.本開示の移動装置の構成例と実行する処理について
3.目標歩容生成部と、移動可能範囲決定部と、軌道生成部の実行する処理の詳細について
4.その他の実施例について
5.本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて
6.本開示の移動装置のハードウェア構成例について
7.本開示の構成のまとめ
【0022】
[1.本開示の移動装置の概要について]
まず、
図1以下を参照して本開示の移動装置の概要について説明する。
図1は本開示の移動装置の一例である脚車輪ロボット100aを示す図である。
図1に示す脚車輪ロボット100aは前方に3本の脚101、後方に3本の脚101を有する6脚型の脚車輪ロボットの構成例である。
【0023】
各脚101の先端には車輪102が装着されている。車輪102を回転させることで車輪走行が可能であり、また、脚101を持ち上げて前後に動かすことで脚移動、すなわち歩行走行を行なうことが可能である。
【0024】
図1に示すように、脚車輪ロボット100aは、体幹部(胴体)110とセンサ(カメラ)120を有している。体幹部110はロボットの胴体である。
【0025】
体幹部110には、ロボットを制御するための制御装置(情報処理装置)が搭載されている。さらに、例えば慣性計測装置(IMU:Inertial Measurement Unit)が搭載されており、制御装置はIMUの計測データを利用してロボットの自己位置の算出等を行い、算出結果に基づいてロボットの駆動制御を行う。
【0026】
センサ120は、例えばロボットの進行方向の環境認識を行うための3次元センサ等のセンサであり、例えば画像を撮影するカメラによって構成される。
【0027】
なお、センサ120としては、例えば、ステレオカメラ、全方位カメラ、赤外カメラ、LiDAR(Light Detection and Ranging)、TOF(Time of Flight)センサなどのいずれか、またはこれらの組み合わせ構成が利用可能である。
なお、LiDAR、TOFセンサは、いずれもオブジェクト距離を計測可能なセンサである。
【0028】
図1に示す脚車輪ロボット100aの詳細構成について、
図2を参照して説明する。
図2には、
図1に示す脚車輪ロボット100aの、
(a)前面図
(b)側面図
(c)背面図
これらの3つの図を示している。
【0029】
各図に示すように、6本の脚101の先端には車輪102が装着されている。
さらに6本の脚101の上端には回動関節103、中間部には直動関節104が設けられている。
【0030】
脚上端の回動関節103は、各々の脚101を前後方向に回動させ、さらに水平左右方向にも回動させることを可能とした関節部である。
各々の脚101を前後方向に回動させることで、ロボットの脚による移動、すなわち歩行走行が可能となる。
また、各々の脚101を水平左右方向に回動させることで、ロボットの進行方向を制御することが可能となる。
【0031】
一方、脚中間部の直動関節は、各々の脚101の長さを制御可能として関節であり、脚長さ方向に伸縮させることを可能とした関節部である。
これら関節部の制御は、ロボット内部の制御部において実行される。
【0032】
先に
図1を参照して説明したように、体幹部110には、ロボットを制御するための制御装置(情報処理装置)が搭載されている。制御装置は、関節部103,104各々に搭載された位置センサやエンコーダの検出信号を入力し、入力信号の解析により、各脚の位置(3次元位置)や動きを解析し、解析結果に基づいて各脚の関節部を駆動制御する。
【0033】
なお、各関節部や脚先にトルクセンサや力センサを装着し、制御装置(情報処理装置)に検出情報を入力し、制御装置(情報処理装置)において各脚の関節部の駆動制御に利用する構成としてもよい。
【0034】
なお、以下の実施例では、ロボットの体幹部110内にロボットを制御、駆動するための制御装置(情報処理装置)を備え、ロボット単独でロボットの駆動制御を行う構成例について説明するが、本開示の処理は、このような構成に限らず、例えばロボットと通信可能なサーバ等の外部装置がロボットの制御を行う構成にも適用可能である。
【0035】
図1、
図2を参照して説明した脚車輪ロボット100aは6脚タイプの脚車輪ロボットであるが、脚の数は様々な設定が可能である。
例えば
図3には、4脚型の脚車輪ロボット100bを示している。
図3に示す脚車輪ロボット100bは前方に2本の脚101、後方に2本の脚101を有する4脚型の脚車輪ロボットの構成例である。
【0036】
各脚101の先端には車輪102が装着されている。車輪102を回転させることで車輪走行が可能であり、また、脚101を持ち上げて前後に動かすことで脚移動、すなわち歩行走行を行なうことが可能である。
【0037】
図3に示す脚車輪ロボット100bも、先に
図1、
図2を参照して説明した6脚型の脚車輪ロボット100aと同様、体幹部(胴体)110とセンサ(カメラ)120を有している。
【0038】
図3に示す脚車輪ロボット100bの詳細構成について、
図4を参照して説明する。
図4には、
図3に示す脚車輪ロボット100bの、
(a)前面図
(b)側面図
(c)背面図
これらの3つの図を示している。
【0039】
各図に示すように、4本の脚101の先端には車輪102が装着されている。
さらに4本の脚101の上端には回動関節103、中間部には直動関節104が設けられている。
【0040】
脚上端の回動関節103は、各々の脚101を前後方向に回動させ、さらに水平左右方向にも回動させることを可能とした関節部である。
各々の脚101を前後方向に回動させることで、ロボットの脚による移動、すなわち歩行走行が可能となる。
また、各々の脚101を水平左右方向に回動させることで、ロボットの進行方向を制御することが可能となる。
【0041】
一方、脚中間部の直動関節は、各々の脚101の長さを制御可能として関節であり、脚長さ方向に伸縮させることを可能とした関節部である。
これら関節部の制御は、ロボット内部の制御部において実行される。
【0042】
図1~
図4を参照して、本開示の移動装置の一例である脚車輪ロボット100の構成例について説明した。
本開示の移動装置は、このように複数の脚に車輪を装着したロボットであり、車輪を回転させることで車輪走行が可能であり、また、脚を持ち上げて前後に動かすことで脚移動、すなわち歩行走行を行なうことが可能な構成である。
【0043】
図5を参照して、本開示の移動装置である脚車輪ロボットの走行例について説明する。
図5には階段を昇る6脚型の脚車輪ロボット100aを示している。
【0044】
一般的に、脚車輪ロボットが階段の昇降を行う場合、階段の段差を昇るタイミング、あるいは降りるタイミングにおいて、一旦、ロボットを停止させるという動作制御が行われる場合が多い。
その理由は、ロボットを停止させずに脚を上げてしまうと、ロボットがバランスを崩し、倒れてしまう可能性があるからである。
【0045】
転倒の可能性をなくすため、ロボットを停止させ、ロボットの姿勢制御を行い、その後、上げる脚を選択して、その脚を上げた場合のバランスを考慮した姿勢に変更し、その後、脚を上げるといった動作シーケンスが行われるのが一般的である。
しかし、このような動作シーケンスを階段の段差ごとに行うと、ロボットの移動速度が著しく低下してしまう。
【0046】
本開示の移動装置である脚車輪ロボットは、このような移動速度の低下を防止し、できるだけ停止動作を伴うことなく階段の昇降を可能とした構成を持つ。
以下、本開示の脚車輪ロボットの詳細構成と処理について説明する。
【0047】
[2.本開示の移動装置の構成例と実行する処理について]
次に、本開示の移動装置の構成例と実行する処理について説明する。
【0048】
図6は、本開示の移動装置の構成の一例について説明するブロック図である。
図6に示す移動装置200は、例えば
図1~
図4を参照して説明した脚車輪ロボットである。
【0049】
図6に示すように、移動装置200は、状態センサ201、環境センサ202、入力部211、記憶部212、通信部213、データ処理部220、関節部231、車輪部232を有する。
データ処理部220は、内部状態推定部221、外部環境推定部222、目標歩容生成部223、移動可能範囲決定部224、軌道生成部225、駆動部226を有する。
【0050】
状態センサ201は、ロボットの内部状態、例えば位置や速度、加速度、傾き、重心位置等の内部状態を観測するためのセンサ、例えば慣性計測装置(IMU:Inertial Measurement Unit)等のセンサや、ロボットの脚の関節部に搭載された位置センサやエンコーダを含む。
状態センサ201の取得情報は、データ処理部220の内部状態推定部221に入力される。
【0051】
環境センサ202は、ロボットの外部環境を解析するための情報を祝するセンサであり、例えば、ステレオカメラ、全方位カメラ、赤外カメラ、LiDAR(Light Detection and Ranging)、TOF(Time of Flight)センサなどのいずれか、またはこれらの組み合わせ構成である。
なお、LiDAR、TOFセンサは、いずれもオブジェクト距離を計測可能なセンサである。
【0052】
環境センサ202の取得情報は、データ処理部220の外部状態推定部222に入力される。
【0053】
データ処理部220には、さらに、移動速度情報215が入力される。この移動速度情報215は予め規定された予定のロボットの移動速度である。移動速度情報215は入力部211を介してユーザ(オペレータ)が入力してもよいし、予め記憶部212に格納された情報を利用してもよい。あるいは、通信部213を介して外部のサーバなどの制御装置から受信して入力する構成としてもよい。
【0054】
次にデータ処理部220の構成と処理について説明する。
このデータ処理部220は、先に
図1等を参照して説明したロボットの体幹部(胴体)110内の制御装置(情報処理装置)内に構成される。
なお、前述したように、
図6に示すデータ処理部220は例えばロボットと通信可能なサーバ等の外部装置に設定する構成としてもよい。
【0055】
データ処理部220は、内部状態推定部221、外部環境推定部222、目標歩容生成部223、移動可能範囲決定部224、軌道生成部225、駆動部226を有する。
【0056】
内部状態推定部221は、状態センサ201の検出情報を入力し、ロボットの状態を解析する。
具体的には、ロボットの位置や速度、加速度、傾き、重心位置等の内部状態を解析する。
さらに、ロボットの脚の関節部に搭載された位置センサやエンコーダからの入力情報を解析して、各脚の位置(3次元位置)や動きを解析する。
【0057】
具体的には、内部状態推定部221は、IMUやエンコーダなどのセンサ情報を取得してロボットの現在の体幹の位置姿勢、足先の位置、またその微分情報(速度、加速度等)を推定する。さらに得られた体幹情報を利用して重心位置や速度を計算する。
なお、内部状態推定部221は3次元センサなどの外界センサ情報から体幹の位置姿勢を推定する処理を行ってもよい。
【0058】
内部状態推定部221の解析結果は、移動可能範囲決定部224に入力される。
例えば、ロボットの現在の体幹の位置姿勢、重心位置、速度、各脚の位置、速度、加速度等の内部状態情報が移動可能範囲決定部224に入力される。
【0059】
外部環境推定部222は、環境センサ202の検出情報を入力し、ロボット外部の環境を解析する。
【0060】
外部環境推定部222は、カメラやレーダー等の3次元センサによって構成される環境センサ203からセンサ検出情報を入力して外部環境を推定する。具体的には、ロボットの走行面や進行方向のオブジェクトの3次元形状を解析する。
【0061】
外部環境推定部222は、例えば、カメラやレーダー等の3次元センサによって構成される環境センサ203からの入力する時系列データを順次、合成することで、ロボット周囲の広範囲の環境情報(地図情報)を生成する。
【0062】
外部環境推定部222は、環境センサ203からの入力する時系列データを順次、合成することで、例えばハイトマップ(Height Map)のような地図を生成する。ハイトマップ(Height Map)とは、xy水平面の2次元座標(x,y)の代表座標位置に高さデータ(z)を対応付けて記録した地図データである。
【0063】
なお、ハイトマップは、外部環境推定部222が生成する環境情報としての3次元地図の一例であり、外部環境推定部222が生成する環境情報としては、ハイトマップに限らず、3次元点群(PC:Point Cloud)や、ボクセル表現、物体検出を用いたプリミティブ形状群など、様々な表現形式が利用可能である。
外部環境推定部222が生成した環境情報、例えば3次元地図データは、移動可能範囲決定部224に入力される。
【0064】
目標歩容生成部223は、移動速度情報215に基づいて目標歩容データを生成する。
前述したように、移動速度情報215は予め規定された予定のロボットの移動速度であり、入力部211を介してユーザ(オペレータ)が入力してもよいし、予め記憶部212に格納された情報を利用してもよい。あるいは、通信部213を介して外部のサーバなどの制御装置から受信して入力してもよい。
【0065】
目標歩容生成部223は、この移動速度情報215と、予め規定された目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を決定する。
【0066】
目標歩容データの生成に用いる目標歩容パラメータの一例を
図7に示す。目標歩容パラメータは、目標歩容生成部223あるいはデータ処理部220内のメモリから取得する。あるいは入力部211、記憶部212、通信部213を介して入力してもよい。
【0067】
図7には、縦軸に各脚、横軸に時間を設定したチャートを示している。このチャートには、ロボットの各脚の接地期と、遊脚期を示している。
接地期は、脚の先端の車輪部が走行面に接地し、車輪の回転による車輪走行が可能となる期間である。
一方、遊脚期は、脚の先端の車輪部が走行面に接地せず、離れた状態であり、車輪の回転による車輪走行が不可能となる期間である。
FL,FR,FM,RL,RR,RMはそれぞれ前左足、前右足、前中足、後左足、後右足、後中足を示している。横軸は時間、または時間を正規化した比率を示している。
【0068】
接地期と遊脚期の切り替えタイミングでは、例えば各脚の直動関節104を制御して脚の長さを変更する処理や、回動関節103を回動させる処理等が実行され、これらの制御により、各脚の走行面に対する接地処理や、走行面からの離間処理が行われることになる。
【0069】
なお、遊脚期においては、例えば回動関節103を回動させることで、脚を前後に回動させることが可能となる。例えば脚を前方向に回動させて、その後の接地期開始タイミングで直動関節を制御して脚の長さを長くして接地することで歩行による前進が可能となる。
【0070】
図7には、0.1単位時間の10単位(0.1~1.0)の期間における6脚型の脚車輪ロボットの6脚各々の、接地期と遊脚期を示している。
【0071】
具体的には、以下のように、6脚各々の接地期と遊脚期が設定されている。
時間0.1~0.5の期間は、
FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が遊脚期,
FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が接地期であり、
時間0.6~1.0の期間は、
FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が遊脚期、
FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が接地期,
このように6脚型の脚車輪ロボットの6脚各々の接地期と遊脚期を設定したデータである。
【0072】
図7に示すチャートは、3脚ごとに接地期と遊脚期を交互に切り替えて走行するシーケンスを示している。このシーケンスが目標となる脚の動作シーケンスを規定するデータ、すなわち目標歩容パラメータである。
【0073】
なお、
図7には、3脚ごとに接地期と遊脚期を交互に切り替える走行シーケンスの時間0.1~1.0の間の1回の切り替え単位のデータのみを示しているが、ロボットが継続走行する場合は、
図7に示す3脚ごとの接地期、遊脚期の交互切り替え走行を繰り返して実行することになる。
【0074】
6脚型の脚車輪ロボット100aが、
図7に示す目標歩容パラメータに従って走行する場合の具体例を
図8に示す。
図8には、6脚型の脚車輪ロボット100aが水平な走行面を速度Vで等速走行している例を示している。
【0075】
図8には、4つの時間帯、すなわち、
時間=t1~t2
時間=t2~t3
時間=t3~t4
時間=t4~t5
これら4つの時間帯における脚車輪ロボット100aの走行状態を示している。
【0076】
時間t1~t2は、
図7に示す時間=0.1~0.5に相当する時間である。
図7の歩容パラメータの設定は、
FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が遊脚期,
FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が接地期、
上記設定である。
【0077】
図8に示す時間t1~t2の脚車輪ロボット100aは、この歩容パラメータに従った設定であり、FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が走行面に接地していない状態、すなわち遊脚状態に設定されている。
一方、その他のFM(前中脚),RL(後右脚),RM(後中脚)の3本の脚は走行面に接地した状態であり、脚車輪ロボット100aは、これらの3本の接地された脚の先端の車輪の回転によって速度Vで走行する。
【0078】
次の時間t2~t3は、
図7に示す時間=0.6~1.0に相当する時間である。
図7の歩容パラメータの設定は、
FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が接地期,
FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が遊脚期、
上記設定である。
【0079】
図8に示す時間t2~t3の脚車輪ロボット100aは、この歩容パラメータに従った設定であり、FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が走行面に接地していない状態、すなわち遊脚状態に設定されている。
一方、その他のFL(前左脚),FR(前右脚),RR(後右脚)の3本の脚は走行面に接地した状態であり、脚車輪ロボット100aは、これらの3本の接地された脚の先端の車輪の回転によって速度Vで走行する。
【0080】
次の時間t2~t3は、時間t0~t1と同様、
図7に示す時間=0.1~0.5に相当する時間となる。すなわち、
図7の歩容パラメータの設定は、
FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が遊脚期,
FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が接地期、
上記設定である。
【0081】
図8に示す時間t3~t4の脚車輪ロボット100aは、この歩容パラメータに従った設定であり、FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が走行面に接地していない状態、すなわち遊脚状態に設定されている。
一方、その他のFM(前中脚),RL(後右脚),RM(後中脚)の3本の脚は走行面に接地した状態であり、脚車輪ロボット100aは、これらの3本の接地された脚の先端の車輪の回転によって速度Vで走行する。
【0082】
次の時間t3~t4は、時間t1~t2と同様、
図7に示す時間=0.5~1.05に相当する時間となる。
以下、同様の処理が繰り返し実行され、ロボットは、3本の脚の遊脚期と接地期を交互に入れ替えながら、継続して走行することができる。
【0083】
このように、目標歩容生成部223は、予め規定された移動速度情報215と、
図7に示す予め規定された目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を「目標歩容」、すなわち、目標動作シーケンスとして決定する。
【0084】
目標歩容生成部223が決定した「目標歩容」、すなわち、目標動作シーケンス情報は、移動可能範囲決定部224に入力される。
【0085】
移動可能範囲決定部224は、以下の各情報を入力する。
(a)内部状態推定部221から、ロボットの現在の体幹の位置姿勢、重心位置、速度、各脚の位置、速度、加速度等の内部状態情報、
(b)外部環境推定部222が生成した3次元地図データ等の環境情報、
(c)目標歩容生成部223が生成した目標の脚先位置や体幹位置、姿勢などの目標軌道を示す目標歩容(目標の脚先位置や体幹位置、姿勢などの目標軌道)、
【0086】
移動可能範囲決定部224は、これらの入力情報(a)~(c)を利用して、ロボットを目標速度で移動可能となるように入力した「目標歩容(目標の脚先位置や体幹位置、姿勢などの目標軌道)」を修正して、ロボットの各脚の先端の車輪の移動可能範囲を決定する。
この移動可能範囲決定部224の実行する処理の詳細については、後段で説明する。
【0087】
移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲情報は、軌道生成部225に入力される。
【0088】
軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道を生成する。
この軌道生成部225の実行する処理の詳細についても、後段で説明する。
【0089】
軌道生成部225が生成したロボット各脚の軌道情報は、駆動部226に入力される。
駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に従って、各脚を移動させる各脚対応の駆動情報を生成して各脚を駆動する。
なお、駆動部226が生成する駆動情報には、各脚の関節の駆動情報と、各脚の車輪の駆動情報が含まれる。
【0090】
なお、ロボットの関節を駆動するための駆動方法には複数の駆動方法がある。
具体的な関節駆動方法として力制御型関節駆動と、位置制御型関節駆動の2種類がある。
【0091】
駆動部226が力制御型関節駆動を行う駆動部の場合には、駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に基づいて、その軌道を実現するために必要となる関節トルクを計算して、計算結果の関節トルクに従った制御信号を関節部231に出力して関節部を駆動する。
【0092】
一方、駆動部226が位置制御型関節駆動を行う駆動部の場合には、駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に基づいて、その軌道を実現するために必要となる関節トルクと関節位置、速度の両者を計算して、計算結果の関節トルクと関節位置、速度に従った制御信号を関節部231に出力して関節部を駆動する。
【0093】
なお、駆動部226は、制御信号の計算結果に基づいて関節部231のアクチュエータや車輪部232を駆動することになるが、この駆動制御に際しては、関節部231のトルクセンサや足先の力センサのフィードバック情報を用いたフィードバック制御を行う構成としてもよい。
【0094】
なお、
図6に示すデータ処理部220による間接部231や車輪部232に対する駆動制御の制御周期は、ハードウェアやCPUの計算処理の性能に依存する。
【0095】
また、各センサからの入力情報に対する処理周期、すなわち、
図6に示すデータ処理部220内の内部状態推定部221や、外部環境推定部222の処理周期は、異なる周期としてもよい。
【0096】
例えば環境センサ202を構成する3次元センサや、外部環境推定部222は扱うデータ量が大きいため、10~100msオーダーの周期で処理を実行し、
一方、状態センサ201を構成するIMUやエンコーダは、より早い制御周期で情報を取得可能であり、内部状態推定部221は1msより早い周期で処理を実行するような異なる周期設定での処理が可能である。
【0097】
[3.目標歩容生成部と、移動可能範囲決定部と、軌道生成部の実行する処理の詳細について]
次に、目標歩容生成部と、移動可能範囲決定部と、軌道生成部の実行する処理の詳細について説明する。
【0098】
以下では、先に
図6等を参照して説明した移動装置200のデータ処理部220に構成された目標歩容生成部223と、移動可能範囲決定部224と、軌道生成部225の実行する処理の詳細について説明する。
【0099】
先に
図6等を参照して説明したように、目標歩容生成部223は、移動速度情報215と、予め規定された目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を決定する。
【0100】
移動可能範囲決定部224は、目標歩容生成部223から入力した「目標歩容」すなわち、ロボットを目標速度で移動可能となるように入力した「目標歩容(目標の脚先位置や体幹位置、姿勢などの目標軌道)」を修正して、ロボットの各脚の先端の車輪の移動可能範囲を決定する。
【0101】
移動可能範囲決定部224は、以下の各情報を入力する。
(a)内部状態推定部221から、ロボットの現在の体幹の位置姿勢、重心位置、速度、各脚の位置、速度、加速度等の内部状態情報、
(b)外部環境推定部222が生成した3次元地図データ等の環境情報、
(c)目標歩容生成部223が生成した目標の脚先位置や体幹位置、姿勢などの目標軌道を示す目標歩容(目標の脚先位置や体幹位置、姿勢などの目標軌道)、
【0102】
移動可能範囲決定部224は、これらの入力情報(a)~(c)を利用して、ロボットを目標速度で移動可能となるように入力した「目標歩容(目標の脚先位置や体幹位置、姿勢などの目標軌道)」を修正して、ロボットの各脚の先端の車輪の移動可能範囲を決定する。
移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲情報は、軌道生成部225に入力される。
【0103】
軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道を生成する。
【0104】
以下では、目標歩容生成部223と、移動可能範囲決定部224と、軌道生成部225の実行する処理の詳細について、具体例を用いて説明する。
【0105】
図9に示すように、6脚型の脚車輪ロボット100aが階段を昇る走行を行うとする。
階段は階段面A,B,C,Dの順に高くなり、Aは高さZa、Bは高さZb、Cは高さZc、Dは高さZdである。
脚車輪ロボット100aは、階段面A~Dの順に階段を昇ってx方向に走行する。
【0106】
脚車輪ロボット100aのデータ処理部には、移動速度、すなわち
図6に示す移動速度情報215として、
速度=V、
が入力されているものとする。
すなわち、脚車輪ロボット100aは、
図9に示すx方向に向かって、目標速度=Vの等速走行を行うことを予定している。
【0107】
前述したように、目標歩容生成部223は、予め規定された移動速度情報215と、予め規定された目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を「目標歩容」、すなわち、目標動作シーケンスとして決定する。
【0108】
図9に示す例において、予め規定された移動速度情報215は、目標速度=Vである。
また、目標歩容パラメータは、
図7に示す予め規定された目標歩容パラメータ、すなわち3本の脚の遊脚期と接地期を交互に入れ替える設定としたパラメータである。
目標歩容生成部223は、この目標速度=Vと、
図7に示す目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を「目標歩容」、すなわち、目標動作シーケンスとして決定する。
【0109】
目標歩容生成部223は、目標速度=Vと、
図7に示す目標歩容パラメータに従った理想的な走行を行う場合の未来の足先位置の軌道を計算する。
すなわち、安定な最低支持脚数(本例では3脚)ずつ交互に遊脚期と接地期を交換しながら、速度=Vで等速運動すると仮定して、各脚の接地期の移動範囲を離散的に抽出する。
【0110】
先に
図7を参照して説明したように、6脚ロボットの場合、
(p)FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚、
(q)FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚、
上記(p),(q)の組み合わせで交互に遊脚期と接地期を交換しながら歩行することで常に3点接地を確保しつつ移動することができる。
【0111】
目標歩容生成部223は、上記のように、最低支持脚数(3脚)ずつ交互に遊脚期と接地期を交換しながら、速度=Vで等速運動すると仮定して、目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を「目標歩容」、すなわち、目標動作シーケンスとして決定する。この目標歩容算出処理に際して、各脚の接地期における移動範囲を算出する。
【0112】
目標歩容生成部223の実行する「目標歩容」生成処理において実行する各脚の接地期における移動範囲の算出処理の具体例について
図10以下を参照して説明する。
【0113】
目標歩容生成部223は、上記のように、最低支持脚数(3脚)ずつ交互に遊脚期と接地期を交換しながら、速度=Vで等速運動すると仮定して、各脚の接地期における移動範囲を算出する。
目標歩容生成部223は、6脚型の脚車輪ロボット100aの場合、6本の脚各々について、各脚の接地期における移動範囲を算出する。
【0114】
図10以下を参照して、6脚型の脚車輪ロボット100aの前中脚(FM)を解析対象とした場合の処理例、すなわち、前中脚(FM)の接地期における移動範囲の算出処理例について説明する。
【0115】
図10には、先に
図8を参照して説明した6脚型の脚車輪ロボット100aの走行態様の以下の各時間の状態を示している。
時間t0~t1、
時間t2~t3、
なお、
図10では、時間t1~t2の間は省略して示している。
【0116】
図10に示す、時間t0~t1と、時間t2~t3の2つの期間は、いずれも解析対象とする6脚型の脚車輪ロボット100aの前中脚(FM)が接地期の期間に相当する。
【0117】
すなわち、先に
図8を参照して説明したように、
時間t01~t1と、時間t2~t3は、
図7に示す時間=0.1~0.5に相当する時間である。この時間の
図7の歩容パラメータの設定は、
FL(前左脚),FR(前右脚),RR(後右脚)の3本の脚が遊脚期,
FM(前中脚),RL(後右脚),RM(後中脚)の3本の脚が接地期、
上記設定である。
すなわち、解析対象とする前中脚(FM)が接地期の期間に相当する。
【0118】
目標歩容生成部223は、6脚型の脚車輪ロボット100aが速度=Vで等速運動すると仮定して、前中脚(FM)の接地期における移動範囲を算出する。
【0119】
図10に示すように、時間t0~t1の接地期において、6脚型の脚車輪ロボット100aが速度=Vで等速運動すると、前中脚(FM)の移動範囲は、x0~x1となる。
また、時間t2~t3の接地期において、6脚型の脚車輪ロボット100aが速度=Vで等速運動すると、前中脚(FM)の移動範囲は、x2~x3となる。
なお、移動範囲は、解析対象とする前中脚(FM)がロボットに対して垂直下方向に延びた状態にあるものとして算出している。
【0120】
なお、前中脚(FM)の接地期間t0~t1の移動範囲x0~x1の長さ(距離)と接地期間t2~t3の移動範囲x2~x3の長さ(距離)は等しい。
これは、脚車輪ロボット100aは速度=Vで等速運動しているものと仮定しているからである。
【0121】
図11は、
図10に示すデータに加えて、時間t3以後の解析データについても示した図である。
【0122】
図11に示すように、前中脚(FM)の接地期間は、
時間=t0~t1,t2~t3,t4~t5,t6~t7,t8~t9
これらの各期間となる。
時間=t1~t2,t3~t4,t5~t6,t7~8、
これらの時間は前中脚(FM)の遊脚期間となる。
【0123】
前中脚(FM)は、接地期間である、
時間=t0~t1,t2~t3,t4~t5,t6~t7,t8~t9
これらの各時間において、脚先の車輪を回転させて走行面を移動する。
【0124】
前中脚(FM)が、これら各接地期間において移動する範囲は、
図11に示すように、以下の通りである。
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=x2~x3
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
【0125】
なお、脚車輪ロボット100aは速度=Vで等速運動しているものと仮定しているので、上記各時間の移動範囲の長さ(移動距離)は全て同一である。
【0126】
目標歩容生成部223は、上記のように、脚車輪ロボット100aが、
図6を参照して説明した移動速度情報215、すなわち、速度=Vで等速運動しているものと仮定して、各脚の接地期における目標となる移動範囲を算出し、各脚の目標移動範囲を含む「目標歩容」を生成する。
【0127】
目標歩容生成部223が算出した各脚の接地期における目標となる移動範囲を含む「目標歩容」は、移動可能範囲決定部224に入力される。
【0128】
移動可能範囲決定部224は、目標歩容生成部223から入力した「目標歩容」すなわち、ロボットを目標速度で移動させるための各脚の接地期における目標移動範囲を、実際の走行面を考慮して修正する。すなわち、実際の走行面に対応した修正移動範囲を生成する。
【0129】
図12以下を参照して、移動可能範囲決定部224の実行する処理の具体例について説明する。
移動可能範囲決定部224は、以下の各情報を入力する。
(a)内部状態推定部221から、ロボットの現在の体幹の位置姿勢、重心位置、速度、各脚の位置、速度、加速度等の内部状態情報、
(b)外部環境推定部222が生成した3次元地図データ等の環境情報、
(c)目標歩容生成部223が生成した目標の脚先位置や体幹位置、姿勢などの目標軌道を示す目標歩容(目標の脚先位置や体幹位置、姿勢などの目標軌道)、
【0130】
上記(c)の目標歩容生成部223から入力する「目標歩容」には、先に
図10、
図11を参照して説明した各脚の接地期における目標となる移動範囲情報が含まれる。
【0131】
移動可能範囲決定部224は、目標歩容生成部223から入力した各脚の接地期における目標移動範囲を実際の走行面を考慮して修正して、実際の走行面に対応した各脚の修正移動範囲を生成する。
【0132】
図12は、移動可能範囲決定部224が外部環境推定部222から入力する3次元地図データ等の環境情報から生成されるロボットの走行面形状と、
移動可能範囲決定部224が目標歩容生成部223から入力する脚(前中脚(FM))の接地期における目標移動範囲情報を併せて示した図である。
走行面形状は、先に
図9を参照して説明した階段状の形状である。
【0133】
前中脚(FM))の接地期における目標移動範囲は、先に
図11を参照して説明したデータである。すなわち、6脚型の脚車輪ロボット100aが速度=Vで移動する場合に前中脚(FM)の接地期間における目標移動範囲として、以下の各移動範囲を示している。
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=x2~x3
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
【0134】
これら各期間の移動範囲は、6脚型の脚車輪ロボット100aを速度=Vで走行させ、かつ先に
図7を参照して説明した歩容パラメータ、すなわち3脚ごとに遊脚期と接地期を入れ替えて走行することを想定した場合の目標となる移動範囲である。
すなわち、前中脚(FM)を走行面に接地して車輪を回転させて走行する移動範囲を
図12に示す目標移動範囲に示す通りに設定すれば、速度=Vで安定した走行を行うことができる。
【0135】
しかし、この
図12に示す目標移動範囲に示す通りに接地させる走行が可能か否かは、ロボットが走行する走行面の形状に依存する。
例えば走行面が全て平面であれば、
図12に示す目標移動範囲に示す通りに接地させる走行が可能となる。
【0136】
しかし、走行面が
図12に示すように階段である場合、
図12に示す目標移動範囲に示す通りに接地させる走行はできない。
なお、
図12に示す走行面形状は、先に
図9を参照して説明した階段状の形状である。
【0137】
先に
図9を参照して説明したように、階段は階段面A,B,C,Dの順に高くなり、Aは高さZa、Bは高さZb、Cは高さZc、Dは高さZdである。
脚車輪ロボット100aは、階段面A~Dの順に階段を昇ってx方向に走行する。
【0138】
走行面が
図12に示すような階段である場合に
図12に示す目標移動範囲に示す通りに接地させる走行ができない理由について、
図13を参照して説明する。
【0139】
図13には、前中脚(FM)の接地期間における目標移動範囲、すなわち、
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=x2~x3
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
これらの各接地期間の目標移動範囲と、階段形状との対応関係を示し、さらに、各目標移動範囲に対応する接地走行予定区間と、各区間の接地走行が可能か否かを示している。
【0140】
時間t0~t1の移動範囲=x0~x1は、全範囲が1つの階段面A上に含まれるため、この範囲=x0~x1の全区間について前中脚(FM)を走行面(A面)に接地させて車輪を回転させて走行することが可能である。
【0141】
しかし、時間t2~t3の移動範囲=x2~x3は、その範囲が階段面Aと階段面Bの2つの異なる高さの階段面上に含まれる。
従って、この範囲=x2~x3の全区間について前中脚(FM)を走行面に接地させて車輪を回転させて走行することは不可能である。
【0142】
時間t4~t5の移動範囲=x4~x5は、全範囲が1つの階段面C上に含まれるため、この範囲=x4~x5の全区間について前中脚(FM)を走行面(C面)に接地させて車輪を回転させて走行することが可能である。
【0143】
時間t6~t7の移動範囲=x6~x7は、全範囲が1つの階段面D上に含まれるため、この範囲=x6~x7の全区間について前中脚(FM)を走行面(D面)に接地させて車輪を回転させて走行することが可能である。
【0144】
時間t8~t9の移動範囲=x8~x9は、全範囲が1つの階段面D上に含まれるため、この範囲=x8~x9の全区間について前中脚(FM)を走行面(D面)に接地させて車輪を回転させて走行することが可能である。
【0145】
移動可能範囲決定部224は、このように、目標歩容生成部223から入力する「目標歩容」に含まれるロボット各脚の目標移動範囲に対応する接地走行予定区間について、接地走行可能か否かを判定する。
図13に示す例では、判定結果として、
時間t2~t3の目標移動範囲=x2~x3が、階段面Aと階段面Bの2つの異なる高さの階段面上に含まれており、連続した接地走行が不可能であると判定する。その他の接地期間における目標移動範囲については、全て1つの階段面に属しており、連続接地走行が可能であると判定する。
【0146】
さらに、移動可能範囲決定部224は、接地期間における連続接地走行が不可能であると判定された目標移動範囲を修正する。
本例では、連続接地走行が不可能であると判定された時間t2~t3の目標移動範囲=x2~x3目標移動範囲を修正し、時間t2~t3の修正移動範囲を生成する。
図14を参照して、移動可能範囲決定部224が実行する修正移動範囲の生成処理の具体例について説明する。
【0147】
図14には、連続接地走行が不可能であると判定された時間t2~t3の目標移動範囲=x2~x3を、修正して、
時間t2~t3の修正移動範囲=xp~xq
を生成した例を示している。
修正移動範囲=xp~xqは、全ての移動範囲を1つの階段面Bに属する設定としている。
【0148】
修正前の目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3は、階段面Aと階段面Bの2つの異なる高さの階段面上に含まれており、連続した接地走行が不可能である。
移動可能範囲決定部224は、このように目標速度=Vに基づいて生成した接地時間の目標移動範囲が連続接地走行できない範囲にある場合、その目標移動範囲に含まれる階段面を解析し、目標移動範囲が多く含まれる階段面を選択し、選択した階段面に、修正移動範囲を設定する。
【0149】
図14に示す例では、目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3は、階段面Aと階段面Bの2つの異なる高さの階段面上に含まれており、目標移動範囲=x2~x3の約80%が階段面Bに含まれている。
この結果に基づいて、移動可能範囲決定部224は、階段面Bを選択し、選択した階段面Bに、修正移動範囲xp~xqを設定する。
【0150】
なお、修正移動範囲xp~xqの距離は、原則として、目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3の距離と同じ距離とする。
ただし、選択した1つの階段面に目標移動範囲=x2~x3の距離と同じ距離の修正移動範囲が確保できない場合には、修正移動範囲の距離は目標移動範囲の距離より小さく設定する。
【0151】
なお、基本的にロボットの移動速度は目標速度=Vに従って移動する制御がなされることになる。
従って、例えば、
図14に示す例では、時間t2~t3の目標移動範囲=x2~x3を修正移動範囲=xp~xqに変更した場合、時間t3で到達する位置が、x3から、xqに変更されることになり、局所的な移動速度が変化することになるが、
図6に示すデータ処理部220の軌道生成部225は、この局所的な速度変化を調整して、全体的な走行路の速度平均を目標速度=Vに近づけるような調整処理を実行する。この処理については後述する。
【0152】
なお、
図14に示すように、目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3を修正して、階段面B上の修正移動範囲xp~xqを設定した場合、ロボットの脚、本例では前中脚(FM)を時間t2の段階で、階段面B上に上げておくことが必要となる。
このような動きを実現する場合の具体的な前中脚(FM)の制御例を
図15に示す。
【0153】
図15は、時間t2のタイミングにおける脚車輪ロボット100aの前中脚(FM)の動きの具体例を示した図である。
図15(a)~(b)に示すように、時間t2のタイミングにおいて、脚車輪ロボット100aの前中脚(FM)の脚先の車輪を振り上げて階段面Bの高さに上げて、階段面B上に載せてその後、接地走行を開始する。
なお、前中脚(FM)の振り上げ処理は、回動関節103や直動関節104の制御によって実行される。
【0154】
なお、この脚の動きを決定する軌道生成処理は、軌道生成部225において実行され、実際の脚駆動処理は、駆動部225が、軌道生成部225の生成した軌道に従って実行することになる。
【0155】
移動可能範囲決定部224は、
図13、
図14を参照して説明したように、各脚の接地期間における連続接地走行が不可能であると判定された目標移動範囲を修正する。
すなわち、
図14を参照して説明したように、連続接地走行が不可能であると判定された時間t2~t3の目標移動範囲=x2~x3目標移動範囲を修正し、修正移動範囲xp~xqを生成する。
【0156】
さらに、移動可能範囲決定部224は、各脚の接地期間における連続接地走行が可能であり、かつ、複数の異なる接地期間の複数の離間した目標移動範囲が1つの階段面等に属しているような場合、これらの複数の離間した目標移動範囲を連結して1つの接地期間対応の修正移動範囲として設定する処理を行ってもよい。
図16を参照して、この具体例について説明する。
【0157】
図16に示すように、目標速度=Vに基づいて生成した以下の2つの目標移動範囲、すなわち、
時間t6~t7の目標移動範囲=x6~x7、
時間t8~t9の目標移動範囲=x8~x9、
これら2つの目標移動範囲は、いずれも1つの階段面D上に含まれている。
【0158】
これら2つの目標移動範囲(x6~x7,x8~x9)は、6脚型の脚車輪ロボット100aが、先に
図7を参照して説明した目標歩容パラメータに従って、3脚ずつ接地期、遊脚期を入れ替えて走行することを仮定した場合の前中脚(FM)の2つの隣接する接地期間(t6~t7,t8~t9)に対応する2つの目標移動範囲である。
【0159】
時間t7~t8は、本来は、前中脚(FM)の遊脚期間に相当し、前中脚(FM)を接地する必要がない期間である。すなわち目標歩容生成部223が
図7を参照して説明した目標歩容パラメータに従って生成した目標歩容データ上は、時間t7~t8は、前中脚(FM)は遊脚期間であり、接地しない期間として設定されている。
【0160】
しかし、
図16に示すように、
時間t6~t7の目標移動範囲=x6~x7、
時間t8~t9の目標移動範囲=x8~x9、
これら2つの目標移動範囲は、いずれも1つの階段面D上に含まれ、この時間t6~t9の全期間において、前中脚(FM)を、階段面D上に接地させて連続走行させることが可能である。
【0161】
移動可能範囲決定部224は、このように連続接地走行可能な設定の複数の目標移動範囲が検出された場合、
図16に示すように、これらの複数の目標移動範囲を1つの修正移動範囲として設定し、修正移動範囲の全範囲を接地走行させる範囲として設定する。
【0162】
なお、遊脚期間を接地期間に変更してもロボットの安定性が減少することはなく、より安定した走行を行うことが可能である。しっがて、このように、脚の接地期間を増加させる修正処理は、ロボットをより安定して走行させるために有効となる。
【0163】
移動可能範囲決定部224は、このように、各脚の接地期間における連続接地走行が可能であり、かつ、複数の異なる接地期間の複数の離間した目標移動範囲が1つの階段面等に属しているような場合、これらの複数の離間した目標移動範囲を連結して1つの接地期間対応の修正移動範囲として設定する処理を行ってもよい。
【0164】
図13~
図16を参照して説明したように、移動可能範囲決定部224は、最終的に、以下の2種類の修正移動範囲の設定処理を実行する。
(修正1)連続接地走行が不可能であると判定された目標移動範囲を修正して、連続接地走行が可能となる修正移動範囲を生成する。
(修正2)複数の離間した目標移動範囲を連結して1つの連続接地走行が可能な修正移動範囲を生成する。
【0165】
図17は、移動可能範囲決定部224による目標移動範囲の修正前後の移動範囲設定の差異について説明する図である。
【0166】
(a)は、移動可能範囲決定部224による目標移動範囲の修正前の前中脚(FM)の接地期間の目標移動範囲である。
(b)は、移動可能範囲決定部224による目標移動範囲の修正後の前中脚(FM)の接地期間の移動範囲である。
【0167】
(a)は、6脚型の脚車輪ロボット100aが速度=Vで移動する場合に前中脚(FM)の接地期間における目標移動範囲であり、以下の各移動範囲を示している。
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=x2~x3
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
【0168】
これら各期間の移動範囲は、6脚型の脚車輪ロボット100aを速度=Vで走行させ、かつ先に
図7を参照して説明した歩容パラメータ、すなわち3脚ごとに遊脚期と接地期を入れ替えて走行することを想定した場合の目標となる移動範囲である。
すなわち、前中脚(FM)を走行面に接地して車輪を回転させて走行する移動範囲を
図12に示す目標移動範囲に示す通りに設定すれば、速度=Vで安定した走行を行うことができる。
【0169】
一方、(b)は、移動可能範囲決定部224による目標移動範囲の修正後の前中脚(FM)の接地期間の移動範囲であり、先に説明したように、以下の2つのタイプの移動範囲修正処理を行った結果である。
(修正1)連続接地走行が不可能であると判定された目標移動範囲を修正して、連続接地走行が可能となる修正移動範囲を生成する。
(修正2)複数の離間した目標移動範囲を連結して1つの連続接地走行が可能な修正移動範囲を生成する。
【0170】
図17に示す例において、上記(修正1)に対応する修正データは、
図17(a)に示す時間t2~t3の目標移動範囲=x2~x3を、
図17(b)に示す時間t2~t3の修正移動範囲=xp~xqに修正したデータである。
【0171】
また、上記(修正2)に対応する修正データは、
図17(a)に示す時間t6~t7の目標移動範囲=x6~x7と、時間t8~t9の目標移動範囲=x8~x9を、
図17(b)に示す時間t6~t9の修正移動範囲=x6~x9に修正したデータである。
【0172】
このように、移動可能範囲決定部224は、目標歩容生成部223から入力した各脚の接地期における目標移動範囲を実際の走行面を考慮して修正して、実際の走行面に対応した各脚の修正移動範囲を生成する。
【0173】
なお、上述した
図10~
図17を参照して説明した処理は、移動可能範囲決定部224が、6脚型の脚車輪ロボット100aの前中脚(FM)に対して実行する処理例を説明したが、移動可能範囲決定部224は、ロボットの各脚について、同様の処理を行い、目標歩容生成部223から入力した各脚の接地期における目標移動範囲を実際の走行面を考慮して修正して、実際の走行面に対応した各脚の修正移動範囲を生成する。
【0174】
移動可能範囲決定部224が生成した各脚の修正移動範囲は、
図6に示す軌道生成部225に入力される。
【0175】
軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された目標速度=V、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道を生成する。
【0176】
図18~
図20を参照して、軌道生成部225が実行する脚軌道生成処理の具体例について説明する。
図18~
図20には、先に
図10~
図17を参照して説明したと同様、6脚型の脚車輪ロボット100aの前中脚(FM)に対する処理例を示している。
すなわち、軌道生成部225が実行する6脚型の脚車輪ロボット100aの前中脚(FM)の脚軌道生成処理の具体例について説明する図である。
【0177】
図18に示すグラフは、横軸が時間(t)、縦軸が6脚型の脚車輪ロボット100aの進行方向(x)の位置を示すグラフである。
縦軸(進行方向(x))左側には、進行位置xに対応する階段A~Dの位置を示している。
時間軸(横軸)に示すt1~t9は、
図11~
図17を参照して説明した時間t1~t9と同様の時間であり、縦軸(進行方向(x))に示すx1~x9も
図11~
図17を参照して説明した位置x1~x9と同様の位置である。
【0178】
図18のグラフに示す直線「目標速度=Vに従った前中脚(MF)軌道」は、目標速度=Vに従ってロボットが走行する場合の進行する前中脚(FM)の時間(t)に対応する進行位置(x)を示す直線である。
【0179】
すなわち
図18に示す「目標速度=Vに従った前中脚(MF)軌道」は、
図6に示す移動速度情報215に対応する目標速度=Vに従ってロボットが移動する場合の前中脚(FM)の時間(t)に対応する進行位置(x)を示す直線である。
直線の傾きが速度V(=(Δx/Δt))に対応する。
【0180】
しかし、この
図18に示す直線は、先に
図13を参照して説明した目標速度=Vに従ってロボットが走行した場合の理想的な前中脚(FM)の時間(t)に対応する進行位置(x)を示す速度Vの直線である。
【0181】
図18に示すグラフの直線は、目標速度=Vと、
図7を参照して説明した目標パラメータに従ってロボットが走行した場合の前中脚(FM)の以下の各接地時間の各目標移動範囲を進む設定とした場合の直線である。
時間t0~t1の目標移動範囲=x0~x1
時間t2~t3の目標移動範囲=x2~x3
時間t4~t5の目標移動範囲=x4~x5
時間t6~t7の目標移動範囲=x6~x7
時間t8~t9の目標移動範囲=x8~x9
図18のグラフに示す直線は、このような時間と目標移動範囲の対応関係にあり、先に
図13を参照して説明したデータと同様のデータである。
【0182】
なお、グラフ中の矩形斜線部分は、前中脚(FM)の接地期間と接地移動範囲に対応する。
しかし、先に
図13~
図17を参照して説明したように、例えば時間t2~t3の目標移動範囲x2~x3は、階段の階段面Aと階段面Bの2つの階段面を含むため、この
図18に示す直線に従った走行、すなわち、目標速度=Vと、
図7を参照して説明した目標パラメータに従ってロボットを走行させることはできない。
【0183】
そこで、移動可能範囲決定部224が、前述したような接地期間の移動範囲の修正を行う。具体的には、以下の2種類の修正移動範囲の設定処理を実行する。
(修正1)連続接地走行が不可能であると判定された目標移動範囲を修正して、連続接地走行が可能となる修正移動範囲を生成する。
(修正2)複数の離間した目標移動範囲を連結して1つの連続接地走行が可能な修正移動範囲を生成する。
【0184】
すなわち、先に
図17を参照して説明したように、移動可能範囲決定部224は、上記の(修正1)、(修正2)を実行して、接地期間の接地走行が可能な修正移動範囲を生成する。
【0185】
軌道生成部225は、この移動可能範囲決定部224が生成した修正移動範囲情報、具体的には、例えば
図17(B)に示すような各脚対応の接地期間単位の移動範囲情報を入力する。
【0186】
まず、軌道生成部225は、この移動可能範囲決定部224が生成した修正移動範囲情報を用いて、時間と位置関係の対応関係データを生成する。
具体的には、例えば
図19に示すグラフである。
【0187】
図19に示すグラフは、先に説明した
図18と同様、横軸が時間(t)、縦軸が6脚型の脚車輪ロボット100aの進行方向(x)の位置を示すグラフである。
縦軸(進行方向(x))左側には、進行位置xに対応する階段A~Dの位置を示している。
時間軸(横軸)に示すt1~t9は、
図11~
図17を参照して説明した時間t1~t9と同様の時間であり、縦軸(進行方向(x))に示すx1~x9も
図11~
図17を参照して説明した位置x1~x9と同様の位置である。
【0188】
図19には、
図18を参照して説明した直線、すなわち、「目標速度=Vに従った前中脚(MF)軌道」に加えて、
「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道」
を示している。
【0189】
この「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道」は、移動可能範囲決定部224が生成した修正移動範囲を反映した軌道である。
【0190】
すなわち、移動可能範囲決定部224が、
(修正1)連続接地走行が不可能であると判定された目標移動範囲を修正して、連続接地走行が可能となる修正移動範囲を生成する。
(修正2)複数の離間した目標移動範囲を連結して1つの連続接地走行が可能な修正移動範囲を生成する。
これらの(修正1)、(修正2)を実行して生成した接地期間の接地走行が可能な修正移動範囲を反映した軌道である。
なお、グラフ中の矩形斜線部分は、前中脚(FM)の接地期間と接地移動範囲に対応する。
【0191】
しかし、この
図19に示す「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道」は、各接地期間における移動範囲のみを修正したデータであり、結果として、ロボットの平均速度や局所的速度が目標速度=Vと異なる設定になる可能性がある。
【0192】
軌道生成部225は、このような速度の変化を制御するような軌道修正を行う。例えば、移動可能範囲決定部224が生成した修正移動範囲を接地走行するという原則を満たし、かつ目標速度=Vになるべく追従するように各脚の軌道、すなわち、
図19に示す「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道」を修正する。
【0193】
具体的な軌道修正処理としては、例えば、数理最適化における非線形計画法の代表的手法である二次計画法(QP:Quadratic Programming)などを用いて軌道の最適化処理を実行する。
【0194】
この最適化処理によって修正した軌道の例を
図20に示す。
図20に示す「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道を、軌道生成部が修正した軌道」は、
図19に示す「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道」に対して二次計画法(QP:Quadratic Programming)などを用いて最適化処理を行って生成した軌道である。
【0195】
このように、軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道を生成する。
【0196】
軌道生成部225が生成したロボット各脚の軌道情報は、駆動部226に入力される。
駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に従って、各脚が移動するように各脚を駆動するための駆動情報を生成する。
なお、駆動部226が生成する駆動情報には、各脚の関節の駆動情報と、各脚の車輪の駆動情報が含まれる。
【0197】
なお、ロボットの関節を駆動するための駆動方法には複数の駆動方法がある。
具体的な関節駆動方法として力制御型関節駆動と、位置制御型関節駆動の2種類がある。
【0198】
駆動部226が力制御型関節駆動を行う駆動部の場合には、駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に基づいて、その軌道を実現するために必要となる関節トルクを計算して、計算結果の関節トルクに従った制御信号を関節部231に出力して関節部を駆動する。
【0199】
一方、駆動部226が位置制御型関節駆動を行う駆動部の場合には、駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に基づいて、その軌道を実現するために必要となる関節トルクと関節位置、速度の両者を計算して、計算結果の関節トルクと関節位置、速度に従った制御信号を関節部231に出力して関節部を駆動する。
【0200】
なお、駆動部226は、制御信号の計算結果に基づいて関節部231のアクチュエータや車輪部232を駆動することになるが、この駆動制御に際しては、関節部231のトルクセンサや足先の力センサのフィードバック情報を用いたフィードバック制御を行う構成としてもよい。
【0201】
上述したように、本開示の移動装置は、
図6に示すデータ処理部220における目標歩容生成部223、移動可能範囲決定部224、軌道生成部225等の処理によって、予め規定した移動速度情報215(目標速度=V)に従って、ほぼ停止することなく、安定した走行を実現する。
【0202】
具体的には、予め規定した移動速度情報215(目標速度=V)に従った安定走行を実現するための各脚の軌道を生成し、生成した軌道に従って各脚を駆動することで、移動速度情報215(目標速度=V)に従った安定走行を実現する。
【0203】
[4.その他の実施例について]
次に、その他の実施例について説明する。
【0204】
上述した実施例では、6脚型の脚車輪ロボット100aが直線状の階段を昇る実施例について説明したが、本開示の構成や処理は6脚型に限らず、4脚型や8脚型の脚車輪ロボットにおいても適用可能である。
また、階段を昇る場合に限らず、降りる場合にも同様の処理が実行できる。
【0205】
さらに、階段に限らず、凹凸が多いでこぼこな走行路を走行する場合にも適用可能である。例えば接地期間にでこぼこ面の多い場合、そのでこぼこの多い領域を避けて、平面度の高い領域に接地領域を移動するといった処理が可能である。
【0206】
さらに、階段は直線状に限らず、例えばらせん状の階段を昇降する場合にも本開示の処理を適用可能である。
図21以下を参照して、らせん状の階段を昇る場合の処理例について説明する。
【0207】
図21には、らせん状の階段の例を示している。
階段面A~Fまで、順次、高さが高く形成され、上方(AからF)に進むに従い、左回りのらせん状に形成された階段である。
このらせん階段を6脚型の脚車輪ロボット100aが昇って走行する。
【0208】
図22は、らせん階段を6脚型の脚車輪ロボット100aが昇って走行する場合に、
図6に示す移動装置200のデータ処理部220の目標歩容生成部223が生成する目標歩容データの例を示している。
【0209】
図22には、6脚型の脚車輪ロボット100aの前の3本の脚、すなわち前左脚(FL)、前中脚(FM)、前右脚(FR)、これら3本の前脚の接地期間の目標移動範囲を矩形領域として示している。
【0210】
前述したように、目標歩容生成部223は、予め規定された移動速度情報215と、
図7に示す予め規定された目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を「目標歩容」、すなわち、目標動作シーケンスとして決定する。
【0211】
目標歩容生成部223は、目標速度=Vと、
図7に示す目標歩容パラメータに従った理想的な走行を行う場合の未来の足先位置、すなわち接地期間の目標移動範囲を算出する。
図22には、6脚型の脚車輪ロボット100aの前の3本の脚、すなわち前左脚(FL)、前中脚(FM)、前右脚(FR)、これら3本の前脚の10回分の接地期間の目標移動範囲を矩形領域として示している。
【0212】
図22に示すFL1が、スタート位置の前左脚(FL)の目標移動範囲であり、その後2~9が間欠的な接地期間における前左脚(FL)の目標移動範囲であり、最後のFL10が最後の接地期間における目標移動範囲である。
FM1~FM10は、前中脚(FM)の10回分の接地期間の目標移動範囲であり、FR1~FR10は、前右脚(FR)の10回分の接地期間の目標移動範囲である。
【0213】
このように、目標歩容生成部223は、目標速度=Vと、
図7に示す目標歩容パラメータに従った理想的な走行を行う場合の未来の足先位置、すなわち接地期間の目標移動範囲を算出する。
しかし、この標移動範囲が複数のことなる階段面に属する場合には、接地を継続しながら移動することができない。
【0214】
例えば、
図22に示す前左脚(FL)の2番目の目標移動範囲[2]は、階段面Aと階段面Bの2つの階段面を含んで設定されており、この目標移動範囲[2]については、前左脚(FL)を接地しながら走行することはできない。
図22に示す前左脚(FL)の3番目の目標移動範囲[3]や、4番目の目標移動範囲[4]も同様であり、これらの目標移動範囲[3]や[4]についても、前左脚(FL)を接地しながら走行することはできない。
【0215】
前中脚(FM)や、前右脚(FR)についても、目標移動範囲に複数の階段面が属するものが存在し、それらについては、各脚を接地しながら走行させることができない。
【0216】
移動可能範囲決定部224は、このような問題点を解決するため、各脚の接地期間の移動範囲を修正する。
移動可能範囲決定部224は、目標歩容生成部223から入力した「目標歩容」すなわち、ロボットを目標速度で移動させるための各脚の接地期における目標移動範囲を、実際の走行面を考慮して修正する。すなわち、実際の走行面に対応した修正移動範囲を生成する。
【0217】
図23に、移動可能範囲決定部224が生成した修正データ、すなわち、各脚の接地期における目標移動範囲を実際の走行面を考慮して修正して生成した修正移動範囲のデータ例を示す。
【0218】
前述したように、移動可能範囲決定部224は、最終的に、以下の2種類の修正移動範囲の設定処理を実行する。
(修正1)連続接地走行が不可能であると判定された目標移動範囲を修正して、連続接地走行が可能となる修正移動範囲を生成する。
(修正2)複数の離間した目標移動範囲を連結して1つの連続接地走行が可能な修正移動範囲を生成する。
【0219】
例えば
図23に示す「修正移動範囲p」は、上記(修正1)に対応する修正処理を実行した結果の例である。
図22を参照して説明したように、
図22に示す前左脚(FL)の2番目の目標移動範囲[2]は、階段面Aと階段面Bの2つの階段面を含んで設定されており、この目標移動範囲[2]については、前左脚(FL)を接地しながら走行することはできない。
移動可能範囲決定部224は、この前左脚(FL)の2番目の目標移動範囲[2]を
図23に示すように、全て階段面Bに移動させて、新たな修正移動範囲pを生成している。
このような修正移動範囲pは、1つの階段面Bに属するため、前左脚(FL)を接地しながら走行することが可能となる。
【0220】
また、例えば
図23に示す「修正移動範囲q」は、上記(修正2)に対応する修正処理を実行した結果の例である。
前右脚(FR)の6番目の目標移動範囲[6]と、7番目の目標移動範囲[7]は、いずれも階段面Eに設定されている。従って、これら2つの目標移動範囲を連結して1つの連続接地走行が可能となる。
このような場合、移動可能範囲決定部224は、これら2つの目標移動範囲を連結して1つの連続接地走行が可能な修正移動範囲を生成する。
【0221】
なお、前述したように、遊脚期間を接地期間に変更してもロボットの安定性が減少することはなく、より安定した走行を行うことが可能である。しっがて、このように、脚の接地期間を増加させる修正処理は、ロボットをより安定して走行させるために有効となる。
【0222】
図23に示す移動可能範囲決定部224が生成した修正データ、すなわち、各脚の接地期における目標移動範囲を実際の走行面を考慮して修正して生成した修正移動範囲の矩形データは、いずれも1つの階段面に属する設定に修正されている。
【0223】
6脚型の3本の前脚については、各脚の接地期間にこれらの修正移動範囲を接地走行させるように制御することで、所定の目標速度で安定した走行を実現させることが可能となる。
【0224】
なお、移動可能範囲決定部224が生成した各脚の修正移動範囲は、
図6に示す軌道生成部225に入力される。
軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度=V、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道を生成する。
この処理は、先に
図18~
図20を参照して説明した処理である。
【0225】
その後、軌道生成部225が生成したロボット各脚の軌道情報が駆動部226に入力され、駆動部226が、軌道生成部225が生成したロボット各脚の軌道情報に従って、各脚を移動させるための駆動情報を生成して、各脚を駆動する。
【0226】
これらの処理により、ロボットを予め規定した移動速度情報215(目標速度=V)に従って、ほぼ停止することなく安定して走行させることが可能となる。
【0227】
[5.本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて]
次に、本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて説明する。
【0228】
図24に示すフローチャートを参照して、本開示の移動装置が実行する移動装置の脚の軌道生成処理シーケンスについて説明する。
なお、
図24以下に示すフローチャートは、
図6に示す本開示の移動装置200のデータ処理部220において実行される。例えば移動装置200内の記憶部に格納されたプログラムに従ってCPU等のプログラム実行機能を持つデータ処理部の制御の下で実行される。以下、
図24に示すフローの各ステップの処理の詳細について順次、説明する。
【0229】
(ステップS101)
まず、移動装置200のデータ処理部220は、ステップS101において、目標速度と歩容パラメータを入力する。
【0230】
この処理は、
図6に示す移動装置200のデータ処理部220の目標歩容生成部223が実行する処理である。
図6に示すように目標歩容生成部223は、目標速度=Vを
図6に示す移動速度情報215として外部から入力する。
前述したように、移動速度情報215は予め規定された予定のロボットの移動速度であり、
図6に示す入力部211を介してユーザ(オペレータ)が入力してもよいし、予め記憶部212に格納された情報を利用してもよい。あるいは、通信部213を介して外部のサーバなどの制御装置から受信して入力してもよい。
【0231】
目標歩容生成部223は、この移動速度情報215と、予め規定された目標歩容パラメータに基づいて目標歩容データ、すなわち、ロボットの目標動作シーケンスデータを生成する。具体的には、目標の脚先位置や体幹位置、姿勢などの目標軌道を決定する。
【0232】
目標歩容データの生成に用いる目標歩容パラメータは、例えば先に
図7を参照して説明したロボットの各脚の接地期と、遊脚期を設定したパラメータである。この目標歩容パラメータは、目標歩容生成部223あるいはデータ処理部220内のメモリから取得する。あるいは
図6に示す入力部211、記憶部212、通信部213を介して入力してもよい。
【0233】
(ステップS102)
次に、移動装置200のデータ処理部220は、ステップS102において、解析対象となる脚を選択する。
この処理も、
図6に示す移動装置200のデータ処理部220の目標歩容生成部223が実行する処理である。あるいは、
図6には示していないがデータ処理部220の統括的制御を行う制御部が実行してもよい。
【0234】
ステップS102における解析対象となる脚の選択とは、例えば、処理対象が
図1に示すような6脚型の脚車輪ロボット100aである場合には、前左脚(FL)、前中脚(FM)、前右脚(FR)、後左脚(RL)、後中脚(RM)、後右脚(RR)の6本の脚から1本の脚を選択する。
【0235】
また、処理対象が
図3に示すような4脚型の脚車輪ロボット100bである場合には、前左脚(FL)、前右脚(FR)、後左脚(RL)、後右脚(RR)の4本の脚から1本の脚を選択する。
【0236】
(ステップS103)
次に、移動装置200のデータ処理部220は、ステップS103において、選択された解析対象脚について以下の処理を実行する。
【0237】
目標速度と目標歩容パラメータに従った走行を行う場合の脚の各接地期間単位の目標移動範囲を算出する。
【0238】
この処理も、
図6に示す移動装置200のデータ処理部220の目標歩容生成部223が実行する処理である。
【0239】
目標歩容生成部223は、ステップS101において入力した目標速度=Vと、目標歩容パラメータ、具体的には例えば
図7に示す目標歩容パラメータに従った理想的な走行を行う場合の未来の足先位置の軌道を計算する。
【0240】
処理対象が
図1に示すような6脚型の脚車輪ロボット100aである場合、
図7に示す目標歩容パラメータに従って安定な最低支持脚数(本例では3脚)ずつ交互に遊脚期と接地期を交換しながら、速度=Vで等速運動すると仮定して、解析対象の脚の接地期における移動範囲を算出する。
【0241】
この処理は、例えば先に
図10~
図12を参照して説明した処理に相当する。
例えば、解析対象を前中脚(FM)とした場合の処理について説明する。
【0242】
図11に示すように、前中脚(FM)の接地期間は、
時間=t0~t1,t2~t3,t4~t5,t6~t7,t8~t9
これらの各期間となる。
時間=t1~t2,t3~t4,t5~t6,t7~8、
これらの時間は前中脚(FM)の遊脚期間となる。
【0243】
前中脚(FM)は、接地期間である、
時間=t0~t1,t2~t3,t4~t5,t6~t7,t8~t9
これらの各時間において、脚先の車輪を回転させて走行面を移動する。
【0244】
前中脚(FM)が、これら各接地期間において移動する範囲は、
図11に示すように、以下の通りである。
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=x2~x3
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
【0245】
なお、脚車輪ロボット100aは目標速度=Vで等速運動しているものと仮定しているので、上記各時間の移動範囲の長さ(移動距離)は全て同一である。
目標歩容生成部223は、上記のように、脚車輪ロボット100aが、
図6を参照して説明した移動速度情報215、すなわち、速度=Vで等速運動しているものと仮定して、各脚の接地期における目標となる移動範囲を算出し、各脚の目標移動範囲を含む「目標歩容」を生成する。
【0246】
(ステップS104)
次に、移動装置200のデータ処理部220は、ステップS104において、ロボットの実際の走行面の形状情報を入力する。
【0247】
この処理は、
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が外部環境推定部222から走行面の形状情報を入力する処理に相当する。
【0248】
具体的には、例えば
図9に示すようなロボットが走行する階段等、走行面に関する形状情報を入力する。
【0249】
(ステップS105)
次に、移動装置200のデータ処理部220は、ステップS105において、ステップS104で入力したロボットの実際の走行面形状に基づいて、ステップS103で算出した脚の接地期間単位の目標移動範囲の各々について接地移動が可能か否かを判定する。
【0250】
この処理は、
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が実行する。
【0251】
この処理は、例えば先に
図13を参照して説明した処理に相当する。
図13には、前中脚(FM)の接地期間における目標移動範囲、すなわち、
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=x2~x3
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
これらの各接地期間の目標移動範囲と、階段形状との対応関係を示し、さらに、各目標移動範囲に対応する接地走行予定区間と、各区間の接地走行が可能か否かを示している。
【0252】
時間t0~t1の移動範囲=x0~x1は、全範囲が1つの階段面A上に含まれるため、この範囲=x0~x1の全区間について前中脚(FM)を走行面(A面)に接地させて車輪を回転させて走行することが可能である。
【0253】
しかし、時間t2~t3の移動範囲=x2~x3は、その範囲が階段面Aと階段面Bの2つの異なる高さの階段面上に含まれる。
従って、この範囲=x2~x3の全区間について前中脚(FM)を走行面に接地させて車輪を回転させて走行することは不可能である。
【0254】
図13に示す例では、判定結果として、
時間t2~t3の目標移動範囲=x2~x3が、階段面Aと階段面Bの2つの異なる高さの階段面上に含まれており、連続した接地走行が不可能であると判定する。その他の接地期間における目標移動範囲については、全て1つの階段面に属しており、連続接地走行が可能であると判定する。
【0255】
(ステップS106)
ステップS106の処理は、ステップS105の判定処理の分岐ステップである。
ステップS105において、解析対象の脚の接地期間単位の移動範囲の中に接地移動不可能な移動範囲があると判定した場合は、ステップS106においてYesと判定され、ステップS107に進む。
【0256】
一方、ステップS105において、解析対象の脚の接地期間単位の目標移動範囲の中に接地移動不可能な移動範囲がないと判定した場合は、ステップS106においてNoと判定され、ステップS108に進む。
【0257】
(ステップS107)
ステップS107の処理は、ステップS105において、解析対象の脚の接地期間単位の移動範囲の中に接地移動不可能な移動範囲があると判定した場合に実行する処理である。
【0258】
この場合、移動装置200のデータ処理部220は、ステップS107において、接地移動不可能な目標移動範囲を修正し、修正移動範囲を生成する。
【0259】
この処理も
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が実行する処理である。
【0260】
この処理は、例えば先に
図14を参照して説明した処理に相当する。
図14には、連続接地走行が不可能であると判定された時間t2~t3の目標移動範囲=x2~x3を、修正して、
時間t2~t3の修正移動範囲=xp~xq
を生成した例を示している。
修正移動範囲=xp~xqは、全ての移動範囲を1つの階段面Bに属する設定としている。
【0261】
修正前の目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3は、階段面Aと階段面Bの2つの異なる高さの階段面上に含まれており、連続した接地走行が不可能である。
移動可能範囲決定部224は、このように目標速度=Vに基づいて生成した接地時間の目標移動範囲が連続接地走行できない範囲にある場合、その目標移動範囲に含まれる階段面を解析し、目標移動範囲が多く含まれる階段面を選択し、選択した階段面に、修正移動範囲を設定する。
【0262】
図14に示す例では、目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3は、階段面Aと階段面Bの2つの異なる高さの階段面上に含まれており、目標移動範囲=x2~x3の約80%が階段面Bに含まれている。
この結果に基づいて、移動可能範囲決定部224は、階段面Bを選択し、選択した階段面Bに、修正移動範囲xp~xqを設定する。
【0263】
なお、修正移動範囲xp~xqの距離は、原則として、目標速度=Vに基づいて生成した時間t2~t3の目標移動範囲=x2~x3の距離と同じ距離とする。
ただし、選択した1つの階段面に目標移動範囲=x2~x3の距離と同じ距離の修正移動範囲が確保できない場合には、修正移動範囲の距離は目標移動範囲の距離より小さく設定する。
【0264】
ステップS107における修正移動範囲の生成処理が完了すると、再度、ステップS106の判定処理に戻る。
ステップS106において、解析対象脚の接地期間単位の目標移動範囲の中に接地移動不可能な移動範囲がないと判定されるとステップS108に進む。
【0265】
(ステップS108)
ステップS108の処理は、ステップS106において、解析対象脚の接地期間単位の目標移動範囲の中に接地移動不可能な移動範囲がないと判定した場合に実行される。
【0266】
この場合、移動装置200のデータ処理部220は、ステップS108において、全てが接地移動可能な移動範囲のみによって構成される接地期間単位の移動範囲情報を生成する。
【0267】
この処理も
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が実行する処理である。
【0268】
例えば、
図14に示すような修正移動範囲を含む移動範囲情報、すなわち、例えば以下のような全てが接地移動可能な移動範囲のみによって構成される接地期間単位の移動範囲情報を生成する。
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=xp~xq
時間t4~t5の移動範囲=x4~x5
時間t6~t7の移動範囲=x6~x7
時間t8~t9の移動範囲=x8~x9
【0269】
(ステップS109)
次に、移動装置200のデータ処理部220は、ステップS109において以下の処理を実行する。
【0270】
ステップS108において生成した全てが接地移動可能な移動範囲のみによって構成される接地期間単位の移動範囲情報に対して、二次計画法等の最適化手法を適用して最終的な脚の軌道を生成する。
【0271】
この処理は、
図6に示す移動装置200のデータ処理部220の軌道生成部225が実行する処理である。
軌道生成部226は、移動可能範囲決定部224がステップS108において決定した解析対象脚先端の車輪の移動可能範囲を参照して、脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度=V、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような脚の軌道を生成する。
【0272】
この処理は、例えば先に
図18~
図20を参照して説明した処理に相当する。
なお、具体的な軌道修正処理としては、例えば、数理最適化における非線形計画法の代表的手法である二次計画法(QP:Quadratic Programming)などを用いて軌道の最適化処理を実行する。
【0273】
この最適化処理によって修正した軌道の例が先に説明した
図20に示す「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道を、軌道生成部が修正した軌道」である。
【0274】
このように、軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような脚の軌道を生成する。
【0275】
(ステップS110)
次に、ステップS110において、全ての脚の解析が終了したか否かを判定する。
【0276】
例えば、処理対象が
図1に示すような6脚型の脚車輪ロボット100aである場合には、前左脚(FL)、前中脚(FM)、前右脚(FR)、後左脚(RL)、後中脚(RM)、後右脚(RR)の6本の脚の全ての軌道が算出されたか否かを判定する。
【0277】
また、処理対象が
図3に示すような4脚型の脚車輪ロボット100bである場合には、前左脚(FL)、前右脚(FR)、後左脚(RL)、後右脚(RR)の4本の脚の全ての軌道が算出されたか否かを判定する。
【0278】
この処理は、
図6に示す移動装置200のデータ処理部220の軌道生成部225、あるいは、
図6には示していないがデータ処理部220の統括的制御を行う制御部が実行する。
【0279】
未解析の脚がある場合は、ステップS102に戻り、個解析の脚に対してステップS102~S109の処理を実行する。
【0280】
ステップS110において、全ての脚の解析が終了したと判定した場合、処理を終了する。
【0281】
このフローに従った処理を行うことで、脚車輪ロボットの全ての脚の軌道が算出される。
すなわち、ロボット各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道が生成される。
【0282】
なお、軌道生成部225が生成したロボット各脚の軌道情報は、
図6に示す移動装置200の駆動部226に入力される。
駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に従って、各脚を移動させるための駆動情報を生成して、各脚を駆動する。
【0283】
これらの処理により、ロボットを予め規定した移動速度情報215(目標速度=V)に従って、ほぼ停止することなく安定して走行させることが可能となる。
【0284】
なお、
図24に示すフローを参照して説明した処理シーケンスには、先に
図16を参照して説明した処理が含まれていない。
すなわち、各脚の接地期間における連続接地走行が可能であり、かつ、複数の異なる接地期間の複数の離間した目標移動範囲が1つの階段面等に属しているような場合、これらの複数の離間した目標移動範囲を連結して1つの接地期間対応の修正移動範囲として設定する処理については含まれていない。
【0285】
この処理も含む処理シーケンスについて、
図25~
図26に示すフローチャートを参照して説明する。
以下、
図25、
図26に示すフローの各ステップの処理について説明する。
【0286】
(ステップS201~S207)
ステップS201~S207の処理は、先に
図24に示すフローチャートを参照して説明したステップS101~S107の処理と同様の処理であるので、簡略化して説明する。
【0287】
まず、ステップS201において、
図6に示す移動装置200のデータ処理部220の目標歩容生成部223が目標速度と歩容パラメータを入力する。
【0288】
次に、ステップS202において、目標歩容生成部223、または制御部が、解析対象となる脚を選択する。
【0289】
次に、ステップS203において、目標歩容生成部223が、解析対象脚について以下の処理を実行する。
目標速度と目標歩容パラメータに従った走行を行う場合の脚の各接地期間単位の目標移動範囲を算出する。
この処理は、例えば先に
図10~
図12を参照して説明した処理に相当する。
【0290】
次に、ステップS204において、移動装置200のデータ処理部220の移動可能範囲決定部224が、ロボットの実際の走行面の形状情報を入力する。
この処理は、
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が外部環境推定部222から走行面の形状情報を入力する処理に相当する。
具体的には、例えば
図9に示すようなロボットが走行する階段等、走行面に関する形状情報を入力する。
【0291】
次に、ステップS205において、移動可能範囲決定部224が、ステップS204で入力したロボットの実際の走行面形状に基づいて、ステップS203で算出した脚の接地期間単位の目標移動範囲の各々について接地移動が可能か否かを判定する。
この処理は、例えば先に
図13を参照して説明した処理に相当する。
【0292】
ステップS205において、解析対象の脚の接地期間単位の移動範囲の中に接地移動不可能な移動範囲があると判定した場合は、ステップS206においてYesと判定され、ステップS207に進む。
一方、ステップS205において、解析対象の脚の接地期間単位の目標移動範囲の中に接地移動不可能な移動範囲がないと判定した場合は、ステップS206においてNoと判定され、ステップS208に進む。
【0293】
ステップS207の処理は、ステップS205において、解析対象の脚の接地期間単位の移動範囲の中に接地移動不可能な移動範囲があると判定した場合に実行する処理である。
この場合、移動装置200のデータ処理部220の移動可能範囲決定部224は、ステップS207において、接地移動不可能な目標移動範囲を修正し、修正移動範囲を生成する。
この処理は、例えば先に
図14を参照して説明した処理に相当する。
【0294】
ステップ207における修正移動範囲の生成処理が完了すると、再度、ステップS206の判定処理に戻る。
ステップS206において、解析対象脚の接地期間単位の目標移動範囲の中に接地移動不可能な移動範囲がないと判定されるとステップS208に進む。
【0295】
ステップS208以下の処理には、
図24を参照して説明した処理と異なる処理が含まれるので、各ステップの処理について、順次、説明する。
【0296】
(ステップS208)
ステップS208の処理は、ステップS206において、解析対象脚の接地期間単位の目標移動範囲の中に接地移動不可能な移動範囲がないと判定した場合に実行される。
【0297】
この場合、移動装置200のデータ処理部220は、ステップS208において、連続して接地移動可能な離間した複数の移動範囲があるか否かを判定する。
【0298】
この処理も
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が実行する処理である。
【0299】
このステップS208の処理は、先に
図16を参照して説明した処理に相当する。
図16に示す例において、
時間t6~t7の目標移動範囲=x6~x7、
時間t8~t9の目標移動範囲=x8~x9、
これら2つの目標移動範囲は、いずれも1つの階段面D上に含まれ、この時間t6~t9の全期間において、前中脚(FM)を、階段面D上に接地させて連続走行させることが可能である。
【0300】
移動可能範囲決定部224は、このように連続接地走行可能な離間した複数の移動範囲が検出されたか否かを判定する。
検出された場合は、ステップS209に進む。
検出されない場合は、ステップS210に進む。
【0301】
(ステップS209)
ステップS209の処理は、ステップS208において、連続接地走行可能な離間した複数の移動範囲が検出された場合に実行する処理である。
【0302】
このステップS209の処理も、
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が実行する処理である。
【0303】
この場合、移動可能範囲決定部224は、ステップS209において、続接地走行可能な離間した複数の目標移動範囲を1つの修正移動範囲として生成する。
【0304】
ステップ209における修正移動範囲の生成処理が完了すると、再度、ステップS208の判定処理に戻る。
ステップS208において、連続して接地移動可能な離間した複数の移動範囲がないと判定すると、ステップS210に進む。
【0305】
(ステップS210)
次に、移動装置200のデータ処理部220は、ステップS210において、全てが接地移動可能な移動範囲のみによって構成される接地期間単位の移動範囲情報を生成する。
【0306】
この処理も
図6に示す移動装置200のデータ処理部220の移動可能範囲決定部224が実行する処理である。
【0307】
例えば、
図16に示すような修正移動範囲を含む移動範囲情報、すなわち、例えば以下のような全てが接地移動可能な移動範囲のみによって構成される接地期間単位の移動範囲情報を生成する。
時間t0~t1の移動範囲=x0~x1
時間t2~t3の移動範囲=xp~xq
時間t4~t5の移動範囲=x4~x5
時間t6~t9の移動範囲=x6~x9
【0308】
(ステップS211)
次に、移動装置200のデータ処理部220は、ステップS211において以下の処理を実行する。
【0309】
ステップS210において生成した全てが接地移動可能な移動範囲のみによって構成される接地期間単位の移動範囲情報に対して、二次計画法等の最適化手法を適用して最終的な脚の軌道を生成する。
【0310】
この処理は、
図6に示す移動装置200のデータ処理部220の軌道生成部225が実行する処理である。
軌道生成部226は、移動可能範囲決定部224がステップS210において決定した解析対象脚先端の車輪の移動可能範囲を参照して、脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度=V、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような脚の軌道を生成する。
【0311】
この処理は、例えば先に
図18~
図20を参照して説明した処理に相当する。
なお、具体的な軌道修正処理としては、例えば、数理最適化における非線形計画法の代表的手法である二次計画法(QP:Quadratic Programming)などを用いて軌道の最適化処理を実行する。
【0312】
この最適化処理によって修正した軌道の例が先に説明した
図20に示す「移動可能範囲決定部が生成した修正移動範囲を走行する場合の前中脚(MF)軌道を、軌道生成部が修正した軌道」である。
【0313】
このように、軌道生成部225は、移動可能範囲決定部224が決定したロボット各脚先端の車輪の移動可能範囲を参照して、各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような脚の軌道を生成する。
【0314】
(ステップS212)
次に、ステップS212において、全ての脚の解析が終了したか否かを判定する。
【0315】
例えば、処理対象が
図1に示すような6脚型の脚車輪ロボット100aである場合には、前左脚(FL)、前中脚(FM)、前右脚(FR)、後左脚(RL)、後中脚(RM)、後右脚(RR)の6本の脚の全ての軌道が算出されたか否かを判定する。
【0316】
また、処理対象が
図3に示すような4脚型の脚車輪ロボット100bである場合には、前左脚(FL)、前右脚(FR)、後左脚(RL)、後右脚(RR)の4本の脚の全ての軌道が算出されたか否かを判定する。
【0317】
この処理は、
図6に示す移動装置200のデータ処理部220の軌道生成部225、あるいは、
図6には示していないがデータ処理部220の統括的制御を行う制御部が実行する。
【0318】
未解析の脚がある場合は、ステップS102に戻り、個解析の脚に対してステップS202~S211の処理を実行する。
【0319】
ステップS212において、全ての脚の解析が終了したと判定した場合、処理を終了する。
【0320】
このフローに従った処理を行うことで、脚車輪ロボットの全ての脚の軌道が算出される。
すなわち、ロボット各脚先端の車輪が移動可能範囲内に設定されるという条件を満たし、かつ、予め規定された移動速度、すなわち、
図6に示す「移動速度情報215」の速度に従って滑らかに移動が可能となるような各脚の軌道が生成される。
【0321】
なお、軌道生成部225が生成したロボット各脚の軌道情報は、
図6に示す移動装置200の駆動部226に入力される。
駆動部226は、軌道生成部225が生成したロボット各脚の軌道情報に従って、各脚を移動させるための駆動情報を生成して、各脚を駆動する。
【0322】
これらの処理により、ロボットを予め規定した移動速度情報215(目標速度=V)に従って、ほぼ停止することなく安定して走行させることが可能となる。
【0323】
[6.本開示の移動装置のハードウェア構成例について]
次に本開示の移動装置のハードウェア構成例について説明する。
【0324】
図27は、本開示の移動装置500の一構成例を示すブロック図である。
図27に示すように、移動装置500は、データ処理部510、記憶部521、メモリ522、表示部530、センサIF540、センサ541、駆動制御部550、駆動部551、通信部560、バス570を有する。
【0325】
データ処理部310は例えば複数のコアCPU511a,bを有するマルチコアCPUであり、記憶部521やメモリ522に格納されたプログラムに従って上述した各実施例に従ったデータ処理や、その他の様々なデータ処理を実行する。
【0326】
記憶部521やメモリ522には、データ処理部310において実行するプログラム、移動装置500の走行ルート情報など、走行に必要となる様々な情報が格納される。
また、慣性計測センサ(IMU)や、画像を撮影するカメラなどによって構成されるセンサ541が取得したセンサ検出情報、例えば内部状態情報や外部環境の撮影画像や、データ処理部510において生成したデータの格納領域としても利用される。
【0327】
表示部530は、例えば移動装置500の動作状態等を示す各種情報の表示や、進行方向の撮影画像の表示部として利用される。また、タッチパネル形式としてユーザによる指示データの入力を可能な構成としてもよい。
【0328】
センサIF540は、視覚センサ等のセンサ541の検出情報を入力し、データ処理部510に出力する。あるいは、センサ検出情報を記憶部521やメモリ522に格納する。
センサ541は、
図6を参照して説明した移動装置200の状態センサ201、環境センサ202等によって構成される。例えば慣性計測センサ(IMU)や、画像を撮影するカメラなどによって構成される。
【0329】
駆動制御部550は、モータ等によって構成される駆動部551の制御を行い、移動装置500を動作させて移動させる。
例えば、データ処理部510が上述した実施例に従って算出した移動範囲に脚を配置させるための駆動処理などを行う。
【0330】
通信部560は、通信ネットワークを介して外部装置、例えばクラウド側のサーバ600との通信を行う。サーバ600は、移動装置500に対して目的地や目的地に向かうためのルート情報などを通知する。
バス570は、各構成部間のデータ転送路として利用される。
【0331】
なお、サーバ600は、必須構成ではなく、移動装置500内に目的地や目的地に向かうためのルート情報などを記憶し、移動装置500単独で処理を行う構成としてもよい。
【0332】
また、逆に、サーバ600側で上述した実施例に従ったデータ処理を実行して移動装置500の脚の移動範囲などの制御情報を決定する構成としてもよい。
例えば
図28に示すように、移動装置500とサーバ600を通信ネットワークで結び、移動装置500に装着した例えば慣性計測センサ(IMU)や、画像を撮影するカメラなどによって構成されるセンサの検出情報をサーバ600に送信する。
【0333】
サーバ600は、移動装置500から、センサ検出情報を受信し、上述した実施例に従ったデータ処理を実行して、移動装置500の各脚の移動範囲や軌道などを算出し、算出した軌道情報、または算出軌道情報に基づいて生成される駆動情報を制御情報として移動装置500に送信する。
移動装置500は、サーバ600かから受信した制御情報、例えば各脚の軌道情報や駆動情報に従って脚を駆動して移動する。
【0334】
なお、このようにデータ処理を行うサーバ600は、例えば
図29に示すようなハードウェア構成を有する。
図29に示すように、サーバ600は、データ処理部610、通信部621、記憶部622、メモリ623、表示部624、バス630を有する。
【0335】
データ処理部610は例えば複数のコアCPU611a,bを有するマルチコアCPUであり、記憶部622やメモリ623に格納されたプログラムに従って上述した各実施例に従ったデータ処理や、その他の様々なデータ処理を実行する。
【0336】
通信部621は、通信ネットワークを介して移動装置500との通信を行う。
例えば、移動装置500の慣性計測センサ(IMU)や、画像を撮影するカメラなどによって構成されるセンサの検出情報を受信する。また、サーバ600が上述した実施例に従って生成した各脚の軌道情報や駆動情報を移動装置500に送信する。また、移動装置500に対して目的地や目的地に向かうためのルート情報などを送信する処理を行ってもよい。
【0337】
記憶部622やメモリ623には、データ処理部610において実行するプログラム、移動装置500の走行ルート情報など、走行に必要となる様々な情報が格納される。
また、移動装置500の慣性計測センサ(IMU)や、画像を撮影するカメラなどによって構成されるセンサが取得したセンサ検出情報を、通信部621を介して受信した場合のこれらの受信データの格納領域としても利用される。また、データ処理部610において生成したデータの格納領域としても利用される。
【0338】
表示部624は、例えば移動装置500の動作状態等を示す各種情報の表示や、進行方向の撮影画像の表示部として利用される。また、タッチパネル形式としてユーザによる指示データの入力を可能な構成としてもよい。
バス630は、各構成部間のデータ転送路として利用される。
【0339】
[7.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0340】
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) 脚先に車輪を備えた複数の脚を有する脚車輪ロボットを駆動する制御情報を生成するデータ処理部を有し、
前記データ処理部は、
前記脚車輪ロボットの走行面情報を取得し、
前記走行面情報を利用して、前記脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、
前記脚車輪ロボットの各脚を、各脚対応の移動範囲に接地させて走行させるための各脚の軌道情報を生成する移動装置。
【0341】
(2) 前記脚車輪ロボットは、
脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を交互に入れ替えて走行する構成であり、
前記データ処理部は、
前記走行面情報を利用して、前記脚車輪ロボットの脚が接地期に走行面に接地して走行可能な各脚対応の移動範囲を算出する(1)に記載の移動装置。
【0342】
(3) 前記データ処理部は、
前記脚車輪ロボットを予め規定した目標速度に従って走行させるための各脚対応の移動範囲を算出する(1)または(2)に記載の移動装置。
【0343】
(4) 前記データ処理部は、
前記脚車輪ロボットを予め規定した歩容パラメータに従って走行させるための各脚対応の移動範囲を算出する(1)~(3)いずれかに記載の移動装置。
【0344】
(5) 前記歩容パラメータは、
前記脚車輪ロボットの各脚について、脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を規定したパラメータである(4)に記載の移動装置。
【0345】
(6) 前記データ処理部は、
前記脚車輪ロボットを予め規定した目標速度と、予め規定した歩容パラメータに従って走行させるための各脚対応の目標移動範囲を算出する目標歩容生成部と、
前記目標移動範囲を修正する移動可能範囲決定部を有し、
前記移動可能範囲決定部は、
前記走行面情報を利用して、前記脚車輪ロボットの脚が前記目標移動範囲を走行面に接地して走行可能か否かを判定し、
前記目標移動範囲が走行面に接地して走行可能な移動範囲でない場合、
前記目標移動範囲を走行面に接地して走行可能な移動範囲に修正する(1)~(5)いずれかに記載の移動装置。
【0346】
(7) 前記移動可能範囲決定部は、
前記目標移動範囲が、高さの異なる複数の階段面を含む走行面である場合、前記目標移動範囲が走行面に接地して走行可能な移動範囲でないと判定し、
前記目標移動範囲を、1つの階段面内の移動範囲に修正する(6)に記載の移動装置。
【0347】
(8) 前記移動可能範囲決定部は、
複数の離間した目標移動範囲が1つの階段面に属している場合、前記複数の離間した目標移動範囲を連結して1つの移動範囲に修正する(6)または(7)に記載の移動装置。
【0348】
(9) 前記移動可能範囲決定部は、
前記脚車輪ロボットの内部状態を検出する状態センサの検出情報に基づくロボット状態と、
前記脚車輪ロボットの外部の環境情報を検出する環境センサの検出情報に基づく外部環境情報を入力し、
入力情報を利用して、前記脚車輪ロボットの脚が前記目標移動範囲を走行面に接地して走行可能か否かを判定する(6)~(8)いずれかに記載の移動装置。
【0349】
(10) 前記データ処理部は、
前記移動可能範囲決定部が決定した前記脚車輪ロボットの各脚対応の移動範囲に基づいて、前記脚車輪ロボットの各脚対応の軌道を生成する軌道生成部を有する(6)~(9)いずれかに記載の移動装置。
【0350】
(11) 前記軌道生成部は、
前記移動可能範囲決定部が決定した前記脚車輪ロボットの移動範囲を参照して、各脚先端の車輪が前記移動範囲に設定されるという条件を満たし、かつ、予め規定された目標速度に従って移動が可能となる各脚の軌道を生成する(10)に記載の移動装置。
【0351】
(12) 前記軌道生成部は、
非線形計画法を用いた軌道の最適化処理を実行する(11)に記載の移動装置。
【0352】
(13) 前記軌道生成部は、
非線形計画法を用いた軌道の最適化処理の代表的手法である二次計画法(QP:Quadratic Programming)を用いて軌道の最適化処理を実行する(12)に記載の移動装置。
【0353】
(14) 前記データ処理部は、
前記軌道生成部が生成した各脚の軌道情報に従って、各脚を移動させる各脚対応の駆動情報を生成して各脚を駆動する駆動部を有する(10)~(13)いずれかに記載の移動装置。
【0354】
(15) 脚先に車輪を備えた複数の脚を有する脚車輪ロボットの移動制御を実行する移動装置制御方法であり、
前記移動装置のデータ処理部が、
前記脚車輪ロボットの走行面情報を取得し、
前記走行面情報を利用して、前記脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、
前記脚車輪ロボットの各脚を、各脚対応の移動範囲に接地させて走行させるための各脚の軌道情報を生成する移動装置制御方法。
【0355】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0356】
また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0357】
以上、説明したように、本開示の一実施例の構成によれば、階段等の走行面であっても脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させることを可能とする構成が実現される。
具体的には、例えば、脚先の車輪を走行面に接地させて走行する接地期と、脚先の車輪を走行面から離間させる遊脚期を交互に入れ替えて走行する脚車輪ロボットの走行面情報を取得し、脚車輪ロボットの脚が走行面に接地して走行可能な各脚対応の移動範囲を算出し、脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させるための脚の軌道情報を生成する。
本構成により、階段等の走行面であっても脚車輪ロボットの各脚を各脚対応の移動範囲に接地させて予め規定した目標速度に従って走行させることを可能とする構成が実現される。
【符号の説明】
【0358】
100 脚車輪ロボット
101 脚
102 車輪
103 回動関節
104 直動関節
110 体幹部(胴体)
120 センサ(カメラ)
200 移動装置
201 状態センサ
202 環境センサ
211 入力部
212 記憶部
213 通信部
220 データ処理部
221 内部状態推定部
222 外部環境推定部
223 目標歩容生成部
224 移動可能範囲決定部
225 軌道生成部
226駆動部
231 関節部
232 車輪部
500 移動装置
510 データ処理部
521 記憶部
522 メモリ
530 表示部
540 センサIF
541 センサ
550 駆動制御部
551 駆動部
560 通信部
570 バス
600 サーバ
610 データ処理部
621 通信部
622 記憶部
623 メモリ
624 表示部
630 バス