(57)【要約】【課題】ロボットの可動部を効率良く動作させることが可能なロボット制御装置などを提供する。【解決手段】ロボットの可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、前記ロボットの前記可動部を第３状態から第４状態に動作させる、ロボット制御装置。【選択図】図１
2018015852.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、
前記ロボットの前記可動部を第３状態から第４状態に動作させる、
ロボット制御装置。
【請求項２】
前記第１情報は、前記ロボットの関節角度の情報を含み、
前記第３状態は、前記可動部の動作の開始時の状態であり、
前記第４状態は、前記可動部の動作の終了時の状態である、
請求項１に記載のロボット制御装置。
【請求項３】
複数の異なる前記第１情報のうちで、前記第１状態または前記第２状態のいずれかの状態が前記第４状態と一致するまたは近い前記第１情報に基づいて、
前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる、
請求項１または請求項２のいずれか１項に記載のロボット制御装置。
【請求項４】
前記複数の異なる前記第１情報のうちで、前記第１状態または前記第２状態の一方の状態が前記第３状態と一致するまたは近く、かつ、前記第１状態または前記第２状態の他方の状態が前記第４状態と一致するまたは近い前記第１情報に基づいて、
前記ロボットの前記可動部を第３状態から第４状態に動作させる、
請求項３に記載のロボット制御装置。
【請求項５】
前記第１状態または前記第２状態の一方の状態が前記第３状態と近い前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる場合に、
前記ロボットの前記可動部を前記第３状態から前記一方の状態に動作させた後に前記第４状態に動作させる、
請求項４に記載のロボット制御装置。
【請求項６】
前記第１情報は、前記第１状態と前記第２状態の間を中継する態様を表す中継態様に関する情報を含み、
前記第３状態と前記第４状態の間における中継態様と一致する中継態様に関する情報を含む前記第１情報に基づいて、
前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる、
請求項１から請求項５のいずれか１項に記載のロボット制御装置。
【請求項７】
前記第１情報は、前記第１状態と前記第２状態の間を中継する位置を表す中継位置に関する情報を含み、
前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる場合に、
前記第１情報に含まれる前記中継位置に関する情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる、
請求項１から請求項６のいずれか１項に記載のロボット制御装置。
【請求項８】
前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる場合に、
前記ロボットの前記可動部と障害物との衝突が無いことを確認した後に、前記ロボットの前記可動部を動作させる、
請求項１から請求項７のいずれか１項に記載のロボット制御装置。
【請求項９】
請求項１から請求項８のいずれか１項に記載のロボット制御装置により制御される、
ロボット。
【請求項１０】
請求項１から請求項８のいずれか１項に記載のロボット制御装置と、
前記ロボット制御装置により制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットおよびロボットシステムに関する。
【背景技術】
【０００２】
製品の製造ラインなどでは、多関節型のロボットを用いて、給除材作業あるいは部品搬送作業などが行われている。多関節型のロボットでは、例えば、マニピュレーター（アーム）の先端の目標位置および目標姿勢があらかじめ決定されている動作と、画像処理などのセンシング処理によってマニピュレーターの先端の目標位置および目標姿勢が設定される動作が実行される。
【０００３】
特許文献１に記載された「ロボットの原点位置復帰制御方法とその装置」に係る技術では、原点復帰動作可能な特定の位置へ移動するための位置情報を、その道程の位置情報を含めて、あらかじめ保持する。そして、当該技術では、原点復帰動作中の位置情報と、原点復帰動作可能な特定の位置へ移動するための道程に現れる位置情報とを比較しながらロボットを動作させ、これらの位置情報が一致した場合、一致した位置から原点復帰動作可能な特定の位置まで、あらかじめ保持された道程の位置情報にしたがって動作する（特許文献１参照。）。
【０００４】
しかしながら、特許文献１に係る技術では、特定の位置へ移動するための道程の位置情報は、その分解能にもよるが、無数に存在する。このため、無数に存在するもののなかから、いずれの位置情報を目標にしてロボットを動作させるかによって、マニピュレーターの動作が変化してしまい、特定の位置へ移動する動作が一様にならないことがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−８８７２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、ロボットのマニピュレーターの動作時間が長くなる場合、あるいは、ロボットのマニピュレーターの動作の再現性が無い場合があった。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボットの可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、前記ロボットの前記可動部を第３状態から第４状態に動作させる、ロボット制御装置である。
この構成により、ロボット制御装置では、ロボットの可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる。これにより、ロボット制御装置では、ロボットの可動部を効率良く動作させることが可能である。
【０００８】
また、本発明の一態様は、ロボット制御装置において、前記第１情報は、前記ロボットの関節角度の情報を含み、前記第３状態は、前記可動部の動作の開始時の状態であり、前記第４状態は、前記可動部の動作の終了時の状態である、構成が用いられてもよい。
この構成により、ロボット制御装置では、ロボットの関節角度の情報を含む第１情報に基づいて、ロボットの可動部を開始時の状態から終了時の状態に動作させる。これにより、ロボット制御装置では、効率良く、ロボットの可動部を開始時の状態から終了時の状態に動作させることが可能である。
【０００９】
また、本発明の一態様は、ロボット制御装置において、複数の異なる前記第１情報のうちで、前記第１状態または前記第２状態のいずれかの状態が前記第４状態と一致するまたは近い前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる、構成が用いられてもよい。
この構成により、ロボット制御装置では、複数の異なる第１情報のうちで、第１状態または第２状態のいずれかの状態が第４状態と一致するまたは近い第１情報を用いる。これにより、ロボット制御装置では、ロボットの可動部を効率良く動作させることが可能である。
【００１０】
また、本発明の一態様は、ロボット制御装置において、前記複数の異なる前記第１情報のうちで、前記第１状態または前記第２状態の一方の状態が前記第３状態と一致するまたは近く、かつ、前記第１状態または前記第２状態の他方の状態が前記第４状態と一致するまたは近い前記第１情報に基づいて、前記ロボットの前記可動部を第３状態から第４状態に動作させる、構成が用いられてもよい。
この構成により、ロボット制御装置では、複数の異なる第１情報のうちで、第１状態または第２状態の一方の状態が第３状態と一致するまたは近く、かつ、第１状態または第２状態の他方の状態が第４状態と一致するまたは近い第１情報を用いる。これにより、ロボット制御装置では、ロボットの可動部を効率良く動作させることが可能である。
【００１１】
また、本発明の一態様は、ロボット制御装置において、前記第１状態または前記第２状態の一方の状態が前記第３状態と近い前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる場合に、前記ロボットの前記可動部を前記第３状態から前記一方の状態に動作させた後に前記第４状態に動作させる、構成が用いられてもよい。
この構成により、ロボット制御装置では、第１状態または第２状態の一方の状態が第３状態と近い第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる場合に、ロボットの可動部を第３状態から前記一方の状態に動作させた後に第４状態に動作させる。これにより、ロボット制御装置では、第１情報から多少ずれていても、第１情報に合わせることで、ロボットの可動部を効率良く動作させることが可能である。
【００１２】
また、本発明の一態様は、ロボット制御装置において、前記第１情報は、前記第１状態と前記第２状態の間を中継する態様を表す中継態様に関する情報を含み、前記第３状態と前記第４状態の間における中継態様と一致する中継態様に関する情報を含む前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる、
構成が用いられてもよい。
この構成により、ロボット制御装置では、第３状態と第４状態の間における中継態様と一致する中継態様に関する情報を含む第１情報を用いる。これにより、ロボット制御装置では、第３状態と第４状態の間における中継態様と一致する中継態様を用いて、ロボットの可動部を効率良く動作させることが可能である。
【００１３】
また、本発明の一態様は、ロボット制御装置において、前記第１情報は、前記第１状態と前記第２状態の間を中継する位置を表す中継位置に関する情報を含み、前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる場合に、前記第１情報に含まれる前記中継位置に関する情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる、構成が用いられてもよい。
この構成により、ロボット制御装置では、第１情報に含まれる中継位置に関する情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる。これにより、ロボット制御装置では、中継位置に関する情報に基づいて、ロボットの可動部を効率良く動作させることが可能である。
【００１４】
また、本発明の一態様は、ロボット制御装置において、前記第１情報に基づいて、前記ロボットの前記可動部を前記第３状態から前記第４状態に動作させる場合に、前記ロボットの前記可動部と障害物との衝突が無いことを確認した後に、前記ロボットの前記可動部を動作させる、構成が用いられてもよい。
この構成により、ロボット制御装置では、ロボットの可動部と障害物との衝突が無いことを確認した後に、ロボットの可動部を動作させる。これにより、ロボット制御装置では、ロボットの可動部と障害物との衝突を回避しつつ、ロボットの可動部を効率良く動作させることが可能である。
【００１５】
上記課題の少なくとも一つを解決するために本発明の一態様は、以上のようなロボット制御装置により制御される、ロボットである。
この構成により、ロボットでは、可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、可動部を第３状態から第４状態に動作させる。これにより、ロボットでは、可動部を効率良く動作させることが可能である。
【００１６】
上記課題の少なくとも一つを解決するために本発明の一態様は、以上のようなロボット制御装置と、当該ロボット制御装置により制御されるロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムでは、ロボットの可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる。これにより、ロボットシステムでは、ロボットの可動部を効率良く動作させることが可能である。
【００１７】
以上のように、本発明に係るロボット制御装置、ロボットおよびロボットシステムによれば、ロボットの可動部の第１状態に関する情報および第２状態に関する情報を含む第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる。これにより、本発明に係るロボット制御装置、ロボットおよびロボットシステムでは、ロボットの可動部を効率良く動作させることが可能である。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態（第１実施形態）に係るロボットシステムの概略的な構成例を示す図である。
【図２】本発明の一実施形態に係るロボット制御装置の概略的な構成例を示す図である。
【図３】本発明の一実施形態に係る変化情報管理テーブルの一例を示す図である。
【図４】本発明の一実施形態に係るロボットシステムのロボット制御装置により行われる処理の手順の一例を示す図である。
【図５】本発明の一実施形態に係るロボットシステムのロボット制御装置により行われる処理の手順の一例を示す図である。
【図６】本発明の一実施形態に係るロボットシステムのロボット制御装置により行われる処理の手順の一例を示す図である。
【図７】本発明の一実施形態に係るロボットシステムのロボット制御装置により行われる処理の手順の一例（他の例）を示す図である。
【図８】本発明の一実施形態（第２実施形態）に係るロボットの概略的な構成例を示す図である。
【発明を実施するための形態】
【００１９】
本発明の実施形態について図面を参照して詳細に説明する。
【００２０】
（第１実施形態）
［ロボットシステム］
図１は、本発明の一実施形態（第１実施形態）に係るロボットシステム１の概略的な構成例を示す図である。
ロボットシステム１は、ロボット１１と、ロボット制御装置１２と、ロボット１１とロボット制御装置１２とを通信可能に接続するケーブル１３と、カメラ２１（撮像装置の一例）と、カメラ２１とロボット制御装置１２とを通信可能に接続するケーブル２２と、作業台５１と、対象物５２を備える。
なお、カメラ２１と、ケーブル２２と、作業台５１と、対象物５２のうちの１以上は、ロボットシステム１に含まれないもの（つまり、ロボットシステム１の外部にあるもの）であると捉えられてもよい。
また、図１では、ロボット１１とロボット制御装置１２とを接続する配線の詳細を省略しており、１本のケーブル１３のみを示してあるが、任意の配線が用いられてもよい。
【００２１】
ロボット１１は、基端（支持台）３１と、マニピュレーターＭ１と、力覚センサー３２と、エンドエフェクターＥ１を備える。
ここで、本実施形態では、ロボット１１は、単腕ロボットである。
【００２２】
本実施形態では、ロボット制御装置１２は、ロボット１１とは別体で設けられている。他の構成例として、ロボット制御装置１２は、ロボット１１と一体で設けられてもよく、例えば、ロボット１１の基端３１の内部に設けられてもよい。
また、本実施形態では、ロボット１１とロボット制御装置１２とが、有線のケーブル１３を介して、通信する構成を示す。他の構成例として、ロボット１１とロボット制御装置１２とが、無線の回線を介して、通信する構成が用いられてもよい。
また、本実施形態では、カメラ２１とロボット制御装置１２とが、有線のケーブル２２を介して、通信する構成を示す。他の構成例として、カメラ２１とロボット制御装置１２とが、無線の回線を介して、通信する構成が用いられてもよい。
【００２３】
［作業台および対象物］
本実施形態では、作業台５１は、テーブルである。なお、作業台５１の代わりに、他のものが用いられてもよく、例えば、床、天井、あるいは、壁などが用いられてもよい。
対象物５２は、作業台５１の面に載置されている。
ここで、対象物５２としては、任意の物体が用いられてもよい。対象物５２は、例えば、生体であってもよく、または、生体でなくてもよい。
【００２４】
［カメラ］
カメラ２１は、画像を撮像する装置である。
本実施形態では、カメラ２１は、対象物５２について画像を撮像することが可能なところに設けられている。なお、他の構成例として、カメラ２１は、ロボット１１に取り付けられて設けられてもよく、あるいは、ロボット１１に内蔵されて設けられてもよい。
【００２５】
［単腕のロボット］
ロボット１１の基端３１は、設置されている。
ロボット１１のマニピュレーターＭ１の一端は、基端３１と接続されている。ロボット１１のマニピュレーターＭ１の他端と、エンドエフェクターＥ１とが、これらの間に力覚センサー３２を介して、接続されている。
ロボット１１のマニピュレーターＭ１は、６軸垂直多関節型の構造を有しており、６個の関節を備える。それぞれの関節は、アクチュエーター（図示せず）を備える。そして、ロボット１１では、６個の関節のそれぞれのアクチュエーターの動作によって、６軸の自由度の動作を行う。他の構成例として、５軸以下の自由度で動作を行うロボット、または、７軸以上の自由度で動作を行うロボットが用いられてもよい。
ロボット１１のエンドエフェクターＥ１は、例えば、ハンドであり、物体を把持することが可能な指部を備える。他の構成例として、ロボット１１のエンドエフェクターＥ１は、任意のものであってもよく、例えば、空気の吸引を利用して物体を吸着するもの、磁力を利用して物体を寄せ付けるものなどであってもよい。
【００２６】
［ロボット制御装置］
ロボット制御装置１２は、ロボット１１を制御する。例えば、ロボット制御装置１２は、マニピュレーターＭ１が有するそれぞれのアクチュエーター、力覚センサー３２およびエンドエフェクターＥ１のそれぞれを制御する。
また、ロボット制御装置１２は、カメラ２１を制御する。
ロボット制御装置１２は、力覚センサー３２から、検出結果の情報を受信する。
また、ロボット制御装置１２は、カメラ２１から、撮像された画像の情報を受信する。
ロボット制御装置１２は、力覚センサー３２およびカメラ２１のそれぞれから受信された情報のうちの１以上に基づいて、ロボット１１を制御してもよい。
【００２７】
図２は、本発明の一実施形態に係るロボット制御装置１２の概略的な構成例を示す図である。
ロボット制御装置１２は、入力部１１１と、出力部１１２と、記憶部１１３と、制御部１１４を備える。
制御部１１４は、情報取得部１３１と、変化情報選択部１３２と、ロボット制御部１３３を備える。
【００２８】
入力部１１１は、外部から情報を入力する。一例として、入力部１１１は、力覚センサー３２およびカメラ２１のそれぞれから送信される情報を入力する。他の例として、入力部１１１は、キーボードあるいはマウスなどの操作部を備え、当該操作部に対してユーザー（人）により行われる操作の内容に応じた情報を入力してもよい。
本実施形態では、入力部１１１は、ケーブル１３を介して力覚センサー３２と通信し、ケーブル２２を介してカメラ２１と通信する。
【００２９】
出力部１１２は、外部に情報を出力する。一例として、出力部１１２は、力覚センサー３２およびカメラ２１のそれぞれに対して情報を出力（送信）する。他の例として、出力部１１２は、表示部により情報を表示出力してもよい。当該表示部は、例えば、画面を有するディスプレイ装置であり、当該画面に情報を表示出力する。当該表示部は、ロボット制御装置１２と別体で設けられてもよく、あるいは、ロボット制御装置１２と一体で設けられてもよい。他の例として、出力部１１２は、他の態様で情報を出力してもよく、例えば、音（音声を含む。）により情報を出力してもよい。
本実施形態では、出力部１１２は、ケーブル１３を介して力覚センサー３２と通信し、ケーブル２２を介してカメラ２１と通信する。
【００３０】
記憶部１１３は、情報を記憶する。一例として、記憶部１１３は、制御部１１４により使用される制御プログラムおよび各種のパラメーターの情報を記憶する。他の例として、記憶部１１３は、任意の情報を記憶してもよく、例えば、ロボット１１を制御する際に使用される画像あるいはテーブルなどの情報を記憶してもよい。
【００３１】
制御部１１４は、ロボット制御装置１２において各種の制御を行う。制御部１１４は、例えば、記憶部１１３に記憶された制御プログラムおよび各種のパラメーターの情報に基づいて、各種の制御を行う。
情報取得部１３１は、入力部１１１により入力される情報を取得する。
変化情報選択部１３２は、変化情報を選択する。
ロボット制御部１３３は、ロボット１１の動作を制御する。具体的には、ロボット制御部１３３は、ケーブル１３を介してマニピュレーターＭ１と通信することで、マニピュレーターＭ１の動作を制御する。また、ロボット制御部１３３は、ケーブル１３を介してエンドエフェクターＥ１と通信することで、エンドエフェクターＥ１の動作を制御する。ロボット制御部１３３は、例えば、変化情報選択部１３２により選択された変化情報に基づいて、ロボット１１の動作を制御する。
【００３２】
本実施形態では、ロボット制御部１３３は、ロボット１１の動作を、マニピュレーターＭ１の先端（アームの先端）の位置および姿勢に基づいて制御する場合がある。マニピュレーターＭ１の先端としては、任意の箇所が用いられてもよく、一例として、ＴＣＰ（Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ）が用いられてもよい。ＴＣＰは、例えば、マニピュレーターＭ１が有する複数の関節の軸の角度によって、決まる。
なお、他の構成例として、マニピュレーターＭ１の先端以外の任意の箇所を基準としてロボット１１が制御されてもよく、例えば、エンドエフェクターＥ１の所定箇所を基準としてロボット１１が制御されてもよい。
【００３３】
［変化情報管理テーブル］
図３は、本発明の一実施形態に係る変化情報管理テーブル１００１の一例を示す図である。
本実施形態では、ロボット制御装置１２は、記憶部１１３に、変化情報管理テーブル１００１を記憶する。
【００３４】
変化情報管理テーブル１００１は、番号と、関節角度値と、中継形式（中継態様）とを対応付けて記憶する。
変化情報管理テーブル１００１における番号は、連続番号である。本実施形態では、変化情報管理テーブル１００１は、番号１、番号２、番号３、・・・というように、複数の番号のそれぞれに対応する情報を格納して保持する。
【００３５】
変化情報管理テーブル１００１における関節角度値は、点１〜点Ｎ（Ｎは２以上の整数）のそれぞれにおける各関節の角度の値である。
ここで、点１は、始点を表わしており、ロボット１１の動作前における位置および姿勢を実現するための各関節（各軸の関節）の角度の値である。
また、点Ｎは、終点を表わしており、ロボット１１の目標となる位置および姿勢を実現するための各関節（各軸の関節）の角度の値である。
また、点２〜点（Ｎ−１）は、ロボット１１の動作前における位置および姿勢から目標となる位置および姿勢に至る間における中継点を表わしており、当該中継点における位置および姿勢を実現するための各関節（各軸の関節）の角度の値である。
【００３６】
それぞれの点１〜Ｎにおいて、関節角度値として、各関節の角度の値が格納されている。例えば、（０．０，０．０，０．０，０．０，０．０，０．０）は、６軸の関節のそれぞれの角度の値が、いずれも、０．０であることを表わしている。また、例えば、（４０．０，８０．０，２０．０，３０．０，１０．０，１０．０）は、６軸の関節の第１軸〜第６軸のそれぞれの関節の角度の値が、４０．０、８０．０、２０．０、３０．０、１０．０、１０．０であることを表わしている。
なお、ここでは、６軸の場合を示したが、６軸以外の軸数であるときにおいても、各軸の関節の角度の値が格納される。
また、それぞれの関節の角度の値としては、一例として、−１８０度〜＋１８０度の範囲で表される。
【００３７】
変化情報管理テーブル１００１における中継形式は、それぞれの番号における関節角度値の変化が行われたときにおける中継形式であり、当該変化が生成されたときにおける中継形式である。
中継形式は、ロボット１１の動作前における位置および姿勢から目標となる位置および姿勢に至る間の中継において、各関節の角度の値を変化させる態様（形式）である。
中継形式としては、例えば、関節角度空間で直線的に変化（動作）する形式（変化情報管理テーブル１００１における「関節角度変化が直線変化」）、あるいは、マニピュレーターＭ１の先端の位置が直線的に変化（動作）する形式（変化情報管理テーブル１００１における「先端位置が直線変化」）、あるいは、衝突を回避することを優先する形式などがある。また、直線的に変化する中継形式の代わりに、円弧などの曲線で変化する中継形式が用いられてもよい。
【００３８】
このように、変化情報管理テーブル１００１における各番号の情報（変化情報）は、ロボット１１の各関節の軸を回転させる態様を表わしており、当該ロボット１１の動作の態様を表わしている。
ここで、変化情報管理テーブル１００１における各番号の変化情報は、例えば、当該変化情報に該当するロボット１１の動作の経路が生成されたときに記憶されてもよく、または、当該変化情報に該当するロボット１１の動作が行われたときに記憶されてもよく、または、シミュレーションの実行結果として記憶されてもよく、または、ユーザーにより設定されて記憶されてもよい。
また、１個の変化情報に含まれる中継点（点２〜点（Ｎ−１））の数としては、任意の値であってもよく、例えば、２００〜３００などの多数であってもよい。
【００３９】
［ロボットシステムにおいて行われる処理］
図４〜図７を参照して、ロボットシステム１において行われる処理の例を示す。
ロボット制御装置１２では、情報取得部１３１が記憶部１１３に記憶された変化情報管理テーブル１００１の情報を取得し、当該情報に基づいて変化情報選択部１３２が適切な変化情報を選択し、選択された変化情報に基づいてロボット制御部１３３がロボット１１の動作を制御する。
本実施形態では、ロボット制御装置１２に、ロボット１１に関して、新たな動作指示が与えられるときには、当該動作指示によって最終的に実現したい目標となるロボット１１の位置および姿勢と、この目標となるロボット１１の位置および姿勢に至る中継の位置および姿勢を生成する形式（中継形式）が与えられる。変化情報選択部１３２は、目標となるロボット１１の位置および姿勢を満たすとともに、現在におけるロボット１１の位置および姿勢から目標となるロボット１１の位置および姿勢に至る中継の位置および姿勢を生成する形式（中継形式）が一致する変化情報を、変化情報管理テーブル１００１のなかから検索する。
【００４０】
図４は、本発明の一実施形態に係るロボットシステム１のロボット制御装置１２により行われる処理の手順の一例を示す図である。
本フローの処理では、変化情報選択部１３２は、始点または終点で目標となる関節角度値を満足する変化情報があるか否かを判定する。
【００４１】
（ステップＳ１）
変化情報選択部１３２は、新たな動作指示があった場合、当該動作指示によって最終的に実現したい目標となるロボット１１の状態（以下で、「アーム状態」ともいう。）を実現する各関節の角度（関節角度）θｔを取得する。そして、変化情報選択部１３２は、ステップＳ２の処理へ移行する。
なお、ロボット１１の状態（アーム状態）としては、各関節の角度により決まる状態が用いられており、本実施形態では、マニピュレーターＭ１の先端の位置および姿勢に対応している。
例えば、目標となるアーム状態が目標とするマニピュレーターＭ１の先端の位置および姿勢で与えられた場合には、ロボット１１のマニピュレーターＭ１に関する逆運動学の計算によって、目標とするマニピュレーターＭ１の先端の位置および姿勢を満たす各関節の角度（関節角度）θｔを求めることが行われる。
【００４２】
（ステップＳ２）
変化情報選択部１３２は、変化情報管理テーブル１００１に記憶された変化情報の総数ｍ１（ｍ１は、０以上の整数であり、本実施形態では、２以上の整数である。）を取得する。そして、変化情報選択部１３２は、ステップＳ３の処理へ移行する。
（ステップＳ３）
変化情報選択部１３２は、パラメーターｉを１に設定する（ｉ＝１）。そして、変化情報選択部１３２は、ステップＳ４の処理へ移行する。
【００４３】
（ステップＳ４）
変化情報選択部１３２は、パラメーターｉが総数ｍ１以下であるか否かを判定する。
この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ１以下であると判定した場合（ステップＳ４：ＹＥＳ）、ステップＳ５の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ１以下ではないと判定した場合（ステップＳ４：ＮＯ）、ステップＳ２１の処理へ移行する。
【００４４】
（ステップＳ５）
変化情報選択部１３２は、変化情報管理テーブル１００１に記憶された変化情報のなかから、パラメーターｉを番号とする変化情報Ｄ１（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ６の処理へ移行する。
（ステップＳ６）
変化情報選択部１３２は、取得された変化情報Ｄ１（ｉ）における始点の関節角度θ１ｓ（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ７の処理へ移行する。
【００４５】
（ステップＳ７）
変化情報選択部１３２は、目標の関節角度θｔと変化情報Ｄ１（ｉ）の関節角度θ１ｓ（ｉ）とが一致するまたは近いという条件を満たすか否かを判定する。
この判定の結果、変化情報選択部１３２は、目標の関節角度θｔと変化情報Ｄ１（ｉ）の関節角度θ１ｓ（ｉ）とが一致するまたは近いという条件を満たすと判定した場合（ステップＳ７：ＹＥＳ）、ステップＳ８の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、目標の関節角度θｔと変化情報Ｄ１（ｉ）の関節角度θ１ｓ（ｉ）とが一致するまたは近いという条件を満たさないと判定した場合（ステップＳ７：ＮＯ）、ステップＳ１１の処理へ移行する。
【００４６】
ここで、本実施形態では、２個の関節角度が一致するまたは近いという条件として、当該２個の関節角度について、各成分の差分を計算して、当該差分の大きさが目標となる位置および姿勢の揺らぎに影響を与えない程度であるという条件が用いられる。
例えば、２個の関節角度が一致するまたは近いという条件として、当該２個の関節角度の差の絶対値が所定の閾値未満であるという条件が用いられてもよい。当該閾値としては、任意の値が用いられてもよい。
なお、本実施形態では、２個の関節角度の差の絶対値と閾値とを比較する処理を、例えば、関節角度が有する６軸の成分のそれぞれごとに行うが、他の構成例として、６軸の成分の総和（または、６軸の成分の２乗和など）について行われてもよい。
【００４７】
（ステップＳ８）
変化情報選択部１３２は、変化情報Ｄ１（ｉ）を、始点または終点のいずれかにおいて目標となる関節角度を満足する変化情報Ｄ２（ｉ）として記憶部１１３などに記憶して保持する。そして、変化情報選択部１３２は、ステップＳ９の処理へ移行する。
（ステップＳ９）
変化情報選択部１３２は、パラメーターｉの値を１だけ増加させる。そして、変化情報選択部１３２は、ステップＳ４の処理へ移行する。
【００４８】
（ステップＳ１１）
変化情報選択部１３２は、取得された変化情報Ｄ１（ｉ）における終点の関節角度θ１ｅ（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ１２の処理へ移行する。
【００４９】
（ステップＳ１２）
変化情報選択部１３２は、目標の関節角度θｔと変化情報Ｄ１（ｉ）の関節角度θ１ｅ（ｉ）とが一致するまたは近いという条件を満たすか否かを判定する。
この判定の結果、変化情報選択部１３２は、目標の関節角度θｔと変化情報Ｄ１（ｉ）の関節角度θ１ｅ（ｉ）とが一致するまたは近いという条件を満たすと判定した場合（ステップＳ１２：ＹＥＳ）、ステップＳ８の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、目標の関節角度θｔと変化情報Ｄ１（ｉ）の関節角度θ１ｅ（ｉ）とが一致するまたは近いという条件を満たさないと判定した場合（ステップＳ１２：ＮＯ）、ステップＳ９の処理へ移行する。
【００５０】
（ステップＳ２１）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足する変化情報Ｄ２（ｉ）を１つ以上取得することができたか否かを判定する。
この判定の結果、変化情報選択部１３２は、このような変化情報Ｄ２（ｉ）を１つ以上取得することができたと判定した場合（ステップＳ２１：ＹＥＳ）、ステップＳ５１の処理（図５に示される処理フロー）へ移行する。
一方、この判定の結果、変化情報選択部１３２は、このような変化情報Ｄ２（ｉ）を１つ以上取得することができなかったと判定した場合（ステップＳ２１：ＮＯ）、ステップＳ２２の処理へ移行する。
【００５１】
（ステップＳ２２）
変化情報選択部１３２は、適切な変化情報が得られなかった旨を通知する。そして、変化情報選択部１３２は、本処理フローを終了する。
ここで、この通知は、例えば、出力部１１２の表示部などにより行われてもよい。
【００５２】
図５は、本発明の一実施形態に係るロボットシステム１のロボット制御装置１２により行われる処理の手順の一例を示す図である。
本フローの処理では、変化情報選択部１３２は、目標となるロボット１１の位置および姿勢までの中継形式が一致する変化情報があるか否かを判定する。
【００５３】
（ステップＳ５１）
変化情報選択部１３２は、目標となるロボット１１の状態（アーム状態）までの中継形式Ｒｔを取得する。そして、変化情報選択部１３２は、ステップＳ５２の処理へ移行する。
ここで、中継形式Ｒｔは、例えば、ユーザーにより指定されてもよく、または、あらかじめ定められていてもよく、または、他の手法で決められてもよい。
中継形式Ｒｔは、新たな動作指示において、目標となるロボット１１の位置および姿勢に至るまでに現れる中継点での位置および姿勢を生成するために使用される形式である。
【００５４】
（ステップＳ５２）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足する変化情報Ｄ２（ｉ）の総数ｍ２（本実施形態では、ｍ２は、１以上の整数である。）を取得する。そして、変化情報選択部１３２は、ステップＳ５３の処理へ移行する。
（ステップＳ５３）
変化情報選択部１３２は、パラメーターｉを１に設定する（ｉ＝１）。そして、変化情報選択部１３２は、ステップＳ５４の処理へ移行する。
【００５５】
（ステップＳ５４）
変化情報選択部１３２は、パラメーターｉが総数ｍ２以下であるか否かを判定する。
この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ２以下であると判定した場合（ステップＳ５４：ＹＥＳ）、ステップＳ５５の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ２以下ではないと判定した場合（ステップＳ５４：ＮＯ）、ステップＳ６１の処理へ移行する。
【００５６】
（ステップＳ５５）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足する変化情報Ｄ２（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ５６の処理へ移行する。
【００５７】
（ステップＳ５６）
変化情報選択部１３２は、取得された変化情報Ｄ２（ｉ）における中継形式Ｒ１（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ５７の処理へ移行する。
【００５８】
（ステップＳ５７）
変化情報選択部１３２は、目標の中継形式Ｒｔと変化情報Ｄ１（ｉ）の中継形式Ｒ１（ｉ）とが一致するという条件を満たすか否かを判定する。
この判定の結果、変化情報選択部１３２は、目標の中継形式Ｒｔと変化情報Ｄ１（ｉ）の中継形式Ｒ１（ｉ）とが一致するという条件を満たすと判定した場合（ステップＳ５７：ＹＥＳ）、ステップＳ５８の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、目標の中継形式Ｒｔと変化情報Ｄ１（ｉ）の中継形式Ｒ１（ｉ）とが一致するという条件を満たさないと判定した場合（ステップＳ５７：ＮＯ）、ステップＳ５９の処理へ移行する。
【００５９】
（ステップＳ５８）
変化情報選択部１３２は、変化情報Ｄ２（ｉ）を、始点または終点のいずれかにおいて目標となる関節角度を満足し、かつ、中継形式が一致する変化情報Ｄ３（ｉ）として記憶部１１３などに記憶して保持する。そして、変化情報選択部１３２は、ステップＳ５９の処理へ移行する。
（ステップＳ５９）
変化情報選択部１３２は、パラメーターｉの値を１だけ増加させる。そして、変化情報選択部１３２は、ステップＳ５４の処理へ移行する。
【００６０】
（ステップＳ６１）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足し、かつ、中継形式が一致する変化情報Ｄ３（ｉ）を１つ以上取得することができたか否かを判定する。
この判定の結果、変化情報選択部１３２は、このような変化情報Ｄ３（ｉ）を１つ以上取得することができたと判定した場合（ステップＳ６１：ＹＥＳ）、ステップＳ１０１の処理（図６に示される処理フロー）へ移行する。
一方、この判定の結果、変化情報選択部１３２は、このような変化情報Ｄ３（ｉ）を１つ以上取得することができなかったと判定した場合（ステップＳ６１：ＮＯ）、ステップＳ６２の処理へ移行する。
【００６１】
（ステップＳ６２）
変化情報選択部１３２は、適切な変化情報が得られなかった旨を通知する。そして、変化情報選択部１３２は、本処理フローを終了する。
ここで、この通知は、例えば、出力部１１２の表示部などにより行われてもよい。
【００６２】
図６は、本発明の一実施形態に係るロボットシステム１のロボット制御装置１２により行われる処理の手順の一例を示す図である。
本フローの処理では、変化情報選択部１３２は、始点または終点で動作前における関節角度値を満足する変化情報があるか否かを判定する。
【００６３】
（ステップＳ１０１）
変化情報選択部１３２は、動作前におけるロボット１１の状態（アーム状態）に対応する各関節の角度（関節角度）θｓを取得する。そして、変化情報選択部１３２は、ステップＳ１０２の処理へ移行する。
なお、動作前におけるロボット１１の状態は、通常は、現在におけるロボット１１の状態に相当する。この場合、変化情報選択部１３２は、現在における各関節の角度（関節角度）θｓを取得する。
【００６４】
（ステップＳ１０２）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足し、かつ、中継形式が一致する変化情報の総数ｍ３（ｍ３は、１以上の整数である。）を取得する。そして、変化情報選択部１３２は、ステップＳ１０３の処理へ移行する。
（ステップＳ１０３）
変化情報選択部１３２は、パラメーターｉを１に設定する（ｉ＝１）。そして、変化情報選択部１３２は、ステップＳ１０４の処理へ移行する。
【００６５】
（ステップＳ１０４）
変化情報選択部１３２は、パラメーターｉが総数ｍ３以下であるか否かを判定する。
この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ３以下であると判定した場合（ステップＳ１０４：ＹＥＳ）、ステップＳ１０５の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ３以下ではないと判定した場合（ステップＳ１０４：ＮＯ）、ステップＳ１２１の処理へ移行する。
【００６６】
（ステップＳ１０５）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足し、かつ、中継形式が一致する変化情報Ｄ３（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ１０６の処理へ移行する。
【００６７】
（ステップＳ１０６）
変化情報選択部１３２は、取得された変化情報Ｄ３（ｉ）における２個の端点（始点と終点）のうちで、目標となる関節角度θｔを満足しない側の端点の関節角度θ２ｏ（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ１０７の処理へ移行する。
【００６８】
（ステップＳ１０７）
変化情報選択部１３２は、動作前における関節角度θｓと変化情報Ｄ３（ｉ）の関節角度θ２ｏ（ｉ）とが一致するまたは近いという条件を満たすか否かを判定する。
この判定の結果、変化情報選択部１３２は、動作前における関節角度θｓと変化情報Ｄ３（ｉ）の関節角度θ２ｏ（ｉ）とが一致するまたは近いという条件を満たすと判定した場合（ステップＳ１０７：ＹＥＳ）、ステップＳ１１１の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、動作前における関節角度θｓと変化情報Ｄ３（ｉ）の関節角度θ２ｏ（ｉ）とが一致するまたは近いという条件を満たさないと判定した場合（ステップＳ１０７：ＮＯ）、ステップＳ１０８の処理へ移行する。
【００６９】
（ステップＳ１０８）
変化情報選択部１３２は、パラメーターｉの値を１だけ増加させる。そして、変化情報選択部１３２は、ステップＳ１０４の処理へ移行する。
【００７０】
（ステップＳ１１１）
変化情報選択部１３２は、変化情報Ｄ３（ｉ）の終点における関節角度θ２ｅ（ｉ）が目標の関節角度θｔを満足する（一致するまたは近い）か否かを判定する。
この判定の結果、変化情報選択部１３２は、変化情報Ｄ３（ｉ）の終点における関節角度θ２ｅ（ｉ）が目標の関節角度θｔを満足すると判定した場合（ステップＳ１１１：ＹＥＳ）、ステップＳ１１３の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、変化情報Ｄ３（ｉ）の終点における関節角度θ２ｅ（ｉ）が目標の関節角度θｔを満足しないと判定した場合（ステップＳ１１１：ＮＯ）、ステップＳ１１２の処理へ移行する。
【００７１】
（ステップＳ１１２）
変化情報選択部１３２は、変化情報Ｄ３（ｉ）について、始点から中継点を経由して終点に至るまでの複数の点を、逆の順序に並べ替える。これにより、変化情報Ｄ３（ｉ）の終点から中継点を経由して始点に至るまでの複数の点における関節角度の並びが生成される。そして、変化情報選択部１３２は、ステップＳ１１３の処理へ移行する。
【００７２】
（ステップＳ１１３）
ロボット制御部１３３は、変化情報Ｄ３（ｉ）の関節角度の変化にしたがって、ロボット１１のマニピュレーターＭ１を動作させる。そして、変化情報選択部１３２は、本処理フローを終了する。
ここで、ロボット制御部１３３は、例えば、変化情報Ｄ３（ｉ）の関節角度の変化にしたがってロボット１１を動作させる前に、その動作によってロボット１１と障害物などとが衝突するか否かを確認する処理（衝突確認処理）を行ってもよい。この場合、ロボット制御部１３３は、衝突が発生しないことを確認した後に、変化情報Ｄ３（ｉ）の関節角度の変化にしたがってロボット１１を動作させる。また、衝突が発生することを確認した場合は、ステップＳ１０８の処理に移行するように構成する。
【００７３】
（ステップＳ１２１）
変化情報選択部１３２は、適切な変化情報が得られなかった旨を通知する。そして、変化情報選択部１３２は、本処理フローを終了する。
ここで、この通知は、例えば、出力部１１２の表示部などにより行われてもよい。
【００７４】
＜処理フローの他の例＞
図７は、本発明の一実施形態に係るロボットシステム１のロボット制御装置１２により行われる処理の手順の一例（他の例）を示す図である。
ここで、図７に示される処理フローは、図６に示される処理フローの他の例であり、図６に示される処理フローの代わりに実行される。
図７に示される処理フローでは、変化情報選択部１３２は、始点または終点で動作前における関節角度値を満足する変化情報があるか否かを判定し、このような変化情報がない場合には、動作前における関節角度値からは遠いが比較的近い変化情報を利用する。
【００７５】
（ステップＳ１５１）
変化情報選択部１３２は、動作前におけるロボット１１の状態（アーム状態）に対応する各関節の角度（関節角度）θｓを取得する。そして、変化情報選択部１３２は、ステップＳ１５２の処理へ移行する。
【００７６】
（ステップＳ１５２）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足し、かつ、中継形式が一致する変化情報の総数ｍ３（ｍ３は、１以上の整数である。）を取得する。そして、変化情報選択部１３２は、ステップＳ１５３の処理へ移行する。
（ステップＳ１５３）
変化情報選択部１３２は、関節角度の差の大きさに関して、最小値Δθｍｉｎの初期値を設定する。そして、変化情報選択部１３２は、ステップＳ１５４の処理へ移行する。当該最小値Δθｍｉｎの初期値としては、任意の値が用いられてもよい。本実施形態では、本処理フローにおいて、当該最小値Δθｍｉｎを更新していく。
（ステップＳ１５４）
変化情報選択部１３２は、パラメーターｉを１に設定する（ｉ＝１）。そして、変化情報選択部１３２は、ステップＳ１５５の処理へ移行する。
【００７７】
（ステップＳ１５５）
変化情報選択部１３２は、パラメーターｉが総数ｍ３以下であるか否かを判定する。
この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ３以下であると判定した場合（ステップＳ１５５：ＹＥＳ）、ステップＳ１５６の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、パラメーターｉが総数ｍ３以下ではないと判定した場合（ステップＳ１５５：ＮＯ）、ステップＳ１７１の処理へ移行する。
【００７８】
（ステップＳ１５６）
変化情報選択部１３２は、始点または終点のいずれかにおいて目標となる関節角度を満足し、かつ、中継形式が一致する変化情報Ｄ３（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ１５７の処理へ移行する。
【００７９】
（ステップＳ１５７）
変化情報選択部１３２は、取得された変化情報Ｄ３（ｉ）における２個の端点（始点と終点）のうちで、目標となる関節角度θｔを満足しない側の端点の関節角度θ２ｏ（ｉ）を取得する。そして、変化情報選択部１３２は、ステップＳ１５８の処理へ移行する。
【００８０】
（ステップＳ１５８）
変化情報選択部１３２は、動作前の関節角度θｓと、目標となる関節角度θｔを満足しない側の端点の関節角度θ２ｏ（ｉ）との差の絶対値Δθｉ（＝｜θｓ−θ２ｏ（ｉ）｜）を求める。そして、変化情報選択部１３２は、ステップＳ１５９の処理へ移行する。
【００８１】
（ステップＳ１５９）
変化情報選択部１３２は、求められた絶対値Δθｉが最小値Δθｍｉｎ未満であるか否かを判定する。
この判定の結果、変化情報選択部１３２は、求められた絶対値Δθｉが最小値Δθｍｉｎ未満であると判定した場合には、ステップＳ１６０の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、求められた絶対値Δθｉが最小値Δθｍｉｎ未満ではないと判定した場合には、ステップＳ１６１の処理へ移行する。
【００８２】
（ステップＳ１６０）
変化情報選択部１３２は、変化情報Ｄ３（ｉ）を、ロボット１１の動作に用いる関節角度の変化情報の候補Ｄ４として記憶部１１３などに記憶して保持する。また、変化情報選択部１３２は、最小値Δθｍｉｎを絶対値Δθｉに更新する。そして、変化情報選択部１３２は、ステップＳ１６１の処理へ移行する。
（ステップＳ１６１）
変化情報選択部１３２は、パラメーターｉの値を１だけ増加させる。そして、変化情報選択部１３２は、ステップＳ１５５の処理へ移行する。
【００８３】
（ステップＳ１７１）
変化情報選択部１３２は、関節角度の変化情報の候補Ｄ４が得られたか否かを判定する。
この判定の結果、変化情報選択部１３２は、関節角度の変化情報の候補Ｄ４が得られたと判定した場合には、ステップＳ１７２の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、関節角度の変化情報の候補Ｄ４が得られていないと判定した場合には、ステップＳ１８１の処理へ移行する。
【００８４】
（ステップＳ１７２）
変化情報選択部１３２は、得られた関節角度の変化情報の候補Ｄ４における２個の端点（始点と終点）のうちで、目標となる関節角度θｔを満足しない側の端点の関節角度θ３ｏを取得する。そして、変化情報選択部１３２は、ステップＳ１７３の処理へ移行する。
【００８５】
（ステップＳ１７３）
変化情報選択部１３２は、動作前の関節角度θｓと取得された関節角度θ３ｏとを、関節角度の変化情報の候補Ｄ４の中継形式でつなぐ関節角度変化ｄを計算する。そして、変化情報選択部１３２は、ステップＳ１７４の処理へ移行する。
なお、本実施形態では、動作前の関節角度θｓと取得された関節角度θ３ｏとが一致する場合があってもよく、この場合、関節角度変化ｄは０の変化（つまり、変化しない）となる。
【００８６】
（ステップＳ１７４）
変化情報選択部１３２は、関節角度変化ｄが得られたか否かを判定する。
この判定の結果、変化情報選択部１３２は、関節角度変化ｄが得られたと判定した場合には、ステップＳ１７５の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、関節角度変化ｄが得られていないと判定した場合には、ステップＳ１８１の処理へ移行する。
【００８７】
（ステップＳ１７５）
変化情報選択部１３２は、関節角度変化ｄと関節角度の変化情報の候補Ｄ４とを接続することで、ロボット１１のマニピュレーターＭ１の動作に用いる関節角度の変化情報Ｄ５を生成する。そして、変化情報選択部１３２は、ステップＳ１７６の処理へ移行する。
【００８８】
（ステップＳ１７６）
変化情報選択部１３２は、変化情報Ｄ５の終点における関節角度θ４ｅが目標の関節角度θｔを満足する（一致するまたは近い）か否かを判定する。
この判定の結果、変化情報選択部１３２は、変化情報Ｄ５の終点における関節角度θ４ｅが目標の関節角度θｔを満足すると判定した場合（ステップＳ１７６：ＹＥＳ）、ステップＳ１７８の処理へ移行する。
一方、この判定の結果、変化情報選択部１３２は、変化情報Ｄ５の終点における関節角度θ４ｅが目標の関節角度θｔを満足しないと判定した場合（ステップＳ１７６：ＮＯ）、ステップＳ１７７の処理へ移行する。
【００８９】
（ステップＳ１７７）
変化情報選択部１３２は、変化情報Ｄ５について、始点から中継点を経由して終点に至るまでの複数の点を、逆の順序に並べ替える。これにより、変化情報Ｄ５の終点から中継点を経由して始点に至るまでの複数の点における関節角度の並びが生成される。そして、変化情報選択部１３２は、ステップＳ１７８の処理へ移行する。
【００９０】
（ステップＳ１７８）
ロボット制御部１３３は、変化情報Ｄ５の関節角度の変化にしたがって、ロボット１１のマニピュレーターＭ１を動作させる。そして、変化情報選択部１３２は、本処理フローを終了する。
ここで、ロボット制御部１３３は、例えば、変化情報Ｄ５の関節角度の変化にしたがってロボット１１を動作させる前に、その動作によってロボット１１と障害物などとが衝突するか否かを確認する処理（衝突確認処理）を行ってもよい。この場合、ロボット制御部１３３は、衝突が発生しないことを確認した後に、変化情報Ｄ５の関節角度の変化にしたがってロボット１１を動作させる。なお、ロボット制御部１３３は、このような衝突確認処理を、例えば、関節角度変化ｄについて行ってもよい。
【００９１】
（ステップＳ１８１）
変化情報選択部１３２は、適切な変化情報が得られなかった旨を通知する。そして、変化情報選択部１３２は、本処理フローを終了する。
ここで、この通知は、例えば、出力部１１２の表示部などにより行われてもよい。
【００９２】
ここで、図７の例では、処理フローにおいて最小値Δθｍｉｎを更新していく場合を示したが、他の構成例として、当該最小値Δθｍｉｎの代わりに、一定の値が用いられてもよい。この場合、ステップＳ１６０の処理において関節角度の変化情報の候補Ｄ４が２個以上得られることがあり得るが、そのときには、例えば、最初に得られた候補Ｄ４を優先して使用するなど、任意の変化情報が優先して使用されてもよい。もしくは、各変化情報Ｄ４で生成した変化情報Ｄ５で衝突確認処理を行って、衝突が発生しない変化情報Ｄ５を抽出して使用するように構成してもよい。
【００９３】
［第１実施形態のまとめ］
以上のように、本実施形態に係るロボットシステム１では、ロボット制御装置１２において、ロボット１１の動作を表す関節角度の変化情報を記憶しており、ロボット１１に対する新たな動作命令があった場合に、当該動作命令における始点、終点および中継形式の全部または一部に基づいて、適切な変化情報を選択して、選択された変化情報に基づいてロボット１１の動作を制御する。
なお、ロボット制御装置１２は、例えば、記憶されている変化情報のなかで適切な変化情報が無いと判定した場合には、記憶されている変化情報を使用せずに、動作命令に基づいて任意の手法でロボット１１の動作を制御する。
【００９４】
本実施形態では、ロボット制御装置１２は、記憶されている変化情報に含まれる少ない情報（例えば、始点、終点および中継形式の全部または一部の情報）に基づいて、適切な変化情報を選択することができて、効率的である。また、ロボット制御装置１２は、選択された変化情報に含まれるより多くの細かい情報（例えば、複数の中継点の情報）を使用して、ロボット１１の動作を制御することが可能である。
なお、本実施形態では、ロボット１１の動作を制御する手法としては、任意の手法が用いられてもよく、例えば、位置制御、力覚制御、ビジュアルサーボ制御などが用いられてもよい。
【００９５】
本実施形態では、ロボット制御装置１２は、過去に動作実績がある変化情報を参照して、新たな動作命令を実現する変化情報を選択（あるいは、生成）するため、ロボット１１の動作時間（マニピュレーターＭ１の動作時間）の短縮化、あるいは、ロボット１１の動作（マニピュレーターＭ１の動作）の安定性（例えば、再現性）を確保することができる。
本実施形態では、ロボット制御装置１２は、記憶されている変化情報を利用することで、ロボット１１の動作の再現性を確保することができる。ロボット制御装置１２は、例えば、既に衝突確認処理が行われた変化情報を利用することで、衝突が発生する確率を低くする（例えば、図１に示す作業台５１や対象物５２の配置状況が変わっていなければゼロにする）ことが可能である。
本実施形態では、ロボット制御装置１２は、ロボット１１を動作させる前に、その動作によってロボット１１と障害物との衝突があるか否かを判定し、衝突が無いと判定（確認）された場合に、ロボット１１を動作させることにより、このような衝突を回避することができる。
【００９６】
なお、本実施形態では、単腕のロボットを例としたが、他の構成例として、スカラロボット、直角座標ロボットなどが用いられてもよい。直角座標ロボットは、例えば、ガントリロボットである。
【００９７】
（第２実施形態）
［ロボットシステム］
図１に示されるロボットシステム１では、単腕のロボット１１が動作を行う場合を示した。
他の構成例として、本実施形態では、単腕のロボットの代わりに、双腕のロボットにより動作を行う。
【００９８】
［双腕のロボット］
図８は、本発明の一実施形態（第２実施形態）に係るロボット２０１の概略的な構成例を示す図である。
なお、本実施形態に係るロボットシステムは、ロボット２０１以外に、例えば、作業台（図示せず）および対象物（図示せず）など、任意のものを備えてもよい。
【００９９】
ロボット２０１は、上部にある頭部と、中央部にある胴体部と、下部にある台部（台の部分）と、胴体部に設けられた腕部を備える。
ロボット２０１は、腕部として２本の腕を有する双碗のロボットである。
【０１００】
ロボット２０１は、一方の腕側の構成として、第１のマニピュレーターＭ１１と、第１の力覚センサー２３１−１と、第１のエンドエフェクターＥ１１を備える。これらは一体化され、本実施形態では、第１のマニピュレーターＭ１１と第１のエンドエフェクターＥ１１との間に第１の力覚センサー２３１−１を備える。
ロボット２０１は、他方の腕側の構成として、第２のマニピュレーターＭ１２と、第２の力覚センサー２３１−２と、第２のエンドエフェクターＥ１２を備える。これらは一体化され、本実施形態では、第２のマニピュレーターＭ１２と第２のエンドエフェクターＥ１２との間に第２の力覚センサー２３１−２を備える。
【０１０１】
本実施形態では、一方の腕側の構成（エンドエフェクターＥ１１が取り付けられたマニピュレーターＭ１１）により７軸の自由度の動作を行うことが可能であり、他方の腕側の構成（エンドエフェクターＥ１２が取り付けられたマニピュレーターＭ１２）により７軸の自由度の動作を行うことが可能であるが、他の構成例として、６軸以下または８軸以上の自由度の動作を行う構成が用いられてもよい。
ここで、マニピュレーターＭ１１、Ｍ１２は、７軸の自由度で動作する場合、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増えることによって、例えば、動作が滑らかになり、当該マニピュレーターＭ１１、Ｍ１２の周辺に存在する物体との干渉を容易に回避することができる。また、マニピュレーターＭ１１、Ｍ１２が７軸の自由度で動作する場合、当該マニピュレーターＭ１１、Ｍ１２の制御は、マニピュレーターＭ１１、Ｍ１２が８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、本実施形態では、好ましい一例として、７軸の自由度で動作するマニピュレーターＭ１１、Ｍ１２が用いられている。
また、本実施形態では、胴体部は、腰の部分で、１軸の自由度で回転することが可能な構成である。
【０１０２】
また、ロボット２０１は、頭部の左右のそれぞれに設けられた２個のカメラ（第１のカメラ２１１−１、第２のカメラ２１１−２）と、第１のマニピュレーターＭ１１の所定部位に設けられたカメラ（第３のカメラ２２１−１）と、第２のマニピュレーターＭ１２の所定部位に設けられたカメラ（第４のカメラ２２１−２）を備える。
それぞれのカメラ（第１のカメラ２１１−１、第２のカメラ２１１−２、第３のカメラ２２１−１、第４のカメラ２２１−２）は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）あるいはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等を用いたカメラである。
第１のカメラ２１１−１および第２のカメラ２１１−２は、それぞれ、頭部の動きに応じて動かされる。
第３のカメラ２２１−１および第４のカメラ２２１−２は、それぞれ、第１のマニピュレーターＭ１１および第２のマニピュレーターＭ１２のそれぞれの動きに応じて動かされる。
【０１０３】
また、ロボット２０１は、ロボット制御装置２５１を備える。本実施形態では、ロボット２０１は、台部の内部にロボット制御装置２５１を備える。
ロボット制御装置２５１は、ロボット２０１の動作を制御する。ロボット制御装置２５１は、例えば、第１のマニピュレーターＭ１１および第２のマニピュレーターＭ１２の動作を制御する。さらに、ロボット２０１の腰などの部分の動作が可能な構成では、ロボット制御装置２５１は当該腰などの部分の動作を制御する。
本実施形態では、第１のカメラ２１１−１、第２のカメラ２１１−２、第３のカメラ２２１−１および第４のカメラ２２１−２のそれぞれは、画像を撮像して、撮像された画像の情報をロボット制御装置２５１に送信（出力）する。また、第１の力覚センサー２３１−１および第２の力覚センサー２３１−２のそれぞれは、第１のエンドエフェクターＥ１１および第２のエンドエフェクターＥ１２のそれぞれに作用する力およびモーメントのうちの一方または両方を検出して、検出結果の情報をロボット制御装置２５１に送信（出力）する。ロボット制御装置２５１は、これらの情報を受信（入力）し、受信された情報を、ロボット２０１の動作を制御する際に、使用することが可能である。
ここで、第１のカメラ２１１−１、第２のカメラ２１１−２、第３のカメラ２２１−１、第４のカメラ２２１−２、第１の力覚センサー２３１−１および第２の力覚センサー２３１−２のそれぞれとロボット制御装置２５１とは有線のケーブル（回線）を介して接続されており、当該回線を介して情報を通信することが可能である。なお、有線のケーブルの代わりに、無線の回線が用いられてもよい。
【０１０４】
本実施形態では、第１のマニピュレーターＭ１１の位置および姿勢、第２のマニピュレーターＭ１２の位置および姿勢、および各カメラ（第１のカメラ２１１−１、第２のカメラ２１１−２、第３のカメラ２２１−１、第４のカメラ２２１−２）により撮像される画像について、座標系のキャリブレーションが行われている。
【０１０５】
本実施形態では、ロボット制御装置２５１は、あらかじめ設定された動作制御プログラムにしたがって、ロボット２０１の動作を制御する。ロボット制御装置２５１は、ロボット２０１の動作を実現するために必要な各種の情報を、ロボット２０１（本体）に対して教示する。
具体例として、ロボット制御装置２５１は、各マニピュレーター（第１のマニピュレーターＭ１１および第２のマニピュレーターＭ１２）の動作を制御することで、各エンドエフェクター（第１のエンドエフェクターＥ１１および第２のエンドエフェクターＥ１２）により物体を把持すること、各エンドエフェクターにより把持された物体を移動させること、各エンドエフェクターにより把持された物体を所定位置に載置して離す（把持を解除する）こと、各エンドエフェクターにより把持された物体を加工（例えば、穴開けなど）すること、などが可能である。
本実施形態では、それぞれのエンドエフェクターＥ１１、Ｅ１２は、掌２４１−１、２４１−２および爪（指）２４２−１、２４２−２を備える。
【０１０６】
［ロボット制御装置］
ロボット制御装置２５１は、ロボット２０１における各種の処理の制御を行う。
本実施形態では、ロボット制御装置２５１は、概略的には、単腕のロボットを２個分制御する機能を有する。
図２を例とすると、本実施形態では、ロボット制御装置２５１は、例えば、入力部１１１、出力部１１２、記憶部１１３、制御部１１４と同様な機能を備え、２個のマニピュレーターＭ１１、Ｍ１２を協調的に制御する。
【０１０７】
なお、本実施形態では、複数のカメラ２１１−１〜２１１−２、２２１−１〜２２１−２のうちの１個以上が用いられてもよく、他の構成例として、ロボット２０１とは別のカメラ（例えば、図１に示されるカメラ２１のようなもの）が用いられてもよい。
【０１０８】
［双腕のロボットにより行われる動作］
本実施形態では、概略的には、図１に示される１個のロボット１１（１個のマニピュレーターＭ１）により行われる動作と同様な動作を、１個のロボット２０１が有する２個のマニピュレーターＭ１１、Ｍ１２のうちの一方により行う。
また、本実施形態では、ロボット２０１は、２個のマニピュレーターＭ１１、Ｍ１２の両方により所定の動作を行ってもよい。
【０１０９】
［第２実施形態のまとめ］
以上のように、本実施形態に係る双腕のロボット２０１を有するロボットシステムにおいても、例えば、第１実施形態に係る単腕のロボット１１を有するロボットシステム１と同様な効果を得ることが可能である。
【０１１０】
（以上の実施形態のまとめ）
一構成例として、ロボット（図１の例ではロボット１１、図８の例ではロボット２０１）の可動部（図１の例ではマニピュレーターＭ１であり他の構成例としてエンドエフェクターＥ１、図８の例ではマニピュレーターＭ１１、Ｍ１２であり他の構成例としてエンドエフェクターＥ１１、Ｅ１２）の第１状態（図３の例では、例えば、始点）に関する情報および第２状態（図３の例では、例えば、終点）に関する情報を含む第１情報（図３の例では、変化情報管理テーブル１００１）に基づいて、ロボットの可動部を第３状態（例えば、開始時の状態）から第４状態（例えば、終了時の状態）に動作させる、ロボット制御装置（図１の例ではロボット制御装置１２、図８の例ではロボット制御装置２５１）である。
【０１１１】
一構成例として、ロボット制御装置において、第１情報は、ロボットの関節角度の情報を含み、第３状態は、可動部の動作の開始時の状態であり、第４状態は、可動部の動作の終了時の状態である（図３の例）。
一構成例として、ロボット制御装置において、複数の異なる第１情報のうちで、第１状態または第２状態のいずれかの状態が第４状態と一致するまたは近い第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる（図４〜図７の例）。
一構成例として、ロボット制御装置において、複数の異なる第１情報のうちで、第１状態または第２状態の一方の状態が第３状態と一致するまたは近く、かつ、第１状態または第２状態の他方の状態が第４状態と一致するまたは近い第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる（図４〜図７の例）。
一構成例として、ロボット制御装置において、第１状態または第２状態の一方の状態が第３状態と近い第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる場合に、ロボットの可動部を第３状態から前記一方の状態に動作させた後に第４状態に動作させる（図７の例）。
一構成例として、ロボット制御装置において、第１情報は、第１状態と第２状態の間を中継する態様を表す中継態様（図３の例では、中継形式）に関する情報を含み、第３状態と第４状態の間における中継態様と一致する中継態様に関する情報を含む第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる（図５の例）。
一構成例として、ロボット制御装置において、第１情報は、第１状態と第２状態の間を中継する位置を表す中継位置（図３の例では、中継点）に関する情報を含み、第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる場合に、第１情報に含まれる中継位置に関する情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる（図４〜図７の例）。
一構成例として、ロボット制御装置において、第１情報に基づいて、ロボットの可動部を第３状態から第４状態に動作させる場合に、ロボットの可動部と障害物との衝突が無いことを確認した後に、ロボットの可動部を動作させる。
【０１１２】
一構成例として、以上のようなロボット制御装置により制御される、ロボット（図１の例ではロボット１１、図８の例ではロボット２０１）である。
一構成例として、以上のようなロボット制御装置と、ロボット制御装置により制御されるロボットと、を備えるロボットシステム（図１の例ではロボットシステム１、図８の例ではロボット２０１を備えたロボットシステム）である。
【０１１３】
なお、以上に説明した装置（例えば、ロボット制御装置１２、２５１など）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体（記憶媒体）に記録（記憶）し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、オペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）あるいは周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）あるいは電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１１４】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１１５】
１…ロボットシステム、１１…ロボット、１２…ロボット制御装置、１３、２２…ケーブル、２１…カメラ、３１…基端、３２…力覚センサー、５１…作業台、５２…対象物、１１１…入力部、１１２…出力部、１１３…記憶部、１１４…制御部、１３１…情報取得部、１３２…変化情報選択部、１３３…ロボット制御部、２０１…ロボット、２１１−１〜２１１−２、２２１−１〜２２１−２…カメラ、２３１−１〜２３１−２…力覚センサー、２４１−１〜２４１−２…掌、２４２−１〜２４２−２…爪、２５１…ロボット制御装置、１００１…変化情報管理テーブル、Ｍ１、Ｍ１１〜Ｍ１２…マニピュレーター、Ｅ１、Ｅ１１〜Ｅ１２…エンドエフェクター
【図１】
2018015852.tif 000003
【図２】
2018015852.tif 000004
【図３】
2018015852.tif 000005
【図４】
2018015852.tif 000006
【図５】
2018015852.tif 000007
【図６】
2018015852.tif 000008
【図７】
2018015852.tif 000009
【図８】
2018015852.tif 000010