(57)【要約】      （修正有）【課題】産業用ロボットが各種の作業を実行する際、作業点又は目標点の数が比較的多い場合においても、マニピュレータが２つの作業点の間を滑らかに移動する軌道を、実用的な計算時間の範囲内で計画すること。【解決手段】調整部７３０が、変更が検出された物体、及び、マニピュレータの少なくとも一方について、現実の寸法よりも大きな判定用モデルを用いてシミュレーションモデルを構築した上で、全体軌道を構成する全ての単位軌道について、両者の衝突判定処理を実行する。その後、調整部７３０は、上記の衝突判定処理において両者が衝突すると判定された単位軌道を計画し直す。一方、上記の衝突判定処理において両者が衝突しないと判定された単位軌道を再利用する。【選択図】図８
2020062741.tif 000002
【特許請求の範囲】
【請求項１】
対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、前記少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）前記対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得部と、
（ｉ）前記変更が生じた後の、前記対象領域の内部の前記１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）前記新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得部と、
Ｎ個の作業領域を順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得部と、
前記Ｎ−１個又はＮ個の軌道を、（ｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類部と、
前記分類部が、前記修正が必要となる軌道に分類した１以上の軌道のそれぞれについて、前記第１モデル情報及び前記第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画部と、
を備え、
前記分類部は、
（ｉ）前記マニピュレータの大きさを拡大したモデル又は（ｉｉ）前記マニピュレータよりも大きく、前記マニピュレータよりも単純な形状を有するモデルである、第１拡大モデルを生成する第１拡大モデル生成部と、
（ａ）前記Ｎ−１個又はＮ個の軌道のそれぞれについて、（ｉ）前記第１モデル情報及び前記第２モデル情報の少なくとも一方により示される各物体のモデル、並びに、（ｉｉ）前記第１拡大モデルの衝突の有無を判定し、（ｂ）（ｉ）前記各物体のモデル及び（ｉｉ）前記第１拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、判定部と、
を有し、
前記Ｎは、２以上の整数である、
制御装置。
【請求項２】
（ｉ）前記第１モデル情報及び前記第２モデル情報の少なくとも一方により示される各物体の大きさを拡大したモデル又は（ｉｉ）前記各物体よりも大きく、前記各物体よりも単純な形状を有するモデルである、第２拡大モデルを生成する第２拡大モデル生成部をさらに備え、
前記判定部は、（ａ）前記Ｎ−１個又はＮ個の軌道のそれぞれについて、（ｉ）前記第２拡大モデル及び（ｉｉ）前記第１拡大モデルの衝突の有無を判定し、（ｂ）（ｉ）前記第２拡大モデル及び（ｉｉ）前記第１拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、
請求項１に記載の制御装置。
【請求項３】
対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、前記少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）前記対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得部と、
（ｉ）前記変更が生じた後の、前記対象領域の内部の前記１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）前記新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得部と、
Ｎ個の作業領域を順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得部と、
前記Ｎ−１個又はＮ個の軌道を、（ｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類部と、
前記分類部が、前記修正が必要となる軌道に分類した１以上の軌道のそれぞれについて、前記第１モデル情報及び前記第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画部と、
を備え、
前記分類部は、
（ｉ）前記第１モデル情報及び前記第２モデル情報の少なくとも一方により示される各物体の大きさを拡大したモデル又は（ｉｉ）前記各物体よりも大きく、前記各物体よりも単純な形状を有するモデルである、第２拡大モデルを生成する第２拡大モデル生成部と、
（ａ）前記Ｎ−１個又はＮ個の軌道のそれぞれについて、（ｉ）前記マニピュレータのモデル及び（ｉｉ）前記第２拡大モデルの衝突の有無を判定し、（ｂ）（ｉ）前記マニピュレータのモデル及び（ｉｉ）前記第２拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、判定部と、
を有し、
前記Ｎは、２以上の整数である、
制御装置。
【請求項４】
前記分類部は、前記Ｎ−１個又はＮ個の軌道のそれぞれについて、各軌道上のＭ個の地点において、前記衝突の有無を判定し、
前記分類部は、前記マニピュレータの大きさ、及び、各拡大モデルの大きさの少なくとも一方に基づいて、前記Ｍの値を決定する精度決定部をさらに有し、
前記Ｍは、１以上の整数である、
請求項１から請求項３までの何れか一項に記載の制御装置。
【請求項５】
前記分類部は、前記Ｎ−１個又はＮ個の軌道のそれぞれについて、各軌道上のＭ個の地点において、前記衝突の有無を判定し、
前記分類部は、関節空間における前記マニピュレータの動作と、現実空間における前記マニピュレータの動作との対応関係に基づいて、前記Ｍの値を決定する精度決定部をさらに有し、
前記Ｍは、１以上の整数である、
請求項１から請求項３までの何れか一項に記載の制御装置。
【請求項６】
（ｉ）前記軌道計画部が計画した前記修正が必要となる軌道における、前記マニピュレータの先端の位置及び姿勢を示す情報と、（ｉｉ）前記軌道情報取得部が取得した前記修正が必要ではない軌道における、前記マニピュレータの先端の位置及び姿勢を示す情報とに基づいて、前記マニピュレータの先端の軌道を決定する軌道決定部をさらに備える、
請求項１から請求項５までの何れか一項に記載の制御装置。
【請求項７】
前記軌道決定部が決定した軌道に基づいて、前記マニピュレータの動作を制御するための制御情報を出力する出力部をさらに備える、
請求項６に記載の制御装置。
【請求項８】
請求項１から請求項７までの何れか一項に記載の制御装置と、
前記マニピュレータと、
を備える、作業ロボット。
【請求項９】
前記マニピュレータの動作を制御する制御部をさらに備え、
前記制御装置は、前記マニピュレータの動作を制御するための制御情報を出力し、
前記制御部は、前記制御装置が出力した前記制御情報に基づいて、前記マニピュレータの動作を制御する、
請求項８に記載の作業ロボット。
【請求項１０】
コンピュータを、請求項１から請求項７までの何れか一項に記載の制御装置として機能させるためのプログラム。
【請求項１１】
対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、前記少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）前記対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得段階と、
（ｉ）前記変更が生じた後の、前記対象領域の内部の前記１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）前記新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得段階と、
Ｎ個の作業領域を順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得段階と、
前記Ｎ−１個又はＮ個の軌道を、（ｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類段階と、
前記分類段階において前記修正が必要となる軌道に分類された１以上の軌道のそれぞれについて、前記第１モデル情報及び前記第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画段階と、
を有し、
前記分類段階は、
（ｉ）前記マニピュレータの大きさを拡大したモデル又は（ｉｉ）前記マニピュレータよりも大きく、前記マニピュレータよりも単純な形状を有するモデルである、第１拡大モデルを生成する第１拡大モデル生成段階と、
（ａ）前記Ｎ−１個又はＮ個の軌道のそれぞれについて、（ｉ）前記第１モデル情報及び前記第２モデル情報の少なくとも一方により示される各物体のモデル、並びに、（ｉｉ）前記第１拡大モデルの衝突の有無を判定し、（ｂ）（ｉ）前記各物体のモデル及び（ｉｉ）前記第１拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、判定段階と、
を含み、
前記Ｎは、２以上の整数である、
制御方法。
【請求項１２】
対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、前記少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）前記対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得段階と、
（ｉ）前記変更が生じた後の、前記対象領域の内部の前記１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）前記新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得段階と、
Ｎ個の作業領域を順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得段階と、
前記Ｎ−１個又はＮ個の軌道を、（ｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）前記第１変更情報及び前記第２変更情報の少なくとも一方により示される前記対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類段階と、
前記分類段階において前記修正が必要となる軌道に分類された１以上の軌道のそれぞれについて、前記第１モデル情報及び前記第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画段階と、
を有し、
前記分類段階は、
（ｉ）前記第１モデル情報及び前記第２モデル情報の少なくとも一方により示される各物体の大きさを拡大したモデル又は（ｉｉ）前記各物体よりも大きく、前記各物体よりも単純な形状を有するモデルである、第２拡大モデルを生成する第２拡大モデル生成段階と、
（ａ）前記Ｎ−１個又はＮ個の軌道のそれぞれについて、（ｉ）前記マニピュレータのモデル及び（ｉｉ）前記第２拡大モデルの衝突の有無を判定し、（ｂ）（ｉ）前記マニピュレータのモデル及び（ｉｉ）前記第２拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、判定段階と、
を含み、
前記Ｎは、２以上の整数である、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、作業ロボット、プログラム、及び、制御方法に関する。
【背景技術】
【０００２】
マニピュレータを利用して、容器に収納されたワークを取り出し、当該ワークを他の容器内の特定の位置に配置するピッキングシステムが知られている（例えば、特許文献１〜３を参照されたい）。また、マニピュレータを利用して、各種の作業を実行する産業用ロボットが知られている。
［先行技術文献］
［特許文献］
［特許文献１］  特開２０１６−０９１０５３号公報
［特許文献２］  特開２０１６−１４７３３０号公報
［特許文献３］  特開２０１７−０３３４２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ピッキングシステムがピッキング作業を実行する場合、作業点又は目標点は２個程度であり、ピッキングシステムは、マニピュレータが２つの作業点の間を滑らかに移動する軌道を計画することができる。一方、産業用ロボットが各種の作業を実行する場合、作業点又は目標点の数が比較的多く、マニピュレータが２つの作業点の間を滑らかに移動する軌道を、実用的な計算時間の範囲内で計画することが難しい。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、制御装置が提供される。上記の制御装置は、例えば、作業ロボットの動作を制御する制御装置である。上記の作業ロボットは、例えば、マニピュレータを用いて対象領域の内部で作業を実行する。上記の制御装置は、例えば、（ｉ）対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得部を備える。上記の制御装置は、例えば、（ｉ）変更が生じた後の１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得部を備える。上記の制御装置は、例えば、作業ロボットが一連の作業を実行するＮ個の作業領域を、一連の作業の順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得部を備える。上記の制御装置は、例えば、Ｎ−１個又はＮ個の軌道を、（ｉ）第１変更情報及び第２変更情報の少なくとも一方により示される対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）第１変更情報及び第２変更情報の少なくとも一方により示される対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類部を備える。上記の制御装置は、例えば、分類部が、修正が必要となる軌道に分類した１以上の軌道のそれぞれについて、第１モデル情報及び第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画部を備える。上記の制御装置において、Ｎは、２以上の整数であってよい。
【０００５】
上記の制御装置は、（ｉ）軌道計画部が計画した修正が必要となる軌道における、マニピュレータの先端の位置及び姿勢を示す情報と、（ｉｉ）軌道情報取得部が取得した修正が必要ではない軌道における、マニピュレータの先端の位置及び姿勢を示す情報とに基づいて、一連の作業を通したマニピュレータの先端の軌道を決定する軌道決定部を備えてよい。上記の制御装置は、軌道決定部が決定した軌道に基づいて、マニピュレータの動作を制御するための制御情報を出力する出力部を備えてよい。
【０００６】
上記の制御装置において、分類部は、（ｉ）マニピュレータの大きさを拡大したモデル又は（ｉｉ）マニピュレータよりも大きく、マニピュレータよりも単純な形状を有するモデルである、第１拡大モデルを生成する第１拡大モデル生成部を有してよい。上記の制御装置において、分類部は、（ａ）Ｎ−１個又はＮ個の軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）第１モデル情報及び第２モデル情報の少なくとも一方により示される各物体のモデル、並びに、（ｉｉ）第１拡大モデルの衝突の有無を判定し、（ｂ）Ｍ個の地点の少なくとも１つの地点において、（ｉ）各物体のモデル及び（ｉｉ）第１拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、判定部を有してよい。上記の制御装置において、Ｍは、１以上の整数であってよい。
【０００７】
上記の制御装置は、（ｉ）第１モデル情報及び第２モデル情報の少なくとも一方により示される各物体の大きさを拡大したモデル又は（ｉｉ）各物体よりも大きく、各物体よりも単純な形状を有するモデルである、第２拡大モデルを生成する第２拡大モデル生成部を備えてよい。上記の制御装置において、判定部は、（ａ）Ｎ−１個又はＮ個の軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）第２拡大モデル及び（ｉｉ）第１拡大モデルの衝突の有無を判定し、（ｂ）Ｍ個の地点の少なくとも１つの地点において、（ｉ）第２拡大モデル及び（ｉｉ）第１拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する。
【０００８】
上記の制御装置において、分類部は、（ｉ）第１モデル情報及び第２モデル情報の少なくとも一方により示される各物体の大きさを拡大したモデル又は（ｉｉ）各物体よりも大きく、各物体よりも単純な形状を有するモデルである、第２拡大モデルを生成する第２拡大モデル生成部を有してよい。上記の制御装置において、分類部は、（ａ）Ｎ−１個又はＮ個の軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）マニピュレータのモデル及び（ｉｉ）第２拡大モデルの衝突の有無を判定し、（ｂ）Ｍ個の地点の少なくとも１つの地点において、（ｉ）マニピュレータのモデル及び（ｉｉ）第２拡大モデルが衝突すると判定された軌道を、修正が必要となる軌道であると判定する、判定部を有してよい。上記の制御装置において、Ｍは、１以上の整数であってよい。
【０００９】
上記の制御装置において、分類部は、マニピュレータの大きさ、及び、拡大モデルの大きさの少なくとも一方に基づいて、Ｍの値を決定する精度決定部を有してよい。上記の制御装置において、分類部は、関節空間におけるマニピュレータの動作と、現実空間におけるマニピュレータの動作との対応関係に基づいて、Ｍの値を決定する精度決定部を有してよい。
【００１０】
本発明の第２の態様においては、作業ロボットが提供される。上記の作業ロボットは、例えば、上記の制御装置を備える。上記の作業ロボットは、例えば、マニピュレータを備える。
【００１１】
上記の作業ロボットは、マニピュレータの動作を制御する制御部を備えてよい。上記の作業ロボットにおいて、制御装置は、マニピュレータの動作を制御するための制御情報を出力してよい。上記の作業ロボットにおいて、制御部は、制御装置が出力した制御情報に基づいて、マニピュレータの動作を制御してよい。
【００１２】
本発明の第３の態様においては、制御方法が提供される。上記の制御方法は、例えば、作業ロボットの動作を制御する制御方法である。上記の作業ロボットは、例えば、マニピュレータを用いて対象領域の内部で作業を実行する。上記の制御方法は、例えば、（ｉ）対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得段階を有する。上記の制御方法は、例えば、（ｉ）変更が生じた後の１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得段階を有する。上記の制御方法は、例えば、作業ロボットが一連の作業を実行するＮ個の作業領域を、一連の作業の順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得段階を有する。上記の制御方法は、例えば、Ｎ−１個又はＮ個の軌道を、（ｉ）第１変更情報及び第２変更情報の少なくとも一方により示される対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）第１変更情報及び第２変更情報の少なくとも一方により示される対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類段階を有する。上記の制御方法は、例えば、分類段階において修正が必要となる軌道に分類された１以上の軌道のそれぞれについて、第１モデル情報及び第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画段階を有する。上記の制御方法において、Ｎは、２以上の整数であってよい。
【００１３】
本発明の第４の態様においては、プログラムが提供される。上記のプログラムを格納する非一時的コンピュータ可読媒体が提供されてもよい。上記のプログラムは、コンピュータを、上記の制御装置として機能させるためのプログラムであってよい。上記のプログラムは、コンピュータに、上記の制御方法を実行させるためのプログラムであってよい。
【００１４】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１５】
【図１】作業システム１００のシステム構成の一例を概略的に示す。
【図２】実行装置１２０のシステム構成の一例を概略的に示す。
【図３】全体軌道３４０の一例を概略的に示す。
【図４】全体軌道３４０の一例を概略的に示す。
【図５】全体軌道３４０の一例を概略的に示す。
【図６】管理装置１４０のシステム構成の一例を概略的に示す。
【図７】システム管理部６４０の内部構成の一例を概略的に示す。
【図８】調整部７３０の内部構成の一例を概略的に示す。
【発明を実施するための形態】
【００１６】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
【００１７】
［作業システム１００の概要］
図１は、作業システム１００のシステム構成の一例を概略的に示す。本実施形態において、作業システム１００は、１以上の実行装置１２０と、管理装置１４０とを備える。作業システム１００は、１以上の入力端末１６０を備えてもよい。作業システム１００の各部は、通信ネットワーク１０を介して、互いに情報を送受してよい。本願明細書において、「１以上」という用語は、「１又は複数」を意味する。
【００１８】
実行装置１２０は、作業ロボットの一例であってよい。管理装置１４０は、制御装置の一例であってよい。
【００１９】
本実施形態において、通信ネットワーク１０は、有線通信の伝送路であってもよく、無線通信の伝送路であってもよく、無線通信の伝送路及び有線通信の伝送路の組み合わせであってもよい。通信ネットワーク１０は、無線パケット通信網、インターネット、Ｐ２Ｐネットワーク、専用回線、ＶＰＮ、電力線通信回線などを含んでもよい。通信ネットワーク１０は、（ｉ）携帯電話回線網などの移動体通信網を含んでもよく、（ｉｉ）無線ＭＡＮ（例えば、ＷｉＭＡＸ（登録商標）である。）、無線ＬＡＮ（例えば、ＷｉＦｉ（登録商標）である。）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）などの無線通信網を含んでもよい。
【００２０】
本実施形態において、実行装置１２０は、各種の作業を実行する。実行装置１２０は、マニピュレータを用いて各種の作業を実行するロボットを備えてよい。上記のロボットは、センサ、駆動系、及び、制御系を有する機械システムであってよい。上記のロボットは、物品を製造する産業用ロボットであってよい。作業の種類としては、ピッキング作業、穿孔作業、切断作業、旋盤作業、溶接作業、組立作業、塗装作業などが例示される。実行装置１２０の詳細は後述される。
【００２１】
本実施形態において、管理装置１４０は、実行装置１２０を管理する。例えば、管理装置１４０は、実行装置１２０の動作を制御する。管理装置１４０は、実行装置１２０の動作を制御するためのパラメータ（制御パラメータと称される場合がある。）を決定することで、実行装置１２０の動作を制御してよい。管理装置１４０は、実行装置１２０の動作を制御するための各種の設定情報を管理してよい。
【００２２】
ここで、実行装置１２０のロボットは、プログラムによって自動制御され、作業の対象となる物品（作業対象と称される場合がある）の指定された領域（作業領域と称される場合がある）において、指定された作業を実行する。単一の物品に複数の作業領域が指定される場合、ロボットは、複数の作業領域の間を順番に移動しながら、各作業領域において指定された作業を実行する。
【００２３】
実行装置１２０の作業効率を向上させることを目的として、作業の種類ごとに、ロボットの動作が詳細にプログラミングされる場合がある。また、同一種類の作業に関して、物品の種類ごとに、ロボットの動作が詳細にプログラミングされる場合がある。これらの作業は、ティーチング作業と称される場合がある。
【００２４】
例えば、２つの作業領域の間を移動する場合において、ロボットが、他の物体に干渉することを防止することを目的として、撮像装置がロボットの移動軌道の周辺を撮像し、ロボットが、当該撮像装置からの画像データを解析しながら、当該２つの作業領域の間を移動することが考えられる。しかしながら、この場合、画像処理が実行されている間、実行装置１２０は、移動を停止したり、移動速度を低下させたりすることになる。その結果、実行装置１２０の作業速度が低下し、製品のスループットが低下する。
【００２５】
一方、特定の種類の物品に対して特定の種類の作業が実行される前に、実行装置１２０に対するティーチング作業が実行されることで、実行装置１２０は、ロボットの移動軌道の周辺が撮像された画像を解析することなく、２つの作業領域の間を移動することができる。これにより、実行装置１２０の作業効率が向上する。なお、実行装置１２０は、作業領域を観察するための作業用のカメラを備えてもよい。また、作業効率に及ぼす影響が軽微な範囲で、実行装置１２０の動作を決定する際に、ロボットの移動軌道の周辺が撮像された画像の解析処理が実行されてもよい。
【００２６】
ティーチングにおいては、まず、仮想的な３次元空間に干渉判定用のシミュレーションモデルが構築される。そして、構築されたシミュレーションモデルを用いて、ロボットが他の物体と干渉することなく一連の作業を実行するように、ロボットの動作がプログラミングされる。次に、現実のロボットを用いた試験及び微調整が繰り返されて、ロボットの動作が精密にプログラミングされる。このように、ティーチング作業には多大な労力と時間が要求される。そのため、ティーチング作業の負担を軽減することが望まれている。
【００２７】
本実施形態によれば、実行装置１２０の構造に変更が生じた場合、実行装置１２０の設定に変更が生じた場合、実行装置１２０の対象物品が変更された場合、又は、実行装置１２０の周辺環境に変更が生じた場合に、管理装置１４０は、ロボットが他の物体と干渉することなく一連の作業を実行するように、ロボットの動作を計画する。管理装置１４０は、例えば、逆運動学的手法及び逆動力学的手法を用いて、ロボットのマニピュレータの軌道を計画する。
【００２８】
しかしながら、ロボットの動作を計画するには、膨大な計算量が要求され、計算時間が長くなる可能性がある。そこで、本実施形態によれば、管理装置１４０は、マニピュレータの軌道のうち、上記の変更に伴い、精緻な計算が要求される領域を絞り込む。これにより、ロボットの動作を計画するための計算量が削減され、計算時間が短縮される。その結果、実行装置１２０のユーザが、各種の変更の内容を管理装置１４０に入力すると、管理装置１４０は、実用的な時間内に、当該変更の内容が反映されたマニピュレータの軌道を出力する。このように、本実施形態によれば、ティーチング作業の負担が大幅に削減される。管理装置１４０の詳細は後述される。
【００２９】
本実施形態において、入力端末１６０は、例えば、作業システム１００のユーザが利用する通信端末であり、その詳細については特に限定されない。入力端末１６０としては、パーソナルコンピュータ、携帯端末などが例示される。携帯端末としては、携帯電話、スマートフォン、ＰＤＡ、タブレット、ノートブック・コンピュータ又はラップトップ・コンピュータ、ウエアラブル・コンピュータなどが例示される。入力端末１６０は、実行装置１２０及び管理装置１４０の少なくとも一方のユーザインタフェースとして使用されてよい。
【００３０】
なお、本実施形態においては、管理装置１４０が実行装置１２０を管理する場合を例として、作業システム１００の詳細が説明される。しかしながら、作業システム１００は、本実施形態に限定されない。管理装置１４０の機能の少なくとも一部が、実行装置１２０及び入力端末１６０の少なくとも一方により実現されてもよい。この場合、実行装置１２０は、制御装置の一例であってよい。また、入力端末１６０は、制御装置の一例であってよい。
【００３１】
［作業システム１００の各部の具体的な構成］
作業システム１００の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウエア及びソフトウエアにより実現されてもよい。作業システム１００の各部は、その少なくとも一部が、単一のサーバによって実現されてもよく、複数のサーバによって実現されてもよい。作業システム１００の各部は、その少なくとも一部が、仮想サーバ上又はクラウドシステム上で実現されてもよい。作業システム１００の各部は、その少なくとも一部が、パーソナルコンピュータ又は携帯端末によって実現されてもよい。携帯端末としては、携帯電話、スマートフォン、ＰＤＡ、タブレット、ノートブック・コンピュータ又はラップトップ・コンピュータ、ウエアラブル・コンピュータなどを例示することができる。作業システム１００の各部は、ブロックチェーンなどの分散型台帳技術又は分散型ネットワークを利用して、情報を格納してもよい。
【００３２】
作業システム１００を構成する構成要素の少なくとも一部がソフトウエアにより実現される場合、当該ソフトウエアにより実現される構成要素は、一般的な構成の情報処理装置において、当該構成要素に関する動作を規定したプログラムを起動することにより実現されてよい。上記の一般的な構成の情報処理装置は、（ｉ）ＣＰＵ、ＧＰＵなどのプロセッサ、ＲＯＭ、ＲＡＭ、通信インタフェースなどを有するデータ処理装置と、（ｉｉ）キーボード、ポインティングデバイス、タッチパネル、カメラ、音声入力装置、ジェスチャ入力装置、各種センサ、ＧＰＳ受信機などの入力装置と、（ｉｉｉ）表示装置、音声出力装置、振動装置などの出力装置と、（ｉｖ）メモリ、ＨＤＤ、ＳＳＤなどの記憶装置（外部記憶装置を含む。）とを備えてよい。
【００３３】
上記の一般的な構成の情報処理装置において、上記のデータ処理装置又は記憶装置は、上記のプログラムを記憶してよい。上記のプログラムは、プロセッサによって実行されることにより、上記の情報処理装置に、当該プログラムによって規定された動作を実行させる。上記のプログラムは、非一時的なコンピュータ可読記録媒体に格納されていてもよい。上記のプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリ、ハードディスクなどのコンピュータ読み取り可能な媒体に記憶されていてもよく、ネットワークに接続された記憶装置に記憶されていてもよい。
【００３４】
上記のプログラムは、コンピュータを、作業システム１００又はその一部として機能させるためのプログラムであってよい。上記のプログラムは、作業システム１００の各部の動作を規定したモジュールを備えてよい。これらのプログラム又はモジュールは、データ処理装置、入力装置、出力装置、記憶装置等に働きかけて、コンピュータを作業システム１００の各部として機能させたり、コンピュータに作業システム１００の各部における情報処理方法を実行させたりする。
【００３５】
上記のプログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、作業システム１００の少なくとも一部を構成するコンピュータにインストールされてよい。上記のプログラムが実行されることにより、コンピュータが、作業システム１００の各部の少なくとも一部として機能してもよい。上記のプログラムに記述された情報処理は、当該プログラムがコンピュータに読み込まれることにより、当該プログラムに関連するソフトウエアと、作業システム１００又はその一部の各種のハードウエア資源とが協働した具体的手段として機能する。そして、上記の具体的手段が、本実施形態におけるコンピュータの使用目的に応じた情報の演算又は加工を実現することにより、当該使用目的に応じた作業システム１００が構築される。
【００３６】
上記のプログラムは、コンピュータに、作業システム１００又はその一部における情報処理方法を実行させるためのプログラムであってもよい。上記の情報処理方法は、作業ロボットの動作を制御する制御方法であってよい。上記の作業ロボットは、例えば、マニピュレータを用いて対象領域の内部で作業を実行する。
【００３７】
上記の制御方法は、例えば、（ｉ）対象領域の内部に配置された１以上の物体の少なくとも１つに関する情報であって、少なくとも１つの物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す第１変更情報、及び、（ｉｉ）対象領域の内部に新たな物体が配置されることを示す第２変更情報の少なくとも一方を取得する変更情報取得段階を有する。上記の制御方法は、例えば、（ｉ）変更が生じた後の１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す第１モデル情報、及び、（ｉｉ）新たな物体の位置、姿勢、形状及び大きさを示す第２モデル情報の少なくとも一方を取得するモデル情報取得段階を有する。
【００３８】
上記の制御方法は、例えば、作業ロボットが一連の作業を実行するＮ個の作業領域を、一連の作業の順番に結ぶＮ−１個又はＮ個の軌道のそれぞれを示す、Ｎ−１個又はＮ個の軌道情報を取得する軌道情報取得段階を有する。上記の制御方法は、例えば、Ｎ−１個又はＮ個の軌道を、（ｉ）第１変更情報及び第２変更情報の少なくとも一方により示される対象領域の内部の変更に応じて、修正が必要となる軌道、及び、（ｉｉ）第１変更情報及び第２変更情報の少なくとも一方により示される対象領域の内部の変更が生じても、修正が必要ではない軌道に分類する分類段階を有する。上記の制御方法は、例えば、分類段階において修正が必要となる軌道に分類された１以上の軌道のそれぞれについて、第１モデル情報及び第２モデル情報の少なくとも一方に基づいて、各軌道に関連する２個の作業領域の間におけるマニピュレータの先端の軌道を計画する軌道計画段階を有する。上記の制御方法において、Ｎは、２以上の整数であってよい。
【００３９】
図２は、実行装置１２０のシステム構成の一例を概略的に示す。本実施形態において、実行装置１２０は、コンベア２１２と、ロボット２１４とを備える。本実施形態において、ロボット２１４は、マニピュレータ２２０と、台座２３０と、レール２３２と、駆動部２４０と、駆動制御部２５０とを備える。本実施形態において、マニピュレータ２２０は、作業ツール２２２と、ロボットアーム２２４とを有する。
【００４０】
なお、ロボット２１４は、単一のマニピュレータ２２０を備えてもよく、複数のマニピュレータ２２０を備えてもよい。ロボット２１４は、単一のマニピュレータ２２０を用いて単一のワーク２０に対する作業を実行してもよく、複数のマニピュレータ２２０を用いて単一のワーク２０に対する作業を実行してもよい。ロボット２１４は、単一のマニピュレータ２２０を用いて、一度に複数のワーク２０に対する作業を実行してもよい。
【００４１】
ロボット２１４は、作業ロボットの一例であってよい。作業ツール２２２は、マニピュレータ２２０の先端の一例であってよい。作業ツール２２２の軌道は、マニピュレータ２２０の先端の軌道の一例であってよい。作業ツール２２２の位置及び姿勢は、マニピュレータ２２０の先端の位置及び姿勢の一例であってよい。
【００４２】
本実施形態において、実行装置１２０は、対象領域２０２の内部に配されたワーク２０に対して、予め定められた作業を実行する。対象領域２０２は、実行装置１２０が作業を実行することのできる領域であってよい。ワーク２０は、１又は複数の凸部２２を有してよい。作業の種類としては、ピッキング作業、穿孔作業、旋盤作業、溶接作業、組立作業、塗装作業などが例示される。
【００４３】
本実施形態において、コンベア２１２は、ワーク２０を搬送する。例えば、コンベア２１２は、ワーク２０を、対象領域２０２の外部から、対象領域２０２の内部の予め定められた位置まで搬送する。ロボット２１４によるワーク２０に対する作業が終了すると、コンベア２１２は、ワーク２０を、対象領域２０２の外部に搬送する。
【００４４】
本実施形態において、ロボット２１４は、ワーク２０に対する各種の作業を実行する。例えば、ロボット２１４は、マニピュレータ２２０を用いて対象領域２０２の内部で作業を実施する。ロボット２１４の動作の少なくとも一部は、管理装置１４０により制御される。
【００４５】
本実施形態において、作業ツール２２２は、特定の作業に対応する治具、機材又は器具である。作業ツール２２２の詳細は特に限定されない。作業ツール２２２は、対応する作業に応じた形状、構造及び機能を有してよい。作業ツール２２２は、各種のセンサを有してよい。作業ツール２２２は、カメラなどの撮像装置を有してよい。作業ツール２２２は、例えば、ロボットアーム２２４の先端に取り付けられる。ロボット２１４は、作業ツール２２２を取り換えることで、各種の作業に対応することができる。
【００４６】
本実施形態において、ロボットアーム２２４は、作業ツール２２２に連結され、作業ツール２２２の位置及び姿勢を調整する。ロボットアーム２２４の構造は特に限定されるものではないが、例えば、複数の関節を有する多関節ロボットアームが用いられる。ロボットアーム２２４は、質量計測センサ、負荷計測センサなどの各種センサを有してよい。負荷計測センサは、ロボットアーム２２４の各関節を駆動する駆動部２４０のトルク、電流値又は電圧値を計測するセンサであってよい。
【００４７】
本実施形態において、台座２３０は、マニピュレータ２２０を支持する。台座２３０は、固定式の台座であってもよく、可動式の台座であってもよい。本実施形態において、台座２３０は、レール２３２の延伸方向に沿って、レール２３２の上を移動することができる。これにより、作業ツール２２２が、対象領域２０２の任意の位置まで到達し得る。台座２３０は、その内部に、駆動部２４０の少なくとも一部を収容してよい。台座２３０は、その内部に、駆動制御部２５０の少なくとも一部を収容してよい。
【００４８】
本実施形態において、駆動部２４０は、マニピュレータ２２０を駆動する。一実施形態において、駆動部２４０は、作業ツール２２２を駆動する。一実施形態において、駆動部２４０は、作業ツール２２２に流体を供給したり、作業ツール２２２から流体を吸引したりする。駆動部２４０は、ポンプであってよい。駆動部２４０は、１以上のポンプを有してよい。流体は、溶接用又は溶断用のガスであってもよく、冷却用又は洗浄用の流体であってもよい。他の実施形態において、駆動部２４０は、作業ツール２２２に電力を供給してもよい。例えば、駆動部２４０は、作業ツール２２２への電力の供給を制御する素子であってよい。
【００４９】
さらに他の実施形態において、駆動部２４０は、ロボットアーム２２４を駆動する。例えば、駆動部２４０は、ロボットアーム２２４の各関節の角度を調整する。駆動部２４０は、モータであってよい。駆動部２４０は、１以上のモータを有してよい。さらに他の実施形態において、駆動部２４０は、台座２３０を駆動する。例えば、駆動部２４０は、ワーク２０と、台座２３０との相対位置を調整する。駆動部２４０は、モータであってよい。駆動部２４０は、１以上のモータを有してよい。
【００５０】
駆動制御部２５０は、駆動部２４０を制御する。例えば、駆動制御部２５０は、管理装置１４０から、ロボット２１４のワーク２０に対する作業を制御するための命令を受信する。駆動制御部２５０は、管理装置１４０からの命令に基づいて、駆動部２４０を制御する。
【００５１】
ワーク２０に対する作業を制御するための命令は、作業ツール２２２の軌道を示す情報であってよい。作業ツール２２２の軌道を示す情報としては、（ｉ）作業ツール２２２の初期配置、通過配置及び最終配置、並びに、移動時間を示す情報、（ｉｉ）初期配置、通過配置及び最終配置における作業ツール２２２の各関節の角度、並びに、移動時間を示す情報、（ｉｉｉ）移動時間中の各時刻における作業ツール２２２の配置を示す情報、（ｉｖ）移動時間中の各時刻における作業ツール２２２の各関節の角度を示す情報などを例示することができる。作業ツール２２２の配置は、例えば、作業ツール２２２の位置及び姿勢により特定される。
【００５２】
図３、図４及び図５を用いて、実行装置１２０の周辺環境の変化、又は、ワーク２０の変化に伴う、全体軌道３４０の変化が説明される。図３は、対象領域２０２の内部に障害物３２０が存在する場合における、全体軌道３４０の一例を概略的に示す。図４は、図３において、対象領域２０２の内部に障害物４２０が追加された場合における、全体軌道３４０の一例を概略的に示す。図５は、図４において、対象領域２０２の内部から障害物３２０が除去された場合における、全体軌道３４０の一例を概略的に示す。
【００５３】
図３に関連して説明される実施形態において、ロボット２１４は、作業点３２、作業点３４、作業点３６及び作業点３８のそれぞれにおいて、ユーザにより指定された一連の作業を実行する。本実施形態において、ロボット２１４は、作業点３２で作業を実行した後、作業ツール２２２を単位軌道３４２に沿って作業点３４へと移動させる。同様に、ロボット２１４は、作業点３４で作業を実行した後、作業ツール２２２を単位軌道３４４に沿って作業点３６へと移動させる。また、ロボット２１４は、作業点３６で作業を実行した後、作業ツール２２２を単位軌道３４６に沿って作業点３８へと移動させる。
【００５４】
単位軌道３４２、単位軌道３４４、及び、単位軌道３４６のそれぞれは、マニピュレータ２２０と、対象領域２０２の内部に配置された他の物体との距離が、予め定められた値（干渉マージンと称される場合がある。）よりも大きくなるように計画される。これにより、マニピュレータ２２０が、上記の他の物体と干渉することが防止される。例えば、本実施形態において、単位軌道３４４は、障害物３２０及びワーク２０の凸部２２と干渉しないように計画される。
【００５５】
作業点３２、作業点３４、作業点３６及び作業点３８は、作業ロボットが一連の作業を実行するＮ個の作業領域（Ｎは、２以上の整数である。Ｎは、３以上の整数であってもよく、Ｎは、４以上の整数であってもよい。）の一例であってよい。作業点３２、作業点３４、作業点３６及び作業点３８のそれぞれは、作業領域の一例であってよい。なお、作業の種類によっては、ロボット２１４は、作業領域の内部で、作業ツール２２２を規定の経路に沿って移動させる場合がある。この場合、作業点３２、作業点３４、作業点３６及び作業点３８のそれぞれは、作業領域内の任意の地点であって、各作業領域における作業が開始されるときに作業ツール２２２が配される地点であってよい。
【００５６】
単位軌道３４２、単位軌道３４４、及び、単位軌道３４６は、一連の作業を通した作業ツール２２２の軌道を示す全体軌道３４０を構成する。単位軌道３４２、単位軌道３４４、及び、単位軌道３４６は、一連の作業が実行されるＮ個の作業領域を、当該一連の作業の順番に結ぶＮ−１個又はＮ個の軌道の一例であってよい。
【００５７】
なお、作業ツール２２２のホームポジションが設定されている場合、ロボット２１４は、作業点３２における作業を開始する前に、作業ツール２２２をホームポジションから、作業点３２へと移動させてよい。また、作業点３８における作業が完了した後、ロボット２１４は、作業ツール２２２をホームポジションへと移動させてよい。この場合、作業ツール２２２の全体軌道３４０は、ホームポジションと、一連の作業が実行されるＮ個の作業領域とを当該一連の作業の順番に結ぶ、Ｎ個又はＮ＋１個の軌道により構成される。
【００５８】
また、本実施形態においては、作業点３２及び作業点３８が対象領域２０２の内部の異なる地点又は領域である場合を例として、作業ツール２２２の軌道が説明された。しかしながら、作業ツール２２２の軌道は本実施形態に限定されない。他の実施形態において、作業点３２及び作業点３８が同一の地点又は領域であってもよい。この場合、作業ツール２２２の全体軌道３４０は、（ｉ）単位軌道３４２、単位軌道３４４及び単位軌道３４６と、（ｉｉ）作業点３８及び作業点３２を結ぶ単位軌道とを含む。
【００５９】
図４に関連して説明される実施形態によれば、ロボット２１４が、作業ツール２２２を図３に示された全体軌道３４０に沿って移動させながら、一連の作業を実行している状態において、単位軌道３４６の近傍に障害物４２０が追加される。障害物４２０は、例えば、単位軌道３４６においてマニピュレータ２２０と干渉する位置に配される。
【００６０】
本実施形態によれば、ユーザは、入力端末１６０を操作して、単位軌道３４６の近傍に障害物４２０が追加されることを示す情報（変更情報と称される場合がある。）を、管理装置１４０に送信する。管理装置１４０は、上記の変更情報を受信すると、まず、新たな全体軌道３４０を計画する必要があるか否かを判定する。
【００６１】
より具体的には、管理装置１４０は、単位軌道３４２、単位軌道３４４及び単位軌道３４６のそれぞれについて、障害物４２０が追加されることにより、当該単位軌道を計画し直す必要性が高いか否かを判定する。管理装置１４０は、単位軌道３４２、単位軌道３４４及び単位軌道３４６のそれぞれと、障害物４２０との関連具合に基づいて、当該単位軌道を計画し直す必要性が高いか否かを判定してよい。管理装置１４０は、軌道を計画し直す必要性の高い単位軌道を抽出してもよい。
【００６２】
特定の単位軌道と、障害物４２０との関連具合が予め定められた程度よりも大きい場合、管理装置１４０は、当該特定の単位軌道を計画し直す必要性が高いと判定してよい。特定の単位軌道と、障害物４２０との関連具合が予め定められた程度よりも小さい場合、管理装置１４０は、当該特定の単位軌道を計画し直す必要性が高くないと判定してよい。例えば、特定の単位軌道と、障害物４２０とが干渉する可能性が高い場合、管理装置１４０は、特定の単位軌道と、障害物４２０との関連具合が予め定められた程度よりも大きいと判定する。
【００６３】
軌道を計画し直す必要性の高い単位軌道が抽出された場合、管理装置１４０は、新たな全体軌道３４０を計画する必要があると判定する。そして、管理装置１４０は、障害物４２０の位置、姿勢、形状及び大きさを考慮に入れて、抽出された単位軌道の軌道を計画し直す。また、管理装置１４０は、その他の単位軌道について、現在の軌道に関する情報を再利用する。一方、軌道を計画し直す必要性の高い単位軌道が１つも抽出されなかった場合、管理装置１４０は、新たな全体軌道３４０を計画する必要がないと判定する。
【００６４】
例えば、本実施形態によれば、単位軌道３４２及び単位軌道３４４は、軌道を計画し直す必要性の高い単位軌道ではないと判断され、単位軌道３４６は、軌道を計画し直す必要性の高い単位軌道であると判断される。そこで、管理装置１４０は、現在の単位軌道３４２、現在の単位軌道３４４、及び、変更後の単位軌道３４６に基づいて、変更後の全体軌道３４０を計画する。
【００６５】
これにより、対象領域２０２の内部に障害物４２０が追加された場合であっても、変更後の全体軌道３４０を短時間で計画することができる。なお、軌道を計画し直す必要性が高いと判定された単位軌道３４６のうち、障害物４２０と干渉する領域のみを計画し直すことで、変更後の全体軌道３４０を計画するための計算量を削減することも考えられる。
【００６６】
しかしながら、この場合、障害物４２０の位置によっては、軌道の形状が滑らかではなく、ロボット２１４が作業を再開した後、マニピュレータ２２０の関節に過度の負担がかかることも考えられる。また、変更前の単位軌道３４６は、障害物４２０が存在しない場合に最適化されている。そのため、単位軌道３４６のうち障害物４２０と干渉する領域のみを変更して得られた軌道が、単位軌道３４６の始点及び終点を結ぶために適切な軌道でるとは限らず、より適切な他の軌道が存在する可能性もある。
【００６７】
一方、本実施形態によれば、単位軌道３４６を全体的に計画し直す。これにより、単位軌道３４６のうち障害物４２０と干渉する領域のみを計画し直す場合と比較して、より適切な軌道を導出することができる。
【００６８】
図５に関連して説明される実施形態によれば、ロボット２１４が、作業ツール２２２を図４に示された全体軌道３４０に沿って移動させながら、一連の作業を実行している状態において、単位軌道３４４の近傍に配置されていた障害物３２０が、対象領域２０２から除去される。なお、障害物３２０は、対象領域２０２の内部の地点であって、現在位置と比較して、単位軌道３４４からより離れた地点へと移動してもよい。
【００６９】
本実施形態によれば、ユーザは、入力端末１６０を操作して、障害物３２０が除去されること又は移動することを示す情報（変更情報と称される場合がある。）を、管理装置１４０に送信する。管理装置１４０は、上記の変更情報を受信すると、まず、新たな全体軌道３４０を計画する必要があるか否かを判定する。
【００７０】
より具体的には、管理装置１４０は、単位軌道３４２、単位軌道３４４及び単位軌道３４６のそれぞれについて、障害物３２０が除去される又は移動することにより、当該単位軌道を計画し直す必要性が高いか否かを判定する。管理装置１４０は、単位軌道３４２、単位軌道３４４及び単位軌道３４６のそれぞれと、障害物３２０との関連具合に基づいて、当該単位軌道を計画し直す必要性が高いか否かを判定してよい。管理装置１４０は、軌道を計画し直す必要性の高い単位軌道を抽出してもよい。
【００７１】
特定の単位軌道と、障害物３２０との関連具合が予め定められた程度よりも大きい場合、管理装置１４０は、当該特定の単位軌道を計画し直す必要性が高いと判定してよい。特定の単位軌道と、障害物３２０との関連具合が予め定められた程度よりも小さい場合、管理装置１４０は、当該特定の単位軌道を計画し直す必要性が高くないと判定してよい。例えば、特定の単位軌道につき、現在の軌道が障害物３２０を回避するように計画されている可能性が高い場合、管理装置１４０は、特定の単位軌道と、障害物３２０との関連具合が予め定められた程度よりも大きいと判定する。
【００７２】
軌道を計画し直す必要性の高い単位軌道が抽出された場合、管理装置１４０は、新たな全体軌道３４０を計画する必要があると判定する。そして、管理装置１４０は、障害物３２０が除去されること、又は、障害物３２０が移動することを考慮に入れて、抽出された単位軌道の軌道を計画し直す。また、管理装置１４０は、その他の単位軌道について、現在の軌道に関する情報を再利用する。一方、軌道を計画し直す必要性の高い単位軌道が１つも抽出されなかった場合、管理装置１４０は、新たな全体軌道３４０を計画する必要がないと判定する。
【００７３】
例えば、本実施形態によれば、単位軌道３４２及び単位軌道３４６は、軌道を計画し直す必要性の高い単位軌道ではないと判断され、単位軌道３４４は、軌道を計画し直す必要性の高い単位軌道であると判断される。そこで、管理装置１４０は、現在の単位軌道３４２、変更後の単位軌道３４４、及び、現在の単位軌道３４６に基づいて、変更後の全体軌道３４０を計画する。
【００７４】
これにより、障害物３２０が対象領域２０２の内部から除去されたり、全体軌道３４０から離れた位置へと移動したりした場合であっても、より適切な全体軌道３４０を短時間で計画することができる。なお、変更後の全体軌道３４０を計画するための計算量を削減することを目的として、障害物３２０が対象領域２０２の内部から除去されたり、全体軌道３４０から離れた位置へと移動したりした場合には、軌道を計画し直さないことも考えられる。
【００７５】
しかしながら、現在の軌道は、障害物３２０の存在を前提として計画されており、障害物３２０が存在しない場合や、障害物３２０がより離れた位置に存在する場合には、より適切な他の軌道が存在することも考えられる。一方、本実施形態によれば、障害物３２０が対象領域２０２の内部から除去されたり、全体軌道３４０から離れた位置へと移動したりした場合であっても、障害物３２０と関連性の高い単位軌道を計画し直すので、軌道を計画し直さない場合と比較して、より適切な軌道を導出することができる。
【００７６】
図６は、管理装置１４０のシステム構成の一例を概略的に示す。本実施形態において、管理装置１４０は、通信制御部６２０と、モデル管理部６３０と、システム管理部６４０と、格納部６５０とを備える。
【００７７】
モデル管理部６３０は、変更情報取得部及びモデル情報取得部の一例であってよい。システム管理部６４０は、制御装置の一例であってよい。
【００７８】
本実施形態において、通信制御部６２０は、実行装置１２０及び入力端末１６０の少なくとも一方との間の通信を制御する。通信制御部６２０は、通信インタフェースであってよい。通信制御部６２０は、複数の種類の通信方式に対応してよい。
【００７９】
本実施形態において、モデル管理部６３０は、対象領域２０２の内部に配置された１以上の物体に関する情報を管理する。対象領域２０２の内部に配置され得る１以上の物体に関する情報を管理してよい。モデル管理部６３０は、上記の１以上の物体のそれぞれのシミュレーションモデルを管理してよい。モデル管理部６３０は、上記の１以上の物体のそれぞれの位置、姿勢、形状及び大きさを示す情報を管理してよい。上記の物体としては、ワーク２０、コンベア２１２、ロボット２１４、障害物３２０、障害物４２０、及び、これらの一部などが例示される。
【００８０】
一実施形態において、ユーザは、入力端末１６０を操作して、対象領域２０２の内部に配置される１以上の物体の位置、姿勢、形状及び大きさを示す情報を入力し、当該情報を管理装置１４０に送信する。管理装置１４０は、ユーザが入力した情報を取得し、格納部６５０に格納してよい。
【００８１】
他の実施形態において、ユーザは、入力端末１６０を操作して、対象領域２０２の内部に配置された１以上の物体の位置、姿勢、形状及び大きさの少なくとも１つに関する変更の発生を示す情報（変更情報と称される場合がある。）を入力し、当該情報を管理装置１４０に送信する。上記の変更は、対象領域２０２の内部から物体が削除されることを含む。上記の変更は、物体の動作に伴い、当該物体の位置、姿勢、形状及び大きさの少なくとも１つが変動することを含む。
【００８２】
変更の発生を示す情報は、変更が発生したことを示す情報であってもよく、将来の近い時期に変更が発生することを示す情報であってもよい。上記の変更情報は、第１変更情報の一例であってよい。管理装置１４０は、上記の変更情報を取得し、格納部６５０に格納してよい。
【００８３】
ユーザは、入力端末１６０を操作して、変更が生じた後の１以上の物体の位置、姿勢、形状及び大きさを示す情報を入力し、当該情報を管理装置１４０に送信する。変更が生じた後の１以上の物体の位置、姿勢、形状及び大きさを示す情報は、１以上の物体の位置、姿勢、形状及び大きさのうち、変更された事項に関する情報であってもよい。上記の情報は、第１モデル情報の一例であってよい。管理装置１４０は、上記の情報を取得し、格納部６５０に格納してよい。
【００８４】
さらに他の実施形態において、ユーザは、入力端末１６０を操作して、対象領域２０２の内部に新たな物体が配置されることを示す情報を入力し、当該情報を管理装置１４０に送信する。上記の情報は、変更情報の一例であってよい。対象領域２０２の内部に新たな物体が配置されることを示す情報は、対象領域２０２の内部に新たな物体が配置されたことを示す情報であってもよく、将来の近い時期に、対象領域２０２の内部に新たな物体が配置されることを示す情報であってもよい。上記の変更情報は、第２変更情報の一例であってよい。管理装置１４０は、上記の変更情報を取得し、格納部６５０に格納してよい。
【００８５】
ユーザは、入力端末１６０を操作して、上記の新たな物体の位置、姿勢、形状及び大きさを示す情報を入力し、当該情報を管理装置１４０に送信する。上記の情報は、第２モデル情報の一例であってよい。管理装置１４０は、上記の情報を取得し、格納部６５０に格納してよい。
【００８６】
本実施形態において、システム管理部６４０は、実行装置１２０を管理する。例えば、システム管理部６４０は、実行装置１２０の動作を制御する。システム管理部６４０は、実行装置１２０の制御パラメータを決定することで、実行装置１２０の動作を制御してよい。システム管理部６４０は、実行装置１２０の動作を制御するための各種の設定情報を管理してよい。システム管理部６４０の詳細は後述される。
【００８７】
本実施形態において、格納部６５０は、各種の情報を取得する。一実施形態において、格納部６５０は、シミュレーションモデルに関する情報を格納する。格納部６５０は、対象領域２０２の内部に配置される１以上の物体の位置、姿勢、形状及び大きさを示す情報を格納してよい。格納部６５０は、対象領域２０２の内部に配置される１以上の物体のうち、その位置、姿勢、形状及び大きさの少なくとも１つが変更される物体に関する情報であって、変更後の位置、姿勢、形状及び大きさの少なくとも１つを示す情報を格納してよい。格納部６５０は、対象領域２０２から削除される物体に関する情報を格納してもよい。格納部６５０は、対象領域２０２に新たに追加される物体の位置、姿勢、形状及び大きさを示す情報を格納してよい。
【００８８】
他の実施形態において、格納部６５０は、ロボット２１４の作業に関する情報を格納する。格納部６５０は、作業スケジュールを示す情報を格納する。例えば、格納部６５０は、１又は複数の作業のそれぞれについて、作業の識別情報と、作業対象の識別情報と、作業が実行される時刻を示す情報と、作業が実行される地点を示す情報と、作業の内容を示す情報とを対応付けて格納する。
【００８９】
格納部６５０は、一連の作業に関する作業ツール２２２の軌道を示す情報を格納してよい。格納部６５０は、作業ツール２２２の全体軌道を示す情報を格納してもよく、当該全体軌道を構成する複数の単位軌道のそれぞれを示す情報を格納してもよい。作業ツール２２２の軌道を示す情報は、作業ツール２２２の位置及び姿勢を示す情報の集合であってよい。作業ツール２２２の全体軌道又は単位軌道を示す情報は、作業ツール２２２の移動が開始されてからの経過時間を示す情報と、作業ツール２２２の位置及び姿勢を示す情報とが対応付けられた情報であってよい。
【００９０】
図７は、システム管理部６４０の内部構成の一例を概略的に示す。本実施形態において、システム管理部６４０は、検出部７２０と、調整部７３０と、システム制御部７４０とを備える。
【００９１】
検出部７２０は、変更情報取得部の一例であってよい。調整部７３０は、制御装置、分類部、軌道情報取得部、軌道計画部及び軌道決定部の一例であってよい。システム制御部７４０は、出力部の一例であってよい。
【００９２】
本実施形態において、検出部７２０は、（ｉ）実行装置１２０の構造に変更が生じたこと、（ｉｉ）実行装置１２０の設定に変更が生じたこと、（ｉｉｉ）実行装置１２０の対象物品が変更されたこと、又は、（ｉｖ）実行装置１２０の周辺環境に変更が生じたことを検出する。例えば、検出部７２０は、モデル管理部６３０が各種の変更情報を取得した場合に、当該変更情報に対応する事項に変更が発生したこと、又は、将来の近い時期に変更が発生することを検出する。検出部７２０は、対象領域２０２の内部に配された各種のセンサの出力を取得することで、上記の変更を検出してよい。検出部７２０は、各種の変更が検出されたことを示す情報を、調整部７３０に出力してよい。
【００９３】
実行装置１２０の構造に関する変更としては、ロボットアーム２２４の位置、姿勢、形状、大きさ、運動学パラメータ、及び、動力学パラメータの少なくとも１つに関する変更が例示される。実行装置１２０の設定に関する変更としては、作業ツール２２２の始点、終点、移動速度及び加速度少なくとも１つに関する変更、干渉マージンに関する変更などが例示される。
【００９４】
本実施形態において、調整部７３０は、検出部７２０が各種の変更を検出した場合に、ロボット２１４の設定を調整する。例えば、調整部７３０は、検出された変更の内容に応じて、ロボット２１４の作業ツール２２２の軌道に関する設定を変更する。調整部７３０の詳細は後述される。
【００９５】
本実施形態において、システム制御部７４０は、ロボット２１４を制御する。例えば、システム制御部７４０は、マニピュレータ２２０の動作を制御するための制御情報を出力する。システム制御部７４０は、調整部７３０が決定した作業ツール２２２の軌道に基づいてマニピュレータ２２０の動作を制御するための制御情報を、ロボット２１４の駆動制御部２５０に出力する。
【００９６】
図８は、調整部７３０の内部構成の一例を概略的に示す。本実施形態において、調整部７３０は、基本情報取得部８２０と、シミュレーションモデル生成部８３０と、抽出部８４０と、軌道計画部８５０と、軌道決定部８６０とを備える。本実施形態において、抽出部８４０は、判定用モデル生成部８４２と、判定精度決定部８４４と、衝突判定部８４６と、区分判定部８４８とを有する。
【００９７】
本実施形態において、基本情報取得部８２０は、ロボット２１４の設定を調整するために必要な情報（基本情報と称される場合がある。）を取得する。基本情報取得部８２０は、検出部７２０から、変更が検出されたことを示す情報と、当該変更の内容を示す情報とを取得してよい。例えば、検出部７２０が、特定の物体の位置、姿勢、形状及び大きさの少なくとも１つが変更されることを検出した場合、基本情報取得部８２０は、当該特定の物体の変更後の位置、姿勢、形状及び大きさを示す情報を取得する。
【００９８】
基本情報取得部８２０は、格納部６５０を参照して、対象領域２０２の内部に配置された１以上の物体のぞれぞれの位置、姿勢、形状及び大きさを示す情報を取得してよい。基本情報取得部８２０は、格納部６５０を参照して、対象領域２０２の内部から削除される物体を識別する情報を取得してよい。基本情報取得部８２０は、格納部６５０を参照して、対象領域２０２の内部に追加される新たな物体の位置、姿勢、形状及び大きさを示す情報を取得してよい。基本情報取得部８２０は、格納部６５０を参照して、作業ツール２２２の軌道に関する情報を取得してよい。例えば、最新の全体軌道を構成する１又は複数の単位軌道を示す情報を取得する。
【００９９】
基本情報取得部８２０は、格納部６５０を参照して、干渉マージンの大きさを示す情報を取得してよい。基本情報取得部８２０は、格納部６５０を参照して、抽出部８４０における情報処理において使用される各種の設定に関する情報を取得してよい。例えば、基本情報取得部８２０は、（ｉ）判定用モデル生成部８４２が、判定用モデルの大きさを決定するためのパラメータ、及び、（ｉｉ）判定精度決定部８４４が、判定精度を決定するためのパラメータの少なくとも一方を取得する。基本情報取得部８２０は、これらの基本情報を入力端末１６０から取得してもよい。
【０１００】
本実施形態において、シミュレーションモデル生成部８３０は、作業ツール２２２の軌道を計画するためのシミュレーションモデルを生成する。一実施形態において、シミュレーションモデル生成部８３０は、（ｉ）基本情報取得部８２０が取得した、対象領域２０２の内部に配置された１以上の物品のそれぞれのモデルと、（ｉｉ）判定用モデル生成部８４２が生成したマニピュレータ２２０のモデルとに基づいて、シミュレーションモデルを生成する。上記の１以上の物品は、対象領域２０２に新たに追加される物品を含んでよい。
【０１０１】
他の実施形態において、シミュレーションモデル生成部８３０は、（ｉ）基本情報取得部８２０が取得したマニピュレータ２２０のモデルと、（ｉｉ）判定用モデル生成部８４２が生成した、対象領域２０２の内部に配置された１以上の物品のそれぞれのモデルとに基づいて、シミュレーションモデルを生成する。上記の１以上の物品は、対象領域２０２に新たに追加される物品を含んでよい。
【０１０２】
さらに他の実施形態において、シミュレーションモデル生成部８３０は、（ｉ）判定用モデル生成部８４２が生成したマニピュレータ２２０のモデルと、（ｉｉ）対象領域２０２の内部に配置された１以上の物品の少なくとも一部に関する、判定用モデル生成部８４２が生成したモデルと、（ｉｉｉ）対象領域２０２の内部に配置された１以上の物品の残りの部分に関する、基本情報取得部８２０が取得したモデルと、に基づいて、シミュレーションモデルを生成する。上記の１以上の物品は、対象領域２０２に新たに追加される物品を含んでよい。
【０１０３】
本実施形態において、抽出部８４０は、変更前の１又は複数の単位軌道を、（ｉ）検出部７２０が検出した対象領域２０２の内部の変更に応じて、修正が必要となる単位軌道と、（ｉｉ）検出部７２０が検出した対象領域２０２の内部の変更が生じても、修正が必要ではない単位軌道とに分類する。抽出部８４０は、修正が必要となる単位軌道を示す情報を、軌道計画部８５０に出力してよい。一方、抽出部８４０は、修正が必要ではない単位軌道を示す情報を、軌道決定部８６０に出力してよい。
【０１０４】
本実施形態において、判定用モデル生成部８４２は、基本情報取得部８２０が取得したモデルの一部を、その形状及び大きさの少なくとも一方をデフォルメした判定用モデルを生成する。判定用モデル生成部８４２は、生成された判定用モデルの位置、姿勢、形状及び大きさを示す情報を、シミュレーションモデル生成部８３０に出力してよい。判定用モデルの形状は、基本情報取得部８２０が取得したモデルの形状よりも簡略化されていてよい。
【０１０５】
一実施形態において、判定用モデル生成部８４２は、マニピュレータ２２０の大きさを拡大して、マニピュレータ２２０の判定用モデルを生成する。判定用モデル生成部８４２は、マニピュレータ２２０よりも大きく、マニピュレータ２２０よりも単純な形状を有するモデルを生成し、当該モデルを、マニピュレータ２２０の判定用モデルとして出力してもよい。
【０１０６】
判定用モデル生成部８４２は、例えば、円柱形状、多角柱形状、球体形状、及び、これらの組み合わせであって、その内部に、マニピュレータ２２０の全体が収まるようなモデルを、マニピュレータ２２０の判定用モデルとして出力する。多角柱形としては、三角柱、四角柱、六角柱などが例示される。マニピュレータ２２０の判定用モデルは、第１拡大モデルの一例であってよい。
【０１０７】
判定用モデル生成部８４２は、例えば、基本情報取得部８２０から、マニピュレータ２２０の大きさと、判定用モデルの大きさとの関係を示すパラメータを取得する。上記のパラメータは、マニピュレータ２２０の大きさに対する判定用モデルの大きさ（拡大率と称される場合がある。）を示すパラメータであってよい。判定用モデル生成部８４２は、上記のパラメータに基づいて、判定用モデルを生成してよい。上記のパラメータは、マニピュレータ２２０の外形と、判定用モデルの外形との距離の最小値が、干渉マージンよりも大きくなるように設定される。これにより、例えば、基本情報取得部８２０が取得したモデルの形状よりも簡略化された形状を有し、基本情報取得部８２０が取得したモデルよりも大きな判定用モデルが、ほぼリアルタイムに生成される。その結果、衝突判定部８４６が、少ない計算量で、比較的精度よく、衝突判定処理を実行することができる。
【０１０８】
また、上記のパラメータは、任意のタイミングで変更され得る。例えば、判定用モデル生成部８４２は、検出部７２０が対象領域２０２の内部の変更を検出したときに、上記のパラメータを決定する。判定用モデル生成部８４２は、変更の種類に応じて、上記のパラメータを決定してよい。変更の種類としては、マニピュレータ２２０の位置の変更、マニピュレータ２２０の姿勢の変更、マニピュレータ２２０の形状の変更、マニピュレータ２２０の大きさの変更、及び、これらの組み合わせが例示される。変更の種類は、対象領域２０２の内部へのマニピュレータ２２０の追加、対象領域２０２の内部からのマニピュレータ２２０の削除などが例示される。これにより、環境の変化に応じて、判定用モデルの大きさが適切に変更される。その結果、軌道の再計算により、環境の変化に応じた適切な軌道が得られる。
【０１０９】
他の実施形態において、判定用モデル生成部８４２は、対象領域２０２に配置される１以上の物体の少なくとも一部の大きさを拡大して、当該物体の判定用モデルを生成する。上記の物体は、マニピュレータ２２０以外の物体であってよい。上記の物体は、変更が検出された物体であってよい。上記の物体は、対象領域２０２に新たに配置される物体であってよい。上記の物体は、対象領域２０２から削除される物体であってよい。判定用モデル生成部８４２は、上記の物体よりも大きく、当該物体よりも単純な形状を有するモデルを生成し、当該モデルを、当該物体の判定用モデルとして出力してもよい。
【０１１０】
判定用モデル生成部８４２は、例えば、円柱形状、多角柱形状、球体形状、及び、これらの組み合わせであって、その内部に、上記の物体の全体が収まるようなモデルを、当該物体の判定用モデルとして出力する。多角柱形としては、三角柱、四角柱、六角柱などが例示される。対象領域２０２に配置された物体の判定用モデルは、第２拡大モデルの一例であってよい。
【０１１１】
判定用モデル生成部８４２は、例えば、基本情報取得部８２０から、対象領域２０２に配置される各物体の大きさと、判定用モデルの大きさとの関係を示すパラメータを取得する。上記のパラメータは、各物体の大きさに対する判定用モデルの大きさ（拡大率と称される場合がある。）を示すパラメータであってよい。判定用モデル生成部８４２は、上記のパラメータに基づいて、判定用モデルを生成してよい。上記のパラメータは、各物体の外形と、判定用モデルの外形との距離の最小値が、干渉マージンよりも大きくなるように設定される。これにより、例えば、基本情報取得部８２０が取得したモデルの形状よりも簡略化された形状を有し、基本情報取得部８２０が取得したモデルよりも大きな判定用モデルが、ほぼリアルタイムに生成される。その結果、衝突判定部８４６が、少ない計算量で、比較的精度よく、衝突判定処理を実行することができる。
【０１１２】
また、上記のパラメータは、任意のタイミングで変更され得る。例えば、判定用モデル生成部８４２は、検出部７２０が対象領域２０２の内部の変更を検出したときに、上記のパラメータを決定する。判定用モデル生成部８４２は、変更の種類に応じて、上記のパラメータを決定してよい。変更の種類としては、物体の位置の変更、物体の姿勢の変更、物体の形状の変更、物体の大きさの変更、及び、これらの組み合わせが例示される。変更の種類は、対象領域２０２の内部への物体の追加、対象領域２０２の内部からの物体の削除などが例示される。これにより、環境の変化に応じて、判定用モデルの大きさが適切に変更される。その結果、軌道の再計算により、環境の変化に応じた適切な軌道が得られる。
【０１１３】
本実施形態において、判定精度決定部８４４は、衝突判定部８４６における判定精度を示すパラメータの値を決定する。後述のとおり、衝突判定部８４６は、単位軌道上のＭ個（Ｍは、１以上の整数である。）の地点において、衝突判定処理を実行する。つまり、１つの単位軌道について、Ｍ回の衝突判定処理が実行される。判定精度を示すパラメータは、各単位軌道について衝突判定処理が実行される間隔であってもよく、各単位軌道について衝突判定処理が実行される回数Ｍであってもよい。
【０１１４】
一実施形態において、判定精度決定部８４４は、マニピュレータ２２０の大きさ、及び、マニピュレータ２２０の判定用モデルの大きさの少なくとも一方に基づいて、判定精度を示すパラメータの値を決定する。判定精度決定部８４４は、マニピュレータ２２０の大きさと、判定用モデルの大きさとの関係を示すパラメータの値に基づいて、判定精度を示すパラメータの値を決定してよい。
【０１１５】
例えば、判定精度決定部８４４は、マニピュレータ２２０の大きさが大きいほど、上記のＭの値が大きくなるように、判定精度を示すパラメータの値を決定する。判定精度決定部８４４は、マニピュレータ２２０の大きさが大きいほど、上記のＭの値が小さくなるように、判定精度を示すパラメータの値を決定してもよい。
【０１１６】
例えば、判定精度決定部８４４は、マニピュレータ２２０の大きさに対する、マニピュレータ２２０の判定用モデルの大きさが大きいほど（つまり、判定用モデルの拡大率が大きいほど）、上記のＭの値が大きくなるように、判定精度を示すパラメータの値を決定してよい。判定精度決定部８４４は、マニピュレータ２２０の大きさに対する、マニピュレータ２２０の判定用モデルの大きさが大きいほど、上記のＭの値が小さくなるように、判定精度を示すパラメータの値を決定してもよい。
【０１１７】
他の実施形態において、判定精度決定部８４４は、対象領域２０２に配置された物体の大きさ、及び、当該物体の判定用モデルの大きさの少なくとも一方に基づいて、判定精度を示すパラメータの値を決定する。判定精度決定部８４４は、上記の物体の大きさと、判定用モデルの大きさとの関係を示すパラメータの値に基づいて、判定精度を示すパラメータの値を決定してもよい。
【０１１８】
例えば、判定精度決定部８４４は、上記の物体の大きさが大きいほど、上記のＭの値が大きくなるように、判定精度を示すパラメータの値を決定する。判定精度決定部８４４は、上記の物体の大きさが大きいほど、上記のＭの値が小さくなるように、判定精度を示すパラメータの値を決定してもよい。
【０１１９】
例えば、判定精度決定部８４４は、上記の物体の大きさに対する、当該物体の判定用モデルの大きさが大きいほど（つまり、判定用モデルの拡大率が大きいほど）、上記のＭの値が大きくなるように、判定精度を示すパラメータの値を決定する。判定精度決定部８４４は、上記の物体の大きさに対する、当該物体の判定用モデルの大きさが大きいほど（つまり、判定用モデルの拡大率が大きいほど）、上記のＭの値が小さくなるように、判定精度を示すパラメータの値を決定してもよい。
【０１２０】
他の実施形態において、判定精度決定部８４４は、関節空間におけるマニピュレータ２２０の動作と、現実空間におけるマニピュレータ２２０の動作との対応関係に基づいて、判定精度を示すパラメータの値を決定する。例えば、判定精度決定部８４４は、マニピュレータ２２０の自由度が大きいほど、上記のＭの値が大きくなるように、判定精度を示すパラメータの値を決定する。判定精度決定部８４４は、マニピュレータ２２０の自由度が大きいほど、上記のＭの値が小さくなるように、判定精度を示すパラメータの値を決定してもよい。
【０１２１】
本実施形態において、衝突判定部８４６は、シミュレーションモデル生成部８３０が生成したシミュレーションモデルを利用して、１又は複数の単位軌道のそれぞれについて、衝突判定処理を実行する。衝突判定処理では、いくつかの不等式の成否を判定することで、２つの物体の衝突を判定することができる。これにより、比較的少ない計算量で干渉の有無を判定することができる。
【０１２２】
干渉の有無を判定する他の方法としては、２つの物体の最短距離を算出して、当該最短距離に基づいて、干渉の有無を判定することが考えられる（距離判定と称される場合がある）。しかしながら、距離判定においては、一方の物体の外形上の複数の点のそれぞれについて、他方の物体の外形上の複数の点のそれぞれとの距離を計算する必要があり、計算量が膨大になる。
【０１２３】
本実施形態によれば、衝突判定部８４６は、マニピュレータ２２０、及び、対象領域２０２の内部に配されたマニピュレータ２２０以外の物体の少なくとも一方がデフォルメされたモデルを利用して、衝突判定処理を実行する。これにより、マニピュレータ２２０及び上記の物体との距離を算出して、軌道を計算し直すか否かを決定する場合と比較して、計算量を数百分の一程度に抑制することができる。
【０１２４】
例えば、衝突判定部８４６は、マニピュレータ２２０又はその一部（例えば、作業ツール２２２又はロボットアーム２２４である。）が拡大されたモデルと、ワーク２０、障害物３２０及び障害物４２０の実寸大のモデルとを利用して、衝突判定処理を実行する。衝突判定部８４６は、マニピュレータ２２０及びワーク２０の実寸大モデルと、障害物３２０及び障害物４２０が拡大されたモデルとを利用して、衝突判定処理を実行してもよい。衝突判定部８４６は、ワーク２０の実寸大モデルと、マニピュレータ２２０又はその一部（例えば、作業ツール２２２又はロボットアーム２２４である。）が拡大されたモデルと、障害物３２０及び障害物４２０が拡大されたモデルとを利用して、衝突判定処理を実行してもよい。衝突判定部８４６は、ワーク２０が拡大されたモデルを利用して、衝突判定処理を実行してもよい。
【０１２５】
衝突判定部８４６は、全体軌道を構成する１又は複数の単位軌道のそれぞれについて、各単位軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体のそれぞれのモデル又は判定用モデルと、（ｉｉ）マニピュレータ２２０の判定用モデルとの衝突の有無を判定してよい。衝突判定部８４６は、全体軌道を構成する１又は複数の単位軌道のそれぞれについて、各単位軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体うち、変更が検出された物体のモデル又は判定用モデルと、（ｉｉ）マニピュレータ２２０の判定用モデルとの衝突の有無を判定してよい。
【０１２６】
衝突判定部８４６は、全体軌道を構成する１又は複数の単位軌道のそれぞれについて、各単位軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体のそれぞれの判定用モデルと、（ｉｉ）マニピュレータ２２０のモデル又は判定用モデルとの衝突の有無を判定してよい。衝突判定部８４６は、全体軌道を構成する１又は複数の単位軌道のそれぞれについて、各単位軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体うち、変更が検出された物体の判定用モデルと、（ｉｉ）マニピュレータ２２０のモデル又は判定用モデルとの衝突の有無を判定してよい。
【０１２７】
上記の対象領域２０２に配置された１以上の物体には、対象領域２０２の内部に新たに追加される物体が含まれてよい。上記の対象領域２０２に配置された１以上の物体には、対象領域２０２の内部から除去される物体が含まれてよい。これにより、抽出部８４０は、図５に関連して説明された実施形態において、より適切な単位軌道が存在する可能性の高い単位軌道を抽出することができる。
【０１２８】
判定モデルを利用した衝突判定処理により、特定の単位軌道上において、位置、姿勢、形状及び大きさの少なくとも１つに関する変更が検出された物体と、マニピュレータ２２０とが衝突すると判定された場合、当該単位軌道は、例えば、上記の変更が検出された物体との関連具合が大きな単位軌道であると判定される。上記の単位軌道は、軌道を計画し直す必要性の高い単位軌道であると判定されてもよい。
【０１２９】
上記の変更が検出された物体が、対象領域２０２の内部から削除される物体である場合、当該物体が削除前の位置に存在していると仮定して、上記と同様の手順により、衝突判定処理が実行されてよい。上記の衝突判定処理により、特定の単位軌道上において、削除される物体と、マニピュレータ２２０とが衝突すると判定された場合、当該単位軌道は、例えば、上記の削除される物体との関連具合が大きな単位軌道であると判定される。上記の単位軌道は、軌道を計画し直す必要性の高い単位軌道であると判定されてもよい。
【０１３０】
衝突判定部８４６は、単位軌道上のＭ個の地点の全てについて、衝突判定処理を実行しなくてもよい。単位軌道上の１つの地点について、衝突が発生すると判定された場合、衝突判定部８４６は、上記Ｍ個の地点のうち、衝突判定処理が実行されていない地点の衝突判定処理をスキップしてよい。これにより、計算量をさらに削減することができる。
【０１３１】
同様にして、衝突判定部８４６は、１又は複数の単位軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体の少なくとも１つの判定用モデルと、（ｉｉ）マニピュレータ２２０の判定用モデルとの衝突の有無を判定してよい。衝突判定部８４６は、１又は複数の単位軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体のそれぞれの判定用モデルと、（ｉｉ）マニピュレータ２２０の判定用モデルとの衝突の有無を判定してよい。
【０１３２】
同様にして、衝突判定部８４６は、１又は複数の単位軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体の少なくとも１つの判定用モデルと、（ｉｉ）マニピュレータ２２０のモデルとの衝突の有無を判定してよい。衝突判定部８４６は、１又は複数の単位軌道のそれぞれについて、各軌道上のＭ個の地点において、（ｉ）対象領域２０２に配置された１以上の物体のそれぞれの判定用モデルと、（ｉｉ）マニピュレータ２２０のモデルとの衝突の有無を判定してよい。
【０１３３】
本実施形態において、区分判定部８４８は、全体軌道を構成する１又は複数の単位軌道のそれぞれを、修正が必要となる単位軌道と、修正を必要ではない単位軌道とに区分けする。区分判定部８４８は、１又は複数の単位軌道のうち、衝突判定部８４６が当該単位軌道上の少なくとも１つの地点において衝突が発生すると判定した単位軌道を、修正が必要となる軌道であると判定する。衝突判定部８４６が当該単位軌道上の少なくとも１つの地点において衝突が発生すると判定した単位軌道は、対象領域２０２に配置された１以上の物体との関連具合の大きな軌道の一例であってよい。
【０１３４】
区分判定部８４８は、１又は複数の単位軌道のうち、衝突判定部８４６が当該単位軌道上のＭ個の地点の全てにおいて衝突が発生しないと判定した単位軌道を、修正が必要ではない軌道であると判定してもよい。修正が必要ではない単位軌道は、全体軌道を構成する１又は複数の単位軌道から、修正が必要となる単位軌道を除外することで決定されてもよい。衝突判定部８４６が当該単位軌道上のＭ個の地点の全てにおいて衝突が発生しないと判定した単位軌道は、対象領域２０２に配置された１以上の物体との関連具合の小さな軌道の一例であってよい。
【０１３５】
本実施形態において、区分判定部８４８は、修正が必要となる単位軌道を示す情報を、軌道計画部８５０に出力する。区分判定部８４８は、修正が必要ではない単位軌道を示す情報を、軌道決定部８６０に出力してもよい。
【０１３６】
本実施形態において、軌道計画部８５０は、修正が必要となる単位軌道のそれぞれについて、作業ツール２２２の軌道を計画する。各単位軌道の軌道を計画する方法は、特に限定されない。例えば、軌道計画部８５０は、特許第６３２５１７４号に記載された手順に従って、各単位軌道の軌道を計画してよい。
【０１３７】
軌道計画部８５０は、マニピュレータ２２０のモデルと、対象領域２０２に配置された１以上の物体のモデルとを用いて構築されたシミュレーションモデルを利用して、作業ツール２２２の軌道を計画してよい。この場合のモデルは、デフォルメされた判定用モデルではなく、現実のマニピュレータ２２０及び物体を再現したモデルである。また、本実施形態において、上記の１以上の物体のモデルは、対象領域２０２に新たに追加される物体のモデルを含む。また、上記の１以上の物体のモデルには、対象領域２０２から除去された物体のモデルは含まれない。
【０１３８】
本実施形態において、軌道決定部８６０は、作業ツール２２２の全体軌道を決定する。例えば、軌道決定部８６０は、（ｉ）抽出部８４０において修正が必要と判定された単位軌道に関して、軌道計画部８５０が計画し直した単位軌道の軌道を示す情報と、（ｉｉ）抽出部８４０において修正が必要ではないと判定された単位軌道の軌道を示す情報とに基づいて、一連の作業を通した作業ツール２２２の軌道を決定する。
【０１３９】
以上のとおり、本実施形態によれば、調整部７３０が、変更が検出された物体、及び、マニピュレータ２２０の少なくとも一方について、現実の寸法よりも大きな判定用モデルを用いてシミュレーションモデルを構築した上で、全体軌道を構成する全ての単位軌道について、両者の衝突判定処理を実行する。その後、調整部７３０は、上記の衝突判定処理において両者が衝突すると判定された単位軌道を計画し直す。一方、上記の衝突判定処理において両者が衝突しないと判定された単位軌道を再利用する。これにより、極めて短時間で、変更に応じた適切な全体軌道を生成することができる。
【０１４０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。また、各構成要素は、名称が同一で、参照符号が異なる他の構成要素と同様の特徴を有してもよい。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１４１】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１４２】
１０  通信ネットワーク、２０  ワーク、２２  凸部、３２  作業点、３４  作業点、３６  作業点、３８  作業点、１００  作業システム、１２０  実行装置、１４０  管理装置、１６０  入力端末、２０２  対象領域、２１２  コンベア、２１４  ロボット、２２０  マニピュレータ、２２２  作業ツール、２２４  ロボットアーム、２３０  台座、２３２  レール、２４０  駆動部、２５０  駆動制御部、３２０  障害物、３４０  全体軌道、３４２  単位軌道、３４４  単位軌道、３４６  単位軌道、４２０  障害物、６２０  通信制御部、６３０  モデル管理部、６４０  システム管理部、６５０  格納部、７２０  検出部、７３０  調整部、７４０  システム制御部、８２０  基本情報取得部、８３０  シミュレーションモデル生成部、８４０  抽出部、８４２  判定用モデル生成部、８４４  判定精度決定部、８４６  衝突判定部、８４８  区分判定部、８５０  軌道計画部、８６０  軌道決定部
【図１】
2020062741.tif 000003
【図２】
2020062741.tif 000004
【図３】
2020062741.tif 000005
【図４】
2020062741.tif 000006
【図５】
2020062741.tif 000007
【図６】
2020062741.tif 000008
【図７】
2020062741.tif 000009
【図８】
2020062741.tif 000010