WO2023145309A1 - 動作経路生成装置、方法、及びプログラム - Google Patents

動作経路生成装置、方法、及びプログラム Download PDF

Info

Publication number
WO2023145309A1
WO2023145309A1 PCT/JP2022/046970 JP2022046970W WO2023145309A1 WO 2023145309 A1 WO2023145309 A1 WO 2023145309A1 JP 2022046970 W JP2022046970 W JP 2022046970W WO 2023145309 A1 WO2023145309 A1 WO 2023145309A1
Authority
WO
WIPO (PCT)
Prior art keywords
contact state
contact
main object
sub
state
Prior art date
Application number
PCT/JP2022/046970
Other languages
English (en)
French (fr)
Inventor
将佳 阿部
真司 川上
聡庸 金井
ゆみ 齊藤
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2023145309A1 publication Critical patent/WO2023145309A1/ja

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine

Abstract

対象物同士の組立作業について存在する経路のうち、探り動作なしで高速に実行可能な動作経路を生成する。 取得部32が、ロボット42の把持部により把持される主対象物90Aと、組立対象の副対象物90Bとの組立動作における、把持部の主対象物90Aとの相対的な開始位置姿勢及び終了位置姿勢と、環境情報とを取得し、シミュレーション部34が、取得された情報に基づいて、接触状態から非接触状態になるまでの主対象物90Aと副対象物90Bとの接触状態の遷移をシミュレーションし、生成部36が、取得された情報と、シミュレーションされた接触状態の遷移とに基づいて、初期状態からの接触状態の遷移に含まれるいずれかの接触状態に至り、いずれかの接触状態を含む接触状態の遷移を辿って目標状態に至るロボットの動作経路を生成する。

Description

動作経路生成装置、方法、及びプログラム
 本開示は、動作経路生成装置、動作経路生成方法、及び動作経路生成プログラムに関する。
 従来、ロボットにより把持された主対象物と、組立対象である副対象物とを組み立てる作業を実行するためのロボットの動作経路を生成する技術が提案されている。例えば、物体間のクリアランスが小さい組立プロセスにおける高速挿入を確実にするための多指ハンドが提案されている。この多指ハンドは、6自由度可逆駆動性(バックドライバビリティ)及びオブジェクト姿勢可観測性の特徴を有し、小さな物体同士の高速挿入を達成するために、2つの物体が互いに接触するときに、衝撃低減と位置誤差補償との両方を実現する(国際公開第2020/194393号)。
 また、例えば、開始状態から目標状態へのロボットの動作経路を自動生成する経路出力方法が提案されている。この経路出力方法は、外部インタフェース、記憶部、及び演算部を備える演算装置を用いて、複数の可動軸を有するロボットが、対象物を第1の位置から第2の位置に搬送する際の経路を出力する方法である。演算部が、外部インタフェースを用いて第1の位置及び第2の位置を取得し、ロボットが対象物を第1の位置から第2の位置に搬送するときの搬送条件を取得する。そして、ロボットが対象物を第1の位置から第2の位置に搬送する経路であって、当該経路の全体にわたり、搬送条件を満たす経路を生成する(特許6860863号公報)。
 しかしながら、特許文献1に記載の技術では、人が動作経路を生成するため、組立作業をロボットにティーチングする際に、専門的な知識を有する人を必要としていた。また、対象物の位置誤差を調整しながら目標の組立状態に到達するような、いわゆる探り動作が発生する動作経路を立てた場合、探る時間が長く、かつ、ばらつくため、タスクの実行が遅く、そのタスクに要する時間も見積もれない、という問題がある。また、特許文献2に記載の技術では、周辺環境との接触を回避した経路を生成するため、対象物同士の組立を対象とした作業の動作経路の生成に適用することはできない。
 本開示は、上記の点に鑑みてなされたものであり、対象物同士の組立作業について存在する経路のうち、探り動作なしで高速に実行可能な動作経路を生成することを目的とする。
 上記目的を達成するために、本開示に係る動作経路生成装置は、ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、前記把持部の前記主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、前記主対象物及び前記副対象物を含む作業環境の形状情報とを取得する取得部と、前記取得部により取得された情報に基づいて、前記主対象物と前記副対象物との接触状態から、前記主対象物と前記副対象物とが非接触状態になるまでの前記主対象物と前記副対象物との接触状態の遷移をシミュレーションするシミュレーション部と、前記取得部により取得された情報と、前記シミュレーション部によりシミュレーションされた前記接触状態の遷移とに基づいて、前記把持部が前記開始位置及び姿勢である初期状態からの前記接触状態の遷移に含まれるいずれかの接触状態に至り、前記いずれかの接触状態を含む前記接触状態の遷移を辿って目標状態に至る前記ロボットの動作経路を生成する生成部と、を含んで構成される。
 また、本開示に係る動作経路生成方法は、取得部が、ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、前記把持部の前記主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、前記主対象物及び前記副対象物を含む作業環境の形状情報とを取得し、シミュレーション部が、前記取得部により取得された情報に基づいて、前記主対象物と前記副対象物との接触状態から、前記主対象物と前記副対象物とが非接触状態になるまでの前記主対象物と前記副対象物との接触状態の遷移をシミュレーションし、生成部が、前記取得部により取得された情報と、前記シミュレーション部によりシミュレーションされた前記接触状態の遷移とに基づいて、前記把持部が前記開始位置及び姿勢である初期状態からの前記接触状態の遷移に含まれるいずれかの接触状態に至り、前記いずれかの接触状態を含む前記接触状態の遷移を辿って目標状態に至る前記ロボットの動作経路を生成する方法である。
 また、本開示に係る動作経路生成プログラムは、コンピュータを、ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、前記把持部の前記主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、前記主対象物及び前記副対象物を含む作業環境の形状情報とを取得する取得部、前記取得部により取得された情報に基づいて、前記主対象物と前記副対象物との接触状態から、前記主対象物と前記副対象物とが非接触状態になるまでの前記主対象物と前記副対象物との接触状態の遷移をシミュレーションするシミュレーション部、及び、前記取得部により取得された情報と、前記シミュレーション部によりシミュレーションされた前記接触状態の遷移とに基づいて、前記把持部が前記開始位置及び姿勢である初期状態からの前記接触状態の遷移に含まれるいずれかの接触状態に至り、前記いずれかの接触状態を含む前記接触状態の遷移を辿って目標状態に至る前記ロボットの動作経路を生成する生成部として機能させるためのプログラムである。
 本開示に係る動作経路生成装置、方法、及びプログラムによれば、対象物同士の組立作業について存在する経路のうち、探り動作なしで高速に実行可能な動作経路を生成することができる。
ロボット制御システム1の概略構成図である。 本実施形態における動作経路の一例を説明するための図である。 3次元表現のコンフィギュレーション空間の一例を示す図である。 動作経路生成装置のハードウェア構成を示すブロック図である。 動作経路生成装置の機能構成の例を示すブロック図である。 面接触の一例を示す図である。 面接触の一例を示す図である。 面接触の一例を示す図である。 辺接触の一例を示す図である。 辺接触の一例を示す図である。 辺接触の一例を示す図である。 辺接触の一例を示す図である。 辺接触の一例を示す図である。 辺接触の一例を示す図である。 維持変位及び離脱変位を説明するための図である。 第1提示画面の一例を示す図である。 第2提示画面の一例を示す図である。 動作経路生成処理の一例を示すフローチャートである。 分岐木生成処理の一例を示すフローチャートである。 接触状態の維持範囲の限定を説明するための図である。 分岐木生成処理の具体例を説明するための図である。 分岐木生成処理の具体例を説明するための図である。 分岐木生成処理の具体例を説明するための図である。 分岐木を説明するための図である。 維持範囲と分解能との関係を説明するための図である。 維持範囲と分解能との関係を説明するための図である。 環境との接触を考慮しないロボット制御を説明するための図である。 本開示を実装する対象としての力制御系の実現例の一例としてのアドミタンス制御を説明するための図である。 本開示を実装する対象としての力制御系の実現例の一例としてのインピーダンス制御を説明するための図である。
 以下、本開示の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
 図1に示すように、本実施形態に係るロボット制御システム1は、動作経路生成装置10と、ロボット制御装置40と、ロボット42と、センサ群50とを含んで構成される。
 ロボット42は、ロボットアーム44とハンド部46とを含む。ハンド部46は本開示の「把持部」の一例である。ロボットアーム44は、リンクと、リンク間を接続すると共に、モータの駆動により回転又は直動伸縮するジョイントとを含んで構成される。ロボットアーム44は、ロボット制御装置40から出力された指令値にしたがってモータが駆動されて、ジョイントの回転角度又は伸縮状態が変更される。これにより、ハンド部46が3次元空間において指定された位置、及び指定された姿勢となるように制御される。なお、本実施形態では、水平面内の直交する2方向をX軸及びY軸、鉛直方向をZ軸、X軸周りの回転をφ、Y軸周りの回転をθ、Z軸周りの回転をψとして、位置及び姿勢が表されるものとする。
 ハンド部46は、ロボットアーム44の先端に設けられ、主対象物90Aを把持可能なツールである。ハンド部46は、例えば、多関節多指型ロボットハンド、グリッパー型ロボットハンド、吸着パッド等としてよい。
 また、ロボット42は、好適には、接触による外部環境からの反力によりジョイントやリンクが押し負け、外部環境になじむ振る舞いをするソフトロボットや、そのような性質を備えたハンド部46を備えたソフトロボットとしてよい。
 センサ群50は、複数種類のセンサを含み、各センサで取得されたセンサデータは、時系列データとしてロボット制御装置40へ出力される。なお、図1では、センサ群50を、ハンド部46付近に1つのブロックで概念的に表現しているが、センサ群50に含まれる各センサは、センサの種類及び機能に応じた位置にそれぞれ設けられる。
 各センサとしては、ロボット42で行う作業に応じて必要なものを備えればよい。ただし、本実施形態では、接触を利用した主対象物90Aと副対象物90Bとの組立作業の動作経路に基づいて、ロボット42の動作が制御される。そのため、主対象物90Aと環境との接触時の外力を検知可能なセンサ、例えば力覚センサ、パッドの変形量を計測可能なセンサ(パッドセンサ)等がセンサ群50には含まれる。また、モータのエンコーダも外力を検知可能なセンサとして利用可能である。この場合、モータのエンコーダの出力値と
モータへの指令値との差分が外力として検知される。センサ群50には、その他のセンサとして、制御目標に対する主対象物90Aの位置及び姿勢に関する相対誤差(以下、「位置姿勢誤差」という)を認識可能なセンサ、例えばビジョンセンサ、近接センサ等が含まれる。なお、パッドセンサは、位置姿勢誤差を認識可能なセンサとしても利用可能である。
 ロボット制御装置40は、動作経路生成装置10で生成された動作経路に基づく指令値を生成し、ロボット42へ出力する。
 ここで、図2を参照して、本実施形態における動作経路の一例について説明する。図2の例は、主対象物90Aである円柱状のシャフトを、副対象物90Bである円柱状のリングの穴(挿入位置)に挿入する作業についての動作経路である。図2では、各動作について、主対象物90Aと副対象物90Bとの位置関係を示す概略側面図と、その動作時のコンフィギュレーション空間とを並べて図示している。また、図2には、各動作の開始時における主対象物90Aであるシャフトの底面右側の位置及び姿勢を表すコンフィギュレーション空間での座標を丸印で示している。
 まず、ハンド部46により把持された主対象物90Aの傾き(θ)が0°で、かつ、主対象物90Aと副対象物90Bとが非接触の状態を初期状態とする。動作(1)は、初期状態から、主対象物90Aを副対象物90Bの挿入位置の上方へ平行移動させる動作である。動作(2)は、主対象物90Aを所定角度(図2の例では、45°)傾ける動作である。動作(3)は、主対象物90Aと副対象物90Bとが接触するまで、主対象物90Aを挿入位置に向けて下降させる動作である。動作(3)のコンフィギュレーション空間は、主対象物90Aを傾けたことにより、主対象物90Aが副対象物90Bの穴の最下部まで到達不可となることを表している。
 動作(4)は、主対象物90Aの傾き、及び主対象物90Aと副対象物90Bとの接触を維持したまま、主対象物90Aの他の箇所が副対象物90Bと接触するまで、主対象物90Aを挿入位置方向へ移動させる動作である。動作(5)は、主対象物90Aと副対象物90Bとのアライメントを利用して、主対象物90Aの傾きを、主対象物90Aが副対象物90Bの挿入位置(穴)の内周に沿って下降可能な角度(図2の例では、10°)まで戻す動作である。動作(6)は、主対象物90Aを副対象物90Bの挿入位置(穴)の内周に沿って下方へ移動させる動作である。動作(7)は、主対象物90Aを目標の角度ε°(図2の例では、0°)にする動作である。このように、本実施形態では、主対象物90Aと環境の1つである副対象物90Bとの接触を利用した動作経路を前提とする。
 なお、図2では、コンフィギュレーション空間を2次元で表しているが、図2におけるコンフィギュレーション空間は、紙面に垂直な方向にθの軸も有している。図3に、3次元表現のコンフィギュレーション空間の一例を示す。図3には、図2の各動作(1)~(7)の開始時における主対象物90Aであるシャフトの底面右側の位置及び姿勢を表すコンフィギュレーション空間での座標を丸印で示している。
 動作経路生成装置10は、シミュレーションにより動作経路を生成し、ロボット制御装置40へ出力する。図4は、本実施形態に係る動作経路生成装置10のハードウェア構成を示すブロック図である。図4に示すように、動作経路生成装置10は、CPU(Central Processing Unit)12、メモリ14、記憶装置16、入出力I/F(Interface)18、入出力装置20、記憶媒体読取装置22、及び通信I/F24を有する。各構成は、バス26を介して相互に通信可能に接続されている。
 記憶装置16には、後述する動作経路生成処理を実行するための動作経路生成プログラ
ムが格納されている。CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU12は、記憶装置16からプログラムを読み出し、メモリ14を作業領域としてプログラムを実行する。CPU12は、記憶装置16に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
 メモリ14は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置16は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
 入出力I/F18は、動作経路生成装置10とロボット制御装置40とを接続するためのインタフェースである。動作経路生成装置10で生成された動作経路は、入出力I/F18を介して、ロボット制御装置40へ出力される。入出力装置20は、例えば、キーボードやマウス等の、各種の入力を行うための入力装置、ディスプレイ等の表示装置やプリンタ等の、各種の情報を出力するための出力装置である。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
 記憶媒体読取装置22は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F24は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
 次に、本実施形態に係る動作経路生成装置10の機能構成について説明する。
 図5は、動作経路生成装置10の機能構成の例を示すブロック図である。動作経路生成装置10には、開始位置におけるハンド部46の主対象物90Aとの相対的な位置及び姿勢の情報(以下、「開始位置姿勢」という)、及び終了位置におけるハンド部46の主対象物90Aとの相対的な位置及び姿勢の情報(以下、「終了位置姿勢」という)が入力される。また、動作経路生成装置10には、主対象物90A及び副対象物90Bを含む作業環境の形状及び配置を示す環境情報が入力される。例えば、主対象物90A及び副対象物90Bの各々のCADデータ、障害物が配置された作業環境を表すコンフィギュレーション空間等が環境情報に含まれる。また、動作経路生成装置10には、ロボット42の動作の分解能を特定するための情報(以下、「分解能特定情報」という)が入力される。分解能特定情報には、センサ群50に含まれるセンサの分解能、及びロボット42を駆動するためのアクチュエータの制御精度の少なくとも一方が含まれる。
 図5に示すように、動作経路生成装置10は、機能構成として、取得部32と、シミュレーション部34と、生成部36と、表示制御部38とを含む。各機能構成は、CPU12が記憶装置16に記憶された動作経路生成プログラムを読み出し、メモリ14に展開して実行することにより実現される。
 取得部32は、動作経路生成装置10に入力された開始位置姿勢、終了位置姿勢、及び環境情報を取得し、シミュレーション部34へ受け渡す。また、取得部32は、動作経路生成装置10に入力された分解能特定情報を取得し、生成部36へ受け渡す。
 シミュレーション部34は、取得部32から受け渡された情報に基づいて、主対象物9
0Aと副対象物90Bとの接触状態から、主対象物90Aと副対象物90Bとが非接触状態になるまでの主対象物90Aと副対象物90Bとの接触状態の遷移をシミュレーションする。
 ここで、主対象物90Aと副対象物90Bとの接触状態について定義する。主対象物90Aの面と副対象物90Bの面とが接触する接触状態を面接触という。また、主対象物90A及び副対象物90Bの少なくとも一方の辺(又は点)と、主対象物90A及び副対象物90Bの他方とが接触する接触状態を辺(又は点)接触という。以下では、辺(又は点)の「(又は点)」を省略し、単に「辺」という。また、以下では、X軸に直交する面を「X面」、Y軸に直交する面を「Y面」、Z軸に直交する面を「Z面」という。さらに、以下の各図では、面接触の接触箇所を太線で表し、辺接触の接触箇所を黒丸で表す。
 図6A~図6Cに、面接触の一例を示す。図6Aでは、主対象物90Aと副対象物90BとがZ面同士で接触しており、図6Bでは、主対象物90Aと副対象物90BとがX面同士で接触している。このように面接触であっても、接触面が異なる場合、図6Aと図6Bとはそれぞれ異なる接触状態の面接触として扱う。また、図6Aでは、主対象物90AのZ面全体が副対象物90Bと接触しているのに対し、図6Cでは、Z面の一部のみが接触している。このような場合、図6Aと図6Cとはそれぞれ異なる接触状態の面接触として扱う。
 図7A~図7Fに、辺接触の一例を示す。図7A及び図7Bは、主対象物90Aと副対象物90Bとが1辺で接触している辺接触である。このように、1辺で接触している辺接触を、以下では「1辺接触」という。この例において、図7Aでは、主対象物90Aの下側Z面右(=右側X面下)の1辺が、副対象物90Bの上側Z面左(=左側X面上)の1辺と接触している。図7Bでは、主対象物90Aの下側Z面右(=右側X面下)の1辺が副対象物90Bの上側Z面と接触している。これらは、それぞれ異なる接触状態の1辺接触として扱う。
 また、図7C、図7D、及び図7Eは、主対象物90Aと副対象物90Bとが2辺で接触している辺接触である。このように、2辺で接触している辺接触を、以下では「2辺接触」という。この例において、図7Cでは、主対象物90Aの下側Z面左(=左側X面下)の1辺が左の副対象物90Bの右側X面に接触し、右の副対象物90Bの上側Z面左(=左側X面上)の1辺が主対象物90Aの右側X面と接触している。また、図7Dでは、左の副対象物90Bの上側Z面右(=右側X面上)の1辺が主対象物90Aの下側Z面に接触し、右の副対象物90Bの上側Z面左(=左側X面上)の1辺が主対象物90Aの右側X面と接触している。また、図7Eでは、主対象物90Aの下側Z面左(=左側X面下)の1辺が左の副対象物90Bの上側Z面右(=右側X面上)の1辺に接触し、右の副対象物90Bの上側Z面左(=左側X面上)の1辺が主対象物90Aの右側X面と接触している。このように、接触している辺の少なくとも1箇所が異なる場合には、それぞれ異なる接触状態の2辺接触として取り扱う。なお、図7Fは、主対象物90Aと副対象物90Bとが3辺で接触している3辺接触の例である。
 シミュレーション部34は、目標状態から開始して、主対象物90Aと副対象物90Bとの接触状態が、ある方向に力をかけても動かない状態(2辺接触~面接触状態)に達すると、違う方向に力をかけ続け、それにより動かない状態に達した場合、その状態からまた違う方向に力をかけ続ける、ということを繰り返すことで、接触状態の遷移をシミュレーションする。このような接触状態の遷移を探索する場合において考慮すべき、副対象物90Bに対する主対象物90Aの変位には、図8に示すような維持変位及び離脱変位がある。維持変位は、同一の接触状態を維持したまま主対象物90Aを変位させることである。図8に示すように、維持変位は、面接触のまま主対象物90Aを平行移動させる場合、及び1辺接触又は2辺接触を維持したまま主対象物90Aを回転させる場合を含む。離脱
変位は、接触状態の自由度が高くなる方向へ主対象物90Aを変位させることである。図8に示すように、離脱変位は、面接触している副対象物90Bとの接触面と交差する方向かつ、副対象物90Bと離れる方向へ主対象物90Aを平行移動させる場合を含む。また、離脱変位は、面接触又は2辺接触から1辺接触になるように主対象物90Aを回転させる場合を含む。
 シミュレーション部34は、具体的には、上記のように接触状態の遷移を探索しながら、目標状態を根ノードとし、それぞれ異なる接触状態に対応するノードを有する分岐木を生成する。より具体的には、シミュレーション部34は、2辺接触、3辺接触、若しくは面接触状態のいずれかの状態から、離脱変位の移動を行った直後の状態、又は、その離脱変位の移動を行った方向に対する維持変位を実行し続けて、新しい接触状態に至るか否かをシミュレーションする。また、シミュレーション部34は、新しい接触状態に至った場合において、新しい接触状態が2辺接触、3辺接触、又は面接触の場合、その接触状態に対して、同じように探索(分岐木の生成)を実行する。また、シミュレーション部34は、離脱変位の移動を行った直後の接触状態が1辺接触で、その離脱変位の移動を行った方向に対する維持変位を実行し続けて至る新しい状態が何にも接触していない状態になる場合は1辺接触状態だけを分岐木に登録する。シミュレーション部34は、分岐木のノードの各々に、そのノードに対応する接触状態において、主対象物90Aが維持変位可能な範囲(以下、「維持範囲」)を求め、そのノードにさらに対応付ける。シミュレーション部34は、維持範囲を、平行移動の方向(X,Y,Z)、及び回転の方向(φ,θ,ψ)の各方向について求める。
 生成部36は、取得部32により取得された情報と、シミュレーション部34によりシミュレーションされた接触状態の遷移とに基づいて、主対象物90Aが開始位置姿勢である初期状態からの接触状態の遷移に含まれるいずれかの接触状態に至り、いずれかの接触状態を含む接触状態の遷移を辿って目標状態に至るロボットの動作経路を生成する。具体的には、生成部36は、分岐木において、ロボット42の動作の分解能よりも大きな維持範囲が対応付けられたノードを特定する。生成部36は、複数のノードが特定される場合、分岐木の根ノードから最も近いノードを特定する。そして、生成部36は、分岐木において、特定したノードから根ノードまでに対応する接触状態の遷移を特定し、特定した接触状態の遷移に対応するロボット42の経路を生成する。また、生成部36は、初期状態の位置から、特定したノードに対応する接触状態までの経路であって、周辺の障害物を回避した経路を生成する。そして、生成部36は、初期状態から、特定したノードに対応する接触状態までの経路と、特定したノードに対応する接触状態から目標状態までの経路とを結合した経路を動作経路として表示制御部38へ受け渡す。なお、経路とは、ロボット42のハンド部46の所定部分(例えば、手先)の位置及び姿勢の系列である。
 また、生成部36は、表示制御部38から、後述するユーザ登録位置姿勢を受け渡され、動作経路の再生成を指示された場合、生成済みの動作経路にユーザ登録位置姿勢を反映して、動作経路を再生成する。詳細は後述するが、ユーザ登録位置姿勢は、動作経路内の特定の時間における主対象物90Aの位置及び姿勢の修正が登録されたものである。生成部36は、生成済みの動作経路が、指定された位置及び姿勢を経由するように修正することにより、動作経路を再生成してよい。また、生成部36は、ユーザ登録位置姿勢に対応する接触状態が対応付けられたノードを分岐木から探索し、探索されたノードに対応する接触状態を経由する接触状態の遷移に基づいて、動作経路を再生成してもよい。
 表示制御部38は、生成部36により生成された動作経路を表示装置に表示する。表示制御部38は、例えば図9に示すような第1提示画面60を表示装置に表示する。図9の例では、第1提示画面60には、3次元ビュー61が含まれる。3次元ビュー61では、初期状態から目標状態に至る主対象物90A及び副対象物90Bの3次元位置(X,Y,
Z)及び姿勢(φ,θ,ψ)が、3次元のアニメーションでプレビューされる。主対象物90A及び副対象物90B以外の環境の3次元画像も合わせて表示してもよい。また、3次元ビュー61において、3次元CADソフトのように、主対象物90A及び副対象物90Bの位置及び姿勢をマウスで動かせるようにしてよい。
 また、第1提示画面60は、3次元ビュー61で表示されるアニメーションの再生時間が表示される時間表示62を含む。すなわち、3次元ビュー61で表示されるアニメーションの各コマに対応付けられた時間のうち、3次元ビュー61に表示されているコマに対応付けられた時間が時間表示62に表示される。また、時間表示62に任意の時間を入力し、その時間に対応するコマを3次元ビュー61に表示するようにしてもよい。
 また、第1提示画面60は、フェーズ表示63を含む。フェーズ表示63は、動作経路が示す動作の開始から終了までの時間経過を示す帯状の表示等の1軸の表示であり、動作経路において主対象物90Aと副対象物90Bとの接触状態が変わる時間に対応する位置に第1マーク(図9のフェーズ表示63における破線)が表示される。図9の例では、接触状態が変わる時間をそれぞれ「フェーズi(i=1,2,・・・)」としている。また、フェーズ表示63には、時間表示62に表示されている時間に対応する位置に第2マーク(図9のフェーズ表示63における実線及び黒三角)が表示される。第2マークをフェーズ表示63上で移動させることにより、時間表示62に表示される時間を指定可能である。また、フェーズ表示63には、後述するユーザ登録位置姿勢を示す第3マーク(図9のフェーズ表示63における点線)が、ユーザ登録位置姿勢の対象の時間に対応する位置に表示される。
 また、第1提示画面60は、登録ボタン64を含む。ユーザは、特定の時間を指定し、その時間における主対象物90A及び副対象物90Bの位置及び姿勢を3次元ビュー61に表示し、マウス操作等により主対象物90Aの位置及び姿勢を修正したうえで、登録ボタン64を選択する。これにより、動作経路内の指定された時間に対して、ユーザにより修正された主対象物90Aの位置及び姿勢が登録される。この登録を「ユーザ登録位置姿勢」という。また、第1提示画面60は、再生成ボタン65を含む。動作経路に対して位置姿勢のユーザ登録が行われて、ユーザにより再生成ボタン65が選択された場合、表示制御部38は、ユーザ登録位置姿勢を受け付け、受け付けたユーザ登録位置姿勢を生成部36へ受け渡し、動作経路の再生成を指示する。
 また、表示制御部38は、例えば図10に示すような第2提示画面70を表示装置に表示する。図10の例では、第2提示画面70には、第1提示画面60と同様に、時間表示62、フェーズ表示63、登録ボタン64、及び再生成ボタン65が含まれる。また、第2提示画面70には、3次元ビュー71が含まれる。3次元ビュー71には、位置の3自由度(X,Y,Z)と姿勢の3自由度(φ,θ,ψ)から選択された3変数を3軸とするコンフィギュレーション空間が表示される。第1提示画面60の3次元ビュー61と同様に、3次元ビュー71においてもユーザによる位置姿勢の登録が可能である。ユーザは、3次元ビュー71に表示されたコンフィギュレーション空間上で、座標点(図10の3次元ビュー71内の黒点)を移動させることにより、主対象物90Aの位置及び姿勢を修正可能である。また、第2提示画面70には、3次元ビュー71に表示するコンフィギュレーション空間の軸に対応させる3変数を選択するための選択領域72が含まれる。
 表示制御部38は、表示装置において、第1提示画面60及び第2提示画面70をそれぞれ別ウィンドウで同時に表示してよい。また、表示制御部38は、選択する3変数がそれぞれ異なる第2提示画面70を、それぞれ別ウィンドウで複数同時に表示してもよい。表示制御部38は、第1提示画面60及び第2提示画面70を複数ウィンドウで表示した場合、各ウィンドウに対応する第1提示画面60及び第2提示画面70の時間表示62を
同期させ、各ウィンドウの表示を連動させてもよい。
 次に、本実施形態に係るロボット制御システム1の作用について説明する。
 図11は、動作経路生成装置10のCPU12により実行される動作経路生成処理の流れを示すフローチャートである。CPU12が記憶装置16から動作経路生成プログラムを読み出して、メモリ14に展開して実行することにより、CPU12が動作経路生成装置10の各機能構成として機能し、図11に示す動作経路生成処理が実行される。
 ステップS10で、取得部32が、動作経路生成装置10に入力された開始位置姿勢、終了位置姿勢、環境情報、及び分解能特定情報を取得する。
 次に、ステップS12で、シミュレーション部34が、上記ステップS10で取得された終了位置姿勢及び環境情報に基づいて、主対象物90Aと副対象物90Bとが組み立てられた目標状態を特定する。具体的には、シミュレーション部34は、終了位置姿勢において主対象物90Aと副対象物90Bとが組み立てられた状態のうち、面接触している面の数が最も多い状態を目標状態として特定する。なお、シミュレーション部34は、面接触している面が1つもない場合、辺接触の数が最も多い状態を目標状態として特定する。目標状態の候補が複数ある場合は、どの状態を目標状態として特定してもよい。
 次に、ステップS14で、シミュレーション部34が、分岐木生成処理を実行する。ここで、図12を参照して、分岐木生成処理について説明する。
 ステップS141で、シミュレーション部34が、主対象物90Aが副対象物90Bに接触しているか否かを判定する。接触している場合には、ループ処理L1へ移行し、接触していない場合には、分岐木生成処理を終了し、リターンする。
 ループ処理L1は、ステップL1Sで開始し、現在の接触状態から、面接触又は辺接触を保ったまま、かつ離脱変位となる方向(回転を含む)への接触状態の遷移(以下、「L1の遷移」という)の各々について、ステップS142~S145及びループ処理L2が実行される。そして、ループ処理L1は、現在の接触状態について過去に探索した方向を除いて遷移可能な方向がなくなった場合に、ステップL1Eで終了する。
 ステップS142では、シミュレーション部34が、L1の遷移後の接触状態が分岐木に登録済みか否かを判定する。登録済みの場合には、ステップS146へ移行し、登録されていない場合には、ステップS143へ移行する。ステップS143では、シミュレーション部34が、L1の遷移後の接触状態の維持範囲を求める。そして、シミュレーション部34が、分岐木における、L1の遷移前の接触状態に対応するノードの下流に接続するノードに、L1の遷移後の接触状態及び維持範囲を対応付けて登録する。
 L1の遷移後の接触状態の維持範囲を求める際、シミュレーション部34は、L1の遷移を戻す方向の遷移を実行した際に、L1の遷移前と同じ接触状態に戻ることが可能な範囲に維持範囲を限定する。例えば、図13の(a)に示すように、L1の遷移前の接触状態が、主対象物90Aの下側Z面の一部が副対象物90Bに接触している面接触であるとする。その状態から、(b)に示すように、主対象物90Aの下側Z面右(=右側X面下)と、副対象物90Bの上側Z面との1辺接触を保って主対象物90Aを回転させることにより、接触状態を遷移させたとする。このL1の遷移後の接触状態から、維持変位として、(c)に示すようにX軸方向に主対象物90Aを平行移動させるとする。この場合、維持変位ではあるが、(c)の状態からL1の遷移である回転を戻した場合、主対象物90Aの下側Z面の全面が副対象物90Bに接触する面接触となり、(a)とは異なる接触
状態となる。したがって、この場合、(c)の状態は(b)の維持範囲には含まれない。
 次に、ステップS144で、シミュレーション部34が、L1の遷移後の接触状態は1辺接触か否かを判定する。1辺接触の場合にはループ処理L2へ移行し、1辺接触ではない場合、すなわち2辺以上の辺接触又は面接触の場合には、ステップS145へ移行する。ステップS145では、シミュレーション部34が、L1の遷移後の接触状態を分岐木生成処理の開始時の接触状態として、分岐木生成処理を再帰的に実行する。
 ステップS146では、シミュレーション部34が、L1の遷移後の接触状態が1辺接触以外の場合、分岐木に既に登録されている、L1の遷移後の接触状態に対応するノードと、今回登録するノードとで、分岐木の根ノードに近い方のノードに、根ノードから遠い方のノードから葉ノードまでの部分木を付け替える。そして、ループ処理L2へ移行する。なお、L1の遷移後の接触状態が1辺接触の場合、本ステップの処理はスキップする。
 ループ処理L2は、ステップL2Sで開始し、同じ方向への遷移で新しい面接触又は2辺以上の辺接触となる接触状態の遷移(以下、「L2の遷移」という)の各々について、ステップS147~S150が実行される。そして、ループ処理L2は、新しい面接触又は2辺以上の辺接触に至らなくなった場合に、ステップL2Eで終了する。
 ステップS147では、シミュレーション部34が、L2の遷移前の接触状態について、上記ステップS143を実行しているか否かを判定する。実行している場合には、ステップS149へ移行し、実行していない場合には、ステップS148へ移行する。ステップS148では、上記ステップS143の処理と同様に、L2の遷移前の接触状態及び維持範囲を分岐木に登録し、ステップS149へ移行する。ステップS149では、シミュレーション部34が、上記ステップS143の処理と同様に、L2の遷移後の接触状態及び維持範囲を分岐木に登録する。次に、ステップS150で、シミュレーション部34が、L2の遷移後の接触状態を分岐木生成処理の開始時の接触状態として、分岐木生成処理を再帰的に実行する。
 図14~図16に示す具体例を用いて、上記の分岐木生成処理をより詳細に説明する。なお、図14~図16では、X、Z、及びθの方向への遷移を中心に、説明に必要な接触状態のみを図示しており、他の方向への遷移を考慮した接触状態の図示は省略している。
 まず、図14の(a)に示すように、シミュレーション部34が、主対象物90Aの左側X面及び下側Z面の2面が副対象物90Bと接触している面接触の状態を目標状態として特定し、分岐木生成処理を開始するものとする。次に、シミュレーション部34は、L1の遷移として、例えば、主対象物90Aを、下側Z面での面接触を保ったままX軸方向へ平行移動させる遷移を実行する。この場合におけるL1の遷移後の接触状態を(b)に示す。シミュレーション部34は、目標状態に対応する根ノードの下流に、接触状態(b)及びその維持範囲を対応付けたノードを接続することにより、接触状態(b)を分岐木に登録する(ステップS143)。接触状態(b)は1辺接触ではないため(ステップS144で否定判定)、シミュレーション部34は、接触状態(b)からのL1の遷移を実行する(ステップS145中のループ処理L1)。
 シミュレーション部34は、接触状態(b)からのL1の遷移として、例えば、主対象物90Aを、下側Z面右(右側X面下)での1辺接触を保ったまま回転させる遷移を実行する。この場合におけるL1の遷移後の接触状態を(c)に示す。シミュレーション部34は、接触状態(b)に対応するノードの下流のノードに、接触状態(c)を登録する(ステップS143)。接触状態(c)は1辺接触であるため(ステップS144で肯定判定)、ループ処理L2が実行される。(b)から(c)への遷移と同じ方向へのL2の遷
移を継続すると、(d)に示すように、2辺接触の状態が出現する。L2の遷移前の接触状態(c)については分岐木へ登録済みであるため(ステップS147で肯定判定)、シミュレーション部34は、接触状態(c)に対応するノードの下流のノードに、接触状態(d)を登録する(ステップS149)。次に、シミュレーション部34は、接触状態(d)からのL1の遷移を実行する(ステップS150中のループ処理L1)。
 接触状態(d)から、主対象物90Aの右側X面での1辺接触を保ったままZ軸方向上方へ平行移動させる遷移をL1の遷移として実行した後の接触状態を(e)に示す。接触状態(e)は1辺接触であるため(ステップS144で肯定判定)、ループ処理L2へ移行するが、(f)に示すように、L1の遷移と同じ方向に維持変位させても、新たな面接触又は2辺接触は出現しない。したがって、シミュレーション部34は、ループ処理L2を終了し、接触状態(d)を初期の接触状態とする分岐生成処理のループ処理L1に戻り、(d)から(e)への遷移とは異なる方向へのL1の遷移を実行する。
 接触状態(d)から下側Z面右(=右側X面下)での1辺接触を保ったまま主対象物90Aを回転させる遷移をL1の遷移として実行した後の接触状態を(g)に示す。接触状態(g)は接触状態(c)と同様であるため、既に分岐木に登録されており(ステップS142で肯定判定)、また、1辺接触であるため、ステップS146がスキップされ、ループ処理L2へ移行する。そして、L1の遷移と同じ方向へL2の遷移を継続した場合、(h)に示すような2辺接触が出現する。L2の遷移前の接触状態(g)はステップS143を経由していないため、分岐木に登録されていない(ステップS147で否定判定)。そこで、シミュレーション部34は、接触状態(g)を分岐木に登録したうえで(ステップS148)、接触状態(h)を分岐木に登録する(ステップS149)。接触状態(h)について、以下、上記と同様に分岐木生成処理を実行する(ステップS150中のステップS150)。
 (a)から(b)へのL1の遷移について、ステップS145の分岐木生成処理の再帰的な実行が終了すると、シミュレーション部34は、(a)から(b)へのL1の遷移と同じ方向へのL2の遷移を実行する。この場合、図15の(i)に示すように、下側Z面及び右側X面の2面が接触した新たな面接触が出現する。シミュレーション部34は、接触状態(i)を分岐木に登録し(ステップS149)、接触状態(i)を初期の接触状態とする分岐木生成処理を再帰的に実行する(ステップS150)。
 接触状態(i)から、主対象物90Aの右側X面での面接触を保ったままZ軸上方へ移動させる遷移をL1の遷移として実行した後の接触状態を(j)に示す。シミュレーション部34は、接触状態(j)及びその維持範囲を対応付けたノードを接続することにより、接触状態(j)を分岐木に登録する(ステップS143)。接触状態(j)は1辺接触ではないため(ステップS144で否定判定)、シミュレーション部34は、接触状態(j)を初期の接触状態とする分岐木生成処理を再帰的に実行する(ステップS145)。
 接触状態(j)から、主対象物90Aの右側X面での辺接触を保ったまま回転させる遷移をL1の遷移として実行した後の接触状態を(k)に示す。接触状態(k)は接触状態(e)と同様であるため、既に分岐木に登録されており(ステップS142で肯定判定)、また、1辺接触であるため、ステップS146がスキップされ、ループ処理L2へ移行する。そして、L1の遷移と同じ方向へL2の遷移を継続した場合、(l)に示すような2辺接触が出現する。L2の遷移前の接触状態(k)はステップS143を経由していないため、分岐木に登録されていない(ステップS147で否定判定)。そこで、シミュレーション部34は、接触状態(k)を分岐木に登録したうえで(ステップS148)、接触状態(l)を分岐木に登録する(ステップS149)。接触状態(k)について、以下、上記と同様に分岐木生成処理を実行する(ステップS150中のステップS150)。
 接触状態(l)から、主対象物90Aの右側X面の1辺接触を保ったままZ軸方向上方かつX軸右方向へ平行移動させる遷移をL1の遷移として実行した後の接触状態を(m)に示す。接触状態(m)は接触状態(e)と同じであり、L2の遷移でも新たな面接触又は辺接触は出現しないため、接触状態(m)は分岐木に登録されない。
 また、接触状態(l)から、主対象物90Aの左側X面の1辺接触を保ったまま回転させる遷移をL1の遷移として実行した後の接触状態を(n)に示す。シミュレーション部34は、接触状態(n)を分岐木に登録し(ステップS143)、ループ処理L2へ移行する。そして、L1の遷移と同じ方向へL2の遷移を継続した場合、(o)に示すような新たな面接触が出現する。シミュレーション部34は、接触状態(o)を分岐木に登録し(ステップS149)、接触状態(o)を初期の接触状態とする分岐木生成処理を再帰的に実行する(ステップS150)。
 接触状態(o)から、主対象物90Aの左側X面の1辺接触を保ったまま回転させる遷移をL1の遷移として実行した後の接触状態を(p)に示す。シミュレーション部34は、接触状態(p)を分岐木に登録し(ステップS143)、ループ処理L2へ移行する。そして、L1の遷移と同じ方向へL2の遷移を継続した場合、図16の(q)に示すような新たな2辺接触が出現する。シミュレーション部34は、接触状態(q)を分岐木に登録し(ステップS149)、接触状態(q)を初期の接触状態とする分岐木生成処理を再帰的に実行する(ステップS150)。
 接触状態(q)から、主対象物90Aの右側X面の1辺接触を保ったままZ軸方向上方へ平行移動させる遷移をL1の遷移として実行した後の接触状態を(r)に示す。シミュレーション部34は、接触状態(r)を分岐木に登録し(ステップS143)、ループ処理L2へ移行する。(s)に示すように、接触状態(r)からL2の遷移では新たな面接触又は辺接触は出現しないため、分岐木へは登録されない。
 また、接触状態(q)から、主対象物90Aの左側X面の1辺接触を保ったままX軸左側かつZ軸上方へ平行移動させる遷移をL1の遷移として実行した後の接触状態を(t)に示す。接触状態(t)は接触状態(p)と同様であるため、すでに分岐木に登録されており(ステップS142で肯定判定)、また、1辺接触であるため、ステップS146がスキップされ、ループ処理L2へ移行する。そして、L1の遷移と同じ方向へL2の遷移を継続した場合、新たな面接触又は2辺接触は出現せず、接触なし状態になる。したがって、シミュレーション部34は、ループ処理L2を終了し、接触状態(q)を初期の接触状態とする分岐生成処理のループ処理L1に戻り、(q)から(t)への遷移とは異なる方向へのL1の遷移を実行する。接触状態(p)から、X面左側とX面右側(Z面右側)の2辺接触を保ったまま回転させる遷移をL1の遷移として実行した後の接触状態を(u)に示す。シミュレーション部34は、接触状態(p)を分岐木に登録し(ステップS143)、シミュレーション部34は、接触状態(u)を初期の接触状態とする分岐木生成処理を再帰的に実行する(ステップS145)。
 接触状態(b)以降の分岐木生成処理の再帰的な実行が全て終了し、接触状態(a)、すなわち目標状態からの分岐木生成処理に戻ると、シミュレーション部34は、左側X面の面接触を保ったまま、主対象物90AをZ軸上方へ移行移動させる遷移をL1の遷移として実行する。この場合におけるL1の遷移後の接触状態を図14の(w)に示す。接触状態(w)は、図15の接触状態(o)と同じである。そこで、シミュレーション部34は、分岐木の根ノード(接触状態(a))に近い方のノードとなる接触状態(w)のノードに、接触状態(o)に対応するノードから葉ノードまでの部分木を、接触状態(w)のノードに付け替える(ステップS146)。
 上記のような処理により、図14~図16に示すような、各接触状態に対応するノードが接続された分岐木が生成される。
 図17を参照して、上記分岐木生成処理により生成される分岐木について説明する。図17において、丸は各接触状態に対応するノードを表し、矢印は、上記L1の遷移又はL2の遷移を表す。また、ノードのうち、網掛の丸で表されたノードは、探索により見つかる接触状態(図14~図16の(a)~(w)の各状態に相当)のうち、1辺接触の状態に対応するノードである。また、白丸のノードは、探索により見つかる接触状態のうち、2辺接触、3辺接触、又は面接触の状態に対応するノードである。
 図17に示すように、1辺接触の状態から遷移する状態は、必ず1つで、枝分かれしない。すなわち、枝分かれするのは、図17において白丸のノードに対応する状態のみである。ただし、白丸のノードに対応する状態であっても、状態が枝分かれしない場合もある。一般には、葉ノード(それ以上の遷移がない状態、末端)は、1辺接触の状態になる。ただし、白丸のノードに対応する状態の先にある、網掛のノードに対応する状態が既に分岐木に登録されていた場合に限り、白丸のノードが葉ノードになる。1辺接触の状態から、1辺接触の状態に遷移することはあり得る。また、2辺以上の接触状態(白丸のノードに対応する状態)から2辺以上の接触状態に遷移することはあり得る。
 動作経路生成処理(図11)に戻って、次のステップS16で、生成部36が、上記ステップS10で取得された分解能特定情報に基づいて、ロボットの動作の分解能を決定する。具体的には、生成部36は、センサ群50に含まれるセンサのうち、主対象物90Aと副対象物90Bとが非接触状態の場合において、主対象物90Aと副対象物90Bとの位置及び姿勢の誤差を認識可能なセンサの各方向(d=X,Y,Z,φ,θ,ψ)の分解能をεsdiとする。iは各センサに付与した識別番号である。生成部36は、例えば、識別番号vのビジョンセンサの分解能εsdvを、ロボット制御にフィードバック可能な大きさから決定する。より具体的には、生成部36は、εsdv=(主対象物90Aの長辺の長さ)×2/(ビジョンセンサの画角の短辺の画素数)(d=X,Y)として決定してよい。これは、主対象物90Aの長辺がビジョンセンサの画角の短辺の半分以下になるようにビジョンセンサを利用する場合にビジョンセンサが認識可能な長さとするものである。生成部36は、そのセンサで認識できない方向の分解能は、取り得る最大の値とし、6次元のベクトルとしてεsdiを求める。そして、生成部36は、εsd=min(εsdi)をロボットの分解能として決定する。
 次に、ステップS18で、生成部36が、分岐木において維持範囲が分解能より大きい接触状態を特定する。例えば、生成部36は、1辺をεsdとする領域に内包可能な維持範囲が対応付けられたノードを分岐木から特定する。該当のノードが複数存在する場合には、分岐木の根ノードから最も近いノードを特定する。分岐木の根ノードから最も近いノードは、例えば、根ノードから辿るノードの個数が少ないノードとしてもよいし、物理的な距離を測定して最も近いノードとしてもよい。前者の場合は、制御のロバスト性が高く、後者の場合は、実行時間が短くなるという利点がある。本実施形態では前者を採用するものとする。そして、生成部36は、特定したノードに対応付けられた接触状態を特定する。
 維持範囲より分解能の方が大きい場合には、非接触状態から、特定した接触状態に到達するために探り動作が必要になる場合がある。例えば、分解能の中心位置にハンド部46で把持された主対象物90Aを移動させるようにロボット42を制御する場合、図18に示すように、特定した接触状態の維持範囲に到達できない。一方、図19に示すように、維持範囲より分解能の方が小さければ、センサにより認識可能な位置及び姿勢の誤差に基
づいて、確実に非接触状態から、特定した接触状態の維持範囲に到達することができる。
 次に、ステップS20で、生成部36が、特定した接触状態から目標状態までの接触状態の遷移に基づく動作経路を生成する。具体的には、生成部36は、分岐木において、上記ステップS18で特定した接触状態に対応するノードから根ノードに至るまでの各ノードに対応する接触状態からハンド部46の位置及び姿勢を特定して並べることで、特定した接触状態から目標状態までの軌跡を生成する。
 次に、ステップS22で、生成部36が、上記ステップS10で取得された開始位置姿勢から、上記ステップS18で特定した接触状態に対応する位置及び姿勢までの経路であって、障害物を回避する経路を生成する。そして、生成部36が、上記ステップS20で生成した経路と、本ステップで生成した経路とを結合し、各位置及び姿勢に接触状態を対応付けて動作経路として生成する。
 次に、ステップS24で、表示制御部38が、上記ステップS22で生成された動作経路に基づいて、第1提示画面60及び第2提示画面の少なくとも一方を表示装置に表示する。そして、表示制御部38は、ユーザによる主対象物90Aの位置及び姿勢の修正であるユーザ登録位置姿勢を受け付ける。
 次に、ステップS26で、生成部36が、上記ステップS24でユーザ登録位置姿勢が受け付けられた場合には、上記ステップS24で生成した動作経路に、受け付けられたユーザ登録位置姿勢を反映して動作経路を再生成する。そして、生成部36が、最終的に生成した動作経路をロボット制御装置40へ出力し、動作経路生成処理は終了する。
 ロボット制御装置40は、動作経路生成装置10から入力された動作経路を実現する力制御のための指令値を生成し、ロボット42に出力する。
 主対象物90Aと環境との接触を考慮しない従来のロボット制御では、図20に示すように、動作経路に基づく目標位置θrefから、その目標位置θrefを実現するためのモータトルクを位置制御器により算出し、ロボットを制御する。そして、制御されたロボットから(バネ性を有する)減速機出力後の関節角度θactを取得し、位置制御器へフィードバックする。
 図21に、本開示を実装する対象としての力制御系の実現例の一例としてアドミタンス制御の場合を示す。この場合、動作経路に応じた力目標τrefから、環境から受ける外部トルクτを差し引いた値を力制御器で補正した補正値に、ユーザが指定する目標位置θrefを加え、そこからモータの現在位置θを差し引くことで位置目標値を算出する。そして、その位置目標値を実現するためのモータトルクを位置制御器により算出し、ロボットを制御する。そして、制御されたロボットからモータの現在位置θを取得し、位置制御器へフィードバックする。また、ロボットと環境との接触に基づいて(バネ性を有する)減速機出力後の関節角度θactを取得し、θからθactを差し引いた値を、ロボットのギア及びトルクセンサのバネ性に基づいて、環境から受ける外部トルクτに変換し、力制御器へフィードバックする。
 また、図22に、本開示を実装する対象としての力制御系の実現例の一例としてインピーダンス制御の場合を示す。この場合、動作経路に応じた目標位置θrefから(バネ性を有する)減速機出力後の関節角度θactを差し引いた値を位置制御器で補正した補正値に、ユーザが指定する力目標τrefを加え、そこから環境から受ける外部トルクτを差し引くことで力目標値を算出する。そして、その力目標値を実現するためのモータトルクを力制御器により算出し、ロボットを制御する。そして、制御されたロボットからモ
ータの現在位置θを取得し、θからθactを差し引いた値を、ロボットのギア及びトルクセンサのバネ性に基づいて、環境から受ける外部トルクτに変換し、力制御器へフィードバックする。また、(バネ性を有する)減速機出力後の関節角度θactを位置制御器へフィードバックする。
 以上説明したように、本実施形態に係るロボット制御システムでは、動作経路生成装置が、ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、把持部の主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、主対象物及び副対象物を含む作業環境の形状情報とを取得する。また、動作経路生成装置が、取得された情報に基づいて、主対象物と副対象物との接触状態から、主対象物と副対象物とが非接触状態になるまでの主対象物と副対象物との接触状態の遷移をシミュレーションする。そして、取得された情報と、シミュレーションされた接触状態の遷移とに基づいて、主対象物が開始位置及び姿勢である初期状態からの接触状態の遷移に含まれるいずれかの接触状態に至り、いずれかの接触状態を含む接触状態の遷移を辿って目標状態に至るロボットの動作経路を生成する。これにより、対象物同士の組立作業について存在する経路のうち、探り動作なしで高速に実行可能な動作経路を生成することができる。
 これにより、ロボットによる作業を高速に実行できる。また、自動で自律的な組立動作をロボットが実行できるようになるため、ティーチング工数が激減する。また、実際の位置姿勢と制御目標との間に位置姿勢誤差があっても、ロボットが自律的に位置及び姿勢を補正して、作業を完遂できるようになる。
 なお、上記実施形態では、終了位置姿勢に対応する状態を目標状態とする場合について説明したが、分岐木を生成する際の目標状態として、中間点の位置姿勢を設定してもよい。この場合、中間点から接触状態を辿って終了位置姿勢に辿り着くことができる場合は、終了位置姿勢の状態が含まれる接触状態の遷移を表す分岐木が生成される。なお、生成された分岐木に終了位置姿勢が含まれない場合は、指定した中間点から、終了位置姿勢に到達できないことを表す。
 なお、上記実施形態では、動作経路生成装置とロボット制御装置とを別々の装置とする場合について説明したが、ロボット制御装置内に動作経路生成装置を組み込む形態としてもよい。また、動作経路生成装置の各機能構成を、それぞれ異なる装置で実現し、上記の動作経路生成処理を分散処理により実現してもよい。
 また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した動作経路生成処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、動作経路生成処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
 また、上記実施形態では、動作経路生成プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロード
される形態としてもよい。
1 ロボット制御システム
10 動作経路生成装置
12 CPU
14 メモリ
16 記憶装置
18 入力装置
20 出力装置
22 記憶媒体読取装置
24 通信I/F
26 バス
32 取得部
34 シミュレーション部
36 生成部
38 表示制御部
40 ロボット制御装置
42 ロボット
44 ロボットアーム
46 ハンド部
50 センサ群
60 第1提示画面
70 第2提示画面
90A 主対象物
90B 副対象物

Claims (12)

  1.  ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、前記把持部の前記主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、前記主対象物及び前記副対象物を含む作業環境の形状情報とを取得する取得部と、
     前記取得部により取得された情報に基づいて、前記主対象物と前記副対象物との接触状態から、前記主対象物と前記副対象物とが非接触状態になるまでの前記主対象物と前記副対象物との接触状態の遷移をシミュレーションするシミュレーション部と、
     前記取得部により取得された情報と、前記シミュレーション部によりシミュレーションされた前記接触状態の遷移とに基づいて、前記把持部が前記開始位置及び姿勢である初期状態からの前記接触状態の遷移に含まれるいずれかの接触状態に至り、前記いずれかの接触状態を含む前記接触状態の遷移を辿って目標状態に至る前記ロボットの動作経路を生成する生成部と、
     を含む動作経路生成装置。
  2.  前記シミュレーション部は、前記目標状態から、前記主対象物と前記副対象物との接触状態が、第1の方向に力をかけても動かない状態に達すると、前記第1の方向とは異なる第2の方向に力をかけ続けて動かない状態に達した場合、前記動かない状態から前記第1の方向及び前記第2の方向とは異なる方向に力をかけ続けるというシミュレーションを繰り返すことで、前記接触状態の遷移を探索することを含む請求項1に記載の動作経路生成装置。
  3.  前記シミュレーション部は、前記接触状態の遷移を順次探索しながら、前記目標状態を根ノードとし、それぞれ異なる接触状態をノードとする分岐木を生成する請求項2に記載の動作経路生成装置。
  4.  前記シミュレーション部は、前記分岐木のノードの各々に、前記ノードに対応付けられた接触状態を維持したまま前記主対象物が変位可能な維持範囲を対応付ける請求項3に記載の動作経路生成装置。
  5.  前記取得部は、前記ロボットの動作の分解能を特定するための情報を取得し、
     前記生成部は、前記分岐木において、前記分解能よりも大きな前記維持範囲が対応付けられたノードに対応付けられた接触状態を、前記いずれかの接触状態として特定する
     請求項4に記載の動作経路生成装置。
  6.  前記生成部は、前記いずれかの接触状態が複数特定される場合、前記分岐木の根ノードから最も近いノードに対応けられた接触状態を前記いずれかの接触状態として特定する請求項5に記載の動作経路生成装置。
  7.  前記ロボットの動作の分解能を特定するための情報は、前記作業環境を検知するセンサの分解能、及び前記ロボットを駆動するためのアクチュエータの制御精度の少なくとも一方を含む請求項5に記載の動作経路生成装置。
  8.  前記生成部により生成された前記動作経路を表示装置に表示する表示制御部を含む請求項1~請求項7のいずれか1項に記載の動作経路生成装置。
  9.  前記表示制御部は、表示した前記動作経路に対する修正をユーザから受け付け、
     前記生成部は、受け付けられた前記修正に基づいて、前記動作経路を再生成する
     請求項8に記載の動作経路生成装置。
  10.  前記ロボットは、接触による外部環境からの反力に押し負ける柔軟構造を有するソフトロボットである請求項1~請求項7のいずれか1項に記載の動作経路生成装置。
  11.  取得部が、ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、前記把持部の前記主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、前記主対象物及び前記副対象物を含む作業環境の形状情報とを取得し、
     シミュレーション部が、前記取得部により取得された情報に基づいて、前記主対象物と前記副対象物との接触状態から、前記主対象物と前記副対象物とが非接触状態になるまでの前記主対象物と前記副対象物との接触状態の遷移をシミュレーションし、
     生成部が、前記取得部により取得された情報と、前記シミュレーション部によりシミュレーションされた前記接触状態の遷移とに基づいて、前記把持部が前記開始位置及び姿勢である初期状態からの前記接触状態の遷移に含まれるいずれかの接触状態に至り、前記いずれかの接触状態を含む前記接触状態の遷移を辿って目標状態に至る前記ロボットの動作経路を生成する
     動作経路生成方法。
  12.  コンピュータを、
     ロボットの把持部により把持される主対象物と、組立対象の副対象物との組立動作における、前記把持部の前記主対象物との相対的な開始位置及び姿勢と終了位置及び姿勢と、前記主対象物及び前記副対象物を含む作業環境の形状情報とを取得する取得部、
     前記取得部により取得された情報に基づいて、前記主対象物と前記副対象物との接触状態から、前記主対象物と前記副対象物とが非接触状態になるまでの前記主対象物と前記副対象物との接触状態の遷移をシミュレーションするシミュレーション部、及び、
     前記取得部により取得された情報と、前記シミュレーション部によりシミュレーションされた前記接触状態の遷移とに基づいて、前記把持部が前記開始位置及び姿勢である初期状態からの前記接触状態の遷移に含まれるいずれかの接触状態に至り、前記いずれかの接触状態を含む前記接触状態の遷移を辿って目標状態に至る前記ロボットの動作経路を生成する生成部
     として機能させるための動作経路生成プログラム。
PCT/JP2022/046970 2022-01-28 2022-12-20 動作経路生成装置、方法、及びプログラム WO2023145309A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022012154A JP2023110601A (ja) 2022-01-28 2022-01-28 動作経路生成装置、方法、及びプログラム
JP2022-012154 2022-01-28

Publications (1)

Publication Number Publication Date
WO2023145309A1 true WO2023145309A1 (ja) 2023-08-03

Family

ID=87471612

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/046970 WO2023145309A1 (ja) 2022-01-28 2022-12-20 動作経路生成装置、方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP2023110601A (ja)
WO (1) WO2023145309A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198121A (ja) * 1996-01-19 1997-07-31 Nippon Telegr & Teleph Corp <Ntt> ロボット教示方法
WO2021033471A1 (ja) * 2019-08-22 2021-02-25 オムロン株式会社 制御装置、制御方法、及び制御プログラム
JP2021082222A (ja) * 2019-11-22 2021-05-27 キヤノン株式会社 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
JP2021169149A (ja) * 2020-04-16 2021-10-28 ファナック株式会社 分解ベースのアセンブリ計画

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198121A (ja) * 1996-01-19 1997-07-31 Nippon Telegr & Teleph Corp <Ntt> ロボット教示方法
WO2021033471A1 (ja) * 2019-08-22 2021-02-25 オムロン株式会社 制御装置、制御方法、及び制御プログラム
JP2021082222A (ja) * 2019-11-22 2021-05-27 キヤノン株式会社 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
JP2021169149A (ja) * 2020-04-16 2021-10-28 ファナック株式会社 分解ベースのアセンブリ計画

Also Published As

Publication number Publication date
JP2023110601A (ja) 2023-08-09

Similar Documents

Publication Publication Date Title
US20200338730A1 (en) Trajectory planning device, trajectory planning method and program
JP5743495B2 (ja) ロボット制御装置
CN110154018B (zh) 机器人的控制器和控制方法
JP4413891B2 (ja) シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム
Palmer et al. Real-time method for tip following navigation of continuum snake arm robots
JP2017094406A (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
US9186792B2 (en) Teaching system, teaching method and robot system
JP2006293826A (ja) ロボットプログラム補正装置
JP6915441B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP7052250B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP2018167334A (ja) 教示装置および教示方法
JP3349652B2 (ja) オフラインティーチング方法
WO2023037634A1 (ja) 指令値生成装置、方法、及びプログラム
JP2018176333A (ja) 接触センサによるワーク位置検出プログラム生成機能を備えたオフラインプログラミング装置及び方法
WO2023145309A1 (ja) 動作経路生成装置、方法、及びプログラム
JP7331616B2 (ja) 回避軌道生成装置、方法、及びプログラム
JP2014065098A (ja) ロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法
JP6697544B2 (ja) 最適化装置及びそれを備えた垂直型多関節ロボット
Wang et al. Learning robotic insertion tasks from human demonstration
WO2021250923A1 (ja) ロボットシステム、制御装置、及び制御方法
US20210129331A1 (en) Control method, control apparatus, robot apparatus, method of manufacturing an article, motion program creation method, motion program creation apparatus, display apparatus, and control program recording medium
CN113386127B (zh) 干涉判断装置及方法、存储介质
JP7249221B2 (ja) センサ位置姿勢キャリブレーション装置及びセンサ位置姿勢キャリブレーション方法
JP4595042B2 (ja) 3次元測定方法およびシステム並びにマニピュレータの制御方法および装置
JP2006068890A (ja) 軌道決定システムおよび軌道決定方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22924158

Country of ref document: EP

Kind code of ref document: A1