説明

ロボット制御装置、ロボット制御方法及びロボット制御プログラム

【課題】複数の機能部品(構成ユニット)からなる実ロボットと仮想ロボットで共通のロボット部品の構成をとり、それを制御するプログラムを共通に使えるようにする。
【解決手段】仮想ロボットのエージェントモデル部110は、実ロボットにおけるエージェントモデル部とハードウエア構成及びソフトウエア構成を同じとする。バーチャルCPC(Configurable Physical Component)部120は、実ロボットにおけるCPC部の情報のみで構成され、バーチャルロボット機能部品を結合するソフトウエアからなるバーチャルCPCマネージャ120Bが存在する。ミュレーションにおいては仮想ロボットを構成する1つ以上のバーチャルロボット機能部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求める手段と、連結されたバーチャルロボット機能部品間の座標変換を行う手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、産業用や娯楽用の自律型ロボットあるいはコンピュータ上に存在する仮想ロボットなどの行動制御など用いられるロボットシミュレーション装置に関する。
【背景技術】
【0002】
従来、ロボットの多くは、複数の構成ユニットをそれぞれ予め定められた相関関係で予め定められた状態に結合されることにより所定の形に組み立てられ、各構成ユニットを駆動制御することにより、姿勢や動きを変化させるようになっている。
【0003】
例えば、特許文献1(特開平5−245784号公報)に開示されているロボットでは、複数の関節モジュールと、複数のアームモジュールとを組み合わせることにより所望形状に構築し得るようになっている。そして、このロボットは、各関節モジュールにそれぞれ固有番号を設定して、制御部が各関節モジュールとの通信により得られる固有番号に基づいて各関節モジュールの接続順序を認識し、その認識に基づいて制御プログラムを好適なものに書き換えることができるようになっている。
【0004】
また、コンピュータ上でコンピュータグラフィックス(CG:Computer Graphics)により仮想ロボットや仮想生物などを動かし、上記コンピュータに接続されたセンサなどにより入力情報に応じて仮想ロボットや仮想生物の行動を変化させるようにようにしたコンピュータゲームが知られている。
【0005】
さらに、実ロボットのシミュレーションを行う場合、実ロボットと同じ形状、質量を持つモデルをコンピュータ上に構築し、これに重力などの実世界での物理的に存在する力を作用させ、その動きを計算により求める方法は、多くのロボットの教科書に記述されている。
【0006】
【特許文献1】特開平5−245784号公報
【特許文献2】特開平5−298422号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、特許文献1に開示されているロボットは、マニピュレータを前提にしていることから、構成ユニットを2つ以上に分岐して接続するような構成に対応することができず、また、各種センサからの入力情報に基づく制御にも対応するものではなかった。そこで、本件出願人は、先に特願平9−19040号として、複数の構成ユニットからなるロボット装置において、構成ユニットの形状を決定するための形状情報を記憶する第1の記憶手段と、構成ユニットの運動を記述するのに必要な運動情報を記憶する第2の記憶手段と、構成ユニットに収納された電子部品の特性情報を記憶する第3の記憶手段と、各構成ユニットの結合状態を検出する検出手段とを設けるようにしたものを提案している。このロボット装置における制御手段は、検出手段による検出結果に基づいて全体の構造や、各構成ユニットの運動特性を自動的に認識することができる。また、上記ロボット装置では、制御手段が各構成ユニットを制御するために使用する制御プログラムによって、予め各電子部品の機能毎に共通に定められた所定のデータフォーマットで表される第1のデータを各電子部品が機能毎に用いるデータフォーマットで表される第2のデータに変換する変換プログラムを各構成ユニットの各記憶手段に記憶させるようにしている。この結果、制御プログラムによって予め決められたデータフォーマットに依存せずに、各構成ユニットを設計することが可能になる。
【0008】
このようにロボット部品に形状や機能情報を記憶させ、それらを結合の順序を知ることができる仕組みを持つ信号線結合方式(シリアルバス)で結合することによって、ロボットを制御するCPUがロボットの形状とセンサやアクチュエータの種類とそれらが取り付けられている場所を知ることができる。
【0009】
特願平9−19040号の開示技術によれば、バーチャルロボットと名付けたロボット部品の持っている情報とその結合順序を管理しているソフトウエアオブジェクトを上記シリアルバスとロボット部品の持つ情報から自動的に構築して、実ロボットを駆動制御することができる。
【0010】
本発明は、実ロボットと仮想ロボットで共通のロボット部品の構成をとり、それを制御するプログラムを共通に使えるようにすることを目的とする。
【課題を解決するための手段】
【0011】
本発明は、実ロボット部品に記憶してある情報あるいはプログラムと同じ構成のソフトウエアにプログラム上で結合指示を与えることで上記バーチャルロボットを構築し、これを制御していたプログラムをこのバーチャルロボットに作用させることにより仮想ロボットを制御することを特徴とする。
【0012】
本発明に係るロボットシミュレーション装置は、仮想ロボットを構成する1つ以上の仮想構成部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求める手段と、連結された仮想構成部品間の座標変換を行う手段とを備えることを特徴とする。
【0013】
本発明に係るロボットシミュレーション装置では、例えば、各仮想構成部品に附属して、その座標系において、重心,質量,回転軸,重心における慣性行列を求めるための情報及び連結された仮想構成部品間の座標変換を行うための情報を記憶している。
【0014】
また、本発明に係るロボットシミュレーション装置は、実ロボットを構成する1つ以上の構成部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求める手段と、連結された構成部品間の座標変換を行う手段とを備えることを特徴とする。
【0015】
本発明に係るロボットシミュレーション装置は、例えば、実ロボットを構成する各構成部品に記憶されている情報を用いて、慣性行列を求めるとともに構成部品間の座標変換を行い、ロボットの動きをシミュレーションする。
【発明の効果】
【0016】
本発明によれば、実ロボットと仮想ロボットで共通のロボット部品の構成をとり、それを制御するプログラムを共通に使えるようにすることができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
先ず、実ロボットの概略構成を図1に示す。この図1に示す実ロボットは、エージェントモデル部10とCPC(Configurable Physical Component )部20から構成される。エージェントモデル部10は、CPU11とRAM12,ROM13,シリアルバスのホストコントローラ14及び一般的なCPU周辺装置15からなり、上記シリアルバスのホストコントローラ14を介してマスタ入出力が行われるようになっている。
【0019】
また、CPC部20は、物理的な構成要素であるCPC部品21A,21B,21C,21D,21E・・・がツリー構造で結合あるいは分岐させながらロボット部品として結合されている。ロボット部品すなわちCPC部品は、結合されたシリアルバスの信号線を分岐させるHUB22、信号処理部23及びメモリ24からなる。そして、シリアルバスの信号を処理する信号処理部23には、シリアルバスのデバイス側のコントローラがあり、クロック同期、エラー検出、データパケット再送要求、アドレス管理等を行っている。また、メモリ24には、ロボット部品としての形状データ、運動方程式を立てるのに必要な物理的なデータ、この部品が持っている機能情報あるいはエージェントモデル部に転送してこの部品を制御するためのプログラム等が記憶されており、エージェントモデル部10からの要求に対して、これらのデータやプログラムがシリアルバスから転送され、あるいは制御命令が入力される。
【0020】
次に、上記実ロボットのソフトウエア構成を機能構成部に分割して図2に示す。すなわち、上記実ロボットのエージェントモデル部10は、シリアルバスを制御するシリアルバスホストコントローラ(ハードウエア及びソフトウエア)10A、CPC部の各CPC部品の情報と結合を管理するバーチャルロボット(ソフトウエア)10B、ユーザにより与えられるRobot Part Semanticsのデータに従って各CPC部品のロボットにおける意味を定義するブループリントロボット(ソフトウエア)10C、さらに、ブループリントロボット10Cを自律型ロボットとして機能させるために行動モデルや行動パラメータに応じてセンサ処理や行動制御等を行うエージェントコントローラ(ソフトウエア)10Dから構成される。
【0021】
また、CPC部20は、機能的にはシリアルバスデバイスコントローラ20Aとロボット機能部20Bとから構成される。シリアルバスデバイスコントローラ20Aは、シリアルバスから入出力される信号を処理するもので、機能的にはエージェントモデル部10のシリアルバスホストコントローラ10Aとプロトコルをもちデータの授受を行う。ロボット機能部20Bは、シリアルバスデバイスコントローラ20Aからのデータあるいはエージェントモデル部10側からの命令に従って動作を行うもので、機能的にはエージェントモデル部10のバーチャルロボット10Bとプロトコルをもちデータの授受を行う。
【0022】
このような構成の実ロボットにおいて、エージェントモデル部10側では、シリアルバスホストコントローラ10Aのハードウエア及びそれを制御するソフトウエアにより、シリアルデータの入出力の処理が行われる。すなわち、データ出力時には、シリアルバスホストコントローラ10Aは、データに同期用のシンクパターン、ヘッダ情報、データ、誤り検出、訂正符号を付加し、さらにNRZなどの変調をかけて送出する。そして、データ送出後には、送り先からのアクノリッジ信号などを受信して、そのデータが獲得されたことを確認してから次のデータ処理に入る。また、データ入力時には、シリアルバスホストコントローラ10Aは、送られてきた信号のクロック同期、シンクパターン検出、ヘッダ情報処理、データ獲得、誤り検出、訂正等を行い、アクノリッジ信号を送出する。もし、データに誤りなどがあった場合には、再送要求の信号を出力する。このようにして、シリアルバスホストコントローラ10Aは、シリアルバスを介してデータの入出力を行う。
【0023】
また、CPC部20の各CPC部品21A,21B・・・の結合順序は、各CPC部品21A,21B・・・がツリー構造をもって結合されていることを利用して知ることができる。すなわち、シリアルバスホストコントローラ10Aが各CPC部品に情報を渡すためのアドレスを分岐順序と対応付けることにより、シリアルバスホストコントローラ10Aは各CPC部品21A,21B・・の結合順序を知ることができる。一方、CPC部品の次の部品への分岐結合部はCPC部品内の情報として記憶されており、その情報を用いて、CPC部品の形状及び次に結合される位置、さらに、そこに結合された部品の形状などをシリアルバスホストコントローラ10Aは知ることができる。そこで、シリアルバスホストコントローラ10Aがそれらのデータをバーチャルロボット10Bに渡すことにより、バーチャルロボット10Bは、自分がどのような形状をしているロボットで、どのような機能を持っていて、それらがどこに存在しているかを認識するための情報を自動的に獲得することができる。
【0024】
すなわち、実ロボットの動きは、実ロボットを構成する1つ以上の構成部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求め、連結された構成部品間の座標変換を行うことにより、シミュレーションすることができる。
【0025】
したがって、このように図1及び図2に示した構成の実ロボットでは、その物理的な構成要素であるCPC部品21A,21B・・・がツリー構造で結合あるいは分岐させながらロボット部品として結合されているCPC部20を備え、このCPC部20の各CPC部品21A,21B・・・の情報と結合順序をシリアルバスを介して獲得するようにしたエージェントモデル部10により各CPC部品21A,21B・・・を駆動制御することができる。
【0026】
次に、本発明を適用した仮想ロボットについて説明する。
【0027】
本発明を適用した仮想ロボットでは、実ロボットにおける物理的な構成要素に代えて仮想的な構成要素であるバーチャルロボット部品を結合するようにしたバーチャルCPC部を備え、エージェントモデル部によりバーチャルCPC部により各バーチャルロボット部品の駆動制御を行う。すなわち、実ロボット部品をその内部の情報だけを保持するソフトウエアあるいはバーチャルロボット部品として扱い、実ロボットを制御していたプログラムにより仮想ロボットを制御する。
【0028】
ここで、バーチャルロボット部品とは、例えば、ワークステーションなどによるコンピュータグラフィックス(CG:Computer Graphics)を用いて表示されるソフトウエアあるいはデータのことである。
【0029】
図3に示す仮想ロボットは、上述の図1及び図2に示した実ロボットにおけるエージェントモデル部10は変更することなく、CPC部20をバーチャルCPC部120に置き換えた構成となっている。
【0030】
すなわち、この仮想ロボットのエージェントモデル部110は、シリアルバスコントローラ(ハードウエアとソフトウエア)110A、バーチャルロボット(ソフトウエア)110B、ブループリントロボット(ソフトウエア)110C及びエージェントコントローラ(ソフトウエア)110Dからなり、上述の実ロボットにおけるエージェントモデル部10とハードウエア構成及びソフトウエア構成が同じでものである。
【0031】
そして、バーチャルCPC部120は、上述の実ロボットにおけるCPC部の情報のみで構成されるもので、物理的なCPC部品ではなく、コンピュータ上に存在するデータあるいはプログラムからなるバーチャルロボット機能部品を結合するソフトウエアからなるバーチャルCPCマネージャ120Bが存在する。
【0032】
また、このバーチャルCPC部120では、上記エージェントモデル部110が上述の実ロボットにおけるシリアルバスと物理的にも同じシリアルバスでバーチャルCPCマネージャ120Bと通信し、バーチャルCPCマネージャ120Bがシリアルバスのプロトコルを解釈して反応するようなバーチャルシリアルバスデバイコントローラ120Aが通信を担当している。
【0033】
さらに、このバーチャルCPC部120側には、ユーザにロボットの動きを見せるためのビューワ120C(ソフトウエア)がさらに存在している。また、上述の実ロボットではロボットあるいはCPC部品が現実の物理世界で重力などの力を受けていたが、仮想ロボットでは、ソフトウエアにより重力などの処理を行う。すなわち、バーチャルロボット部品が存在するバーチャルワールドをバーチャルワールドマネージャ120Dがエミュレートし、そのバーチャルワールドをビューワ120Cによりディプレイ上に描画する。
【0034】
バーチャルワールドをディプレイ上に描画するには、一般的なCGの手法を利用することができる。例えば、光源の方向を仮定して表面の反射モデルを定義した物体の反射光について観測点での受光レベルをディプレイ上に表示すればよい。あるいは、さらに簡便な描画方法としては、3次元物体の視点方向に垂直な平面を仮定して、その2次元投影を描画するようにしても良い。
【0035】
このように、実ロボット部品に記憶してある情報あるいはプログラムと同じ構成のソフトウエアにプログラム上で結合指示を与えることで上記バーチャルロボットを構築し、これを制御していたプログラムをこのバーチャルロボットに作用させることにより仮想ロボットを制御することができる。
【0036】
また、仮想ロボットの動きは、仮想ロボットを構成する1つ以上の仮想構成部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求め、連結された仮想構成部品間の座標変換を行うことにより、シミュレーションすることができる。
【0037】
さらに、各仮想構成部品に附属して、その座標系において、重心,質量,回転軸,重心における慣性行列を求めるための情報及び連結された仮想構成部品間の座標変換を行うための情報を記憶していることにより、自由に外したり追加して、シミュレーションを行うことができる。
【0038】
したがって、実ロボット部品に記憶してある情報あるいはプログラムと同じ構成のソフトウエアにプログラム上で結合指示を与えることで上記バーチャルロボットを構築し、これを制御していたプログラムをこのバーチャルロボットに作用させることにより仮想ロボットを制御し、さらに、バーチャルワールドマネージャがバーチャルロボット部品あるいは仮想ロボットをシミュレートして得られる仮想ロボットの制御プログラムによる実ロボットを制御するようこともできる。
【0039】
なお、バーチャルワールドマネージャがバーチャルロボット部品あるいは仮想ロボットをシミュレートする方法は、一般的なロボットの制御理論の教科書に順動力学問題として記述されているように、各部品の運動方程式を逐次的に解いていく方法等がある。
【0040】
ロボットの制御理論の教科書では、ロボットの逆運動力学と順運動力学の問題としてロボット制御の理論が説明されている。
【0041】
逆運動力学は、ロボットの
角度θ(t)[p×1]
角度θ'(t)[p×1]
角度θ"(t)[p×1]
が与えられたとき、それらをリンクロボットの一般的な運動方程式
J(θ)θ"+C(θ',θ)+Dθ'+P(θ)+E(θ',θ)=τ
の左辺に直接代入することにより、右辺のトルクを求める問題である。ここで、
J(θ)θ"は p×1 の慣性項、
C(θ',θ)は p×1 の遠心力、コリオリの力に関する項、
Dθ'は p×1 の粘性摩擦係数、
P(θ)は p×1 の重力の項、
E(θ',θ)は p×1 の非線形摩擦の項、
τ(t)は p×1 の入力トルク
である。
【0042】
このような逆運動力学問題を解くことにより、例えば、目標となる角度、角速度及び角加速度が与えられたときに、そのような運動を行うのに必要なトルクを求めることができる。
【0043】
逆運動力学問題における運動方程式を導出する方法としては、ロボットの持っている各種エネルギー関数に注目し、それらをラグランジュの方程式に代入する方法やロボットの各リンクに対する力とモーメントの釣合い、作用、反作用に注目し、入トンの運動方程式とオイラーの運動方程式を用いることによりロボット全体の運動方程式を求めていく方法等が知られている。
【0044】
また、順動力学問題とは、ロボットの初期状態[θ(0),θ(0),θ(0)] と入力トルクτ(t)が与えられた時にロボットがどのような運動を行うかを運動方程式
J(θ)θ"+C(θ',θ)+Dθ'+P(θ)+E(θ',θ)=τ
をもとに求める問題である。すなわち、順動力学問題は、微分方程式を解く問題であって、上式を
θ"=J(θ)−1[−C(θ',θ)−Dθ'−P(θ)−E(θ',θ)+τ]
と変形した後、適当な初期条件
θ(0)=θ
θ'(0)=θ'
のもとで、オイラー法やルンゲタック法などによる数値積分を行うことにより解くことができる。
【0045】
例えば図4のフローチャートに示す手順により順動力学問題を解くことができる。
【0046】
ステップS1では、t=1,i=1に初期設定を行う。
【0047】
ステップS2では、
h(t)=INV[θ(t),0,e,0]
の演算を行う。
【0048】
次のステップS3では、i=pであるか否かを判定する。そして、i=pでなければステップS4でi=i+1としてステップS2に戻り、次のh(t)を演算する処理をi=pになるまで繰り返し行うことにより、H(t) の第i列を計算する。i=pならばステップS5に進む。
【0049】
ステップS5では、
b(t)=INV[θ(t),θ(t)',0,g]
によってb(t)を計算する。
【0050】
次のステップS6では、
θ"(t)=H(t)−1[τ(t)−b(t)]
によってθ"(t)を計算する。
【0051】
次のステップS7では、
θ'(t+Δt)=θ'(t)+θ"(t)Δtθ(t+Δt)=θ(t)+θ'(t)Δt+θ"(t)Δt/2
を計算する。
【0052】
次のステップS8では、
t=t+Δt
とする。
【0053】
次のステップS9では、t>tendであるか否かを判定する。そして、t>tendでなければ、ステップS2に戻り、ステップS2からステップS8の処理を繰り返し行う。t>tendであれば処理を終了する。
【図面の簡単な説明】
【0054】
【図1】本発明を適用した実ロボットの概略構成を示すブロック図である。
【図2】上記実ロボットのソフトウエア構成を機能構成部に分割して示す図である。
【図3】本発明を適用した仮想ロボットのソフトウエア構成を機能構成部に分割して示す図である。
【図4】順動力学問題の一般的な解法を示すフローチャートである。
【符号の説明】
【0055】
10,110 エージェントモデル部、10A,110A シリアルバスコントローラ、10B,110B バーチャルロボット、10C,110C ブループリントロボット、10D,110D エージェントコントローラ、11 CPU、12 RAM13 ROM、14 ホストコントローラ14、20 CPC部、20A シリアルバスデバイスコントローラ、20B ロボット機能部 21A,21B,21C,21D,21E・・・ CPC部品、22 HUB、23 信号処理部、24 メモリ、120A バーチャルシリアルバスデバイスコントローラ、120B バーチャルCPCマネージャ、120C ビューワ、120D バーチャルワールドマネージャ

【特許請求の範囲】
【請求項1】
仮想ロボットを構成する1つ以上の仮想構成部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求める手段と、連結された仮想構成部品間の座標変換を行う手段とを備えるロボットシミュレーション装置。
【請求項2】
各仮想構成部品に附属して、その座標系において、重心,質量,回転軸,重心における慣性行列を求めるための情報及び連結された仮想構成部品間の座標変換を行うための情報を記憶している請求項1記載のロボットシミュレーション装置。
【請求項3】
実ロボットを構成する1つ以上の構成部品にそれぞれ設定された座標系において、重心,質量,回転軸,重心における慣性行列を求める手段と、連結された構成部品間の座標変換を行う手段とを備えるロボットシミュレーション装置。
【請求項4】
各構成部品に記憶されている情報を用いて、慣性行列を求めるとともに構成部品間の座標変換を行い、ロボットの動きをシミュレーションする請求項3記載のロボットシミュレーション装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−207331(P2008−207331A)
【公開日】平成20年9月11日(2008.9.11)
【国際特許分類】
【出願番号】特願2008−76568(P2008−76568)
【出願日】平成20年3月24日(2008.3.24)
【分割の表示】特願平9−226894の分割
【原出願日】平成9年8月22日(1997.8.22)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】