(57)【要約】【課題】逆運動学処理に基づいて多様なロボットアームを制御することができる制御装置を提供すること。【解決手段】制御装置は、ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、前記ロボットアームを制御する。【選択図】図６
2017047478.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、前記ロボットアームを制御する、
制御装置。
【請求項２】
前記逆運動学処理の結果を補正する補正処理を行い、前記補正処理を行った前記結果に基づいて前記ロボットアームを制御する、
請求項１に記載の制御装置。
【請求項３】
前記仮想的なロボットアームは、前記ロボットアームの一部が仮想的な構造に置き換えられたロボットアームである、
請求項１又は２に記載の制御装置。
【請求項４】
前記ロボットアームの一部は、関節及び関節同士を結ぶリンクを含む、
請求項１から３のうちいずれか一項に記載の制御装置。
【請求項５】
前記ロボットアームの一部は、３つの並んだ関節の回動軸が１点で交わらないオフセット部の一部を含む、
請求項１から４のうちいずれか一項に記載の制御装置。
【請求項６】
前記３つの並んだ関節は、回転関節、回転関節、旋回関節の順に並んでいる、
請求項５に記載の制御装置。
【請求項７】
前記仮想的なロボットアームは、前記３つの並んだ関節のうちの一方の端の関節に接続されたリンクに対して当該関節と反対側に接続された関節と、他方の端の関節に接続されたリンクとを結ぶ仮想的なリンクを設けて、前記３つの並んだ関節のうちの前記一方の端側の２つの関節を除外関節として除いて構成されている、
請求項５又は６に記載の制御装置。
【請求項８】
前記逆運動学処理の結果により得られた前記仮想的なリンクの両端の位置と、除かれた前記除外関節及び前記除外関節に接続されるリンクとが整合するように、前記逆運動学処理の結果として得られる１以上の前記関節の回転角を補正する、
請求項７に記載の制御装置。
【請求項９】
前記ロボットアームは、７軸以上である、
請求項１から８のうちいずれか一項に記載の制御装置。
【請求項１０】
請求項１から９のうちいずれか一項に記載の制御装置を備える、
ロボット。
【請求項１１】
請求項１から９のうちいずれか一項に記載の制御装置と、
請求項１０に記載のロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、ロボット及びロボットシステムに関する。
【背景技術】
【０００２】
６軸の自由度を有するロボットアーム（ロボットが備えるアーム）である６軸ロボットアームの姿勢は、ロボットのＴＣＰ（Tool  Center  Point）の位置及び姿勢を指定すると一意に決まる。これに対し、７軸の自由度を有するロボットアームである７軸ロボットアームの姿勢は、ロボットのＴＣＰの位置及び姿勢を指定しても、冗長自由度を有しているため、一意に決まることはない。すなわち、７軸ロボットアームは、６軸ロボットアームと比べて多様な姿勢をとることができる。
【０００３】
近年では、計算機技術の進歩により、７軸ロボットアームを動作させるために必要な順運動学又は逆運動学の計算を行うことが可能な計算能力を有する計算機を安価に利用できる。このような事情から、７軸ロボットアームを制御する技術の研究や開発が行われている。
【０００４】
また、ロボットのＴＣＰの位置及び姿勢が指定された場合において当該位置及び姿勢を実現するロボットアームの姿勢は、逆運動学によって導出される。逆運動学は、指定されたロボットのＴＣＰの位置及び姿勢に基づいて、ロボットアームが備える関節毎のアクチュエーターが当該位置及び姿勢を実現する回転角を逆運動学の解として算出する。
【０００５】
これらに関し、６軸ロボットアームと７軸ロボットアームの差異である肩と肘の中間部に設けられた関節の角度をユーザーが指定した値で固定して、７軸ロボットアームを疑似的に６軸ロボットアームとすることにより、逆運動学の解を算出するロボットシステムが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１２５８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、このようなロボットシステムでは、逆運動学の解を算出することができる一方で、７軸ロボットアームが備える関節毎のアクチュエーターの回転角と、７軸ロボットアームの姿勢との関係が複雑になる。このため、当該ロボットシステムでは、肘の位置の自由な制御が困難になる場合があった。また、特許文献１には、７軸ロボットアームがオフセットを有していた場合に逆運動学の解を算出する方法が明示的に示されていなかった。
【課題を解決するための手段】
【０００８】
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、前記ロボットアームを制御する、制御装置である。
この構成により、制御装置は、ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置は、逆運動学処理に基づいて多様なロボットアームを制御することができる。
【０００９】
また、本発明の他の態様は、制御装置において、前記逆運動学処理の結果を補正する補正処理を行い、前記補正処理を行った前記結果に基づいて前記ロボットアームを制御する、
構成が用いられてもよい。
この構成により、制御装置は、仮想的なロボットアームについて行われた逆運動学処理の結果を補正する補正処理を行い、当該補正処理を行った結果に基づいてロボットアームを制御する。これにより、制御装置は、仮想的なロボットアームについて行われた逆運動学処理の結果を補正した結果に基づいて多様なロボットアームを制御することができる。
【００１０】
また、本発明の他の態様は、制御装置において、前記仮想的なロボットアームは、前記ロボットアームの一部が仮想的な構造に置き換えられたロボットアームである、構成が用いられてもよい。
この構成により、制御装置では、仮想的なロボットアームは、ロボットアームの一部が仮想的な構造に置き換えられたロボットアームである。これにより、制御装置は、ロボットアームの一部が仮想的な構造に置き換えられたロボットアームについて行われた逆運動学処理の結果に基づいて多様なロボットアームを制御することができる。
【００１１】
また、本発明の他の態様は、制御装置において、前記ロボットアームの一部は、関節及び関節同士を結ぶリンクを含む、構成が用いられてもよい。
この構成により、制御装置は、関節及び関節同士を結ぶリンクを含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置は、関節及び関節同士を結ぶリンクを含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００１２】
また、本発明の他の態様は、制御装置において、前記ロボットアームの一部は、３つの並んだ関節の回動軸が１点で交わらないオフセット部の一部を含む、構成が用いられてもよい。
この構成により、制御装置では、３つの並んだ関節の回動軸が１点で交わらないオフセット部の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置は、３つの並んだ関節の回動軸が１点で交わらないオフセット部の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００１３】
また、本発明の他の態様は、制御装置において、前記３つの並んだ関節は、回転関節、回転関節、旋回関節の順に並んでいる、構成が用いられてもよい。
この構成により、制御装置は、回転関節、回転関節、旋回関節の順に並んでいる３つの関節の回動軸が１点で交わらないオフセット部の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置は、回転関節、回転関節、旋回関節の順に並んでいる３つの並んだ関節の回動軸が１点で交わらないオフセット部の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００１４】
また、本発明の他の態様は、制御装置において、前記仮想的なロボットアームは、前記３つの並んだ関節のうちの一方の端の関節に接続されたリンクに対して当該関節と反対側に接続された関節と、他方の端の関節に接続されたリンクとを結ぶ仮想的なリンクを設けて、前記３つの並んだ関節のうちの前記一方の端側の２つの関節を除外関節として除いて構成されている、構成が用いられてもよい。
この構成により、制御装置は、３つの並んだ関節のうちの一方の端の関節に接続されたリンクに対して当該関節と反対側に接続された関節と、他方の端の関節に接続されたリンクとを結ぶ仮想的なリンクを設けて、当該３つの並んだ関節のうちの当該一方の端側の２つの関節を除外関節として除いて構成されている仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置は、３つの並んだ関節のうちの一方の端の関節に接続されたリンクに対して当該関節と反対側に接続された関節と、他方の端の関節に接続されたリンクとを結ぶ仮想的なリンクを設けて、当該３つの並んだ関節のうちの当該一方の端側の２つの関節を除外関節として除いて構成されている仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００１５】
また、本発明の他の態様は、制御装置において、前記逆運動学処理の結果により得られた前記仮想的なリンクの両端の位置と、除かれた前記除外関節及び前記除外関節に接続されるリンクとが整合するように、前記逆運動学処理の結果として得られる１以上の前記関節の回転角を補正する、構成が用いられてもよい。
この構成により、制御装置では、逆運動学処理の結果により得られた仮想的なリンクの両端の位置と、ロボットアームの一部としてロボットアームから除かれた除外関節及び除外関節に接続されるリンクとが整合するように、逆運動学処理の結果として得られる１以上の関節の回転角を補正する。これにより、制御装置は、逆運動学処理の結果により得られた仮想的なリンクの両端の位置と、ロボットアームの一部としてロボットアームから除かれた除外関節及び除外関節に接続されるリンクとが整合するように補正された回転角に基づいて、多様なロボットアームを制御することができる。
【００１６】
また、本発明の他の態様は、制御装置において、前記ロボットアームは、７軸以上である、構成が用いられてもよい。
この構成により、制御装置では、７軸以上のロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、当該７軸以上のロボットアームを制御する。これにより、制御装置は、逆運動学処理に基づいて７軸以上の多様なロボットアームを制御することができる。
【００１７】
また、本発明の他の態様は、上記のいずれかに記載の制御装置を備える、ロボットである。
この構成により、ロボットは、ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、ロボットは、逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００１８】
また、本発明の他の態様は、上記のいずれかに記載の制御装置と、上記に記載のロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムは、ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、ロボットシステムは、逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００１９】
以上により、制御装置、ロボット、及びロボットシステムは、ロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置、ロボット、及びロボットシステムは、逆運動学処理に基づいて多様なロボットアームを制御することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るロボット２０の一例を示す構成図である。
【図２】第１マニピュレーターＭ１の論理的な構造の一例を示す図である。
【図３】制御装置３０のハードウェア構成の一例を示す図である。
【図４】制御装置３０の機能構成の一例を示す図である。
【図５】制御部３６が行う逆運動学処理、及び第１アームを動作させる処理の流れの一例を示すフローチャートである。
【図６】逆運動学処理部４３が生成した仮想的な第１アームの一例を示す図である。
【図７】逆運動学処理部４３が現実世界の第１アームの屈曲部位Ｐが存在することが可能な位置を算出する方法の一例を説明するための図である。
【図８】図７に示した関節Ｊ２が回転した場合に、円錐Ｃが関節Ｊ２の回転によって円ＰＣ１に対して傾いた様子の一例を示す図である。
【図９】第１アームの論理的な構造の他の例を示す図である。
【発明を実施するための形態】
【００２１】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボット２０の一例を示す構成図である。
まず、ロボット２０の構成について説明する。
【００２２】
ロボット２０は、第１アームと第２アームを備える双腕ロボットである。双腕ロボットは、この一例における第１アームと第２アームのような２本のアーム（腕）を備えるロボットである。なお、ロボット２０は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットは、１本のアームを備えるロボットである。例えば、単腕ロボットは、第１アームと第２アームのいずれか一方を備える。なお、第１アームと第２アームとはそれぞれ、ロボットアームの一例である。
【００２３】
また、ロボット２０は、第１アーム及び第２アームを支持する支持台である本体Ｂと、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４と、制御装置３０を備える。なお、ロボット２０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４のうちの一部又は全部を備えない構成であってもよい。
【００２４】
第１アームは、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１と、第１撮像部２１を備える。
【００２５】
第１エンドエフェクターＥ１は、この一例において、物体を把持可能な爪部を備えるエンドエフェクターである。なお、第１エンドエフェクターＥ１は、これに代えて、電動ドライバーを備えたエンドエフェクター等の他のエンドエフェクターであってもよい。第１エンドエフェクターＥ１は、ケーブルによって制御装置３０と通信可能に接続されている。これにより、第１エンドエフェクターＥ１は、制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、第１エンドエフェクターＥ１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００２６】
第１マニピュレーターＭ１は、７つの関節である関節Ｊ１〜関節Ｊ７と、関節Ｊ１と本体Ｂを繋ぐリンク（リンケージ）であるリンクＬ０と、各関節の間を繋ぐ６本のリンクであるリンクＬ１〜リンクＬ６と、関節Ｊ７と第１エンドエフェクターＥ１を繋ぐリンクであるリンクＬ７と、第１撮像部２１を備える。また、関節Ｊ１〜関節Ｊ７はそれぞれ、図示しないアクチュエーターを備える。
【００２７】
すなわち、第１マニピュレーターＭ１を備える第１アームは、７軸垂直多関節型のアームである。第１アームは、本体Ｂと、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１が、第１マニピュレーターＭ１が備える７つの関節である関節Ｊ１〜関節Ｊ７それぞれのアクチュエーターによる連携した動作によって７軸の自由度の動作を行う。なお、第１アームは、８軸以上の自由度で動作する構成であってもよい。
【００２８】
第１アームが７軸の自由度で動作する場合、第１アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第１アームは、例えば、動作が滑らかになり、更に第１アームの周辺に存在する物体との干渉を容易に回避することができる。また、第１アームが７軸の自由度で動作する場合、第１アームの制御は、第１アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００２９】
第１マニピュレーターＭ１が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによって制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置３０から取得される制御信号に基づいて、第１マニピュレーターＭ１を動作させることができる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第１マニピュレーターＭ１が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３０】
ここで、図２を参照し、第１マニピュレーターＭ１の構造について説明する。図２は、第１マニピュレーターＭ１の論理的な構造の一例を示す図である。この一例における第１マニピュレーターＭ１は、図２に示したように、直線形状を有するリンクＬ０、リンクＬ３〜リンクＬ７を備えている。また、第１マニピュレーターＭ１は、図２において点線で囲まれた領域内に示したオフセット部Ｏ１を備える。オフセット部Ｏ１では、回転関節である関節Ｊ１、旋回関節である関節Ｊ２、回転関節である関節Ｊ３の順にこれら３つの関節が並んでいる。また、これらの関節と、各関節のアクチュエーターの回転軸である回動軸が１点で交わらないように曲げられたリンクＬ１及びリンクＬ２と、リンクＬ０及びリンクＬ３とは、リンクＬ０、関節Ｊ１、リンクＬ１、関節Ｊ２、リンクＬ２、関節Ｊ３、リンクＬ３の順に繋がれている。
【００３１】
この一例における回転関節は、関節に接続された２つのリンクにおいて関節の回動軸に所定角度で交わる部分を有するリンクが１つ以下である関節である。所定角度は、この一例において、９０°である。なお、所定角度は、これに代えて、他の角度であってもよい。例えば、関節Ｊ１では、関節の回動軸に直交する（この一例における所定角度である９０°で交わる）部分を有するリンクは、屈曲部位Ｎにおいて９０°に屈曲している形状を有するリンクＬ１のみである。このため、関節Ｊ１は、回転関節である。また、関節Ｊ３では、関節の回動軸に直交する部分を有するリンクは、屈曲部位Ｐにおいて９０°に屈曲している形状を有するリンクＬ２のみである。このため、関節Ｊ３は、回転関節である。また、関節Ｊ５と関節Ｊ７のそれぞれでは、関節の回動軸に直交する部分を有するリンクが存在しない。このため、関節Ｊ５及び関節Ｊ７は、回転関節である。
【００３２】
また、この一例における旋回関節は、関節に接続された２つのリンクのそれぞれが、関節の回動軸に所定角度で交わる部分を有するリンクである関節である。例えば、関節Ｊ２では、関節の回動軸に所定角度で交わる部分を有するリンクは、屈曲部位Ｎにおいて９０°に屈曲している形状を有するリンクＬ１と、屈曲部位Ｐにおいて９０°に屈曲している形状を有するリンクＬ２との２つである。このため、関節Ｊ２は、旋回関節である。また、関節Ｊ４と関節Ｊ６のそれぞれでは、関節に接続された２つのリンクのそれぞれは、関節の回動軸に直交している。このため、関節Ｊ４及び関節Ｊ６は、旋回関節である。
【００３３】
ここで、リンクＬ１は、前述したように、直線形状のリンクを、当該リンクの両端の間に存在する屈曲部位Ｎにおいて９０°に屈曲した形状をしている。また、リンクＬ２は、前述したように、直線形状のリンクを、当該リンクの両端の間に存在する屈曲部位Ｐにおいて９０°に屈曲した形状をしている。これらの屈曲部位のため、関節Ｊ１の回動軸と関節Ｊ２の回動軸とは１点で交わり、関節Ｊ２の回動軸と関節Ｊ３の回動軸とは１点で交わる。しかし、関節Ｊ１の回動軸と、関節Ｊ２の回動軸と、関節Ｊ３の回動軸とは１点で交わらない。なお、第１マニピュレーターＭ１は、オフセット部Ｏ１のようなオフセット部を複数備える構成であってもよい。
【００３４】
第１撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、第１撮像部２１は、第１マニピュレーターＭ１の一部に備えられる。そのため、第１撮像部２１は、第１アームの動きに応じて移動する。また、第１撮像部２１が撮像可能な範囲は、第１アームの動きに応じて変化する。第１撮像部２１は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。この一例では、第１撮像部２１が、撮像可能な範囲の静止画像を撮像する場合について説明する。
【００３５】
また、第１撮像部２１は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１撮像部２１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３６】
第２アームは、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２と、第２撮像部２２を備える。
【００３７】
第２エンドエフェクターＥ２は、この一例において、物体を把持可能な爪部を備えるエンドエフェクターである。なお、第２エンドエフェクターＥ２は、これに代えて、電動ドライバーを備えたエンドエフェクター等の他のエンドエフェクターであってもよい。第２エンドエフェクターＥ２は、ケーブルによって制御装置３０と通信可能に接続されている。これにより、第２エンドエフェクターＥ２は、制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２エンドエフェクターＥ２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３８】
第２マニピュレーターＭ２は、７つの関節である関節Ｊ１１〜関節Ｊ１７と、関節Ｊ１１と本体Ｂを繋ぐリンク（リンケージ）であるリンクＬ１０と、各関節の間を繋ぐ６本のリンクであるリンクＬ１１〜リンクＬ１６と、関節Ｊ１７と第２エンドエフェクターＥ２を繋ぐリンクであるリンクＬ１７と、第２撮像部２２を備える。また、関節Ｊ１１〜関節Ｊ１７はそれぞれ、図示しないアクチュエーターを備える。
【００３９】
すなわち、第２マニピュレーターＭ２を備える第２アームは、７軸垂直多関節型のアームである。第２アームは、本体Ｂと、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２が、第２マニピュレーターＭ２が備える７つの関節である関節Ｊ１１〜関節Ｊ１７それぞれのアクチュエーターによる連携した動作によって７軸の自由度の動作を行う。なお、第２アームは、８軸以上の自由度で動作する構成であってもよい。第２アームは、第１アームが７軸の自由度で動作することが望ましい理由と同様の理由により、７軸の自由度で動作することが望ましい。なお、第２アームは、８軸以上の自由度で動作する構成であってもよい。
【００４０】
第２マニピュレーターＭ２が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによって制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置３０から取得される制御信号に基づいて、第２マニピュレーターＭ２を動作させることができる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２マニピュレーターＭ２が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００４１】
第２マニピュレーターＭ２は、図２において説明した第１マニピュレーターＭ１の構造と同じ構造を有する。具体的には、第２マニピュレーターＭ２の構造は、図２に示した関節Ｊ１〜関節Ｊ７、リンクＬ０〜リンクＬ７を、関節Ｊ１１〜関節Ｊ１７、リンクＬ１０〜リンクＬ１７にそれぞれ置き換えた場合の構造と同じである。そのため、第２マニピュレーターＭ２の構造についての説明は、省略する。なお、以下では、第２マニピュレーターＭ２が備えるオフセット部を、第１マニピュレーターＭ１が備えるオフセット部Ｏ１と区別するため、オフセット部Ｏ１１と称して説明する。
【００４２】
第２撮像部２２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第２撮像部２２は、第２マニピュレーターＭ２の一部に備えられる。そのため、第２撮像部２２は、第２アームの動きに応じて移動する。また、第２撮像部２２が撮像可能な範囲は、第２アームの動きに応じて変化する。第２撮像部２２は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。この一例では、第２撮像部２２が、撮像可能な範囲の静止画像を撮像する場合について説明する。
【００４３】
また、第２撮像部２２は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２撮像部２２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００４４】
第３撮像部２３は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第３撮像部２３は、第４撮像部２４が撮像可能な範囲を第４撮像部２４とともにステレオ撮像可能な部位に備えられる。第３撮像部２３は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第３撮像部２３は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００４５】
第４撮像部２４は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第４撮像部２４は、第３撮像部２３が撮像可能な範囲を第３撮像部２３とともにステレオ撮像可能な部位に備えられる。第４撮像部２４は、ケーブルによって通信可能に制御装置３０と接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第４撮像部２４は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００４６】
上記で説明したロボット２０が備えるこれらの各機能部は、この一例において、ロボット２０に内蔵された制御装置３０から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット２０は、制御装置３０を内蔵する構成に代えて、外部に設置された制御装置３０により制御される構成であってもよい。この場合、ロボット２０と、制御装置３０とは、ロボットシステムを構成する。
【００４７】
制御装置３０は、ロボット２０に制御信号を送信することにより、ロボット２０を動作させる。また、制御装置３０は、ユーザーからの操作を受け付けるＧＵＩ（Graphical  User  Interface）を含むロボット制御画面を表示する。制御装置３０は、ロボット制御画面を介してユーザーから受け付けた操作に基づいて、ロボット２０の第１アームと第２アームのうちいずれか一方又は両方を動作させる。より具体的には、制御装置３０は、ロボット制御画面を介してユーザーから、第１アームのＴＣＰの位置及び姿勢を示す第１位置姿勢情報と、第２アームのＴＣＰの位置及び姿勢を示す第２位置姿勢情報とのうちいずれか一方又は両方を受け付ける。以下では、説明の便宜上、制御装置３０が第１アームのＴＣＰの第１位置姿勢情報を受け付ける場合について説明する。
【００４８】
制御装置３０がユーザーから第１位置姿勢情報を受け付けた場合、制御装置３０は、受け付けた第１位置姿勢情報と、逆運動学とに基づいて、第１マニピュレーターＭ１の各関節が備えるアクチュエーターの回転角を、逆運動学の解析解として算出する。当該回転角は、第１アームのＴＣＰの位置及び姿勢が、第１位置姿勢情報が示す位置及び姿勢と一致した状態における当該アクチュエーターの回転角である。以下では、制御装置３０が当該解析解を算出する方法について詳しく説明する。
【００４９】
ここで、当該方法の概略を説明する。制御装置３０は、第１アームの一部を除いた仮想的な第１アームについて行われた逆運動学処理の結果に基づいて、第１アームを制御する。これにより、制御装置３０は、逆運動学処理に基づいて多様な第１アームを制御することができる。第１アームについて行われる逆運動学処理は、ユーザーから受け付けた第１位置姿勢情報に基づいて、第１アームの各関節が備えるアクチュエーターの回転角を算出する処理のことである。
【００５０】
なお、ユーザーから第２位置姿勢情報を受け付けた場合、制御装置３０は、第２アームの一部を除いた仮想的な第２アームについて行われた逆運動学処理の結果に基づいて、第２アームを制御する。これにより、制御装置３０は、逆運動学処理に基づいて多様な第２アームを制御することができる。第２アームについて行われる逆運動学処理は、第２アームのＴＣＰの位置及び姿勢が、第２位置姿勢情報が示す位置及び姿勢と一致した状態における第２アームの各関節が備えるアクチュエーターの回転角を算出する処理のことである。
【００５１】
次に、図３を参照し、制御装置３０のハードウェア構成について説明する。図３は、制御装置３０のハードウェア構成の一例を示す図である。制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。また、制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００５２】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。記憶部３２は、制御装置３０が処理する各種情報や画像、プログラム等を格納する。なお、記憶部３２は、制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。
【００５３】
入力受付部３３は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部３３は、タッチパネルとして表示部３５と一体に構成されてもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００５４】
次に、図４を参照して、制御装置３０の機能構成について説明する。図４は、制御装置３０の機能構成の一例を示す図である。制御装置３０は、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５と、制御部３６を備える。
【００５５】
制御部３６は、制御装置３０の全体を制御する。制御部３６は、表示制御部４１と、逆運動学処理部４３と、ロボット制御部４５を備える。
【００５６】
制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することで実現される。なお、これらの機能部のうち一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５７】
表示制御部４１は、ユーザーからの操作を受け付けるロボット制御画面を生成する。表示制御部４１は、生成したロボット制御画面を表示部３５に表示させる。
逆運動学処理部４３は、ロボット制御画面を介してユーザーから受け付けた第１位置姿勢情報と、逆運動学とに基づいて、第１アームのＴＣＰの位置及び姿勢が第１位置姿勢情報の示す位置及び姿勢と一致した状態における第１マニピュレーターＭ１の各関節が備えるアクチュエーターの回転角を、逆運動学の解析解として算出する。また、逆運動学処理部４３は、ロボット制御画面を介してユーザーから受け付けた第２位置姿勢情報と、逆運動学とに基づいて、第２アームのＴＣＰの位置及び姿勢が第２位置姿勢情報の示す位置及び姿勢と一致した状態における第２マニピュレーターＭ２の各関節が備えるアクチュエーターの回転角を、逆運動学の解析解として算出する。
【００５８】
ロボット制御部４５は、逆運動学処理部４３が算出した第１マニピュレーターＭ１の各関節が備えるアクチュエーターの回転角に基づいて第１アームを動作させ、第１アームのＴＣＰの位置及び姿勢をユーザーから受け付けた第１位置姿勢情報が示す位置及び姿勢に一致させる。また、ロボット制御部４５は、逆運動学処理部４３が算出した第２マニピュレーターＭ２の各関節が備えるアクチュエーターの回転角に基づいて第２アームを動作させ、第２アームのＴＣＰの位置及び姿勢をユーザーから受け付けた第２位置姿勢情報が示す位置及び姿勢に一致させる。
【００５９】
次に、図５を参照し、制御部３６が行う逆運動学処理、及び第１アームを動作させる処理について説明する。図５は、制御部３６が行う逆運動学処理、及び第１アームを動作させる処理の流れの一例を示すフローチャートである。なお、図５では、制御部３６がすでに第１位置姿勢情報を、ロボット制御画面を介してユーザーから受け付けている場合について説明する。
【００６０】
逆運動学処理部４３は、記憶部３２に予め記憶された第１アームの構造に関する情報である第１アーム構造関連情報を読み出す。第１アーム構造関連情報には少なくとも、第１アームが備える各リンクの寸法や重さ、形状等を示す第１リンク情報と、第１アームが備える各関節の寸法や重さ、形状等を示す第１関節情報と、第１エンドエフェクターＥ１の寸法や重さ、形状等を示す第１エンドエフェクター情報とが含まれる。なお、記憶部３２には、第１アーム構造関連情報に加えて、第２アームの構造に関する情報である第２アーム構造関連情報が予め記憶されている。第２アーム構造関連情報には少なくとも、第２アームが備える各リンクの寸法や重さ、形状等を示す第２リンク情報と、第２アームが備える各関節の寸法や重さ、形状等を示す第２関節情報と、第２エンドエフェクターＥ２の寸法や重さ、形状等を示す第２エンドエフェクター情報とが含まれる。
【００６１】
第１アーム構造関連情報を読み出した後、逆運動学処理部４３は、制御装置３０の記憶領域（記憶部３２の記憶領域と図示しない他の記憶装置の記憶領域とのうちいずれか一方又は両方）上に仮想空間を生成する。そして、逆運動学処理部４３は、生成した仮想空間上に、記憶部３２から読み出した第１アーム構造関連情報に基づいて、現実世界の第１アームの一部としてオフセット部Ｏ１の一部を当該第１アームから除いた仮想的な第１アームを生成する（ステップＳ１００）。なお、当該仮想空間上の各点の位置と、ロボット座標系又はワールド座標系における各点の位置とは、予めキャリブレーションによって対応付けられているとする。
【００６２】
ここで、ステップＳ１００の処理について説明する。逆運動学処理部４３は、現実世界の第１アームの構造のうち、オフセット部Ｏ１に含まれ、且つオフセット部Ｏ１が備える関節が回転しても距離が変化しない２つの部位間である等長部位間を仮想的なリンクによって接続した仮想的な第１アームを生成する。
【００６３】
例えば、逆運動学処理部４３は、図２に示した第１アームの論理的な構造のうちの等長部位間として、オフセット部Ｏ１における３つの並んだ関節、すなわち関節Ｊ１、関節Ｊ２、関節Ｊ３のうちの一方の端の関節Ｊ３に接続されたリンクＬ３に対して関節Ｊ３と反対側に接続された関節Ｊ４と、他方の端の関節Ｊ１に接続されたリンクＬ１の屈曲部位Ｎとを結ぶ仮想的なリンクを設けた仮想的な第１アームを生成する。この場合、図２に示したように、関節Ｊ４と屈曲部位Ｎを結ぶ直線の長さは、関節Ｊ１〜関節Ｊ３の一部又は全部が回転した場合であっても変化しない。なお、等長部位間は、リンクＬ０の本体Ｂ側の端部と、屈曲部位Ｐとの２つの部位間であってもよい。
【００６４】
また、逆運動学処理部４３は、このようにして生成した仮想的な第１アームから、リンクＬ１のうちの屈曲部位Ｎから関節Ｊ２に伸びている部分と、関節Ｊ２と、リンクＬ２と、関節Ｊ３と、リンクＬ３を除く。そして、逆運動学処理部４３は、屈曲部位Ｎに仮想的な関節ＶＪ２を設ける。すなわち、逆運動学処理部４３は、仮想的なリンクによって関節ＶＪ２と関節Ｊ４とを繋げる。また、逆運動学処理部４３は、仮想的なリンクを二分し、関節ＶＪ２に接続された方をリンクＶＬ２とし、関節Ｊ４に接続された方をリンクＶＬ３とし、リンクＶＬ２とリンクＶＬ３との間に仮想的な関節ＶＪ３を設ける。これらにより、逆運動学処理部４３は、オフセット部Ｏ１を有する７軸垂直多関節型のアームである現実世界の第１アームに対して、仮想的な第１アームを、オフセット部Ｏ１を有さない７軸垂直多関節型のアームとすることができる。
【００６５】
図６は、逆運動学処理部４３が生成した仮想的な第１アームの一例を示す図である。図６では、仮想的な第１アームにおいて逆運動学処理部４３が仮想的に設けた関節ＶＪ２、関節ＶＪ３、リンクＶＬ２、リンクＶＬ３を点線によって示した。また、図６では、仮想的な第１アームにおいて逆運動学処理部４３が除いた部分、すなわちリンクＬ１のうちの屈曲部位Ｎから関節Ｊ２に伸びている部分と、関節Ｊ２と、リンクＬ２と、関節Ｊ３と、リンクＬ３とを二点鎖線によって示した。図６に示したように、仮想的な第１アームは、論理的な構造が７軸垂直多関節型のアームとなっている。
【００６６】
ステップＳ１００において逆運動学処理部４３が仮想的な第１アームを生成した後、逆運動学処理部４３は、ロボット制御画面を介してユーザーから第１位置姿勢情報と、対称姿勢選択情報とを受け付けるまで待機する。対称姿勢選択情報は、ある位置及び姿勢にＴＣＰの位置及び姿勢が一致している状態において、アームの肩（第１アームの場合、例えば、関節Ｊ２）や肘（第１アームの場合、例えば、関節Ｊ４）、手首（第１アームの場合、例えば、関節Ｊ６）のアクチュエーターの回転角が２つの値のうちのいずれか一方を選択可能な場合に、制御装置３０にいずれか一方を選択させる情報である。逆運動学処理部４３は、ロボット制御画面を介してユーザーから第１位置姿勢情報と、対称姿勢選択情報とを受け付けた後、逆運動学処理部４３は、ロボット制御画面を介してユーザーから受け付けた第１位置姿勢情報と、対称姿勢選択情報と、逆運動学とに基づいた逆運動学処理を行うことにより、逆運動学処理の結果（前述の解析解）として仮想的な第１アームの各関節が備えるアクチュエーターの回転角を算出する（ステップＳ１１０）。
【００６７】
ステップＳ１１０において、逆運動学処理部４３は、ロボット制御画面を介してユーザーから受け付けた第１位置姿勢情報が示す位置及び姿勢に、第１アームのＴＣＰの位置及び姿勢を一致させた場合の、関節Ｊ１と、関節ＶＪ２と、関節ＶＪ３と、関節Ｊ４〜関節Ｊ７との７つの関節それぞれが備えるアクチュエーターの回転角を、逆運動学を用いて算出する。ただし、逆運動学処理部４３は、関節ＶＪ２及び関節ＶＪ３が仮想的なアクチュエーターを備えるとして、これらの回転角を算出する。
【００６８】
次に、逆運動学処理部４３は、ステップＳ１１０において算出した回転角を補正し（ステップＳ１２０）、ロボット制御画面を介してユーザーから受け付けた第１位置姿勢情報が示す位置及び姿勢に、現実世界の第１アームのＴＣＰの位置及び姿勢を一致させた場合に実現する回転角であって当該第１アームの各関節が備えるアクチュエーターの回転角を導出する。
【００６９】
ここで、図６〜図８を参照し、ステップＳ１２０において逆運動学処理部４３が回転角を補正する処理（補正処理）について説明する。逆運動学処理部４３は、ステップＳ１１０における逆運動学処理の結果として得られた回転角と、ステップＳ１００において記憶部３２から読み出したリンク情報とに基づいて、仮想的なリンクの両端の位置、すなわち関節ＶＪ２の位置Ｐ１と関節Ｊ４の位置Ｐ２とを算出する。この一例において、関節ＶＪ２の位置Ｐ１は、関節ＶＪ２が仮想的に設けられた屈曲部位Ｎの位置によって表される。逆運動学処理部４３は、現実世界の第１アームの屈曲部位Ｎの位置が位置Ｐ１に一致し、且つ当該第１アームの関節Ｊ４の位置が位置Ｐ２に一致するように、ステップＳ１１０において算出した回転角を補正する。換言すると、逆運動学処理部４３は、ステップＳ１１０における逆運動学処理の結果により得られた前述の仮想的なリンクの両端の位置と、除かれた除外関節（すなわち、この一例において、関節Ｊ２と関節Ｊ３）及び当該除外関節に接続されるリンク（すなわち、この一例において、リンクＬ２）とが整合するように、当該逆運動学処理の結果として得られた回転角を補正する。
【００７０】
より具体的には、この一例において、まず逆運動学処理部４３は、現実世界の第１アームの屈曲部位Ｎの位置を位置Ｐ１に一致させた場合、且つ当該第１アームの関節Ｊ４の位置を位置Ｐ２に一致させた場合において当該第１アームの屈曲部位Ｐが存在すること（位置すること）が可能な位置を算出する。
【００７１】
図７は、逆運動学処理部４３が現実世界の第１アームの屈曲部位Ｐが存在することが可能な位置を算出する方法の一例を説明するための図である。図７に示したように、仮想的な第１アームにおいてリンクＬ２と、関節Ｊ３と、リンクＬ３とが除かれていない場合、仮想的な第１アームにおける屈曲部位Ｐは、円錐Ｃの底面の円ＰＣ２の円周上の何処かに存在する。円錐Ｃは、リンクＬ３と、関節Ｊ３と、リンクＬ２のうちの屈曲部位Ｐから関節Ｊ３へと伸びる一部とが、関節ＶＪ３の回転によって形成する円錐である。なお、図７では、リンクＶＬ２及びリンクＶＬ３が一点鎖線により示され、関節Ｊ２と関節Ｊ３と関節ＶＪ３とが白抜きの丸によって示されており、関節ＶＪ２が屈曲部位Ｎの位置を明確にするために省略されている。
【００７２】
一方、図７に示すように、現実世界の第１アームの屈曲部位Ｎの位置が位置Ｐ１に一致した場合であり、且つ当該第１アームの関節Ｊ４の位置が位置Ｐ２に一致した場合、当該第１アームの屈曲部位Ｐは、関節Ｊ１が回転することによって屈曲部位Ｎから関節Ｊ１へと伸びるリンクＬ１の一部を回転軸として屈曲部位Ｐが回転して形成される円ＰＣ１の円周上の何処かに存在する。
【００７３】
従って、現実世界の第１アームの屈曲部位Ｎの位置が位置Ｐ１に一致した場合であり、且つ当該第１アームの関節Ｊ４の位置が位置Ｐ２に一致した場合において、現実世界の第１アームの屈曲部位Ｐと、仮想的な第１アームの屈曲部位Ｐとが一致する位置は、円ＰＣ１の円周と、円ＰＣ２の円周とが重なる（接する又は交差する）位置のみである。図７において、位置ＰＴ０は、円ＰＣ１の円周と、円ＰＣ２の円周とが接する位置を示している。また、図８に示した位置ＰＴ１及び位置ＰＴ２は、円ＰＣ１の円周と、円ＰＣ２の円周とが交差した位置を示している。図８は、図７に示した関節Ｊ２が回転した場合に、円錐Ｃが関節Ｊ２の回転によって円ＰＣ１に対して傾いた様子の一例を示す図である。
【００７４】
これらに基づいて、逆運動学処理部４３は、位置ＰＴ０や位置ＰＴ１、位置ＰＴ２のように、円ＰＣ１と円ＰＣ２とが重なる位置を、現実世界の第１アームの屈曲部位Ｎの位置が位置Ｐ１に一致した場合であり、且つ当該第１アームの関節Ｊ４の位置が位置Ｐ２に一致した場合において、現実世界の第１アームの屈曲部位Ｐと、仮想的な第１アームの屈曲部位Ｐとが一致する位置Ｐ３として算出することができる。なお、逆運動学処理部４３は、屈曲部位Ｐの位置Ｐ３として位置ＰＴ１及び位置ＰＴ２のように２つの位置が算出された場合、例えば、前述したようにユーザーにより予め入力された対称姿勢選択情報に基づいて位置ＰＴ１と位置ＰＴ２のいずれか一方を選択する構成であってもよく、ランダムに位置ＰＴ１と位置ＰＴ２のいずれか一方を選択する構成であってもよい。
【００７５】
位置Ｐ３を算出した後、逆運動学処理部４３は、現実世界の第１アームの屈曲部位Ｐの位置を位置Ｐ３に一致させた場合における関節Ｊ１の回転角を、ステップＳ１１０において算出した関節Ｊ１の回転角を補正した後の補正後回転角として算出する。この際、逆運動学処理部４３は、記憶部３２に予め記憶された基部位置姿勢情報を記憶部３２から読み出し、読み出した基部位置姿勢情報と、位置Ｐ３とに基づいて、現実世界の第１アームの関節Ｊ１の補正後回転角を算出する。基部位置姿勢情報は、現実世界の第１アームのリンクＬ０と本体Ｂとの付け根の位置及び姿勢である基部位置姿勢を示す情報である。基部位置姿勢は、予め決められた位置及び姿勢に固定されている。そのため、現実世界の第１アームの屈曲部位Ｎの位置は、この段階ですでに位置Ｐ１に一致している。
【００７６】
現実世界の第１アームの関節Ｊ１の補正後回転角を算出した後、逆運動学処理部４３は、現実世界の第１アームの関節Ｊ４の位置を位置Ｐ２に一致させた場合における関節Ｊ２の回転角を、ステップＳ１１０において算出した関節Ｊ２の補正後回転角として算出する。現実世界の第１アームの関節Ｊ２の補正後回転角を算出した後、逆運動学処理部４３は、現実世界の第１アームのＴＣＰの位置及び姿勢を第１位置姿勢情報が示す位置及び姿勢に一致させ、当該第１アームの関節Ｊ７の回転角をステップＳ１１０において算出された関節Ｊ７の回転角に一致させ、当該第１アームの関節Ｊ６の回転角をステップＳ１１０において算出された関節Ｊ６の回転角に一致させることが可能な関節Ｊ３〜関節Ｊ５それぞれの補正後回転角を、位置Ｐ２に一致している関節Ｊ４の位置と、当該ＴＣＰの位置及び姿勢とに基づいて算出する。
【００７７】
この際、逆運動学処理部４３は、ＺＸＺオイラー角の手法に基づいて、現実世界の第１アームの関節Ｊ３〜関節Ｊ５の補正後回転角を、現実世界の第１アームのＴＣＰの位置及び姿勢と、当該第１アームの関節Ｊ６の回転角と、当該第１アームの関節Ｊ７の回転角と、関節Ｊ４の位置である位置Ｐ２とに基づいて逆算する。ＺＸＺオイラー角の手法は、ある座標系の姿勢を、まずＺ軸周りに回転させ、次にＸ軸周りに回転させ、最後に再びＺ軸周りに回転させることにより、他の座標系の姿勢に一致させる手法である。この一例における第１アームのＴＣＰの位置及び姿勢を表す座標系のＺ軸がリンクＬ６とリンクＬ７とを結ぶ直線上に一致しており、更に当該座標系のＸ軸が関節Ｊ６の回動軸方向と一致している場合、リンクＬ４の関節Ｊ４側の端部において実現している姿勢は、第１アームのＴＣＰの姿勢を、まず関節Ｊ７によってＺ軸周りに回転させ、次に関節Ｊ６によってＸ軸周りに回転させ、最後に関節Ｊ５によって再びＺ軸周りに回転させた姿勢と一致する。これを利用することにより、現実世界の第１アームのＴＣＰの位置及び姿勢と、当該第１アームの関節Ｊ６の回転角と、当該第１アームの関節Ｊ７の回転角と、関節Ｊ４の位置である位置Ｐ２とが特定されている場合、逆運動学処理部４３は、ＺＸＺオイラー角の手法によって、現実世界の第１アームの関節Ｊ３〜関節Ｊ５の補正後回転角を逆算することができる。
このようにして、逆運動学処理部４３は、ステップＳ１２０において、現実世界の第１アームの関節Ｊ１〜関節Ｊ７それぞれの補正後回転角を算出することができる。
【００７８】
現実世界の第１アームの関節Ｊ１〜関節Ｊ７それぞれの補正後回転角を算出した後、ロボット制御部４５は、ステップＳ１２０において算出された当該補正後回転角に、現実世界の第１アームの各関節が備えるアクチュエーターの回転角を一致させ、ロボット２０を動作させ（ステップＳ１３０）、処理を終了する。
【００７９】
なお、この一例において、制御部３６が、ユーザーから受け付けた第１位置姿勢情報に基づいて、現実世界の第１アームの各関節が備えるアクチュエーターの補正後回転角をステップＳ１２０において算出する構成としたが、これに代えて、例えば、第１撮像部２１〜第４撮像部２４のうちの一部または全部によって撮像された撮像画像から、現実世界の第１アームのＴＣＰの移動先を検出し、検出された移動先での当該ＴＣＰの位置及び姿勢を導出し、導出した位置及び姿勢に基づいて、現実世界の第１アームの各関節が備えるアクチュエーターの補正後回転角をステップＳ１２０において算出する構成等の他の構成であってもよい。
【００８０】
また、この一例において、ロボット２０において、第１アーム及び第２アームが、図２に示した論理的な構造を有する構成について説明したが、これに代えて、第１アームと第２アームのうちいずれか一方又は両方が、図９に示した論理的な構造を有する構成であってもよい。
【００８１】
図９は、第１アームの論理的な構造の他の例を示す図である。図９に示した第１マニピュレーターＭ１ａは、第１マニピュレーターＭ１が有するオフセット部Ｏ１に代えて、オフセット部Ｏ１ａを有する。オフセット部Ｏ１ａは、オフセット部Ｏ１における旋回関節である関節Ｊ２に代えて、図２に示した屈曲部位Ｐの位置に他の旋回関節である関節Ｊ２ａを備える。この場合、第１マニピュレーターＭ１ａの屈曲部位Ｎから関節Ｊ４までの距離は、関節Ｊ２ａが回転することによって変化してしまう。そのため、逆運動学処理部４３が仮想的な第１アームを生成する場合、本体ＢとリンクＬ０の付け根と、関節Ｊ２ａとを結ぶ仮想的なリンクを生成する。そして、逆運動学処理部４３は、当該リンクの両端の間に、仮想的な回転関節を設ける。これにより、制御部３６は、第１アームの論理的な構造が図９に示した構造であった場合であっても、図１〜図８において説明した方法と同様の方法によって現実世界の第１アームの各関節が備えるアクチュエーターの補正後回転角を算出することができる。
【００８２】
以上説明したように、本実施形態における制御装置３０は、関節（この一例において、関節Ｊ１〜関節Ｊ７）及び関節同士を結ぶリンク（この一例において、リンクＬ０〜リンクＬ７）を含むロボットアーム（この一例において、第１アーム）の一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置３０は、関節及び関節同士を結ぶリンクを含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００８３】
また、制御装置３０では、３つの並んだ関節（この一例において、関節Ｊ１〜関節Ｊ３）の回動軸が１点で交わらないオフセット部Ｏ１の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置３０は、当該オフセット部Ｏ１の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００８４】
また、制御装置３０は、回転関節、旋回関節、回転関節の順に並んでいる３つの関節の回動軸が１点で交わらないオフセット部Ｏ１の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置３０は、回転関節、旋回関節、回転関節の順に並んでいる３つの並んだ関節の回動軸が１点で交わらないオフセット部Ｏ１の一部を含むロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００８５】
また、制御装置３０は、３つの並んだ関節のうちの一方の端の関節（この一例において、関節Ｊ４）と、他方の端の関節に接続されたリンク（この一例において、リンクＬ１）とを結ぶ仮想的なリンク（この一例において、リンクＶＬ２と、関節ＶＪ３と、リンクＶＬ３との全体）を設けて、当該３つの並んだ関節のうちの当該一方の端の関節以外の関節である除外関節（この一例において、関節Ｊ２及び関節Ｊ３）を除いて構成されている仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、ロボットアームを制御する。これにより、制御装置３０は、３つの並んだ関節のうちの一方の端の関節と、他方の端の関節に接続されたリンクとを結ぶ仮想的なリンクを設けて、当該３つの並んだ関節のうちの当該一方の端の関節以外の関節である除外関節を除いて構成されている仮想的なロボットアームについて行われた逆運動学処理に基づいて多様なロボットアームを制御することができる。
【００８６】
また、制御装置３０では、逆運動学処理の結果により得られた仮想的なリンクの両端の位置と、ロボットアームの一部としてロボットアームから除かれた除外関節及び除外関節に接続されるリンクとが整合するように、逆運動学処理の結果として得られる１以上の関節の回転角を補正する。これにより、制御装置３０は、逆運動学処理の結果により得られた仮想的なリンクの両端の位置と、ロボットアームの一部としてロボットアームから除かれた除外関節及び除外関節に接続されるリンクとが整合するように補正された回転角に基づいて、多様なロボットアームを制御することができる。
【００８７】
また、制御装置３０では、７軸以上のロボットアームの一部を除いた仮想的なロボットアームについて行われた逆運動学処理の結果に基づいて、当該７軸以上のロボットアームを制御する。これにより、制御装置３０は、逆運動学処理に基づいて７軸以上の多様なロボットアームを制御することができる。
【００８８】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００８９】
また、以上に説明した装置（例えば、ロボット２０の制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００９０】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００９１】
２０  ロボット、２１  第１撮像部、２２  第２撮像部、２３  第３撮像部、２４  第４撮像部、３０  制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  表示部、３６  制御部、４１  表示制御部、４３  逆運動学処理部、４５  ロボット制御部
【図１】
2017047478.tif 000003
【図２】
2017047478.tif 000004
【図３】
2017047478.tif 000005
【図４】
2017047478.tif 000006
【図５】
2017047478.tif 000007
【図６】
2017047478.tif 000008
【図７】
2017047478.tif 000009
【図８】
2017047478.tif 000010
【図９】
2017047478.tif 000011