WO2024105779A1 - 制御装置およびコンピュータ - Google Patents

制御装置およびコンピュータ Download PDF

Info

Publication number
WO2024105779A1
WO2024105779A1 PCT/JP2022/042399 JP2022042399W WO2024105779A1 WO 2024105779 A1 WO2024105779 A1 WO 2024105779A1 JP 2022042399 W JP2022042399 W JP 2022042399W WO 2024105779 A1 WO2024105779 A1 WO 2024105779A1
Authority
WO
WIPO (PCT)
Prior art keywords
effector
constraint
processor
constraints
screen
Prior art date
Application number
PCT/JP2022/042399
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 ファナック株式会社
Priority to PCT/JP2022/042399 priority Critical patent/WO2024105779A1/ja
Publication of WO2024105779A1 publication Critical patent/WO2024105779A1/ja

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

エフェクタの種類、エフェクタに要求される機能、対象の種類、作業の種類、作業に要求される機能等に応じた設定が可能となる技術が望まれている。 プロセッサと、ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約を格納する記憶部と、を備え、前記プロセッサは、センサの出力に基づく回避対象の検出の結果と、前記エフェクタ制約とに少なくとも基づき回避経路を生成する生成処理と、生成された前記回避経路に沿った動作を前記ロボットに行わせる制御処理と、を行う制御装置。

Description

制御装置およびコンピュータ
 本開示は制御装置およびコンピュータに関する。
 産業用ロボットにおいて、人と共有の作業空間において作業でき、人や物との接触を検知して停止する安全機能を備えた協働ロボットが普及してきている。
 協働ロボットにおいて、カメラ、サーモグラフィ、距離センサ、静電容量センサ等を用いて人や物との回避対象の接近が検知し、回避経路を生成し、回避対象を非接触で回避できる協働ロボットのシステムが開発されてきている。例えば特許文献1を参照されたい。
 産業用ロボットにおいては、一般的に、ロボットが周囲の環境に干渉しないように、動作可能な領域または侵入不可能な領域が予め設定され、干渉しない範囲内だけでロボットを動作させる機能が知られている。ロボットや周囲の環境の3Dモデルを利用して、詳細な干渉計算を行う機能も知られている。例えば特許文献2を参照されたい。
 産業用ロボットにおいて、エフェクタの突起部が人などに向かないように経路生成する技術も知られている。例えば特許文献3を参照されたい。
特開2019-206080号公報 特開2017-094430号公報 特開2016-196069号公報
 ロボットの教示が行われる際、ロボットが安全に動作できるように十分なリスクアセスメントが必要となる。基本的にはロボットの空間的な動作範囲を制限することでリスクが低減される。人や物の接近が検知され、回避経路の再計算およびロボットの動作が行われる場合、回避動作込みのリスクアセスメントが必要となる。接触時に安全に停止できる協働ロボットでは、そもそものリスクが低減されている。しかし、ロボットの回避動作込みのリスクアセスメントは、回避動作が様々に変化するため、検討事項が膨大となる可能性がある。
 一例ではあるが、エフェクタが安全に機能を発揮するための、エフェクタの姿勢、位置等に適正な範囲がある場合、ロボットの回避動作はこれを満たしていることが望ましい。一例ではあるが、エフェクタの性質を反映した回避動作が行われなければ、回避したことがワーク等の対象を落下させる等の望ましくない状況を引き起こす可能性がある。または、回避したことがロボットの作業の安定性等を低下させる可能性もある。ロボットの先端部等に装着するエフェクタは、物品ハンドリング用のハンドや吸盤、溶接用のトーチ、検査用のスキャナ等など多種多様であり、エフェクタに合わせたロボットの動作が望ましい。一例ではあるが、エフェクタの姿勢を特定の状態に固定する設定では、回避経路の生成や選択肢が狭まり、効率的ではなく、サイクルタイムの低下の可能性もある。一方、接触、ワークを含む対象の転倒等を物理シミュレーション技術を用いてリアルタイムに計算し、当該計算結果を用いてロボットを制御する場合は、その計算コストが大きくなる。エフェクタの種類、エフェクタに要求される機能、対象の種類、作業の種類、作業に要求される機能等に応じた設定が可能となる技術が望まれている。
 本開示の第1の態様の制御装置は、プロセッサと、ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約を格納する記憶部と、を備え、前記プロセッサは、センサの出力に基づく回避対象の検出の結果と、前記エフェクタ制約とに少なくとも基づき回避経路を生成する生成処理と、生成された前記回避経路に沿った動作を前記ロボットに行わせる制御処理と、を行う。
 本開示の第2の態様の制御装置は、プロセッサと、記憶部と、センサの出力に基づきロボットに回避動作を行わせる設定のための設定画面を表示させる表示装置と、を備え、前記表示装置は、前記ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約の設定画面を表示可能であり、前記設定画面は、ユーザの入力に少なくとも基づき前記エフェクタ制約を設定するためのものである。
 本開示の第3の態様のコンピュータは、プロセッサと、記憶部と、ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約の設定画面を表示する表示装置と、を備え、前記設定画面は、ユーザの入力に少なくとも基づき前記エフェクタ制約を設定するためのものであり、前記プロセッサは、前記エフェクタ制約を少なくとも用いて前記ロボットのモデルに動作を行わせるシミュレーションを行い、前記動作が基準を満たしているか否かを判定する。
一実施形態のロボットを含むロボットシステムの概略図である。 本実施形態のロボットの制御装置の構成を示すブロック図である。 本実施形態のロボットに取付けられる様々なエフェクタの概略図である。 本実施形態のロボットに取付けられるエフェクタの動作の概略図である。 本実施形態の制御装置に設定されるエフェクタ制約の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置の機能の例を示すブロック図である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。 本実施形態の制御装置が表示する画面の例である。
 一実施形態のロボットの制御装置1が以下説明される。制御装置1は、ロボット10のアーム10Aを制御するために設けられている(図1)。
 ロボット10は特定の種類に限定されないが、本実施形態のロボット10は6軸を有する多関節ロボットである。ロボット10は5軸以下又は7軸以上を有する多関節ロボット、水平多関節ロボット、マルチリンクロボット等であってもよい。7軸以上有する多関節ロボットは、回避経路の選択肢が増えるため、本実施形態の好適な様態の1つである。また、ロボット10又はそのアーム10Aが、リニアガイド等の走行装置、AGV(Automatic Guided Vehicle)、車両、歩行型ロボット等に支持されていてもよい。
 アーム10Aは、互いに関節によって接続された複数の可動部12と、複数の可動部12をそれぞれ駆動する複数のサーボモータ11と、を備えている(図1および図2)。各サーボモータ11はその作動位置を検出するためのセンサ、エンコーダ11A等の作動位置検出装置を有する。本実施形態では、制御装置1はエンコーダ11Aの検出値を受信する。
 図1に示すように、例えばアーム10Aの先端部にハンド、ツール等のエフェクタ30が取付けられ、アーム10Aは例えば搬送装置上の作業対象である対象2に作業を行うロボットシステムの一部である。
 前記作業は、対象2の取出し、対象2に対する処理、対象2への部品取付け等の公知の作業である。対象2に対する処理は、加工、塗装、洗浄等の公知の処理である。搬送装置は、コンベヤ、AGV(Automatic Guided Vehicle)、製造中の車等の対象2を移動できるものであればよい。製造中の車の場合、シャーシ、タイヤ、モータ等が搬送装置として機能し、シャーシ上のボディ等である対象2が搬送される。対象2は、工業製品、食品等を含む物品、物品の一部、構造物の部分、動物、動物の一部、人の一部等の様々な対象であり得る。
 エフェクタ30は、物品ハンドリング用の専用のハンド、吸盤等であってもよい。また、エフェクタ30が、組み立て工程用の工具、スポット溶接用のガン、アーク溶接用のトーチ、検査システム用のスキャナなど多種多様な機器を備えていてもよい。このように、エフェクタ30は特定のエフェクタに限定されない。
 エフェクタ30がハンドの指等の動作部を有する場合、エフェクタ30は動作部を駆動するサーボモータ31を備えている(図2)。サーボモータ31はその作動位置を検出するための作動位置検出装置を有し、作動位置検出装置は一例としてエンコーダである。作動位置検出装置の検出値は制御装置1に送信される。各サーボモータ11,31として、回転モータ、直動モータ等の各種のサーボモータが用いられ得る。
 エフェクタ30は主にアーム10Aの先端部に取付けられるが、アーム10Aの長手方向の中間部分や基端部に取付けられてもよい。ロボット10と人との間でワークの受け渡しが行われるシステムにおいては、図3のように、エフェクタ30としての対象2を把持するハンド又は吸盤、磁石、電磁石等を用いて対象2を吸引するハンドが用いられることが多い。代わりに、対象2がエフェクタ30としてのコンテナ又は平板状のトレイに置かれる場合もある。また、対象2がエフェクタ30としての箱やかごに入る場合もある。
 近年では可撓性を有する指で柔らかく把持するハンド等が普及しており、当該ハンドは後述の協働ロボットとの相性が良い。
 前述のエフェクタ30は、エフェクタとして機能するための適切な姿勢が限定的である場合がある。図4のように、例えば吸盤、磁石、電磁石を用いるハンドであるエフェクタ30は、対象2を上方等の所定の方向から吸引できないと、対象2の保持が確実でなくなる場合がある。また、例えばトレイであるエフェクタ30に対象2を載せる場合は、当然に対象2が落ちないようにユーザが配慮する必要がある。後述の協働ロボットの場合、回避対象を回避する際に、好ましくは、エフェクタ30の機能に照らし適切な姿勢の範囲で回避動作が行われる。
 制御装置1は、図2に示すように、CPU、マイクロコンピュータ、画像処理プロセッサ等の1つ又は複数のプロセッサ素子を有するプロセッサ21と、表示装置22と、を有する。また、制御装置1は、不揮発性ストレージ、ROM、RAM等を有する記憶部23を有する。
 また、制御装置1は、ロボット10のサーボモータ11にそれぞれ対応しているサーボ制御器24と、エフェクタ30のサーボモータ31に対応しているサーボ制御器25と、を有する。制御装置1は、制御装置1に有線又は無線によって接続された入力部26も有する。一例では、入力部26はユーザが持ち運べるポータブル操作盤等の入力装置である。他の例では入力部26はタブレットコンピュータである。ポータブル操作盤、タブレットコンピュータ等の場合は前記入力がタッチスクリーン機能を用いて行われる。ポータブル操作盤又はタブレットコンピュータが表示装置22を有する場合もある。
 記憶部23はシステムプログラム23Aを格納しており、システムプログラム23Aは制御装置1の基本機能を担っている。また、記憶部23は単一又は2以上の動作プログラム23Bを格納している。動作プログラム23Bは、ロボットを動作させるための複数の指令、情報等を含む。本実施形態の動作プログラム23Bは、複数の教示点の座標および姿勢の情報、教示点間の動きに関する指令等を少なくとも含む。
 記憶部23は、制御プログラム23C、経路生成プログラム23D、等も格納している。制御プログラム23Cは、公知のフィードバックプログラム、フィードフォワードプログラム等である。
 制御装置1は、経路生成プログラム23Dを用いて動作プログラム23Bに基づく経路を生成し、制御プログラム23Cを用いて経路の通りにアーム10Aを動かす制御指令を生成し、アーム10Aを制御する。
 制御装置1は、予めユーザが設定した一連の動作の指令である動作プログラム23Bに基づきロボット10を制御する。また、ロボット10は、センサの出力を用いて周囲の人、物等との接触、接近等を回避できるロボットである。このようなロボットは協働ロボットと称される場合がある。
 一例ではロボット10は協働ロボットである。協働ロボットは、例えば人、物等が接触した場合などの外部からの力を検知して、安全に停止する機能を有する。また、協働ロボットが、人、物等と接触する直前に減速停止する機能を有している場合もある。本実施形態では、好適には、人、物等と接触する可能性がある状況が検出されると、回避動作を行う機能を有する。本実施形態の構成は協働ロボットではないロボット10にも適用可能である。
 センサ50より得られた回避対象の情報は、主に回避対象の存在位置を示す点の座標等のデータである。または、センサ50により得られる情報は公知の点群データであり、プロセッサ21は当該データから回避対象の基準座標系1における形状、位置等を検出できる。プロセッサ21は、回避対象の形状情報を、3次元的な接近物モデルに変換してもよい。接近物モデルは、球、直方体、円柱等のプリミティブ形状や、点群の点を結んで形成される多面体状でもよい。また3次元的な接近物モデルは、面が閉じていて中実である必要はなく、面状であってもよい。回避対象は、周囲の環境と区別不可能となっていてもよい。
 接近物は、ロボット10が回避できるか否かと、ユーザが回避を希望するか否かで、タイプが分かれる。本実施形態において、回避でき且つユーザが回避を希望する接近物を回避対象とする。また、回避でき且つユーザが回避を希望しない接近物が回避不要の接近物であり、回避できない接近物が回避不可の接近物である。予め決められた距離以下まで接近物が近づいた時にプロセッサ21が回避不要の接近物を回避対象に切り替えてもよい。
 接近物がロボット10の動作速度よりも速い場合、センサの検知の速度より速い場合、センサが検知できないサイズや性質の場合等は、回避できない接近物となる。また接近物の速度が低くても、床に固定されているロボット10の根元付近に接近物が近づいてくる場合も、ロボット10の可動範囲の制約により完全には接近物を回避できない。これらの回避不可能な接近物は予め回避不可能であると設定される。回避不可能な接近物であると検知された場合、プロセッサ21は無理に回避しようとせずに、接触する可能性が高いアーム10Aにある程度の回避動作を行わせた後、アーム10Aを安全な状態で停止させる。
 ロボット10が外部からワーク等の対象2を受け渡される場合の対象2は接近物であるが、これは回避不要な接近物として設定される場合がある。予め対象2の受け渡しのタイミングが教示され、そのタイミングでプロセッサ21が回避機能を停止させてもよい。また、接近する人が意図的にロボット10に接触する場合も、プロセッサ21が当該人を回避不要であると判断しても良い。例えば、ロボット10の付近で作業している作業者が、予め想定してないタイミングでワークを受け渡しするために、音声でロボット10を呼び止める場合等が想定される。ロボット10が前記の意図を検知できるセンサを有する場合、そのタイミングでプロセッサ21が回避機能を停止させてもよい。また特定のジェスチャー、ハンドサイン、声掛け等を伴って接近している作業者について、プロセッサ21が回避動作を行わずにロボット10を減速停止させる場合もあり得る。
 また、接触しそうな程に接近はするが接触はしないと認識されている人、対象2等に対しては、プロセッサ21は回避動作を行わなくてもよい。他の接近物と識別できるように構成することによって、プロセッサ21が特定の接近物の時に回避動作を行わない構成も可能である。このような設定は不要な回避動作を低減できる。
 本実施形態では、記憶部23に格納された干渉計算プログラム23Hに基づき、プロセッサ21がモデル同士の距離を計算する。より具体的に、プロセッサ21は、ロボット10、エフェクタ30、および対象2の少なくとも1つのモデルと、周囲環境4、人や人が運ぶ物を含む接近物等のモデルと、動作プログラム23Bとを用いて、モデル同士の距離を計算する。当該計算の結果に基づき、プロセッサ21は、ロボット10の経路の計画上における干渉の発生有無を判断する。
 センサが接近物を検出していない場合はプロセッサ21は接近物のモデルは用いない。また、接近物が無く、予め用意された動作が実行される場合で、干渉が無いことが確認済みであれば、プロセッサ21が動作中の干渉計算をしない場合もある。接近物が動いている場合は、好ましくはプロセッサ21は接近物の動作を予想して干渉計算する。プロセッサ21は、接近物モデルの動作の時系列のデータから将来到達し得る範囲を計算し、この範囲に対する干渉を計算する。
 接近物がロボット10に接触している場合は干渉と近い状態である。接近物がロボットに接触している状態では、一般的にロボット10は停止する。トルクセンサ、接触センサ等などが使用され、ロボット10が退避可能な方向に向かって接近物から外力を受けていると判明している場合は、退避動作としてロボット10を動かす場合もあり得る。この退避動作が実行される時には、ロボット10が接近物を挟み込むことが無いように、好ましくはプロセッサ21が干渉計算を行うと共に退避可能であることを判断する。
 例えば、干渉計算の結果、プロセッサ21がロボット10の経路の計画上に干渉が発生する可能性が高く回避対象の回避が必要であると判断する。この場合、プロセッサ21は、動作プログラム23Bに基づき経路生成プログラム23Dが生成した経路を元に、経路生成プログラム23Dが回避経路を生成する。経路生成プログラム23Dは、通常の経路生成用と回避経路生成用に分けていてもよい。
もしくはプロセッサ21が動作プログラム23Bを補正した動作プログラム23B’を一時的に生成し、補正した動作プログラム23B’が回避動作に用いられてもよい。
 協働ロボットにおいて回避対象の回避が行われる場合、回避経路の生成工程が必要である。回避経路としては、ロボット10を予め決められた退避姿勢に動かすもの、ロボット10を回避対象の接近方向から遠ざけるように動かすもの、ロボット10を回避対象との距離が長くなるように動かすもの等がある。シミュレーション上で様々な姿勢を再現することによって、干渉しない姿勢を探し、それらをつないで干渉しない経路を生成する手法が広く知られている。
 安全性を確保するために回避対象を回避するので、回避対象との距離が十分でない回避動作は望ましくない。干渉計算に用いられる3Dモデルの表面からの距離に応じたポテンシャルが設定され、現在位置と回避後の位置とを結ぶ経路の中で、ポテンシャルを用いて計算した評価値(コスト)が最も低い経路が選択され得る。これにより、回避対象との間に十分な距離を保った回避経路が生成される。例えば、回避経路の生成のためにポテンシャル場において複数種類の経路を設定し、各経路の評価値が計算される。各経路に複数の通過点が設定され、通過点におけるポテンシャル場の評価値の合計、平均等が比較されてもよい。
 ポテンシャルの計算に加え、ロボット10が滑らかに動けることを評価に加えると、回避対象と十分な距離が保たれると共に滑らかは回避動作が可能となる。デカルト座標系における通常の立体空間を用いたポテンシャル計算と、ロボット10の関節空間(コンフィギュレーション空間)に換算したポテンシャル計算とがあり、両方の組み合わせも採用可能である。なお、回避経路の生成方法は前述の例に限定されない。
 本実施形態において、人、物等の回避対象の接近を検知する方法として、ステレオカメラ、サーモグラフィ、距離センサ、静電容量センサ等の接近検出センサを用いることが可能である。回避対象の位置、形状等を把握することが重要であり、当該把握に用いられ得るセンサは使用可能である。センサが周囲環境4に設けられてもよく、センサがロボット10、エフェクタ30等に設けられてもよい。また、センサが周囲環境4と共にロボット10又はエフェクタ30に設けられてもよい。
 本実施形態では、図1に示すように、ロボット10の上方にステレオカメラ、3次元距離センサ等の視覚的に回避対象を把握するデータを出力可能なセンサ50が設けられる。
 本実施形態では、ロボット10、エフェクタ30、ワーク等の対象2の少なくとも1つと、周囲の物(回避対象)、周辺環境(回避対象)等との干渉計算が必要である。干渉計算に必要な基本的な情報が以下説明される。
 まず、ロボット10の3Dモデルと、エフェクタ30の3Dモデルと、ワークである対象2の3Dモデルとが、記憶部23に格納されている。物品ハンドリングなどにおいて、対象2は常に把持されているとは限らず、周囲環境4と一体となっている場合もあり、特に対象2が搬送装置に乗って動いている場合や他のロボットシステムによって把持されている場合もある。このため、エフェクタ30と共に動く対象2(エフェクタ側の対象)か、周囲環境4と共に動く対象2(周囲環境4側の対象)かで状態を区別することが望ましい。周囲環境4に相当する3Dモデルも記憶部23に格納されており、当該3Dモデルも干渉計算に用いられる。
 なお、ロボット10のアーム10Aの位置および姿勢を教示する際、空間に対して動かない基準となるロボットの基準座標系101(図1)から見た座標を前記教示点等として指定することが一般的である。エフェクタ30が無い状態では、アーム10Aの先端のフランジ面(メカニカルインターフェース)に設定された座標系の位置および姿勢が前記教示点等として一般的に指定される。エフェクタ30がある状態では、エフェクタ30の所定位置等にエフェクタ座標系102(図1)が設定される場合がある。この場合、エフェクタ座標系102の位置および姿勢が前記教示点等として一般的に指定される。エフェクタ座標系102の位置および姿勢は回避動作時の動作の基準となる。
 なお、本実施形態では、アーム10Aの先端に設定される座標系もエフェクタ座標系102であると見なし、上記のフランジ面に設定される座標系もエフェクタ座標系102として扱う。
 本実施形態では、基準座標系101と、エフェクタ30に対して相対的に動かないエフェクタ座標系102とが設定される。エフェクタ座標系102はツール座標系等の他の名称で呼ばれる場合もある。制御装置1は、周知のキャリブレーション等によって、基準座標系101におけるエフェクタ座標系102の位置および姿勢を認識している。
 本実施形態では、ユーザは基準座標系101に対するエフェクタ座標系102の相対変化を制約するエフェクタ制約を設定できる。
 図5にエフェクタ制約の設定の例が示されている。図5のように、エフェクタ制約の第1の例は、エフェクタ座標系102の位置座標(X,Y,Z)の制約である。エフェクタ制約の第2の例は、エフェクタ座標系102の姿勢(X軸周り=θx、Y軸周り=θy、Z軸周り=θz)の制約である。なお、図5の例では、“0”が上限にも下限にも入力されている箇所は変化を許容しないことを意味する。エフェクタ制約が設定されていないことが“‐”等で表現されてもよい。
 第1の例のエフェクタ座標系102の前記相対変化の制約は、基準座標系101、エフェクタ座標系102、又は他の座標系の位置および姿勢を基準として設定され得る。なお、基準座標系101、エフェクタ座標系102、又は他の座標系は所定の座標系であり、これが以下の説明で単に座標系と称される場合がある。第2の例のエフェクタ座標系102の姿勢の制約も座標系の位置および姿勢を基準として設定され得る。なお、エフェクタ座標系102の位置および姿勢の制約が、アーム10Aがある動作を開始する前のエフェクタ座標系102の位置および姿勢を基準として設定されてもよい。
 図5のように、エフェクタ制約の第3の例は、エフェクタ座標系102の速度の制約である。当該速度は、例えば、座標系におけるエフェクタ座標系102の進行方向の速度、または、X方向、Y方向、およびZ方向のそれぞれの速度である。エフェクタ制約の第4の例は、エフェクタ座標系102の角速度の制約である。当該角速度は、座標系におけるエフェクタ座標系102のある軸線周りの角速度、または、X軸、Y軸、およびZ軸周りの角速度である。
 図5のように、エフェクタ制約の第5の例は、エフェクタ座標系102の加速度の制約である。当該加速度は、例えば、座標系におけるエフェクタ座標系102の進行方向の加速度、または、X方向、Y方向、およびZ方向のそれぞれの加速度である。エフェクタ制約の第6の例は、エフェクタ座標系102の角加速度の制約である。当該角加速度は、座標系におけるエフェクタ座標系102のある軸線周りの角加速度、または、X軸、Y軸、およびZ軸周りの角加速度である。エフェクタ制約の第3~第6の例も、エフェクタ30の位置および姿勢の少なくとも一方の変化の制約である。
 エフェクタ制約は前記第1~第6の例の何れか2つ以上の組合せであってもよい。また、位置および/又は姿勢を3回以上時間微分した量に相当する値や式等を用いてもよい。また、エフェクタ制約は、エフェクタ座標系102の位置および/又は姿勢の所定の基準座標に対する変化の制約であればよい。なお、エフェクタ座標系102の位置および/又は姿勢の所定の基準座標に対する変化は、エフェクタの位置および/又は姿勢の所定の基準座標に対する変化である。また、第3~第6の例の角速度、各加速度等の制約も、エフェクタの位置および/又は姿勢の所定の基準座標から見た変化の制約である。
 本実施形態の典型的な例では、動作プログラム23Bにおいて、各教示点について、座標および姿勢の情報と、前記指令と、エフェクタ制約とが設定される。制御装置1のプロセッサ21が表示装置22に表示させる図7の画面200では、教示点1(位置姿勢[1])および教示点2(位置姿勢[2])にはエフェクタ制約が設定されていない。一方、教示点3(位置姿勢[3])および教示点4(位置姿勢[4])には後述のエフェクタ制約1および2がそれぞれ設定されている。好ましくは、図6の画面200は、エフェクタ制約の設定に関する画面を表示するための操作を受付ける画面である。当該操作は、画面200上の所定の位置のタップ、所定のボタン操作等である。当該ボタンが入力部26に設けられていてもよい。
 例えば、画面200の教示点3の“なめらか”の右のエリアをユーザがタップすると、図6に示すエフェクタ制約の設定画面210があらわれる。設定画面210で後述のエフェクタ制約又はエフェクタ制約セットが選択され得る。当該操作が繰り返されると、図7に示すように任意の教示点にエフェクタ制約又はエフェクタ制約セットが設定される。
 一例では、ユーザは、エフェクタ制約として、座標系と、基準座標に対するエフェクタ座標系102の位置変化および姿勢変化の制約とを設定できる。好ましくは、このような設定をユーザが編集できる入力部26は、ティーチペンダントとも称される可搬式操作盤に備えられている。エフェクタ制約等の設定は記憶部23、もしくは別途の制御装置の記憶装置、クラウド上の記憶部等の所定の記憶部に格納される。エフェクタ制約が別途の制御装置の記憶装置、クラウド上の記憶部等に格納される場合、これらの記憶装置および記憶部は制御装置1の記憶部として機能する。
 エフェクタ制約の設定のため、例えば入力部26の表示装置22に前記設定に関する画面が表示される。例えば、制御装置1のプロセッサ21は表示装置22に図8に示される画面300を表示させる。画面300は、ユーザがエフェクタ制約の設定画面への遷移を選択するための画面である。
 表示装置22には、前記選択等を行う操作部500が表示される。操作部500には、方向キー、決定キー、遷移前の画面又は上位レイヤーの画面に戻るための戻るキー等が表示され、ユーザはこれらのキー操作を用いて入力を行う。なお当該機能に対応したボタンが入力部26に設けられてもよい。
 画面300においてユーザがエフェクタ制約の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図9の画面301を表示させる。画面301は、ユーザが基準座標系の設定画面への遷移を選択するための画面である。
 画面301においてユーザが基準座標系の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図9の画面302を表示させる。画面302は、ユーザが複数の基準座標系のうち任意の基準座標系の設定を選択するための画面である。
 画面302においてユーザが複数の基準座標系のうち例えば基準座標系1を選択すると、プロセッサ21は表示装置22に図9の画面303を表示させる。画面303は、ユーザが選択した基準座標系1の設定をするための画面である。画面303に示すように、ユーザは基準座標系1の位置および姿勢を設定できる。
 なお、画面302においてユーザが基準座標系2を選択すると、プロセッサ21は表示装置22に図10の画面303を表示させる。図10では、ユーザは、選択した基準座標系2の設定をすることができる。基準座標系1,2等によってそれぞれ設定された座標系は基準座標系101として用いられ得る。
 本実施形態では、ユーザは画面302,303を用いて複数の基準座標系を設定できる。当該構成は、後述のエフェクタ制約の設定の自由度を向上する上で有用である。
 図11に示すように画面301に戻った状態で、ユーザがエフェクタ座標の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図11の画面304を表示させる。画面304は、ユーザが複数のエフェクタ座標のうち何れかのエフェクタ座標の設定を選択するための画面である。
 画面304においてユーザが複数のエフェクタ座標のうち例えばエフェクタ座標1を選択すると、プロセッサ21は表示装置22に図11の画面305を表示させる。画面305は、ユーザが選択したエフェクタ座標1の設定をするための画面である。画面305に示すように、ユーザはエフェクタ座標1の位置および姿勢を設定できる。
 なお、画面304においてユーザがエフェクタ座標2を選択すると、プロセッサ21は表示装置22に図12の画面305を表示させる。図12では、ユーザは、選択したエフェクタ座標2の設定をすることができる。
 本実施形態では、ユーザは画面304,305を用いて複数のエフェクタ座標を設定できる。当該構成は、後述のエフェクタ制約の設定の自由度を向上する上で有用である。
 図13に示すように画面301に戻った状態で、ユーザがエフェクタ制約の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図13の画面306を表示させる。画面306は、ユーザが複数のエフェクタ制約のうち任意のエフェクタ制約の設定を選択するための画面である。
 画面306においてユーザが複数のエフェクタ制約のうち例えばエフェクタ制約1を選択すると、プロセッサ21は表示装置22に図13の画面307を表示させる。画面307は、ユーザが選択したエフェクタ制約1の設定をするための画面であり、ユーザは画面307を用いてエフェクタ制約を設定できる。エフェクタ制約は、エフェクタ30に対し固定されたエフェクタ座標系102の所定の基準座標から見た変化を制約するためのものである。
 より具体的に、画面307に示すように、ユーザはエフェクタ制約1の基準となる基準座標系を設定できる。エフェクタ制約2も同様に設定され得る。基準座標系が常に固定である場合、基準座標系101を用いる場合等は、画面307における基準座標系の設定は省くことも可能である。
 また、画面307に示すように、ユーザはエフェクタ制約ごとにエフェクタ座標を設定できる。画面307ではエフェクタ制約1にエフェクタ座標1が設定されている。エフェクタ制約2についても同様に例えばエフェクタ座標2が設定される。エフェクタ制約は、設定されたエフェクタ座標(所定の基準座標)から見たエフェクタ30の位置および/又は姿勢の変化の制約をするものである。このため、上記のようにエフェクタ座標を設定又は選択できる構成と、ユーザはエフェクタ制約ごとにエフェクタ座標を設定できる構成は、それぞれユーザによる設定の自由度の向上に繋がる。また、エフェクタ制約ごとに後述のエフェクタ制約要素が設定される。
 図11および図12の画面305では、設定されたエフェクタ座標のエフェクタ30の位置および姿勢が図で示されている。図11ではエフェクタ座標1がエフェクタ座標系102に対し斜め上方に設定され、図12ではエフェクタ座標2がエフェクタ座標系102に対し水平方向に異なる位置に設定されている。
 上記の画面200の動作プログラム23Bの例では、教示点3(位置姿勢[3])にエフェクタ制約1が設定されている。プロセッサ21は、エフェクタ30が動作プログラム23Bに基づき移動するようにアーム10Aを動作させる。この場合、例えば教示点2(位置姿勢[2])と教示点3との間において、エフェクタ座標1(所定の基準座標)から見たエフェクタ座標系102の位置および姿勢の変化がエフェクタ制約1で設定されたエフェクタ制約要素によって制約される。プロセッサ21が当該制約を教示点3と教示点4との間で適用する場合もあり得る。同様に、教示点4に関して、エフェクタ座標2(所定の基準座標)から見たエフェクタ座標系102の位置および姿勢の変化がエフェクタ制約2で設定されたエフェクタ制約要素によって制約される。
 ここで、教示点3にあるエフェクタ30に対するエフェクタ座標1(所定の基準座標)の位置は、図11の画面305に示されるエフェクタ座標1のエフェクタ30の位置に対応している。エフェクタ座標2(所定の基準座標)の位置も同様に設定され得る。
 また、動作プログラム23Bの実行中に前述の回避動作が行われる場合、プロセッサ21が動作プログラム23Bを補正した動作プログラム23B’を一時的に生成し前述の回避経路を生成してもよい。この際、例えば、動作プログラム23B’の各教示点のうち、回避対象の存在によって補正すべき教示点の位置座標、姿勢等が、エフェクタ30を回避対象から十分に離すことができる位置、姿勢等に補正される。または、プロセッサ21がエフェクタ30を回避対象から十分に離すことができる教示点を新たに生成してもよい。プロセッサ21が、教示点の代わりに、動作プログラム23Bの通過点又は隣り合う教示点の間の区間のうち補正すべき通過点又は区間を補正してもよい。また、前述の回避動作が行われる際に、プロセッサ21がポテンシャル場等を用いながら元々の動作プログラム23Bと異なる回避経路を生成してもよい。
 一例では、画面200の動作プログラム23Bのいくつかの教示点が補正される場合、プロセッサ21は、補正対象の各教示点に設定されているエフェクタ制約も用いて、回避経路を生成する。
 なお、所定の基準座標として教示点や教示点間の通過点が用いられる場合もあり得る。つまり、動作プログラム23Bによって動いているエフェクタ30の各教示点や各通過点における位置および姿勢の変化が、その教示点や通過点の位置および姿勢から見てエフェクタ制約要素の範囲内となるように制御される。
 所定の基準座標として教示点や教示点間の通過点が用いられる場合、図11および図12の画面305の設定は不要となり、図13の画面307のエフェクタ座標の設定も不要となる。図13の画面307が、エフェクタ座標1を教示点又は通過点の位置および姿勢とする設定を受付けるように構成されていてもよい。
 なお、エフェクタ制約のエフェクタ制約要素は、エフェクタ30の位置の変化が許容される範囲を示しているとも言える。典型的には、前述の構成でプロセッサ21がアーム10Aを動作させる時、エフェクタ制約によってエフェクタ30の位置の変化が許容される範囲内に、エフェクタ30(エフェクタ座標系102)の実際の位置および姿勢が配置される。同様に、典型的には、前述の構成でプロセッサ21が回避経路を生成する時、エフェクタ制約によってエフェクタ30の位置の変化が許容される範囲内に、回避経路の通過点が含まれる。
 また、エフェクタ制約1の対象が区間となる場合もあり得る。この場合例えば、画面307において“エフェクタ制約の適用範囲”が表示され、“エフェクタ制約の適用範囲”の右に当該エフェクタ制約の対象の教示点番号等をユーザが入力する。教示点番号が連続した複数の番号である場合、その区間がエフェクタ制約1の対象となる。
 また、動作プログラム23Bの内部にてエフェクタ制約を開始/終了するように記述することによってエフェクタ制約の対象の区間が指定されてもよい。
 また動作プログラム23Bによらず、常に適用されるエフェクタ制約が設定されてもよい。
 またエフェクタ制約ごとに、常に適用される動作プログラム23Bが設定されてもよい。
 なお、図13に示す画面307で、“エフェクタ制約の適用範囲”として例えば空間又はアーム10Aの姿勢タイプが設定されてもよい。例えば、図13の破線307Aの範囲はX-Z方向の範囲を示しているが、当該範囲でY方向にも例えば数十cm程度の範囲が設定され得る。画面307でユーザが当該空間を選択によって“エフェクタ制約の適用範囲”の右側に入力すると、当該空間がエフェクタ制約1の適用範囲として設定される。同様に画面307にアーム10Aの複数の姿勢タイプが表示され、選択された姿勢タイプが“エフェクタ制約の適用範囲”の右側に入力されてもよい。この場合、アーム10Aの姿勢が当該姿勢タイプに該当する間はエフェクタ制約1が適用される。なお、エフェクタ制約の対象となる経路をユーザが画面307で設定できる構成も採用し得る。
動作プログラム23Bに基づかない動作中に回避経路が生成される場合等に、プロセッサ21が、回避経路のうち例えば前記空間内に配置される部分を、その空間に設定されたエフェクタ制約を適用しながら生成してもよい。
なお、動作プログラム23Bの各教示点に設定されたエフェクタ制約やその他の設定されたエフェクタ制約に基づき、制御装置1が自動的にエフェクタ制約を設定することも可能である。この自動的に設定されるエフェクタ制約も、ユーザが各教示点に対し設定したエフェクタ制約に基づくので、ユーザの入力に基づき設定されるエフェクタ制約である。
 また、アーム10Aが動作できる空間、アーム10Aがエフェクタ30を用いて対象2対して行う作業の内容等をユーザが制御装置1に教示し、当該教示に基づきアーム10Aが前記作業を行う場合もあり得る。例えばバーカウンターにアーム10Aが配置される場合が考えられる。前記作業は、アーム10Aがハンドであるエフェクタ30を用いてコップ等の対象2を保持する作業、保持した対象2をカウンターの客に対応する位置に提供する作業等である。
 この場合、例えばアーム10Aの作業範囲を観察する視覚センサが設けられ、制御装置1は視覚センサの出力に基づきエフェクタ30の位置、対象2の位置、前記空間内において動きがある周囲環境4、前記客を含む接近物等を認識する。制御装置1は、周囲環境4および接近物の存在範囲を認識しながら、前記作業のためにエフェクタ30が動く経路を逐次計算する。この場合でも、プロセッサ21は、前記経路の生成時に前記空間に設定されたエフェクタ制約を適用できる。
 また、前記経路に沿ってアーム10Aがエフェクタ30を動かしている時に、その経路上に接近物が侵入する場合等は、プロセッサ21は前記空間に設定されたエフェクタ制約を適用しながら回避経路を生成できる。
 また、画面307に示すように、ユーザはエフェクタ制約1として、エフェクタ30のX,Y,Z方向の移動可能範囲を設定できる。画面307は“基準”を設定できる。当該“基準”は、例えば基準座標系1、基準座標系101、エフェクタ座標系102等における座標で示される。画面307は“上限”および“下限”を設定できる。当該“上限”および“下限”は、例えば“基準”の座標に対する移動可能量又は移動可能範囲である。本実施形態では“基準”、“上限”、および“下限”を有するX,Y,Z方向の各々の移動可能範囲がエフェクタ制約要素と称される。同様に、ユーザはエフェクタ制約1として、エフェクタ30のX,Y,Z軸周りの回転移動可能範囲、角速度、および角加速度と、X,Y,Z方向の速度および加速度とを設定できる。X,Y,Z軸周りの各々の回転移動可能範囲、速度、加速度、角速度、角加速度、位置または姿勢を3回以上時間微分した量に相当する値や式等もエフェクタ制約要素と称される。
 なお、画面307のエフェクタ座標として設定されたエフェクタ座標1の位置および姿勢が“基準”として用いられる場合、“基準”が制御装置1によって自動的に設定される場合等は、“基準”の入力や表示が省かれ得る。また、全てのエフェクタ制約要素を設定する必要はなく、その一部が固定されている場合、制御装置1によって自動的に設定される場合等もある。
 本実施形態では、ユーザが“基準”を任意に設定可能に構成されている。このため、ユーザは、各教示点で設定したエフェクタ30の位置および姿勢や画面307で設定されたエフェクタ座標1の位置および姿勢と異なる位置および姿勢を、“基準”として設定できる。当該構成は、ユーザによる設定の自由度の向上、アーム10Aの動作の正確性、安全性、効率化等に繋がる。例えば、エフェクタ30の種類ごとに好ましい姿勢がある場合等に、ユーザはエフェクタ30のニュートラルな姿勢としてX,Y,Z軸周りの各々の“基準”を設定できる。また、プロセッサ21がエフェクタ30の位置および姿勢を“基準”に近付ける制御(本稿にて復元動作制御と称する)を行うように構成することも可能である。これらの構成によって、教示作業の手間の低減、容易化等を図りながら、アーム10Aの動作の正確性、安全性、効率化等の向上が可能となる。
 なお、本実施形態において、アーム10Aの動作の効率化には、アーム10Aの動作のサイクルタイムの向上等が含まれる。
 本実施形態では、図15に示すように画面301に戻った状態で、ユーザがエフェクタ制約セットの設定画面への遷移を選択すると、プロセッサ21は表示装置22に図15の画面308を表示させる。画面308は、ユーザが複数のエフェクタ制約セットのうち任意のエフェクタ制約セットの設定を選択するための画面である。
 画面308においてユーザが複数のセットのうち例えばセット1を選択すると、プロセッサ21は表示装置22に図15の画面309を表示させる。画面309は、ユーザが選択したエフェクタ制約セット1の設定をするための画面であり、ユーザは画面309を用いてエフェクタ制約セットを設定できる。エフェクタ制約セットは、複数のエフェクタ制約を関係付けることができる。
 より具体的に、画面309に示すように、ユーザは、エフェクタ制約セット1に任意に選択されたエフェクタ制約1~3を組み込むことができ、また、エフェクタ制約1~3の各々の有効又は無効を設定できる。また、ユーザは、複数のエフェクタ制約1~3の関係付けを“1∩2∩3”のように設定できる。“1∩2∩3”はエフェクタ制約1、且つ、エフェクタ制約2、且つ、エフェクタ制約3の意味である。例えば、図7の画面200の“エフェクタ制約”の列に“エフェクタ制約1”等の代わりに“エフェクタ制約セット1”を設定することができる。
 当該構成は、ユーザによる設定の自由度の向上に繋がる。また、当該構成によって、ユーザは画面307で設定された複数のエフェクタ制約を整理して適用することが可能となり、これはアーム10Aの動作の正確性、安全性、効率化等に繋がる。なお、本実施形態では、画面306、307等は各エフェクタ制約および各エフェクタ制約要素の有効又は無効を設定できる。必要性に応じて画面309の設定を省くことも可能である。
 図14に示すように、プロセッサ21は、経路生成プログラム23Dを用いて、動作プログラム23B等に基づき、エフェクタ座標系102の位置および姿勢を直前の教示点から対象教示点に移動する経路作成を行う。例えば、プロセッサ21は、直前の教示点と対象教示点との間に関する周知の補間演算を行いながら、前記経路作成を行う。
 また、図14に示すように、プロセッサ21は、前記干渉計算を行い、動作プログラム23Bの経路の計画上に回避すべき回避対象が存在しているとの前記判断を行った場合、経路生成プログラム23Dに基づき前記回避経路を生成する。図14では、一例として、プロセッサ21は前記回避経路の生成のために、動作プログラム23Bの教示点のうち回避対象の位置に応じた教示点を補正した動作プログラム23B’を一時的に生成し、これに基づき回避経路を生成する。または、経路生成プログラム23Dを用いて経路を補正し回避経路を生成する。
 前記干渉計算の結果、接触する可能性があり、予め決めていた基準を超え、回避すべきと判断された回避対象が存在する場合、制御指令を補正する必要がある。プロセッサ21は、干渉計算の結果に基づき、回避経路としての仮の制御指令を生成する。仮の制御指令が実行された場合に回避対象との接触が回避されるか否かを確かめるため、プロセッサ21は干渉計算を再度実行する。回避の基準を満たしていれば、プロセッサ21は元々の制御指令を仮の制御指令によって書き換える。
 本実施形態では、プロセッサ21は、前述の回避対象を回避する経路生成において、エフェクタ制約を考慮した経路を生成する。例えば、エフェクタ制約が加わった分だけコンフィギュレーション空間が変化する。速度と加速度といった制約も加わるため、経路生成におけるポテンシャルの場が変化する。エフェクタ制約にニュートラルな状態を設定している場合、これも前記ポテンシャル場に影響を与える。このため、エフェクタ制約も考慮されたポテンシャル場が用いられてもよい。例えば、プロセッサ21が回避経路を生成する際に、ポテンシャル場におけるコストが低い道を探す。この時のポテンシャル場は、エフェクタ制約を考慮したものと考慮していないもので異なる。ポテンシャル場としては、例えば、接触可能性の高さを示すコストの分布等である。エフェクタ制約を考慮した場合はポテンシャル場の分布が変わり、プロセッサ21が選択する経路も変化する。
 経路の生成の際、図14に示すように、プロセッサ21は、動作プログラム23Bのエフェクタ制約および/又は前述のように空間(範囲)に設定されたエフェクタ制約がある場合は、エフェクタ制約も適用しながら前記経路作成および前記回避経路作成を行う。なお、本実施形態において、前記経路作成および前記回避経路作成は、経路の作成又は経路の生成と説明される場合がある。
 そして、プロセッサ21は、作成された経路に応じた制御指令を各サーボ制御器24に送信する。
 エフェクタ制約の範囲内であればどのような状態も取り得る設定がされてもよい。または、エフェクタ30に適した状態がある場合は、当該状態がニュートラルな状態として設定されてもよい。例えばエフェクタ制約としてX軸周りに±5degの制約がある場合で、好適な状態を設定していないと、経路生成の結果、エフェクタ30が最終的に傾いたままとなる可能性がある。例えば0degがニュートラルな状態として設定されると、プロセッサ21は例えばエフェクタ30の最終的な姿勢を前記0degに近付け、又は、戻す。
 なお、ユーザが後述のジョグ操作又はハンドガイド操作を用いて各教示点を設定する時に、各教示点の設定時のエフェクタ30の位置および姿勢がニュートラルな状態として設定されてもよい。例えば、ユーザがハンドガイド操作によってエフェクタ30を第1の位置および姿勢に配置し、そこで例えば入力部26で教示点設定のための操作を行う。これにより、例えば画面200の教示点1用に第1の位置および姿勢が設定される。ユーザは教示点2以降も同様に設定できる。ユーザは、ジョグ操作又はハンドガイド操作を用いて各教示点を設定する場合に、実際のエフェクタ30の位置および姿勢をアーム10Aの作業時のイメージに合わせて配置する場合がある。このため、上記の第1の位置および姿勢等が各教示点におけるニュートラルな状態として設定される構成は、ユーザの手間の低減と、アーム10Aの動作の正確性、安全性、効率化等との両立のために有用である。
 プロセッサ21はアーム10Aを制御してエフェクタ30の位置および姿勢をニュートラルな状態に戻す復元動作制御を行う。復元動作制御は、例えば一定の速度又は角速度、一定の加速度又は角加速度、ニュートラルな状態からの乖離量等に応じて計算される値の少なくとも1つを用いて行われる。復元動作制御を行うために、前記乖離量に応じてバネのように作用するバネ的変数が用いられてもよい。また、復元動作制御を行うために、前記乖離量の変化速度又は変化角速度に応じてダンパのように作用するダンパ的変数が用いられてもよい。復元動作制御を行うために、前記乖離量の変化加速度又は変化角加速度に応じて慣性力のように作用する慣性的変数が用いられてもよい。これらの変数の組み合わせが用いられても良い。
 例えば物品ハンドリングの例として、対象2を簡易なトレイ形状のエフェクタ30に乗せて運ぶことが挙げられる。トレイ形状であるので、当然エフェクタ30の傾き、不適切な速度等により、対象2が落下する可能性がある。
 例えば、画面305および画面307によってエフェクタ座標1の位置が対象2の重心より少し上に設定されると共に、姿勢、角速度、角加速度の制約が設定される。
 当該設定に基づき、プロセッサ21はある位置姿勢から他の位置姿勢までのエフェクタ座標系102(エフェクタ30)の経路を生成する。この際、対象2を乗せたエフェクタ30がエフェクタ制約で設定されたニュートラル状態の位置および姿勢を中心に振り子のように動く傾向が出る。これにより、対象2の位置では大きな傾きや加速度が制限され、さらに振り子動作により生じる遠心力によって対象2がエフェクタ30に押し付けられ、これらは対象2の落下防止に繋がる。
 他の例では、ユーザは、エフェクタ制約要素の設定において、エフェクタ30の上下方向に対応する方向且つ上記遠心力に対応する方向の加速度の許容範囲だけある値に設定できる。また、ユーザは、他の方向の加速度の許容範囲を前記値の1/5以下等の十分に小さい値に設定できる。この場合も、エフェクタ30が振り子のように動く傾向が出る。
 なお、エフェクタ制約における姿勢の制約は、オイラー角表記に限られず、クォータニオン表記等も採用され得る。また、制約がスカラ値である必要は無く、関数として設定されていてもよい。アーム10Aの位置、姿勢等に応じてエフェクタ制約が切り替わる設定がされてもよい。アーム10Aの状態(対象2を保持しているか否か等)に応じてエフェクタ制約が切り替わる設定がされてもよい。
 ロボットの教示が行われる際、通常は各教示点やエフェクタ30の経路の全体に亘って6自由度分の位置姿勢(X,Y,Z,θx,θy,θz)が指定される。エフェクタ制約が設定されている場合、エフェクタ制約に位置および姿勢を指定する作用があるため、通常の教示とは異なる位置および姿勢の教示が可能となる。
 例えば物品ハンドリングの多くの場合において、対象2を拾う際と置く際は正確な位置決めが必要であるが、それ以外の位置ではエフェクタ30の凡その位置および姿勢が決まっていればよい。凡その位置(X,Y,Z)で良いケースであっても、従来の教示方法では6軸分の位置および姿勢(X,Y,Z,θx,θy,θz)を指定する必要がある。エフェクタ制約で姿勢(θx,θy,θz)が制約されている場合は、教示は位置の情報(X,Y,Z)さえあればよい。この場合、ある位置から他の位置までの経路が、エフェクタ制約の姿勢の制約内で生成される。
 これは、回避経路の生成においても同様である。例えば、エフェクタ制約によってエフェクタ30の姿勢、速度、加速度、角速度、角加速度等が制約されている場合がある。この場合、ユーザはプロセッサ21による回避経路の生成のための設定においてエフェクタ30の姿勢等を、特にエフェクタ30の姿勢の設定をする必要が無くなる。当該構成によって、設定作業の手間の低減、容易化等を図りながら、アーム10Aの動作の正確性、安全性、効率化等の向上が可能となる。
 また、元々の教示位置とエフェクタ制約のどちらを用いるかを動作プログラム23Bの中で選択できる構成が採用される。例えば、図7の画面200に、各教示点や経路の各区間について、エフェクタ制約を動作プログラム23Bの教示点の指定よりも優先するか否かを設定するための“制約優先”の列が加えられる。この場合、ユーザは動作プログラム23Bとエフェクタ制約の何れを優先するかを容易且つ確実に設定できる。なお、エフェクタ30の位置および姿勢(X,Y,Z,θx,θy,θz)が動作プログラム23Bの教示位置および教示姿勢とエフェクタ制約のどちらで制約されるかは、上記の例に限定されない。
 上記の構成は、各教示点における制約の設定の低減に繋がる。また、上記の構成は、エフェクタ制約があることによって、エフェクタ30の位置および姿勢を適正な状態に保つことができるアーム10Aの動作を実現し、これはサイクルタイムの向上を図れる経路の作成、選択等に繋がり得る。
 なお、図13の画面306,307に示すように、本実施形態では複数のエフェクタ制約を設定できるが、1つのエフェクタ制約だけが設定できる構成も採用され得る。なお、基準座標系と、エフェクタ座標と、エフェクタ制約要素とからなるセットを1つ備えることでエフェクタ制約の機能が発揮されるが、1つのエフェクタ制約によって様々な機能を表現することは難しい場合がある。そこで、図13の画面306,307に示すように、エフェクタ制約を複数設定できる構成が採用されてもよい。また、複数のエフェクタ制約を各々の対象の区間、範囲、又は教示点等の点で適用できるように設定できる構成が採用されてもよい。
 以下の例ではエフェクタ制約セットが設定される。例えば、ユーザは、1つ目のエフェクタ制約として、画面305,306,307を用いてエフェクタ制約1を設定する。その際に、ユーザは、空間に対して動かない位置に基準座標系1を設定し、エフェクタの重心の上方部にエフェクタ座標1を設定する。エフェクタ制約1ではエフェクタ30の並進運動と回転運動を許容するように制約が設定される。またエフェクタ制約1では角速度および角加速度の制約も設定される。なお、ユーザが画面307において対応するタグを選択すると、角速度、角加速度等の設定が可能となる。
 ユーザは、2つ目のエフェクタ制約として、画面305,306,307を用いてエフェクタ制約2を設定する。その際に、ユーザは、エフェクタ座標2の位置および姿勢を基準座標系2の位置および姿勢として設定し、エフェクタの重心の下方部にエフェクタ座標2を設定する。エフェクタ制約2では並進および回転が許容されない。
 ユーザは、3つ目のエフェクタ制約として、画面305,306,307を用いてエフェクタ制約3を設定する。その際に、ユーザは、基準座標系1に対し、エフェクタ座標2の位置および姿勢を制約する。エフェクタ制約3では並進運動と回転運動を許容するように制約が設定される。またエフェクタ制約3では並進の速度と加速度が制約される。
 当該設定に基づき回避経路が生成されると、図11および図12のように対象2を乗せたトレイ形状のエフェクタ30がエフェクタ座標1で並進移動し、振り子のように動く。また、エフェクタ座標2の位置では大きな並進加速度が制限される。当該設定は対象2の落下を防止するために有利である。当該設定はあくまでも一つの例であり、設定内容は上記の例に限られず、エフェクタ制約は任意の数だけ設定され得る。
 以下の例ではエフェクタ制約セットの他の設定例が説明される。例えば、ユーザは、1つ目のエフェクタ制約として、画面305,306,307を用いてエフェクタ制約1を設定する。その際に、ユーザは、空間に対して動かない位置に基準座標系1を設定する。また、ユーザは、図1に示す関節3Cの回転軸線J3の上にエフェクタ座標1を設定すると共に、エフェクタ制約1を設定する。エフェクタ制約1は並進運動と回転運動を許容するようにエフェクタ制約要素が設定される。またエフェクタ制約1では角速度と角加速度が制約される。
 ユーザは、2つ目の制約として、画面305,306,307を用いてエフェクタ制約2を設定する。その際に、ユーザは、エフェクタ座標1を基準座標系2として設定し、エフェクタの重心の下方部にエフェクタ座標2を設定する。エフェクタ制約2では並進運動と回転運動が許容されるようにエフェクタ制約要素が設定される。
 ユーザは、3つ目のエフェクタ制約として、画面305,306,307を用いてエフェクタ制約3を設定する。その際に、ユーザは、基準座標系1に対しエフェクタ座標2を制約する。エフェクタ制約3では並進運動が許容されるようにエフェクタ制約要素が設定される。またエフェクタ制約3では並進の速度と加速度を制約するようにエフェクタ制約要素が設定される。
 通常ロボットは、図1の関節3Bをその回転軸線J2周りに動かそうとする際には関節3Cも回転軸線J3周りに対称的に動き、手首軸の姿勢を維持するように動くことがある。一方、回転軸線を動かそうとした際にはこの作用が無いことが多い。関節3Bと関節3Cとの間の可動部12(J2アーム)と手首の姿勢をそのままにして、回転軸線J3周りの動作を行うことは従来の設定では難しい。
 上記の他の設定例のエフェクタ制約セットが設定されると、回避経路に沿ったアーム10Aの動作のために回転軸線J3周りの回転動作が行われた際に、エフェクタ座標2の位置では回転が制限される。当該構成および設定は、対象2の落下防止のために有用である。
 ユーザがエフェクタ制約を複数に分けて設定することで、ユーザの考え等に応じて動作を切り分けやすくなり、エフェクタ制約の設定もユーザに分かり易くなる。当該構成は、ロボットのリスクアセスメントのために有用であり、アーム10Aの動作の教示や設定に関するミスを減らすためにも有用である。
 本実施形態において、基準座標系、エフェクタ座標、エフェクタ制約のセットを1つの単位のエフェクタ制約と称する場合がある。また、エフェクタ制約は、位置、速度、加速度等の個々の制約をまとめたものであり、個々の制約をエフェクタ制約要素と称する。また、エフェクタ制約が複数用意されていても良く、プロセッサ21は記憶部23から必要なエフェクタ制約を呼び出して使用する。
 様々なアーム10Aの状態に応じた複数のエフェクタ制約セットが準備されていてもよい。アーム10Aの状態は、エフェクタ30のタイプ、対象2のタイプ、アーム10Aのタイプ等により差が生ずる。エフェクタ制約セットは複数のエフェクタ制約を組合せたものである。また、アーム10Aの状態ごと、または、動作プログラム23Bごとにエフェクタ制約セットが1つ又は複数準備されていると、ユーザは準備されたエフェクタ制約セットを使用するだけでよい。当該構成は、ユーザによる設定の手間の低減に繋がり、アーム10Aの動作の正確性、安全性、効率化等にも繋がる。
 エフェクタ制約を設定することで、エフェクタ30、対象2等の性質を考慮した回避経路生成が可能となるが、エフェクタ30、対象2等の性質を正しくエフェクタ制約に反映させることは難しい。エフェクタ制約をユーザが計算等を用いて決定できる場合もあるが、ユーザごとの経験の違いによりエフェクタ制約の精度にばらつきが生ずる。このような状況ではエフェクタ制約を入力するために試行錯誤が必要となる。また、本来必要な制約の設定が漏れ、意図せぬ不具合を招く可能性がある。これらは以下の構成によって改善され得る。
[優先度]
 本実施形態では、エフェクタ制約は複数のエフェクタ制約要素を含み、図13の画面307に示すように複数のエフェクタ制約要素のうち少なくとも1つに優先度を設定できる。例えば、画面307は、“優先度”の列を有し、各エフェクタ制約要素に対応するように優先度を設定可能である。画面307では、エフェクタ制約要素であるX軸周りの角度の“上限”および“下限”に“絶対”の優先度が設定されている。“絶対”の優先度は例えばプロセッサ21が必ず用いなければならないマストアプライ設定であるとも言える。他のエフェクタ制約要素にもそれぞれ優先度が設定され、優先度が高い順に“絶対”、“高”、および“低”が設定されている。
 当該構成によって、ユーザの設定の自由度が増す。また、例えばエフェクタ制約の中のX,Y,Zの回転位置制約のうち何れかを必ずしも守らなくてもよい条件でロボット10が動作可能となり、プロセッサ21が設定し得る回避経路の選択肢が増える。また、プロセッサ21はサイクルタイムの向上等が望めるより効果的な回避経路を選択できるようになる。
 本実施形態のエフェクタ制約には、必ず守ってほしい制約や、必ずしも守らなくても良い制約など、優先度がある。回避経路生成時に、全ての制約を守っている状態が望ましい場合もあるが、それほど重要でない制約を守ろうとして効果的な回避経路を選択できない可能性もある。つまり、優先度が低い制約を守らないことで効果的な回避経路を選択可能になる場合がある。このため、予め設定された基準に基づき優先度が低い制約をプロセッサ21が守らないよう構成されてもよい。当該構成の実現のために、各エフェクタ制約や各エフェクタ制約要素に優先度が設定され、優先度は記憶部23に格納される。
 後述のようにユーザがプリセットのエフェクタ制約を用いる場合も、エフェクタ制約要素の優先度に差が生じるようにプリセットを準備することができる。機能要求を満たす上で重要なエフェクタ制約要素ほど優先度が高くなる。優先度はユーザが後から変更できる。
 エフェクタ制約には、ユーザが意図して設定する制約と、意図して設定しない制約とがある。本実施形態においては、ユーザが意図して設定する(user ordered)制約を指定制約、意図して設定していない最適化可能性のある(optimizable)制約を従属制約と称する場合がある。指定制約であるか従属制約であるかを示す情報が各エフェクタ制約と共に記憶部23に格納されてもよい。例えば、エフェクタ制約要素の各々について、ユーザによって指定された値をプロセッサ21に使わせる制約要素であるとの設定又はプロセッサ21による変更を許容する制約要素であるとの設定を制御装置1が受付け、受付けた設定が記憶部23に格納される。当該設定は図13、図19、および図23に“指定”および“従属”で示されている。
 後述のようにユーザがプリセットのエフェクタ制約を用いる場合、エフェクタ制約の詳細はユーザが設定したものではないため、最初は従属制約とすることが望ましい。ユーザがプリセットのエフェクタ制約に編集を加えた場合、当該エフェクタ制約は指定制約となる。指定制約であるか従属制約であるかはユーザが後から変更できる。
 また、エフェクタ制約の優先度と、指定制約と従属制約の区別が、エフェクタ制約要素ごとに設定される構成が可能であり、エフェクタ制約セットごとにまとめて設定される構成も可能である。
 複数のエフェクタ制約セットを有するケースでは、優先度と、指定制約と従属制約の区別をつけることで、制約の意図が分かりやすくなる。
[プリセット]
 本実施形態において、好ましくは、エフェクタ制約および/又はエフェクタ制約要素を自動的に設定するプリセット自動設定プログラム23Fが記憶部23に格納されている。プリセット自動設定プログラム23Fは、ユーザが客観的に取得できるエフェクタ30および対象2の情報と、ユーザが主観的に期待する機能や性能(機能要求)とに基づき、エフェクタ制約および/又はエフェクタ制約要素を自動的に設定する。
 機能要求は、例えば対象2について、「揺らしたくない」「倒したくない」「落としたくない」「傾けたくない」「その場から動かしたくない」等の定性的な表現でも良い。
 この機能要求は、エフェクタ制約要素として表現することが可能である。このために、機能要求に対応するエフェクタ制約要素のプリセットが予め記憶部23に記憶されている。
 この場合、例えば、エフェクタ30と対象2の組合せのタイプについて、ユーザは複数種類のプリセットから選択できるように構成されている。プリセットとして、トレイに乗るタイプ、コンテナに乗るタイプ、箱に入るタイプ、ハンドでつかむタイプ、吸引するタイプ等がある。また、プリセットとして、溶接ガンで対象に加工するタイプ、溶接トーチで対象に加工するタイプ、各種工具で対象に加工するタイプなどがある。当該構成はエフェクタ30の種類を限定するものではなく、プリセットは情報入力を補助するためのものである。プリセットに当てはまらないエフェクタも使用可能である。
 エフェクタ30や対象2の3D-CADモデルが用いられることも望ましい。この形状に加えて、対象2の重心位置、重量、エフェクタの重心位置、重量、エフェクタ30の可動部分等などが3D-CADモデルと共に用いられると、より正確な物理モデルが作成される。物理モデルには、材料の硬さを示すバネ定数、振動を減衰する減衰係数、物体同士が擦れたときの摩擦係数等、物理的な挙動を説明する上で必要なパラメータを付与することが望ましい。物理モデルがあれば、シミュレーション上で、ハンドで掴む挙動、対象2が落ちる挙動等の物理的な挙動が再現可能となる。
 本実施形態にて使用する物理モデルは、物理シミュレーションを実施するためのものである。物理モデルの各種設定は工数を要するため、ユーザが容易に入手可能な情報から構築できるものが望ましい。
 典型的なエフェクタ30と対象2であれば、前記のエフェクタ30と対象2の組合せのタイプのプリセットを選択することで、エフェクタ30と対象2のおおよその配置が決まる。配置が決まっていれば、エフェクタ30や対象2の特徴部分の形状、重心、重量等を追加するだけで、おおよその物理モデルが生成される。
 制御装置1は、エフェクタ30と対象2のタイプ、形状等の情報と、機能要件の情報と、それを実現するのに適切なエフェクタ制約要素の情報とを、互いに対応付けられた状態で記憶部23に格納している。プロセッサ21は、前記の情報、ユーザが入力する機能要件、および物理モデルの情報等を元に、エフェクタ制約要素を設定し、ユーザに提示する。
 より具体的な例が以下に説明される。
 例えば入力部26の表示装置22に前記プリセットを用いた設定のための画面が表示される。
 先ず、制御装置1のプロセッサ21は表示装置22に図16に示される画面401を表示させる。画面401が画面301の代わりに表示されてもよい。画面401は、ユーザがエフェクタ情報の設定画面への遷移を選択するための画面である。
 画面401においてユーザがエフェクタ情報の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図16の画面402を表示させる。画面402は、ユーザが複数のエフェクタタイプの設定のうち任意のエフェクタタイプの設定を選択するための画面である。
 画面402においてユーザがエフェクタタイプ1の設定を選択すると、プロセッサ21は表示装置22に図16の画面403を表示させる。画面403は、ユーザが選択したエフェクタタイプ1の設定をするための画面である。画面403に示すように、ユーザは選択によってエフェクタタイプを設定できる。
 画面403においてユーザが選択したエフェクタタイプの詳細設定を選択すると、プロセッサ21は表示装置22に図16の画面404を表示させる。画面404は、選択したエフェクタタイプの寸法設定、重心位置等の位置設定をするための画面である。好ましくは、画面404は、選択したエフェクタタイプの重量、材質等も設定できるように構成されている。
 図17に示すように画面401に戻った状態で、ユーザが対象情報の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図17の画面405を表示させる。画面405は、ユーザが複数の対象タイプの設定のうち任意の対象タイプの設定を選択するための画面である。
 画面405においてユーザが対象タイプ1の設定を選択すると、プロセッサ21は表示装置22に図17の画面406を表示させる。画面406は、ユーザが選択した対象タイプ1の設定をするための画面である。画面406に示すように、ユーザは選択によって対象タイプを設定できる。
 画面406においてユーザが選択した対象タイプの詳細設定を選択すると、プロセッサ21は表示装置22に図17の画面407を表示させる。画面407は、選択した対象タイプの寸法設定、重心位置等の位置設定をするための画面である。好ましくは、画面407は、選択した対象タイプの重量、材質等も設定できるように構成されている。なお、選択した対象タイプの選択したエフェクタタイプに対する位置設定もできるように画面407が構成されていてもよい。
 図18に示すように画面401に戻った状態で、ユーザが対象位置関係情報の設定画面への遷移を選択すると、プロセッサ21は表示装置22に図18の画面408を表示させる。画面408は、選択したエフェクタタイプに対する選択した対象タイプの位置関係を設定するための画面である。
 画面408においてユーザが例えば位置関係1の設定を選択すると、プロセッサ21は表示装置22に図18の画面409を表示させる。画面409は、ユーザが選択した位置関係1の設定をするための画面である。画面409に示すように、ユーザは数値の入力、表示されるエフェクタの図および/又は対象の図の移動によって位置関係を設定できる。
 図19に示すように画面401に戻った状態で、ユーザがエフェクタ制約をプリセットから設定する設定画面への遷移を選択すると、プロセッサ21は表示装置22に図19の画面410を表示させる。画面410は、エフェクタタイプの選択、対象タイプの選択、対象位置関係の選択等を行うための画面である。
 なお、エフェクタタイプが固定されている場合、エフェクタタイプの情報が外部機器からの入力情報(入力)に基づき自動的に設定される場合等もあり得る。例えば、エフェクタ30が制御装置1に接続された時にエフェクタ30から制御装置1に信号が送信され、当該入力信号(入力)に基づきプロセッサ21がエフェクタタイプを設定してもよい。同様に、対象タイプおよび対象位置関係が固定されている場合、対象タイプおよび対象位置関係が自動的に設定される場合もある。
 画面410は、機能要求(要求)の設定画面への遷移を選択し、また、設定された機能要求を表示するための画面である。ユーザが機能要求の設定のための所定の操作、例えば“設定を生成”のボタンを押すと、プロセッサ21は表示装置22に図19の画面411を表示させる。画面411は、ユーザが機能要求を選択するための画面である。画面411は、各機能要求に対応する位置に設定済であることを示す“有効”の表示が出る。画面411では、ユーザは複数の機能要求を設定することもできる。機能要求(要求)は、例えばエフェクタ30が対象2に対し行う作業に関するユーザの要求である。
 画面410,411の設定によって、エフェクタ制約が設定される。当該エフェクタ制約には、例えば、画面307と同様の各設定が含まれる。このため、設定されたエフェクタ制約を用いてプロセッサ21はアーム10Aを制御できる。
 画面410に戻った状態で、ユーザが“生成ログを見る”を押すことにより、プロセッサ21は表示装置22に図19の画面412を表示させる。画面412は、設定されたエフェクタ制約の内容を表示し、エフェクタ制約の各設定の変更を受付けるものである。画面412は、各設定が変更されたエフェクタ制約をプリセットの1つとして登録するためのユーザの入力を受付けるように構成されている。
 このように、記憶部23は複数のエフェクタ制約を格納している。また、エフェクタ30のタイプである前記エフェクタタイプと対象2のタイプである前記対象タイプの複数の組合せに複数のエフェクタ制約がそれぞれ対応するように記憶部23に格納されている。そして、ユーザが入力部26等を用いて任意の組合せを入力すると、プロセッサ21は対応するエフェクタ制約を設定する。当該構成は、ユーザによる設定の手間の低減に繋がり、アーム10Aの動作の正確性、安全性、効率化等にも繋がる。
 なお、前記エフェクタタイプの設定だけに基づきエフェクタ制約が設定される場合もあり得る。または、前記対象タイプの設定だけに基づきエフェクタ制約が設定される場合もあり得る。例えば、作業内容やそれに対する要求が固定されているエフェクタタイプ又は対象の場合、機能要求等の他の設定が無い状態で、前記エフェクタタイプ又は前記対象タイプの設定だけに基づきエフェクタ制約が設定される。当該構成では、ユーザは前記エフェクタタイプ又は前記対象タイプの設定のための入力を行えばよい。つまり、プロセッサ21は、前記エフェクタタイプに関する情報および前記対象タイプに関する情報の少なくとも1つと、前記ユーザによる前記設定のための入力とに基づき、エフェクタ制約を設定する。エフェクタ30が制御装置1に接続された時に、外部機器であるエフェクタ30から制御装置1に前記エフェクタタイプに関する情報、信号等が入力されてもよい。この場合、プロセッサ21は、前記エフェクタタイプに関する情報と、前記外部機器からの入力とに少なくとも基づき、エフェクタ制約を設定する。これらの構成は、ユーザによる設定の手間の更なる低減に繋がり、且つ、アーム10Aの動作の正確性、安全性、効率化等の向上にも寄与する。また、経験が不足しているユーザでもエフェクタ制約を適切に行えるようになり、これはアーム10Aの動作の正確性、安全性、効率化等のために有用である。
 また、本実施形態では、ユーザが入力する要求にも基づきエフェクタ制約が設定される。当該構成は、ユーザによる設定の手間の低減と、アーム10Aの動作の正確性、安全性、効率化等の向上との両立を、高いレベルで達成するために有用である。
[シミュレータ]
 本実施形態において、前述のように、ユーザの入力値によってエフェクタ制約が設定され、また、ユーザが入力する機能要求に基づきプリセットされたエフェクタ制約が設定される。しかし、たとえプリセットの場合であっても、設定したエフェクタ制約がユーザの期待通りに必ず正常に機能するとは限らない。重要な設定の抜け落ち、不要な設定の存在、エフェクタ制約要素の微調整の不足等が生じ、ユーザが想定していた経路とならない可能性がある。
 回避経路に基づく実際のロボット10の動作を確認することが最も確実な確認方法である。しかし、設定に不備がある場合は確認行為自体がリスクとなる。また、接近物の接近パターンは無数に存在するため、試行錯誤的な上記確認は膨大な工数を要する。このため、エフェクタ制約が妥当であるかをシミュレーション上で確認することは有用である。
 シミュレーションを実施するために、ユーザは、接近物として想定される条件を入力する。人の接近などは、人の体格に近い円柱などプリミティブ形状の接近物で表現することが容易である。人体の詳細な3Dモデルが用いられてもよい。要回避の接近物(回避対象)、回避不要の接近物、回避不可の接近物等の接近物の性質に応じた設定が好ましい。
 接近物の動作パターンは無数に存在し得る。このため、好ましくは、網羅的な動作パターンのセットであるプリセットが予め準備され、ユーザは通常はプリセットからの選択を行い、例外的な個別の事例をユーザが補足的に手入力する。
 周囲環境4、ロボット10、エフェクタ30、対象2等の3Dモデルがシミュレータ上で再現され、例えば動作プログラム23Bに基づく自動運転中に回避動作のシミュレーションが行われる。シミュレーションは、対象2の転倒等を再現可能な物理シミュレーションが望ましい。例えば、作成済のエフェクタ30と対象2の物理モデルが活用される。
 シミュレーションは、現実では通常モニタリングできないエフェクタ30および対象2の加速度等を計算可能である。エフェクタ30および対象2の位置、姿勢、速度、加速度、角速度、角加速度等に対し、許容される閾値としてのシミュレーション許容値が設定される。シミュレーションは、エフェクタ30の動作が前記シミュレーション許容値に収まっているか否かを確認できる。機能要求に相当するシミュレーション許容値が予め用意されている場合は、当該許容値が用いられてもよい。または、エフェクタ制約セットの中からシミュレーション許容値として用いられる値、設定等が選択されてもよい。
 シミュレーションの結果、接触を回避できない状況が発生し、アーム10A又はエフェクタ30が接近物に接触するケースが発生し得る。接触が回避されたとしても、対象2の転倒、落下等の作業の不具合が生ずる可能性がある。シミュレーションは、ユーザが想定する任意の条件で、回避動作において機能要求を満たしているか否かを判定できる。プロセッサ21がシミュレーション上での回避動作の様子を表示装置22等に表示することが好ましい。
 回避対象に対する回避ができなかった場合、シミュレーション許容値の要件が満たされない場合、サイクルタイムが条件を満たさない場合等は、エフェクタ制約要素を見直すことで改善が可能である。ユーザがシミュレーションの様子を確認し、エフェクタ制約要素を微調整することも可能である。
 シミュレーションの結果に基づきプロセッサ21が制約修正プログラム23Gに基づき以下のエフェクタ制約の修正、改善、又は最適化を行ってもよい。当該構成は、ユーザの手間の低減と、アーム10Aの動作の正確性、安全性、効率化等との両立を図る上で有用である。
 例えば、前述のユーザによるエフェクタ制約要素の微調整は、試行錯誤的でありユーザの負担が大きい。エフェクタ制約要素の設定時に、優先度、重要度等を設定している場合、重要度が低いエフェクタ制約要素のうち優先度が低いものは変更される可能性が高い。これが調整対象のエフェクタ制約要素となる。シミュレーションの結果に基づきエフェクタ制約セットを修正する制約修正プログラム23Gは記憶部23に格納されている。
 シミュレーションが実施され、回避対象を回避できた割合が回避成功率としてエフェクタ制約セットの良し悪しの判断指標として用いられてもよい。また、回避できなかった場合のリスクの大きさが回避失敗時リスクとしてエフェクタ制約セットの良し悪しの判断指標として用いられてもよい。回避成功率が高く回避失敗時リスクが低いエフェクタ制約は良いエフェクタ制約と言える。
 またサイクルタイムがエフェクタ制約セットの良し悪しの判断指標であってもよい。前記のエフェクタ制約セットの良し悪しの判断指標はあくまで例であり、これらに限定されない。
 回避成功率の高さを優先するべきか、回避失敗時リスクの低さを優先するべきかは、ユーザのリスクアセスメントの判断基準によって変化する。回避成功率、回避失敗時リスク、他のリスクアセスメントの判断基準等を織り込んで、エフェクタ制約セットの良し悪しの判断指標として、エフェクタ制約セット指標が設定され得る。
 例えば、エフェクタ制約セット指標が最大(または最小)となる条件が最も良いエフェクタ制約セットであるとの定義が可能である。
 シミュレーションを用いたエフェクタ制約セットの修正方法の例として、以下のような方法が考えられる。先ず、一般的な遺伝的アルゴリズムを適用することができる。シミュレーションの実施の後、エフェクタ制約セット指標が計算される。回避対象を回避できない場合、シミュレーションの結果に基づき、調整対象のエフェクタ制約要素の代替案が作成される。代替案は一度に複数作られてもよい。
 前記の代替案のエフェクタ制約要素を用いて、再度シミュレーションが実施され、エフェクタ制約セット指標が計算される。エフェクタ制約セット指標が改善されているエフェクタ制約セットを元にさらに代替案が生成される。エフェクタ制約セット指標の改善度合いに応じて、代替案の生成数などを変えることが可能である。
 上記のようなエフェクタ制約セットの代替案の生成は、予め決めた回数実施される、または、予め決められたエフェクタ制約セット指標を超えるまで実施される。当該処理によって、回避対象の回避に適したエフェクタ制約セットが得られる。上記の処理は1例であり、この処理に限定されない。
 上記のシミュレーションおよびその結果に基づくエフェクタ制約の改善又は最適化は、制御装置1のプロセッサ21が実施してもよく、別のコンピュータが実施してもよい。別のコンピュータは、制御装置1と同様のプロセッサ、表示装置、記憶部、入力部等を有する。別のコンピュータの記憶部には記憶部23と同様のプログラム、データ、情報等が格納されている。また、別のコンピュータの記憶部には、シミュレーションプログラムと、周囲環境4、ロボット10、エフェクタ30、対象2等のモデルも格納されている。
 別のコンピュータによって改善又は最適化されたエフェクタ制約が制御装置1に入力され、当該入力があった時に制御装置1のプロセッサ21が入力されたエフェクタ制約を動作プログラム23B等に設定してもよい。この場合、外部機器としてのコンピュータからの入力に基づき、プロセッサ21はエフェクタ制約によって制約された動作および回避動作をアーム10Aに行わせる。
 より具体的な例が以下説明される。
 例えば入力部26の表示装置22にエフェクタ制約のシミュレーションを行うための画面が表示される。
 図20に示す画面401においてユーザがエフェクタ制約シミュレーションの画面への遷移を選択すると、プロセッサ21は表示装置22に図21の画面421を表示させる。画面421は、ユーザが複数のシミュレーション条件の設定のうち任意のシミュレーション条件の設定を選択するための画面である。
 画面421においてユーザがシミュレーション条件1の設定を選択すると、プロセッサ21は表示装置22に図21の画面422を表示させる。画面422はシミュレーションのための各種設定をする画面である。ユーザが画面422のシミュレーション設定を選択すると、プロセッサ21は表示装置22に図21の画面423を表示させる。画面423はシミュレーションに評価させる評価項目の設定、前記シミュレーション許容値の設定を含む各評価項目の条件設定等を行う画面である。
 ユーザは、画面422,423で設定を行った後、画面421においてシミュレーションを実行するための操作を行う。これにより、プロセッサ21は図22のシミュレーション実行画面424を表示し、また、図22の画面425、426において設定された評価項目の結果を表示する。
 また、プロセッサ21が、エフェクタ30の動作がシミュレーション許容値内か否かを評価してもよい。そして、エフェクタ30の動作が前記シミュレーション許容値内でないときに、プロセッサ21が図23の画面427を表示してもよい。エフェクタ30の動作がシミュレーション許容値内に入らない時、プロセッサ21が、その原因となっているエフェクタ制約要素を判断又は推定し、画面427のようにそのエフェクタ制約要素をユーザに示すための表示を行ってもよい。画面427では原因であると判断されたエフェクタ制約要素の色が変えられている。
 プロセッサ21は、制約修正プログラム23Gに基づき、シミュレーションの結果を用いてエフェクタ制約の改善又は最適化を行うことができる。例えば、画面401において“設定最適化”が選択された時に、エフェクタ制約の改善又は最適化が行われる。
 一例として、図13の画面307のエフェクタ制約1を用いてシミュレーションが行われる場合について説明する。エフェクタ制約1のエフェクタ制約要素のいくつかが前記原因であると判断されると、プロセッサ21は原因であると判断されたエフェクタ制約要素を修正する。この時、前述のように図13の画面307の各エフェクタ制約要素は指定制約(user
ordered)を意味する“指定”が設定されている。また、図13の画面307の加速度・角加速度のタブ等にあるエフェクタ制約要素のいくつかが図23に示すように前記原因であり、それらは“指定”が設定されていない、つまり従属制約(optimizable)であるものとする。例えば、プロセッサ21は、原因であると判断され“指定”が設定されていなエフェクタ制約要素を変更することによって前記改善又は最適化を行う。この場合、ユーザは、自動的に変更される制約要素とされない制約要素を認識しながら、プロセッサ21に前記改善又は最適化を指示できる。当該構成は、ユーザの設定の容易化に繋がり、アーム10Aの動作の正確性、安全性、効率化等にも繋がる。
 本実施形態では、記憶部23は、エフェクタ30の位置および姿勢の所定の基準座標から見た変化の制約であるエフェクタ制約を格納している。また、プロセッサ21は、回避対象の前記検出の結果と、エフェクタ制約とに少なくとも基づき回避経路を生成し、生成された回避経路に沿った動作をロボット10に行わせる。これはロボット10の動作の正確性、安全性、効率化等に繋がる。例えば、エフェクタ30や対象2の種類に応じた避けたい姿勢の設定(回避)が容易又は確実になる。また、前述の教示作業又は設定作業の手間の低減、容易化等が可能となる場合もある。また、エフェクタ30の位置および姿勢を適正な状態に保つことができるアーム10Aの動作を実現しながら、サイクルタイムの向上を図れる回避経路の作成、選択等に繋がる場合がある。また、制御装置1が、生成された回避経路についてシミュレーションでリアルタイムに安全確認し、安全確認された回避経路に基づきアーム10Aを動作させる場合に、その計算コストが低減される場合がある。
 また、制御装置1はユーザがエフェクタ制約のエフェクタ制約要素等を入力するための入力部26を備える。当該構成は、多種多様なエフェクタ30や多種多様な作業に対し適切なエフェクタ制約を設定する上で有用である。
 また、エフェクタ制約はエフェクタ30の所定の基準座標から見た速度の制約、加速度の制約、角速度の制約、および角加速度のエフェクタ制約要素の少なくとも1つを設定可能である。当該構成は、多種多様なエフェクタ30や多種多様な作業に対し適切なエフェクタ制約を設定する上で有用である。また、これらのエフェクタ制約要素の設定があることによって、例えばアーム10Aに複雑な作業のために多数の教示点設定等を行う時に、アーム10Aの動作設定又は動作制約の設定の容易化が可能になる場合がある。
 本開示の実施形態について詳述したが、本開示は前述した個々の実施形態に限定されるものではない。これらの実施形態は、本開示の要旨を逸脱しない範囲で、または、特許請求の範囲に記載された内容とその均等物から導き出される本開示の思想および趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。例えば、前述した実施形態において、各動作の順序の変更、各処理の順序の変更、条件に応じた一部の動作の省略又は追加、条件に応じた一部の処理の省略又は追加は、上記の例に拘泥されることなく可能である。また、上記実施形態の説明に数値又は数式が用いられている場合も同様である。
[付記1]
 プロセッサと、
 ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約を格納する記憶部と、を備え、
 前記プロセッサは、
  センサの出力に基づく回避対象の検出の結果と、前記エフェクタ制約とに少なくとも基づき回避経路を生成する生成処理と、
  生成された前記回避経路に沿った回避動作を前記ロボットに行わせる制御処理と、
 を行う制御装置。
[付記2]
 前記プロセッサは、接近検出センサである前記センサの前記出力に基づき前記回避対象の位置を計算する、付記1に記載の制御装置。
[付記3]
 前記プロセッサは、前記計算の結果に基づき、前記ロボットおよび前記エフェクタの少なくとも一方と前記回避対象との接触の可能性を判断する、付記2に記載の制御装置。
[付記4]
 前記記憶部は、複数の前記エフェクタ制約を記憶可能である、付記1に記載の制御装置。
[付記5]
 前記記憶部は、複数の前記エフェクタ制約を組合せて成るエフェクタ制約セットを記憶可能である、付記1に記載の制御装置。
[付記6]
 プロセッサと、
 記憶部と、
 センサの出力に基づきロボットに回避動作を行わせる設定のための設定画面を表示させる表示装置と、を備え、
 前記表示装置は、前記ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約の設定のための画面を表示可能であり、
 前記画面は、ユーザの入力に少なくとも基づき前記エフェクタ制約を設定するためのものである、制御装置。
[付記7]
 前記エフェクタ制約を入力可能な入力部を備える、付記1~6の何れかに記載の制御装置。
[付記8]
 前記記憶部は複数のエフェクタ制約を格納しており、
 前記複数のエフェクタ制約は、前記エフェクタのタイプおよび前記エフェクタの作業の対象のタイプの少なくとも1つにそれぞれ対応しており、
 前記プロセッサは、前記エフェクタの前記タイプに関する情報および前記対象の前記タイプに関する情報の少なくとも1つと、ユーザの入力とに少なくとも基づき前記エフェクタ制約を設定する、付記1~7の何れかに記載の制御装置。
[付記9]
 前記ユーザの入力は、前記エフェクタによる前記作業に関し前記ユーザが求める要求を設定するためのものである、付記8に記載の制御装置。
[付記10]
 前記エフェクタ制約は複数のエフェクタ制約要素を含み、
 前記エフェクタ制約は、前記複数のエフェクタ制約要素のうち少なくとも1つに優先度を設定可能であり、
 前記プロセッサは、前記優先度を含む前記エフェクタ制約を少なくとも用いて前記ロボットに前記回避動作を行わせる、付記1~7の何れかに記載の制御装置。
[付記11]
 前記エフェクタ制約は複数のエフェクタ制約要素を含み、
 前記複数のエフェクタ制約要素の各々について、ユーザによって指定された値を前記プロセッサに使わせる指定制約の設定又は前記プロセッサによる変更を許容する従属制約の設定を受付けるように構成されている、付記1~7の何れかに記載の制御装置
[付記12]
 前記プロセッサは、前記エフェクタ制約を少なくとも用いて前記ロボットのモデルに前記回避動作を行わせるシミュレーションを行い、前記回避動作が基準を満たしているか否かを判定する、付記1~11の何れかに記載の制御装置。
[付記13]
 前記プロセッサは、前記回避動作が前記基準を満たしていない時に前記基準を満たすように前記エフェクタ制約を修正する、付記12に記載の制御装置。
[付記14]
 前記エフェクタ制約は、前記エフェクタの前記所定の基準座標から見た速度の制約、前記エフェクタの前記所定の基準座標から見た加速度の制約、前記エフェクタの前記所定の基準座標から見た角速度の制約、前記エフェクタの前記所定の基準座標から見た角加速度の制約、および前記位置または前記姿勢を3回以上時間微分した量に相当する値若しくは式の制約の少なくとも1つを設定可能である、付記1~13の何れかに記載の制御装置。
[付記15]
 プロセッサと、
 記憶部と、
 ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約の設定画面を表示する表示装置と、を備え、
 前記設定画面は、ユーザの入力に少なくとも基づき前記エフェクタ制約を設定するためのものであり、
 前記プロセッサは、前記エフェクタ制約を少なくとも用いて前記ロボットのモデルに回避動作を行わせるシミュレーションを行い、前記回避動作が基準を満たしているか否かを判定する、コンピュータ。
[付記16]
 前記プロセッサは、前記回避動作が前記基準を満たしていない時に前記基準を満たすように前記エフェクタ制約を修正する、付記15に記載のコンピュータ。
1 制御装置
2 対象
10 ロボット
10A アーム
11 サーボモータ
11A エンコーダ
12 可動部
21 プロセッサ
22 表示装置
23 記憶部
23A システムプログラム
23B 動作プログラム
23C 制御プログラム
23D 経路生成プログラム
23F プリセット自動設定プログラム
23G 制約修正プログラム
23H 干渉計算プログラム
24 サーボ制御器
25 サーボ制御器
26 入力部
50 センサ
200 画面(動作プログラム)
300~309 画面
401~412 画面
421~427 画面
500 操作部
 

Claims (16)

  1.  プロセッサと、
     ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約を格納する記憶部と、を備え、
     前記プロセッサは、
      センサの出力に基づく回避対象の検出の結果と、前記エフェクタ制約とに少なくとも基づき回避経路を生成する生成処理と、
      生成された前記回避経路に沿った回避動作を前記ロボットに行わせる制御処理と、
     を行う制御装置。
  2.  前記プロセッサは、接近検出センサである前記センサの前記出力に基づき前記回避対象の位置を計算する、請求項1に記載の制御装置。
  3.  前記プロセッサは、前記計算の結果に基づき、前記ロボットおよび前記エフェクタの少なくとも一方と前記回避対象との接触の可能性を判断する、請求項2に記載の制御装置。
  4.  前記記憶部は、複数の前記エフェクタ制約を記憶可能である、請求項1に記載の制御装置。
  5.  前記記憶部は、複数の前記エフェクタ制約を組合せて成るエフェクタ制約セットを記憶可能である、請求項1に記載の制御装置。
  6.  プロセッサと、
     記憶部と、
     センサの出力に基づきロボットに回避動作を行わせる設定のための設定画面を表示させる表示装置と、を備え、
     前記表示装置は、前記ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約の設定のための画面を表示可能であり、
     前記画面は、ユーザの入力に少なくとも基づき前記エフェクタ制約を設定するためのものである、制御装置。
  7.  前記エフェクタ制約を入力可能な入力部を備える、請求項1~6の何れか1項に記載の制御装置。
  8.  前記記憶部は複数のエフェクタ制約を格納しており、
     前記複数のエフェクタ制約は、前記エフェクタのタイプおよび前記エフェクタの作業の対象のタイプの少なくとも1つにそれぞれ対応しており、
     前記プロセッサは、前記エフェクタの前記タイプに関する情報および前記対象の前記タイプに関する情報の少なくとも1つと、ユーザの入力とに少なくとも基づき前記エフェクタ制約を設定する、請求項1~7の何れか1項に記載の制御装置。
  9.  前記ユーザの入力は、前記エフェクタによる前記作業に関し前記ユーザが求める要求を設定するためのものである、請求項8に記載の制御装置。
  10.  前記エフェクタ制約は複数のエフェクタ制約要素を含み、
     前記エフェクタ制約は、前記複数のエフェクタ制約要素のうち少なくとも1つに優先度を設定可能であり、
     前記プロセッサは、前記優先度を含む前記エフェクタ制約を少なくとも用いて前記ロボットに前記回避動作を行わせる、請求項1~7の何れか1項に記載の制御装置。
  11.  前記エフェクタ制約は複数のエフェクタ制約要素を含み、
     前記複数のエフェクタ制約要素の各々について、ユーザによって指定された値を前記プロセッサに使わせる指定制約の設定又は前記プロセッサによる変更を許容する従属制約の設定を受付けるように構成されている、請求項1~7の何れか1項に記載の制御装置。
  12.  前記プロセッサは、前記エフェクタ制約を少なくとも用いて前記ロボットのモデルに前記回避動作を行わせるシミュレーションを行い、前記回避動作が基準を満たしているか否かを判定する、請求項1~11の何れか1項に記載の制御装置。
  13.  前記プロセッサは、前記回避動作が前記基準を満たしていない時に前記基準を満たすように前記エフェクタ制約を修正する、請求項12に記載の制御装置。
  14.  前記エフェクタ制約は、前記エフェクタの前記所定の基準座標から見た速度の制約、前記エフェクタの前記所定の基準座標から見た加速度の制約、前記エフェクタの前記所定の基準座標から見た角速度の制約、前記エフェクタの前記所定の基準座標から見た角加速度の制約、および前記位置または前記姿勢を3回以上時間微分した量に相当する値若しくは式の制約の少なくとも1つを設定可能である、請求項1~13の何れか1項に記載の制御装置。
  15.  プロセッサと、
     記憶部と、
     ロボットのエフェクタの位置および姿勢の少なくとも一方の所定の基準座標から見た変化の制約であるエフェクタ制約の設定画面を表示する表示装置と、を備え、
     前記設定画面は、ユーザの入力に少なくとも基づき前記エフェクタ制約を設定するためのものであり、
     前記プロセッサは、前記エフェクタ制約を少なくとも用いて前記ロボットのモデルに回避動作を行わせるシミュレーションを行い、前記回避動作が基準を満たしているか否かを判定する、コンピュータ。
  16.  前記プロセッサは、前記回避動作が前記基準を満たしていない時に前記基準を満たすように前記エフェクタ制約を修正する、請求項15に記載のコンピュータ。
PCT/JP2022/042399 2022-11-15 2022-11-15 制御装置およびコンピュータ WO2024105779A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/042399 WO2024105779A1 (ja) 2022-11-15 2022-11-15 制御装置およびコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/042399 WO2024105779A1 (ja) 2022-11-15 2022-11-15 制御装置およびコンピュータ

Publications (1)

Publication Number Publication Date
WO2024105779A1 true WO2024105779A1 (ja) 2024-05-23

Family

ID=91084214

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/042399 WO2024105779A1 (ja) 2022-11-15 2022-11-15 制御装置およびコンピュータ

Country Status (1)

Country Link
WO (1) WO2024105779A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001071285A (ja) * 1999-09-01 2001-03-21 Minolta Co Ltd 作業ロボット
WO2018092860A1 (ja) * 2016-11-16 2018-05-24 三菱電機株式会社 干渉回避装置
CN111399514A (zh) * 2020-03-30 2020-07-10 浙江钱江机器人有限公司 一种机器人时间最优轨迹规划方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001071285A (ja) * 1999-09-01 2001-03-21 Minolta Co Ltd 作業ロボット
WO2018092860A1 (ja) * 2016-11-16 2018-05-24 三菱電機株式会社 干渉回避装置
CN111399514A (zh) * 2020-03-30 2020-07-10 浙江钱江机器人有限公司 一种机器人时间最优轨迹规划方法

Similar Documents

Publication Publication Date Title
JP6807949B2 (ja) 干渉回避装置
US20150127151A1 (en) Method For Programming Movement Sequences Of A Redundant Industrial Robot And Industrial Robot
Borst et al. DLR hand II: Experiments and experience with an anthropomorphic hand
US10737396B2 (en) Method and apparatus for robot path teaching
Kruse et al. A sensor-based dual-arm tele-robotic system
US8958912B2 (en) Training and operating industrial robots
US9387589B2 (en) Visual debugging of robotic tasks
US10759051B2 (en) Architecture and methods for robotic mobile manipulation system
KR101581096B1 (ko) 다관절형 로봇의 제어 장치, 제어 방법 및 제어 프로그램을 기록한 컴퓨터 판독가능한 기록 매체
JP6931457B2 (ja) モーション生成方法、モーション生成装置、システム及びコンピュータプログラム
US9317032B2 (en) Robot and method for operating a robot
US10514687B2 (en) Hybrid training with collaborative and conventional robots
US20210001484A1 (en) Collaborative Robot System Incorporating Enhanced Human Interface
Gienger et al. Human-robot cooperative object manipulation with contact changes
Gorjup et al. An intuitive, affordances oriented telemanipulation framework for a dual robot arm hand system: On the execution of bimanual tasks
US9962835B2 (en) Device for dynamic switching of robot control points
JP2008207262A (ja) マニピュレータシステム
Leeper et al. Methods for collision-free arm teleoperation in clutter using constraints from 3d sensor data
Schraft et al. Man-Machine-Interaction and co-operation for mobile and assisting robots
WO2024105779A1 (ja) 制御装置およびコンピュータ
Kuan et al. VR-based teleoperation for robot compliance control
WO2024105777A1 (ja) 制御装置およびコンピュータ
JP7144754B2 (ja) 多関節ロボットおよび多関節ロボットシステム
Allspaw et al. Implementing Virtual Reality for Teleoperation of a Humanoid Robot
JP2020110884A (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム