(57)【要約】【課題】ロボットに行わせる作業の精度、効率のうちのいずれか一方又は両方を向上させることができる制御装置を提供すること。【解決手段】ロボットアームに設けられたエンドエフェクターによって対象物に所定の作業を行うロボットを制御する制御装置であって、教示された、前記エンドエフェクターの所定の部位が通過する第１位置と、教示された、前記対象物に前記作業を始める第２位置と、前記第１位置と前記第２位置との間に位置し、前記対象物に対する前記エンドエフェクターの速度が一定となる第３位置と、を含む画像を表示させる表示信号を出力する表示制御部、を備える、制御装置。【選択図】図６
2019188542.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームに設けられたエンドエフェクターによって対象物に所定の作業を行うロボットを制御する制御装置であって、
教示された、前記エンドエフェクターの所定の部位が通過する第１位置と、
教示された、前記対象物に前記作業を始める第２位置と、
前記第１位置と前記第２位置との間に位置し、前記対象物に対する前記エンドエフェクターの速度が一定となる第３位置と、
を含む第１画像を表示させる表示信号を出力する表示制御部、を備える、
制御装置。
【請求項２】
前記表示制御部は、前記第１画像に前記対象物の第２画像を重畳させる、
請求項１に記載の制御装置。
【請求項３】
前記表示制御部は、前記第１位置から前記第３位置を経由して描かれる線を前記第１画像に重畳させる、
請求項１又は２に記載の制御装置。
【請求項４】
請求項１から３のうちいずれか一項に記載の制御装置により前記ロボットとして制御される、
ロボット。
【請求項５】
請求項１から３のうちいずれか一項に記載の制御装置と、
前記ロボットと、
を備えるロボットシステム。
【請求項６】
ロボットアームに設けられたエンドエフェクターによって対象物に所定の作業を行うロボットを制御する制御装置であって、
プロセッサーを備え、
前記プロセッサーは、
教示された、前記エンドエフェクターの所定の部位が通過する第１位置と、
教示された、前記対象物に前記作業を始める第２位置と、
前記第１位置と前記第２位置との間に位置し、前記対象物に対する前記エンドエフェクターの速度が一定となる第３位置と、
を含む画像を表示させる表示信号を出力する、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットを制御する制御装置についての研究、開発が行われている。
【０００３】
これに関し、ロボットによる作業内容を記述したロボットプログラムを表示するロボット言語処理装置において、グラフィカル表示が可能な表示画面を有する表示手段と、ロボットの時系列的な空間位置と空間位置間の区間での補間種別と当該区間毎にその区間が作業区間であるかエアカット区間であるかの別とを記述する移動命令群を含むロボットプログラムを格納する格納手段と、格納手段に格納されたロボットプログラムを参照して解読し、各空間位置間を補間種別に応じて補間することにより移動命令群に対応する線群を求め、任意の視点から見た表示画面上の座標に線群を変換して表示画面上にグラフィカルに表示し、指示が入力した場合には、変換後の線群のうち作業区間に対応する線のみを表示画面上に表示する処理手段と、を有するロボット言語処理装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２９１１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のエアカット区間は、換言すると、ロボットが等速で動作する部分区間を含む区間のことである。すなわち、特許文献１に記載されたロボット言語処理装置は、複数の区間のそれぞれについて、ロボットが等速で動作する区間を含むエアカット区間と作業区間とのいずれであるかをグラフィカルに表示する。
【０００６】
ここで、ロボットが等速で動作している最中にロボットに作業を行わせることによって、ロボットに均質な作業を行わせることができる。例えば、ロボットが等速で動作している最中にロボットに溶接を行わせることによって、ムラのない溶接をロボットに行わせることができる。また、例えば、ロボットが等速で動作している最中に接着剤やグリース等の吐出物の塗布をロボットに行わせることによって、ムラのない吐出物の塗布をロボットに行わせることができる。一方、ユーザーは、ロボットの動作を見ることによってロボットが等速で動作する部分区間を特定することが困難である。しかしながら、特許文献１に記載されたロボット言語処理装置は、あるエアカット区間内における当該部分区間をグラフィカルに表示することができなかった。その結果、ユーザーは、当該ロボット言語処理装置によって当該部分区間を精度よく特定することができず、ロボットに作業を精度よく行わせることができない場合があった。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の一態様は、ロボットアームに設けられたエンドエフェクターによって対象物に所定の作業を行うロボットを制御する制御装置であって、教示された、前記エンドエフェクターの所定の部位が通過する第１位置 と、教示された、前記対象物に前記作業を始める第２位置 と、前記第１位置と前記第２位置との間に位置し、前記対象物に対する前記エンドエフェクターの速度が一定となる第３位置 と、を含む画像を表示させる表示信号を出力する表示制御部、を備える、制御装置である。
【０００８】
また、本発明の他の態様は、上記に記載の制御装置により前記ロボットとして制御される、ロボットである。
【０００９】
また、本発明の他の態様は、上記に記載の制御装置と、前記ロボットと、を備えるロボットシステムである。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ボタンの品質を検査する作業においてボタンからエンドエフェクターＥに対して作用する力と経過時間との関係の一例を示す図である。
【図３】ボタンの品質を検査する作業においてボタンからエンドエフェクターＥに対して作用する力とエンドエフェクターＥの位置の変化との関係の一例を示す図である。
【図４】ロボット制御装置４０のハードウェア構成の一例を示す図である。
【図５】情報処理装置５０のハードウェア構成の一例を示す図である。
【図６】ロボット制御装置４０の機能構成の一例を示す図である。
【図７】情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第１例を示す図である。
【図８】情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第２例を示す図である。
【図９】情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第３例を示す図である。
【図１０】情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第４例を示す図である。
【図１１】情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第５例を示す図である。
【図１２】情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第６例を示す図である。
【図１３】ロボット制御装置４０が情報処理装置５０の表示部５５に等速区間を表示する処理の流れの一例を示す図である。
【図１４】ステップＳ１５０において表示制御部４６９が等速区間を示す画像の一例を示す図である。
【図１５】ステップＳ１５０において表示制御部４６９が等速区間を示す画像の他の例を示す図である。
【図１６】経路表示画像に基づいてユーザーが教示した動作における制御点Ｔの速度の変化の具体例を示す図である。
【発明を実施するための形態】
【００１１】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１２】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、ロボット２０と、制御装置３０を備える。また、制御装置３０は、ロボット制御装置４０と、情報処理装置５０を備える。なお、ロボットシステム１は、撮像部、撮像部を制御する画像処理装置等を備える構成であってもよい。また、制御装置３０は、ロボット制御装置４０と情報処理装置５０とに加えて、他の装置を備える構成であってもよい。また、ロボット制御装置４０と情報処理装置５０は、１台の制御装置３０として一体に構成されてもよい。
【００１３】
ロボット２０は、アームＡと、アームＡを支持する基台Ｂを備える単腕ロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。ここで、複腕ロボットのうち、２本の腕を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本の腕を備える双腕ロボットであってもよく、３本以上の腕を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボット（水平多関節ロボット）、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。
【００１４】
アームＡは、エンドエフェクターＥと、マニピュレーターＭと、力検出部ＦＳを備える。なお、アームＡは、エンドエフェクターＥを備えない構成であってもよい。また、アームＡは、力検出部ＦＳを備えない構成であってもよい。
【００１５】
エンドエフェクターＥは、ユーザーがロボット２０に行わせる作業に応じた形状のエンドエフェクターである。図１に示した例では、エンドエフェクターＥは、指部を備え、当該指部によって物体を挟んで持つことにより物体を保持するエンドエフェクターである。なお、エンドエフェクターＥは、当該エンドエフェクターに代えて、例えば、先端に円柱形状の部分を有し、当該部分によってボタン等を押下する作業に用いられるエンドエフェクター、接着剤等の吐出物を吐出するディスペンサーを備え、対象物に吐出物を塗布する作業に用いられるエンドエフェクター等の他のエンドエフェクターであってもよい。
【００１６】
マニピュレーターＭは、６軸垂直多関節型のマニピュレーターである。すなわち、アームＡは、６軸垂直多関節型のアームである。なお、マニピュレーターＭは、５軸以下の垂直多関節型のマニピュレーターであってもよく、７軸以上の垂直多関節型のマニピュレーターであってもよい。
【００１７】
力検出部ＦＳは、力検出部ＦＳに作用する並進力と回転モーメントとのいずれか一方又は両方を、力検出部ＦＳに作用する外力として検出する。力検出部ＦＳは、例えば、力センサー（力覚センサー）である。なお、力検出部ＦＳは、力センサーに代えて、トルクセンサー等の力検出部ＦＳに作用する外力を検出する他のセンサーであってもよい。
【００１８】
力検出部ＦＳは、この一例において、エンドエフェクターＥとマニピュレーターＭの間に備えられている。すなわち、力検出部ＦＳは、当該間に設けられることにより、力検出部ＦＳに作用する外力を、ロボット２０の図示しないハンドに作用した外力として検出する。当該ハンドは、エンドエフェクターＥ、又はエンドエフェクターＥにより保持された物体のことである。力検出部ＦＳは、当該ハンドに作用した外力を検出し、検出した外力を示す外力情報をロボット制御装置４０に出力する。力検出部ＦＳから出力される外力情報は、ロボット制御装置４０によるロボット２０の力制御に用いられる。当該力制御は、コンプライアントモーション制御のことである。以下では、一例として、当該力制御が、コンプライアントモーション制御のうちのインピーダンス制御である場合について説明する。
【００１９】
ロボット制御装置４０は、ロボット２０を制御する。この際、ロボット制御装置４０は、情報処理装置５０を介してユーザーから受け付けた操作に基づいて、ロボット２０のアームＡとともに動く仮想的な点である制御点Ｔを、アームＡの予め決められた位置に設定する。制御点Ｔは、例えば、アームＡについてのＴＣＰ（Tool  Center  Point）である。また、アームＡの予め決められた位置は、例えば、エンドエフェクターＥの中心軸上の位置のうちユーザーが所望する位置である。エンドエフェクターＥの中心軸は、後述するマニピュレーターＭが有する６つの関節のうち基台Ｂから最も遠くに設けられている関節の回動軸と一致する軸のことである。なお、制御点Ｔは、当該ＴＣＰに代えて、アームＡとともに動く他の仮想的な点であってもよい。また、当該予め決められた位置は、当該中心軸上の位置に代えて、アームＡに応じた他の位置であってもよい。
【００２０】
ロボット制御装置４０は、例えば、ロボット制御装置４０が備えるメモリーに予め記憶された動作プログラムに基づいて、力検出部ＦＳから外力情報を取得し、取得した外力情報に基づくインピーダンス制御によってアームＡを動作させる。なお、図１では、ロボット制御装置４０が備えるメモリーは、図が煩雑になるのを防ぐため省略している。
【００２１】
また、ロボット制御装置４０は、例えば、動作プログラムに基づいて、連続経路制御によってアームＡを動作させる。より具体的には、連続経路制御では、ロボット制御装置４０は、動作プログラムに基づいて、次に制御点Ｔを一致させる教示点を特定する。教示点は、制御点Ｔを一致させる目標となる仮想的な点のことである。ここで、ロボット２０がある教示点に制御点Ｔを一致させた場合、制御点Ｔの位置は、当該教示点の位置と一致する。また、当該場合、制御点Ｔの姿勢は、当該教示点の姿勢と一致する。以下では、制御点Ｔが現在一致している教示点を第１教示点と称し、次に制御点Ｔを一致させる教示点を第２教示点と称して説明する。
【００２２】
第２教示点を特定する際、ロボット制御装置４０は、動作プログラムにより指定された制御点Ｔの動かし方に関する情報を特定する。制御点Ｔの動かし方に関する情報は、制御点Ｔの等速運動時における制御点Ｔの速度及び角速度のいずれか一方又は両方を示す情報、制御点Ｔを加速させる際の加速度及び角加速度のいずれか一方又は両方を示す情報、制御点Ｔを減速させる際の加速度（すなわち、減速度）及び角加速度（すなわち、角減速度）のいずれか一方又は両方を示す情報、制御点Ｔに並進運動を行わせることを示す情報、制御点Ｔに回転運動を行わせることを示す情報等の一部又は全部が含まれる情報のことである。すなわち、動作プログラムでは、動作プログラムとして記載された複数の命令によって、制御点Ｔの動かし方に関する情報が指定される。
【００２３】
ロボット制御装置４０は、特定した第２教示点と、特定した制御点Ｔの動かし方に関する情報とに基づいて、制御点Ｔを第１教示点から第２教示点へ動かす経路である制御点経路を算出する。ここで、制御点経路上の各点は、経過時間に対応する点であり、経過時間毎の制御点Ｔの位置及び姿勢を示す。ロボット制御装置４０は、算出した制御点経路に沿って制御点Ｔが動くように、アームＡを制御する。ロボット制御装置４０は、このように連続経路制御によってアームＡを動作させることにより、ロボット２０に予め決められた作業を行わせることができる。なお、前述の動作プログラムは、予め決められた命令の一例である。また、連続経路制御は、ＣＰ（Continuous  Path）制御とも称される。連続経路制御による制御点経路の算出方法については、既知の方法であってもよく、これから開発される方法であってもよいため、これ以上の詳細な説明を省略する。
【００２４】
また、ロボット制御装置４０は、動作プログラムに基づいて、前述のインピーダンス制御と連続経路制御との組み合わせによってアームＡを動作させる。
【００２５】
また、ロボット制御装置４０は、動作プログラムに基づいて、力検出部ＦＳから取得した外力情報と、連続経路制御との組み合わせによってアームＡを動作させる。例えば、ロボット制御装置４０は、動作プログラムに基づいて、連続経路制御によってアームＡを動作させ始める。そして、ロボット制御装置４０は、力検出部ＦＳから取得した外力情報が示す外力のうち予め決められた方向に作用する並進力と回転モーメントとのいずれか一方又は両方が予め決められた停止条件を満たすまで、連続経路制御によるアームＡの動作を継続させる。ロボット制御装置４０は、停止条件が満たされた場合、当該動作を停止させる。停止条件は、例えば、予め決められた閾値を超えることであるが、これに限られるわけではない。
【００２６】
ここで、例えば、制御点経路に含まれる区間のうちの加速区間と減速区間とのいずれかにおいて、ロボット２０がディスペンサーによって対象物に吐出物を塗布する作業を行った場合、制御点Ｔの速度が一定ではないため、対象物に塗布される吐出物の量が対象物上の位置によって異なってしまうことがある。その結果、ロボット２０は、対象物に吐出物を塗布する作業の品質を向上させることできない場合がある。すなわち、ロボット２０は、当該作業の精度を向上させることができない場合がある。なお、加速区間は、制御点経路に含まれる区間のうち、制御点Ｔが加速運動を行う区間のことである。加速運動は、制御点Ｔが行う運動のうち、制御点Ｔの速度及び角速度のいずれか一方又は両方が時間の経過とともに大きくなる運動のことである。減速区間は、制御点経路に含まれる区間のうち、制御点Ｔが減速運動を行う区間のことである。減速運動は、制御点Ｔの速度及び角速度のいずれか一方又は両方が時間の経過とともに小さくなる運動のことである。
【００２７】
また、例えば、制御点経路に含まれる区間のうちの加速区間と減速区間とのいずれかにおいて、ボタンの押下を行うことによってボタンの品質を検査する作業をロボット２０が行った場合、制御点Ｔの速度が一定ではないため、ボタンからエンドエフェクターＥに対して作用する力の時間的な変化が、当該作業を行う毎に変化してしまうことがある。図２は、ボタンの品質を検査する作業においてボタンからエンドエフェクターＥに対して作用する力と経過時間との関係の一例を示す図である。また、図２に示したグラフは、当該加速区間においてボタンの品質を検査する作業をロボット２０が行った場合におけるグラフの一例である。図２に示したグラフの横軸は、経過時間を示す。図２に示したグラフの縦軸は、ロボット２０がボタンを押下する方向に沿ってエンドエフェクターＥに作用した力を示す。図２に示したピークＰ１は、ロボット２０が検査する対象となるボタンの作動力を示す。ロボット２０が当該加速区間において当該作業を行った場合、当該作業を行う毎にピークＰ１の位置が変化してしまうことがある。すなわち、ロボット２０は、検査する対象となるボタンの作動力を精度よく検査することができなくなり、不良品の選別を行うことができなくなってしまうことがある。何故なら、このピークＰ１の位置の変化は、ボタンが不良品であった場合にも起こり得る現象だからである。このため、ロボット２０が当該加速区間において当該作業を行った場合、ロボット２０は、当該作業を精度よく行うことができなくなってしまうことがある。
【００２８】
図３は、ボタンの品質を検査する作業においてボタンからエンドエフェクターＥに対して作用する力とエンドエフェクターＥの位置の変化との関係の一例を示す図である。当該位置の変化は、ロボット２０がボタンを押下する方向に沿ったエンドエフェクターＥの位置の変化のことである。そして、図３に示したグラフは、制御点経路に含まれる区間のうちの加速区間においてボタンの品質を検査する作業をロボット２０が行った場合におけるグラフの一例である。図３に示したグラフの横軸は、経過時間を示す。図３に示したグラフの縦軸は、当該方向に沿ってエンドエフェクターＥに作用した力を示す。図３に示したピークＰ２は、検査する対象となるボタンの作動力を示す。ロボット２０が当該加速区間において当該作業を行った場合、図２に示したピークＰ１の場合と同様に、当該作業を行う毎にピークＰ２の位置が変化してしまうことがある。すなわち、ロボット２０は、検査する対象となるボタンの作動力を精度よく検査することができなくなり、不良品の選別を行うことができなくなってしまうことがある。何故なら、このピークＰ２の位置の変化は、ボタンが不良品であった場合にも起こり得る現象だからである。このため、ロボット２０が当該加速区間において当該作業を行った場合、ロボット２０は、当該作業を精度よく行うことができなくなってしまうことがある。
【００２９】
このように、制御点Ｔが加速運動又は減速運動を行っている場合において、すなわち、制御点Ｔの速度が一定ではない場合において、ロボット２０が予め決められた作業を行うと、ロボット２０は、当該作業を精度よく行えないことがある。
【００３０】
そこで、ロボット制御装置４０は、動作プログラムに基づいて、連続経路制御によって制御点Ｔを第１教示点から第２教示点へ動かす経路である制御点経路に含まれる区間のうち、制御点Ｔが等速運動を行う区間である等速区間の始点と終点とのいずれか一方又は両方を算出する。本実施形態において、制御点Ｔの等速運動は、制御点Ｔの運動のうち制御点Ｔの速度及び角速度の両方が時間の経過とともに変化しない運動のことである。ここで、制御点Ｔは、加速区間、減速区間、等速区間のそれぞれにおいて、並進運動と、回転運動と、並進運動と回転運動とを合わせた複合運動とのいずれかを行う。制御点Ｔが行う並進運動は、制御点Ｔの姿勢を変化させずに制御点Ｔの位置を変化させる運動のことである。また、制御点Ｔが行う回転運動は、制御点Ｔの位置を変化させずに制御点Ｔの姿勢を変化させる運動のことである。制御点Ｔが行う複合運動は、制御点Ｔの位置及び姿勢を変化させる運動のことである。なお、制御点Ｔが行う複合運動は、並進運動と回転運動とのうち並進運動が優先される運動であってもよく、並進運動と回転運動とのうち回転運動が優先される運動であってもよい。以下では、説明を簡略化するため、制御点Ｔの運動が複合運動である場合の説明を省略する。
【００３１】
より具体的には、ロボット制御装置４０は、動作プログラムに基づいて、制御点経路における等速区間の始点として、制御点Ｔの運動における加速が終わる位置及び姿勢を算出する。また、ロボット制御装置４０は、動作プログラムに基づいて、制御点経路における等速区間の終点として、制御点Ｔの運動における減速が始まる位置及び姿勢を算出する。すなわち、ロボット制御装置４０は、動作プログラムに基づいて、制御点経路において、制御点Ｔの運動における加速が終わる位置及び姿勢と、制御点Ｔの運動における減速が始まる位置及び姿勢とのいずれか一方又は両方を算出する。これにより、ロボット制御装置４０では、制御点経路における等速区間を動作プログラムによって精度よく指定することができる。その結果、ロボット制御装置４０は、ロボット２０に各種の検査を精度よく行わせることができ、例えば、不良品を生産してしまうことを抑制することができる。また、ロボット制御装置４０は、例えば、ロボット２０が作業を行う作業領域を仮想的に再現した仮想空間を表示させるとともに、当該仮想空間内に制御点経路における等速区間を表示することができる。その結果、ロボット制御装置４０は、加速区間又は減速区間においてロボット２０に作業を行わせてしまうことを抑制することができ、ロボット２０に行わせる作業の精度、効率のいずれか一方又は両方を向上させることができる。
【００３２】
なお、ロボット制御装置４０は、制御点Ｔに並進運動を行わせる場合、動作プログラムに基づいて、制御点経路において、制御点Ｔの運動における加速が終わる位置と、制御点Ｔの運動における減速が始まる位置とのいずれか一方又は両方を算出する構成であってもよい。これは、当該場合、制御点Ｔの姿勢が変化しないためである。また、ロボット制御装置４０は、制御点Ｔに回転運動を行わせる場合、動作プログラムに基づいて、連続経路制御によって制御点Ｔを第１教示点から第２教示点へ動かす経路において、制御点Ｔの運動における加速が終わる姿勢と、制御点Ｔの運動における減速が始まる姿勢とのいずれか一方又は両方を算出する構成であってもよい。これは、当該場合、制御点Ｔの位置が変化しないためである。
【００３３】
なお、ロボット制御装置４０は、上記において説明した連続経路制御、力制御に加えて、連続位置決め制御等の他の制御によってもアームＡを動作させる。しかし、本実施形態では、当該他の制御については、説明を省略する。
【００３４】
また、ロボット制御装置４０は、情報処理装置５０を介してユーザーから各種の操作を受け付け、受け付けた操作に応じた処理を行う。例えば、ロボット制御装置４０は、当該操作に応じた情報を情報処理装置５０に出力する。また、ロボット制御装置４０は、当該操作に応じて、情報処理装置５０に各種の画像を表示させる。また、ロボット制御装置４０は、当該操作に応じてアームＡを動作させる。
【００３５】
また、ロボット制御装置４０は、情報処理装置５０から各種の情報を取得する。ロボット制御装置４０は、取得した情報に応じた処理を行う。例えば、ロボット制御装置４０は、情報処理装置５０から前述の動作プログラムを取得する。ロボット制御装置４０は、取得した動作プログラムを、ロボット制御装置４０が備えるメモリーに記憶させる。
【００３６】
情報処理装置５０は、例えば、ノートＰＣ（Personal  Computer）、タブレットＰＣ等の情報処理装置、ティーチングペンダント等の教示装置である。なお、情報処理装置５０は、デスクトップＰＣ、ワークステーション、多機能携帯電話端末（スマートフォン）、携帯電話端末、ＰＤＡ（Personal  Digital  Assistant）等の他の情報処理装置であってもよい。
【００３７】
情報処理装置５０は、ユーザーから各種の操作を受け付ける。情報処理装置５０は、受け付けた操作に応じた処理を行う。例えば、情報処理装置５０は、当該操作に応じた情報をロボット制御装置４０に出力する。また、情報処理装置５０は、当該操作に基づいて動作プログラムを生成し、生成した動作プログラムをロボット制御装置４０に出力する。また、情報処理装置５０は、当該操作に基づいてロボット制御装置４０を制御し、ロボット制御装置４０を介してアームＡを動作させる。
【００３８】
また、情報処理装置５０は、ロボット制御装置４０から各種の情報を取得する。情報処理装置５０は、取得した情報に応じた処理を行う。例えば、情報処理装置５０は、ロボット制御装置４０から取得した情報に応じた画像を表示させる。
【００３９】
＜ロボット制御装置のハードウェア構成＞
以下、図４を参照し、ロボット制御装置４０のハードウェア構成について説明する。図４は、ロボット制御装置４０のハードウェア構成の一例を示す図である。
【００４０】
ロボット制御装置４０は、例えば、第１プロセッサー４１と、第１メモリー４２と、第１通信部４４を備える。これらの構成要素は、バスを介して相互に通信可能に接続されている。また、ロボット制御装置４０は、第１通信部４４を介してロボット２０、情報処理装置５０のそれぞれと通信を行う。
【００４１】
第１プロセッサー４１は、例えば、ＣＰＵ（Central  Processing  Unit）である。なお、第１プロセッサー４１は、ＣＰＵに代えて、ＦＰＧＡ（Field-Programmable  Gate  Array）等の他のプロセッサーであってもよい。第１プロセッサー４１は、第１メモリー４２に格納された各種のプログラムを実行する。
第１メモリー４２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、第１メモリー４２は、ロボット制御装置４０に内蔵されるものに代えて、ＵＳＢ（Universal  Serial  Bus）等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。第１メモリー４２は、ロボット制御装置４０が処理する各種の情報、各種の画像、動作プログラム等を格納する。
第１通信部４４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
なお、ロボット制御装置４０は、キーボードやマウス、タッチパッド等の入力装置を備える構成であってもよい。また、ロボット制御装置４０は、液晶ディスプレイパネル、有機ＥＬ（ElectroLuminescence）ディスプレイパネル等を備えた表示装置を備える構成であってもよい。
【００４２】
＜情報処理装置のハードウェア構成＞
以下、図５を参照し、情報処理装置５０のハードウェア構成について説明する。図５は、情報処理装置５０のハードウェア構成の一例を示す図である。
【００４３】
情報処理装置５０は、例えば、第２プロセッサー５１と、第２メモリー５２と、入力受付部５３と、第２通信部５４と、表示部５５を備える。これらの構成要素は、バスを介して相互に通信可能に接続されている。また、情報処理装置５０は、第２通信部５４を介してロボット制御装置４０と通信を行う。
【００４４】
第２プロセッサー５１は、例えば、ＣＰＵである。なお、第２プロセッサー５１は、ＣＰＵに代えて、ＦＰＧＡ等の他のプロセッサーであってもよい。第２プロセッサー５１は、第２メモリー５２に格納された各種のプログラムを実行する。
第２メモリー５２は、例えば、ＨＤＤやＳＳＤ、ＥＥＰＲＯＭ、ＲＯＭ、ＲＡＭ等を含む。なお、第２メモリー５２は、情報処理装置５０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。第２メモリー５２は、情報処理装置５０が処理する各種の情報、各種の画像等を格納する。
入力受付部５３は、例えば、キーボードやマウス、タッチパッド等の入力装置である。なお、入力受付部５３は、表示部５５と一体に構成されたタッチパネル等の他の入力装置であってもよい。
第２通信部５４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部５５は、例えば、液晶ディスプレイパネル、有機ＥＬディスプレイパネル等を備えた表示装置である。
【００４５】
＜ロボット制御装置の機能構成＞
以下、図６を参照し、ロボット制御装置４０の機能構成について説明する。図６は、ロボット制御装置４０の機能構成の一例を示す図である。
【００４６】
ロボット制御装置４０は、第１メモリー４２と、第１通信部４４と、制御部４６を備える。
【００４７】
制御部４６は、ロボット制御装置４０の全体を制御する。制御部４６は、取得部４６１と、命令読込部４６３と、経路算出部４６５と、ロボット制御部４６７と、表示制御部４６９を備える。制御部４６が備えるこれらの機能部は、例えば、第１プロセッサー４１が、第１メモリー４２に記憶された各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００４８】
取得部４６１は、力検出部ＦＳが検出した外力を示す外力情報を力検出部ＦＳから取得する。
【００４９】
命令読込部４６３は、第１メモリー３２に記憶された動作プログラムを読み出す。命令読込部４６３は、例えば、読み出した動作プログラムに含まれる命令を、上から順に１行ずつ読み込む。
経路算出部４６５は、命令読込部４６３が読み込んだ命令が経路算出部４６５により実行される命令である場合、当該命令に応じた処理を行う。例えば、経路算出部４６５は、当該命令に応じて、前述の制御点経路を算出する。
ロボット制御部４６７は、命令読込部４６３が読み込んだ命令がロボット制御部４６７により実行される命令である場合、当該命令に応じた処理を行う。例えば、ロボット制御部４６７は、当該命令に応じて、取得部４６１が取得した外力情報に基づいてロボット２０を制御する。また、ロボット制御部４６７は、当該命令に応じて、経路算出部４６５が算出した制御点経路に沿って制御点Ｔが動くようにロボット２０を制御する。
表示制御部４６９は、情報処理装置５０を介してユーザーから受け付けた操作に基づいて、各種の画像を生成する。表示制御部４６９は、生成した画像を示す情報を情報処理装置５０に出力し、情報処理装置５０の表示部５５に当該画像を表示させる。
【００５０】
＜動作プログラムと動作プログラムに応じてロボット制御装置が行う処理＞
以下、図７〜図１２を参照し、動作プログラムと、動作プログラムに応じたロボット制御装置４０が行う処理とのそれぞれについて説明する。なお、図７〜図１２に示した動作プログラムにおけるプログラム言語は、一例に過ぎず、ロボット制御装置４０にコンパイル可能なプログラム言語であれば如何なるプログラム言語であってもよい。
【００５１】
前述した通り、ロボット制御装置４０は、この一例において、動作プログラムに基づいて、制御点Ｔの並進運動又は回転運動において、加速終了位置姿勢と減速開始位置姿勢とのいずれか一方又は両方を算出する。加速終了位置姿勢は、制御点経路において、制御点Ｔの加速が終わる位置及び姿勢のことである。減速開始位置姿勢は、制御点経路において、制御点Ｔの減速が始まる位置及び姿勢のことである。例えば、ロボット制御装置４０は、図７に示した動作プログラムに含まれる命令を読み込み、制御点Ｔの並進運動における加速終了位置姿勢を算出する。
【００５２】
図７は、情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第１例を示す図である。動作プログラム編集画像は、情報処理装置５０の表示部５５に表示される画像のうち、情報処理装置５０を介してユーザーが動作プログラムの生成、修正、削除等（すなわち、編集）を行う画像である。図７に示した動作プログラム編集画像には、動作プログラムに含まれる命令のうち、制御点Ｔの並進運動における加速終了位置姿勢を算出する命令、及び当該命令に関連する各種の命令等が示されている。
【００５３】
図７に示した「Ｍｏｔｏｒ  ｏｎ」は、動作プログラムに含まれる命令のうち、マニピュレーターＭが備える６つのモーターのそれぞれの電源をオンにする命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、当該電源をオンにする。
【００５４】
また、図７に示した「Ｐｏｗｅｒ  Ｈｉｇｈ」は、ロボット制御装置４０の動作モードを、マニピュレーターＭが備える６つのモーターそれぞれを高パワーで駆動させるモードに切り替える命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、当該動作モードを、当該モードに切り替える。
【００５５】
また、図７に示した「ＳｐｅｅｄＳ  ２０」は、制御点Ｔの等速運動時における制御点Ｔの速度を、２０［ｍｍ／ｓ］に設定する命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、制御点Ｔの等速運動時における制御点Ｔの速度を２０［ｍｍ／ｓ］に設定する。例えば、ロボット制御部４６７は、当該場合、制御点Ｔの速度を示す情報として２０［ｍｍ／ｓ］を示す情報を第１メモリー４２に記憶させることにより、制御点Ｔの等速運動時における制御点Ｔの速度を２０［ｍｍ／ｓ］に設定する。
【００５６】
また、図７に示した「ＡｃｃｅｌＳ  ８００，５００」は、制御点Ｔの並進運動時の加速区間における制御点Ｔの加速度を８００［ｍｍ／ｓ２］に設定するとともに、制御点Ｔの並進運動時の減速区間における制御点Ｔの加速度（すなわち、減速度）を５００［ｍｍ／ｓ２］に設定する命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、制御点Ｔの並進運動時の加速区間における制御点Ｔの加速度を８００［ｍｍ／ｓ２］に設定し、制御点Ｔの並進運動時の減速区間における制御点Ｔの加速度を５００［ｍｍ／ｓ２］に設定する。例えば、ロボット制御部４６７は、当該場合、制御点Ｔの並進運動時の加速区間における制御点Ｔの加速度を示す情報として８００［ｍｍ／ｓ２］を示す情報を第１メモリー４２に記憶させることにより、当該加速度を８００［ｍｍ／ｓ２］に設定する。また、ロボット制御部４６７は、当該場合、制御点Ｔの並進運動時の減速区間における制御点Ｔの加速度を示す情報として５００［ｍｍ／ｓ２］を示す情報を第１メモリー４２に記憶させることにより、当該加速度を５００［ｍｍ／ｓ２］に設定する。
【００５７】
また、図７に示した「ＣｏｎｓｔＳｐｄＰｏｓ」は、４つの引数を渡すことによって、制御点Ｔの並進運動における加速終了位置姿勢と、制御点Ｔの並進運動における減速開始位置姿勢と、制御点Ｔの回転運動における加速終了位置姿勢と、制御点Ｔの回転運動における減速開始位置姿勢とのいずれかを返り値として返す関数である。当該４つの引数には、第２教示点の位置及び姿勢を指定する第１１引数、制御点Ｔの動きを指定する第１２引数、加速終了位置姿勢と減速開始位置姿勢とのいずれか一方を返り値として指定する第１３引数、並進運動と回転運動とのいずれか一方を制御点Ｔの運動として指定する第１４引数のそれぞれが含まれている。
【００５８】
ここで、図７に示した例では、「ＣｏｎｓｔＳｐｄＰｏｓ」には、「Ｐ１」によって第２教示点の位置及び姿勢が第１１引数として渡されている。すなわち、「Ｐ１」は、第２教示点の位置及び姿勢が格納された変数である。また、当該例では、「ＣｏｎｓｔＳｐｄＰｏｓ」には、「Ｍｏｖｅ」によって制御点Ｔの動きが第１２引数として渡されている。すなわち、「Ｍｏｖｅ」は、制御点Ｔの動きを示す変数である。また、当該例では、「ＣｏｎｓｔＳｐｄＰｏｓ」には、「Ａｃｃｅｌｅｒａｔｉｏｎ」によって加速終了位置姿勢が第１３引数として渡されている。すなわち、「Ａｃｃｅｌｅｒａｔｉｏｎ」は、加速終了位置姿勢を示す変数である。また、当該例では、「ＣｏｎｓｔＳｐｄＰｏｓ」には、「Ｔｒａｎｓｌａｔｉｏｎａｌ」によって並進運動が第１４引数として渡されている。すなわち、「Ｔｒａｎｓｌａｔｉｏｎａｌ」は、並進運動を示す変数である。
【００５９】
従って、図７に示した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを並進運動によって動かした場合における加速終了位置姿勢を、返り値として返す。
【００６０】
そして、図７に示した「Ｐ１０」は、「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」が返した返り値を格納する変数である。すなわち、図５に示した「Ｐ１０＝ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを並進運動によって動かした場合における加速終了位置姿勢を「Ｐ１０」に格納する命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、マニピュレーターＭが備える６つのモーターそれぞれのエンコーダーから、マニピュレーターＭが備える各関節の回動角を示す情報を取得する。経路算出部４６５は、取得した情報が示す回動角に基づく順運動学によって制御点Ｔの現在の位置及び姿勢、すなわち、第１教示点の位置及び姿勢を算出する。経路算出部４６５は、算出した第１教示点の位置及び姿勢と、「Ｐ１」によって指定される第２教示点の位置及び姿勢と、制御点Ｔの等速運動時における制御点Ｔの速度と、制御点Ｔの並進運動時の加速区間における制御点Ｔの加速度と、制御点Ｔの並進運動時の減速区間における制御点Ｔの加速度とに基づいて、制御点Ｔの並進運動における加速終了位置姿勢を算出する。経路算出部４６５は、算出した加速終了位置姿勢を、「Ｐ１０」に格納する。
【００６１】
なお、例えば、上記において説明した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」の「Ａｃｃｅｌｅｒａｔｉｏｎ」を「Ｄｅｃｅｌｅｒａｔｉｏｎ」に変更した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ｄｅｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを並進運動によって動かした場合における減速開始位置姿勢を、返り値として返す。
【００６２】
また、例えば、上記において説明した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」の「Ｔｒａｎｓｌａｔｉｏｎａｌ」を「Ｒｏｔａｔｉｏｎａｌ」に変更した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｒｏｔａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを回転運動によって動かした場合における加速終了位置姿勢を、返り値として返す。
【００６３】
また、例えば、上記において説明した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」の「Ａｃｃｅｌｅｒａｔｉｏｎ」を「Ｄｅｃｅｌｅｒａｔｉｏｎ」に変更するとともに、「Ｔｒａｎｓｌａｔｉｏｎａｌ」を「Ｒｏｔａｔｉｏｎａｌ」に変更した「ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ｄｅｃｅｌｅｒａｔｉｏｎ，Ｒｏｔａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを回転運動によって動かした場合における減速開始位置姿勢を、返り値として返す。
【００６４】
このように、ロボット制御装置４０は、動作プログラムに基づいて、制御点Ｔの並進運動又は回転運動において、加速終了位置姿勢と減速開始位置姿勢とのいずれか一方又は両方を算出することができる。
【００６５】
また、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図７に示した命令によって「Ｐ１０」に格納した位置及び姿勢を用いたロボット２０の制御を行うことができる。例えば、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図８に示した命令に基づいて、当該位置及び当該姿勢を用いたロボット２０の制御を行う。
【００６６】
図８は、情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第２例を示す図である。図８に示した動作プログラム編集画像には、動作プログラムに含まれる命令のうち、第１教示点の位置から加速終了位置までの距離が、第１教示点の位置から作業開始位置までの距離よりも長いか否かを判定する命令と、当該命令に関連する各種の命令等とが示されている。加速終了位置は、制御点経路における加速区間が終了する位置、すなわち、制御点経路において制御点Ｔの加速が終わる位置のことである。作業開始位置は、制御点経路における制御点Ｔの位置のうち、ロボット２０が予め決められた作業を開始する位置のことである。
【００６７】
図８に示した「Ｄｉｓｔ」は、２つの引数を渡すことによって、２点間の距離を返り値として返す関数である。当該２つの引数には、当該２点のうちの一方の位置及び姿勢を指定する第２１引数と、当該２点のうちの他方の位置及び姿勢を指定する第２２引数のそれぞれが含まれている。
【００６８】
ここで、図８に示した例では、１行目の「Ｄｉｓｔ」には、「Ｐ１」によって第２教示点の位置及び姿勢が第２１引数として渡されている。また、当該例では、「Ｄｉｓｔ」には、「Ｐ１０」によって加速終了位置姿勢が第２２引数として渡されている。
【００６９】
従って、図８に示した「Ｄｉｓｔ（Ｐ１，Ｐ１０）」は、「Ｐ１」によって指定された第２教示点の位置と、「Ｐ１０」によって指定された位置であって制御点Ｔを並進運動によって動かした場合における加速終了位置との間の距離を返り値として返す。
【００７０】
すなわち、図８に示した「Ｐｒｉｎｔ  Ｄｉｓｔ（Ｐ１，Ｐ１０）」は、「Ｐ１」によって指定された第２教示点の位置と、「Ｐ１０」によって指定された位置であって制御点Ｔを並進運動によって動かした場合における加速終了位置との間の距離を表示させる命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、「Ｐ１」が示す第２教示点の位置及び姿勢のうちの当該位置と、「Ｐ１０」が示す当該加速終了位置姿勢のうちの加速終了位置との間の距離を算出する。そして、表示制御部４６９は、経路算出部４６５が算出した当該距離を情報処理装置５０の表示部５５に表示させる。
【００７１】
また、図８に示した「Ｄｉｓｔ（Ｈｅｒｅ，Ｐ１０）」は、「Ｈｅｒｅ」によって指定された制御点Ｔの現在の位置と、「Ｐ１０」によって指定さえた位置であって制御点Ｔを並進運動によって動かした場合における加速終了位置との間の距離を返り値として返す。
【００７２】
また、Ｐ（ＳｔａｒｔＤｉｓｐｅｎｓｉｎｇ）は、前述の作業開始位置を示す変数である。ここで、図８に示した例では、ロボット２０が行う予め決められた作業は、ディスペンサーによって対象物に吐出物を塗布する作業である。従って、図８に示した「Ｄｉｓｔ（Ｈｅｒｅ，Ｐ（ＳｔａｒｔＤｉｓｐｅｎｓｉｎｇ）」は、「Ｈｅｒｅ」によって指定された制御点Ｔの現在の位置と、「Ｐ（ＳｔａｒｔＤｉｓｐｅｎｓｉｎｇ）」によって指定さえた作業開始位置との間の距離を返り値として返す。
【００７３】
すなわち、図８に示したＩｆ文は、制御点Ｔの現在の位置から加速終了位置までの第１距離が、制御点Ｔの現在の位置から作業開始位置までの第２距離よりも長い場合、「Ｅｘｃｅｅｄｉｎｇ  ｄｉｓｔａｎｃｅ：」とともに第１距離と第２距離との差分を表示してエラーを返し、第１距離が第２距離よりも短い場合、「Ｍｏｖｅ  Ｐ１」を実行する命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、第１距離と第２距離とのそれぞれを算出する。経路算出部４６５は、算出した第１距離が、算出した第２距離よりも長いと判定した場合、すなわち、前述の加速区間内の一部においてロボット２０が作業を行ってしまう場合、第１距離と第２距離との差分を算出する。そして、表示制御部４６９は、経路算出部４６５が算出した当該差分を、「Ｅｘｃｅｅｄｉｎｇ  ｄｉｓｔａｎｃｅ：」とともに情報処理装置５０の表示部５５に表示させる。一方、算出した第１距離が、算出した第２距離よりも長いと経路算出部４６５が判定した場合、すなわち、加速区間内においてロボット２０が作業を行わない場合、ロボット制御部４６７は、「Ｍｏｖｅ  Ｐ１」を実行する。ここで、「Ｍｏｖｅ  Ｐ１」は、「Ｐ１」によって指定された第２教示点への制御点Ｔの並進運動を開始させる命令である。すなわち、当該場合、ロボット制御部４６７は、アームＡを動作させて当該並進運動を開始させる。これにより、ロボット制御装置４０は、加速区間内においてロボット２０が予め決められた作業を行ってしまうことを抑制し、その結果、ロボット２０に当該作業を精度よく行わせることができる。
【００７４】
このようにして、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図７に示した命令によって「Ｐ１０」に格納した位置及び姿勢を用いたロボット２０の制御を行うことができる。
【００７５】
また、ロボット制御装置４０は、例えば、動作プログラムに含まれる命令のうち図７に示した命令によって、制御点Ｔの回転運動における加速終了位置姿勢と減速開始位置姿勢との両方を算出することができる。
【００７６】
図９は、情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第３例を示す図である。図９に示した動作プログラム編集画像には、動作プログラムに含まれる命令のうち、制御点Ｔの回転運動における加速終了位置姿勢と減速開始位置姿勢との両方を算出する命令、及び当該命令に関連する各種の命令等が示されている。
【００７７】
また、図９に示した「ＳｐｅｅｄＲ  ６０」は、制御点Ｔの等速運動時における制御点Ｔの角速度を、６０［ｄｅｇ／ｓ］に設定する命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、制御点Ｔの等速運動時における制御点Ｔの角速度を６０［ｄｅｇ／ｓ］に設定する。例えば、ロボット制御部４６７は、当該場合、制御点Ｔの角速度を示す情報として６０［ｄｅｇ／ｓ］を示す情報を第１メモリー４２に記憶させることにより、制御点Ｔの等速運動時における制御点Ｔの角速度を６０［ｄｅｇ／ｓ］に設定する。
【００７８】
また、図９に示した「ＡｃｃｅｌＲ  ６００，６００」は、制御点Ｔの回転運動時の加速区間における制御点Ｔの角加速度を６００［ｄｅｇ／ｓ２］に設定するとともに、制御点Ｔの回転運動時の減速区間における制御点Ｔの角加速度（すなわち、角減速度）を６００［ｄｅｇ／ｓ２］に設定する命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、制御点Ｔの回転運動時の加速区間における制御点Ｔの角加速度を６００［ｄｅｇ／ｓ２］に設定し、制御点Ｔの回転運動時の減速区間における制御点Ｔの角加速度を６００［ｄｅｇ／ｓ２］に設定する。例えば、ロボット制御部４６７は、当該場合、制御点Ｔの回転運動時の加速区間における制御点Ｔの角加速度を示す情報として６００［ｄｅｇ／ｓ２］を示す情報を第１メモリー４２に記憶させることにより、当該角加速度を６００［ｄｅｇ／ｓ２］に設定する。また、ロボット制御部４６７は、当該場合、制御点Ｔの回転運動時の減速区間における制御点Ｔの角加速度を示す情報として６００［ｄｅｇ／ｓ２］を示す情報を第１メモリー４２に記憶させることにより、当該角加速度を６００［ｄｅｇ／ｓ２］に設定する。
【００７９】
また、図９に示した「Ｐ１０＝ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｒｏｔａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを回転運動によって動かした場合における加速終了位置姿勢を前述の「Ｐ１０」に格納する命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、マニピュレーターＭが備える６つのモーターそれぞれのエンコーダーから、マニピュレーターＭが備える各関節の回動角を示す情報を取得する。経路算出部４６５は、取得した情報が示す回動角に基づく順運動学によって制御点Ｔの現在の位置及び姿勢、すなわち、第１教示点の位置及び姿勢を算出する。経路算出部４６５は、算出した第１教示点の位置及び姿勢と、「Ｐ１」によって指定される第２教示点の位置及び姿勢と、制御点Ｔの等速運動時における制御点Ｔの角速度と、制御点Ｔの回転運動時の加速区間における制御点Ｔの角加速度と、制御点Ｔの回転運動時の減速区間における制御点Ｔの角加速度とに基づいて、制御点Ｔの回転運動における加速終了位置姿勢を算出する。経路算出部４６５は、算出した加速終了位置姿勢を、「Ｐ１０」に格納する。
【００８０】
また、図９に示した「Ｐ１１＝ＣｏｎｓｔＳｐｄＰｏｓ（Ｐ１，Ｍｏｖｅ，Ｄｅｃｅｌｅｒａｔｉｏｎ，Ｒｏｔａｔｉｏｎａｌ）」は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔを回転運動によって動かした場合における減速開始位置姿勢を、「Ｐ１１」という変数に格納する命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、マニピュレーターＭが備える６つのモーターそれぞれのエンコーダーから、マニピュレーターＭが備える各関節の回動角を示す情報を取得する。経路算出部４６５は、取得した情報が示す回動角に基づく順運動学によって制御点Ｔの現在の位置及び姿勢、すなわち、第１教示点の位置及び姿勢を算出する。経路算出部４６５は、算出した第１教示点の位置及び姿勢と、「Ｐ１」によって指定される第２教示点の位置及び姿勢と、制御点Ｔの等速運動時における制御点Ｔの角速度と、制御点Ｔの回転運動時の加速区間における制御点Ｔの角加速度と、制御点Ｔの回転運動時の減速区間における制御点Ｔの角加速度とに基づいて、制御点Ｔの回転運動における減速開始位置姿勢を算出する。経路算出部４６５は、算出した減速開始位置姿勢を、「Ｐ１１」に格納する。
【００８１】
このように、ロボット制御装置４０は、動作プログラムに基づいて、制御点Ｔの回転運動における加速終了位置姿勢と減速開始位置姿勢との両方を算出することができる。
【００８２】
また、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図１０に示した命令によって図９に示した「Ｐ１０」及び「Ｐ１１」に格納した位置及び姿勢を用いたロボット２０の制御を行うことができる。例えば、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図１０に示した命令に基づいて、図９に示した「Ｐ１０」及び「Ｐ１１」に格納した位置及び姿勢を用いたロボット２０の制御を行う。
【００８３】
図１０は、情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第４例を示す図である。図１０に示した動作プログラム編集画像には、動作プログラムに含まれる命令のうち、制御点Ｔの位置及び姿勢が「Ｐ１０」が示す位置及び姿勢である場合における第６関節の回動角と、制御点Ｔの位置及び姿勢が「Ｐ１１」が示す位置及び姿勢である場合における第６関節の回動角との差分が３６０［ｄｅｇ］よりも小さいか否かを判定する命令と、当該命令に関連する各種の命令等とが示されている。ここで、第６関節は、マニピュレーターＭが有する６つの関節のうち基台Ｂから最も遠くに設けられている関節のことである。また、第６関節は、マニピュレーターＭにエンドエフェクターＥが取り付けられている場合において、エンドエフェクターＥを回動させる関節のことである。また、以下では、説明の便宜上、当該差分を、算出対象差分と称して説明する。
【００８４】
図１０に示した「ＪＡｎｇｌｅ（Ｐ１０，６）」は、制御点Ｔの位置及び姿勢が「Ｐ１０」が示す位置及び姿勢である場合における第６関節の回動角を返り値として返す関数である。
【００８５】
また、図１０に示した「ＪＡｎｇｌｅ（Ｐ１１，６）」は、制御点Ｔの位置及び姿勢が「Ｐ１１」が示す位置及び姿勢である場合における第６関節の回動角を返り値として返す関数である。
【００８６】
すなわち、図１０に示した「Ｐｒｉｎｔ  ＪＡｎｇｌｅ（Ｐ１０，６）−ＪＡｎｇｌｅ（Ｐ１１，６）」は、前述の算出対象差分を表示する命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、制御点Ｔの位置及び姿勢が「Ｐ１０」が示す位置及び姿勢である場合におけるマニピュレーターＭの第６関節の回動角を逆運動学に基づいて算出するとともに、制御点Ｔの位置及び姿勢が「Ｐ１１」が示す位置及び姿勢である場合におけるマニピュレーターＭの第６関節の回動角を逆運動学に基づいて算出する。経路算出部４６５は、算出した２つの回動角に基づいて算出対象差分として算出する。そして、表示制御部４６９は、経路算出部４６５が算出した算出対象差分を情報処理装置５０の表示部５５に表示させる。
【００８７】
また、図１０に示したＩｆ文は、算出対象差分が３６０［ｄｅｇ］よりも小さい場合、「Ｃｈｅｃｋ  ＡｃｃｅｌＲ  ａｎｄ  ｓｔａｒｔｉｎｇ  Ｐｏｉｎｔ」を表示してエラーを返し、算出対象差分が３６０［ｄｅｇ］よりも大きい場合、「Ｍｏｖｅ  Ｐ１  ＲＯＴ」を実行する命令である。例えば、ロータリースイッチを３６０［ｄｅｇ］回動させてロータリースイッチの品質を検査する作業をロボット２０が精度よく行う場合、ロボット２０は、等速区間において作業を行う必要があるため、加速区間、等速区間、減速区間のそれぞれを合わせて３６０［ｄｅｇ］よりも大きい回動角となる回動を第６関節に行わせる必要がある。例えば、制御点Ｔの回転運動時の等速区間における制御点Ｔの回動角が３６０［ｄｅｇ］であり、制御点Ｔの等速運動時における角速度が６０［ｄｅｇ／ｓ］であり、制御点Ｔの回転運動時の加速区間における制御点Ｔの角加速度が６００［ｄｅｇ／ｓ２］であり、制御点Ｔの回転運動時の減速区間における制御点Ｔの角加速度が６００［ｄｅｇ／ｓ２］である場合、制御点Ｔの回転運動時の加速区間及び減速区間それぞれでの回動角は、３［ｄｅｇ］となる。この場合、ロボット２０は、加速区間、等速区間、減速区間のそれぞれを合わせて３６６［ｄｅｇ］の回動を第６関節に行わせる必要がある。このような場合において、ロボット制御装置４０は、当該命令によってロボット２０を制御する。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、算出対象差分を算出する。算出した算出対象差分が３６０［ｄｅｇ］よりも小さいと経路算出部４６５が判定した場合、表示制御部４６９は、「Ｃｈｅｃｋ  ＡｃｃｅｌＲ  ａｎｄ  ｓｔａｒｔｉｎｇ  Ｐｏｉｎｔ」を情報処理装置５０の表示部５５に表示し、エラーを返す。一方、算出した算出対象差分が３６０［ｄｅｇ］よりも大きいと経路算出部４６５が判定した場合、すなわち、ロボット制御部４６７は、「Ｍｏｖｅ  Ｐ１  ＲＯＴ」を実行する。ここで、「Ｍｏｖｅ  Ｐ１  ＲＯＴ」は、「Ｐ１」によって指定された第２教示点への制御点Ｔの回転運動を開始させる命令である。すなわち、当該場合、ロボット制御部４６７は、アームＡを動作させて当該回転運動を開始させる。これにより、ロボット制御装置４０は、加速区間内においてロボット２０が予め決められた作業を行ってしまうことを抑制し、その結果、ロボット２０に当該作業を精度よく行わせることができる。
【００８８】
このようにして、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図１０に示した命令によって図９に示した「Ｐ１０」及び「Ｐ１１」に格納した位置及び姿勢を用いたロボット２０の制御を行うことができる。
【００８９】
また、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図９、図１０に示した命令とともに図１１に示した命令を実行することによって、例えば、モーターのコギングトルクを測定する作業をロボット２０に精度よく行わせることができる。
【００９０】
図１１は、情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第５例を示す図である。図１１に示した動作プログラム編集画像には、動作プログラムに含まれる命令のうち、インピーダンス制御によって制御点Ｔの運動を制御する際、制御点Ｔの位置及び姿勢を示す制御点座標系におけるＸ軸に沿った並進運動、制御点座標系におけるＹ軸に沿った並進運動、制御点座標系におけるＺ軸に沿った並進運動、当該Ｘ軸周りの回転運動、当該Ｙ軸周りの回転運動、当該Ｚ軸周りの回転運動のうちのいずれをインピーダンス制御によって制御するかを指定する命令と、当該命令に関連する各種の命令等とが示されている。このようなインピーダンス制御は、例えば、モーターのコギングトルクを測定する作業、ロータリーノブの品質を検査する作業、ボトルの蓋を開閉させる作業等のように、回転させる対象となる物体の回転軸がぶれてしまうような作業において好適に用いられる。
【００９１】
図１１に示した「ＰＳｅｔ  ＦＣ１．Ｅｎａｂｌｅｄ，Ｔｒｕｅ，Ｔｒｕｅ，Ｔｒｕｅ，Ｆａｌｓｅ，Ｆａｌｓｅ，Ｆａｌｓｅ」は、インピーダンス制御によって制御点Ｔの運動を制御する際において、制御点Ｔの位置及び姿勢を示す制御点座標系におけるＸ軸に沿った並進運動、制御点座標系におけるＹ軸に沿った並進運動、制御点座標系におけるＺ軸に沿った並進運動のそれぞれをインピーダンス制御によって制御することと、当該Ｘ軸周りの回転運動、当該Ｙ軸周りの回転運動、当該Ｚ軸周りの回転運動のそれぞれをインピーダンス制御によって制御しないこととのそれぞれを示す情報を「ＦＣ１」という変数に対応付ける命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、インピーダンス制御によって制御点Ｔの運動を制御する際において、当該Ｘ軸に沿った並進運動、当該Ｙ軸に沿った並進運動、当該Ｚ軸に沿った並進運動のそれぞれをインピーダンス制御によって制御することと、当該Ｘ軸周りの回転運動、当該Ｙ軸周りの回転運動、当該Ｚ軸周りの回転運動のそれぞれをインピーダンス制御によって制御しないこととのそれぞれを示す情報を「ＦＣ１」という変数に対応付ける。
【００９２】
また、図１１に示した「Ｍｏｖｅ  Ｐ１  ＦＣ１  ＲＯＴ」は、「Ｐ１」によって指定された第２教示点への制御点Ｔの回転運動を開始させるとともに、「ＦＣ１」に対応付けられた情報に基づくインピーダンス制御によって制御点Ｔの運動を制御する命令である。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、「Ｐ１」によって指定された第２教示点への制御点Ｔの回転運動を開始させるとともに、「ＦＣ１」に対応付けられた情報に基づくインピーダンス制御によって制御点Ｔの運動を制御する。これにより、ロボット制御装置４０は、例えば、前述のモーターのコギングトルクを測定する作業において、等速区間においてモーターの回動軸を３６０［ｄｅｇ］回動させながら、当該回動軸のブレによって制御点Ｔが当該回動軸から受ける並進力をゼロにするように制御点Ｔを動かすことができる。その結果、ロボット制御装置４０は、当該作業をロボット２０に精度よく行わせることができる。
【００９３】
また、ロボット制御装置４０は、動作プログラムに含まれる命令のうち図１２に示した命令を実行することによって、制御点Ｔの並進運動において、制御点Ｔが等速運動を行い始めたタイミングでロボット２０に作業を開始させることができる。ここで、図１２では、一例として、ロボット２０が行う作業が、ディスペンサーを備えたエンドエフェクターＥによって対象物に吐出物を塗布する作業である場合について説明する。
【００９４】
図１２は、情報処理装置５０の表示部５５に表示された動作プログラム編集画像の一部の第６例を示す図である。図１２に示した動作プログラム編集画像には、動作プログラムに含まれる命令のうち、制御点Ｔの並進運動において、制御点Ｔが等速運動を行い始めたタイミングでロボット２０に作業を開始させる命令と、当該命令に関連する各種の命令等とが示されている。
【００９５】
図１２に示した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」は、制御点Ｔの並進運動において、制御点Ｔが等速運動を行い始めたタイミングを返り値として返す関数である。当該タイミングは、例えば、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔが並進運動によって到達するまでに要する時間に対する、第１教示点から加速終了位置に制御点Ｔが並進運動によって到達するまでに要する時間の割合によって表される。なお、当該タイミングは、第１教示点から加速終了位置に制御点Ｔが並進運動によって到達するまでに要する時間に基づく他の値によって表される構成であってもよい。当該４つの引数には、第２教示点の位置及び姿勢を指定する第３１引数、制御点Ｔの動きを指定する第３２引数、加速終了位置姿勢と減速開始位置姿勢とのいずれか一方を返り値として指定する第３３引数、並進運動と回転運動とのいずれか一方を制御点Ｔの運動として指定する第３４引数のそれぞれが含まれている。
【００９６】
ここで、図１２に示した例では、「ＣｏｎｓｔＳｐｄＤｐａｒａｍ」には、「Ｐ１」によって第２教示点の位置及び姿勢が第３１引数として渡されている。また、当該例では、「ＣｏｎｓｔＳｐｄＤｐａｒａｍ」には、「Ｍｏｖｅ」によって制御点Ｔの動きが第３２引数として渡されている。また、当該例では、「ＣｏｎｓｔＳｐｄＤｐａｒａｍ」には、「Ａｃｃｅｌｅｒａｔｉｏｎ」によって加速終了位置姿勢が第３３引数として渡されている。また、当該例では、「ＣｏｎｓｔＳｐｄＤｐａｒａｍ」には、「Ｔｒａｎｓｌａｔｉｏｎａｌ」によって並進運動が第３４引数として渡されている。
【００９７】
そして、図１２に示した「ｒＤｐａｒａｍｅｔｅｒ」は、「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」が返した返り値を格納する変数である。すなわち、図１２に示した「ｒＤｐａｒａｍｅｔｅｒ＝ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」は、制御点Ｔの並進運動において、制御点Ｔが等速運動を行い始めたタイミングを示す情報を「ｒＤｐａｒａｍｅｔｅｒ」に格納する命令である。命令読込部４６３が当該命令を読み込んだ場合、経路算出部４６５は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔが並進運動によって到達するまでに要する時間を算出する。また、当該場合、経路算出部４６５は、第１教示点から加速終了位置に制御点Ｔが並進運動によって到達するまでに要する時間を算出する。そして、経路算出部４６５は、第１教示点から「Ｐ１」によって指定された第２教示点まで制御点Ｔが並進運動によって到達するまでに要する時間に対する、第１教示点から加速終了位置に制御点Ｔが並進運動によって到達するまでに要する時間の割合を算出する。そして、経路算出部４６５は、算出し割合を、前述のタイミングとして「ｒＤｐａｒａｍｅｔｅｒ」に格納する。
【００９８】
また、図１２に示した「Ｍｏｖｅ  Ｐ１！Ｄ（ｒＤｐａｒａｍｅｔｅｒ）；Ｏｎ  ＤｉｓｐｅｎｓｅＳｔａｒｔ！」は、制御点Ｔが等速運動を行い始めたタイミングにおいて、エンドエフェクターＥが備えるディスペンサーに吐出物の吐出を開始させる命令である。ロボット２０が行う作業が、ディスペンサーを備えたエンドエフェクターＥによって対象物に吐出物を塗布する作業である場合、ロボット２０は、ディスペンサーを制御する装置を備える。そして、ロボット制御部４６７は、ディスペンサーに吐出物の吐出を開始させる要求を当該装置に出力する。命令読込部４６３が当該命令を読み込んだ場合、ロボット制御部４６７は、第１教示点から「Ｐ１」によって指定された第２教示点に制御点Ｔを並進させる際、制御点Ｔが等速運動を行い始めたタイミングにおいて、ディスペンサーに吐出物の吐出を開始させる要求を当該装置に出力する。すなわち、ロボット制御装置４０は、制御点Ｔが等速運動を行い始めた位置とともに、制御点Ｔが等速運動を行い始めた時間によってロボット２０を制御することができる。なお、ロボット制御装置４０は、制御点Ｔが等速運動を行い始めた位置を用いずに、制御点Ｔが等速運動を行い始めた時間によってロボット２０を制御してもよい。例えば、ロボット制御装置４０は、ディスペンサーに吐出物の吐出を開始させる要求を当該装置に出力してから実際にディスペンサーが吐出物の吐出を開始するまでの間のタイムラグに基づいて、ディスペンサーに吐出物の吐出を開始させる要求を当該装置に出力するタイミングを早める制御を行う構成であってもよい。
【００９９】
なお、例えば、上記において説明した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」の「Ａｃｃｅｌｅｒａｔｉｏｎ」を「Ｄｅｃｅｌｅｒａｔｉｏｎ」に変更した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ｄｅｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」は、制御点Ｔの並進運動において、制御点Ｔが等速運動を行い終えるタイミングを返り値として返す関数である。
【０１００】
また、例えば、上記において説明した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」の「Ｔｒａｎｓｌａｔｉｏｎａｌ」を「Ｒｏｔａｔｉｏｎａｌ」に変更した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｒｏｔａｔｉｏｎａｌ）」は、制御点Ｔの回転運動において、制御点Ｔが等速運動を行い始めたタイミングを返り値として返す関数である。
【０１０１】
また、例えば、上記において説明した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ａｃｃｅｌｅｒａｔｉｏｎ，Ｔｒａｎｓｌａｔｉｏｎａｌ）」の「Ａｃｃｅｌｅｒａｔｉｏｎ」を「Ｄｅｃｅｌｅｒａｔｉｏｎ」に変更するとともに、「Ｔｒａｎｓｌａｔｉｏｎａｌ」を「Ｒｏｔａｔｉｏｎａｌ」に変更した「ＣｏｎｓｔＳｐｄＤｐａｒａｍ（Ｐ１，Ｍｏｖｅ，Ｄｅｃｅｌｅｒａｔｉｏｎ，Ｒｏｔａｔｉｏｎａｌ）」は、制御点Ｔの回転運動において、制御点Ｔが等速運動を行い終えるタイミングを、返り値として返す。
【０１０２】
＜ロボット制御装置が情報処理装置の表示部に等速区間を表示する処理＞
以下、図１３を参照し、ロボット制御装置４０が情報処理装置５０の表示部５５に等速区間を表示する処理について説明する。この処理により、ロボット制御装置４０は、情報処理装置５０によるロボット制御装置４０へのロボット２０の動作の教示において、等速区間を視覚的にユーザーに提供することができる。その結果、ロボット制御装置４０は、当該教示によって教示された情報に基づいて、ロボット２０に精度の高い作業を行わせることができる。
【０１０３】
図１３は、ロボット制御装置４０が情報処理装置５０の表示部５５に等速区間を表示する処理の流れの一例を示す図である。
【０１０４】
命令読込部４６３は、第１メモリー４２に予め記憶された動作プログラムを第１メモリー４２から読み出す（ステップＳ１１０）。
【０１０５】
次に、命令読込部４６３は、ステップＳ１１０において第１メモリー４２から読み出した動作プログラムを読み込む。そして、命令読込部４６３が読み込んだ動作プログラムに基づいて、経路算出部４６５は、制御点経路を算出する（ステップＳ１２０）。
【０１０６】
次に、経路算出部４６５は、命令読込部４６３が読み込んだ動作プログラムに基づいて、ステップＳ１２０において算出した制御点経路において、加速終了位置姿勢と、減速開始位置姿勢とを算出する。経路算出部４６５は、算出した加速終了位置姿勢及び減速開始位置姿勢に基づいて、当該制御点経路における等速区間を特定する（ステップＳ１３０）。
【０１０７】
次に、表示制御部４６９は、命令読込部４６３が読み込んだ動作プログラムに基づいて、経路表示画像を生成する（ステップＳ１４０）。経路表示画像は、経路算出部４６５が算出した制御点経路を表示する画像である。経路表示画像には、ロボット２０が作業を行う作業領域を仮想的に再現した仮想空間が表示される領域が含まれている。また、当該仮想空間内には、ロボット２０が作業を行う対象物を仮想的に再現した物体等が配置されている。当該対象物は、例えば、ロボット２０が押下するボタン、ロボット２０が回動させるロータリースイッチ、ロボット２０がディスペンサーによって吐出物を塗布する物体等のことである。なお、当該仮想空間内には、ロボット２０を仮想的に再現した仮想ロボットが配置されてもよく、当該仮想ロボットが配置されなくてもよい。また、当該仮想空間内における位置は、ロボット２０のロボット座標系における位置と対応付けられている。
【０１０８】
次に、表示制御部４６９は、ステップＳ１３０において経路算出部４６５が特定した等速区間を、ステップＳ１４０において生成した経路表示画像に重畳する（ステップＳ１５０）。なお、表示制御部４６９は、ステップＳ１２０において算出した制御点経路を、当該経路表示画像に重畳する構成であってもよく、当該経路表示画像に重畳しない構成であってもよい。
【０１０９】
ここで、図１４は、ステップＳ１５０において表示制御部４６９が等速区間を示す画像の一例を示す図である。図１４に示した画像ＰＴ１は、経路表示画像に含まれる領域のうちロボット２０が作業を行う作業領域を仮想的に再現した仮想空間が表示される領域の一例である。なお、図１４では、一例として、ロボット２０が行う作業が、前述のボタンの品質を検査する作業である場合について説明する。
【０１１０】
画像ＰＴ１に表示された仮想空間内に配置されたボタンＢＴは、ロボット２０により検査される対象となるボタンを仮想的に再現した仮想ボタンである。また、画像ＰＴ１に表示された仮想空間内に配置されたロボットＶＲは、ロボット２０を仮想的に再現した仮想ロボットである。また、画像ＰＴ１に表示された仮想空間内に配置されたエンドエフェクターＶＥは、エンドエフェクターＥを仮想的に再現した仮想エンドエフェクターである。また、画像ＰＴ１に表示された仮想空間内に配置された点ＴＰ１は、第１教示点を示す。また、画像ＰＴ１に表示された仮想空間内に配置された点ＴＰ２は、第２教示点を示す。そして、線ＣＶＰは、画像ＰＴ１に表示された仮想空間内に配置された等速区間を示す画像の一例である。
【０１１１】
なお、画像ＰＴ１において、ユーザーは、情報処理装置５０を介してロボット制御装置４０を操作することにより、仮想空間内を見る視線方向を変化させることができる。また、画像ＰＴ１において、ユーザーは、情報処理装置５０を介してロボット制御装置４０を操作することにより、仮想空間内を見る際の視点の位置を変化させることができる。これにより、ユーザーは、所望の位置から所望の方向に向かって見た場合の仮想空間内を経路表示画像内に表示させることができる。
【０１１２】
また、図１５は、ステップＳ１５０において表示制御部４６９が等速区間を示す画像の他の例を示す図である。図１５に示した画像ＰＴ２は、経路表示画像に含まれる領域のうちロボット２０が作業を行う作業領域を仮想的に再現した仮想空間が表示される領域の他の例である。なお、図１５では、一例として、ロボット２０が行う作業が、ディスペンサーによって対象物に吐出物を塗布する作業である場合について説明する。
【０１１３】
画像ＰＴ２に表示された仮想空間内に配置された物体ＶＯは、ディスペンサーによって吐出物が塗布される対象物を仮想的に再現した仮想対象物である。また、画像ＰＴ２に表示された仮想空間内に配置されたエンドエフェクターＶＥ２は、ディスペンサーを備えたエンドエフェクターＥを仮想的に再現した仮想エンドエフェクターである。また、画像ＰＴ２表示された仮想空間内に配置された点ＴＰ３は、第１教示点を示す。そして、線ＣＶＰ２は、画像ＰＴ２表示された仮想空間内に配置された等速区間を示す画像の一例である。
【０１１４】
なお、画像ＰＴ２において、ユーザーは、情報処理装置５０を介してロボット制御装置４０を操作することにより、仮想空間内を見る視線方向を変化させることができる。また、画像ＰＴ２において、ユーザーは、情報処理装置５０を介してロボット制御装置４０を操作することにより、仮想空間内を見る際の視点の位置を変化させることができる。これにより、ユーザーは、所望の位置から所望の方向に向かって見た場合の仮想空間内を経路表示画像内に表示させることができる。
【０１１５】
図１４及び図１５に示したような仮想空間内を表示する経路表示画像によって等速区間を視覚的に確認することにより、ユーザーは、制御点経路においてロボット２０に作業を行わせたい所望の区間が等速区間となっているか否かを容易に短時間でチェックすることができる。その結果、ユーザーは、情報処理装置５０を介してロボット制御装置４０に対して精度の高い教示を行うことができる。
【０１１６】
図１３に戻る。ステップＳ１５０の処理が行われた後、表示制御部４６９は、ステップＳ１５０において等速区間を示す画像を重畳した経路表示画像を示す経路表示画像情報を生成する（ステップＳ１６０）。
【０１１７】
次に、表示制御部４６９は、ステップＳ１６０において生成した経路表示画像情報を情報処理装置５０に出力し、情報処理装置５０の表示部５５に、ステップＳ１５０において等速区間を示す画像を重畳した経路表示画像を表示させ（ステップＳ１７０）、処理を終了する。
【０１１８】
ここで、図１６を参照し、経路表示画像に基づいてユーザーがロボット制御装置４０に教示した動作における制御点Ｔの速度の変化の具体例について説明する。図１６は、経路表示画像に基づいてユーザーが教示した動作における制御点Ｔの速度の変化の具体例を示す図である。なお、図１６では、説明を簡略化するため、制御点Ｔが第１教示点から第２教示点まで直線的に移動する間における制御点Ｔの速度の変化の一例を示している。図１６に示したグラフの縦軸は、制御点Ｔの速度を示す。また、当該グラフの横軸は、制御点Ｔが移動する直線上における制御点Ｔの位置を示す。
【０１１９】
図１６に示した例では、ロボット制御装置４０は、第１教示点の位置の一例である位置ＸＰ１から第２教示点の位置の一例である位置ＸＰ６まで制御点Ｔを移動させる間において、ロボット２０に作業を行わせている。ここで、位置ＸＰ２は、当該例における加速終了位置を示す。また、位置ＸＰ５は、当該例における減速開始位置を示す。そして、位置ＸＰ３は、ロボット制御装置４０がロボット２０に作業を開始させた位置の一例を示す。また、位置ＸＰ４は、ロボット制御装置４０がロボット２０に作業を終了させた位置の一例を示す。
【０１２０】
すなわち、図１６に示した例では、ロボット制御装置４０は、制御点Ｔが等速区間の始点である加速終了位置に到達したタイミングにおいてロボット２０に作業を開始させず、加速終了位置よりも予め決められた距離だけ第２教示点側の位置に制御点Ｔが到達したタイミングにおいてロボット２０に作業を開始させている。これにより、ロボット制御装置４０は、ロボット２０に作業を開始させるタイミングにおいて制御点Ｔの速度が誤差等によって変化してしまうことを、より確実に抑制することができる。また、当該例では、ロボット制御装置４０は、制御点Ｔが等速区間の終点である減速開始位置に到達したタイミングにおいてロボット２０に作業を終了させず、減速開始位置よりも予め決められた距離だけ第１教示点側の位置に制御点Ｔが到達したタイミングにおいてロボット２０に作業を終了させている。これにより、ロボット制御装置４０は、ロボット２０に作業を終了させるタイミングにおいて制御点Ｔの速度が誤差等によって変化してしまうことを、より確実に抑制することができる。
【０１２１】
なお、図１６に示した例は、一例に過ぎず、ロボット制御装置４０は、加速終了位置に制御点Ｔが到達したタイミングにおいてロボット２０に作業を開始させる構成であってもよい。また、ロボット制御装置４０は、減速開始位置に制御点Ｔが到達したタイミングにおいてロボット２０に作業を終了させる構成であってもよい。
【０１２２】
なお、上記において説明したロボット制御装置４０が備える機能のうちの一部又は全部は、情報処理装置５０に備えられている構成であってもよくロボット制御装置４０と情報処理装置５０との両方に備えられている構成であってもよい。
【０１２３】
以上のように、制御装置（この一例において、制御装置３０）は、ロボットアームに設けられたエンドエフェクター（この一例において、エンドエフェクターＥ）によって対象物に所定の作業を行うロボット（この一例において、ロボット２０）を制御する制御装置であって、教示された、エンドエフェクターの所定の部位（この一例において、エンドエフェクターＥの中心軸上の位置）が通過する第１位置（この一例において、第１教示点の位置）と、教示された、対象物に当該作業を始める第２位置と、第１位置と第２位置との間に位置し、対象物に対するエンドエフェクターの速度が一定となる第３位置（上記において説明した例では、例えば、線ＣＶＰの始点の位置）と、を含む第１画像（この一例において、経路表示画像）を表示させる表示信号を出力する表示制御部（この一例において、表示制御部４６９）、を備える。これにより、制御装置は、ロボットに行わせる作業の精度、効率のうちのいずれか一方又は両方を向上させることができる。
【０１２４】
また、制御装置では、表示制御部は、第１画像に対象物の第２画像（この一例において、仮想対象物）を重畳させる、構成が用いられてもよい。
【０１２５】
また、制御装置では、表示制御部は、第１位置から第３位置を経由して描かれる線（この一例において、等速区間を示す画像）を、第１画像に重畳させる、構成が用いられてもよい。
【０１２６】
また、制御装置は、連続経路制御におけるロボットの制御点（この一例において、制御点Ｔ）の経路（この一例において、制御点経路）を算出する経路算出部（この一例において、経路算出部４６５）を備え、経路算出部は、予め決められた命令（この一例において、動作プログラム）に基づいて、連続経路制御によって制御点を第１教示点から第２教示点へ動かす経路において、制御点の並進運動における加速が終わる位置（この一例において、加速終了位置）と、制御点の並進運動における減速が始まる位置（減速開始位置）とのいずれか一方又は両方を算出する。これにより、制御装置は、ロボットに行わせる作業の精度、効率のうちのいずれか一方又は両方を向上させることができる。
【０１２７】
また、制御装置では、経路算出部は、前記制御点の並進運動における加速が終わる位置又は時間（この一例において、制御点Ｔが等速運動を行い始めたタイミング）と、制御点の並進運動における減速が始まる位置又は時間（この一例において、制御点Ｔが等速運動を行い終えたタイミング）とのいずれか一方又は両方を算出する、構成が用いられてもよい。
【０１２８】
また、制御装置では、経路算出部は、予め決められた命令に基づいて、連続経路制御によって制御点を第１教示点から第２教示点へ動かす経路において、制御点の回転運動における加速が終わる姿勢と、制御点の回転運動における減速が始まる姿勢とのいずれか一方又は両方を算出する、構成が用いられてもよい。
【０１２９】
また、制御装置では、経路算出部は、制御点の回転運動における加速が終わる姿勢又は時間と、制御点の回転運動における減速が始まる姿勢又は時間とのいずれか一方又は両方を算出する、構成が用いられてもよい。
【０１３０】
また、制御装置では、経路算出部が算出した経路を表示する経路表示画像を生成し、経路算出部が算出した経路に含まれる区間のうち制御点が等速で動く等速区間を経路表示画像に重畳する表示制御部を備える、構成が用いられてもよい。
【０１３１】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１３２】
また、以上に説明した装置における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。当該装置は、例えば、制御装置３０、ロボット制御装置４０、情報処理装置５０等である。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１３３】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル、差分プログラム等であってもよい。
【符号の説明】
【０１３４】
１…ロボットシステム、２０…ロボット、３０…制御装置、３２…第１メモリー、４０…ロボット制御装置、４１…第１プロセッサー、４２…第１メモリー、４４…第１通信部、４６…制御部、５０…情報処理装置、５１…第２プロセッサー、５２…第２メモリー、５３…入力受付部、５４…第２通信部、５５…表示部、４６１…取得部、４６３…命令読込部、４６５…経路算出部、４６７…ロボット制御部、４６９…表示制御部、Ａ…アーム、Ｂ…基台、Ｅ…エンドエフェクター、ＦＳ…力検出部、Ｍ…マニピュレーター、Ｔ…制御点
【図１】
2019188542.tif 000003
【図２】
2019188542.tif 000004
【図３】
2019188542.tif 000005
【図４】
2019188542.tif 000006
【図５】
2019188542.tif 000007
【図６】
2019188542.tif 000008
【図７】
2019188542.tif 000009
【図８】
2019188542.tif 000010
【図９】
2019188542.tif 000011
【図１０】
2019188542.tif 000012
【図１１】
2019188542.tif 000013
【図１２】
2019188542.tif 000014
【図１３】
2019188542.tif 000015
【図１４】
2019188542.tif 000016
【図１５】
2019188542.tif 000017
【図１６】
2019188542.tif 000018