(58)【調査した分野】(Int.Cl.,DB名)
前記ロボットの重心の投影点の位置を計算するためのモジュールに、胸部と地面に接触した前記ロボットの足の一方とを接続する軸との角度と前記ロボットの重心の投影軸に適用される回転の角度との垂直軸を与える慣性測定ユニット、をさらに含む請求項1に記載のヒューマノイドロボット。
支持多角形に対する前記ロボットの重心の投影点の位置を計算するための前記モジュールの出力において、転倒から保護するための一群の行為であって、その少なくとも1つの行為は、支持多角形に対する前記ロボットの重心の投影点の位置を計算するための前記モジュールがその重心の投影点が前記第2の支持多角形の外にある前記ロボットの転倒状態の少なくとも1つの出力特性を与える場合にトリガされる一群の行為、を監視するためのモジュール、をさらに含む請求項1に記載のヒューマノイドロボット。
転倒角度が前方への転倒と判断した場合、前記頭の保護の姿勢で配置することはそれをほぼ後方に配置することであり、前記腕の保護の姿勢で配置することはそれらをほぼ前方に配置することであり、前記骨盤の保護の姿勢で配置することはそれを閉じることである、請求項9に記載のヒューマノイドロボット。
転倒角度が左または右への転倒と判断した場合、前記頭の保護の姿勢で配置することは前記頭をほぼ前方に配置することであり、前記腕の保護の姿勢で配置することは前記腕を揃えて前記体のほぼ前方に配置することであり、前記骨盤の保護の姿勢で配置することは前記骨盤を開くことである、請求項9に記載のヒューマノイドロボット。
転倒角度が後方への転倒と判断した場合、前記頭の保護の姿勢で配置することは前記頭をほぼ前方に配置することであり、前記腕の保護の姿勢で配置することは前記腕をほぼ後方に持ってくることであり、前記骨盤の保護の姿勢で配置することは前記骨盤を閉じることである、請求項9に記載のヒューマノイドロボット。
コンピュータプログラムがコンピュータ上で実行されると請求項14に記載の方法の実行を可能にするように構成されたプログラムコード命令を含むコンピュータプログラムであって、
前記プログラムは、表面上を動くことができるヒューマノイドロボットであって前記表面と前記ロボットの四肢それぞれのうちの少なくとも一つの第1の部分との接触を検出するための少なくとも1つのモジュールを含むヒューマノイドロボットの転倒の管理を可能にするようにされ、
前記プログラムは、第1の支持多角形に対する前記ロボットの重心の投影点の位置を計算するためのモジュールと、
前記表面と前記ロボットの四肢それぞれのうちの少なくとも一つの第2の部分との近接性の検出データのための少なくとも1つの入力モジュールと、
第2の支持多角形に対する前記ロボットの重心の投影の位置を計算するためのモジュールであって、前記第2の多角形は、前記表面にほぼ接触しているとして検出された前記ロボットの四肢の群に属する前記ロボットの前記四肢それぞれのうちの少なくとも一つの第2の部分の前記表面上の投影点を前記第1の多角形に加えることにより前記第1の多角形から導出される、モジュールと、を含むコンピュータプログラム。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明は、ロボットを転倒から保護するための適切な機構を実施することが実際に必要なケースをより正確なやり方で識別できるようにする手段を提供することによりこの問題を解決する。この識別は、物理的多角形から導出される仮想支持多角形を定義し、それに前進の表面にほぼ接触する点を加えることにより果たされる。
【0006】
この目的のため、本発明は、表面上で動くことができるヒューマノイドロボットであって、ロボットの少なくとも1つの第1の四肢と前記表面との接触を検出するための少なくとも1つのモジュールと、前記少なくとも1つの第1の四肢を少なくとも含む第1の支持多角形に対する前記ロボットの重心の投影点の位置を計算するためのモジュールと、を含むヒューマノイドロボットを開示する。前記ロボットは、前記ロボットの少なくとも1つの第2の四肢と前記表面との近接性を検出するための少なくとも1つのモジュールをさらに含み、第1の支持多角形に対する前記ロボットの重心の投影点の位置を計算するための前記モジュールはさらに、第2の支持多角形に対する前記ロボットの重心の投影の位置を計算するように構成され、前記第2の多角形は、前記表面にほぼ接触しているとして検出された前記ロボットの四肢の群に属する前記ロボットの前記第2の少なくとも1つの四肢の前記表面上の投影点を第1の多角形に加えることにより第1の多角形から導出される。
【0007】
有利には、少なくとも前記1つの第2の四肢と前記表面との近接性を検出するためのモジュールは、入力として、前記表面に対する前記少なくとも1つの第2の四肢の位置を受信し、前記位置は、ロボットの基準座標系における前記四肢の空間内の少なくとも位置を含むロボットの幾何学モデルの出力として提供される。
【0008】
有利には、ロボットの第2の四肢が前記表面にほぼ接触しているということに基づく条件は、少なくともロボットの大きさとその下肢の高さの最大振幅とを含む判定基準の群に属する判定基準の関数として選択された距離閾値により特徴付けられる。
【0009】
有利には、前記少なくとも1つの第1の四肢はロボットの足の一方であり、前記足は少なくとも1つの押圧力センサ(pressure force sensor)を含む。
【0010】
有利には、前記少なくとも1つの第2の四肢はロボットの手の一方である。
【0011】
有利には、本発明のロボットはさらに、支持多角形に対する前記ロボットの重心の投影点の位置を計算するための前記モジュールの入力として、前記姿勢の幾何学モデルと基準姿勢の幾何学モデルとの距離を、所定の判定基準に従って比較することによりロボットの姿勢をフィルタリングするためのモジュールを含む。
【0012】
有利には、本発明のロボットはさらに、前記ロボットの重心の投影点の位置を計算するためのモジュールに、胸部とロボットの地面に接触した足の一方とを接続する軸との角度が、ロボットの重心の投影軸に適用される回転の角度を有する垂直軸を与える慣性測定ユニットを含む。
【0013】
有利には、本発明のロボットはさらに、支持多角形に対する前記ロボットの重心の投影点の位置を計算するための前記モジュールの出力として、転倒から保護するための一群の行為であって、その少なくとも1つの前記行為は前記計算モジュールがその重心の投影点が第2の支持多角形の外にあるロボットの転倒状態の少なくとも1つの出力特性を与える場合にトリガされる一群の行為を監視するためのモジュールを含む。
【0014】
有利には、保護行為の群は、ロボットの脚の関節の連動化(slaving)を少なくとも無効化すること、少なくとも頭、腕、骨盤を含む群に属する少なくとも1つの要素の保護の姿勢で配置すること、および前記群に属する少なくとも1つの要素の関節を無効化することと、を少なくとも含む。
【0015】
有利には、前記計算モジュールはさらに、ロボットの転倒状態を特徴付ける状態に対し、転倒から保護するための行為の群を監視するためのモジュールに、ロボットの基準座標系における転倒の方向を特徴付ける角度を提供し、選択された基準値に対する前記転倒角度の値は転倒から保護するために行うべき行為の群の保護行為の選択を決定する。
【0016】
有利には、転倒角度が前方への転倒と判断した場合、頭の保護の姿勢で配置することはそれをほぼ後方に配置することであり、腕の保護の姿勢で配置することはそれらをほぼ前方に配置することであり、骨盤の保護の姿勢で配置することはそれを閉じることである。
【0017】
有利には、転倒角度が左側または右側への転倒と判断した場合、頭の保護の姿勢で配置することは頭をほぼ前方に配置することであり、腕の保護の姿勢で配置することは腕を揃えて体のほぼ前方に配置することであり、骨盤の保護の姿勢で配置することは骨盤を開くことである。
【0018】
有利には、転倒角度が後方への転倒と判断した場合、頭の保護の姿勢で配置することは頭をほぼ前方に配置することであり、腕の保護の姿勢で配置することは腕をほぼ後方に持って来ることであり、骨盤の保護の姿勢で配置することは骨盤を閉じることである。
【0019】
本発明はまた、表面上で動くことができるヒューマノイドロボットであってロボットの少なくとも1つの第1の四肢と前記表面との接触を検出するための少なくとも1つのモジュールを含むロボットの転倒を管理する方法を開示する。前記方法は、少なくとも1つの第1の四肢を少なくとも含む第1の支持多角形に対するロボットの重心の投影点の位置を計算する工程を含む。前記方法はさらに、前記ロボットの少なくとも1つの第2の四肢と前記表面との近傍性を検出する少なくとも1つの工程と、第2の支持多角形に対する前記ロボットの重心の投影の位置を計算する工程であって、前記第2の多角形は、前記表面にほぼ接触しているとして検出された前記ロボットの四肢の群に属する前記ロボットの前記少なくとも第2の四肢の前記表面上の投影点を第1の多角形に加えることにより第1の多角形から導出される、工程とを含む。
【0020】
本発明はまた、コンピュータプログラムがコンピュータ上で実行されると請求項14に記載の方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムを開示する。前記プログラムは、表面上を動くことができるヒューマノイドロボットであって前記表面とロボットの少なくとも1つの第1の四肢との接触を検出するための少なくとも1つのモジュールを含むロボットの転倒の管理を可能にするようにされる、前記プログラムは、第1の支持多角形に対する前記ロボットの重心の投影点の位置を計算するためのモジュールを含む。前記コンピュータプログラムはさらに、前記表面と前記ロボットの少なくとも1つの第2の四肢との近接性の検出データのための少なくとも1つの入力モジュールと、第2の支持多角形に対する前記ロボットの重心の投影の位置を計算するためのモジュールであって、前記第2の多角形は、前記表面にほぼ接触しているとして検出された前記ロボットの四肢の群に属する前記ロボットの前記少なくとも1つ第2の四肢の前記表面上の投影点を第1の多角形に加えることにより第1の多角形から導出される、工程と、を含む。
【0021】
本発明のアルゴリズムはさらに、一次方程式だけを使用し、したがって従来技術の解決策より転倒検出段階での計算資源という点ではるかに貪欲でないという利点を提示する。
【0022】
有利には、本解決策は、転倒姿勢であると誤って考える可能性がある許容可能な姿勢の従来のフィルタリングと組み合わせられることができ、これにより本発明の計算上の有効性をさらに増大する。さらに、本発明によると、転倒の状況を検出する場合、特に簡単な判定基準の関数として選択される保護解決策が実施されることになり、この簡潔性はまた、すべてのこれらの機能を達成するために利用可能な資源を維持できなければならない多機能のヒューマノイドロボットの場合に不可欠である計算上の効果をもたらす。本発明の転倒の管理のモードはロボットが保護位置に配置されなければならない故障(モータ故障、電気的故障等)を管理するモードと特によく結び付くということにも留意すべきである。
【0023】
本発明は、いくつかの例示的実施形態の以下の説明とその添付図面からより良く理解され、その様々な特性と利点が浮かび上がることになる。
【発明を実施するための形態】
【0025】
図1a〜
図1fに、従来技術によるロボットの転倒を予測するための計算原理を示す。
【0026】
地面上に配置された固体の安定性は従来、地面上のその支持多角形に対する地面上のその重心の投影の位置により判断される。
【0027】
図1a、1c、1eにより示すように、直立する足を付与されたヒューマノイドロボットの場合、支持多角形は足の裏の面積と両足間領域の面積との集合により決定される。
図1a、1c、1eに示されたロボットの姿勢に対応する支持多角形は、
図1b、1d、1fによりそれぞれ示される。ロボットの足の一方がロボットの前進の表面と完全に接触していないということにより特徴付けられるこれらの3つの場合、従来技術の解決策の問題の1つは、支持多角形がロボットの足の一方の足の裏の表面に帰着され第2の足は動いているということである。
図1aと
図1bの場合、ロボットは歩行中であり、足110aは地面上に置かれるが足120aは地面上に戻されるまで空中にある。地面に対する足の位置がロボットの足の裏に置かれた圧力センサにより従来通りに判断されると、支持多角形110bは単独で地面に接触した足の裏110aに帰着される。歩行は、ZMPが常にロボットの支持多角形内にあることを保証する動的現象であるが、歩行は重心が前記支持多角形内にあることを保証しない。例えば、ロボットの重心は多角形110bの外に位置する点、120bに投影されるかもしれない。転倒の検出が多角形110bの外側の点120bの相対的配置に単純に連動されると、転倒管理機構は一歩毎にトリガされるかもしれなく、ロボットは歩行できなくなる。
【0028】
重心120d、120fの投影もまた、
図1c、1d、1e、1fに示すケースでは支持多角形110d、110fの外になる。実際、これらのケースでは、足が部分的に接触しているとしてもすべてのセンサが地面に接触しているとは限らなく、これにより転倒の検出をトリガするので、ロボットは足120cの1つが地面に接触していなくこの足の圧力センサが地面との接触の欠落の情報アイテムを送る姿勢を有する。
【0029】
図1eと
図1fに示すケースでは、NAOは座ろうとしている。両足は実際に地面に接触しておりロボットは後方に傾き/倒れるところであるがこの転倒は意図的であり、その右手130eはこの転倒にブレーキをかけ、ロボットが完全には転倒しないことを保証する。したがってこれらの3つのケースでは、転倒の検出が不適切にトリガされることになる。
【0030】
本発明は従来技術のこの欠点を解決する。
【0031】
図2は、従来技術によるロボットの転倒を管理するモードの計算の基本的な線図である。
【0032】
従来技術によると、転倒条件が
図1a〜
図1fに対する注釈において上に述べた原理に従って検出されると、特にその敏感な部分(その構造に応じて異なるかもしれない)を保護することによりロボットに対するあり得る損傷を最小化する目的を持った転倒管理戦略が実施される。
【0033】
従来技術の転倒管理機構は、Fujiwaraらの「Falling Motion Control to Minimize Damage to Biped Humanoid Robot」と「The First Human−size Humanoid that can Fall Over Safely and Stand−up Again」、Proceedings of the IEEE/RSJ,Intl.Conference on Intelligent Robots and Systems、 EPFL、 Lausanne、 Switzerland、 2002年10月 及び Las Vegas、 Nevada、 2003年10月に記載されている。これらの機構は、地面に最初に触れるロボットの部分を予測するために、地面に対する垂直線に対するロボットの垂直軸の傾斜θの測定結果とロボットの重心の速度V
CdMの測定結果を利用する。これらの測定は、地面に対する垂直線に対し振動する逆の振り子としてロボットの動きをモデル化することにより、動的なやり方で行われる。行われる計算は、計算パワーという点で特に貪欲であり、これにより、その計算能力が関節の動きと環境センサを管理するなどの恒久的タスクまたはスピーチと行動を管理するなどの使用タスクのいずれかに優先的やり方で割り当てられるロボット内でこれらの計算を使用する可能性を制限する。
【0034】
本発明はこの制限を回避できるようにする。
【0035】
図3に、本発明の実施形態におけるヒューマノイドロボットの物理的アーキテクチャを示す。このようなロボットは、特に2009年10月15日公開の国際公開第2009/124951号パンフレットに開示されている。このプラットフォームは、本発明に至る改良のためのベースとして役立った。後の説明では、このヒューマノイドロボットはこの総称用語またはその商標NAO(商標)で呼ばれることがあるが、これにより参照の一般性が修正されることはない。
【0036】
このロボットは、センサと関節を操縦するアクチュエータとを制御するための約2ダースの電子カードを含む。関節は通常、少なくとも2つの自由度したがって2つのモータを有する。各モータは角度で操縦される。関節はまた、いくつかの位置センサ、特にMRE(磁気回転符合器:Magnetic Rotary Encoders)を含む。電子制御カードは市販のマイクロコントローラを含む。これは、例えばMicrochip社のDSPIC(商標)であってよい。これはDSPに結合された16ビットMCUである。このMCUは1ミリ秒のループ連動化サイクル(looped slaving cycle)を有する。ロボットはまた、他のタイプのアクチュエータ、特にその色と強度がロボットの感情を伝えることができるLED(発光ダイオード)を含むことができる。後者はまた、他のタイプの位置センサ特に慣性測定ユニットとFSR(接地圧センサ)とを含むことができる。これらのFSR310は本発明の実施に特に有用である。これらは、この脈絡の中で、地面またはロボットの前進の任意の他の表面と足のそれぞれとの接触を検出するように意図されている。この目的により例えば、少なくとも2層のピエゾ抵抗可撓性材料を有するテープからなるTekscan(商標)社のFlexiForce(商標)センサを使用することが可能である。テープの電気抵抗は、テープが配置される表面に印加される垂直押圧力の関数として減少する。電流の測定は、較正後に押圧力を確定できるようにする。いくつかのセンサ(例えば、4個)が各足の裏に想定されると有利である。
【0037】
頭は、ロボットの知能、特にロボットに割り当てられたジョブをロボットが達成できるようにするハイレベル機能を実行するカードを含む。カードのプロセッサは市販のx86プロセッサであってよい。AMD社のGeode(商標)(32ビット、500MHz)の低消費電力プロセッサが優先的やり方で選択されることになる。カードはまた、一組のRAMとフラッシュメモリを含む。このカードはまた、通常はWiFi、WiMaxトランスミッションレイヤ上で、随意的にはVPN内の随意的にカプセル化された標準プロトコルを有する移動データ通信の公衆網上で、ロボットの外部(行動サーバー(behaviors server)、他のロボットなど)との通信を管理する。プロセッサは通常、標準OSにより操縦され、これにより通常のハイレベル言語(C、C++、Python等)、またはハイレベル機能をプログラムするためのURBI(ロボット工学のための特殊なプログラミング言語)などの人工知能のための特定言語を使用できるようにする。
【0038】
別のカードがロボットの胴内に収容される。頭のカードにより計算される順序の関節を制御するためのカードへの送信を保証するコンピュータが位置するのはここである。このカードのコンピュータもまた市販のプロセッサである。これは100MHzクロックのARM9(商標)タイプの32ビットプロセッサであると有利である。プロセッサの型、オン/オフボタンに近いその中央位置、電源の制御へのリンクは、ロボットの電源の管理(スタンバイモード、緊急停止等)に適切なツールとなる。カードはまた、一組のRAMとフラッシュメモリを含む。
【0039】
図4に対する注釈において以下に説明するように、ロボットの基準座標系においてロボットの特性点(エフェクタと呼ばれる)の位置を計算することが可能である。これらのエフェクタは、例えばロボットの臀部320、肘の関節330、肩の関節340、または指の関節350の点である。したがって、この直接幾何学モデルの計算は、閾値をロボットの形態構造の関数として選択することにより前記エフェクタの地面に対する近接性を検出するための手段として使用することができる。
【0040】
図4に、本発明のいくつかの実施形態におけるロボットの特徴的な点の、ロボットのいくつかの基準座標系における位置を計算するために使用される直接幾何学モデルを示す。
【0041】
所与の時点で、ロボットの関節のそれぞれの角度はロボットの中央システムに知られている。その結果、各関節のすべての他の関節に対する相対位置は、各関節が実際にはその自由度のすべてが決定され知られている関節鎖を伴うので、容易に計算することができる。別の点aの基準座標系における点bの位置を容易に計算するために、大きさ3×3の回転行列と大きさ3×1の平行移動行列とからなるタイプ
aH
bの線形変換行列と呼ばれる大きさ4×4の行列が活用される。線形変換行列は特に以下の特性を有する。
−これらは転位可能であり、
aH
b−1は
bH
aに等しい。
−
aH
b×
bH
c=
aH
c
【0042】
胴の基準座標系400は通常、ロボットの主基準座標系として使用される。この基準座標系における左右の手(それぞれ410、420)と左右の足(それぞれ430、440)の位置は行列
0H
1、
0H
2、
0H
3、
0H
4により与えられる。回転角は関節のモータの角度により与えられ、関節間距離は平行移動距離(inter−articulation distance)により与えられる。
【0043】
したがって地面に対する(すなわち、
図4の構成では右足440に対する)左手410の位置を計算するためには行列
4H
1を計算する必要がある。上記数式を適用することにより、これは行列反転と行列乗算により導出される。
4H
1=
0H
4−1×
0H
1
【0044】
この方式は、絶対座標系おけるロボットの任意の点、特には基準320(臀部)、330(肘)、340(肩)、350(指)を有する
図3に配置したものなどの任意のエフェクタの位置を特に計算するために使用することができる。
【0045】
図5a、5b、5cに、本発明のいくつかの実施形態におけるロボットの転倒を予測するための計算原理を示す。
【0046】
本発明の原理は、地面近くのエフェクタを考慮した仮想または投影支持多角形を計算することからなり、したがって通常はロボットの安定性を保証することができる。
【0047】
多角形510a、510b、510cは
図1b、1d、1fの多角形110b、110d、110fにそれぞれ対応する。
図6に対する注釈において以下に説明される手段により、第2の足120a、120cの押圧力センサが「第2の足120a、120cは地面との接触位置に無く、手130eは実際には地面の近傍にあった」ということを示したと判断される。当該近接性閾値はロボットの形態構造に依存することになる値に調整することができる。この閾値は、例えばその身長が60cm程度であるNAOロボットの場合4〜5cmである。背の高いロボットの場合、この閾値は増加されることになる。同様に、身長の観点ではロボットの歩幅の力学(例えば、階段を登るその能力)も考慮されなければならない。この第2の足の面積は、この瞬間における物理的実在性に対応する実際の多角形でない限りにおいて「仮想」と称される新しい支持多角形530a、530b、530cを与えるために、既に決定された支持多角形に加えられる。
【0048】
重心520a、520b、520cは今後いずれの場合も仮想支持多角形の内部に位置し、転倒検出のアルゴリズムは転倒管理機構をトリガする理由が無いと判断するが、一方従来技術のアルゴリズムは
図1a〜
図1fに対する注釈において示したようにそれをトリガしていたであろう。
【0049】
図6は、本発明のいくつかの実施形態におけるロボットの仮想支持多角形を決定するために実施される処理のフローチャートである。
図6に表すフローチャートによると、エフェクタ上の静安定の位置が物理的実在性に対応するという条件で、工程610において支持多角形の計算を初期化するために任意タイプのエフェクタに
図5a〜
図5cに表すケースを一般化することが可能である。したがってロボットがその両手等で歩行中であるということ想像することが可能である。押圧力センサ310は「エフェクタが接触しているか?」という質問に答えることができるようにする。これらの押圧力センサは、ロボットの前進の表面とエフェクタとの接触を検証する任意の手段で置換されてもよい。第1の多角形が計算されると(工程620)、支持多角形を補完するために任意数n−1の補完的エフェクタに、
図5a〜
図5cに表されたケースを一般化することも可能である。他の足と2つの手は系統的に試験される。臀部、肘、肩を加えることを決定することも可能である。試験630(エフェクタiの高さは閾値h
0未満か?)は各エフェクタの位置の直接的幾何学形状による計算を呼び出し、見い出された位置は、上に示すように固定された閾値未満の地面近くであると宣言される。試験が陽性であれば、エフェクタiが多角形に加えられる(工程640)。計算は予め選択されたエフェクタが使い果たされるまで続く。
【0050】
図7に、本発明のいくつかの実施形態における、その進行面上のヒューマノイドロボットの重心の投影を適切なやり方で決定するために考慮されなければならないヒューマノイドロボットの姿勢を示す。
【0051】
同図において、ロボットの足は地面に密着して配置されていなく、後者と角度θをなすということに注意されたい。足の垂直線を重心の投影と考えることはできない。このとき、関節変数により与えられるロボットの配向は正しくない。したがって、これを正す必要がある。これを行うために、慣性測定ユニットのデータが
図8に対する注釈において以下で説明するような計算に含まれることになる。
【0052】
図8は、本発明のいくつかの実施形態におけるその進行面上のヒューマノイドロボットの重心の投影を判断するために実施される処理のフローチャートである。
【0053】
アルゴリズムは、慣性測定ユニットの位置測定結果に基づき胴の配向をリセットすることからなる。慣性測定ユニットは、3つの加速度計と2つのジャイロスコープの測定に基づく2つの回転角を提供する。装置自体は継続的にリセットされる。2つの測定結果間にオフセットがあると、足が地面と非零角度θをなすと結論付けられ、装置により与えられる垂直線と足−胴軸とのなす角度に等しいθが計算される。
【0054】
図9a〜
図9iに、本発明のいくつかの実施形態における、ロボットの転倒を認識する条件を検出する前にフィルタリング可能なロボットのいくつかの姿勢を示す。
【0055】
ロボットの実際の姿勢に最もよく対応する仮想支持多角形を決定するようにいくつかのエフェクタを加えることが可能であったことは、
図6に対する注釈において上記に示されていた。しかしながら多くのエフェクタを加えることは転倒の検出処理を遅らせることになる。したがって転倒検出を行う必要があるものと前記検出を行う必要がないものとを抽出するように前記姿勢の従来のフィルタリングを行うことが有利かもしれない。認識された姿勢タイプの関数として、検出計算を行うために試験されるエフェクタまたはエフェクタ群を決定することを想像することも可能である。
【0056】
図9aと
図9bはそれぞれ、転倒検出機構を適用する必要がある「直立」および「しゃがむ」姿勢を示す。
【0057】
図9c〜
図9iに、「蛙」、「跪く」、「腕を前方にして座る」、「腕を後方にして座る」、「仰向けに寝る」、「横向きに寝る」、「不明の」姿勢をそれぞれ示す。姿勢9iでは、ロボットは第三者により保持され、そのエフェクタのいずれも地面に触れていない。これらのケース
図9c〜
図9iでは、転倒検出計算は行われない。
【0058】
図10は、一組の可能な位置におけるロボットの姿勢を特徴付けるために実施される処理のフローチャートである。
【0059】
ロボットの姿勢のフィルタリングは、関節の角度、足接触センサの出力、慣性測定ユニットの測定結果の値を使用することにより行われる。フィルタリングされる姿勢のデータはデータベース内に格納された基準姿勢のものと比較される。距離最小化原理(例えば、対応する基準面に対してフィルタリングされた各データムの相対的差異の和)がこの比較に使用される。この判定基準による距離測量は、データの数の関数としておよび実験結果の関数として固定された閾値と比較される。
【0060】
この機能は、本明細書の後で注釈される
図14に表される例示的な実施アーキテクチャにおけるモジュール「ALRobotPose」により実施される。
【0061】
図11は、本発明のいくつかの実施形態における転倒の結果を最小化するようにロボットの姿勢を管理するために実施される処理のフローチャートである。
【0062】
転倒状況が
図6に対する注釈において上に示した手段により検出されると、プロセッサと壊れやすいセンサとを含むロボットの敏感な領域(特にはその頭)と、複雑でかつ同様に壊れやすい関節を通常は含む骨盤と、を保護するための手段が実行される。
【0063】
特に、並行して、脚の関節(骨盤のものではない)の連動化は取り除かれ、
図12に対する注釈において以下に示すように決定される転倒角に依存することになる保護動作が行われることになる。この保護動作が行われた時点で腕、頭、骨盤の関節の連動化が同様に取り除かれる。これらの行為は極めて迅速に行われ、ロボットの純粋な反射運動を構成することが可能でなければならない。
【0064】
図12に、本発明のいくつかの実施形態における転倒の結果を最小化するために実施される行為を選択する様相を判断する原理を示す。
【0065】
転倒状況が
図6に対する注釈において上に示した手段により検出されると、地面の面内の転倒の角度が決定される。したがって地面上の基準座標系(SPACE_NAOと呼ばれる)が活用される。これは、x軸が常にロボットの方向(前方)に配向されることにより、したがってロボットの重心がこの基準座標系のどこから出るかを知ることにより、特徴付けられる所謂自己中心基準座標系(egocentric reference frame)を伴う。出口角は簡単な幾何学形状により導出される。この角度は、ロボットの前進の軸に対して計算され、時計回りの方向において正である。転倒は、−60°〜+60°間では前方に、+60°〜+120°間では右側に、+120°〜−120°間では後方に、−120°〜−60°間では左側に発生すると考えられる。
【0066】
保護戦略の選択の観点からは、左右の区画は等価である。したがってこの図に示す実施形態という脈絡の中で、転倒角度は、
図13a〜
図13cに対する注釈において以下に説明する3つの異なる戦略の選択に至る3つの区画を決定できるようにする。しかしながら4以上の区画としたがって4以上の保護戦略を決定することが可能であろう。本発明の原理は、例えば
図2に対する注釈において説明したように逆の振り子のモデルを適用することにより高精度に計算される転倒力学に依存する転倒姿勢を高精度に計算するものではない。むしろ、これは、ロボットの敏感アイテムと、転倒の方向が敏感アイテムに影響を与えるやり方とに依存するリスク等級の関数として定義されるいくつかのタイプの保護戦略の中から選ぶことを伴う。例えば、ロボットの脚の動きを生成することは、従来技術と同様に、動作が重要な慣性を生成するので、地面への衝撃を増大するかもしれないということに注意されたい。したがってロボットの関節の連動化の無効化は、ロボットが自重で転倒できるようにし、したがってロボットが転倒の速度と衝撃を増大できないようにする。
【0067】
図13a〜
図13cは、本発明のいくつかの実施形態における転倒の結果を最小化するために選択される姿勢の例である。
【0068】
図13aは、前へ転倒するケースを示す。これらのケースでは、保護身振りは例えば、
−頭を後方に配置することにより頭を保護すること、
−転倒を弱めて頭を保護するように腕を前方に持ってくること、
−ロボットの脚を揃えるために骨盤を閉じること、からなる。
【0069】
図13bは、右または左へ転倒するケースを示す。これらのケースでは、保護身振りは例えば、
−例えば前方と右側(例えば、イーサネットケーブル等が存在すれば)へのそのあり得る伸展を考慮した姿勢で頭を配置することにより頭を保護すること、
−体のほうに腕を揃えること、
−地面との最初の衝撃点が背中であって骨盤でないようにロボットを回転させるように骨盤を開くこと、からなる。
【0070】
図13cは、後方に倒れるケースを示す。これらのケースでは、保護身振りは例えば、
−例えば前方と右側(例えば、イーサネットケーブル等が存在すれば)へのそのあり得る伸展を考慮した姿勢で頭を配置することにより頭を保護すること、
−ロボットをロックするように腕を後方に持ってくること(この動きは、ロボットが背中で転がるのを防ぎ、首を折るのを防ぐように意図されている)、
−ロボットの脚を揃えるために骨盤を閉じること、からなる。
【0071】
図14は、その実施形態のいくつかにおいて本発明の実施を可能にする物理的および機能的アーキテクチャの線図である。
【0072】
NAOなどのロボットに、本発明の一実施形態におけるロボットの機能の操縦を可能にするハイレベルソフトウェアが付与されると有利である。NAOQIと呼ばれるこのタイプのソフトウェアアーキテクチャは、特に2009年10月15日発行の国際公開第2009/124955号パンフレットに開示されている。このアーキテクチャは、ロボットとPCまたは遠隔場所との間の通信を管理するための、そして本発明の実施のために必要なソフトウェアインフラストラクチャを提供するソフトウェアを交換するための、基本機能を含む。
【0073】
NAOQIはロボット用途に最適化された枠組みである。これはいくつかの言語、特にはC++、Python、Urbiを支援する。
【0074】
本発明という脈絡の中でNAOQIの以下のモジュールが特に役立つ。
−モジュールALMemory1410はNAOQIの様々なモジュール間で共有されるメモリを管理する。
−モジュールDCM1420は物理的ロボット(モータ、センサ)との通信を管理する。
−モジュールALRobotPose1430は基準姿勢と比較することによりロボットの現在の姿勢を計算する。ALMotionモジュール1440はロボットの動きを管理する。本発明の転倒を検出し管理するための機能が埋め込まれるのはこのモジュール(転倒マネージャ)である。
【0075】
これらの4つのモジュールはC++でコード化されると有利である。同図はまた、モジュール間のデータフローを示す。
【0076】
特に、転倒マネジャ機能の実施に必要な入力は、
−センサ(例えば、足押圧力センサ、慣性測定ユニット)の値と、
−ロボットの姿勢、である。
【0077】
転倒を検出する場合、転倒マネジャ機能は、特には反射保護運動を行うためにおよび関節を非活性化するために、関節を更新するための命令を送る。
【0078】
純粋に例示として同図においても示されるのは、各モジュールにより処理されるデータのリフレッシュサイクルの値(ロボットの姿勢および転倒の管理データの更新のための20ミリ秒、センサの値の10ミリ秒)である。
【0079】
転倒マネジャ機能は、あるセンサ、例えばMREセンサの良くない動作によりトリガされることがある。この場合、1つまたは複数の関節の異常な動きが発生することになり、この故障により仮想支持多角形の外に重心が出ると、保護位置内への配置がトリガされることになる。したがって転倒マネジャはロボットの故障を管理するための機能を補完する。
【0080】
上に述べた例は本発明の実施形態の例示として与えられた。これらは決して本発明の分野を限定するものではなく、本発明の分野は以下の特許請求範囲により規定される。