本発明はロボット工学分野に関する。より具体的には、移動型ロボットによる、多関節四肢の移動と動作の組み合わせを含む複雑な運動の実行に関する。
ロボットは、頭部、胴体、両腕、両手等、特定の人間的外観の特性を有していれば人型ロボットとみなすことができる。しかし、人型ロボットは多少洗練されていてよい。四肢の関節の数はより多くまたは少なくてもよい。人型ロボットは、自身のバランスを静的および/または動的に制御して、恐らくは3次元で二足歩行する、または床の上で寝返りを打つことができる。環境から信号を拾う(「聞く」、「見る」、「触る」、「感じる」等)ことができ、多少洗練された行動に従い反応することでき、且つ言葉または仕草により他のロボットまたは人間と対話することができる。人型ロボットではバランスと移動の問題がより個別に生じるが、擬似人間的外観を有する移動型ロボット、ペットロボット、または移動型産業用ロボットではより一般的に生じる。
移動型ロボットの移動は、当該ロボットの関節のアクチュエータに指令を送ることにより管理される。逆動力学を用いて、ロボットのバランスを維持しながらロボットに所望の行動を割り当てることが可能である。Kajita,Shuuji,et al.“Biped walking pattern generation by using preview control of zero−moment point.”Robotics and Automation,2003,Proceedings,ICRA’03,IEEE International Conference on Vol.2,IEEE,2003は、ゼロモーメントポイントを制御することにより、二足人型ロボットに転倒せずに軌道を辿らせる方法を開示している。ゼロモーメントポイント(ZMP)は、位置がロボットの加速および重力に依存する仮想点であって、水平慣性と重力の和が0に等しい点に対応している。ロボットがバランスを保ったままでいるために、当該ZMPが安定領域に留まっている必要がある。Kajitaが開示した二足ロボットの動力学モデルにより、ロボットのZMPと共に重心(CoM)が安定領域に留り、従ってロボットが転倒する危険性無しに軌道に沿って歩行することができる。
Kajitaによれば、ロボットへ送られる全ての指令は、ロボットに平衡を保ちながら歩行させることを目的としている。従って、ロボットの歩行に起因するCoMまたはZMPの自然なバランスは、ロボットの他の多関節四肢の動作により補償することができる。例えば、ロボットの腕の位置および加速を用いて、ロボットのZMPまたはCoMの過剰な動作を補償することができる。
ところで、多くの用途において、例えば相互作用を規定すべくロボットに多関節四肢の動作を実行させることが望ましい。そのような多関節四肢の動作は例えばダンスまたは振付けを規定すること、または人間の行動、例えば握手に対応することができる。ロボットの足の移動によるそのような関節の動作の組み合わせにより、ロボットのZMPまたはCoMが自身の安全な領域から離れ、従ってロボットが転倒する恐れがある。
ロボットの全ての関節に、軌道を辿りながらダンス動作になるべく近い動作を実行させる指令を決定することが可能である。特に、逆動力学を用いて目標動作になるべく近い動作を実行させる指令をロボットの各関節に割り当てることが可能である。しかし、ロボットが多数の関節を有する場合、逆動力学も多数の自由度を有するため、この解決策の計算負荷が高まる。これは、脚、腕等に多数の関節を有する大部分の現代型ロボットに当てはまる。この場合、逆動力学は、ロボットに搭載された限られた計算リソースでリアルタイムに計算するには複雑過ぎる。
Ramos,O.,et al.“Dynamic whole body motion generation for the dance of a humanoid robot”、IEEE Robotics&Automation Magazine(RAM)(2015)は、ロボットにダンス動作を再現させる方法を開示している。Ramosは、逆動力学を用いてロボットの運動を生成する指令、および逆運動学を用いてダンス動作用の指令を別々に計算する方法を開示しており、これらの指令の生成はタスクのスタック上のタスクとして並列に実行される。
Ramosの文献では、逆動力学を用いて人間パフォーマの軌道および結果的に得られるロボットのCoMの予測軌道を追跡すべく送られる指令を動的に計算する。逆運動学を並列に用いて、ロボットのバランスを維持しながら、ダンサーのダンス動作になるべく近いダンス動作をロボットに行わせる指令計算する。この方法は、ロボットが、軌道を辿ってダンス動作を実行することを同時にできるようにする利点がある。実際、逆動力学は限られた数の自由度で実行されるため、計算負荷が過度に高い訳ではない。
しかし、逆動力学によりロボットのCoMの軌道が計算されたならば、Ramosの方法はダンス動作の追随に限定される。実際、逆動力学を用いて他の四肢の動作を計算する場合、Ramosが開示する方法ではロボットのバランス、特にCoMおよびZMPの位置を維持しなければならない。従って、ロボットの多関節四肢の多くの動作は、ロボットのバランスを失わせて転倒させるため実行不可能である。従って、Ramosの方法は、ダンサーのダンス動作の限られた模倣しか行えない。
従って、軌道を辿ること、および行動の一部である多関節四肢の表現力豊かな動作の実行を同時に可能にする指令をリアルタイムに計算可能なロボットに対するニーズがある。この問題はダンスの振り付けに限定されず、握手する、または想定外の事象を管理する、例えばロボットの基部で軌道を辿りながら腕または胴で障害物を除ける、等の動作を実行しようとした際に生じる。
このため、本発明は、複数の多関節四肢と、プロセッサとを有する移動型ロボットであって、プロセッサが、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力として受信し、入力に基づいて移動型ロボットの重心の目標軌道を計算し、移動型ロボットの重心の目標軌道および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道を計算し、移動型ロボットの重心の予測軌道および移動型ロボットの行動を規定する命令に基づいて多関節四肢の予測動作を計算すべく構成されている移動型ロボットを開示する。
有利な特徴として、プロセッサは、一連の時間刻みで、移動型ロボットの多関節四肢の重心の位置と、移動型ロボットの重心の位置とを、移動型ロボットの目標位置、および移動型ロボットの多関節四肢の重心の質量および位置に基づいて計算することにより、移動型ロボットの重心の目標軌道を計算すべく構成されている。
有利な特徴として、プロセッサは、移動型ロボットの動的モデルを用いて移動型ロボットの重心の予測軌道を計算すべく構成されている。
有利な特徴として、プロセッサは、各々が移動型ロボットの基部の重心および当該ロボットの上体の重心である2つの質量を含む二重倒立振り子として移動型ロボットをモデル化し、移動型ロボットのゼロモーメントポイントが、移動型ロボットの基部に対して規定された位置を有する多角形から決して外れず、且つ移動型ロボットの基部が最大加速度および速度を有するという制約を定式化し、コスト関数、すなわち目標軌道内での移動型ロボットの重心の位置、予測軌道内での移動型ロボットの重心の位置、目標軌道内での移動型ロボットの重心の速度、および予測軌道内での移動型ロボットの重心の速度の差のうち少なくとも1つに基づくコスト関数を最小化すべく二重倒立振り子の制御の問題を解くことにより、移動型ロボットの重心の予測軌道を計算すべく構成されている。
有利な特徴として、プロセッサは、コスト関数を最小化すべく移動型ロボットの動的制約に関して多関節四肢の予測動作を計算すべく構成されている。
有利な特徴として、コスト関数は、一連の時間刻みにおける、移動型ロボットの重心の予測位置間の距離、多関節四肢の目標速度と多関節四肢の予測速度の差、および多関節四肢の目標位置と多関節四肢の予測位置との距離のうち少なくとも2つの加重平均である。
有利な特徴として、プロセッサは、関節角度、関節速度、および関節加速度の制約限界の下で多関節四肢の予測動作を計算すべく構成されている。
有利な特徴として、移動型ロボットの行動を規定する命令は、到達すべき少なくとも1つの計時された姿勢により規定されていて、プロセッサは更に、移動型ロボットの前記少なくとも1つの計時された姿勢を、移動型ロボットに対する多関節四肢の目標軌道に変換すべく構成されている。
有利な特徴として、移動型ロボットの重心の予測軌道は、ある時間枠にわたる一連の時間刻みにおける移動型ロボットの予測位置の値および重心の速度により規定される。
有利な特徴として、多関節四肢の予測動作は、前記一連の時間刻みにおける多関節四肢間の角度および多関節四肢間の角速度の1つ以上の値により規定され、前記一連の時間刻みにおける多関節四肢間の角度および多関節四肢間の角速度の前記1つ以上の値が、モーターのセットポイント指令に変換される。
有利な特徴として、所定の時間刻みは20ミリ秒であり、時間枠の持続時間は1.6秒である。
有利な特徴として、移動型ロボットの運動を規定する命令、および移動型ロボットの行動を規定する命令はユーザーインターフェース上でユーザーにより設定される。
有利な特徴として、移動型ロボットの運動を規定する命令は所定の軌道に対応し、プロセッサは、想定外の事象の発生時に移動型ロボットの行動を規定する命令を計算すべく構成されている。
本発明はまた、複数の多関節四肢を有する移動型ロボットの運動および行動を規定するユーザーインターフェースを開示しており、前記ユーザーインターフェースは、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力としてユーザーに設定させ、入力に基づいて移動型ロボットの重心の目標軌道を計算し、移動型ロボットの重心の目標軌道および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道を計算し、移動型ロボットの重心の予測軌道および移動型ロボットの行動を規定する命令に基づいて、多関節四肢の予測動作を計算するコンピュータ符号命令を含んでいる。
本発明はまた、複数の多関節四肢を有する移動型ロボットの予測動作を計算する方法を開示しており、前記方法は、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力として受信するステップと、入力に基づいて移動型ロボットの重心の目標軌道を計算するステップと、移動型ロボットの重心の目標軌道および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道を計算するステップと、移動型ロボットの重心の予測軌道および移動型ロボットの行動を規定する命令に基づいて多関節四肢の予測動作を計算するステップとを含んでいる。
本発明により、移動型ロボットが目標軌道を辿り、バランスを失うことなく行動を実行することができる。
本発明により、移動型ロボットの自由度が小さいか、または多関節四肢の目標軌道の制約が厳しい場合であっても移動型ロボットがバランスを失うことなく多関節四肢の目標軌道を正確に辿ることができる。
本発明により、ユーザーは移動型ロボットの行動をより自由に規定することができる。
本発明により、ユーザーは、従来技術では実行できなかったであろう、ロボットが実行可能な動作を規定することができる。
本発明は、計算の複雑度を抑えながら移動型ロボットに内蔵することができる。
本発明により、ロボットが軌道を辿っている場合、想定外の制約または相互作用を考慮すべく、例えば想定外の障害物を回避すべく、または対話可能な人間またはロボットに遭遇した場合の行動を取るべくロボットの行動をリアルタイムに適合させることができる。
本発明は、ロボットのファームウェアの簡単な更新によりロボット内に実装することができる。
以下の多数の例示的実施形態および添付の図面の説明から本発明に対する理解が深まると共に各種の特徴および利点が明らかになろう。
本発明の多くの実施形態における移動型ロボットの物理アーキテクチャを示す。
本発明の多くの実施形態におけるロボットのソフトウェアモジュールの機能アーキテクチャを示す。
本発明によるロボットの関節の重心の軌道および角速度を計算するソフトウェアモジュールのアーキテクチャを示す。
本発明の多くの実施形態における移動型ロボットの重心の予測軌道を計算する場合の動的制約の定式化に用いる支持多角形の例を示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
従来技術の方法および本発明の実施形態における方法を各々示す。
従来技術の方法および本発明の実施形態における方法を各々示す。
図1に、本発明の多くの実施形態における人型ロボットの物理アーキテクチャを示す。
同図の特定のロボット100は、本発明を実装可能な人型ロボットの一例に過ぎない。同図のロボットの下肢は、歩行機能は有していないが、当該ロボットが置かれた表面上を転がる基部140に乗って任意の方向に移動することができる。本発明は、歩行に適合されたロボットに容易に実装可能である。例えば、当該ロボットは、約120cmの高さ110、約65cmの奥行き120、および約40cmの幅130を有している。特定の実施形態において、本発明のロボットは、自身を取り巻く環境にメッセージ(音声、映像、ウェブページ)を伝達する、またはタブレットの触覚インターフェースを介してユーザーから入力を受信することができるタブレット150を有している。タブレットのプロセッサに加え、本発明によるロボットはまた自身のマザーボードのプロセッサも使用するが、これは例えばIntel(商標)社製ATOM(商標)Z530であってよい。本発明のロボットはまた有利な特徴として、マザーボードと、特に本発明の特定の実施形態において四肢の関節のモーターおよびロボットが車輪として用いるボールを制御する磁気ロータリーエンコーダ(MRE)およびセンサを搭載したボードとの間のデータフローの処理専用のプロセッサを含んでいる。モーターの種類は、硬い関節に必要とされる最大トルクの程度に応じて異なっていてよい。例えば、e−minebea(商標)社製ブラシ付きDCコアレスモーター(例:SE24P2CTCA)、またはMaxon(商標)社製ブラシレスDCモーター(例:EC45_70W)を用いてよい。MREは好適には、12または14ビットの精度を有する、ホール効果を用いる方式である。
本発明の実施形態において、図1に示すロボットはまた各種のセンサを含んでいる。それらの一部は、ロボットの位置および動作の制御に用いられる。これは例えば、ロボットの胴体に設置された、3軸ジャイロスコープおよび3軸加速度計を含む慣性装置の場合である。ロボットはまた、毎秒5フレームで5メガピクセルの解像度、および水平方向57°、垂直方向44°の視野(FOV)を有するShenzen V−Vision Technology(商標)社製(OV5640)等のシステムオンチップ(SOC)方式の2つの2DカラーRGBカメラ160をロボットの額部(上部および底部)に含んでいてよい。毎秒20フレームで0.3メガピクセルの解像度、および2Dカメラと同一FOVを有するASUS XTION(商標)社製SOCセンサ等、1つの3Dセンサ170もまた、ロボットの両眼の裏側に含まれていてよい。本発明のロボットはまた、自身を取り巻く環境内における物体/生物体に対する自身の位置を検出可能であるように、レーザー線発生器を、例えば頭部180aに3つおよび基部180bに3つ備えていてよい。本発明の他の実施形態において、ロボットは基部にレーザー線発生器だけを備えている。本発明のロボットはまた、自身を取り巻く環境内における音声を検出可能なマイクロフォンを含んでいてよい。一実施形態において、1kHzで300mV/Pa±3dBの感度、および300Hz〜12kHz(1kHzに対して10dB)の周波数範囲を有する4つのマイクロフォンがロボットの頭部に埋め込まれていてよい。本発明のロボットはまた、自身を取り巻く環境内の物体/人間との距離を測定すべく、2つのソナーセンサ190を基部の正面および背面に含んでいてよい。
ロボットはまた、人間との対話を可能にすべく触覚センサを自身の頭部および手に含んでいてよい。また、自身の経路上で遭遇する障害物を検出すべくバンパー1B0を自身の基部に含んでいてよい。
ロボットはまた、意図された軌道と実際の軌道との間の差を計算することにより、自身の上部要素が触れた物体との接触を検出することができる。この目的の方法は、同一出願人により同日出願された欧州特許出願第EP14305848.5号に開示されている。
自身の感情を翻訳して自身を取り巻く環境内の人間と通信すべく、本発明のロボットはまた、
− 例えば自身の両眼、両耳、および両肩にLED、および
− 例えば2つのスピーカーを両耳に含んでいてよい。
本発明のロボットは、イーサネット(登録商標)RJ45またはWiFi802.11接続を介して基地局または他のロボットと通信可能である。
本発明のロボットは、約400Whのエネルギーを有するリチウム鉄リン酸塩電池により電力供給することができる。ロボットは、自身が搭載する電池の種類に適した充電ステーションにアクセスすることができる。
ロボットの位置/動作は、センサの測定値を参照しながら、各四肢により規定された連鎖および各四肢の終端で規定されたイフェクタを起動するアルゴリズムを用いて、自身のモーターにより制御される。
センサ160、170、180、190、1A0または1B0から、あるいは自身の上部要素の物体との接触の評価結果から、欧州特許出願第EP14305849.3号に開示されているように、ロボットの計算モジュールは、自身を取り巻く環境内における障害物の局所的マップを計算することができる。
図2に、本発明の多くの実施形態におけるロボットのソフトウェアモジュールの機能アーキテクチャを示す。
図2は、本発明のいくつかの実施形態を実装可能にする物理および機能アーキテクチャの構成図である。この種のロボットは有利な特徴として、本発明の実施形態におけるロボットの機能の操作を可能にする高水準ソフトウェアを備えている。NAOQIと呼ばれるこの種のソフトウェアアーキテクチャは特に、2009年10月10日公開の特許出願WO2009/124955に開示されている。当該アーキテクチャは、ロボットとPCまたは遠隔サイトとの間の通信を管理すると共に、本発明の実装に必要なソフトウェアインフラを与えるソフトウェアを交換するための基本機能を含んでいる。また、欧州特許出願第EP14305578.8号は、高度な相互作用/対話能力を備えたロボットを操作すべく設計されたオペレーティングシステムを開示している。
NAOQIはロボット用途に最適化されたフレームワークであり、いくつかの言語、特にC++、Python、およびUrbiに対応している。本発明の関連分野で、NAOQIの以下のモジュールが特に有用である。
− モジュールALMemory(210)は、NAOQIの各種のモジュール間で共有されるメモリを管理する。
− モジュールDCM(220)は、物理的ロボット(モーター、センサ)との通信を管理する。
− モジュールALRobotPose(230)は、基準姿勢と比較することによりロボットの現在の姿勢を計算する。
− ALMotionモジュール(240)は、ロボットの動作を管理する。
これらの4つのモジュールは有利な特徴としてC++でコーディングされている。同図はまた、モジュール間のデータフローを示す。特に、転倒回避および衝突回避機能の実装に必要な入力は、
− センサ(例えばカメラ、レーザー線発生器、ソナー、触覚センサ)の値、
− ロボットの姿勢である。
生じ得る衝突を検出する場合、本発明を実装すべく設計された特定の機能は、ロボットの軌道を更新する指令を発する。
また同図に、完全に例示的に、各モジュールにより処理されたデータのリフレッシュサイクル用の値を示しており、ロボットの姿勢および転倒管理データの更新に20ミリ秒、いくつかのセンサの値に10ミリ秒である。ロボットを取り巻く環境内における障害物のマップは、3Dカメラが撮像する画像処理に要する典型的なサイクル時間である100ミリ秒毎に更新できるが、これは一例に過ぎない。
図3に、本発明によるロボットの重心の軌道および関節の角速度を計算するソフトウェアモジュールのアーキテクチャを示す。
当該アーキテクチャ300のモジュールはC++、またはプロセッサによりネイティブに実行可能な任意の言語、例えばC言語、仮想マシンで実行可能な任意のインタープリタ言語、例えばJava(登録商標)、任意のスクリプト言語、例えばPythonでコーディングされていてよい。
本発明のロボットは、ソフトウェアモジュール、例えばアーキテクチャ300のモジュールをロードする場合、ロボットの重心(CoM)の予測軌道、および多関節四肢の予測動作を計算すべく構成されたプロセッサを有している。
アーキテクチャ300のソフトウェアモジュールを実行すべく構成されたプロセッサは、移動型ロボットの運動を規定する命令310、および移動型ロボットの行動を規定する命令311を入力として受信する。
本発明の好適な実施形態において、移動型ロボットの運動を規定する命令310は、移動型ロボットの目標軌道である。命令310は例えば、一連の時間刻みで、且つある時間枠にわたり、移動型ロボットの一連の位置により設定することができる。当該ロボットが図1に示すロボットのように車輪付きロボットである場合、命令は移動型ロボットの基部の一連の位置に対応していてよい。本発明の多くの実施形態において、命令310は、ロボットの所定の点、またはロボットの本体に堅牢に取り付けられたフレームの位置を指している。
命令310が適用される点を決定するための多くの異なる実施形態が可能である。ロボットが車輪付きロボットである実施形態において、命令310は例えば、移動型ロボットの基部の重心の一連の位置を規定することができる。ロボットが歩行型ロボットである実施形態において、命令310は例えば、ロボットの足の中央の点の一連の位置を規定することができる。
本発明の各種実施形態によれば、移動型ロボットの行動を規定する命令311は、異なる仕方で表されていてよい。例えば、当該命令は、一連の時間刻みにおいて、ロボットの全ての関節動作の角度値および角速度を含んでいてよい。ロボットの行動を規定する命令311はまた、到達する1つ以上の計時された姿勢を含んでいてよい。これは例えばロボットが握手するように命令された場合であり、ロボットの行動を規定する命令311は、時点tで握手しているときのロボットの姿勢の記述を含み、プロセッサは、ロボットの運動学的および機械的制約の下に留まりながら、当該位置に到達するのに最も効率的な仕方を決定するより大きな自由度を有している。
本発明の多くの実施形態において、移動型ロボットの行動を規定する命令311は、予め計算されている。これは例えば、ロボットの行動が事前に意図されている場合である。これは例えばロボットが事前に準備されたダンスの振付けを実行する場合である。本発明の他の実施形態において、移動型ロボットの行動を規定する命令311はその場で計算される。これは例えば、ロボットが、センサからの入力に基づいて、取るべき行動をリアルタイムに決定する場合である。例えば、ロボットは、人間を見かけたときに、近寄って握手することを決定し、当該人間と握手するために到達すべき目標姿勢および辿るべき軌道を生成する。別のシナリオにおいて、ロボットは軌道を辿ることができる。次いで、想定外の障害物が、ロボットが回避可能な軌道に現れる。次いで、障害物を回避するために到達すべき計時された姿勢をその場で生成し、目標軌道および障害物を回避するために到達すべき計時された姿勢に基づいて、多関節四肢の予測動作を計算する。
アーキテクチャ300は、入力に基づいて移動型ロボットの重心の目標軌道330を計算するソフトウェアモジュール320を含んでいる。ロボットのプロセッサは、ソフトウェアモジュール320をロードして実行する場合、ロボットの目標軌道および移動型ロボットの行動を規定する命令に基づいて、ロボットの重心の目標軌道を計算すべく構成されている。
本発明の多くの実施形態において、移動型ロボットの運動を規定する命令310が、一連の計時された位置により形成されたロボットの目標軌道ではない場合、プロセッサは、移動型ロボットの運動を規定する命令310を一連の計時された位置により形成されたロボットの目標軌道に変換すべく構成されている。
同様に、本発明の多くの実施形態において、プロセッサは、移動型ロボットの行動を規定する命令311がロボットの多関節四肢の目標軌道ではない場合、移動型ロボットの行動を規定する命令311をロボットの多関節四肢の目標軌道に変換すべく構成されている。
本発明の多くの実施形態において、プロセッサは、一連の計時された位置により形成されたロボットの目標軌道およびロボットの多関節四肢の目標軌道に基づいて、ロボットの重心の目標軌道330を計算すべく構成されている。本発明の多くの実施形態において、プロセッサは、ある時間枠にわたり一連の時間刻みで、ロボットの位置に基づいてロボットの重心の位置、および一連の時間刻みでロボットの多関節四肢の位置および質量を計算することにより、当該計算を直接的に実行すべく構成されている。本方法は有利な特徴として、限られた計算能力を用いてロボットの重心の目標軌道を高速且つ直接的に計算することを可能にする。
アーキテクチャ300は更にソフトウェアモジュール340を含み、プロセッサは、ソフトウェアモジュール340をロードして実行する場合、移動型ロボットの重心の目標軌道330および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道350を計算すべく構成されている。
本発明の多くの実施形態において、プロセッサは、第2のモジュール340をロードする場合、移動型ロボットの動的モデルを用いてロボットの重心の予測軌道を計算すべく構成されている。本発明の多くの実施形態において、動的モデルは、移動型ロボットの予測的制御の線形モデルである。
本発明の多くの実施形態において、当該モデルは倒立振り子モデルである。これは例えば、ロボットが二足歩行ロボットである場合であり、従ってプロセッサは、
− 移動型ロボットを、当該ロボットの重心である1つの質量を含む二重倒立振り子としてモデル化し、
− 移動型ロボットのゼロモーメントポイントが当該ロボットに対して規定された位置を有する多角形から決して外れないという制約の下で、倒立振り子の制御の問題を解くべく構成されている。
本発明の多くの実施形態において、移動型ロボットは車輪付き移動型ロボットであり、当該モデルは二重倒立振り子モデルであって、プロセッサは、
− 移動型ロボットを、各々が移動型ロボットの基部の重心およびロボットの上部の重心である2つの質量を含む二重倒立振り子としてモデル化し、
− 移動型ロボットのゼロモーメントポイントが移動型ロボットに対して規定された位置を有する多角形から決して外れず、且つ移動型ロボットの基部が最大加速度および速度を有している制約の下で二重倒立振り子を制御する問題を解くべく構成されている。
このような予測的制御の線形モデルの一例がJ.Lafaye et al.,Linear Model Predictive Control of the Locomotion of Pepper,a humanoid robot with omnidirectional wheels,2014 14th IEEE−RAS International Conference on Humanoid Robots(Humanoids),November 18−20,Madrid,Spainに開示されている。
より具体的には、当該ロボットが図1に示すロボットのような車輪付きロボットである実施形態において、プロセッサは、二質点モデルを用いるロボットの重心の予測軌道を計算すべく構成することができ、bは移動基部の重心(CoM)の位置、cは上体のCoMの位置である。当該二質点モデルのニュートンおよびオイラー方程式は、以下のように書くことができる。
ここに、Fは地面との接触力、pは対応する圧力中心(CoP)、m
bおよびm
cは移動基部および上体の質量である。
ロボットが水平な地面上で移動している仮定の下で、以下の仮定および表記により上式を簡素化することができる。
− 水平および垂直方向の両軸に対して各々上付き添え字x、y、z関連付け、
− 重力ベクトルをgx=gy=gz=gと定義し、
− ロボットが水平な地面上を移動する場合、ZMPの高さは一定pz=0であり、
− 移動基部の高さは一定bz=lであり、
− 上体の上下運動の影響を無視し、その高さも一定cz=hである。
本発明の他の実施形態において、上式は水平でない地面、または水平な地面と水平でない地面との間の移動に適合されている。本明細書では、制御問題の例として水平な地面上を移動するロボットを挙げる。しかし、当業者であれば公知の従来方法を用いて他のケースに軌道の計算を適合させることができる。例えば、Lafaye,J.(2015),Commande des mouvements et de l’equilibre d’un robot humanoide a roues omnidirectionnelles(Doctoral disseration,Universite Grenoble Alpes)に、ロボットが水平でない地面上に移動するケース、2つの車輪だけが地面に接触しているケース等、より複雑なケースにおいて二重倒立振り子を用いて、図1に開示するロボットと同様の車輪付きロボットの軌道の計算を開示している。
上述の仮定の下で、ニュートンおよびオイラー式を二質点に関して線形な式に簡素化することができる。
ZMPの位置は(3)から直接得ることができる。
ところで、ロボットのCoMの位置は、移動基部の重心の位置b
xy、移動基部の質量m
b、上体の位置c
xy、および上体の質量のm
cに基づいて直接得ることができる。
ロボットの重心の位置は、随時次式により定義される。
移動基部のCoM、上体のCoM、およびロボットのCoMの一連の位置として定義される予測軌道を各々B
xy、C
xy、A
xyと表記する。移動基部、上体のCoM、およびロボットのCoMの一連の位置と加速度のペアとして定義される予測軌道を各々
と表記する。
本発明の多くの実施形態において、滑らかな接触曲線を有するロボットの滑らかな運動を生成するために、プロセッサは、二質点がサンプリング周期Tの三次動力学に従うとの仮定の下で、ロボットのCoMの予測軌道を計算すべく構成されている。
本発明の多くの実施形態において.プロセッサは、移動型ロボットの重心の目標軌道330
を辿るべく、移動型ロボットの重心の予測軌道350
を計算すべく構成されている。本発明の他の実施形態において、予測および目標軌道は、ロボットの重心の予測および目標位置(各々A
xyおよび
)、またはロボットの重心の予測および目標速度(各々
)のみを用いて定義することができる。
本発明の多くの実施形態において、プロセッサは、軌道のコスト関数を最小化すべく構成されている。例えば、プロセッサは、移動型ロボットの重心の予測軌道350
を計算すべく構成することができ、次式を最小化する。
本発明の他の実施形態において、コスト関数は、2以外のべき指数でのロボットの重心の位置、速度と位置の差の加重平均に依存してよい。コスト関数の他の例は次式で与えられる。
より一般的には、移動型ロボットの位置と基準位置との距離、移動型ロボットの速度と基準速度の差、および/またはその微分に伴いコストが増大する任意のコスト関数を用いることができる。
コスト関数O1の最小化により、目標軌道になるべく近い軌道を移動型ロボットのCoMに辿らせる。本発明の各種実施形態において、最小化されることでロボットが目標軌道になるべく近い軌道を辿るとすぐに、他のコスト関数を用いてもよい。
本発明の多くの実施形態において、プロセッサは、移動型ロボットの軌道に関するコスト関数の他に、軌道の他の特徴、例えば揺動に対する堅牢さ、または運動の滑らかさを向上させるコスト関数を最小化すべく構成することができる。
ロボットの安定性が優先されることを保証すべく、プロセッサは多くの異なる制約の下で予測軌道を計算すべく構成されている。1つの動的制約は、ロボットの転倒を回避すべくZMPを支持多角形内に維持するものである。
図4に、本発明の多くの実施形態における移動型ロボットの重心の予測軌道を計算する場合に動的制約の定式化に用いる支持多角形の例を示す。
図4は、軸402、403により規定される座標系(x、y)における移動型ロボットの基部の重心401に対する位置を示す。支持多角形410、430、440、および長方形420は、移動型ロボットの基部の重心401に対して固定された位置を有し、その向きはロボットの向きに伴い変化する。
運動の動釣バランスは、ロボットがバランスを保ち続けるには、上でpxyとして定義された移動型ロボットのZMPが支持多角形内に留まることを要する。本発明の多くの実施形態において、当該ロボットは、図1において示すロボットのように概略三角形の基部を有する車輪付きロボットである。従って支持多角形はロボットを中心とする三角形D410により表すことができ、ロボットの基部を表している。
本発明の多くの実施形態において、ロボットの向きに関して制約を一定に保つべく、支持多角形は、支持三角形に書き込まれた円D’430である。本発明の更に他の実施形態において、制約を線形に保つべく、支持多角形は当該円内に書き込まれた八角形D”440である。八角形D”440の寸法は、当該八角形内の任意の点もまた円D’430内に位置するように、且つ円の良い近似を与えるように計算される。多角形の使用により有利な特徴として、円内に点を含めることよりも極めて高速である一次不等式だけを計算しながら、ZMPが円内に留まるか否かを調べることが可能になる。八角形D”440は、計算の複雑度と計算精度との間の良い妥協点である。
より一般的には、多角形の辺が多いほど精度は良いが計算量が増える。従って、円のより良好な近似を得るべく、より多くの辺を有する多角形を用いることができる。一方、より低い計算の複雑でZMPが円内に存在するか否かを判定すべく、辺がより少ない多角形、例えば正方形を用いることも可能である。
ZMP制約は、次式により定式化することができる。
Pxy−Bxy∈D” (7)
ここにpxyは、ZMPの一連の位置PxyによるロボットのZMPの軌道を表し、Bxyは、移動型ロボットの重心の一連の位置bxyによる移動型ロボットの重心の予測軌道を表している。
本発明の他の実施形態において、支持多角形は異なる形状およびサイズを有していてよい。当業者であれば、発明の才がなくても、所与のロボットに対して適切な支持多角形を定義することが可能である。
ロボットの重心の最大速度および加速度に対して更なる制約を規定することができ、例えば次式のように規定することができる。
式(8)、(9)において、値
は各々ロボットの移動基部の最大速度および加速度である。これらはロボットの機械的能力に基づいて決定された所定の値であってよい。本発明の他の実施形態において、値
を有する最大速度および加速度の制約は移動型ロボット全体の重心で定式化できる。本発明の他の実施形態、例えばロボットが二足ロボットである実施形態において、最大速度および加速度は、動的能力、例えば移動型ロボットの歩行能力に応じて規定することができる。
本発明の多くの実施形態において、プロセッサはまた、ロボットの多関節に基づいて、ロボットの上体および基部の重心の相対位置に対する制約を定式化すべく構成されている。例えば、図1に示すロボットの関節限界に基づいて、上体の重心が、ロボットの基部の重心の回りの矩形領域H420内に留まるものと判定することができる。従って上体の最大リーチの制約を次式により定式化することができる。
− kxy≦Cxy−Bxy≦kxy (10)
本発明は上述の例に限定されない。例えば、他の種類のロボット、例えば二足ロボットに対して他の簡素化または仮定を行うことができる。上で開示したような動的モデルを用いることで、ロボットが自身の重心の予測軌道を、移動型ロボットの動的特性を考慮しながら計算の複雑度を抑えて計算できるようになる。
本発明の多くの実施形態において、ロボットの動的モデルはまた極めて異なっていてよい。例えば、ロボットの重心を表す単一の質点を有する簡単な倒立振り子としてロボットをモデル化して、当該質点上での最大速度および加速度に対する制約を定式化することができる。
図3に戻り、アーキテクチャ300は更にソフトウェアモジュール360を含み、プロセッサは、ソフトウェアモジュール360をロードして実行する場合、移動型ロボットの重心の予測軌道350および移動型ロボット311の行動を規定する命令に基づいて多関節四肢の予測動作370を計算すべく構成されている。
移動の行動を規定する命令311の可能な形式が既に議論されている。プロセッサがモジュール320を実行する場合に移動型ロボットの行動を規定する入力命令311をロボットの多関節四肢の目標軌道に変換すべく構成されている本発明の多くの実施形態において、ロボットの多関節四肢の目標軌道を、移動型ロボットの行動を規定する命令311の代わりに用いることができる。
本発明の多くの実施形態において、プロセッサは、一般化逆運動学を用いて多関節四肢の予測動作370を計算すべく構成されている。本発明の多くの実施形態において、これは、少なくとも多関節四肢で目標軌道を有するベクトルYと基準ベクトルYrefとの間のコスト関数を最小化すべく、少なくとも多関節四肢の目標軌道で規定しているベクトルYを計算するものである。例えばベクトルYは、
− ロボットの胴体の速度、
− 多関節接合部の速度を含んでいてよい。
本発明の多くの実施形態において、運動学的連鎖の一部でない多関節接合部、例えば手の多関節接合部は考慮されない。同一アクチュエータにより制御される多関節接合部をベクトルY内の単一変数にマッピングすることができる。
プロセッサは、一般化逆運動学に対する制約を定式化すべく構成されている。本発明の多くの実施形態において、これらの制約は、
− 角度および/または速度に関する関節限界。この制約は行列Aおよびbにより定義される次式により表される。
AY+b=0 (11)
− ロボットのバランス。CoMは、MPCが出力した軌道に厳密に追随すべく制約される。CoMの軌道は支持多角形に関して以前に計算されているため、ロボットの重心に当該軌道を辿らせることでロボットのバランスを保つことが保証される。この制約は行列Cおよびdにより定義される次式により表される。
CY+d≧0 (12)
他の制約も、多関節接合部の機械的限界およびロボットのバランスを表すのであれば可能である。
プロセッサは、(11)、(12)で規定される制約の下で、例えばベクトルYと基準ベクトルY
refとの間のコスト関数を最小化することにより多関節四肢の動作を計算すべく構成することができる。
ここにQは二次基準である。本発明の他の実施形態において、他のコスト関数も、多関節接合部の目標動作と比較して、多関節接合部の速度および位置が最小化できるのであれば可能である。
一般化逆運動学を用いて最適化されたベクトルYは、ロボットの全ての関節を適切に表すべく高次元を有していてよい。従って、ベクトルY全体に逆動力学を適用することにより、ロボット全体の軌道を決定することは受容できない程度に高いコンピュータコストが生じるであろう。対照的に、一般化逆運動学は、逆動力学よりも計算コストが極めて低い。従って、自由度がより低いロボットの動的モデルに対し逆動力学を用いて移動型ロボットの予測軌道を計算し、自由度がより高い一般化逆運動学を用いて多関節四肢の動作を計算することにより、移動型ロボットの軌道および多関節四肢の動作を合理的な計算コストで適切に計算することができる。
本発明の多くの実施形態において、プロセッサは、同一時間枠にわたり、単一の時間刻みで、軌道、速度等の全ての計算を実行すべく構成されている。例えば、プロセッサは、20ミリ秒毎に多関節四肢370の予測動作を計算することができ、20ミリ秒のサンプルを用いて2sの時間範囲にわたり各軌道を計算することができる。
多関節四肢370の予測動作が計算されたならば、モーターおよび/またはアクチュエータに読み込まれて実際にロボットの動作を実行すべく用いることができる。
本発明が適用できるのは上で開示した例だけではない。特に、人型ロボットだけでなく移動基部および多関節腕を有する産業用ロボットにも適用可能である。
図5a、5b、5c、5d、5eおよび5fは各々、本発明によるロボットの動作を設定するためのユーザーインターフェースの2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を示す。
図5aに、本発明によるロボットの動作を設定するためのユーザーインターフェースの一例を示す。当該インターフェースは、多数のサブウインドウを含むウインドウ500aを含んでいる。
第1のサブウインドウ510を用いて行動を作成、選択、および編集する。第2のサブウインドウ520を用いて実行する動作の種類を選択する。図5aに示す例において、動作は「〜に沿って移動」であり、軌道上のロボットの移動を規定する。
第3のサブウインドウ530aはユーザーにロボットの目標軌道を設定させる。ユーザーは特に、始点531a、終点532aおよび、中間軌道533aを設定することができる。本例では、軌道は始点と終点の間の直線を規定する。サブウインドウ534aを用いて、ユーザーに動作の特徴(特に持続期間535a)を設定させる。
サブウインドウ540は、ロボットの動作および姿勢のプレビューを示している。
図5bに、本発明によるロボットの動作を設定するためのユーザーインターフェースの第2のビューを示す。
第2のビューは、同様にサブウインドウ510、520および540を有するウインドウ500bを規定している。
ウインドウ500bはまた、関節の目標動作を設定するためのサブウインドウ550bを含んでいる。ユーザーは、所定の種類の動作、例えば「腰振り」動作558bを選択することができる。本例では、「腰振り」動作は、ロボットの腰周辺で当該ロボットの上体が左右に動く動作に対応している。
ユーザーは更に、ロボットの動作の特徴を設定することができる。「腰振り」動作の例において、ユーザーは、時間軸552bに示す時間に対して振幅551bの軸に示す腰の動作の振幅を設定することができる。動作は、本例では基準点554b、555b、556bおよび557bに基づいて得られた(時間、振幅)スプライン553bで示される。
図5bに、ロボットの行動の低レベル指令の一例を示す。本発明の他の実施形態において、到達すべき姿勢等のより高水準の指令を用いることができる。例えば、「ある位置へ手を伸ばす」または「所与の位置/時点で手を降ろす」等の高水準指令を用いることができる。従ってこのような高水準指令に基づいて、ロボットの計時された一連の姿勢を決定し、これをロボットのCoMおよびロボットが到達するであろう姿勢の軌道の決定に用いることができる。
図5cに従来技術のロボットの軌道の一例を示す。
より具体的には、図5cは、ウインドウ500a内で設定された目標軌道、およびウインドウ500b内で設定された関節の目標動作に基づいて、従来技術により計算されたロボットの軌道および行動を示す。
本例では、ロボットは、ウインドウ500a内で設定された軌道になるべく近い軌道を辿ってウインドウ500b内で設定された行動「腰振り」558bになるべく近い多関節四肢の動作を実行する。より具体的には、ロボットが辿った軌道および胴体の位置は、軌道533aおよび553bで設定された位置になるべく近いものである。
従来技術では従って、ロボットは始点531cと終点532cの間の直線軌道533cを辿る。ところで、ロボットは、関節553bの動作により規定される行動「腰振り」558bになるべく近い行動をとるべく、胴体の動作を実行する。従来技術ではロボットは多関節動作554cしか実行することができない。
図5dに、従来技術におけるロボットの位置およびロボットの関節の角位置の一例を示す。
図5dに、時間軸552dに対して軸551bに同一の軸551bで表す、ロボットの腰周辺での当該ロボットの上体の動作の振幅を示す。曲線553dはロボットの関節の目標動作を表し、曲線554dはロボットの関節の実際の動作を表している。
図5c、5dに見られるように、従来技術のロボットは図5a、5bで意図された動作を実行することができない。主な理由は、スプライン553bにより規定された命令に従う関節の動作を計算する場合、従来技術のロボットは動力学制約、特にロボットのバランスにより制限されるからである。
図5eに本発明の一実施形態におけるロボットの軌道の一例を示す。
より具体的には、図5eは、ウインドウ500a内で設定した目標軌道、およびウインドウ500b内で設定された関節の目標動作に基づいて、本発明の一実施形態において計算されたロボットの軌道および行動を示す。
本例では、ロボットは、ウインドウ500a内で設定された軌道になるべく近い軌道を辿って、ウインドウ500b内で設定された動作「腰振り」558bになるべく近い多関節四肢の動作を実行する。より具体的には、ロボットが辿った軌道および胴体の位置は、軌道533aおよび553bで設定された位置になるべく近いものである。
従来技術では従って、ロボットは始点531eと終点532eの間の軌道533eを辿る。ところで、関節553bの動作により規定される行動「腰振り」551bになるべく近い行動をとるべく、胴体の動作を実行する。本発明において、ロボットは、胴体のロボットの重心の位置への移動の影響を考慮すべく、必ずしも直線ではない軌道533eを計算する。ロボットの基部の軌道の当該変更により、ロボットは、ユーザーが意図した動作により充分に近い胴体の554eの動作を実行することができる。
図5fに、本発明の一実施形態におけるロボットの位置およびロボットの関節の角位置の一例を示す。
図5fは、時間軸552fに対して軸551bと同一の軸551fで表す、ロボットの腰周辺での胴体の動作の振幅を表している。曲線553fはロボットの関節の目標移動を表し、曲線554fはロボットの関節の実際の動作を表していて、図5eに示す動作に対応している。
図5e、5fに見られるように、本発明によるロボットは図5a、5bで意図された動作に極めて近い動作を実行することができる。より具体的には、関節の動作を用いてロボットの重心の軌道に計算することにより、従来技術で計算した動作よりもユーザーが意図した動作にはるかに近い多関節四肢の動作を計算することができる。
図6a、6bは各々、従来技術の方法および本発明の実施形態における方法を示す。
図6aに、従来技術において複数の多関節四肢を有する移動型ロボットの予測動作を計算する方法600aを示す。
方法600aは、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力610、611として受信するステップを含んでいる。
方法600aは更に、移動型ロボットの動作を規定する命令611に基づいて、ある時間範囲にわたる移動型ロボットの予測軌道631aを計算するステップ630aを含んでいる。当該軌道は例えば、関節の実際の動作ではなく、標準的な姿勢に基づく、移動型ロボットの重心の軌道であってよい。
方法600aは更に、移動型ロボットの予測軌道631aおよび移動型ロボット611の行動を規定する命令に基づいて、多関節四肢の予測動作641aを計算するステップ640aを含んでいる。
方法600aは従って、ロボットの関節の軌道および予測動作の両方を計算可能にする。しかし、ロボットの動的制約により、図5c、5dに開示するようにステップ640aで関節の動作を計算する可能性が制限される場合がある。
図6bに、本発明の一実施形態における複数の多関節四肢を有する移動型ロボットの予測動作を計算する方法600bを示す。
方法600bは、移動型ロボットの動作を規定する命令および移動型ロボットの行動を規定する命令を入力610、611として受信するステップを含んでいる。
方法600bは、入力610、611に基づいて、移動型ロボットの重心の目標軌道621bを計算するステップ620bを更に含んでいる。
方法600bは更に、移動型ロボットの重心の目標軌道621bおよび移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道631bを計算するステップ630bを含んでいる。
方法600bは更に、移動型ロボットの重心の予測軌道631bおよび移動型ロボット611の行動を規定する命令に基づいて、多関節四肢の予測動作641bを計算するステップ640bを含んでいる。
本発明の方法600bは、ロボットの重心の予測軌道を計算すべく多関節四肢の動作を考慮することにより、従来技術の方法の限界を克服可能にする。より具体的には、ロボットが行動を採用して、従来技術の方法よりも移動型ロボットの行動を規定する命令611にはるかに近い多関節四肢の動作を実行することができる。
方法600bは各種の仕方で実装可能である。例えば、アーキテクチャ300等のソフトウェアアーキテクチャに実装することができる。当該方法は、本発明のロボットに搭載されたプロセッサにより実行することができる。また、図5a、5bに示すユーザーインターフェース等のロボットの動作のエディタに実装することができる。従ってこれを用いてロボットの動作のプレビューを得ることができる。本発明の方法を用いてもロボットが行動を取ることが不可能な場合、ユーザーはロボットが実行可能な動作を規定すべくロボットの行動を修正することができる。
上述の例は本発明の実施形態の説明のために提示するものである。これらは、いかなる仕方でも以下の請求項により規定される本発明の範囲を限定するものではない。
本発明はロボット工学分野に関する。より具体的には、移動型ロボットによる、多関節四肢の移動と動作の組み合わせを含む複雑な運動の実行に関する。
ロボットは、頭部、胴体、両腕、両手等、特定の人間的外観の特性を有していれば人型ロボットとみなすことができる。しかし、人型ロボットは多少洗練されていてよい。四肢の関節の数はより多くまたは少なくてもよい。人型ロボットは、自身のバランスを静的および/または動的に制御して、恐らくは3次元で二足歩行する、または床の上で寝返りを打つことができる。環境から信号を拾う(「聞く」、「見る」、「触る」、「感じる」等)ことができ、多少洗練された行動に従い反応することでき、且つ言葉または仕草により他のロボットまたは人間と対話することができる。人型ロボットではバランスと移動の問題がより個別に生じるが、擬似人間的外観を有する移動型ロボット、ペットロボット、または移動型産業用ロボットではより一般的に生じる。
移動型ロボットの移動は、当該ロボットの関節のアクチュエータに指令を送ることにより管理される。逆動力学を用いて、ロボットのバランスを維持しながらロボットに所望の行動を割り当てることが可能である。Kajita,Shuuji,et al.“Biped walking pattern generation by using preview control of zero−moment point.”Robotics and Automation,2003,Proceedings,ICRA’03,IEEE International Conference on Vol.2,IEEE,2003は、ゼロモーメントポイントを制御することにより、二足人型ロボットに転倒せずに軌道を辿らせる方法を開示している。ゼロモーメントポイント(ZMP)は、位置がロボットの加速および重力に依存する仮想点であって、水平慣性と重力の和が0に等しい点に対応している。ロボットがバランスを保ったままでいるために、当該ZMPが安定領域に留まっている必要がある。Kajitaが開示した二足ロボットの動力学モデルにより、ロボットのZMPと共に重心(CoM)が安定領域に留り、従ってロボットが転倒する危険性無しに軌道に沿って歩行することができる。
Kajitaによれば、ロボットへ送られる全ての指令は、ロボットに平衡を保ちながら歩行させることを目的としている。従って、ロボットの歩行に起因するCoMまたはZMPの自然なバランスは、ロボットの他の多関節四肢の動作により補償することができる。例えば、ロボットの腕の位置および加速を用いて、ロボットのZMPまたはCoMの過剰な動作を補償することができる。
ところで、多くの用途において、例えば相互作用を規定すべくロボットに多関節四肢の動作を実行させることが望ましい。そのような多関節四肢の動作は例えばダンスまたは振付けを規定すること、または人間の行動、例えば握手に対応することができる。ロボットの足の移動によるそのような関節の動作の組み合わせにより、ロボットのZMPまたはCoMが自身の安全な領域から離れ、従ってロボットが転倒する恐れがある。
ロボットの全ての関節に、軌道を辿りながらダンス動作になるべく近い動作を実行させる指令を決定することが可能である。特に、逆動力学を用いて目標動作になるべく近い動作を実行させる指令をロボットの各関節に割り当てることが可能である。しかし、ロボットが多数の関節を有する場合、逆動力学も多数の自由度を有するため、この解決策の計算負荷が高まる。これは、脚、腕等に多数の関節を有する大部分の現代型ロボットに当てはまる。この場合、逆動力学は、ロボットに搭載された限られた計算リソースでリアルタイムに計算するには複雑過ぎる。
Ramos,O.,et al.“Dynamic whole body motion generation for the dance of a humanoid robot”、IEEE Robotics&Automation Magazine(RAM)(2015)は、ロボットにダンス動作を再現させる方法を開示している。Ramosは、逆動力学を用いてロボットの運動を生成する指令、および逆運動学を用いてダンス動作用の指令を別々に計算する方法を開示しており、これらの指令の生成はタスクのスタック上のタスクとして並列に実行される。
Ramosの文献では、逆動力学を用いて人間パフォーマの軌道および結果的に得られるロボットのCoMの予測軌道を追跡すべく送られる指令を動的に計算する。逆運動学を並列に用いて、ロボットのバランスを維持しながら、ダンサーのダンス動作になるべく近いダンス動作をロボットに行わせる指令計算する。この方法は、ロボットが、軌道を辿ってダンス動作を実行することを同時にできるようにする利点がある。実際、逆動力学は限られた数の自由度で実行されるため、計算負荷が過度に高い訳ではない。
しかし、逆動力学によりロボットのCoMの軌道が計算されたならば、Ramosの方法はダンス動作の追随に限定される。実際、逆動力学を用いて他の四肢の動作を計算する場合、Ramosが開示する方法ではロボットのバランス、特にCoMおよびZMPの位置を維持しなければならない。従って、ロボットの多関節四肢の多くの動作は、ロボットのバランスを失わせて転倒させるため実行不可能である。従って、Ramosの方法は、ダンサーのダンス動作の限られた模倣しか行えない。
従って、軌道を辿ること、および行動の一部である多関節四肢の表現力豊かな動作の実行を同時に可能にする指令をリアルタイムに計算可能なロボットに対するニーズがある。この問題はダンスの振り付けに限定されず、握手する、または想定外の事象を管理する、例えばロボットの基部で軌道を辿りながら腕または胴で障害物を除ける、等の動作を実行しようとした際に生じる。
このため、本発明は、複数の多関節四肢と、プロセッサとを有する移動型ロボットであって、プロセッサが、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力として受信し、入力に基づいて移動型ロボットの重心の目標軌道を計算し、移動型ロボットの重心の目標軌道および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道を計算し、移動型ロボットの重心の予測軌道および移動型ロボットの行動を規定する命令に基づいて多関節四肢の予測動作を計算すべく構成されている移動型ロボットを開示する。
有利な特徴として、プロセッサは、一連の時間刻みで、移動型ロボットの多関節四肢の重心の位置と、移動型ロボットの重心の位置とを、移動型ロボットの目標位置、および移動型ロボットの多関節四肢の重心の質量および位置に基づいて計算することにより、移動型ロボットの重心の目標軌道を計算すべく構成されている。
有利な特徴として、プロセッサは、移動型ロボットの動的モデルを用いて移動型ロボットの重心の予測軌道を計算すべく構成されている。
有利な特徴として、プロセッサは、各々が移動型ロボットの基部の重心および当該ロボットの上体の重心である2つの質量を含む二重倒立振り子として移動型ロボットをモデル化し、移動型ロボットのゼロモーメントポイントが、移動型ロボットの基部に対して規定された位置を有する多角形から決して外れず、且つ移動型ロボットの基部が最大加速度および速度を有するという制約を定式化し、コスト関数、すなわち目標軌道内での移動型ロボットの重心の位置、予測軌道内での移動型ロボットの重心の位置、目標軌道内での移動型ロボットの重心の速度、および予測軌道内での移動型ロボットの重心の速度の差のうち少なくとも1つに基づくコスト関数を最小化すべく二重倒立振り子の制御の問題を解くことにより、移動型ロボットの重心の予測軌道を計算すべく構成されている。
有利な特徴として、プロセッサは、コスト関数を最小化すべく移動型ロボットの動的制約に関して多関節四肢の予測動作を計算すべく構成されている。
有利な特徴として、コスト関数は、一連の時間刻みにおける、移動型ロボットの重心の予測位置間の距離、多関節四肢の目標速度と多関節四肢の予測速度の差、および多関節四肢の目標位置と多関節四肢の予測位置との距離のうち少なくとも2つの加重平均である。
有利な特徴として、プロセッサは、関節角度、関節速度、および関節加速度の制約限界の下で多関節四肢の予測動作を計算すべく構成されている。
有利な特徴として、移動型ロボットの行動を規定する命令は、到達すべき少なくとも1つの計時された姿勢により規定されていて、プロセッサは更に、移動型ロボットの前記少なくとも1つの計時された姿勢を、移動型ロボットに対する多関節四肢の目標軌道に変換すべく構成されている。
有利な特徴として、移動型ロボットの重心の予測軌道は、ある時間枠にわたる一連の時間刻みにおける移動型ロボットの予測位置の値および重心の速度により規定される。
有利な特徴として、多関節四肢の予測動作は、前記一連の時間刻みにおける多関節四肢間の角度および多関節四肢間の角速度の1つ以上の値により規定され、前記一連の時間刻みにおける多関節四肢間の角度および多関節四肢間の角速度の前記1つ以上の値が、モーターのセットポイント指令に変換される。
有利な特徴として、所定の時間刻みは20ミリ秒であり、時間枠の持続時間は1.6秒である。
有利な特徴として、移動型ロボットの運動を規定する命令、および移動型ロボットの行動を規定する命令はユーザーインターフェース上でユーザーにより設定される。
有利な特徴として、移動型ロボットの運動を規定する命令は所定の軌道に対応し、プロセッサは、想定外の事象の発生時に移動型ロボットの行動を規定する命令を計算すべく構成されている。
本発明はまた、複数の多関節四肢を有する移動型ロボットの運動および行動を規定するユーザーインターフェースを開示しており、前記ユーザーインターフェースは、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力としてユーザーに設定させ、入力に基づいて移動型ロボットの重心の目標軌道を計算し、移動型ロボットの重心の目標軌道および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道を計算し、移動型ロボットの重心の予測軌道および移動型ロボットの行動を規定する命令に基づいて、多関節四肢の予測動作を計算するコンピュータ符号命令を含んでいる。
本発明はまた、複数の多関節四肢を有する移動型ロボットの予測動作を計算する方法を開示しており、前記方法は、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力として受信するステップと、入力に基づいて移動型ロボットの重心の目標軌道を計算するステップと、移動型ロボットの重心の目標軌道および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道を計算するステップと、移動型ロボットの重心の予測軌道および移動型ロボットの行動を規定する命令に基づいて多関節四肢の予測動作を計算するステップとを含んでいる。
本発明により、移動型ロボットが目標軌道を辿り、バランスを失うことなく行動を実行することができる。
本発明により、移動型ロボットの自由度が小さいか、または多関節四肢の目標軌道の制約が厳しい場合であっても移動型ロボットがバランスを失うことなく多関節四肢の目標軌道を正確に辿ることができる。
本発明により、ユーザーは移動型ロボットの行動をより自由に規定することができる。
本発明により、ユーザーは、従来技術では実行できなかったであろう、ロボットが実行可能な動作を規定することができる。
本発明は、計算の複雑度を抑えながら移動型ロボットに内蔵することができる。
本発明により、ロボットが軌道を辿っている場合、想定外の制約または相互作用を考慮すべく、例えば想定外の障害物を回避すべく、または対話可能な人間またはロボットに遭遇した場合の行動を取るべくロボットの行動をリアルタイムに適合させることができる。
本発明は、ロボットのファームウェアの簡単な更新によりロボット内に実装することができる。
以下の多数の例示的実施形態および添付の図面の説明から本発明に対する理解が深まると共に各種の特徴および利点が明らかになろう。
本発明の多くの実施形態における移動型ロボットの物理アーキテクチャを示す。
本発明の多くの実施形態におけるロボットのソフトウェアモジュールの機能アーキテクチャを示す。
本発明によるロボットの関節の重心の軌道および角速度を計算するソフトウェアモジュールのアーキテクチャを示す。
本発明の多くの実施形態における移動型ロボットの重心の予測軌道を計算する場合の動的制約の定式化に用いる支持多角形の例を示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
本発明によるロボットの動作を設定するためのユーザーインターフェースの一例の2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を各々示す。
従来技術の方法および本発明の実施形態における方法を各々示す。
従来技術の方法および本発明の実施形態における方法を各々示す。
図1に、本発明の多くの実施形態における人型ロボットの物理アーキテクチャを示す。
同図の特定のロボット100は、本発明を実装可能な人型ロボットの一例に過ぎない。同図のロボットの下肢は、歩行機能は有していないが、当該ロボットが置かれた表面上を転がる基部140に乗って任意の方向に移動することができる。本発明は、歩行に適合されたロボットに容易に実装可能である。例えば、当該ロボットは、約120cmの高さ110、約65cmの奥行き120、および約40cmの幅130を有している。特定の実施形態において、本発明のロボットは、自身を取り巻く環境にメッセージ(音声、映像、ウェブページ)を伝達する、またはタブレットの触覚インターフェースを介してユーザーから入力を受信することができるタブレット150を有している。タブレットのプロセッサに加え、本発明によるロボットはまた自身のマザーボードのプロセッサも使用するが、これは例えばIntel(商標)社製ATOM(商標)Z530であってよい。本発明のロボットはまた有利な特徴として、マザーボードと、特に本発明の特定の実施形態において四肢の関節のモーターおよびロボットが車輪として用いるボールを制御する磁気ロータリーエンコーダ(MRE)およびセンサを搭載したボードとの間のデータフローの処理専用のプロセッサを含んでいる。モーターの種類は、硬い関節に必要とされる最大トルクの程度に応じて異なっていてよい。例えば、e−minebea(商標)社製ブラシ付きDCコアレスモーター(例:SE24P2CTCA)、またはMaxon(商標)社製ブラシレスDCモーター(例:EC45_70W)を用いてよい。MREは好適には、12または14ビットの精度を有する、ホール効果を用いる方式である。
本発明の実施形態において、図1に示すロボットはまた各種のセンサを含んでいる。それらの一部は、ロボットの位置および動作の制御に用いられる。これは例えば、ロボットの胴体に設置された、3軸ジャイロスコープおよび3軸加速度計を含む慣性装置の場合である。ロボットはまた、毎秒5フレームで5メガピクセルの解像度、および水平方向57°、垂直方向44°の視野(FOV)を有するShenzen V−Vision Technology(商標)社製(OV5640)等のシステムオンチップ(SOC)方式の2つの2DカラーRGBカメラ160をロボットの額部(上部および底部)に含んでいてよい。毎秒20フレームで0.3メガピクセルの解像度、および2Dカメラと同一FOVを有するASUS XTION(商標)社製SOCセンサ等、1つの3Dセンサ170もまた、ロボットの両眼の裏側に含まれていてよい。本発明のロボットはまた、自身を取り巻く環境内における物体/生物体に対する自身の位置を検出可能であるように、レーザー線発生器を、例えば頭部180aに3つおよび基部180bに3つ備えていてよい。本発明の他の実施形態において、ロボットは基部にレーザー線発生器だけを備えている。本発明のロボットはまた、自身を取り巻く環境内における音声を検出可能なマイクロフォンを含んでいてよい。一実施形態において、1kHzで300mV/Pa±3dBの感度、および300Hz〜12kHz(1kHzに対して10dB)の周波数範囲を有する4つのマイクロフォンがロボットの頭部に埋め込まれていてよい。本発明のロボットはまた、自身を取り巻く環境内の物体/人間との距離を測定すべく、2つのソナーセンサ190を基部の正面および背面に含んでいてよい。
ロボットはまた、人間との対話を可能にすべく触覚センサ1A0を自身の頭部および手に含んでいてよい。また、自身の経路上で遭遇する障害物を検出すべくバンパー1B0を自身の基部に含んでいてよい。
ロボットはまた、意図された軌道と実際の軌道との間の差を計算することにより、自身の上部要素が触れた物体との接触を検出することができる。この目的の方法は、同一出願人により同日出願された欧州特許出願第EP14305848.5号に開示されている。
自身の感情を翻訳して自身を取り巻く環境内の人間と通信すべく、本発明のロボットはまた、
− 例えば自身の両眼、両耳、および両肩にLED、および
− 例えば2つのスピーカーを両耳に含んでいてよい。
本発明のロボットは、イーサネット(登録商標)RJ45またはWiFi802.11接続を介して基地局または他のロボットと通信可能である。
本発明のロボットは、約400Whのエネルギーを有するリチウム鉄リン酸塩電池により電力供給することができる。ロボットは、自身が搭載する電池の種類に適した充電ステーションにアクセスすることができる。
ロボットの位置/動作は、センサの測定値を参照しながら、各四肢により規定された連鎖および各四肢の終端で規定されたイフェクタを起動するアルゴリズムを用いて、自身のモーターにより制御される。
センサ160、170、180、190、1A0または1B0から、あるいは自身の上部要素の物体との接触の評価結果から、欧州特許出願第EP14305849.3号に開示されているように、ロボットの計算モジュールは、自身を取り巻く環境内における障害物の局所的マップを計算することができる。
図2に、本発明の多くの実施形態におけるロボットのソフトウェアモジュールの機能アーキテクチャを示す。
図2は、本発明のいくつかの実施形態を実装可能にする物理および機能アーキテクチャの構成図である。この種のロボットは有利な特徴として、本発明の実施形態におけるロボットの機能の操作を可能にする高水準ソフトウェアを備えている。NAOQIと呼ばれるこの種のソフトウェアアーキテクチャは特に、2009年10月10日公開の特許出願WO2009/124955に開示されている。当該アーキテクチャは、ロボットとPCまたは遠隔サイトとの間の通信を管理すると共に、本発明の実装に必要なソフトウェアインフラを与えるソフトウェアを交換するための基本機能を含んでいる。また、欧州特許出願第EP14305578.8号は、高度な相互作用/対話能力を備えたロボットを操作すべく設計されたオペレーティングシステムを開示している。
NAOQIはロボット用途に最適化されたフレームワークであり、いくつかの言語、特にC++、Python、およびUrbiに対応している。本発明の関連分野で、NAOQIの以下のモジュールが特に有用である。
− モジュールALMemory(210)は、NAOQIの各種のモジュール間で共有されるメモリを管理する。
− モジュールDCM(220)は、物理的ロボット(モーター、センサ)との通信を管理する。
− モジュールALRobotPose(230)は、基準姿勢と比較することによりロボットの現在の姿勢を計算する。
− ALMotionモジュール(240)は、ロボットの動作を管理する。
これらの4つのモジュールは有利な特徴としてC++でコーディングされている。同図はまた、モジュール間のデータフローを示す。特に、転倒回避および衝突回避機能の実装に必要な入力は、
− センサ(例えばカメラ、レーザー線発生器、ソナー、触覚センサ)の値、
− ロボットの姿勢である。
生じ得る衝突を検出する場合、本発明を実装すべく設計された特定の機能は、ロボットの軌道を更新する指令を発する。
また同図に、完全に例示的に、各モジュールにより処理されたデータのリフレッシュサイクル用の値を示しており、ロボットの姿勢および転倒管理データの更新に20ミリ秒、いくつかのセンサの値に10ミリ秒である。ロボットを取り巻く環境内における障害物のマップは、3Dカメラが撮像する画像処理に要する典型的なサイクル時間である100ミリ秒毎に更新できるが、これは一例に過ぎない。
図3に、本発明によるロボットの重心の軌道および関節の角速度を計算するソフトウェアモジュールのアーキテクチャを示す。
当該アーキテクチャ300のモジュールはC++、またはプロセッサによりネイティブに実行可能な任意の言語、例えばC言語、仮想マシンで実行可能な任意のインタープリタ言語、例えばJava(登録商標)、任意のスクリプト言語、例えばPythonでコーディングされていてよい。
本発明のロボットは、ソフトウェアモジュール、例えばアーキテクチャ300のモジュールをロードする場合、ロボットの重心(CoM)の予測軌道、および多関節四肢の予測動作を計算すべく構成されたプロセッサを有している。
アーキテクチャ300のソフトウェアモジュールを実行すべく構成されたプロセッサは、移動型ロボットの運動を規定する命令310、および移動型ロボットの行動を規定する命令311を入力として受信する。
本発明の好適な実施形態において、移動型ロボットの運動を規定する命令310は、移動型ロボットの目標軌道である。命令310は例えば、一連の時間刻みで、且つある時間枠にわたり、移動型ロボットの一連の位置により設定することができる。当該ロボットが図1に示すロボットのように車輪付きロボットである場合、命令は移動型ロボットの基部の一連の位置に対応していてよい。本発明の多くの実施形態において、命令310は、ロボットの所定の点、またはロボットの本体に堅牢に取り付けられたフレームの位置を指している。
命令310が適用される点を決定するための多くの異なる実施形態が可能である。ロボットが車輪付きロボットである実施形態において、命令310は例えば、移動型ロボットの基部の重心の一連の位置を規定することができる。ロボットが歩行型ロボットである実施形態において、命令310は例えば、ロボットの足の中央の点の一連の位置を規定することができる。
本発明の各種実施形態によれば、移動型ロボットの行動を規定する命令311は、異なる仕方で表されていてよい。例えば、当該命令は、一連の時間刻みにおいて、ロボットの全ての関節動作の角度値および角速度を含んでいてよい。ロボットの行動を規定する命令311はまた、到達する1つ以上の計時された姿勢を含んでいてよい。これは例えばロボットが握手するように命令された場合であり、ロボットの行動を規定する命令311は、時点tで握手しているときのロボットの姿勢の記述を含み、プロセッサは、ロボットの運動学的および機械的制約の下に留まりながら、当該位置に到達するのに最も効率的な仕方を決定するより大きな自由度を有している。
本発明の多くの実施形態において、移動型ロボットの行動を規定する命令311は、予め計算されている。これは例えば、ロボットの行動が事前に意図されている場合である。これは例えばロボットが事前に準備されたダンスの振付けを実行する場合である。本発明の他の実施形態において、移動型ロボットの行動を規定する命令311はその場で計算される。これは例えば、ロボットが、センサからの入力に基づいて、取るべき行動をリアルタイムに決定する場合である。例えば、ロボットは、人間を見かけたときに、近寄って握手することを決定し、当該人間と握手するために到達すべき目標姿勢および辿るべき軌道を生成する。別のシナリオにおいて、ロボットは軌道を辿ることができる。次いで、想定外の障害物が、ロボットが回避可能な軌道に現れる。次いで、障害物を回避するために到達すべき計時された姿勢をその場で生成し、目標軌道および障害物を回避するために到達すべき計時された姿勢に基づいて、多関節四肢の予測動作を計算する。
アーキテクチャ300は、入力に基づいて移動型ロボットの重心の目標軌道330を計算するソフトウェアモジュール320を含んでいる。ロボットのプロセッサは、ソフトウェアモジュール320をロードして実行する場合、ロボットの目標軌道および移動型ロボットの行動を規定する命令に基づいて、ロボットの重心の目標軌道を計算すべく構成されている。
本発明の多くの実施形態において、移動型ロボットの運動を規定する命令310が、一連の計時された位置により形成されたロボットの目標軌道ではない場合、プロセッサは、移動型ロボットの運動を規定する命令310を一連の計時された位置により形成されたロボットの目標軌道に変換すべく構成されている。
同様に、本発明の多くの実施形態において、プロセッサは、移動型ロボットの行動を規定する命令311がロボットの多関節四肢の目標軌道ではない場合、移動型ロボットの行動を規定する命令311をロボットの多関節四肢の目標軌道に変換すべく構成されている。
本発明の多くの実施形態において、プロセッサは、一連の計時された位置により形成されたロボットの目標軌道およびロボットの多関節四肢の目標軌道に基づいて、ロボットの重心の目標軌道330を計算すべく構成されている。本発明の多くの実施形態において、プロセッサは、ある時間枠にわたり一連の時間刻みで、ロボットの位置に基づいてロボットの重心の位置、および一連の時間刻みでロボットの多関節四肢の位置および質量を計算することにより、当該計算を直接的に実行すべく構成されている。本方法は有利な特徴として、限られた計算能力を用いてロボットの重心の目標軌道を高速且つ直接的に計算することを可能にする。
アーキテクチャ300は更にソフトウェアモジュール340を含み、プロセッサは、ソフトウェアモジュール340をロードして実行する場合、移動型ロボットの重心の目標軌道330および移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道350を計算すべく構成されている。
本発明の多くの実施形態において、プロセッサは、第2のモジュール340をロードする場合、移動型ロボットの動的モデルを用いてロボットの重心の予測軌道を計算すべく構成されている。本発明の多くの実施形態において、動的モデルは、移動型ロボットの予測的制御の線形モデルである。
本発明の多くの実施形態において、当該モデルは倒立振り子モデルである。これは例えば、ロボットが二足歩行ロボットである場合であり、従ってプロセッサは、
− 移動型ロボットを、当該ロボットの重心である1つの質量を含む二重倒立振り子としてモデル化し、
− 移動型ロボットのゼロモーメントポイントが当該ロボットに対して規定された位置を有する多角形から決して外れないという制約の下で、倒立振り子の制御の問題を解くべく構成されている。
本発明の多くの実施形態において、移動型ロボットは車輪付き移動型ロボットであり、当該モデルは二重倒立振り子モデルであって、プロセッサは、
− 移動型ロボットを、各々が移動型ロボットの基部の重心およびロボットの上部の重心である2つの質量を含む二重倒立振り子としてモデル化し、
− 移動型ロボットのゼロモーメントポイントが移動型ロボットに対して規定された位置を有する多角形から決して外れず、且つ移動型ロボットの基部が最大加速度および速度を有している制約の下で二重倒立振り子を制御する問題を解くべく構成されている。
このような予測的制御の線形モデルの一例がJ.Lafaye et al.,Linear Model Predictive Control of the Locomotion of Pepper,a humanoid robot with omnidirectional wheels,2014 14th IEEE−RAS International Conference on Humanoid Robots(Humanoids),November 18−20,Madrid,Spainに開示されている。
より具体的には、当該ロボットが図1に示すロボットのような車輪付きロボットである実施形態において、プロセッサは、二質点モデルを用いるロボットの重心の予測軌道を計算すべく構成することができ、bは移動基部の重心(CoM)の位置、cは上体のCoMの位置である。当該二質点モデルのニュートンおよびオイラー方程式は、以下のように書くことができる。
ここに、Fは地面との接触力、pは対応する圧力中心(CoP)、m
bおよびm
cは移動基部および上体の質量である。
ロボットが水平な地面上で移動している仮定の下で、以下の仮定および表記により上式を簡素化することができる。
− 水平および垂直方向の両軸に対して各々上付き添え字x、y、z関連付け、
− 重力ベクトルをgx=gy=gz=gと定義し、
− ロボットが水平な地面上を移動する場合、ZMPの高さは一定pz=0であり、
− 移動基部の高さは一定bz=lであり、
− 上体の上下運動の影響を無視し、その高さも一定cz=hである。
本発明の他の実施形態において、上式は水平でない地面、または水平な地面と水平でない地面との間の移動に適合されている。本明細書では、制御問題の例として水平な地面上を移動するロボットを挙げる。しかし、当業者であれば公知の従来方法を用いて他のケースに軌道の計算を適合させることができる。例えば、Lafaye,J.(2015),Commande des mouvements et de l’equilibre d’un robot humanoide a roues omnidirectionnelles(Doctoral disseration,Universite Grenoble Alpes)に、ロボットが水平でない地面上に移動するケース、2つの車輪だけが地面に接触しているケース等、より複雑なケースにおいて二重倒立振り子を用いて、図1に開示するロボットと同様の車輪付きロボットの軌道の計算を開示している。
上述の仮定の下で、ニュートンおよびオイラー式を二質点に関して線形な式に簡素化することができる。
ZMPの位置は(3)から直接得ることができる。
ところで、ロボットのCoMの位置は、移動基部の重心の位置b
xy、移動基部の質量m
b、上体の位置c
xy、および上体の質量のm
cに基づいて直接得ることができる。
ロボットの重心の位置は、随時次式により定義される。
移動基部のCoM、上体のCoM、およびロボットのCoMの一連の位置として定義される予測軌道を各々B
xy、C
xy、A
xyと表記する。移動基部、上体のCoM、およびロボットのCoMの一連の位置と加速度のペアとして定義される予測軌道を各々
と表記する。
本発明の多くの実施形態において、滑らかな接触曲線を有するロボットの滑らかな運動を生成するために、プロセッサは、二質点がサンプリング周期Tの三次動力学に従うとの仮定の下で、ロボットのCoMの予測軌道を計算すべく構成されている。
本発明の多くの実施形態において.プロセッサは、移動型ロボットの重心の目標軌道330
を辿るべく、移動型ロボットの重心の予測軌道350
を計算すべく構成されている。本発明の他の実施形態において、予測および目標軌道は、ロボットの重心の予測および目標位置(各々A
xyおよび
)、またはロボットの重心の予測および目標速度(各々
)のみを用いて定義することができる。
本発明の多くの実施形態において、プロセッサは、軌道のコスト関数を最小化すべく構成されている。例えば、プロセッサは、移動型ロボットの重心の予測軌道350
を計算すべく構成することができ、次式を最小化する。
本発明の他の実施形態において、コスト関数は、2以外のべき指数でのロボットの重心の位置、速度と位置の差の加重平均に依存してよい。コスト関数の他の例は次式で与えられる。
より一般的には、移動型ロボットの位置と基準位置との距離、移動型ロボットの速度と基準速度の差、および/またはその微分に伴いコストが増大する任意のコスト関数を用いることができる。
コスト関数O1の最小化により、目標軌道になるべく近い軌道を移動型ロボットのCoMに辿らせる。本発明の各種実施形態において、最小化されることでロボットが目標軌道になるべく近い軌道を辿るとすぐに、他のコスト関数を用いてもよい。
本発明の多くの実施形態において、プロセッサは、移動型ロボットの軌道に関するコスト関数の他に、軌道の他の特徴、例えば揺動に対する堅牢さ、または運動の滑らかさを向上させるコスト関数を最小化すべく構成することができる。
ロボットの安定性が優先されることを保証すべく、プロセッサは多くの異なる制約の下で予測軌道を計算すべく構成されている。1つの動的制約は、ロボットの転倒を回避すべくZMPを支持多角形内に維持するものである。
図4に、本発明の多くの実施形態における移動型ロボットの重心の予測軌道を計算する場合に動的制約の定式化に用いる支持多角形の例を示す。
図4は、軸402、403により規定される座標系(x、y)における移動型ロボットの基部の重心401に対する位置を示す。支持多角形410、430、440、および長方形420は、移動型ロボットの基部の重心401に対して固定された位置を有し、その向きはロボットの向きに伴い変化する。
運動の動釣バランスは、ロボットがバランスを保ち続けるには、上でpxyとして定義された移動型ロボットのZMPが支持多角形内に留まることを要する。本発明の多くの実施形態において、当該ロボットは、図1において示すロボットのように概略三角形の基部を有する車輪付きロボットである。従って支持多角形はロボットを中心とする三角形D410により表すことができ、ロボットの基部を表している。
本発明の多くの実施形態において、ロボットの向きに関して制約を一定に保つべく、支持多角形は、支持三角形に書き込まれた円D’430である。本発明の更に他の実施形態において、制約を線形に保つべく、支持多角形は当該円内に書き込まれた八角形D”440である。八角形D”440の寸法は、当該八角形内の任意の点もまた円D’430内に位置するように、且つ円の良い近似を与えるように計算される。多角形の使用により有利な特徴として、円内に点を含めることよりも極めて高速である一次不等式だけを計算しながら、ZMPが円内に留まるか否かを調べることが可能になる。八角形D”440は、計算の複雑度と計算精度との間の良い妥協点である。
より一般的には、多角形の辺が多いほど精度は良いが計算量が増える。従って、円のより良好な近似を得るべく、より多くの辺を有する多角形を用いることができる。一方、より低い計算の複雑でZMPが円内に存在するか否かを判定すべく、辺がより少ない多角形、例えば正方形を用いることも可能である。
ZMP制約は、次式により定式化することができる。
Pxy−Bxy∈D” (7)
ここにpxyは、ZMPの一連の位置PxyによるロボットのZMPの軌道を表し、Bxyは、移動型ロボットの重心の一連の位置bxyによる移動型ロボットの重心の予測軌道を表している。
本発明の他の実施形態において、支持多角形は異なる形状およびサイズを有していてよい。当業者であれば、発明の才がなくても、所与のロボットに対して適切な支持多角形を定義することが可能である。
ロボットの重心の最大速度および加速度に対して更なる制約を規定することができ、例えば次式のように規定することができる。
式(8)、(9)において、値
は各々ロボットの移動基部の最大速度および加速度である。これらはロボットの機械的能力に基づいて決定された所定の値であってよい。本発明の他の実施形態において、値
を有する最大速度および加速度の制約は移動型ロボット全体の重心で定式化できる。本発明の他の実施形態、例えばロボットが二足ロボットである実施形態において、最大速度および加速度は、動的能力、例えば移動型ロボットの歩行能力に応じて規定することができる。
本発明の多くの実施形態において、プロセッサはまた、ロボットの多関節に基づいて、ロボットの上体および基部の重心の相対位置に対する制約を定式化すべく構成されている。例えば、図1に示すロボットの関節限界に基づいて、上体の重心が、ロボットの基部の重心の回りの矩形領域H420内に留まるものと判定することができる。従って上体の最大リーチの制約を次式により定式化することができる。
− kxy≦Cxy−Bxy≦kxy (10)
本発明は上述の例に限定されない。例えば、他の種類のロボット、例えば二足ロボットに対して他の簡素化または仮定を行うことができる。上で開示したような動的モデルを用いることで、ロボットが自身の重心の予測軌道を、移動型ロボットの動的特性を考慮しながら計算の複雑度を抑えて計算できるようになる。
本発明の多くの実施形態において、ロボットの動的モデルはまた極めて異なっていてよい。例えば、ロボットの重心を表す単一の質点を有する簡単な倒立振り子としてロボットをモデル化して、当該質点上での最大速度および加速度に対する制約を定式化することができる。
図3に戻り、アーキテクチャ300は更にソフトウェアモジュール360を含み、プロセッサは、ソフトウェアモジュール360をロードして実行する場合、移動型ロボットの重心の予測軌道350および移動型ロボット311の行動を規定する命令に基づいて多関節四肢の予測動作370を計算すべく構成されている。
移動の行動を規定する命令311の可能な形式が既に議論されている。プロセッサがモジュール320を実行する場合に移動型ロボットの行動を規定する入力命令311をロボットの多関節四肢の目標軌道に変換すべく構成されている本発明の多くの実施形態において、ロボットの多関節四肢の目標軌道を、移動型ロボットの行動を規定する命令311の代わりに用いることができる。
本発明の多くの実施形態において、プロセッサは、一般化逆運動学を用いて多関節四肢の予測動作370を計算すべく構成されている。本発明の多くの実施形態において、これは、少なくとも多関節四肢で目標軌道を有するベクトルYと基準ベクトルYrefとの間のコスト関数を最小化すべく、少なくとも多関節四肢の目標軌道で規定しているベクトルYを計算するものである。例えばベクトルYは、
− ロボットの胴体の速度、
− 多関節接合部の速度を含んでいてよい。
本発明の多くの実施形態において、運動学的連鎖の一部でない多関節接合部、例えば手の多関節接合部は考慮されない。同一アクチュエータにより制御される多関節接合部をベクトルY内の単一変数にマッピングすることができる。
プロセッサは、一般化逆運動学に対する制約を定式化すべく構成されている。本発明の多くの実施形態において、これらの制約は、
− 角度および/または速度に関する関節限界。この制約は行列Aおよびbにより定義される次式により表される。
AY+b=0 (11)
− ロボットのバランス。CoMは、MPCが出力した軌道に厳密に追随すべく制約される。CoMの軌道は支持多角形に関して以前に計算されているため、ロボットの重心に当該軌道を辿らせることでロボットのバランスを保つことが保証される。この制約は行列Cおよびdにより定義される次式により表される。
CY+d≧0 (12)
他の制約も、多関節接合部の機械的限界およびロボットのバランスを表すのであれば可能である。
プロセッサは、(11)、(12)で規定される制約の下で、例えばベクトルYと基準ベクトルY
refとの間のコスト関数を最小化することにより多関節四肢の動作を計算すべく構成することができる。
ここにQは二次基準である。本発明の他の実施形態において、他のコスト関数も、多関節接合部の目標動作と比較して、多関節接合部の速度および位置が最小化できるのであれば可能である。
一般化逆運動学を用いて最適化されたベクトルYは、ロボットの全ての関節を適切に表すべく高次元を有していてよい。従って、ベクトルY全体に逆動力学を適用することにより、ロボット全体の軌道を決定することは受容できない程度に高いコンピュータコストが生じるであろう。対照的に、一般化逆運動学は、逆動力学よりも計算コストが極めて低い。従って、自由度がより低いロボットの動的モデルに対し逆動力学を用いて移動型ロボットの予測軌道を計算し、自由度がより高い一般化逆運動学を用いて多関節四肢の動作を計算することにより、移動型ロボットの軌道および多関節四肢の動作を合理的な計算コストで適切に計算することができる。
本発明の多くの実施形態において、プロセッサは、同一時間枠にわたり、単一の時間刻みで、軌道、速度等の全ての計算を実行すべく構成されている。例えば、プロセッサは、20ミリ秒毎に多関節四肢370の予測動作を計算することができ、20ミリ秒のサンプルを用いて2sの時間範囲にわたり各軌道を計算することができる。
多関節四肢370の予測動作が計算されたならば、モーターおよび/またはアクチュエータに読み込まれて実際にロボットの動作を実行すべく用いることができる。
本発明が適用できるのは上で開示した例だけではない。特に、人型ロボットだけでなく移動基部および多関節腕を有する産業用ロボットにも適用可能である。
図5a、5b、5c、5d、5eおよび5fは各々、本発明によるロボットの動作を設定するためのユーザーインターフェースの2つのビュー、従来技術におけるロボットの軌道の一例、従来技術によるロボットの位置およびロボットの関節の角位置、本発明によるロボットの軌道の一例、本発明によるロボットの位置およびロボットの関節の角位置を示す。
図5aに、本発明によるロボットの動作を設定するためのユーザーインターフェースの一例を示す。当該インターフェースは、多数のサブウインドウを含むウインドウ500aを含んでいる。
第1のサブウインドウ510を用いて行動を作成、選択、および編集する。第2のサブウインドウ520を用いて実行する動作の種類を選択する。図5aに示す例において、動作は「〜に沿って移動」であり、軌道上のロボットの移動を規定する。
第3のサブウインドウ530aはユーザーにロボットの目標軌道を設定させる。ユーザーは特に、始点531a、終点532aおよび、中間軌道533aを設定することができる。本例では、軌道は始点と終点の間の直線を規定する。サブウインドウ534aを用いて、ユーザーに動作の特徴(特に持続期間535a)を設定させる。
サブウインドウ540は、ロボットの動作および姿勢のプレビューを示している。
図5bに、本発明によるロボットの動作を設定するためのユーザーインターフェースの第2のビューを示す。
第2のビューは、同様にサブウインドウ510、520および540を有するウインドウ500bを規定している。
ウインドウ500bはまた、関節の目標動作を設定するためのサブウインドウ550bを含んでいる。ユーザーは、所定の種類の動作、例えば「腰振り」動作558bを選択することができる。本例では、「腰振り」動作は、ロボットの腰周辺で当該ロボットの上体が左右に動く動作に対応している。
ユーザーは更に、ロボットの動作の特徴を設定することができる。「腰振り」動作の例において、ユーザーは、時間軸552bに示す時間に対して振幅551bの軸に示す腰の動作の振幅を設定することができる。動作は、本例では基準点554b、555b、556bおよび557bに基づいて得られた(時間、振幅)スプライン553bで示される。
図5bに、ロボットの行動の低レベル指令の一例を示す。本発明の他の実施形態において、到達すべき姿勢等のより高水準の指令を用いることができる。例えば、「ある位置へ手を伸ばす」または「所与の位置/時点で手を降ろす」等の高水準指令を用いることができる。従ってこのような高水準指令に基づいて、ロボットの計時された一連の姿勢を決定し、これをロボットのCoMおよびロボットが到達するであろう姿勢の軌道の決定に用いることができる。
図5cに従来技術のロボットの軌道の一例を示す。
より具体的には、図5cは、ウインドウ500a内で設定された目標軌道、およびウインドウ500b内で設定された関節の目標動作に基づいて、従来技術により計算されたロボットの軌道および行動を示す。
本例では、ロボットは、ウインドウ500a内で設定された軌道になるべく近い軌道を辿ってウインドウ500b内で設定された行動「腰振り」558bになるべく近い多関節四肢の動作を実行する。より具体的には、ロボットが辿った軌道および胴体の位置は、軌道533aおよび553bで設定された位置になるべく近いものである。
従来技術では従って、ロボットは始点531cと終点532cの間の直線軌道533cを辿る。ところで、ロボットは、関節553bの動作により規定される行動「腰振り」558bになるべく近い行動をとるべく、胴体の動作を実行する。従来技術ではロボットは多関節動作554cしか実行することができない。
図5dに、従来技術におけるロボットの位置およびロボットの関節の角位置の一例を示す。
図5dに、時間軸552dに対して軸551bに同一の軸551dで表す、ロボットの腰周辺での当該ロボットの上体の動作の振幅を示す。曲線553dはロボットの関節の目標動作を表し、曲線554dはロボットの関節の実際の動作を表している。
図5c、5dに見られるように、従来技術のロボットは図5a、5bで意図された動作を実行することができない。主な理由は、スプライン553bにより規定された命令に従う関節の動作を計算する場合、従来技術のロボットは動力学制約、特にロボットのバランスにより制限されるからである。
図5eに本発明の一実施形態におけるロボットの軌道の一例を示す。
より具体的には、図5eは、ウインドウ500a内で設定した目標軌道、およびウインドウ500b内で設定された関節の目標動作に基づいて、本発明の一実施形態において計算されたロボットの軌道および行動を示す。
本例では、ロボットは、ウインドウ500a内で設定された軌道になるべく近い軌道を辿って、ウインドウ500b内で設定された動作「腰振り」558bになるべく近い多関節四肢の動作を実行する。より具体的には、ロボットが辿った軌道および胴体の位置は、軌道533aおよび553bで設定された位置になるべく近いものである。
従来技術では従って、ロボットは始点531eと終点532eの間の軌道533eを辿る。ところで、関節553bの動作により規定される行動「腰振り」551bになるべく近い行動をとるべく、胴体の動作を実行する。本発明において、ロボットは、胴体のロボットの重心の位置への移動の影響を考慮すべく、必ずしも直線ではない軌道533eを計算する。ロボットの基部の軌道の当該変更により、ロボットは、ユーザーが意図した動作により充分に近い胴体の554eの動作を実行することができる。
図5fに、本発明の一実施形態におけるロボットの位置およびロボットの関節の角位置の一例を示す。
図5fは、時間軸552fに対して軸551bと同一の軸551fで表す、ロボットの腰周辺での胴体の動作の振幅を表している。曲線553fはロボットの関節の目標移動を表し、曲線554fはロボットの関節の実際の動作を表していて、図5eに示す動作に対応している。
図5e、5fに見られるように、本発明によるロボットは図5a、5bで意図された動作に極めて近い動作を実行することができる。より具体的には、関節の動作を用いてロボットの重心の軌道に計算することにより、従来技術で計算した動作よりもユーザーが意図した動作にはるかに近い多関節四肢の動作を計算することができる。
図6a、6bは各々、従来技術の方法および本発明の実施形態における方法を示す。
図6aに、従来技術において複数の多関節四肢を有する移動型ロボットの予測動作を計算する方法600aを示す。
方法600aは、移動型ロボットの運動を規定する命令および移動型ロボットの行動を規定する命令を入力610、611として受信するステップを含んでいる。
方法600aは更に、移動型ロボットの動作を規定する命令611に基づいて、ある時間範囲にわたる移動型ロボットの予測軌道631aを計算するステップ630aを含んでいる。当該軌道は例えば、関節の実際の動作ではなく、標準的な姿勢に基づく、移動型ロボットの重心の軌道であってよい。
方法600aは更に、移動型ロボットの予測軌道631aおよび移動型ロボット611の行動を規定する命令に基づいて、多関節四肢の予測動作641aを計算するステップ640aを含んでいる。
方法600aは従って、ロボットの関節の軌道および予測動作の両方を計算可能にする。しかし、ロボットの動的制約により、図5c、5dに開示するようにステップ640aで関節の動作を計算する可能性が制限される場合がある。
図6bに、本発明の一実施形態における複数の多関節四肢を有する移動型ロボットの予測動作を計算する方法600bを示す。
方法600bは、移動型ロボットの動作を規定する命令および移動型ロボットの行動を規定する命令を入力610、611として受信するステップを含んでいる。
方法600bは、入力610、611に基づいて、移動型ロボットの重心の目標軌道621bを計算するステップ620bを更に含んでいる。
方法600bは更に、移動型ロボットの重心の目標軌道621bおよび移動型ロボットの動的制約に基づいて、ある時間範囲にわたる移動型ロボットの重心の予測軌道631bを計算するステップ630bを含んでいる。
方法600bは更に、移動型ロボットの重心の予測軌道631bおよび移動型ロボット611の行動を規定する命令に基づいて、多関節四肢の予測動作641bを計算するステップ640bを含んでいる。
本発明の方法600bは、ロボットの重心の予測軌道を計算すべく多関節四肢の動作を考慮することにより、従来技術の方法の限界を克服可能にする。より具体的には、ロボットが行動を採用して、従来技術の方法よりも移動型ロボットの行動を規定する命令611にはるかに近い多関節四肢の動作を実行することができる。
方法600bは各種の仕方で実装可能である。例えば、アーキテクチャ300等のソフトウェアアーキテクチャに実装することができる。当該方法は、本発明のロボットに搭載されたプロセッサにより実行することができる。また、図5a、5bに示すユーザーインターフェース等のロボットの動作のエディタに実装することができる。従ってこれを用いてロボットの動作のプレビューを得ることができる。本発明の方法を用いてもロボットが行動を取ることが不可能な場合、ユーザーはロボットが実行可能な動作を規定すべくロボットの行動を修正することができる。
上述の例は本発明の実施形態の説明のために提示するものである。これらは、いかなる仕方でも以下の請求項により規定される本発明の範囲を限定するものではない。