説明

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

【課題】制御対象の効率的な動作を表現する軌道の確実な探索と、当該軌道の探索時間の短縮を図ることができるシステム等を提供する。
【解決手段】本発明の制御システム1によれば、空間補間用の基底関数を結合係数とする、モデル空間に配置された点列の線形結合により表現される線分を生成する補間処理が実行される。その結果、各関節機構の屈曲状態(各軸回りの回転角度により表現される。)を表わすクォータニオンの目標軌道またはその候補が生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システムおよびその制御対象の1つであるロボットなどに関する。
【背景技術】
【0002】
ロボットアームなど、回転自由度を有する関節機構を備えている制御対象の動作を定める軌道を探索する手法が提案されている(特許文献1参照)。たとえば、関節機構の角度(関節角度)またはローカル座標系における制御対象の指定部分の位置または姿勢を表わすオイラー角の軌道を探索することが考えられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−005761号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、制御対象の関節角度により軌道が表現された場合、当該制御対象が不必要に大きく動くような非効率的な軌道が生成される可能性がある。また、ローカル座標系における制御対象の指定部分の位置または姿勢を表わすオイラー角により軌道が表現された場合、当該制御対象の関節角度限界が厳密に考慮されないために探索時間が長くなる傾向がある。これは、軌道を記述する空間に、特異点、すなわち、ヤコビ行列が非正則となり、微分が定義されえない点(内挿できない)点が存在するためである。
【0005】
そこで、本発明は、制御対象の効率的な動作を表現する軌道の確実な探索と、当該軌道の探索時間の短縮を図ることができるシステム等を提供することを解決課題とする。
【課題を解決するための手段】
【0006】
前記課題を解決するための本発明の制御システムは、2または3つの直交軸のそれぞれ回りの回転角度によって屈曲状態が表現される関節機構を備えている制御対象の動作を制御するシステムであって、前記関節機構における各軸回りの回転角度が、クォータニオンによって表現されるモデル空間において、相互に離れて配置されている点列に基づき、空間補間用の基底関数を結合係数とする、前記点列の線形結合として表現される線分を生成する補間処理を実行するとともに、前記補間処理により生成された一の線分の基礎である前記点列に点を加えて新たな点列を定義した上で、前記新たな点列を基礎として前記補間処理を実行することにより、当該一の線分が延長線分によって延長された新たな線分を生成する延長処理を実行するように構成されている第1演算処理要素と、前記第1演算処理要素により延長処理が実行されることにより最近に延長された前記一の線分の基礎である前記新たな点列と、前記補間処理により生成された他の線分の基礎である他の点列とを基礎として前記補間処理を実行することにより、前記一の線分および前記他の線分が接続線分によって接続された形の線分を、前記関節機構における各軸回りの回転角度を表わすクォータニオンの目標軌道またはその候補として生成する接続処理を実行するように構成されている第2演算処理要素とを備え、前記第1演算処理要素および前記第2演算処理要素のそれぞれが、前記関節機構の屈曲状態が2つの直交軸のそれぞれ回りの回転角度によって表現される場合、実数成分が0である第1種のクォータニオンを表わす点列に基づいて前記前記補間処理を実行する一方、前記関節機構の屈曲状態が3つの直交軸のそれぞれ回りの回転角度によって表現される場合、実数成分が0に拘束されない第2種のクォータニオンを表わす点列に基づいて前記前記補間処理を実行するように構成されていることを特徴とする。
【0007】
本発明の制御システムによれば、空間補間用の基底関数を結合係数とする、モデル空間に配置された点列の線形結合により表現される線分を生成する補間処理が実行される。「線分」は直線および曲線のいずれであってもよい。その結果、関節機構における各軸回りの回転角度を表わすクォータニオンの目標軌道またはその候補が生成される。クォータニオンにより表現されるモデル空間には特異点が無いため軌道の探索時間の短縮が図られる。また、クォータニオンにより記述されるモデル空間の補間は球面線形補間となるため、冗長性が排除された効率的な軌道が計算されうる。よって、制御対象の効率的な動作を表現する軌道の確実な探索と、当該軌道の探索時間の短縮が図られる。
【0008】
前記第1演算処理要素が、前記モデル空間において、前記延長線分が実空間における物体を表わす障害物領域から外れていることを含む指定条件を満たしているか否かを判定する第1判定処理を実行するように構成され、前記第1判定処理の結果が否定的であることを要件として、前記一の線分を棄却した上で前記延長処理を実行するように構成されていてもよい。
【0009】
前記第2演算処理要素が、前記モデル空間において、前記接続線分が実空間における物体を表わす障害物領域から外れていることを含む指定条件を満たしているか否かを判定する第2判定処理を実行するように構成され、前記第2判定処理の結果が否定的であることを要件として、前記第1演算処理要素が、前記新たな点列を再定義した上で前記延長処理を実行するように構成されていてもよい。
【0010】
当該構成の制御システムによれば、障害物との接触を回避しながらも、制御対象の効率的な動作を表現する軌道の確実な探索と、当該軌道の探索時間の短縮が図られる。
【0011】
前記課題を解決するための本発明の制御プログラムは、制御対象に搭載されているコンピュータを前記制御システムとして機能させることを特徴とする。
【0012】
前記課題を解決するための本発明のロボットは、基体と、前記基体から延設されている肢体とを備え、前記肢体を動かすことによりタスクを実行するように構成されている前記制御対象としてのロボットであって、前記制御システムを備えていることを特徴とする。
【0013】
本発明のロボットによれば、その効率的な動作を表現する目標軌道にしたがって動作が制御されうる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態としてのロボットの構成説明図。
【図2】ロボットの制御システムの構成説明図。
【図3】制御システムの機能説明図。
【図4】モデル空間における目標軌道の生成方法に関する説明図。
【図5】モデル空間における目標軌道の実施例に関する説明図。
【図6】目標軌道にしたがったロボットの動作態様に関する説明図。
【図7】目標軌道にしたがったロボットの動作態様に関する説明図。
【図8】ロボットの動作に関する説明図。
【発明を実施するための形態】
【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参照)のほか、車両など、部分的または全体的に目標軌道にしたがって変位するように動作が制御されるあらゆる装置が制御対象とされてもよい。
(制御システムの構成)
図2に示されている制御システム1は、ロボットRに搭載されているコンピュータにより構成されている。制御システム1は、後述する演算処理を実行するように構成されている第1演算処理要素11および第2演算処理要素12を備えている。
【0027】
第1演算処理要素11および第2演算処理要素12のそれぞれは、ハードウェア資源としてのプロセッサおよびメモリにより構成されている。第1演算処理要素11および第2演算処理要素12は、共通のハードウェア資源により構成されていてもよく、少なくとも部分的に異なるハードウェア資源により構成されていてもよい。
【0028】
演算処理要素が演算処理を実行するように構成されているとは、当該演算処理要素を構成するプロセッサがメモリから必要なソフトウェアを読み取り、当該ソフトウェアを実行することにより演算処理を実行するようにプログラムされていることを意味する。
【0029】
(ロボットの機能)
前記構成のロボットRおよび制御システム1の機能について説明する。ここで、たとえば、図8に示されているようにロボットRが腕体B2を動かすことにより、ハンドHおよびコップが、テーブルに置かれている他のコップと接触しないようにハンドHで把持しているコップを動かし、このテーブルに置くというタスクを実行する際の動作が制御される場合について説明する。
【0030】
第1演算処理要素11により、クォータニオンにより定義されるモデル空間における始点位置および終点位置が認識される(図3/STEP02)。
【0031】
始点位置は、たとえば、ロボットRが片手Hで把持しているコップを動かし始める時点における肩関節機構B21および肘関節機構B23のそれぞれの屈曲状態を表わすクォータニオンの位置を表わしている。終点位置は、たとえば、ロボットRが片手Hで把持しているコップをテーブルに置いた時点における肩関節機構B21および肘関節機構B23のそれぞれの屈曲状態を表わすクォータニオンの位置を表わしている。関節機構ごとに始点位置および終点位置は原則的に異なり、別個のクォータニオンの軌道が生成される(図5(a)(b)参照)。
【0032】
肘関節機構B23は前記のようにピッチおよびロールの2つの回転自由度を有しており、その屈曲状態は2つの直交軸回りの回転角度により表わされる。このため、肘関節機構B23の屈曲状態は、実数成分が0である「第1種のクォータニオン」により表わされる。当該2つの直交軸回りの回転によって、肘関節機構B23に固定された座標系から見たハンドHの方向が、ノルムが1になるように正規化された3次元ベクトルv=(vx,vy,vz)として表現される場合、第1種のクォータニオン実数成分vwおよび各虚数成分vμ(μ=x,y,z)は式(50)により表現される。
【0033】
vw=0, vμ=v ..(50)。
【0034】
第1種のクォータニオンq11およびq12の球面線型補間の結果qは、補間比率tを用いて式(100)により表現される。
【0035】
q(t)=R-1q11R(ここでR=exp(ωt/2), ω≡ln(q11-1q12)である。) ..(100)。
【0036】
肩関節機構B21は前記のようにピッチおよびロールの3つの回転自由度を有しており、その屈曲状態は3つの直交軸回りの回転角度により表わされる。このため、肩関節機構B21の屈曲状態は、実数成分が0に拘束されない「第2種のクォータニオン」により表わされる。当該3つの直交軸回りの回転が、1つの軸r=(rx, ry, rz)回りの角度θの回転として表現される場合、第2種のクォータニオンの実数成分Uwおよび各虚数成分Uμ(μ=x,y,z)は式(200)により表わされる。
【0037】
Uw=cos(θ/2), Uμ=rμsin(θ/2) ..(200)。
【0038】
始点位置および終点位置のそれぞれは、内部状態センサS1および外部状態センサS2のそれぞれの出力信号に基づき、制御システム1によって計算されてもよく、外部端末装置から無線通信によって制御システム1に対して入力されてもよい。
【0039】
また、始点側ツリーおよび終点側ツリーのうち一方が選択される(図3/STEP04)。この際、後述する軌道の延長軌道生成の失敗に伴う選択ツリーの変更回数を示す指数iが「0」に初期設定される。
【0040】
その上で、RRTアルゴリズムにしたがって任意の位置に点(ノード)qが生成される(図3/STEP06)。始点側ツリーは初期段階では始点そのものであり、その後、RRTアルゴリズムにしたがって始点を基準として拡がるように逐次生成される点qが逐次連結されることによって徐々に成長する。同様に、終点側ツリーは初期段階では終点そのものであり、その後、RRTアルゴリズムにしたがって終点を基準として拡がるように逐次生成される点qが逐次連結されることによって徐々に成長する。選択ツリーを対象として「延長処理」が実行される。
【0041】
「延長処理」に際して、まず、選択ツリーの中から点qに最も近い点qnearが選択される(図3/STEP08)。
【0042】
点qが最近点qnearから閾値εを超えて離れている場合、線型補間により当該点qが最近点qnearから閾値εの距離まで近づけられ、この近づけられた点qが今回制御点qnewとして定義される(図3/STEP10)。
【0043】
そして、選択ツリーの根元から最近点qnearに至る点列であって、B−スプライン曲線の基礎となっている点列に対して、今回制御点qnewが末尾に追加された新たな点列を基礎としてB−スプライン曲線による補間処理(球面線形補間処理)が実行される。選択ツリーの根元から伸びる当該B−スプライン曲線のうち、今回制御点qnewが旧点列に追加されたことによって延長された部分が「延長軌道」として計算される(図3/STEP12)。
【0044】
(第1種のクォータニオンの補間処理)
回転自由度「2」を有する肘関節機構B23の屈曲状態を表わす第1種のクォータニオン(実数成分が0の単位クォータニオン)のB−スプライン曲線q(t)は与えられた制御点群{qi}に基づき、式(12)にしたがって計算される。
【0045】
q(t)=R-1q0R,
R=Πi=1~nqi(t),
qi(t)≡exq{ωiB~i,k(t)/2} (i=1,2,..,n), ωi≡log((qi-1)-1qi) ..(12)。
【0046】
ここで「B~i,k(t)」は累積B−スプライン基底関数であり、正規化されたB−スプライン基底関数Bj,k(t)に基づき、式(01)にしたがって表現される。
【0047】
B~i,k(t)≡Σj=1~nBj,k(t) ..(01)。
【0048】
正規化されたB−スプライン関数Bj,k(t)は、次のCox-deBoorの帰納式(02)を満たすように定義されている。
【0049】
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)。
【0050】
第1種のクォータニオンのB−スプライン曲線の微分は式(14)にしたがって表現される。
【0051】
dq(t)/dt=(1/2)Σi=1~n(Piq0R+Rq0Qi)
Qi≡q1(t)q2(t)…qi(t)ωi{dB~i,k (t)/dt}qi+1(t)…qn-1(t)qn(t) ..(14)。
【0052】
第1種のクォータニオンにより、肘関節機構B23のひねり(twist)または屈曲状態の時系列的な変化態様は式(16)により表現される。
【0053】
q(t+Δt)=q(t)exq(ω(t)Δt)
ω(t)≡limΔt→0log(q-1(t)q(t+Δt))/Δt
=limΔt→0log(q-1(t){q(t)+(dq(t)/dt)Δt})/Δt
=limΔt→0log(1+q-1(t)(dq(t)/dt)Δt})/Δt
=q-1(t)(dq(t)/dt)
=(1/2)Σi=1~n(R-1q0-1RQi+q0R+R-1Qi) ..(16)。
【0054】
(第2種のクォータニオンの補間処理)
回転自由度「3」を有する肩関節機構B21の屈曲状態を表わす第2種のクォータニオン(実数成分が0に拘束されない単位クォータニオン)のB−スプライン曲線q(t)は与えられた制御点群{qi}に基づき、式(22)にしたがって計算される。
【0055】
q(t)=Πi=0~nqi(t),
q0(t)≡exq{ω0B~0,k(t)}, ω0≡log(q0),
qi(t)≡exq{ωiB~i,k(t)}, ωi≡log((qi-1)-1qi) (i=1,2,..,n) ..(22)。
【0056】
第2種のクォータニオンのB−スプライン曲線の微分は式(24)にしたがって表現される。
【0057】
dq(t)/dt=Σi=1~nq0(t)q1(t)…qi-1(t)qi(t){dB~i,k (t)/dt}qi+1(t)qi+2(t)…qn(t) ..(24)。
【0058】
第1種のクォータニオンにより、肘関節機構B23のひねり(twist)または屈曲状態の時系列的な変化態様は式(26)により表現される。
【0059】
q(t+Δt)=q(t)exq(ω(t)Δt)
ω(t)≡limΔt→0log(q-1(t)q(t+Δt))/Δt
=limΔt→0log(q-1(t){q(t)+{dq(t)/dt}Δt})/Δt
=limΔt→0log(1+q-1(t){dq(t)/dt}Δt})/Δt
=q-1(t){dq(t)/dt}
={Πi=1~nqi(t)}-1q0B~0,k(t)log(q0){dB~0,k(t)/dt}{Πi=1~nqi(t)}
+Σi=1~nqn-1(t)qn-1-1(t)…qi+1-1(t){dB~i,k (t)/dt}qi+1(t)…qn-1(t)qn(t) ..(26)。
【0060】
前記補間処理により、たとえば、図4(a)に示されているように、選択ツリー(始点側ツリー)に応じて定められる前回軌道(細線参照)に続く延長軌道(太線参照)が定義される。
【0061】
さらに、延長軌道が、テーブルおよびテーブルに載せられている他のコップなどの障害物を表わすクォータニオン空間における障害物領域から外れており、かつ、ロボットRにその関節角度の許容範囲を超えた行動を強いる軌道ではないことという指定条件を満たすか否かがが判定される(図3/STEP14)。当該障害物領域は、外部状態センサS2の出力信号に基づき、その位置、姿勢および形状が認識されうる。
【0062】
延長軌道が指定条件を満たしている判定された場合(図3/STEP14‥YES)、すなわち、延長処理が成功した場合、今回制御点qnewまたは当該制御点qnewまでの延長軌道が選択ツリーに追加される(図3/STEP15)。さらに、前回軌道および延長軌道が今回軌道として定義され、当該今回軌道は次回の延長処理に際して、前回軌道として取り扱われる。延長処理に続いて「接続処理」が実行される。
【0063】
「接続処理」に際して、まず、選択ツリーが変更される(図3/STEP16)。これにより、始点側ツリーがそれまでの選択ツリーであった場合、終点側ツリーが新たな選択ツリーとして以降の処理が実行される。同様に、終点側ツリーがそれまでの選択ツリーであった場合、始点側ツリーが新たな選択ツリーとして、選択ツリーの中から、先に生成された今回制御点qnew(図3/STEP10参照)に最も近い点qnearが選択される(図3/STEP18)。
【0064】
そして、始点側ツリーと終点側ツリーのそれぞれの根元から最近点qnearに至る点列であって、これまでの始点側位置軌道および終点側位置軌道の基礎となっている点列に対して、今回制御点qnewが途中に追加された新たな点列を基礎としてB−スプライン曲線による補間処理が実行される。始点および終点を接続する当該B−スプライン曲線のうち、今回制御点qnewの旧点列への追加によって生成された部分が「接続軌道」として生成される(図3/STEP20)。
【0065】
接続軌道は、今回制御点qnewのノード番号を「i」と定めた場合、曲線上のパラメータtの区間が[ti+1,ti+N+1]と設定されることにより求められる。これにより、図4(b)に示されているように、始点から伸びる始点側軌道(一点鎖線参照)および終点から伸びる終点側軌道(二点鎖線参照)を接続する接続軌道(太線参照)が生成される。
【0066】
さらに、接続軌道が指定条件を満たすか否かが判定される(図3/STEP22)。
【0067】
接続軌道が指定条件を満たしていると判定された場合(図3/STEP22‥YES)、すなわち、接続処理が成功した場合、接続軌道ならびに当該接続軌道により接続された始点側軌道および終点側軌道が、始点から終点まで至るクォータニオンの目標軌道として生成される(図3/STEP24)。
【0068】
これにより、図5(a)に示されているように肘関節機構B23の屈曲状態を表わす第1種のクォータニオンの目標軌道が生成される。同様に、図5(b)に示されているように肩関節機構B21の屈曲状態を表わす第2種のクォータニオンの目標軌道が生成される。
【0069】
そして、図8に示されているように、目標軌道にしたがってハンドHが矢印付き曲線で表わされているように実空間において変位するようにロボットRの動作が制御される。これにより、動作中に他の物体との接触を回避し、かつ、各関節角度が許容範囲から外れることを防止しながら、ハンドHで把持しているコップをテーブルに置くというタスクをロボットRに円滑に実行させることができる。
【0070】
その一方、接続軌道が指定条件を満たしていないと判定された場合(図3/STEP22‥NO)、すなわち、接続処理が失敗した場合、延長処理が再び実行される(図3/STEP08〜STEP014参照)。
【0071】
また、延長軌道が指定条件を満たしていないと判定された場合(図3/STEP14‥NO)、すなわち、延長処理が失敗した場合、今回制御点qnewまたは当該制御点qnewまでの延長軌道は選択ツリーに追加されずに棄却される(図3/STEP25)。その上で、指数iが上限値K以下であるか否かが判定される(図3/STEP26)。
【0072】
指数iが上限値K以下であると判定された場合(図3/STEP26‥YES)、選択ツリーが変更される(図3/STEP28)。この際、指数iが1だけ増加する。その上で、任意の点qの生成(図3/STEP06参照)以降の処理が当該変更後の選択ツリーを対象として実行される。
【0073】
指数iが上限値Kを超えていると判定された場合(図3/STEP26‥NO)、軌道探索が失敗したと認識される(図3/STEP30)。これに応じて、制御システム1は、ロボットRの当該軌道にしたがった動作を停止させて物体の移動(外部状態センサS2を通じて認識される)などの状況変化を待つ、あるいは、脚体B4を動かしてロボットRをその場から移動させたり、その場で基体B0をひねったりすることによりタスク実行開始条件をロボットRの動作によって変化させる。その上で、制御システム1は前記のような軌道探索を再実行する。
【0074】
(本発明の制御システムの作用効果)
前記機能を発揮する制御システム1によれば、空間補間用の基底関数を結合係数とする、モデル空間に配置された点列の線形結合により表現される線分を生成する補間処理が実行される(式(12)(22)、図4(a)(b)参照)。その結果、各関節機構の屈曲状態(各軸回りの回転角度により表現される。)を表わすクォータニオンの目標軌道またはその候補が生成される(図5(a)(b)参照)。クォータニオンにより表現されるモデル空間には特異点が無いため軌道の探索時間の短縮が図られる。また、クォータニオンにより記述されるモデル空間の補間は球面線形補間となるため、冗長性が排除された効率的な軌道が計算されうる。よって、制御対象であるロボットRの効率的な動作を表現する軌道の確実な探索と、当該軌道の探索時間の短縮が図られる。
【0075】
図6(a)には、ロボットRの各関節機構の屈曲状態の変化態様が、クォータニオン、オイラー角および関節角度のそれぞれの軌道によって表現され、当該軌道にしたがって肩関節機構B21および肘関節機構B23のそれぞれの動作が制御された際のハンドHの3次元位置軌道が実線、一点鎖線および二点鎖線のそれぞれにより示されている。図6(b)には、図6(a)に示されているハンドHの3次元位置軌道が、3つの2次元平面に投影された結果としてのハンドHの2次元位置軌道が示されている。
【0076】
図7(a)には、ロボットRの各関節機構の屈曲状態の変化態様が、クォータニオンの軌道によって表現され、当該軌道にしたがって肩関節機構B21および肘関節機構B23のそれぞれの動作が制御された際のハンドHの腕体B2の動作態様および3次元位置軌道(実線)が示されている。図7(b)には、ロボットRの各関節機構の屈曲状態の変化態様が、関節角度の軌道によって表現され、当該軌道にしたがって肩関節機構B21および肘関節機構B23のそれぞれの動作が制御された際のハンドHの腕体B2の動作態様および3次元位置軌道(一点鎖線)が示されている。
【0077】
図6および図7から明らかなように、関節機構の屈曲常態の変化態様がクォータニオンの軌道によって表現された場合のハンドHの位置軌道(図6(a)(b)実線、図7(a)実線参照)は、関節機構の屈曲常態の変化態様がオイラー角または関節角度の軌道によって表現された場合のハンドHの位置軌道(図6(a)(b)一点鎖線または二点鎖線、図7(b)一点鎖線参照)と比較して著しく短い。すなわち、本発明の手法によれば、制御対象に関節機構を効率的に動かしてタスクを実行させることができることがわかる。
【0078】
(本発明の他の実施形態)
第1判定処理および第2判定処理が省略され、接続処理が終了した段階で生成された軌道が指定条件を満たすか否かが判定され、当該判定結果が肯定的であったことを要件としてこの軌道がクォータニオンの目標軌道として設定されてもよい。
【0079】
屈曲状態が第1種のクォータニオンによって表現される肘関節機構B23等の関節機構は、ロールおよびピッチ軸のそれぞれ回りの回動軸を有するように構成されていたが、2つの直交軸回りの回転角度により屈曲状態が表現される構成であれば、さまざまな構造が採用されてもよい。同様に、屈曲状態が第2種のクォータニオンによって表現される肩関節機構B21等の関節機構は、ロール、ピッチおよびヨー軸のそれぞれ回りの回動軸を有するように構成されていたが、3つの直交軸回りの回転角度により屈曲状態が表現される構成であれば、さまざまな構造が採用されてもよい。
【0080】
B−スプライン曲線(式(12)参照)のほか、式(32)により定義されるHermite曲線または式(42)により定義されるBezier曲線が空間補間曲線として用いられることによって、延長処理および接続処理のそれぞれが実行されてもよい。
【0081】
P(t)=(2t3−3t2+1)Pstart+(t3−2t2+t)G1start+(−2t3+3t2)Pend+(t3−t2)G1end..(32)
【0082】
ここで、PstartおよびPendは曲線の端点の位置ベクトルを表わしている。また、G1startおよびG1endは当該端点における曲線の接線ベクトル(1階微分)を表わしている。延長処理および接続処理に際して、制御点列Pi(i=1,2, ..m)の各区間をHermite曲線で補間することによってHermite曲線がRRT-Connectに適用される。この際、G1start、G1endは隣り合う区間で1階微分の連続性が保たれるように選択されなければならない。
【0083】
x(t)=Σi=0~mJn,i(t)Pi ..(42)。
【0084】
ここで、Bezier基底関数(またはBernstein基底関数)Jn,i(t)は式(44)により定義される。
【0085】
Jn,i(t)=n!/{i!(n−i)!}ti(1−t)n-i ..(44)。
【0086】
延長処理および接続処理において用いられる空間補間は、原則的に、空間補間用の基底関数を結合係合とする、モデル空間に配置された点列の線形結合により表現される線分を形成する空間補間であること(第1条件)、および、既存の制御点列に新しい制御点が付加されたとき、既存の制御点によって作られる部分曲線が変化しないこと(第2条件)という2つの条件を満たしている必要がある。
【0087】
ただし、Bezier曲線は第2条件を満たさないものの、Hermite曲線と同様、経路点列が複数の区間に分割されることにより、複数のBezier曲線が接続されることで、空間補間曲線として採用されうる。
【符号の説明】
【0088】
1‥制御システム、2‥アクチュエータ、11‥第1演算処理要素、12‥第2演算処理要素、R‥ロボット(制御対象)。

【特許請求の範囲】
【請求項1】
2または3つの直交軸のそれぞれ回りの回転角度によって屈曲状態が表現される関節機構を備えている制御対象の動作を制御するシステムであって、
前記関節機構における各軸回りの回転角度が、クォータニオンによって表現されるモデル空間において、相互に離れて配置されている点列に基づき、空間補間用の基底関数を結合係数とする、前記点列の線形結合として表現される線分を生成する補間処理を実行するとともに、前記補間処理により生成された一の線分の基礎である前記点列に点を加えて新たな点列を定義した上で、前記新たな点列を基礎として前記補間処理を実行することにより、当該一の線分が延長線分によって延長された新たな線分を生成する延長処理を実行するように構成されている第1演算処理要素と、
前記第1演算処理要素により延長処理が実行されることにより最近に延長された前記一の線分の基礎である前記新たな点列と、前記補間処理により生成された他の線分の基礎である他の点列とを基礎として前記補間処理を実行することにより、前記一の線分および前記他の線分が接続線分によって接続された形の線分を、前記関節機構における各軸回りの回転角度を表わすクォータニオンの目標軌道またはその候補として生成する接続処理を実行するように構成されている第2演算処理要素とを備え、
前記第1演算処理要素および前記第2演算処理要素のそれぞれが、前記関節機構の屈曲状態が2つの直交軸のそれぞれ回りの回転角度によって表現される場合、実数成分が0である第1種のクォータニオンを表わす点列に基づいて前記前記補間処理を実行する一方、前記関節機構の屈曲状態が3つの直交軸のそれぞれ回りの回転角度によって表現される場合、実数成分が0に拘束されない第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

【図7】
image rotate

【図8】
image rotate