(57)【要約】【課題】従来に対してロボットの一連の総動作時間を短縮可能とする。【解決手段】ロボットアーム１０１の動作軌道である第１軌道を生成する軌道生成部２０４と、エンドエフェクタ１０２の動作軌道である第２軌道を生成する軌道生成部２０８と、軌道生成部２０４により生成された第１軌道の動作時間及び軌道生成部２０８により生成された第２軌道の動作時間を算出する動作時間算出部２１０とを備えた。【選択図】図１
2020175473.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームの動作軌道である第１軌道を生成する第１軌道生成部と、
エンドエフェクタの動作軌道である第２軌道を生成する第２軌道生成部と、
前記第１軌道生成部により生成された第１軌道の動作時間及び前記第２軌道生成部により生成された第２軌道の動作時間を算出する動作時間算出部と
を備えた動作計画装置。
【請求項２】
前記第１軌道生成部は、動作指示及び前記ロボットアームの制約条件に基づいて、第１軌道を生成し、
前記第２軌道生成部は、動作指示及び前記エンドエフェクタの制約条件に基づいて、第２軌道を生成する
ことを特徴とする請求項１記載の動作計画装置。
【請求項３】
動作指示には、動作開始タイミングが含まれる
ことを特徴とする請求項２記載の動作計画装置。
【請求項４】
動作指示を設定するためのビジュアルプログラミングに関する画面を生成する画面生成部を備えた
ことを特徴とする請求項２又は請求項３記載の動作計画装置。
【請求項５】
前記エンドエフェクタは、処理対象物を把持するロボットハンドである
ことを特徴とする請求項１から請求項４のうちの何れか１項記載の動作計画装置。
【請求項６】
ロボットアームの動作軌道である第１軌道を生成する第１軌道生成ステップと、
エンドエフェクタの動作軌道である第２軌道を生成する第２軌道生成ステップと、
前記第１軌道生成ステップにおいて生成した第１軌道の動作時間及び前記第２軌道生成ステップにおいて生成した第２軌道の動作時間を算出する動作時間算出ステップと
を有する動作計画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットアームとエンドエフェクタの動作を計画する動作計画装置及び動作計画方法に関する。
【背景技術】
【０００２】
従来から、ロボットアームと、ロボットハンド等のエンドエフェクタとを備えたロボット（産業用ロボット）が、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）用途等で広く活用されている（例えば特許文献１参照）。
このようなロボットアーム又はエンドエフェクタの動作を、ロボットが備えるコントローラに対してユーザ（オペレータ）が指定する場合、動作指令生成装置（動作計画装置）を使用する（例えば特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許４２２８８７１号
【特許文献２】特開２０１８−６９３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献２では、ロボットの動作を完了するまでの待機時間をユーザが把握可能な動作指令により、ロボットを制御することを目的としている。なお、待機時間とは、実質的に所要時間（ロボットの一連の総動作時間）に相当する。そして、特許文献２では、ロボットに行わせる作業の所要時間が長くなると、ロボットの動作が完了するまでユーザがどの程度待たなければならないのかの予測が困難となり、ユーザの行動計画に支障をきたすおそれがあると指摘している。逆に言えば、この所要時間を短縮することが重要な要求事項であるとも言える。すなわち、この所要時間の短縮に繋がる改善が求められている。
【０００５】
この発明は、上記のような課題を解決するためになされたもので、従来に対してロボットの一連の総動作時間を短縮可能な動作計画装置を提供することを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係る動作計画装置は、ロボットアームの動作軌道である第１軌道を生成する第１軌道生成部と、エンドエフェクタの動作軌道である第２軌道を生成する第２軌道生成部と、第１軌道生成部により生成された第１軌道の動作時間及び第２軌道生成部により生成された第２軌道の動作時間を算出する動作時間算出部とを備えたことを特徴とする。
【発明の効果】
【０００７】
この発明によれば、上記のように構成したので、従来に対してロボットの一連の総動作時間を短縮可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る動作計画システムの構成例を示す図である。
【図２】従来の動作計画と、実施の形態１に係る動作計画装置により得られる動作計画との比較例を示す図である。
【図３】実施の形態１における画面生成部により生成されたビジュアルプログラミング画面の一例を示す図である。
【図４】図３に示すビジュアルプログラミング画面に対する動作オブジェクトの配置の一例を示す図である。
【図５】実施の形態１における画面生成部により生成されたロボットアームに対する詳細動作設定画面の一例を示す図である。
【図６】実施の形態１における画面生成部により生成された平行二指ハンドに対する詳細動作設定画面の一例を示す図である。
【図７】実施の形態１における画面生成部により生成されたバキュームに対する詳細動作設定画面の一例を示す図である。
【図８】実施の形態１における画面生成部により生成されたビジュアルプログラミング画面に対する動作オブジェクトの位置編集の一例を示す図である。
【図９】実施の形態２に係る動作計画システムの構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態１．
図１は実施の形態１に係る動作計画システムの構成例を示す図である。
動作計画システムは、図１に示すように、ロボット１、ロボットコントローラ２、描画コントローラ３、入力装置４及び表示装置５を備えている。ロボット１は、ロボットアーム１０１及びエンドエフェクタ１０２を備えている。また、ロボットコントローラ２及び描画コントローラ３は、動作計画装置を構成する。
【００１０】
ロボットアーム１０１は、ロボットコントローラ２による動作計画の対象となる部位である。ロボットアーム１０１は、例えば垂直多関節型アームである。
【００１１】
エンドエフェクタ１０２は、ロボットコントローラ２による動作計画の対象となる部位であり、ロボットアーム１０１の先端に取付けられる。エンドエフェクタ１０２は、例えば、処理対象物（不図示）を把持する平行二指ハンド等のロボットハンド、又は、処理対象物を吸引して保持するバキュームである。
【００１２】
なお、ロボットアーム１０１及びエンドエフェクタ１０２は、実体として現実空間に存在するものでもよいし、ソフトウェアシミュレータとしてデジタル空間のみに存在するものでもよい。
【００１３】
ロボットコントローラ２は、ロボットアーム１０１とエンドエフェクタ１０２に対して動作計画を行い、ロボットアーム１０１及びエンドエフェクタ１０２の動作を２系統で制御する装置である。ロボットコントローラ２は、図１に示すように、入出力部２０１、現在値取得部（第１現在値取得部）２０２、状態管理部（第１状態管理部）２０３、軌道生成部（第１軌道生成部）２０４、制御部（第１制御部）２０５、現在値取得部（第２現在値取得部）２０６、状態管理部（第２状態管理部）２０７、軌道生成部（第２軌道生成部）２０８、制御部（第２制御部）２０９及び動作時間算出部２１０を備えている。なお、ロボットコントローラ２は、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の処理回路、又はメモリ等に記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等により実現される。
【００１４】
入出力部２０１は、情報の入出力を行う。この入出力部２０１は、描画コントローラ３、状態管理部２０３、状態管理部２０７及び動作時間算出部２１０から情報を入力する。また、入出力部２０１は、描画コントローラ３、状態管理部２０３、軌道生成部２０４、状態管理部２０７及び軌道生成部２０８に対して情報を出力する。
【００１５】
現在値取得部２０２は、ロボットアーム１０１から第１現在値を取得する。第１現在値は、ロボットアーム１０１の現在の状態を示す値である。
【００１６】
状態管理部２０３は、第１状態情報を管理する。第１状態情報は、入出力部２０１からのロボットアーム１０１の制約条件を示す情報と、現在値取得部２０２により取得された第１現在値を示す情報とを含む。ロボットアーム１０１の制約条件としては、例えば、ロボットアーム１０１の先端の速度上限及び加速度上限、ロボットアーム１０１が有する関節の角速度上限及び角加速度上限、並びに、ロボットアーム１０１の構造等が挙げられる。
【００１７】
軌道生成部２０４は、入出力部２０１からの動作指示を示す情報及び状態管理部２０３により管理されている第１状態情報に基づいて、第１軌道を生成する。第１軌道は、ロボットアーム１０１の動作軌道である。動作指示としては、例えば、ロボットアーム１０１の移動元、移動先、移動方法、移動速度制限比、及び動作開始タイミング等が挙げられる。また、第１軌道は、制御周期毎の指令値の時系列なテーブルで表される。
【００１８】
なお、ロボットコントローラ２が実機（ロボット１）に接続されている場合には、軌道生成の始点は第１現在値となるため、軌道生成部２０４における軌道生成に第１現在値が必須である。
一方、ロボットコントローラ２が実機に接続されていない場合（シミュレータに接続されている場合）には、軌道生成の始点をユーザが任意に設定して動作計画を行う場合もあるため、軌道生成部２０４における軌道生成に第１現在値は必須ではない。
【００１９】
制御部２０５は、現在値取得部２０２により取得された第１現在値及び軌道生成部２０４により生成された第１軌道に基づいて、ロボットアーム１０１を制御する。すなわち、制御部２０５は、第１軌道を制御周期毎に順番に読込み、ロボットアーム１０１に対して指令出力又は制御を行う。
【００２０】
現在値取得部２０６は、エンドエフェクタ１０２から第２現在値を取得する。第２現在値は、エンドエフェクタ１０２の現在の状態を示す値である。
【００２１】
状態管理部２０７は、第２状態情報を管理する。第２状態情報は、入出力部２０１からのエンドエフェクタ１０２の制約条件を示す情報と、現在値取得部２０６により取得された第２現在値を示す情報とを含む。エンドエフェクタ１０２の制約条件としては、例えば、エンドエフェクタ１０２の速度上限及び加速度上限、並びに、エンドエフェクタ１０２の構造等が挙げられる。
【００２２】
軌道生成部２０８は、入出力部２０１からの動作指示を示す情報及び状態管理部２０７により管理されている第２状態情報に基づいて、第２軌道を生成する。第２軌道は、エンドエフェクタ１０２の動作軌道である。エンドエフェクタ１０２がロボットハンドである場合には、動作指示としては、例えば、ロボットハンドの始点、終点、移動速度制限比、及び動作開始タイミング等が挙げられる。また、エンドエフェクタ１０２がバキュームである場合には、動作指示としては、オン継続時間、及び動作開始タイミング等が挙げられる。また、第２軌道は、制御周期毎の指令値の時系列なテーブルで表される。
【００２３】
なお、ロボットコントローラ２が実機（ロボット１）に接続されている場合には、軌道生成の始点は第２現在値となるため、軌道生成部２０８における軌道生成に第２現在値が必須である。
一方、ロボットコントローラ２が実機に接続されていない場合（シミュレータに接続されている場合）には、軌道生成の始点をユーザが任意に設定して動作計画を行う場合もあるため、軌道生成部２０８における軌道生成に第２現在値は必須ではない。
【００２４】
制御部２０９は、現在値取得部２０６により取得された第２現在値及び軌道生成部２０８により生成された第２軌道に基づいて、エンドエフェクタ１０２を制御する。すなわち、制御部２０９は、第２軌道を制御周期毎に順番に読込み、エンドエフェクタ１０２に対して指令出力又は制御を行う。
【００２５】
動作時間算出部２１０は、軌道生成部２０４により生成された第１軌道の動作時間及び軌道生成部２０８により生成された第２軌道の動作時間を算出する。この際、動作時間算出部２１０は、軌道生成部２０４により生成された第１軌道のタイムステップ数を集計することで、ロボットアーム１０１の動作時間を算出する。また、動作時間算出部２１０は、軌道生成部２０８により生成された第２軌道のタイムステップ数を集計することで、エンドエフェクタ１０２の動作時間を算出する。
【００２６】
描画コントローラ３は、ロボットコントローラ２での動作計画をビジュアルプログラミングで実現するための各種処理を行う。描画コントローラ３は、入出力部３０１及び画面生成部３０２を備えている。なお、描画コントローラ３は、システムＬＳＩ等の処理回路、又はメモリ等に記憶されたプログラムを実行するＣＰＵ等により実現される。
【００２７】
入出力部３０１は、情報の入出力を行う。この入出力部３０１は、入力装置４及び入出力部２０１から情報を入力する。また、入出力部３０１は、入出力部２０１及び画面生成部３０２に対して情報を出力する。
【００２８】
画面生成部３０２は、入出力部３０１からの情報に応じ、動作指示を設定するためのビジュアルプログラミングに関する画面を生成する。この画面生成部３０２により生成された画面は、表示装置５に表示される。
【００２９】
例えば、画面生成部３０２は、ビジュアルプログラミング画面を生成する。ビジュアルプログラミング画面は、ユーザが、ロボットアーム１０１又はエンドエフェクタ１０２の動作を設定するための画面である。また、画面生成部３０２は、詳細動作設定画面を生成する。詳細動作設定画面は、ユーザが、ビジュアルプログラミング画面で設定したロボットアーム１０１又はエンドエフェクタ１０２の動作に対する詳細情報の設定を行うための画面である。
【００３０】
入力装置４は、ユーザがロボットアーム１０１及びエンドエフェクタ１０２の動作計画を行うためのデバイスであり、ユーザから情報の入力を受付けるデバイスである。入力装置４は、例えば、マウス、キーボード又はタッチパネル等である。
【００３１】
表示装置５は、ユーザがロボットアーム１０１及びエンドエフェクタ１０２の動作計画を行うためのデバイスであり、画面生成部３０２により生成された画面の表示等のように各種の表示を行う。表示装置５は、例えば、ディスプレイ又はタッチパネル等である。
【００３２】
なお、図１に示す動作計画装置では、ユーザは、ビジュアルプログラミング方式で動作計画を行う。ビジュアルプログラミング方式は、テキストでプログラムを記述する方式ではなく、矩形又は円形等のオブジェクトを画面上に配置し、それらを矢印、線又は弧等で繋いだり、ブロック状のオブジェクトを組合わせたりすることで、視覚的にプログラムを記述する方式である。
図１に示す動作計画装置では、ビジュアルプログラミング方式を採用することで、動作の所要時間及び動作開始タイミングを容易に可視化でき、ユーザは、総動作時間が短くなるようなプログラムを記述し易くなる。
【００３３】
ロボットアーム１０１及びエンドエフェクタ１０２は、図２の左側に示すように、直列的な動作が一般的である。すなわち、図２の左側に示すように、従来の動作計画（プログラム）では、第１のアーム動作を実行し、第１のアーム動作の実行完了後に第１のエンドエフェクタ動作を実行し、第１のエンドエフェクタ動作の実行完了後に第２のアーム動作を実行し、第２のアーム動作の実行完了後に第２のエンドエフェクタ動作を実行し、第２のエンドエフェクタ動作の実行完了後に第３のアーム動作を実行するというような動作を行う。
【００３４】
一方、従来方式でも、ロボットアーム１０１とエンドエフェクタ１０２は別系統で制御されている。すなわち、動作次第では、例えばロボットアーム１０１の移動中にエンドエフェクタ１０２が動作の準備状態に移行することも可能である。よって、この点において、総動作時間の一部（図２で符号２１が示す時間）を短縮できる余地がある。
そこで、実施の形態１に係る動作計画装置では、図２の右側に示すように、ロボットアーム１０１とエンドエフェクタ１０２の動作計画を独立した２つのシーケンスで実施可能とする。これにより、実施の形態１に係る動作計画装置では、ロボットアーム１０１の動作と同時（並列処理的）にエンドエフェクタ１０２の動作も実施可能となり、総動作時間を短縮可能となる。
【００３５】
なおこの場合、通常の自動機械等の装置内の別ユニットが固定的な動作を並列に実行するような場合とは異なり、ロボットアーム１０１とエンドエフェクタ１０２が、ユーザにとってフレキシブルに協働する構成要件であることに留意して、動作のタイミングをユーザが編集できることが好ましい。
【００３６】
次に、画面生成部３０２により生成されるビジュアルプログラミングに関する画面の一例について説明する。
画面生成部３０２は、まず、ユーザ操作に応じ、ビジュアルプログラミング画面を生成する。図３に、ビジュアルプログラミング画面の一例を示す。図３に示すビジュアルプログラミング画面には、制御タイムライン３１及び制御タイムライン３２が上下並列に表示されている。また、図３に示すビジュアルプログラミング画面には、左下に、動作オブジェクト３３が表示されている。また、図３に示すビジュアルプログラミング画面には、右下に、設定完了ボタン３４が表示されている。
【００３７】
制御タイムライン３１は、ロボットアーム１０１の動作オブジェクト３３ａを時系列に並べるための時間軸である。制御タイムライン３１では、左端を制御開始時刻とし、任意のタイムスケールで表示される。
【００３８】
制御タイムライン３２は、エンドエフェクタ１０２の動作オブジェクト３３ｂを時系列に並べるための時間軸である。制御タイムライン３２では、左端を制御開始時刻とし、任意のタイムスケールで表示される。
なお、タイムスケールは、制御タイムライン３１と制御タイムライン３２とで連動しており、他方だけを変更することはできない。
【００３９】
動作オブジェクト３３は、ロボットアーム１０１又はエンドエフェクタ１０２の一動作を表す矩形のオブジェクトである。動作オブジェクト３３の左端の位置が動作の開始時刻を表し、右端の位置が動作の終了時刻を表し、動作オブジェクト３３の長さが動作時間を表す。
【００４０】
そして、ユーザは、ビジュアルプログラミング画面を用いてロボットアーム１０１及びエンドエフェクタ１０２の動作計画を行う。この動作計画は、動作オブジェクト３３の配置、動作オブジェクト３３が示す動作の詳細情報の設定、及び、動作オブジェクト３３の位置編集という手順で実現される。
【００４１】
まず、図３，４に示すように、ユーザは、所定の手続きにより、任意のタイムライン（制御タイムライン３１又は制御タイムライン３２）上に動作オブジェクト３３を配置する。この際、ユーザは、例えば、マウスを用いて任意のタイムライン上に動作オブジェクト３３をドラッグアンドドロップすることで、任意のタイムライン上に動作オブジェクト３３を配置する。図４に示すビジュアルプログラミング画面では、制御タイムライン３１上に動作オブジェクト３３ａが配置されている。なお図４において、符号３５はカーソルを示している。
【００４２】
次に、ユーザは、所定の手続きにより、配置した動作オブジェクト３３が示す動作の詳細情報を設定する。この際、例えば、任意のタイムライン上に動作オブジェクト３３が配置されることで、画面生成部３０２は、自動的に、当該動作オブジェクト３３が示す動作の詳細情報を設定するための詳細動作設定画面を生成する。そして、ユーザは、マウスによる選択又はキーボードによる数値入力等によって、上記動作の詳細情報を設定する。
以下、ロボットアーム１０１及びエンドエフェクタ１０２の動作の詳細情報について説明する。
【００４３】
まず、ロボットアーム１０１の動作の詳細情報について説明する。
例えばロボットアーム１０１が６つの関節から成る垂直多関節型アームである場合、ロボットアーム１０１の状態は各関節の角度により一意に決定される。この際、各関節の角度を表す座標系を関節座標系と呼ぶ。また、ロボットアーム１０１の状態は、ベース座標系又はワールド座標系等のように、様々な座標系で表現可能である。ベース座標系は、デカルト空間におけるロボットアーム１０１の先端の位置及び姿勢を表す座標系である。ワールド座標系は、デカルト空間における任意の座標系を基準とし、ロボットアーム１０１の先端の位置及び姿勢を表す座標系である。そして、ユーザは、これらの座標系のうちの任意の座標系を用い、ロボットアーム１０１の動作の始点となる状態と動作の終点となる状態とを、ロボットアーム１０１の動作の詳細情報として設定する。
【００４４】
また、ロボットアーム１０１の動作の場合、動作の始点となる状態から動作の終点となる状態までをどのように補間するのかを指定する必要がある。この補間方法としては、例えば、関節補間又は直線補間が挙げられる。関節補間は、関節座標系で始点と終点とを線形補間する方法である。直線補間は、デカルト空間で始点と終点とを線形補間する方法である。始点と終点が同じ且つ制約条件が同じ場合でも、関節補間と直線補間とでは各関節の動きが異なるため、動作時間は異なる。そのため、ロボットアーム１０１の動作の場合には、ユーザは、軌道の種類（補間方法の種類）を詳細情報として設定する。
【００４５】
図５に、ロボットアーム１０１の動作の詳細情報を設定するための詳細動作設定画面（ダイアログ）の一例を示す。図５では、ロボットアーム１０１が６つの関節から成る垂直多関節型アームである場合を想定している。
図５に示すように、詳細動作設定画面には、ロボットアーム１０１の始点及び終点、並びに、軌道の種類を設定するための項目がそれぞれ設けられている。
【００４６】
図５に示す詳細動作設定画面において、ユーザがロボットアーム１０１の始点と終点を設定する場合、ユーザは、まず、マウスを用いて座標系リストボックス５１，５２から任意の座標系を選択する。図５では、ユーザにより関節座標系が選択された場合を示している。
【００４７】
そして、ユーザにより座標系が選択されると、画面生成部３０２は、座標系リストボックス５１，５２の右横に、当該座標系に応じて必要な数のテキストボックス５３，５４を表示する。図５に示す詳細動作設定画面では、関節座標系が選択されているため、各関節の角度を入力可能な６つのテキストボックス５３，５４が表示される。
そして、ユーザは、マウスを用いてテキストボックス５３，５４をクリックし、キーボードで角度を数値で入力する。
【００４８】
なお、ユーザによりベース座標系又はワールド座標系等のデカルト空間における座標系が選択された場合、画面生成部３０２は、ロボットアーム１０１の先端の位置（Ｘ座標、Ｙ座標、Ｚ座標）と姿勢（オイラー角：ロール、ピッチ、ヨー）を入力可能な６つのテキストボックス５３，５４を表示する。又は、ユーザによりベース座標系又はワールド座標系等のデカルト空間における座標系が選択された場合、画面生成部３０２は、ロボットアーム１０１の先端の位置（Ｘ座標、Ｙ座標、Ｚ座標）と姿勢（四元数：ｘ，ｙ，ｚ，ｗ）を入力可能な７つのテキストボックス５３，５４を表示する。
【００４９】
そして、ユーザが軌道の種類を設定する場合、ユーザは、マウスを用いて所望の軌道の種類のラジオボタン５５，５６を選択する。
そして、全項目の入力が完了した後、ユーザは設定完了ボタン５７を選択する。これにより、ロボットアーム１０１の動作の詳細設定が完了する。
【００５０】
次に、エンドエフェクタ１０２の動作の詳細情報について説明する。
例えばエンドエフェクタ１０２が平行二指ハンドである場合、平行二指ハンドの状態は二指の距離又は開度により一意に決定される。そして、ユーザは、平行二指ハンドの動作の始点となる状態と動作の終点となる状態とを、二指の距離又は開度を用いて、平行二指ハンドの動作の詳細情報として設定する。
【００５１】
図６に、平行二指ハンドの動作の詳細情報を設定するための詳細動作設定画面（ダイアログ）の一例を示す。
図６に示すように、詳細動作設定画面には、平行二指ハンドの始点と終点を設定するための項目がそれぞれ設けられている。
【００５２】
図６に示す詳細動作設定画面において、ユーザが平行二指ハンドの始点と終点を設定する場合、ユーザは、マウスを用いてテキストボックス６１，６２をクリックし、キーボードで二指の距離又は開度を数値で入力する。
そして、全項目の入力が完了した後、ユーザは、設定完了ボタン６３を選択する。これにより、平行二指ハンドの動作の詳細設定が完了する。
【００５３】
また例えばエンドエフェクタ１０２がバキュームである場合、バキュームの状態はバキュームのオン及びオフにより一意に決定される。そして、ユーザは、バキュームの動作の始点となる状態と動作の終点となる状態とを、バキュームのオン継続時間を用いて、バキュームの動作の詳細情報として設定する。
【００５４】
図７に、バキュームの動作の詳細情報を設定するための詳細動作設定画面（ダイアログ）の一例を示す。
図７に示すように、詳細動作設定画面には、バキュームのオン継続時間を設定するための項目が設けられている。
【００５５】
図７に示す詳細動作設定画面において、ユーザがバキュームのオン継続時間を設定する場合、ユーザは、マウスを用いてテキストボックス７１をクリックし、キーボードでバキュームのオン継続時間を数値で入力する。
そして、上記項目の入力が完了した後、ユーザは、設定完了ボタン７２を選択する。これにより、バキュームの動作の詳細設定が完了する。
【００５６】
ユーザにより詳細情報が設定されると、軌道生成部２０４は、入出力部２０１からの動作指示を示す情報及び状態管理部２０３により管理されている第１状態情報に基づいて、動作時間がデフォルト値の場合での第１軌道を生成する。同様に、軌道生成部２０８は、入出力部２０１からの動作指示を示す情報及び状態管理部２０７により管理されている第２状態情報に基づいて、動作時間がデフォルト値の場合での第２軌道を生成する。また、画面生成部３０２は、ビジュアルプログラム画面に表示されている該当する動作オブジェクト３３の長さ（動作時間）をデフォルト値に変化させる。
【００５７】
例えば、ロボットアーム１０１の動作オブジェクト３３の長さのデフォルト値は、制約条件下で軌道生成を行った際の動作時間に対応する。この際の制約条件は、例えば、ロボットアーム１０１の先端の速度上限又は加速度上限、或いは、ロボットアーム１０１が有する関節の角速度上限又は角加速度上限である。また、ロボットアーム１０１の動作時間は動作時間算出部２１０により算出される。
【００５８】
また例えば、平行二指ハンドの動作オブジェクト３３の長さのデフォルト値は、制約条件下で軌道生成を行った際の動作時間に対応する。この際の制約条件は、ロボットハンドの速度上限又は加速度上限である。また、平行二指ハンドの動作時間は動作時間算出部２１０により算出される。
【００５９】
また例えば、バキュームの動作オブジェクト３３の長さのデフォルト値は、既定の固定値とする。
【００６０】
次に、図８に示すように、ユーザは、所定の手続きにより、任意のタイムライン上の任意の動作オブジェクト３３を左右にずらし、動作開始タイミングを編集する。この際、ユーザは、例えば、マウスを用いて、任意の動作オブジェクト３３をクリックし、その状態のまま左右に移動させて所望の位置で離すことで、動作オブジェクト３３を左右にずらす。又は、ユーザは、例えば、専用のダイアログを呼び出し、キーボードにより数値を入力することで、動作オブジェクト３３を左右にずらしてもよい。
【００６１】
その後、ユーザは、設定完了ボタン３４を選択する。これにより、ロボットアーム１０１及びエンドエフェクタ１０２の動作計画が完了する。すなわち、軌道生成部２０４は、入出力部２０１からの動作指示を示す情報及び状態管理部２０３により管理されている第１状態情報に基づいて、ユーザにより編集された動作開始タイミングでの第１軌道を生成する。同様に、軌道生成部２０８は、入出力部２０１からの動作指示を示す情報及び状態管理部２０７により管理されている第２状態情報に基づいて、ユーザにより編集された動作開始タイミングでの第２軌道を生成する。
【００６２】
なお、図１に示す動作計画装置では、ユーザがビジュアルプログラミング方式で動作計画を実施可能に構成された場合を示した。しかしながら、これに限らず、動作計画装置は、ユーザがテキスト方式で動作計画を実施可能に構成されていてもよい。
【００６３】
また上記では、エンドエフェクタ１０２としてロボットハンド又はバキュームを用いた場合を示した。しかしながら、これに限らず、エンドエフェクタ１０２として例えば電動ドリルを用いてもよい。この場合、例えば、動作計画装置により、ロボットアーム１０１を下方に下げながら電動ドリルを回すような動作計画を行うことも可能であり、ロボット１はネジ締めを容易に実施可能となる。
【００６４】
以上のように、この実施の形態１によれば、動作計画装置は、ロボットアーム１０１の動作軌道である第１軌道を生成する軌道生成部２０４と、エンドエフェクタ１０２の動作軌道である第２軌道を生成する軌道生成部２０８と、軌道生成部２０４により生成された第１軌道の動作時間及び軌道生成部２０８により生成された第２軌道の動作時間を算出する動作時間算出部２１０とを備えた。これにより、実施の形態１に係る動作計画装置は、従来に対してロボット１の一連の総動作時間を短縮可能となる。
【００６５】
実施の形態２．
実施の形態１に係る動作計画装置では、ロボットコントローラ２を単一とし、入出力部２０１及び動作時間算出部２１０をロボットアーム１０１とエンドエフェクタ１０２とで共通とした場合を示した。しかしながら、これに限らず、ロボットアーム１０１とエンドエフェクタ１０２の制御は別系統であるため、例えば図９に示すように、ロボットアーム１０１用のロボットコントローラ２ａとエンドエフェクタ１０２用のロボットコントローラ２ｂを用い、ロボットアーム１０１とエンドエフェクタ１０２とで独立させた入出力部２０１ａ，２０１ｂ及び動作時間算出部２１０ａ，２１０ｂを用いてもよい。
【００６６】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００６７】
１  ロボット
２，２ａ，２ｂ  ロボットコントローラ
３  描画コントローラ
４  入力装置
５  表示装置
１０１  ロボットアーム
１０２  エンドエフェクタ
２０１，２０１ａ，２０１ｂ  入出力部
２０２  現在値取得部（第１現在値取得部）
２０３  状態管理部（第１状態管理部）
２０４  軌道生成部（第１軌道生成部）
２０５  制御部（第１制御部）
２０６  現在値取得部（第２現在値取得部）
２０７  状態管理部（第２状態管理部）
２０８  軌道生成部（第２軌道生成部）
２０９  制御部（第２制御部）
２１０，２１０ａ，２１０ｂ  動作時間算出部
３０１  入出力部
３０２  画面生成部
【図１】
2020175473.tif 000003
【図２】
2020175473.tif 000004
【図３】
2020175473.tif 000005
【図４】
2020175473.tif 000006
【図５】
2020175473.tif 000007
【図６】
2020175473.tif 000008
【図７】
2020175473.tif 000009
【図８】
2020175473.tif 000010
【図９】
2020175473.tif 000011