(57)【要約】【課題】線状物体を引き回す作業を容易に行うことができる制御装置を提供すること。【解決手段】第１物体に線状物体を引き回すための位置及び順番に関する第１情報に基づいてロボットを制御する制御部を備え、前記第１情報は受付部で受け付けられ、表示部で表示される、制御装置。【選択図】図４
2017148908.tif 000002
【特許請求の範囲】
【請求項１】
第１物体に線状物体を引き回すための位置及び順番に関する第１情報に基づいてロボットを制御する制御部を備え、
前記第１情報は受付部で受け付けられ、表示部で表示される、
制御装置。
【請求項２】
前記表示部は、撮像部により撮像された前記第１物体の撮像画像を表示し、
前記受付部は、前記表示部に表示された前記撮像画像に基づいて、前記第１情報を受け付ける、
請求項１に記載の制御装置。
【請求項３】
前記表示部は、前記第１物体のモデルを表示し、
前記受付部は、前記表示部に表示された前記モデルに基づいて、前記第１情報を受け付ける、
請求項１に記載の制御装置。
【請求項４】
前記第１情報に基づいて前記ロボットの軌跡が軌跡生成部により生成され、
前記軌跡は、曲線を含み、
前記制御部は、前記軌跡に基づいて前記ロボットを制御する、
請求項１から３のうちいずれか一項に記載の制御装置。
【請求項５】
前記受付部は、前記曲線の最小曲率に関する第２情報を受け付け、
前記曲線は、前記最小曲率未満の曲線を含まない、
請求項４に記載の制御装置。
【請求項６】
前記受付部は、前記ロボットが前記線状物体を把持する把持力に関する第３情報を受け付ける、
請求項１から５のうちいずれか一項に記載の制御装置。
【請求項７】
前記受付部は、前記ロボットが前記線状物体を再把持する場合の再把持位置に関する第４情報を受け付ける、
請求項１から６のうちいずれか一項に記載の制御装置。
【請求項８】
前記ロボットは、力検出部を備え、
前記制御部は、前記力検出部の出力に基づいて、前記線状物体の張力を変化させることが可能である、
請求項１から７のうちいずれか一項に記載の制御装置。
【請求項９】
前記表示部は、前記第１情報に基づいて前記ロボットが動作した場合のシミュレーション結果に基づいた前記ロボットと前記第１物体との干渉位置を表示する、
請求項１から８のうちいずれか一項に記載の制御装置。
【請求項１０】
請求項１から９のうちいずれか一項に記載の制御装置に制御される、
ロボット。
【請求項１１】
請求項１から９のうちいずれか一項に記載の制御装置と、
前記制御装置によって制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ケーブルの引き回しを容易に行わせる技術の研究や開発が行われている。
【０００３】
これに関し、ケーブルを引き回す作業を容易に行わせることが可能な構造を有するロボットが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１６０３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなロボットであっても、ケーブルの引き回しは、人手によって行われるため、作業効率を向上させることが困難な場合があった。また、人手によって引き回されたケーブルの状態は、ケーブルを引き回した人の技能によってばらつく場合があった。特に、ケーブルが上手く引き回されていなかった場合、ケーブルに不具合が生じる可能性があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、第１物体に線状物体を引き回すための位置及び順番に関する第１情報に基づいてロボットを制御する制御部を備え、前記第１情報は受付部で受け付けられ、表示部で表示される、制御装置である。
この構成により、制御装置は、第１物体に線状物体を引き回すための位置及び順番に関する第１情報に基づいてロボットを制御する。これにより、制御装置は、線状物体を引き回す作業を容易に行うことができる。
【０００７】
また、本発明の他の態様は、制御装置において、前記表示部は、撮像部により撮像された前記第１物体の撮像画像を表示し、前記受付部は、前記表示部に表示された前記撮像画像に基づいて、前記第１情報を受け付ける、構成が用いられてもよい。
この構成により、制御装置は、表示部に表示された撮像画像に基づいて受け付けられた第１情報に基づいてロボットを制御する。これにより、制御装置は、表示部に表示された撮像画像に基づいて受け付けられた第１情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０００８】
また、本発明の他の態様は、制御装置において、前記表示部は、前記第１物体のモデルを表示し、前記受付部は、前記表示部に表示された前記モデルに基づいて、前記第１情報を受け付ける、構成が用いられてもよい。
この構成により、制御装置は、表示部に表示されたモデルに基づいて受け付けられた第１情報に基づいてロボットを制御する。これにより、制御装置は、表示部に表示されたモデルに基づいて受け付けられた第１情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０００９】
また、本発明の他の態様は、制御装置において、前記第１情報に基づいて前記ロボットの軌跡が軌跡生成部により生成され、前記軌跡は、曲線を含み、前記制御部は、前記軌跡に基づいて前記ロボットを制御する、構成が用いられてもよい。
この構成により、制御装置は、第１情報に基づいて生成されたロボットの軌跡に基づいてロボットを制御する。これにより、制御装置は、第１情報に基づいて生成されたロボットの軌跡に基づいて、線状物体を引き回す作業を容易に行うことができる。
【００１０】
また、本発明の他の態様は、制御装置において、前記受付部は、前記曲線の最小曲率に関する第２情報を受け付け、前記曲線は、前記最小曲率未満の曲線を含まない、構成が用いられてもよい。
この構成により、制御装置は、第１情報及び第２情報に基づいてロボットを制御する。これにより、制御装置は、第１情報及び第２情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【００１１】
また、本発明の他の態様は、制御装置において、前記受付部は、前記ロボットが前記線状物体を把持する把持力に関する第３情報を受け付ける、構成が用いられてもよい。
この構成により、制御装置は、第１情報及び第３情報に基づいてロボットを制御する。これにより、制御装置は、第１情報及び第３情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【００１２】
また、本発明の他の態様は、制御装置において、前記受付部は、前記ロボットが前記線状物体を再把持する場合の再把持位置に関する第４情報を受け付ける、構成が用いられてもよい。
この構成により、制御装置は、第１情報及び第４情報に基づいてロボットを制御する。これにより、制御装置は、第１情報及び第４情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【００１３】
また、本発明の他の態様は、制御装置において、前記ロボットは、力検出器を備え、前記制御部は、前記力検出器の出力に基づいて、前記線状物体の張力を変化させることが可能である、構成が用いられてもよい。
この構成により、制御装置は、力検出部の出力に基づいて、線状物体の張力を変化させる。これにより、制御装置は、第１情報及び力検出部の出力に基づいて、線状物体を引き回す作業を容易に行うことができる。
【００１４】
また、本発明の他の態様は、制御装置において、前記表示部は、前記第１情報に基づいて前記ロボットが動作した場合のシミュレーション結果に基づいた前記ロボットと前記第１物体との干渉位置を表示する、構成が用いられてもよい。
この構成により、制御装置は、表示部に表示されたロボットと第１物体との干渉位置に基づいてロボットを制御する。これにより、制御装置は、第１情報、及びロボットと第１物体との干渉位置に基づいて、線状物体を引き回す作業を容易に行うことができる。
【００１５】
また、本発明の他の態様は、上記に記載の制御装置に制御される、ロボットである。
この構成により、ロボットは、第１情報に基づいて第１物体に線状物体を引き回す。これにより、ロボットは、線状物体を引き回す作業を容易に行うことができる。
【００１６】
また、本発明の他の態様は、上記に記載の制御装置と、前記制御装置によって制御されるロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムは、第１情報に基づいて第１物体に線状物体を引き回す。これにより、ロボットシステムは、線状物体を引き回す作業を容易に行うことができる。
【００１７】
以上により、制御装置、ロボット、及びロボットシステムは、第１情報に基づいて第１物体に線状物体を引き回す。これにより、制御装置、ロボット、及びロボットシステムは、線状物体を引き回す作業を容易に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】第１物体Ｏの上面図の一例である。
【図３】情報処理装置３０及び制御装置４０のハードウェア構成の一例を示す図である。
【図４】情報処理装置３０及び制御装置４０の機能構成の一例を示す図である。
【図５】情報処理装置３０が教示画面を表示する処理の流れの一例を示すフローチャートである。
【図６】教示画面の一例を示す図である。
【図７】情報処理装置３０のタッチパネルに対する操作に基づく視点を当該タッチパネルに対するタッチ操作によって変更する様子の一例を示す図である。
【図８】付加情報入力画面Ｇ３が表示された状態の教示画面Ｇ１の一例を示す図である。
【図９】軌跡生成部３６３が仮軌跡に基づいて生成した経由点を経由点の位置に基づいて教示画面Ｇ１に重ねた場合のイメージ図である。
【図１０】仮想空間表示領域ＶＳに経由点軌跡が表示された状態の教示画面Ｇ１の一例を示す図である。
【図１１】シミュレーション部３６５が実行したシミュレーションの結果が仮想空間表示領域ＶＳに表示された状態の教示画面Ｇ１の一例を示す図である。
【図１２】アームＶＡと他の物体との干渉が生じた位置を示す情報が表示された状態の教示画面Ｇ１の一例を示す図である。
【図１３】制御装置４０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図１４】ロボット２０がケーブルＣの端部Ｃ１と異なる部位を把持している場合におけるロボットシステム１の構成の一例を示す図である。
【図１５】教示画面Ｇ１の仮想空間表示領域ＶＳに経由点軌跡が表示された状態においてユーザーが経由点の把持力を手繰り把持力に変更している様子の一例を示す図である。
【図１６】再把持動作を含む所定の作業をロボット２０に行わせる際のロボットシステム１の構成の一例を示す図である。
【発明を実施するための形態】
【００１９】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２０】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、本実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、撮像部１０と、ロボット２０と、情報処理装置３０と、制御装置４０を備える。
【００２１】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部１０は、ロボット２０が作業を行うことが可能な領域を含む範囲を撮像可能な位置に設置される。
【００２２】
撮像部１０は、ケーブルによって制御装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、撮像部１０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置４０と接続される構成であってもよい。
【００２３】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよく、ガントリロボットのような直動ロボットであってもよく、スカラロボットであってもよく、その他のロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。
【００２４】
アームＡは、エンドエフェクターＥと、マニピュレーターＭと、力検出部２１を備える。
エンドエフェクターＥは、物体を把持するエンドエフェクターである。この一例において、エンドエフェクターＥは、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を把持する。なお、エンドエフェクターＥは、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を把持する構成であってもよい。すなわち、この一例において、把持するとは、物体を持ち上げることが可能な状態にすることを意味する。
【００２５】
エンドエフェクターＥは、ケーブルによって制御装置４０と通信可能に接続されている。これにより、エンドエフェクターＥは、制御装置４０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置４０と接続される構成であってもよい。
【００２６】
マニピュレーターＭは、７つの関節を備える。また、７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、７軸垂直多関節型のアームである。なお、アームＡは、これに代えて、７軸水平多関節型のアームであってもよい。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、アームＡは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２７】
アームＡが７軸の自由度で動作する場合、アームＡは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これによりアームＡは、例えば、動作が滑らかになり、更にアームＡの周辺に存在する物体との干渉を容易に回避することができる。また、アームＡが７軸の自由度で動作する場合、アームＡの制御は、アームＡが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００２８】
マニピュレーターＭが備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによって制御装置４０と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置４０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置４０と接続される構成であってもよい。
【００２９】
力検出部２１は、エンドエフェクターＥとマニピュレーターＭの間に備えられる。力検出部２１は、例えば、力センサーである。力検出部２１は、エンドエフェクターＥ、又はエンドエフェクターＥにより把持された物体に作用した力やモーメント（トルク）を検出する。力検出部２１は、検出した力やモーメントの大きさを示す値を出力値として含む力検出情報を通信により制御装置４０へ出力する。
【００３０】
力検出情報は、制御装置４０によるアームＡの力検出情報に基づく制御に用いられる。力検出情報に基づく制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部２１は、トルクセンサー等のエンドエフェクターＥ、又はエンドエフェクターＥにより把持された物体に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
【００３１】
力検出部２１は、ケーブルによって制御装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、力検出部２１と制御装置４０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００３２】
制御装置４０は、この一例において、ロボットコントローラー（ロボット制御装置）である。制御装置４０は、エンドエフェクターＥの所定位置に、エンドエフェクターＥとともに動くＴＣＰ（Tool  Center  Point）である制御点Ｔ１を設定する。所定位置は、例えば、エンドエフェクターＥを回動させるマニピュレーターＭのアクチュエーターの回動軸上の位置であって、エンドエフェクターＥの重心からエンドエフェクターＥの指部の側に所定距離だけ離れた位置である。なお、所定位置は、これに代えて、エンドエフェクターＥに対応付けられた他の位置であってもよい。所定距離は、例えば、当該指部の端部のうちのマニピュレーターＭと反対側の端部から当該重心までの当該回動軸に沿った距離である。なお、所定距離は、これに代えて、他の距離であってもよい。
【００３３】
制御点Ｔ１には、制御点Ｔ１の位置を示す情報である制御点位置情報と、制御点Ｔ１の姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Ｔ１には、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報を制御装置４０が指定（決定）すると、制御点Ｔ１の位置及び姿勢が決まる。制御装置４０は、制御点位置情報を指定し、指定した制御点位置情報が示す位置に制御点Ｔ１の位置が一致するようにアームＡを動作させる。また、制御装置４０は、制御点姿勢情報を指定し、指定した制御点姿勢情報が示す姿勢に制御点Ｔ１の姿勢が一致するようにアームＡを動作させる。
【００３４】
この一例において、制御点Ｔ１の位置は、制御点Ｔ１とともに動くように制御点Ｔ１に対応付けられた三次元局所座標系である制御点座標系ＴＣ１の原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔ１の姿勢は、制御点座標系ＴＣ１の各座標軸の方向によって表される。
【００３５】
制御装置４０は、予めユーザーから入力された制御点設定情報に基づいて制御点Ｔ１を設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００３６】
制御装置４０は、情報処理装置３０から経由点情報を取得する。経由点情報は、経由点を示す情報である。経由点は、制御装置４０がアームＡを動作させる際に制御点Ｔ１を経由（通過）させる複数の点である。経由点には、経由点位置情報と、経由点姿勢情報と、経由点順番情報と、経由点速さ情報と、経由点把持力情報が対応付けられている。経由点位置情報は、経由点の位置を示す情報である。また、経由点姿勢情報は、経由点の姿勢を示す情報である。また、経由点順番情報は、経由点に対応付けられた順番を示す情報である。経由点速さ情報は、経由点に対応付けられた速さを示す情報である。当該速さは、制御点Ｔ１（又はエンドエフェクターＥ）を移動させる速さである。経由点把持力情報は、経由点に対応付けられた把持力を示す情報である。当該把持力は、エンドエフェクターＥの指部が物体を把持する力である。
【００３７】
この一例において、各経由点の位置は、各経由点に対応付けられた三次元局所座標系である経由点座標系の原点のロボット座標系ＲＣにおける位置によって表される。また、経由点の姿勢は、経由点座標系の各座標軸の方向によって表される。
【００３８】
制御装置４０は、制御点位置情報及び制御点姿勢情報を指定し、制御点Ｔ１の位置及び姿勢が経由点の位置及び姿勢と一致するようにアームＡを動作させることにより、制御点Ｔ１と経由点を一致させる。また、制御装置４０は、経由点の順番に基づいて順に各経由点に制御点Ｔ１を一致させる。また、制御装置４０は、経由点の速さに基づいて、各経由点を制御点Ｔ１が通過する際の速さを決定する。また、制御装置４０は、経由点の把持力に基づいて、各経由点を制御点Ｔ１が通過する際にエンドエフェクターＥが物体を把持する把持力を決定する。これらにより、制御装置４０は、アームＡを動作させ、エンドエフェクターＥの位置及び姿勢を変化させる。
【００３９】
制御装置４０は、取得した経由点情報に基づいて、各経由点に制御点Ｔ１を一致させるようにマニピュレーターＭのアクチュエーターを制御する信号を含む制御信号を生成する。当該制御信号には、エンドエフェクターＥの指部を動かす信号等の他の信号も含まれる。そして、制御装置４０は、生成した制御信号をロボット２０に送信し、ロボット２０に所定の作業を行わせる。
【００４０】
制御装置４０は、この一例において、ロボット２０の外部に設置されている。なお、制御装置４０は、ロボット２０の外部に設置される構成に代えて、ロボット２０に内蔵される構成であってもよい。
【００４１】
情報処理装置３０は、例えば、ノートＰＣ（Personal  Computer）である。なお、情報処理装置３０は、これに代えて、ティーチングペンダント、デスクトップＰＣ、タブレットＰＣ、多機能携帯電話端末（スマートフォン）、携帯電話端末、ＰＤＡ（Personal  Digital  Assistant）等の他の情報処理装置であってもよい。
【００４２】
情報処理装置３０は、この一例において、ユーザーが教示点を入力する教示画面を表示する。教示点は、情報処理装置３０が経由点情報を生成するために用いる点である。教示点には、教示点位置情報と、教示点姿勢情報と、教示点順番情報と、教示点速さ情報と、教示点把持力情報が対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。また、教示点順番情報は、教示点に対応付けられた順番を示す情報である。教示点速さ情報は、教示点に対応付けられた速さを示す情報である。教示点把持力情報は、教示点に対応付けられた把持力を示す情報である。情報処理装置３０は、教示画面からユーザーが入力したこれらの情報を受け付ける。情報処理装置３０は、受け付けた当該情報に基づいた教示点を生成する。情報処理装置３０は、生成した教示点に基づいて経由点情報を生成する。情報処理装置３０は、生成した経由点情報を制御装置４０に出力する。
【００４３】
情報処理装置３０は、ケーブルによって制御装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、情報処理装置３０と制御装置４０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。また、情報処理装置３０は、制御装置４０と一体に構成されてもよい。この場合、制御装置４０は、以下において説明する情報処理装置３０の各機能を有する。
【００４４】
＜ロボットが行う所定の作業の概要＞
以下、ロボット２０が行う所定の作業の概要について説明する。
ロボット２０は、物体に線状物体を引き回す作業を所定の作業として行う。線状物体を物体に引き回す作業は、この一例において、当該物体に応じた経由点軌跡に沿って線状物体を引っ張りながら当該物体に取り付ける（配置する）作業のことである。経由点軌跡は、情報処理装置３０が生成する経由点情報が示す各経由点を、各経由点の順番の順に線で結ぶことによって得られる軌跡である。当該線は、この一例において、直線である。なお、当該線は、曲線を含む構成であってもよい。線状物体を引っ張りながら当該物体に取り付ける作業の例としては、何らかの装置の筐体内部の壁面に設けられた１以上のケーブルクランプに、線状物体の一例であるケーブルを引っ掛けながら筐体に配線（配置）する作業等が挙げられる。
【００４５】
線状物体は、破断させることなく曲げることが可能な物体である。例えば、線状物体は、通信用のケーブル、給電用のケーブル、他の配線、配管、血管のような生体の管等である。以下では、一例として、線状物体が図１に示したケーブルＣである場合について説明する。線状物体が引き回される物体は、例えば、プリンターやプロジェクター等の産業用の装置や当該装置の部品、産業用ではない日用品の装置や当該装置の部品、臓器等の生体等である。以下では、一例として、当該物体が図１に示した第１物体Ｏである場合について説明する。
【００４６】
この一例において、第１物体Ｏは、図１に示したように作業台ＴＢの上面に載置されている。第１物体Ｏは、板状の物体であり、上面に３つの円柱形状の突起部Ｏ１〜突起部Ｏ３が形成された物体である。突起部Ｏ１〜突起部Ｏ３のそれぞれは、ケーブルＣを第１物体Ｏに引き回す際にケーブルＣを引っ掛けるための部位である。なお、第１物体Ｏの形状は、このような形状に代えて、他の形状であってもよい。また、突起部Ｏ１〜突起部Ｏ３の一部又は全部の形状は、円柱形状に代えて、他の形状であってもよい。作業台ＴＢは、この一例において、テーブルである。なお、作業台ＴＢは、テーブルに代えて、床面や棚等の第１物体Ｏを配置可能な物体であれば他の物体であってもよい。
【００４７】
この一例において、ロボット２０は、ケーブルＣの２つの端部のうちの一方である端部Ｃ１を予め把持している。なお、所定の作業には、所定のケーブル置き場に置かれたケーブルＣを把持する動作が含まれる構成であってもよい。
【００４８】
ロボット２０は、制御装置４０から取得した制御信号に基づいて、各経由点の順番の順に各経由点と制御点Ｔ１とを一致させていくことにより、端部Ｃ１を把持したエンドエフェクターＥを移動させる。これにより、ロボット２０は、制御装置４０が情報処理装置３０から取得した経由点情報に基づく経由点軌跡に沿ってケーブルＣを引っ張りながら第１物体Ｏに取り付ける。すなわち、ロボット２０は、制御装置４０から取得した経由点情報に基づいて、ケーブルＣを第１物体Ｏに引き回す。
【００４９】
ここで、図２を参照し、ロボット２０が行う所定の作業について説明する。図２は、第１物体Ｏの上面図の一例である。例えば、ロボット２０は、エンドエフェクターＥによって端部Ｃ１が把持されたケーブルＣを、図２に示した経由点軌跡Ｌ０に沿って引っ張る。そして、ロボット２０は、ケーブルＣを突起部Ｏ１〜突起部Ｏ３のそれぞれに引っ掛けて第１物体Ｏに取り付ける。ロボット２０に引き回しされた後のケーブルＣは、ロボット２０が引っ張ることによって張力を加えない限りたわむ（緩む）。このため、ケーブルＣは、必ずしもロボット２０による引き回しによって経由点軌跡Ｌ０に完全に沿って取り付けられるわけではなく、経由点軌跡Ｌ０からずれて取り付けられる。図２に示した例では、ケーブルＣは、このように経由点軌跡Ｌ０からずれて取り付けられている。以上のように、ロボット２０は、ケーブルＣを第１物体Ｏに引き回す作業を所定の作業として行う。なお、所定の作業は、これに代えて、何らかの経由点軌跡に沿ってケーブルＣを引っ張りながら行う他の作業であってもよい。
【００５０】
＜情報処理装置が経由点情報を生成する処理の概要＞
以下、情報処理装置３０が経由点情報を生成する処理の概要について説明する。
情報処理装置３０は、表示した教示画面からユーザーにより、教示点位置情報と、教示点姿勢情報と、教示点順番情報と、教示点速さ情報と、教示点把持力情報を入力される。情報処理装置３０は、入力されたこれらの情報に基づいて教示点を生成する。そして、情報処理装置３０は、生成した教示点に基づいて経由点情報を生成する。
【００５１】
具体的には、情報処理装置３０は、生成した教示点に基づいて仮軌跡を算出する。仮軌跡は、自由曲線を算出する方法に基づいて、各教示点が各教示点の順番の順に線で結ばれた自由曲線によって表される軌跡のことである。なお、仮軌跡は、軌跡の一例である。以下では、一例として、自由曲線がベジェ曲線である場合について説明する。この場合、教示点は、３以上必要である。なお、自由曲線は、これに代えて、スプライン曲線等の教示点に基づく他の曲線であってもよい。
【００５２】
情報処理装置３０は、算出した仮軌跡に基づいて経由点情報を生成する。具体的には、情報処理装置３０は、所定の条件に基づいて、仮軌跡上において各経由点が等間隔に離れて位置するように所定の数Ｎの経由点を生成する。所定の条件は、この一例において、生成する所定の数Ｎの経由点には、各教示点のそれぞれと一致する経由点が含まれていることである。なお、所定の条件は、他の条件であってもよく、なくてもよい。教示点と経由点が一致することは、この一例において、教示点に対応付けられた情報と、経由点に対応付けられた情報とが一致することを意味する。このように教示点と一致する経由点を、以下では説明の便宜上、一致点と称して説明する。所定の数Ｎは、例えば、１００である。なお、所定の数Ｎは、これに代えて、他の数であってもよい。
【００５３】
また、情報処理装置３０は、生成した各経由点のうちの一致点ではない経由点の姿勢を、各一致点の姿勢に基づいて算出する。例えば、情報処理装置３０は、１番目の一致点の姿勢から２番目の一致点の姿勢に至るまでの姿勢の変化量と、１番目の一致点から２番目の一致点までの各経由点間の姿勢の変化量の総和とが一致するように１番目の一致点と２番目の一致点との間に含まれている各経由点の姿勢を算出する。情報処理装置３０は、生成した各経由点のうちの一致点ではない経由点のそれぞれについて算出した姿勢を、当該経由点のそれぞれに対応付ける。
【００５４】
また、情報処理装置３０は、生成した各経由点のうちの一致点ではない経由点の速さを、各一致点の速さに基づいて算出する。例えば、情報処理装置３０は、１番目の一致点の速さから２番目の一致点の速さに至るまでの速さの変化量と、１番目の一致点から２番目の一致点までの各経由点間の速さの変化量の総和とが一致するように１番目の一致点と２番目の一致点との間に含まれている各経由点の速さを算出する。情報処理装置３０は、生成した各経由点のうちの一致点ではない経由点のそれぞれについて算出した速さを、当該経由点のそれぞれに対応付ける。
【００５５】
また、情報処理装置３０は、生成した各経由点のうちの一致点ではない経由点の把持力を、各一致点の把持力に基づいて算出する。例えば、情報処理装置３０は、１番目の一致点の把持力から２番目の一致点の把持力に至るまでの把持力の変化量と、１番目の一致点から２番目の一致点までの各経由点間の把持力の変化量の総和とが一致するように１番目の一致点と２番目の一致点との間に含まれている各経由点の把持力を算出する。情報処理装置３０は、生成した各経由点のうちの一致点ではない経由点のそれぞれについて算出した把持力を、当該経由点のそれぞれに対応付ける。
【００５６】
また、情報処理装置３０は、生成した各経由点の順番を、各一致点の順番に基づいて算出する。例えば、情報処理装置３０は、所定の数Ｎが１００の場合、１番目の一致点の順番を１番目として特定し、順番が最後の一致点の順番が１００番目となるように１番目の一致点の隣の経由点から順に当該最後の一致点まで順番を対応付ける。
【００５７】
このようにして、情報処理装置３０は、経由点の数よりも少ない数の教示点をユーザーから入力されることにより、ロボット２０にケーブルＣを引き回す作業を行わせるための経由点を生成する。情報処理装置３０は、生成した経由点を示す経由点情報を生成する。そして、情報処理装置３０は、経由点情報を制御装置４０に出力する。これにより、ユーザーは、情報処理装置３０を利用することによって、ロボット２０にケーブルＣを引き回す作業を容易に行わせることができる。
【００５８】
なお、情報処理装置３０は、教示点姿勢情報と、教示点速さ情報と、教示点把持力情報とのうちの一部又は全部を教示画面からユーザーにより入力されない構成であってもよい。この場合、情報処理装置３０は、第１物体ＯにケーブルＣを引き回すための位置及び順番に関する情報として、教示点位置情報と教示点順番情報とを教示画面からユーザーにより入力される。そして、情報処理装置３０は、入力された教示点位置情報と教示点順番情報とに基づいて教示点を生成する。情報処理装置３０は、生成した教示点に基づいて経由点情報を生成する。教示点位置情報及び教示点姿勢情報は、第１情報の一例である。
【００５９】
また、教示点位置情報は、この一例において、ロボット座標系ＲＣにおけるＸ軸方向、Ｙ軸方向、Ｚ軸方向のそれぞれにおける位置を示す。情報処理装置３０は、ユーザーによりこれらの３つの位置を示す情報を教示点位置情報として入力される際、当該３つの位置を全部まとめて入力される構成であってもよく、当該３つの位置を別々に入力される構成であってもよい。以下では、一例として、情報処理装置３０が当該３つの位置を別々に入力される場合について説明する。
【００６０】
＜制御装置が行う処理の概要＞
以下、制御装置４０が行う処理の概要について説明する。
制御装置４０は、情報処理装置３０から経由点情報を取得する。制御装置４０は、取得した経由点情報に基づいてロボット２０を制御する。換言すると、制御装置４０は、情報処理装置３０が受け付けた教示点位置情報及び教示点姿勢情報、又は教示点位置情報及び教示点姿勢情報に基づいて生成された仮軌跡に基づいてロボット２０を制御し、ロボット２０に所定の作業を行わせる。これにより、制御装置４０は、ケーブルＣを引き回す作業を容易に行うことができる。また、制御装置４０は、ロボット２０にケーブルＣを引き回させるため、複数の第１物体Ｏのそれぞれに対して所定の作業を行った場合であっても、第１物体Ｏ毎に引き回されたケーブルＣの状態をばらつかせずに一定の品質を保つことができる。その結果、制御装置４０は、当該状態がばらついてしまうことによる不具合が生じる可能性を抑制することができる。
本実施形態では、情報処理装置３０が経由点情報を生成する処理と、制御装置４０がロボット２０に所定の作業を行わせる処理について詳しく説明する。
【００６１】
＜ロボット制御装置のハードウェア構成＞
以下、図３を参照し、情報処理装置３０及び制御装置４０のハードウェア構成について説明する。図３は、情報処理装置３０及び制御装置４０のハードウェア構成の一例を示す図である。図３は、情報処理装置３０のハードウェア構成（３０番台の符号が付された機能部）と、制御装置４０のハードウェア構成（４０番台の符号が付された機能部）とを便宜的に重ねて示した図である。
【００６２】
情報処理装置３０は、例えば、ＣＰＵ（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）等のハードウェア機能部であってもよい。
【００７１】
表示制御部３６１は、表示部３５に表示させる各種の画面を生成する。表示制御部３６１は、生成した画面を表示部３５に表示させる。
軌跡生成部３６３は、入力受付部３３によってユーザーから入力された（受け付けた）教示点に基づいて、仮軌跡を生成する。
経由点生成部３６４は、軌跡生成部３６３が生成した仮軌跡に基づいて経由点を生成する。また、経由点生成部３６４は、生成した経由点に基づいて、当該経由点を示す経由点情報を生成する。
【００７２】
シミュレーション部３６５は、経由点生成部３６４が生成した経由点に基づいたシミュレーションを実行する。当該シミュレーションは、経由点生成部３６４が生成した経由点に基づいてロボット２０が所定の作業を行った場合の動作を仮想空間Ｖ内における仮想的なロボット２０に行わせる処理である。仮想空間Ｖは、第１物体Ｏ等の実空間内におけるロボット２０の所定の作業に関係する物体が仮想的に含まれた仮想空間である。仮想空間Ｖにおける位置を示す座標は、キャリブレーションによりロボット座標系ＲＣにおける位置を示す座標と対応付けられている。また、ロボット座標系ＲＣにおける位置を示す座標は、キャリブレーションにより実空間（ワールド座標系）における位置を示す座標と対応付けられている。シミュレーション部３６５は、実行したシミュレーションの結果を示す動画を表示制御部３６１により表示部３５に表示させる。
【００７３】
撮像制御部３６６は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。
画像取得部３６７は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。
経由点情報出力部３６８は、経由点生成部３６４が生成した経由点情報を通信部３４により制御装置４０に出力する。
【００７４】
制御装置４０は、記憶部４２と、通信部４４と、制御部４６を備える。
制御部４６は、制御装置４０の全体を制御する。制御部４６は、撮像制御部４６１と、画像取得部４６２と、力検出情報取得部４６３と、経由点情報取得部４６４と、位置検出部４６５と、ロボット制御部４６６を備える。制御部４６が備えるこれらの機能部は、例えば、ＣＰＵ４１が、記憶部４２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩやＡＳＩＣ等のハードウェア機能部であってもよい。
【００７５】
撮像制御部４６１は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。
画像取得部４６２は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。
力検出情報取得部４６３は、力検出部２１から力検出情報を取得する。
経由点情報取得部４６４は、情報処理装置３０から経由点情報を取得する。
位置検出部４６５は、画像取得部４６２が取得した撮像画像に基づいて各種の位置を検出する。
ロボット制御部４６６は、経由点情報取得部４６４が取得した経由点情報に基づいてロボット２０を動作させ、ロボット２０に所定の作業を行わせる。
【００７６】
＜情報処理装置が教示画面を表示する処理＞
以下、図５を参照し、情報処理装置３０が教示画面を表示する処理について説明する。図５は、情報処理装置３０が教示画面を表示する処理の流れの一例を示すフローチャートである。
【００７７】
表示制御部３６１は、記憶部３２から教示画面情報を読み出す。教示画面情報は、教示画面を生成するために必要な情報であり、例えば、ＨＴＭＬ（HyperText  Markup  Language）やＣＳＳ（Cascading  Style  Sheets）によって構成される情報である。また、教示画面情報は、記憶部３２に予め記憶された情報である。表示制御部３６１は、記憶部３２から読み出した教示画面情報に基づいて教示画面を生成する（ステップＳ１１０）。次に、表示制御部３６１は、ステップＳ１１０において生成した教示画面を表示部３５に表示させ（ステップＳ１２０）、処理を終了する。
【００７８】
＜教示画面においてユーザーにより行われる操作に基づいて情報処理装置が行う処理＞
以下、図６〜１２を参照し、教示画面と、ユーザーにより行われる操作に基づいて情報処理装置が行う処理について説明する。図６は、教示画面の一例を示す図である。図６に示した教示画面Ｇ１には、仮想空間表示領域ＶＳと、ボタンＢ０と、ボタンＢ１と、ボタンＢ２と、ボタンＢ３が含まれている。なお、教示画面Ｇ１には、これらに加えて、他のＧＵＩ（Graphical  User  Interface）が含まれる構成であってもよい。
【００７９】
仮想空間表示領域ＶＳは、前述の仮想空間Ｖを表示する領域である。表示制御部３６１は、ユーザーにより予め入力された情報に基づいて仮想空間Ｖを生成する。当該情報は、仮想空間Ｖ内に配置する物体の形状や位置等を示す情報である。表示制御部３６１は、生成した仮想空間Ｖを仮想空間表示領域ＶＳに表示させる。この一例における仮想空間Ｖには、図６に示したように仮想的な第１物体Ｏである第１物体ＶＯが含まれる。第１物体ＶＯは、実空間の第１物体Ｏが有する突起部Ｏ１〜突起部Ｏ３のそれぞれに対応する仮想的な突起部ＶＯ１〜突起部ＶＯ３を有する。すなわち、第１物体ＶＯの形状は、第１物体Ｏの形状と同じ形状である。
【００８０】
表示制御部３６１は、情報処理装置３０のタッチパネル（入力受付部３３）に対する操作に基づく視点から仮想空間Ｖ内を見た場合に見える仮想空間Ｖ内を仮想空間表示領域ＶＳに表示させる。図６では、第１物体ＶＯの上面の直上に位置する視点から第１物体ＶＯの重心に向かって仮想空間Ｖ内を見た場合に見える仮想空間Ｖ内が表示されている。この一例において、表示制御部３６１は、デフォルト状態において、当該視点から当該重心に向かって仮想空間Ｖ内を見た場合に見える仮想空間Ｖ内を仮想空間表示領域ＶＳに表示させる。デフォルト状態は、この一例において、教示画面Ｇ１を表示させてから当該タッチパネルに対する操作が行われる前までの状態のことである。このため、図６に示した仮想空間表示領域ＶＳには、仮想空間Ｖ内における第１物体ＶＯの上面を含む範囲が表示されている。なお、表示制御部３６１は、デフォルト状態において、当該視点と位置が異なる視点から当該重心に向かって仮想空間Ｖ内を見た場合に見える仮想空間Ｖ内を仮想空間表示領域ＶＳに表示させる構成であってもよい。
【００８１】
教示画面Ｇ１において、情報処理装置３０のタッチパネルに対する操作に基づく視点は、当該タッチパネルに対するタッチ操作によって変更することができる。図７は、情報処理装置３０のタッチパネルに対する操作に基づく視点を当該タッチパネルに対するタッチ操作によって変更する様子の一例を示す図である。例えば、図７に示すように当該タッチパネルを図７に示した矢印が示す方向ＡＲ１にスワイプした場合、表示制御部３６１は、方向ＡＲ１と逆の方向に当該視点を移動させる。そして、表示制御部３６１は、移動させた当該視点から第１物体ＶＯの重心に向かって仮想空間Ｖ内を見た場合に見える仮想空間Ｖ内を仮想空間表示領域ＶＳに表示させる。ここで、図７において、指Ｆ１は、スワイプする前のユーザーの指の位置を示しており、指Ｆ２は、スワイプした後のユーザーの指の位置を示している。なお、表示制御部３６１は、スワイプによって当該視点を移動させる移動量を、当該タッチパネルに対して行われたスワイプの距離に基づいて算出する。このような当該視点の移動により、表示制御部３６１は、ユーザーが所望する視点から第１物体ＶＯの重心に向かって仮想空間Ｖ内を見た場合の仮想空間Ｖ内を仮想空間表示領域ＶＳに表示させることができる。
【００８２】
なお、表示制御部３６１は、仮想空間表示領域ＶＳに仮想空間Ｖを表示させる構成に代えて、撮像部１０により撮像した撮像画像を仮想空間表示領域ＶＳに表示させる構成であってもよい。この場合、表示制御部３６１は、撮像制御部４６１により撮像部１０が撮像可能な撮像範囲を撮像部１０に撮像させる。そして、表示制御部３６１は、画像取得部４６２により撮像部１０から撮像部１０が撮像した撮像画像を取得する。表示制御部３６１は、取得した撮像画像を仮想空間表示領域ＶＳに表示させる。なお、この場合、表示制御部３６１は、仮想空間表示領域ＶＳに仮想空間Ｖを表示させる場合と異なり、図７において説明したような情報処理装置３０のタッチパネルに対する操作に基づく視点の移動を行わない。
【００８３】
また、ユーザーは、仮想空間表示領域ＶＳ上をタップすることによって、タップした位置が示す仮想空間Ｖ内の位置に教示点を追加（入力、生成）することができる。表示制御部３６１は、ユーザーにより仮想空間表示領域ＶＳ上をタップされた場合、タップされた位置が示す仮想空間Ｖ内の位置に、当該位置を示す教示点位置情報が対応付けられた教示点を生成する。当該位置は、仮想空間Ｖ内のＸ軸方向及びＹ軸方向における位置に対応付けられたロボット座標系ＲＣのＸ軸方向及びＹ軸方向における位置である。この一例では、前述したように、教示点にはロボット座標系ＲＣのＺ軸方向における位置が後から対応付けられる。なお、仮想空間Ｖ内のＸ軸方向及びＹ軸方向は、この一例において、第１物体ＶＯの上面に沿った方向である。
【００８４】
また、表示制御部３６１は、教示点が生成したことをユーザーに知らせるため、生成した教示点に対応付けられたロボット座標系ＲＣのＸ軸方向及びＹ軸方向における位置に基づいて、当該位置に対応付けられた仮想空間Ｖ内のＸ軸方向及びＹ軸方向における位置に教示点を表す情報を追加する（表示させる）。図６及び図７に示した例では、仮想空間Ｖ内において追加（表示）された教示点を表す情報は、二点鎖線の円ＴＰ１〜円ＴＰ５のそれぞれによって表されている。なお、当該情報は、例えば、星印等の印や光の明滅等の他の情報であってもよい。
【００８５】
また、表示制御部３６１は、この一例において、ユーザーによるタップにより教示点を生成した回数を記憶し、記憶されている回数に１を足した数を順番として、新たに生成した教示点に対応付ける。なお、当該回数の初期値は、ゼロである。表示制御部３６１は、教示画面が生成される毎に当該回数を初期値に初期化する。例えば、表示制御部３６１は、円ＴＰ１が表わす教示点を１番目に生成した場合、当該教示点に１番目を示す教示点順番情報を対応付ける。
【００８６】
また、表示制御部３６１は、仮想空間Ｖ内に教示点を表す情報を追加した（表示させた）後、追加（表示）された当該情報が表わす教示点の姿勢を示す教示点姿勢情報を入力する姿勢入力画面を仮想空間表示領域ＶＳに表示された仮想空間Ｖに重ねて表示させる。図６に示した例では、表示制御部３６１は、円ＴＰ５を仮想空間表示領域ＶＳに表示させた後、姿勢入力画面Ｇ２を仮想空間表示領域ＶＳに表示された仮想空間Ｖに重ねて表示させている。ユーザーは、姿勢入力画面Ｇ２を用いて、所望の姿勢を円ＴＰ５が表わす教示点に対応付けることができる。すなわち、表示制御部３６１は、姿勢入力画面Ｇ２から受け付けられた教示点姿勢情報を、円ＴＰ５が表わす教示点に対応付ける。表示制御部３６１は、ユーザーにより姿勢入力画面Ｇ２に教示点姿勢情報が入力された後、姿勢入力画面Ｇ２を仮想空間表示領域ＶＳから削除する。例えば、表示制御部３６１は、姿勢入力画面Ｇ２を所定の時間内において２回タップされた場合、姿勢入力画面Ｇ２への教示点姿勢情報の入力が終了したと判定する。所定の時間は、例えば、１秒程度である。なお、所定の時間は、他の時間であってもよい。
【００８７】
ボタンＢ０は、教示点の追加（仮想空間Ｖ内に教示点を表す情報の追加）を終了させるボタンである。ユーザーがボタンＢ０をタップした場合、表示制御部３６１は、ユーザーによる教示点の追加が終了したと判定する。表示制御部３６１は、当該追加が終了したと判定した場合、図８に示す付加情報入力画面Ｇ３を仮想空間表示領域ＶＳに重ねて表示させる。図８は、付加情報入力画面Ｇ３が表示された状態の教示画面Ｇ１の一例を示す図である。
【００８８】
付加情報入力画面Ｇ３には、最小曲率情報入力欄ＧＰ１と、付加情報入力欄ＧＰ２と、ボタンＢ４が含まれている。
【００８９】
最小曲率情報入力欄ＧＰ１は、最小曲率情報を入力する欄である。最小曲率情報は、この一例において、表示制御部３６１が生成した教示点に基づいて軌跡生成部３６３が生成する仮軌跡に含まれる曲線の最小曲率を指定する情報のことである。この一例において、曲率は、曲率半径によって表される。従って、ユーザーは、最小曲率情報として当該曲線の最小曲率半径を最小曲率情報入力欄ＧＰ１から入力することができる。最小曲率情報は、第２情報の一例である。
【００９０】
付加情報入力欄ＧＰ２は、付加情報を入力する欄である。付加情報には、この一例において、表示制御部３６１が特定した教示点に対応付ける教示点高さ情報と、教示点速さ情報と、教示点把持力情報との３つの情報が含まれる。教示点高さ情報は、教示点に対応付ける教示点位置情報のうちのロボット座標系ＲＣのＺ軸方向の位置を示す情報である。なお、付加情報には、これらに加えて、他の情報が含まれる構成であってもよい。付加情報入力欄ＧＰ２には、表示制御部３６１が生成した教示点を識別する教示点ＩＤが予め表示されている。ユーザーは、教示点高さ情報と教示点速さ情報と教示点把持力情報とを付加情報入力欄ＧＰ２から入力することができる。教示点速さ情報と教示点把持力情報とのそれぞれは、第３情報の一例である。
【００９１】
ボタンＢ４は、最小曲率情報入力欄ＧＰ１と付加情報入力欄ＧＰ２のそれぞれからのユーザーによる情報の入力を終了させるボタンである。ユーザーがボタンＢ４をタップした場合、表示制御部３６１は、ユーザーにより最小曲率情報入力欄ＧＰ１に入力された最小曲率情報を記憶部３２に記憶させる。また、表示制御部３６１は、付加情報入力欄ＧＰ２に入力された教示点高さ情報と教示点速さ情報と教示点把持力情報とを、それぞれに対応付けられた教示点ＩＤが示す教示点に対応付ける。そして、表示制御部３６１は、付加情報入力画面Ｇ３を削除する。
【００９２】
図６及び図７に戻る。ボタンＢ１は、表示制御部３６１が生成した教示点に基づいて経由点軌跡を生成させ、生成された経由点軌跡を仮想空間表示領域ＶＳに表示させるボタンである。ボタンＢ１がユーザーによりタップされた場合、軌跡生成部３６３は、表示制御部３６１が生成した教示点と、記憶部３２に記憶された最小曲率情報とに基づいて、仮軌跡を生成する。具体的には、軌跡生成部３６３は、最小曲率情報が示す最小曲率半径以上の曲線を有するベジェ曲線であって各教示点を各教示点の順番の順に通るベジェ曲線を、表示制御部３６１が生成した各教示点に基づいて仮軌跡として生成（算出）する。
【００９３】
軌跡生成部３６３が仮軌跡を生成した後、経由点生成部３６４は、所定の条件に基づいて、仮軌跡上において各経由点が等間隔に離れて位置するように所定の数Ｎの経由点を生成する。図９は、軌跡生成部３６３が仮軌跡に基づいて生成した経由点を経由点の位置に基づいて教示画面Ｇ１に重ねた場合のイメージ図である。図９に示した点線であって円ＴＰ１〜円ＴＰ５のそれぞれが表わす教示点を通過する点線が有する点Ｐ１〜点ＰＮは、所定の数Ｎの経由点のそれぞれを表す情報である。なお、図９に示した点Ｐ１〜点ＰＮは、図の簡略化のため、この一例における所定の数Ｎである１００よりも少なく描かれている。
【００９４】
仮軌跡を生成した後、経由点生成部３６４は、生成した各経由点のうちの一致点ではない経由点の姿勢を、各教示点の姿勢に基づいて算出する。経由点生成部３６４は、当該経由点のそれぞれについて算出した姿勢を、当該経由点のそれぞれに対応付ける。また、経由点生成部３６４は、当該経由点の速さを、各一致点の速さに基づいて算出する。経由点生成部３６４は、当該経由点のそれぞれについて算出した速さを、当該経由点のそれぞれに対応付ける。また、経由点生成部３６４は、当該経由点の把持力を、各一致点の把持力に基づいて算出する。経由点生成部３６４は、当該経由点のそれぞれについて算出した把持力を、当該経由点のそれぞれに対応付ける。また、経由点生成部３６４は、生成した各経由点の順番を、各一致点の順番に基づいて算出する。経由点生成部３６４は、当該経由点のそれぞれについて算出した順番を、当該経由点のそれぞれに対応付ける。経由点生成部３６４は、このようにして経由点位置情報、経由点姿勢情報、経由点順番情報、経由点速さ情報、経由点把持力情報のそれぞれが対応付けられた経由点を生成する。そして、経由点情報出力部３６８は、生成した当該経由点に基づいて経由点情報を生成する。
【００９５】
経由点生成部３６４が経由点情報を生成した後、表示制御部３６１は、当該経由点情報に基づいて、当該経由点情報が示す各経由点を各経由点の順番の順に線で結ぶことによって経由点軌跡を算出する。表示制御部３６１は、当該各経由点の位置に基づいて、算出した経由点軌跡を仮想空間表示領域ＶＳに表示させる。図１０は、仮想空間表示領域ＶＳに経由点軌跡が表示された状態の教示画面Ｇ１の一例を示す図である。図１０に示したように、表示制御部３６１は、経由点軌跡Ｌ１を仮想空間表示領域ＶＳに表示させる。これにより、情報処理装置３０は、ユーザーが入力した各教示点に基づいてロボット２０を動作させる場合に、ロボット２０がケーブルＣを引き回す軌跡をユーザーに対して視覚的に提供することができる。
【００９６】
ボタンＢ２は、経由点生成部３６４が生成した経由点に基づいたシミュレーションを実行させるボタンである。ボタンＢ２がユーザーによりタップされた場合、シミュレーション部３６５は、当該シミュレーションを実行する。そして、シミュレーション部３６５は、実行したシミュレーションの結果（シミュレーション結果）の動画を表示制御部３６１により仮想空間表示領域ＶＳに表示させる。図１１は、シミュレーション部３６５が実行したシミュレーションの結果が仮想空間表示領域ＶＳに表示された状態の教示画面Ｇ１の一例を示す図である。
【００９７】
シミュレーション部３６５が実行したシミュレーションにおいて、端部ＶＣ１を把持したエンドエフェクターＶＥは、図１１に示した矢印が示す経路ＡＲ２に沿ってケーブルＶＣを引き回す。ケーブルＶＣは、仮想空間Ｖ内における仮想的なケーブルＣである。端部ＶＣ１は、仮想空間Ｖ内における仮想的な端部Ｃ１である。エンドエフェクターＶＥは、仮想空間Ｖ内における仮想的なエンドエフェクターＥである。経路ＡＲ２は、経由点生成部３６４が生成した経由点軌跡に沿った経路である。
【００９８】
表示制御部３６１は、シミュレーション部３６５からの要求に応じて、シミュレーション部３６５が実行したシミュレーションの結果として、仮想空間表示領域ＶＳに表示された仮想空間Ｖ内において制御点ＶＴ１が経路ＡＲ２に沿って移動することによってエンドエフェクターＥがケーブルＶＣを引き回している様子の動画を仮想空間表示領域ＶＳに表示させる。これにより、情報処理装置３０は、ユーザーが入力した各教示点に基づいてロボット２０を動作させる場合に、ロボット２０がケーブルＣを引き回す様子を、実際にロボット２０を動かすことなくユーザーに対して視覚的に提供することができる。なお、図１１では、図の簡略化のため、仮想空間表示領域ＶＳに表示された仮想空間内における仮想的なロボット２０のうちのエンドエフェクターＶＥのみを描いており、エンドエフェクターＶＥ以外の当該仮想的なロボット２０の他の部位を省略している。
【００９９】
また、シミュレーション部３６５は、実行したシミュレーションにおいて、エンドエフェクターＶＥを含む仮想的なアームＡであるアームＶＡが突起部ＶＯ１〜突起部ＶＯ３等の他の物体に干渉（接触）するか否かを判定する。また、シミュレーション部３６５は、当該シミュレーションにおいて、アームＶＡと他の物体との干渉が生じた場合、表示制御部３６１により図１２に示したように当該干渉が生じた位置を示す情報を仮想空間表示領域ＶＳに表示させる。図１２は、アームＶＡと他の物体との干渉が生じた位置を示す情報が表示された状態の教示画面Ｇ１の一例を示す図である。
【０１００】
図１２には、アームＶＡと突起部ＶＯ２との干渉が生じた場合の例を示している。このような干渉が生じた場合、経由点生成部３６４は、干渉が生じたタイミングにおいてアームＶＡの制御点ＶＴ１の位置であって図１０に示した経由点軌跡Ｌ１上の位置である干渉位置を検出する。経由点生成部３６４は、検出した干渉位置が、経由点生成部３６４が生成した経由点の位置と一致している場合、干渉位置と位置が一致している経由点を干渉経由点として特定する。
【０１０１】
また、経由点生成部３６４は、検出した干渉位置が、経由点生成部３６４が生成した経由点の位置と一致していない場合、干渉位置に新たな経由点を干渉経由点として生成する。そして、経由点生成部３６４は、生成した干渉経由点に干渉位置を示す経由点位置情報を対応付ける。また、経由点生成部３６４は、生成した干渉経由点の順番を、経由点軌跡Ｌ１上において干渉経由点に隣接する２つの経由点のそれぞれの順番に基づいて算出する。例えば、経由点生成部３６４は、当該２つの経由点のそれぞれの順番が、１５番目と１６番目であった場合、これらを足して２で除した順番である１５．５番目を、干渉経由点の順番として算出する。経由点生成部３６４は、算出した当該順番を示す経由点順番情報を、生成した干渉経由点に対応付ける。また、経由点生成部３６４は、当該２つの経由点のそれぞれの速さに基づいて、生成した干渉経由点の速さを算出する。当該干渉経由点の速さを算出する方法は、２つの一致点の間に含まれる経由点の速さを算出する方法と同じ方法であるため説明を省略する。経由点生成部３６４は、算出した干渉経由点の速さを示す経由点速さ情報を、生成した干渉経由点に対応付ける。また、経由点生成部３６４は、当該２つの経由点のそれぞれの把持力に基づいて、生成した干渉経由点の把持力を算出する。当該干渉経由点の把持力を算出する方法は、２つの一致点の間に含まれる経由点の把持力を算出する方法と同じ方法であるため説明を省略する。経由点生成部３６４は、算出した干渉経由点の把持力を示す経由点把持力情報を、生成した干渉経由点に対応付ける。
【０１０２】
また、表示制御部３６１は、特定又は生成した干渉経由点の位置（すなわち、干渉位置）を示す情報として、干渉警告画面Ｇ４を仮想空間表示領域ＶＳに表示させる。干渉警告画面Ｇ４は、アームＶＡと突起部ＶＯ２との干渉が生じたことを警告するメッセージを表示する画面であり、更にユーザーに干渉経由点に対応付ける経由点姿勢情報を入力させる画面である。干渉警告画面Ｇ４は、突出部を有する。当該突出部は、干渉警告画面Ｇ４のうちの当該メッセージを表示する部分から干渉経由点の位置まで伸びており、干渉経由点の位置を指し示す。なお、表示制御部３６１は、当該突起部を有さない干渉警告画面Ｇ４を仮想空間表示領域ＶＳに表示させる構成であってもよい。この場合、表示制御部３６１は、干渉警告画面Ｇ４とともに、干渉経由点の位置を表す情報を表示させる。例えば、表示制御部３６１は、干渉経由点の位置の色を干渉経由点の周囲の色と異なる色に変化させてもよく、星印等の印を干渉経由点の位置に表示させてもよい。
【０１０３】
干渉警告画面Ｇ４には、アームＶＡと突起部ＶＯ２との干渉が生じたことを警告するメッセージに加えて、干渉回避姿勢入力欄ＧＰ３が含まれる。
干渉回避姿勢入力欄ＧＰ３は、ユーザーに干渉経由点に対応付ける経由点姿勢情報を入力させる欄である。ユーザーにより干渉回避姿勢入力欄ＧＰ３に当該経由点姿勢情報が入力された場合、経由点生成部３６４は、入力された経由点姿勢情報を干渉経由点に対応付ける。当該干渉経由点が、経由点生成部３６４により特定された干渉経由点であった場合、経由点生成部３６４は、干渉経由点に対応付けられた経由点姿勢情報を、干渉回避姿勢入力欄ＧＰ３からユーザーにより入力された経由点姿勢情報に対応付けし直す。これにより、ユーザーは、干渉経由点における制御点ＶＴ１の姿勢を、アームＶＡと突起部ＶＯ２との干渉が生じない姿勢に変更することができる。そして、表示制御部３６１は、経由点生成部３６４が当該姿勢を示す経由点姿勢情報を干渉経由点に対応付けた後、干渉警告画面Ｇ４を削除する。
【０１０４】
図６及び図７に戻る。ボタンＢ３は、経由点生成部３６４が生成した経由点情報を制御装置４０に出力させるボタンである。ボタンＢ３がユーザーによりタップされた場合、経由点情報出力部３６８は、通信部３４に現在の経由点情報を制御装置４０へ出力させる。
【０１０５】
以上のように、情報処理装置３０は、経由点の数に比べて数が少ない教示点をユーザーにより教示（入力）されることによって経由点を生成し、生成した経由点に基づく経由点情報を制御装置４０に出力することができる。その結果、情報処理装置３０は、ユーザーが経由点を制御装置４０に教示する作業の時間を短縮することができ、当該作業に関する時間的コストや人的コストの増大を抑制することができる。
【０１０６】
＜制御装置がロボットに所定の作業を行わせる処理＞
以下、図１３を参照し、制御装置４０がロボット２０に所定の作業を行わせる処理について説明する。図１３は、制御装置４０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。図１３に示したフローチャートでは、情報処理装置３０から制御装置４０に経由点情報が出力された後の処理について説明する。
【０１０７】
経由点情報取得部４６４は、情報処理装置３０から経由点情報を取得する（ステップＳ２１０）。経由点情報取得部４６４は、取得した経由点情報を記憶部４２に記憶させる。次に、ロボット制御部４６６は、ステップＳ２１０において経由点情報取得部４６４が記憶部４２に記憶させた経由点情報を記憶部４２から読み出す。そして、ロボット制御部４６６は、読み出した経由点情報に基づいてロボット２０に所定の作業を行わせ（ステップＳ２２０）、処理を終了する。
【０１０８】
具体的には、ロボット制御部４６６は、経由点情報が示す各経由点に、各経由点の順番の順に制御点Ｔ１を一致させる。また、ロボット制御部４６６は、各経由点の速さに基づいて制御点Ｔ１を移動させる。また、ロボット制御部４６６は、各経由点の把持力に基づいて、エンドエフェクターＥにケーブルＣを把持させる。また、ロボット制御部４６６は、力検出情報取得部４６３が取得した力検出情報に基づく制御によってロボット２０を動作させる。例えば、エンドエフェクターＥに所定の閾値を超える力が加わった場合、すなわちケーブルＣに所定の閾値を超える張力が加わった場合、ロボット制御部４６６は、ケーブルＣに加わった張力が所定の閾値未満となるように制御点Ｔ１を移動させる速さを所定の割合低下させる。これにより、ロボット制御部４６６は、ケーブルＣに加わった張力を変化させる。所定の閾値は、例えば、ケーブルＣの少なくとも一部が破断する力である。なお、所定の閾値は、これに代えて、他の閾値であってもよい。所定の割合は、例えば、２０％である。なお、所定の割合は、これに代えて、他の割合であってもよい。なお、当該場合、ロボット制御部４６６は、ロボット２０の動作を停止させ、ケーブルＣに所定の閾値を超える張力が加わったことを示す情報を表示制御部３６１により表示部４５に表示させる構成であってもよい。また、ロボット制御部４６６は、ケーブルＣに加わった張力が所定の閾値未満となるように、生成した軌道を変更する構成であってもよい。
【０１０９】
このように、制御装置４０は、情報処理装置３０から取得した経由点情報に基づいて、ロボット２０に線状物体を引き回す作業を行わせる。これにより、制御装置４０は、線状物体を引き回す作業を容易に行うことができる。また、制御装置４０は、ロボット２０に線状物体を引き回させるため、引き回された線状物体の状態をばらつかせずに一定の品質を保つことができる。その結果、制御装置４０は、当該状態がばらついてしまうことによる不具合が生じる可能性を抑制することができる。
なお、上記の説明において仮想空間Ｖ内に含まれる第１物体Ｏや仮想的なロボット２０等のすべては、モデルである。モデルは、例えば、ＣＧ（Computer  Graphics）である。当該ＣＧは、例えば、三次元ＣＧであってもよく、二次元ＣＧであってもよい。三次元ＣＧは、例えば、ポリゴンデータの集合として表される。
【０１１０】
また、上記において説明した例では、ロボット２０がエンドエフェクターＥの指部によってケーブルＣを把持する場合について説明したが、ケーブルＣは、エンドエフェクターＥが把持したツールであってケーブルＣを把持可能なツールによって把持される構成であってもよく、エンドエフェクターＥに設けられた当該ツールによって把持される構成であってもよい。これらの場合、制御点Ｔ１の位置は、当該ツールの端部のうちのエンドエフェクターＥ側と反対側の端部に対応付けられた位置に設定される。当該位置は、例えば、当該ツールの当該端部の位置である。
【０１１１】
＜ロボットがケーブルの端部と異なる部位を把持している場合の例＞
以下、図を参照し、ロボット２０がケーブルＣの端部Ｃ１と異なる部位を把持している場合にロボットシステム１において行われる処理の例について説明する。図１４は、ロボット２０がケーブルＣの端部Ｃ１と異なる部位を把持している場合におけるロボットシステム１の構成の一例を示す図である。
【０１１２】
図１４では、ケーブルＣの端部のうちの端部Ｃ１と反対側の端部である端部Ｃ２は、物体ＯＸに接続されている。物体ＯＸは、例えば、ケーブルＣを介した通信や給電を行う装置である。図１４に示した例では、物体ＯＸは、直方体形状の物体として表されている。物体ＯＸは、この一例において、床面から動かないように床面に設置（固定）されており、ロボット２０がエンドエフェクターＥによってケーブルＣを引っ張った場合であっても、物体ＯＸが動くことはない。なお、物体ＯＸの形状は、他の形状であってもよい。
【０１１３】
この一例において、ロボット２０は、エンドエフェクターＥによってケーブルＣの部位のうちの端部Ｃ１と端部Ｃ２の間の部位Ｃ３を把持している。換言すると、ロボット２０は、エンドエフェクターＥによってケーブルＣの部位のうち端部Ｃ１又は端部Ｃ２から所定の長さだけ離れた部位Ｃ３を把持している。所定の長さは、例えば、１メートルである。なお、所定の長さは、他の長さであってもよい。
【０１１４】
図１４に示したような状況において、例えば、ロボット２０がエンドエフェクターＥによってケーブルＣを引き回した場合、端部Ｃ２が物体ＯＸに接続されているため、端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わることがある。所定の力は、ケーブルＣの部位のうちの当該力が加わった部位の少なくとも一部が破断する力である。なお、所定の力は、これに代えて、他の力であってもよい。
【０１１５】
また、ロボット２０がエンドエフェクターＥによってケーブルＣを引き回した場合、突起部Ｏ１〜突起部Ｏ３のうちの少なくとも１つにケーブルＣが引っ掛かり、引っ掛かった箇所からケーブルＣが動かなくなることがある。このような場合も、ケーブルＣの一部に所定の力以上の張力が加わることがある。
【０１１６】
これらのようにケーブルＣの一部に所定の力以上の張力が加わることを抑制するため、この一例におけるロボット２０は、エンドエフェクターＥによってケーブルＣを引き回す軌跡の少なくとも一部において、エンドエフェクターＥによってケーブルＣを把持している把持力を所定の手繰り把持力に変更する。所定の手繰り把持力は、この一例において、エンドエフェクターＥの指部によってケーブルＣを把持している際、ケーブルＣの自重によって当該指部からケーブルＣが滑り落ちない程度の力である。すなわち、所定の手繰り把持力によってケーブルＣを把持したエンドエフェクターＥがケーブルＣを引き回している際において、端部Ｃ２と部位Ｃ３の間にケーブルＣの自重よりも大きな張力が加わった場合、ケーブルＣは、エンドエフェクターＥの指部に対して滑り、当該指部と部位Ｃ３との相対的な位置が変化する。以下では、このように当該指部においてケーブルＣを滑らせながらケーブルＣを引き回す動作を、手繰り動作と称して説明する。
【０１１７】
すなわち、この一例におけるロボット２０は、初期状態において部位Ｃ３を把持しているが、ケーブルＣを引き回す作業における動作において手繰り動作を含み、エンドエフェクターＥの指部に対してケーブルＣを滑らせながら第１物体ＯにケーブルＣを引き回す。これにより、ロボット２０は、ケーブルＣを破断させることなくケーブルＣを引き回す作業を行うことができる。
【０１１８】
なお、ユーザーは、端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わる位置を、ユーザーにより予め行われた実験や、第１物体Ｏ及びケーブルＣの形状等によって特定することができる。そのため、ユーザーは、この一例において、情報処理装置３０が表示した教示画面から所望の経由点に対して所定の手繰り把持力を示す経由点把持力情報を対応付けることができる。この一例では、教示画面においてユーザーにより行われる操作に基づいて情報処理装置３０が経由点の把持力を所定の手繰り把持力に変更する処理について詳しく説明する。
【０１１９】
＜教示画面においてユーザーにより行われる操作に基づいて情報処理装置が行う処理２＞
以下、図１５を参照し、教示画面Ｇ１においてユーザーにより行われる操作に基づいて情報処理装置３０が経由点の把持力を所定の手繰り把持力に変更する処理について説明する。図１５は、教示画面Ｇ１の仮想空間表示領域ＶＳに経由点軌跡が表示された状態においてユーザーが経由点の把持力を手繰り把持力に変更している様子の一例を示す図である。
【０１２０】
図１５に示したように、ユーザーは、例えば、仮想空間表示領域ＶＳ上においてピンチアウトを行うことによって選択範囲Ｒ１を仮想空間表示領域ＶＳに表示させることができる。表示制御部３６１は、仮想空間表示領域ＶＳ上においてユーザーによりピンチアウトが行われた場合、ピンチアウトにおける２本の指の間の間隔を対角線の距離として有する長方形の選択範囲Ｒ１を仮想空間表示領域ＶＳに表示させる。
【０１２１】
経由点生成部３６４は、選択範囲Ｒ１の内側に経由点軌跡Ｌ１のうちの少なくとも一部が含まれていた場合、当該一部に含まれる経由点を、所定の手繰り把持力を示す経由点把持力情報を対応付ける経由点として特定（選択）する。そして、経由点生成部３６４は、特定した経由点のそれぞれの把持力を所定の手繰り把持力とするため、当該経由点に対応付けられている経由点把持力情報を、所定の手繰り把持力を示す経由点把持力情報に対応付けし直す。これにより、情報処理装置３０は、制御点Ｔ１を一致させる経由点の中から、エンドエフェクターＥに手繰り動作を行わせる範囲に含まれる経由点を指定することができ、手繰り動作を含む所定の作業を容易にロボット２０に行わせることができる。
【０１２２】
なお、経由点生成部３６４は、選択範囲Ｒ１の内側に経由点軌跡Ｌ１のうちの少なくとも一部が含まれていた場合、当該一部に含まれる経由点に、当該経由点に予め対応付けられている経由点把持力情報である第１経由点把持力情報に加えて、第２経由点把持力情報を対応付ける構成であってもよい。この場合、当該一部に含まれる経由点には、２つの経由点把持力情報が対応付けられることになる。そして、制御装置４０は、当該一部に含まれる経由点のいずれかと制御点Ｔ１が一致している場合において、力検出情報取得部４６３が取得した力検出情報に基づいてエンドエフェクターＥに所定の力以上の力が加わったと判定した場合、エンドエフェクターＥによってケーブルＣを把持する把持力を第２経由点把持力情報が示す所定の手繰り把持力に変更する。このようにすることで、例えば、選択範囲Ｒ１の内側に経由点軌跡Ｌ１の全体を含ませておくことにより、制御装置４０は、端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わる位置を予め特定していない場合であっても、手繰り動作を含む所定の作業を容易にロボット２０に行わせることができる。
【０１２３】
＜ロボットが再把持動作を含む所定の作業を行う場合に制御装置が行う処理＞
ロボット２０は、ケーブルＣに所定の力以上の張力が加わった場合、エンドエフェクターＥがケーブルＣを把持する把持力を所定の手繰り把持力に変更する構成に代えて、再把持動作を行う構成であってもよい。再把持動作は、ケーブルＣの部位のうちの現在エンドエフェクターＥが把持しているケーブルＣの部位と異なる部位をエンドエフェクターＥが把持し直す動作のことである。以下、図１６を参照し、制御装置４０が再把持動作を含む所定の作業をロボット２０に行わせる処理について説明する。
【０１２４】
図１６は、再把持動作を含む所定の作業をロボット２０に行わせる際のロボットシステム１の構成の一例を示す図である。図１６に示したロボットシステム１の構成のうちのケーブルＣを除いた構成は、図１４に示したロボットシステム１の構成と同様であるため、説明を省略する。図１６に示したケーブルＣは、端部Ｃ１と部位Ｃ３との間にマーカーＭＫが設けられている。マーカーＭＫは、再把持動作においてロボット２０がエンドエフェクターＥの指部によって把持する位置を示す印である。なお、当該印は、ケーブルＣの一部であってもよい。
【０１２５】
ロボット制御部４６６は、経由点情報取得部４６４が情報処理装置３０から取得した経由点情報に基づいて、ロボット２０に所定の動作を行わせる。この際、ロボット制御部４６６は、力検出情報取得部４６３が取得した力検出情報に基づく制御によってロボット２０に所定の動作を行わせる。
【０１２６】
具体的には、ロボット制御部４６６は、当該力検出情報に基づいてケーブルＣの端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わったか否かを判定する。ロボット制御部４６６は、当該力検出情報に基づいてエンドエフェクターＥに所定の力以上の力が加わったと判定した場合、当該間に当該張力が加わったと判定する。一方、ロボット制御部４６６は、当該力検出情報に基づいてエンドエフェクターＥに所定の力未満の力が加わったと判定した場合、当該間に当該張力が加わっていないと判定する。
【０１２７】
ロボット制御部４６６は、ケーブルＣの端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わったと判定した場合、制御点Ｔ１の移動を停止させる。また、当該場合、ロボット制御部４６６は、当該間に当該張力が加わったと判定したタイミングに応じた経由点を特定（検出）する。当該タイミングに応じた経由点は、例えば、当該タイミングの直前に制御点Ｔ１が一致していた経由点である。なお、当該タイミングに応じた経由点は、これに代えて、当該タイミングにおいて制御点Ｔ１が一致していた経由点等の当該タイミングに応じた他の経由点であってもよい。ロボット制御部４６６は、特定した経由点であって当該タイミングに応じた経由点を記憶する。また、当該場合、撮像制御部４６１は、撮像制御部４６１により撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。そして、画像取得部４６２は、撮像部１０が撮像した撮像画像を取得する。
【０１２８】
位置検出部４６５は、画像取得部４６２が取得した撮像画像に基づいて、撮像画像に含まれるマーカーＭＫが示す位置を検出する。ロボット制御部４６６は、エンドエフェクターＥの指部を開いてエンドエフェクターＥにケーブルＣを離させる。その後、ロボット制御部４６６は、位置検出部４６５が検出したマーカーＭＫが示す位置に基づいてエンドエフェクターＥを移動させ、当該位置をエンドエフェクターＥの指部によって把持させる。
【０１２９】
その後、ロボット制御部４６６は、記憶した経由点であってケーブルＣの端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わったと判定したタイミングに応じた経由点に基づいて、当該経由点の順番の次の順番の経由点から順に、制御点Ｔ１がまだ一致していない残りの経由点に制御点Ｔ１を一致させていくことにより、ロボット２０に所定の作業の続きを行わせる。
【０１３０】
このように、制御装置４０は、再把持動作を含む所定の作業をロボット２０に行わせる。これにより、制御装置４０は、例えば、ケーブルＣが何らかの理由によって引っ掛かって引っ張れなくなる場合や、制御点Ｔ１の姿勢を変化させる際にアームＡの一部が他の物体又はアームＡ自身と干渉してしまう場合等であっても、ケーブルＣを持ち直す、すなわち再把持動作を行うことによって所定の作業をロボット２０に完遂させることができる。
【０１３１】
なお、位置検出部４６５は、画像取得部４６２が取得した撮像画像に基づいて、撮像画像に含まれるマーカーＭＫの位置及び姿勢を検出する構成であってもよい。この場合、ロボット制御部４６６は、位置検出部４６５が検出した当該位置及び姿勢に基づいてエンドエフェクターＥを移動させ、当該位置をエンドエフェクターＥの指部によって把持させる。
【０１３２】
また、ロボット制御部４６６は、ケーブルＣの端部Ｃ２と部位Ｃ３との間に所定の力以上の張力が加わったと判定した場合に制御点Ｔ１の移動を停止させて再把持動作を開始する構成に代えて、ユーザーにより予め指定された経由点と制御点Ｔ１とが一致した場合に再把持動作を開始する構成であってもよい。この場合、情報処理装置３０は、教示画面Ｇ１において再把持動作を開始させたい所望の経由点をユーザーに選択させる。そして、情報処理装置３０は、ユーザーにより選択された経由点に再把持動作を開始させることを示す情報を対応付ける。当該情報は、第４情報の一例である。制御装置４０は、当該情報が対応付けられた経由点を含む経由点情報を情報処理装置３０から取得し、取得した経由点情報に基づいてロボット２０に再把持動作を含む所定の作業を行わせる。制御装置４０は、当該経由点情報に基づいて各経由点の順番に応じて各経由点に制御点Ｔ１を一致させていき、当該情報が対応付けられた経由点と制御点Ｔ１とが一致した場合、制御点Ｔ１の移動を停止させる。その後、ロボット制御部４６６は、上記において説明した通り、撮像制御部４６１が撮像部１０に撮像させた撮像画像に基づいて位置検出部４６５が検出したマーカーＭＫが示す位置に基づいて、再把持動作を行う。
【０１３３】
以上説明したように、本実施形態における制御装置４０は、第１物体（この一例において、第１物体Ｏ）に線状物体（この一例において、ケーブルＣ）を引き回すための位置及び順番に関する第１情報（この一例において、経由点位置情報及び経由点順番情報）に基づいてロボット２０を制御する。これにより、制御装置４０は、線状物体を引き回す作業を容易に行うことができる。
【０１３４】
また、制御装置４０は、表示部（この一例において、表示部３５）に表示された撮像画像に基づいて受け付けられた第１情報に基づいてロボット２０を制御する。これにより、制御装置４０は、表示部に表示された画像に基づいて受け付けられた第１情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１３５】
また、制御装置４０は、表示部に表示されたモデルに基づいて受け付けられた第１情報に基づいてロボット２０を制御する。これにより、制御装置４０は、表示部に表示されたモデルに基づいて受け付けられた第１情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１３６】
また、制御装置４０は、第１情報に基づいて生成されたロボット２０の軌跡（この一例において、仮軌跡又は経由点軌跡Ｌ１）に基づいてロボット２０を制御する。これにより、制御装置４０は、第１情報に基づいて生成されたロボットの軌跡に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１３７】
また、制御装置４０は、第１情報及び第２情報（この一例において、最小曲率情報）に基づいてロボット２０を制御する。これにより、制御装置４０は、第１情報及び第２情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１３８】
また、制御装置４０は、第１情報及び第３情報（この一例において、経由点把持力情報）に基づいてロボット２０を制御する。これにより、制御装置４０は、第１情報及び第３情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１３９】
また、制御装置４０は、第１情報及び第４情報（この一例において、マーカーＭＫが示す位置）に基づいてロボット２０を制御する。これにより、制御装置４０は、第１情報及び第４情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１４０】
また、制御装置４０は、力検出部（力検出部２１）の出力（この一例において、力検出情報）に基づいて、線状物体の張力を変化させる。これにより、制御装置４０は、第１情報及び力検出部の出力に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１４１】
また、制御装置４０は、表示部に表示されたロボット（この一例において、仮想的なロボット２０）と第１物体との干渉位置に基づいてロボット２０を制御する。これにより、制御装置４０は、第１情報、及びロボット２０と第１物体との干渉位置に基づいて、線状物体を引き回す作業を容易に行うことができる。
【０１４２】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１４３】
また、以上に説明した装置（例えば、情報処理装置３０や制御装置４０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４４】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１４５】
１…ロボットシステム、１０…撮像部、２０…ロボット、２１…力検出部、３０…情報処理装置、３１、４１…ＣＰＵ、３２、４２…記憶部、３３、４３…入力受付部、３４、４４…通信部、３５、４５…表示部、３６、４６…制御部、４０…制御装置、３６１…表示制御部、３６３…軌跡生成部、３６４…経由点生成部、３６５…シミュレーション部、３６６…撮像制御部、３６７…画像取得部、３６８…経由点情報出力部、４６１…撮像制御部、４６２…画像取得部、４６３…力検出情報取得部、４６４…経由点情報取得部、４６５…位置検出部、４６６…ロボット制御部
【図１】
2017148908.tif 000003
【図２】
2017148908.tif 000004
【図３】
2017148908.tif 000005
【図４】
2017148908.tif 000006
【図５】
2017148908.tif 000007
【図６】
2017148908.tif 000008
【図７】
2017148908.tif 000009
【図８】
2017148908.tif 000010
【図９】
2017148908.tif 000011
【図１０】
2017148908.tif 000012
【図１１】
2017148908.tif 000013
【図１２】
2017148908.tif 000014
【図１３】
2017148908.tif 000015
【図１４】
2017148908.tif 000016
【図１５】
2017148908.tif 000017
【図１６】
2017148908.tif 000018