説明

ロボット、制御システムおよび制御プログラム

【課題】制御対象の動作の連続性または円滑性の維持を図ることができるシステム等を提供する。
【解決手段】本発明の制御システム1およびその制御対象であるロボットRによれば、空間補間用の基底関数を結合係数とする、モデル空間に配置された点列の線形結合として表現される線分を生成する補間処理が実行されることにより、目標位置軌道が生成される。このため、モデル空間に配置された複数の点のそれぞれを通る折れ線ではなく、当該複数の点(制御点)の線形結合により表わされる、始点および終点を連続的にまたは滑らかに接続する線分が制御対象の目標位置軌道として生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システムおよびその制御対象の1つであるロボットなどに関する。
【背景技術】
【0002】
ロボットなどの制御対象の大局的位置軌道を探索する手法として、RRT-Connectが提案されている(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Knuffer et al. “An Efficient Approach to Single-Query Path Planning”, In Proc. 2000 IEEE Int’l Conf. on Robotics and Automation (ICRA 2000)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、RRT-Connectによれば、通常は折れ線の位置軌道が探索結果として出力される。図5(b)には、RRT-Connectによって障害物を回避するように生成された目標位置軌道が示されている。このため、当該出力を目標位置軌道としてロボットがハンドなどを動かした場合、位置軌道の折れ曲がり箇所またはその手前で進行方向の変更のために、ハンドが停止または著しく減速する必要が生じうる。この結果、ハンドの速度または加速度が不連続となり、ロボットの動作の連続性または円滑性が損なわれる可能性がある。
【0005】
そこで、本発明は、制御対象の動作の連続性または円滑性の維持を図ることができるシステム等を提供することを解決課題とする。
【課題を解決するための手段】
【0006】
前記課題を解決するための本発明の制御システムは、実空間を表わすモデル空間において定義される目標位置軌道にしたがって、制御対象またはその指定部分が変位するように前記制御対象の動作を制御するシステムであって、前記モデル空間において、相互に離れて配置されている点列に基づき、空間補間用の基底関数を結合係数とする、前記点列の線形結合として表現される線分を生成する補間処理を実行するとともに、前記補間処理により生成された一の線分の基礎である前記点列に点を加えて新たな点列を定義した上で、前記新たな点列を基礎として前記補間処理を実行することにより、当該一の線分が延長線分によって延長された新たな線分を生成する延長処理を実行するように構成されている第1演算処理要素と、前記第1演算処理要素により延長処理が実行されることにより最近に延長された前記一の線分の基礎である前記新たな点列と、前記補間処理により生成された他の線分の基礎である他の点列とを基礎として前記補間処理を実行することにより、前記一の線分および前記他の線分が接続線分によって接続された形の線分を、前記目標位置軌道またはその候補として生成する接続処理を実行するように構成されている第2演算処理要素とを備えていることを特徴とする。
【0007】
本発明の制御システムによれば、空間補間用の基底関数を結合係数とする、モデル空間に配置された点列の線形結合により表現される線分を生成する補間処理が実行されることにより、目標位置軌道またはその候補が生成される。「線分」は直線および曲線のいずれであってもよい。このため、モデル空間に配置された複数の点のそれぞれを通る折れ線ではなく、当該複数の点(制御点)の線形結合により表わされる、始点および終点を連続的にまたは滑らかに接続する線分が制御対象の目標位置軌道またはその候補として生成される。これにより、目標位置軌道にしたがった制御対象の動作の連続性または円滑性の維持が図られうる。
【0008】
前記第1演算処理要素が、前記モデル空間において、前記延長線分が実空間における物体を表わす物体領域から外れていることを含む指定条件を満たしているか否かを判定する第1判定処理を実行するように構成され、前記第1判定処理の結果が否定的であることを要件として、前記一の線分を棄却した上で前記延長処理を実行するように構成されていてもよい。
【0009】
前記第2演算処理要素が、前記モデル空間において、前記接続線分が実空間における物体を表わす障害物領域から外れていることを含む指定条件を満たしているか否かを判定する第2判定処理を実行するように構成され、前記第2判定処理の結果が否定的であることを要件として、前記第1演算処理要素が、前記新たな点列を再定義した上で前記延長処理を実行するように構成されていてもよい。
【0010】
当該構成の制御システムによれば、障害物との接触を回避しながら、前記のように目標位置軌道にしたがった制御対象の動作の連続性または円滑性の維持が図られる。
【0011】
前記課題を解決するための本発明の制御プログラムは、制御対象に搭載されているコンピュータを前記制御システムとして機能させることを特徴とする。
【0012】
前記課題を解決するための本発明のロボットは、基体と、前記基体から延設されている肢体とを備え、前記肢体を動かすことによりタスクを実行するように構成されている前記制御対象としてのロボットであって、前記制御システムを備えていることを特徴とする。
【0013】
本発明のロボットによれば、連続性または円滑性の維持が図られた目標位置軌道にしたがって動作することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態としてのロボットの構成説明図。
【図2】ロボットの制御システムの構成説明図。
【図3】制御システムの機能説明図。
【図4】目標位置軌道の生成方法に関する説明図。
【図5】位置軌道生成の実施例に関する説明図。
【図6】ロボットの動作に関する説明図。
【発明を実施するための形態】
【0015】
本発明の制御システムおよびその制御対象の実施形態について図面を用いて説明する。
【0016】
(ロボットの構成)
まず、本発明の制御対象の一実施形態としてのロボットの構成について説明する。
【0017】
図1に示されているロボットRは脚式移動ロボットであり、人間と同様に、基体B0と、基体B0の上方に配置された頭部B1と、基体B0の上部に上部両側から延設された左右の腕体B2と、左右の腕体B2のそれぞれの先端に設けられているハンドHと、基体B0の下部から下方に延設された左右の脚体B4とを備えている。
【0018】
基体B0はヨー軸回りに相対的に回動しうるように上下に連結された上部および下部により構成されている。頭部B1は基体B0に対してヨー軸回りに回動する等、動くことができる。
【0019】
腕体B2は第1腕体リンクB22と、第2腕体リンクB24とを備えている。基体B0と第1腕体リンクB21とは肩関節機構(第1腕関節機構)B21を介して連結され、第1腕体リンクB22と第2腕体リンクB24とは肘関節機構(第2腕関節機構)B23を介して連結され、第2腕体リンクB24とハンドHとは手首関節機構(第3腕関節機構)B25を介して連結されている。肩関節機構B21はロール、ピッチおよびヨー軸回りの回動自由度を有し、肘関節機構B23はピッチ軸回りの回動自由度を有し、手首関節機構B25はロール、ピッチ、ヨー軸回りの回動自由度を有している。
【0020】
脚体B4は第1脚体リンクB42と、第2脚体リンクB44と、足部B5とを備えている。基体B0と第1脚体リンクB42とは股関節機構(第1脚関節機構)B41を介して連結され、第1脚体リンクB42と第2脚体リンクB44とは膝関節機構(第2脚関節機構)B43を介して連結され、第2脚体リンクB44と足部B5とは足関節機構(第3脚関節機構)B45を介して連結されている。
【0021】
股関節機構B41はロール、ピッチおよびロール軸回りの回動自由度を有し、膝関節機構B43はピッチ軸回りの回動自由度を有し、足関節機構B45はロールおよびピッチ軸回りの回動自由度を有している。股関節機構B41、膝関節機構B43および足関節機構B45は「脚関節機構群」を構成する。なお、脚関節機構群に含まれる各関節機構の並進および回転自由度は適宜変更されてもよい。また、股関節機構B41、膝関節機構B43および足関節機構B45のうち任意の1つの関節機構が省略された上で、残りの2つの関節機構の組み合わせにより脚関節機構群が構成されていてもよい。さらに、脚体B4が膝関節とは別の第2脚関節機構を有する場合、当該第2脚関節機構が含まれるように脚関節機構群が構成されてもよい。足部B5の底には着床時の衝撃緩和のため、特開2001−129774号公報に開示されているような弾性素材B52が設けられている。
【0022】
ロボットRには、ロボットRの世界座標系における位置および姿勢などの内部状態を測定するための複数の内部状態センサS1が搭載されている。ロボットRの各関節機構の屈曲角度(関節角度)に応じた信号を出力するエンコーダ(図示略)、基体B0の姿勢(方位角および仰角により特定される。)に応じた信号を出力する傾斜センサ、および、足部B5および着床および離床の別を判定するための圧力センサなどが内部状態センサS1に該当する。ロボットRの周囲の様子を撮像し、当該撮像座標に基づいて世界座標系に固定されている標識の位置を認識することにより、世界座標系におけるロボットRの位置を認識するための撮像装置が内部状態センサS1に該当する。
【0023】
たとえば、頭部B1に搭載され、ロボットRの前方を撮像範囲とするCCDカメラ、赤外線カメラ等、種々の周波数帯域における光を感知しうる左右一対の頭カメラC1が撮像装置として採用されうる。また、基体B0の前側下部に搭載され、ロボットRの前方下方に向けて発せられた近赤外レーザー光の物体による反射光を検知することによりこの物体の位置や方位等を測定するための腰カメラ(アクティブセンサ)C2が撮像装置として採用されうる。
【0024】
ロボットRには、その周辺における物体の位置などの外部状態を測定するための外部状態センサS2が搭載されている。前記のような撮像装置が外部状態センサS2に該当する。
【0025】
ロボットRは制御システム1の一部を構成するコンピュータと、前記の複数の関節機構のそれぞれを動かすための複数のアクチュエータ2とを備えている。ロボットRの内部状態および外部状態に応じて制御システム1から出力される制御指令にしたがってアクチュエータ2のそれぞれの動作が制御されることにより、ロボットRがさまざまな態様で適応的に行動することができる。
【0026】
なお、ロボットR(図1参照)のほか、車両など、部分的または全体的に目標位置軌道にしたがって変位するように動作が制御されるあらゆる装置が制御対象とされてもよい。
【0027】
(制御システムの構成)
図2に示されている制御システム1は、ロボットRに搭載されているコンピュータにより構成されている。制御システム1は、後述する演算処理を実行するように構成されている第1演算処理要素11および第2演算処理要素12を備えている。
【0028】
第1演算処理要素11および第2演算処理要素12のそれぞれは、ハードウェア資源としてのプロセッサおよびメモリにより構成されている。第1演算処理要素11および第2演算処理要素12は、共通のハードウェア資源により構成されていてもよく、少なくとも部分的に異なるハードウェア資源により構成されていてもよい。
【0029】
演算処理要素が演算処理を実行するように構成されているとは、当該演算処理要素を構成するプロセッサがメモリから必要なソフトウェアを読み取り、当該ソフトウェアを実行することにより演算処理を実行するようにプログラムされていることを意味する。
【0030】
(ロボットの機能)
前記構成のロボットRおよび制御システム1の機能について説明する。ここで、たとえば、図6に示されているようにロボットRが腕体B2を動かすことにより、ハンドHおよびコップが、テーブルに置かれている他のコップと接触しないようにハンドHで把持しているコップを動かし、このテーブルに置くというタスクを実行する際の動作が制御される場合について説明する。
【0031】
第1演算処理要素11により、モデル空間における始点位置および終点位置が認識される(図3/STEP02)。
【0032】
始点位置は、たとえば、実空間においてロボットRがコップを把持している状態の一方のハンドHの位置に対応している。終点位置は、たとえば、実空間においてロボットRがコップをテーブルに置く際のハンドHの位置に対応している。
【0033】
始点位置および終点位置のそれぞれは、内部状態センサS1および外部状態センサS2のそれぞれの出力信号に基づき、制御システム1によって計算されてもよく、外部端末装置から無線通信によって制御システム1に対して入力されてもよい。
【0034】
また、始点側ツリーおよび終点側ツリーのうち一方が選択される(図3/STEP04)。この際、後述する位置軌道の延長位置軌道生成の失敗に伴う選択ツリーの変更回数を示す指数iが「0」に初期設定される。
【0035】
その上で、RRTアルゴリズムにしたがって任意の位置に点(ノード)qが生成される(図3/STEP06)。始点側ツリーは初期段階では始点そのものであり、その後、RRTアルゴリズムにしたがって始点を基準として拡がるように逐次生成される点qが逐次連結されることによって徐々に成長する(図4(a)破線参照)。同様に、終点側ツリーは初期段階では終点そのものであり、その後、RRTアルゴリズムにしたがって終点を基準として拡がるように逐次生成される点qが逐次連結されることによって徐々に成長する(図4(b)参照)。当該選択ツリーを対象として「延長処理」が実行される。
【0036】
「延長処理」に際して、まず、選択ツリーの中から点qに最も近い点qnearが選択される(図3/STEP08)。
【0037】
点qが最近点qnearから閾値εを超えて離れている場合、線型補間により当該点qが最近点qnearから閾値εの距離まで近づけられ、この近づけられた点qが今回制御点qnewとして定義される(図3/STEP10)。
【0038】
そして、選択ツリーの根元から最近点qnearに至る点列であって、これまでのB−スプライン曲線の基礎となっている点列に対して、今回制御点qnewが末尾に追加された新たな点列を基礎としてB−スプライン曲線による補間処理が実行される。選択ツリーの根元から伸びる当該B−スプライン曲線のうち、今回制御点qnewが旧点列に追加されたことによって延長された部分が「延長位置軌道」として生成される(図3/STEP12)。
【0039】
B−スプライン曲線x(t)は、式(01)のように正規化されたB−スプライン基底関数Bi,N(t)を結合係数とする、制御点列Pi(点の位置を表わす。i=1,2,‥m)の線形結合により表現される。延長位置軌道は、曲線上のパラメータtの区間が[tn-N-2,tn-N-1]と設定されることにより求められる。Nはオーダーを意味する。nはノット数を意味する。mは制御点の数を意味する。
【0040】
x(t)=Σi=1~mBi,N(t)Pi ..(01)。
【0041】
正規化されたB−スプライン基底関数Bi,N(t)は次のCox-deBoorの帰納式(02)により定義される。
【0042】
Bi,1(t)=1(ti<t<ti+1の場合),0(その他の場合),
Bi,k(t)={(t−ti)/(ti+k-1−ti)}Bi,k-1(t)+{(ti+k−t)/(ti+k−ti+1)}Bi+1,k-1(t) ..(02)。
【0043】
これにより、たとえば、図4(a)に示されているように、選択ツリー(始点側ツリー)に応じて定められる前回位置軌道(細線参照)に続く延長位置軌道(太線参照)が定義される。
【0044】
さらに、第1判定処理が実行される(図3/STEP14)。具体的には、延長位置軌道が、実空間におけるテーブルおよびテーブルに載せられている他のコップなどの障害物を表わす障害物領域から外れており、かつ、ロボットRにその関節角度の許容範囲を超えた行動を強いる位置軌道ではないことという指定条件を満たすか否かがが判定される。当該障害物領域は、外部状態センサS2の出力信号に基づき、その位置、姿勢および形状が認識されうる。
【0045】
延長位置軌道が指定条件を満たしている判定された場合(図3/STEP14‥YES)、すなわち、延長処理が成功した場合、今回制御点qnewまたは当該制御点qnewまでの延長位置軌道が選択ツリーに追加される(図3/STEP15)。さらに、前回位置軌道および延長位置軌道が今回位置軌道として定義され、当該今回位置軌道は次回の延長処理に際して、前回位置軌道として取り扱われる。延長処理に続いて「接続処理」が実行される。
【0046】
「接続処理」に際して、まず、選択ツリーが変更される(図3/STEP16)。これにより、始点側ツリーがそれまでの選択ツリーであった場合、終点側ツリーが新たな選択ツリーとして以降の処理が実行される。同様に、終点側ツリーがそれまでの選択ツリーであった場合、始点側ツリーが新たな選択ツリーとして以降の処理が実行される。
【0047】
選択ツリーの中から、先に生成された今回制御点qnew(図3/STEP10参照)に最も近い点qnearが選択される(図3/STEP18)。
【0048】
そして、始点側ツリーと終点側ツリーのそれぞれの根元から最近点qnearに至る点列であって、これまでの始点側位置軌道および終点側位置軌道の基礎となっている点列に対して、今回制御点qnewが途中に追加された新たな点列を基礎としてB−スプライン曲線による補間処理が実行される。始点および終点を接続する当該B−スプライン曲線のうち今回制御点qnewの旧点列への追加によって生成された部分が「接続位置軌道」として計算される(図3/STEP20)。
【0049】
接続位置軌道は、今回制御点qnewのノード番号を「i」と定めた場合、曲線上のパラメータtの区間が[ti+1,ti+N+1]と設定されることにより求められる。これにより、図4(b)に示されているように、始点から伸びる始点側位置軌道(一点鎖線参照)および終点から伸びる終点側位置軌道(二点鎖線参照)を接続する接続位置軌道(太線参照)が生成される。
【0050】
さらに、接続位置軌道が指定条件を満たすか否かが判定される(図3/STEP22)。
【0051】
接続位置軌道が指定条件を満たしていると判定された場合(図3/STEP22‥YES)、すなわち、接続処理が成功した場合、接続位置軌道ならびに当該接続位置軌道により接続された始点側位置軌道および終点側位置軌道が、始点から終点まで至る、制御対象の指定部分であるハンドHの目標位置軌道として生成される(図3/STEP24)。図5(a)には、本発明の手法によって障害物を回避するように生成された、始点から終点に至る目標位置軌道が例示されている。
【0052】
そして、図6に示されているように、目標位置軌道にしたがってハンドHが矢印付き曲線で表わされているように実空間において変位するようにロボットRの動作が制御される。これにより、動作中に他の物体との接触を回避し、かつ、各関節角度が許容範囲から外れることを防止しながら、ハンドHで把持しているコップをテーブルに置くというタスクをロボットRに円滑に実行させることができる。
【0053】
その一方、接続位置軌道が指定条件を満たしていないと判定された場合(図3/STEP22‥NO)、すなわち、接続処理が失敗した場合、延長処理が再び実行される(図3/STEP08〜STEP014参照)。
【0054】
さらに、延長位置軌道が指定条件を満たしていないと判定された場合(図3/STEP14‥NO)、すなわち、延長処理が失敗した場合、今回制御点qnewまたは当該制御点qnewまでの延長位置軌道は選択ツリーに追加されずに棄却される(図3/STEP25)。その上で、指数iが上限値K以下であるか否かが判定される(図3/STEP26)。
【0055】
指数iが上限値K以下であると判定された場合(図3/STEP26‥YES)、選択ツリーが変更される(図3/STEP28)。この際、指数iが1だけ増加する。その上で、任意の点qの生成(図3/STEP06参照)以降の処理が当該変更後の選択ツリーを対象として実行される。
【0056】
指数iが上限値Kを超えていると判定された場合(図3/STEP26‥NO)、位置軌道探索が失敗したと認識される(図3/STEP30)。これに応じて、制御システム1は、ロボットRの当該位置軌道にしたがった動作を停止させて物体の移動(外部状態センサS2を通じて認識される)などの状況変化を待つ、あるいは、脚体B4を動かしてロボットRをその場から移動させたり、その場で基体B0をひねったりすることによりタスク実行開始条件をロボットRの動作によって変化させる。その上で、制御システム1は前記のような位置軌道探索を再実行する。
【0057】
(本発明の制御システムの作用効果)
前記機能を発揮する制御システム1によれば、空間補間用の基底関数を結合係数とする、モデル空間に配置された点列の線形結合により表現される線分を生成する補間処理が実行されることにより、目標位置軌道またはその候補が生成される(式(01)、図4(a)(b)参照)。このため、モデル空間に配置された複数の点のそれぞれを通る折れ線(図5(b)参照)ではなく、当該複数の点(制御点)の線形結合により表わされる、始点および終点を連続的にまたは滑らかに接続する線分が制御対象の目標位置軌道またはその候補として生成される(図4(b)、図5(a)。これにより、目標位置軌道にしたがった制御対象の動作の連続性または円滑性の維持が図られうる。
【0058】
(本発明の他の実施形態)
第1判定処理および第2判定処理が省略され、接続処理が終了した段階において生成された位置軌道が指定条件を満たすか否かが判定され、当該判定結果が肯定的であったことを要件としてこの位置軌道が目標位置軌道として設定されてもよい。
【0059】
B−スプライン曲線(式(01)参照)のほか、式(11)により定義されるHermite曲線または式(21)により定義されるBezier曲線が空間補間曲線として用いられることによって、延長処理および接続処理のそれぞれが実行されてもよい。
【0060】
P(t)=(2t3−3t2+1)Pstart+(t3−2t2+t)G1start+(−2t3+3t2)Pend+(t3−t2)G1end..(11)
【0061】
ここで、PstartおよびPendは曲線の端点の位置ベクトルを表わしている。また、G1startおよびG1endは当該端点における曲線の接線ベクトル(1階微分)を表わしている。延長処理および接続処理に際して、制御点列Pi(i=1,2, ..m)の各区間をHermite曲線で補間することによってHermite曲線がRRT-Connectに適用される。この際、G1start、G1endは隣り合う区間で1階微分の連続性が保たれるように選択されなければならない。
【0062】
x(t)=Σi=0~mJn,i(t)Pi ..(21)。
【0063】
ここで、Bezier基底関数(またはBernstein基底関数)Jn,i(t)は式(22)により定義される。
【0064】
Jn,i(t)=n!/{i!(n−i)!}ti(1−t)n-i ..(22)。
【0065】
延長処理および接続処理において用いられる空間補間は、原則的に、空間補間用の基底関数を結合係合とする、モデル空間に配置された点列の線形結合により表現される線分を形成する空間補間であること(第1条件)、および、既存の制御点列に新しい制御点が付加されたとき、既存の制御点によって作られる部分曲線が変化しないこと(第2条件)という2つの条件を満たしている必要がある。
【0066】
ただし、Bezier曲線は第2条件を満たさないものの、Hermite曲線と同様、経路点列が複数の区間に分割されることにより、複数のBezier曲線が接続されることで、空間補間曲線として採用されうる。
【符号の説明】
【0067】
1‥制御システム、2‥アクチュエータ、11‥第1演算処理要素、12‥第2演算処理要素、R‥ロボット(制御対象)。

【特許請求の範囲】
【請求項1】
実空間を表わすモデル空間において定義される目標位置軌道にしたがって、制御対象またはその指定部分が変位するように前記制御対象の動作を制御するシステムであって、
前記モデル空間において、相互に離れて配置されている点列に基づき、空間補間用の基底関数を結合係数とする、前記点列の線形結合として表現される線分を生成する補間処理を実行するとともに、前記補間処理により生成された一の線分の基礎である前記点列に点を加えて新たな点列を定義した上で、前記新たな点列を基礎として前記補間処理を実行することにより、当該一の線分が延長線分によって延長された新たな線分を生成する延長処理を実行するように構成されている第1演算処理要素と、
前記第1演算処理要素により延長処理が実行されることにより最近に延長された前記一の線分の基礎である前記新たな点列と、前記補間処理により生成された他の線分の基礎である他の点列とを基礎として前記補間処理を実行することにより、前記一の線分および前記他の線分が接続線分によって接続された形の線分を、前記目標位置軌道またはその候補として生成する接続処理を実行するように構成されている第2演算処理要素とを備えていることを特徴とする制御システム。
【請求項2】
請求項1記載の制御システムにおいて、
前記第1演算処理要素が、前記モデル空間において、前記延長線分が実空間における物体を表わす物体領域から外れていることを含む指定条件を満たしているか否かを判定する第1判定処理を実行するように構成され、前記第1判定処理の結果が否定的であることを要件として、前記一の線分を棄却した上で前記延長処理を実行するように構成されていることを特徴とする制御システム。
【請求項3】
請求項1または2記載の制御システムにおいて、
前記第2演算処理要素が、前記モデル空間において、前記接続線分が実空間における物体を表わす物体領域から外れていることを含む指定条件を満たしているか否かを判定する第2判定処理を実行するように構成され、前記第2判定処理の結果が否定的であることを要件として、前記第1演算処理要素が、前記新たな点列を再定義した上で前記延長処理を実行するように構成されていることを特徴とする制御システム。
【請求項4】
制御対象に搭載されているコンピュータを請求項1〜3のうちいずれか1つに記載の制御システムとして機能させることを特徴とする制御プログラム。
【請求項5】
基体と、前記基体から延設されている肢体とを備え、前記肢体を動かすことによりタスクを実行するように構成されている前記制御対象としてのロボットであって、請求項1〜3のうちいずれか1つに記載の制御システムを備えていることを特徴とするロボット。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate