以下に、本発明の実施の形態に係る干渉回避装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は本発明の実施の形態1に係る干渉回避装置を備えたロボットシステムの構成図であり、図1に示すロボットシステム100は、計測部1、干渉回避装置2、ロボット制御装置3およびロボット4を備える。図2は図1に示す干渉回避装置と干渉回避装置の周辺機器とを備えた生産システムの構成図であり、図2に示す生産システム200は、図1に示すロボットシステム100に加えて、情報統合端末5、コンベア制御装置6、加工機制御装置7およびロボット制御装置8を備える。
図2に示すようにロボット制御装置3には情報統合端末5が接続される。情報統合端末5は、不図示のクラウド上のサーバ、エッジサーバまたはPLC(Programmable Logic Controller)といった機器から情報を集めて配信する機器である。情報統合端末5には複数の周辺機器が接続される。複数の周辺機器としては、コンベア制御装置6、加工機制御装置7およびロボット制御装置8を例示できる。情報統合端末5には、コンベア制御装置6、加工機制御装置7およびロボット制御装置8のそれぞれから出力される情報が伝達され、情報統合端末5に伝達された情報は、ロボット制御装置3を介して干渉回避装置2に伝達される。干渉回避装置2では、後述する干渉チェックの際、当該周辺機器から伝達される最新の情報と、計測部1で計測された計測データ1aとが用いられる。なお図2では、情報統合端末5がロボット制御装置3を介して干渉回避装置2に接続されているが、情報統合端末5は干渉回避装置2に直接接続されている構成でもよい。
図2に示すロボット4は6自由度の多関節ロボットである。ロボット4は、ロボットメーカが製作するロボット本体部を構成するアーム部41と、アーム部41の先端に設けられたツール部42とを備える。ツール部42は、ハンド部43と、ハンド部43に取り付けられたジグ44と、ジグ44に取り付けられた計測部1とを備える。
計測部1は、部品箱9内の部品9aの位置および姿勢を計測するための計測機器であればよく、計測部1としては、部品箱9内の部品9aを撮像するカメラと、ハンド部43とその周辺機器とを撮像する画像センサであるビジョンセンサと、レーザ変位計と、非接触センサとを例示できる。ジグ44を介してハンド部43に設けられた計測部1は、部品箱9と干渉しないようにハンド部43と共に移動する。ここで計測部1はツール部に備える「ハンドアイ」の構成で説明するが、周辺機器を計測する手段として、周辺機器を俯瞰的に観測できる位置にジグ等で固定する方式も同様に実施することができる。
図2では、ロボット4による作業の一例として、部品箱9内に配置された複数の部品9aの中からロボットが1つの部品9aを取り出すビンピッキング作業の様子が示される。ただし実施の形態1に係る干渉回避装置2を用いたロボット4による作業は、ビンピッキング作業に限定されず、マテハン作業、キッティング作業または組立作業でもよい。このようにロボット4による作業が限定されない理由は、部品9aの状態に応じてロボット4の動作を変化させるとき、基本的にロボット4が同様の処理を行うためである。以下ではビンピッキング作業時における干渉回避装置2、ロボット制御装置3およびロボット4の動作を説明する。
ロボット4は、まずロボット制御装置3で実行されるプログラムに従い、ビンピッキング動作前の位置まで移動する。次に干渉回避装置2は、計測部1により部品9aの3次元位置および3次元姿勢を計測する。以下では、部品9aの3次元位置および3次元姿勢を、部品9aの3次元位置姿勢と称する場合がある。
干渉回避装置2は、計測部1で計測された計測データ1aをそのまま使うのではなく、3次元の点群、線、面、および色の情報を保持した3次元位置姿勢に変換してから用いる。計測データ1aから部品9aの3次元位置姿勢を計測する方法としては、レーザ、赤外線または音波を用いて計測された対象点までの距離に基づき3次元位置姿勢を計測する方式と、ステレオカメラで取得された3次元位置姿勢を計測する方法とを例示できる。なお計測部1は、干渉回避装置2においてピッキング対象の3次元位置姿勢情報を再現できる計測機器であればよく、前述したカメラ、ビジョンセンサ、レーザ変位計および非接触センサに限定されるものではない。また計測対象は部品9aだけでなく部品箱9および周辺機器を含めてもよく、干渉回避装置2は部品9a、部品箱9および周辺機器を計測して得られた計測データ1aを用いて干渉チェックに活用してもよい。
次に計測データ1aを用いて、ピッキング対象を決定する方法について説明する。ピッキング対象の決定では、計測データ1aから候補点を複数選出するプロセスと、複数選出された候補点の中から1つの候補点を選定するプロセスとを実行することが一般的である。前者のプロセス、すなわち計測データ1aから候補点を複数選出する手段には大きく分けて2種類の手段ある。
候補点を複数選出する1つ目の手段は、予め図面モデルまたは3Dコンピュータ支援設計(CAD:Computer Aided Design)といった部品モデルを干渉回避装置2に格納しておき、またはピッキング対象の3次元位置姿勢情報の参照データを干渉回避装置2に格納しておき、計測された計測データ1aを部品モデルまたは参照データに照合することで、最も確からしいピッキング対象の姿勢を推定する方法である。以下では、この推定方法をモデルマッチングと称する。
干渉回避装置2は、推定したピッキング対象の姿勢を用いて、予め定められたピッキング対象とツール部42との位置関係とから、ハンド部43が部品9aを把持する把持点を決定する。ここで、予め定められたピッキング対象とツール部42との位置関係については、事前にユーザによって教示作業で与える場合と、ピッキング対象の重心位置および持ち易さからオフラインでユーザが決定する場合とがある。
候補点を複数選出する2つ目の手段は、モデルマッチングを不要とする方法であり、以下ではモデルレスマッチングと称する。モデルレスマッチングでは、ピッキング対象の部品モデルが不要であり、計測された点群、線および面といった特徴量から、ハンド部43が部品9aを把持し易い条件を満たす空間が探索され、把持点が決定される。把持し易い条件とは、ハンド部43が備える指の開閉時に指先間で挟み込みが可能な空間を把持領域としたとき、点群の中で把持領域に包含可能な部位である。把持領域に包含可能な部位であれば全て生成することができるため、把持点の個数を制限する場合、把持領域に関して、指の開閉方向に対して部品9aを安定して把持できるように、把持領域に包含される点群の形状について、制約条件を付けて数を減らすことができる。制約条件としては、ハンド部43が備える指と対向し、かつ、平行である場合と、ハンド部43が備える指をさしこむ方向に深さD[mm]にわたり障害物が無い場合とを例示できる。
モデルレスマッチングでは、モデルマッチングと異なり、複数の把持対象の物体のそれぞれの境目が曖昧となる問題がある。従って点群情報は、クラスタリングという処理によって、把持対象の物体が複数の物体のそれぞれの境目でグルーピングされることが多く、これにより複数の物体を区別して重心位置の目安を算出することが可能となる。
次に、前述した「複数選出された候補点の中から1つの候補点を選定するプロセス」について説明する。一般的には、候補点を1つ選定するルールとしては、把持し易い指標を設けて、これに対して最も把持し易い部品を選定することを例示できる。把持し易い指標としては、過去の実績から統計的にデータベース化された指標と、重力と力のつりあいと重心位置といった物理法則を考慮して導き出されるルールに基づいて決定される指標とを例示できる。
複数選出された候補点の中から1つの候補点を選定する簡単な指標としては、部品箱9に配置された部品9a群の中から1つの部品9aを取り出すとき、部品9a群の上側に配置されているものを候補点にすることが考えられる。これは、部品9a群の下側に配置されている部品9aよりも部品9a群の上側に配置されている部品9aを把持する方が、部品9a群を崩すことが少なく、結果としてピッキング対象とした部品9aを把持する際に部品9aを取り損ねる要因を低減できるためである。また大量の実行データから統計的に優先順位を決定することもできる。すなわち把持が成功し易い高さおよび方向が分かっている場合、その把持点を優先的に選定することもできる。
干渉回避装置2は、選定された1つの候補点について、ツール部42が部品箱9または周辺機器に干渉する可能性があるか否かの干渉チェックを実施する。ここで候補点とは「ツール部が部品を把持する座標点情報」を示しており、例えばツール部の位置(X,Y,Z)および姿勢(例えば姿勢を表す3つの角度の組で表されるオイラー角表現)の情報を含む。すなわち干渉回避装置2は、選定された候補点にツール部42が移動したとき、ツール部42が部品箱9に干渉するか否か、またツール部42が前述した周辺機器に干渉するか否かを、ビンピッキング動作前に確認する。具体的には、干渉回避装置2は、把持点におけるツール部42が占める領域において、ツール部42が部品箱9または周辺機器に干渉するか否かを確認し、または、ツール部42の移動方向に延長された軌道を含めた領域において、ツール部42が部品箱9または周辺機器に干渉するか否かを確認する。
一般的に部品箱9、部品9a、アーム部41およびツール部42はモデル化される。モデルは、3次元空間上の占有体積と2次元平面上の占有面積とで表現されるものである。モデル化としては、部品箱9、部品9a、アーム部41およびツール部42のそれぞれの詳細な形状を3D−CAD通りにモデル化する場合と、多面体、直方体、円筒または球といったプリミティブと呼ばれる簡易なモデルでモデル化する場合とを例示できる。前者は、干渉チェックの判定精度が向上するものの、計算コストが高いためリアルタイム計算に向いていない。後者は、計算コストが低いためリアルタイム計算に向いているものの、モデル判定数が増えると計算コストが増加し、判定精度が低いため誤判定される可能性があり、また判定精度が低いため過度に安全な判定がなされる可能性がある。
干渉回避装置2は、干渉チェック判定において干渉が生じる可能性がある場合、予め設定されたロボット姿勢の許容範囲である許容姿勢範囲に基づいて、ツール部42が部品箱9から遠ざかる方向に指先姿勢を変更する。これによりツール部42が部品箱9に干渉することを回避しながら把持点を決定することができる。図2に示すように部品箱9に配置される複数の部品9aは、それぞれの位置と向きが異なるため、前述した許容姿勢範囲はピッキング対象毎に変化するが、一般には一定角度分の姿勢が変化してもよいという制約下においては、干渉しない姿勢が探索される。
このように干渉回避装置2は、ピッキング候補を生成する機能と干渉チェック機能とを備え、ツール部42が部品箱9または周辺機器に干渉する可能性が無い場合、ピッキング動作を実行する。一方、干渉する可能性がある場合、干渉回避装置2は、前述した許容姿勢範囲に基づいて、把持点における姿勢を修正し、これに対して再度干渉チェックを行う。
ここで、把持が成功し易い把持点から干渉が生じない姿勢を探索し、その姿勢を新しい把持点として定義して、その把持点にツール部42を移動させて把持させる場合、従来の干渉回避装置では、以下の2つの課題が生じる。
1つ目の課題は、従来の干渉回避装置では把持時の接近方向が必要軌道として考慮されていないため、従来の干渉回避装置は把持成功率を下げている点である。
ピッキングする部品9aが突起を有する場合、部品9aの把持点へツール部42が接近する方向と、部品9aに対するツール部42の姿勢、すなわちツール部42の相対位置とに対して、点としての合致するときの位置関係だけではなく、把持に至るまでの軌道を考慮しなければ、把持成功率をいたずらに下げてしまうことがある。すなわち、ツール部42を動かす方向に制約が無い場合には把持成功率が低下する可能性は低いが、ツール部42を動かす方向において、ツール部42が部品箱9または周辺機器に干渉する可能性があるとき、または特定の方向から把持点に至らなければ部品9aが動く可能性があるときには、把持成功率が低下する可能性が高い。
把持成功率が低下する可能性が高い場合としては、部品箱9の形状が非対称であり、または周辺機器の形状が非対称であるためツール部42が特定の位置で干渉し易い場合と、アーム部41の指形状が平板形状ではなく折れ曲がったL字形状である場合と、部品9aの端面が折れ曲がっている場合と、部品9aの形状が非対称であり許容姿勢範囲が狭い場合とを例示できる。
このとき、部品9aの把持点におけるツール部42の姿勢と、部品9aの把持点に接近するツール部42の姿勢とが異なる場合がある。把持姿勢に関してツール部42を一定方向に移動する方向に対して干渉チェックすることは、把持軌道に対する考慮が無いため汎用的ではない。一方、干渉を避けるためツール部42の姿勢を許容範囲内で回転させた場合、干渉チェックを行う際に把持成功率がどの程度悪化するかの評価は、把持点に対しては実行できるが、把持軌道に対しては実行できない。
2つ目の課題は、把持の成功率を高めながら干渉を回避する軌道を考える上で、干渉しない経路が存在するか否かを含めた形で、把持点を1つ決めるための方法が従来技術に開示されていない点である。従来の干渉チェックでは、把持点のみに着目している。このため、把持の成功率が高くかつ干渉の可能性が無い把持点を1つの位置として算出するところまでが課題であり、把持点に至るまでの移動は、部品9aを把持しているときのツール部42の姿勢と同じ姿勢でツール部42を部品箱9の上方から下降させるものである。しかしながら、モデルを詳細化するに従い、把持点における単純な干渉の有無だけをチェックする方法では、把持に至る軌道で見た場合、制約が多く、解が少なくなってしまうばかりか、把持成功率を著しく低下させる可能性がある。
図3は図1に示す部品箱の上方に位置するロボットハンドが把持対象の物体に接近するときの把持姿勢と第1の接近軌道とを説明するための図である。なお、第1の接近軌道とは、生成された把持姿勢で、ロボットハンドのツール部が、把持対象をずらすことなく把持対象に接近できる軌道であり、把持接近軌道とも呼ぶ。図3に示す部品箱9は、床面50に接する平坦な底面部91と、水平方向における底面部91の端部の内、一方の端部から鉛直方向に延びる一方の測面部92aと、水平方向における底面部91の端部の内、他方の端部から鉛直方向に延びる他方の測面部92bと、鉛直方向における測面部92bの端部の内、上側の端部から水平方向に延びる上面部93とを備える。
上面部93の水平方向における長さは、底面部91の水平方向における長さよりも短い。従って、部品箱9を構成する底面部91の上方には、開口部94が形成される。開口部94は、上面部93の測面部92a側の端部と、測面部92aの上端の端部との間に設けられている。このように図3に示す部品箱9は、その左側上端部分が部品箱9の内側に突き出た形状である。
図3には、ハンド部43の把持姿勢を説明するために便宜上3つのハンド部43A,43B,43Cが示されている。ハンド部43A,43B,43Cは何れも図1に示すハンド部43に対応する。ハンド部43Aは把持姿勢Aの状態にあるハンド部43に対応し、ハンド部43Bは把持姿勢Bの状態にあるハンド部43に対応し、ハンド部43Cは把持姿勢Cの状態にあるハンド部43に対応する。
部品箱9には複数の部品9aが配置され、複数の部品9aの中で最も上に配置された部品9a1は、ハンド部43A,43B,43Cの把持対象となる物体である。部品9a1は、長手片9a11と、長手片9a11の端部から直角方向に延びる短手片9a12とを備えるL字形状である。部品9a1以外の複数の部品9aも部品9a1と同様の形状である。部品9a1は、長手片9a11の端部が、測面部92aと対向し、長手片9a11の底部が、部品9a1の下方に存在する部品9aと接している。また部品9a1は、短手片9a12の端部が、部品9a1の下方に存在する部品9a側とは反対側に位置している。
把持姿勢Aのハンド部43Aは、把持姿勢B,Cのハンド部43B,43Cよりも上面部93の近くに位置している。実線の移動軌跡A1は、ハンド部43Aの先端部の移動軌跡を表す。図3では、移動軌跡A1で移動するハンド部43Aが部品9a1の短手片9a12を把持するように部品9a1に接近する。ところが移動軌跡A1で移動するハンド部43Aおよび計測部1は、上面部93に干渉するおそれがある。
ハンド部43Cは部品9a1の長手片9a11を把持することができるため、把持姿勢Cは部品9a1の把持成功率を高める上では望ましい姿勢であるが、測面部92aと重なる位置に配置されているため、測面部92aに干渉する。
点線の移動軌跡B1は、ハンド部43Bの先端部の移動軌跡を表す。図3では、移動軌跡B1で移動するハンド部43Bが部品9a1の短手片9a12を把持するように部品9a1に接近する。移動軌跡B1で部品9a1に接近するハンド部43Bおよび計測部1は、上面部93および測面部92aに干渉するおそれがない。ところが移動軌跡B1で移動するハンド部43Bが部品9a1を取り出すときの把持成功率は、移動軌跡A1で移動するハンド部43Aが部品9a1を取り出すときの把持成功率よりも低い。これは、部品9a1の短手片9a12の一部を把持するハンド部43Bに比べて、ハンド部43Aは、部品9a1の短手片9a12と長手片9a11とを同時に把持するためである。
このように、部品箱9に配置された複数の部品9aの中から部品9a1を取り出すときの把持成功率を高めるためには、把持姿勢Bよりも把持姿勢Aおよび把持姿勢Cが望ましい。ただし把持姿勢Cは干渉チェックにより干渉有りと判定されるため把持点候補から除外され、把持点候補には把持姿勢Aおよび把持姿勢Bが残る。干渉の有無においては、第1の接近軌道を把持点候補と同じ姿勢とすることを考えると、把持姿勢Bを把持点候補として選定することが望ましい。ところが把持姿勢Bは干渉しないことに重きが置かれた姿勢であるため、把持成功率を高める上では、把持成功率と干渉の有無とをバランスよく考慮する事が重要である。従って干渉をしないという条件をどのようにとらえるかが重要な点になる。
実施の形態1に係る干渉回避装置2は、図3に示す把持姿勢Aが選ばれるように、把持に用いるツール部42毎の第1の接近軌道を定義し、ツール部42が干渉する可能性が無い第1の接近軌道を生成し、生成した第1の接近軌道の起点とピッキング動作開始点とを結ぶことで、干渉回避できる第2の接近軌道を探索し、この解を有する場合の有効把持姿勢である把持点候補を選定して、選定した軌道を接続して干渉回避軌道A2とする。なお、第2の接近軌道とは、第1の接近軌道の端点(起点)から、ロボットのアーム部およびツール部が周辺機器に干渉することなく把持対象に接近する軌道である。
従来の干渉回避装置では、部品の把持点に至るツール部の移動軌跡が考慮されずに把持点のみが決定されるため、図3に示す把持姿勢Aが選ばれない。これに対して実施の形態1に係る干渉回避装置2では把持姿勢Aが選ばれる。
以下では実施の形態1に係る干渉回避装置2の構成および処理内容を具体的に説明する。まず図4を用いて実施の形態1に係る干渉回避装置2の構成の概要を説明する。図4は本発明の実施の形態1に係る干渉回避装置の構成図である。
図4に示す干渉回避装置2は、計測部1から出力される計測データ1aと、ロボット制御装置3を介して入力されるモデル情報3aと、ロボット制御装置3から出力される把持前後のロボットプログラム3bと、ロボット制御装置3を介して入力される設定情報3cとに基づき、干渉回避軌道2aを生成して出力する。
モデル情報3aは、アーム部41、ツール部42、周辺機器および部品箱9に関するデータである。具体的には、モデル情報3aは、3次元空間上におけるアーム部41、ツール部42、周辺機器および部品箱9の占有領域を定義するための情報として、3D−CADで表現された各幾何情報であり、またはアーム部41、ツール部42、周辺機器および部品箱9のそれぞれを包含するプリミティブとして表現されたものである。プリミティブとしては、球体とその中心位置とを例示できる。モデル情報3aを用いることで、アーム部41、ツール部42、周辺機器および部品箱9の相互間の干渉の有無の確認が可能となり、またアーム部41、ツール部42、周辺機器および部品箱9の相互間の相対距離演算とが可能となる。
把持前後のロボットプログラム3bは、図1に示すロボット制御装置3に記憶されたロボット言語プログラムである。ロボットプログラム3bは、ロボット動作に関する位置を規定する情報であればよく、ロボット制御装置3に記憶されたものに限定されず、不図示のパソコンに記憶されたロボット動作に関する位置を規定する情報でもよい。
設定情報3cは、予め設定されたロボット姿勢の許容範囲である許容姿勢範囲を設定する情報である。
干渉回避装置2は、計測データ1a、モデル情報3aおよびロボットプログラム3bに基づき複数の把持点候補10aを算出する把持点候補生成部10と、複数の把持点候補10aと設定情報3cとに基づき干渉回避軌道2aを算出する軌道算出部11とを備える。
把持点候補10aは把持点候補情報および把持拘束情報を含む。把持拘束情報は、把持を成功させるためにツール部42と把持対象の物体との位置関係を予め決定しておき、位置関係を達成する点を目標地点として把持対象の物体から一定距離離れた位置からツール部42を接近させて把持対象の物体を把持する場合の拘束条件を示す。把持対象の物体から一定距離離れた位置は把持接近を開始する位置であり、把持点候補からツール座標系のZ軸方向に10mm離れた位置を例示できる。ツール座標系は、ツール部42に設定する座標系を示す。ツール座標系のZ軸方向は、ハンド部43の指先の開閉を行う部分のストロークの中心点を通り、かつ、ハンド部43の指先方向と平行な軸上に設定する。ツール座標系のX軸方向およびY軸方向は、ユーザが使い易いように決定される。
把持拘束では、まずツール部42と把持対象の物体とに関して目標となる位置姿勢関係が決定される。物体の把持を実施する場合、最も望ましい把持姿勢を、予めツール部42と把持対象の物体との位置関係として定義しておく。最も望ましい把持姿勢は、ツール部42を用いて把持対象の物体を把持する操作のデータベースに基づいて決定できる。データベースには、実際の実験結果で導出された結果を用いてもよいし、物理シミュレーションまたはオフラインシミュレーションの結果を用いてもよい。
ツール部42と把持対象の物体との位置姿勢関係には、許容される姿勢誤差が存在し、把持が成功した位置姿勢関係の統計的な平均値および中央値を定義できる。すなわちツール部42と把持対象の物体との予め定められた望ましい位置姿勢関係は、把持が成功する代表的な位置姿勢関係として予め決定されたものである。
以下に干渉回避装置2の動作を説明する。ロボット4が物体を把持するための位置または軌道を計算するため、計測部1では把持対象の物体の状態が計測される。物体の状態としては、部品9aの位置および姿勢を例示できる。物体の状態を計測して得られた情報から、ロボット座標系に対する把持対象の物体の位置姿勢情報が得られる。ロボット座標系とは、ロボット4を基準とした座標系であり、ロボット4を位置制御する際に用いる座標系のことである。通常、ロボット4の据付面に鉛直な方向にZ軸が定義され、第1関節の軸と据付面とが交わる点に原点を持ち、第1関節の可動範囲の中心位置にX軸が定義される。
把持点候補生成部10では、把持対象の物体の位置姿勢情報を取得するため、一般に画像処理技術および位置推定処理が行われる。把持点候補生成部10では、計測部1と計測対象との間の距離情報と、当該距離情報を3次元的にプロットした点群情報と、計測対象の表面のテクスチャ情報とを入力として、予め用意されたモデルとのマッチング、または時刻の違う取得情報間の関係から、位置推定処理としてSLAM(Simultaneous Localization And Mapping)を適用し、また画像処理技術としてモデルマッチング技術を用いて、把持対象の物体の位置姿勢情報が算出される。
把持点候補生成部10は、算出した把持対象の物体のロボット座標系からみた位置姿勢robot_T_workと、予め決定したツール部42と把持対象の物体との目標位置姿勢tool_T_workとを入力として、ロボットが把持を実現するためのツール部42の目標位置姿勢robot_T_toolを決定する。
ここで、i_T_jという表現は、i座標系からみたj座標系への同次変換行列Tを示す。同次変換行列Tとは、i座標系とj座標系との間のX軸,Y軸,Z軸の関係を表す3行3列の回転行列Rと、i座標系からみたj座標系原点の位置関係を表す3要素の並進ベクトルp(=(x,y,z))から下記(1)式で表現される4行4列の行列である。ただし下記(1)式の0は1行3列で0からなるゼロ行列を表している。
T=(R p
0 1)・・・(1)
回転行列Rは一般にR=(R11,R12,R13;R21,R22,R23;R31,R32,R33)からなる3行3列の行列で、相対的な回転を行列で表現している。また、pは3行1列のベクトルであり、ある参照座標系からみた対象となる点の位置ベクトルを示している。
把持点候補生成部10は、同次変換行列i_T_jを用いて目標位置姿勢robot_T_toolを計算することで、把持動作のためのロボット指先位置の目標位置Pggを決定する。目標位置Pggはツール部42の目標位置姿勢robot_T_toolをロボット指令値の表現に置き代えたものである。ロボット指令値の表現としては、並進位置X,Y,Zと、X,Y,Z各軸周りの回転量A,B,Cとを例示できる。目標位置姿勢robot_T_toolは下記(2)式で求めることができる。
robot_T_tool=robot_T_work*(tool_T_work)^−1・・・(2)
ロボット指先位置の目標位置Pggは、把持対象の物体とツール部42との間の望ましい関係が多様である場合、複数点候補が存在する。このため以下では複数の目標位置Pggの候補点を、把持点候補Pgg(i)として表現する。
把持点候補生成部10は、ツール部42と把持対象の物体との目標位置姿勢関係に基づいて、把持点候補Pgg(i)から一定距離離れた位置を算出し、その位置を把持接近開始点Psg(i)としたとき、把持点候補毎の把持接近開始点Psg(i)から把持点候補Pgg(i)までの補間方法と、それぞれの位置姿勢とを記憶する。すなわち、把持のみに着目した場合、把持を成功させるために把持対象の物体とツール部42との位置関係の変化(軌道)を記述した軌道が第1の接近軌道である。当該第1の接近軌道は、把持接近開始点Psg(i)から把持点候補Pgg(i)までの軌道である。把持接近開始点Psg(i)は、把持動作を開始する点である。
把持動作には、ツール部42と把持対象の物体の目標位置姿勢に到達する前に、ツール部42が把持対象の物体または周辺機器に触れることで把持の失敗を避ける目的で、移動方向および移動量に制約が与えられたツール部42を使った把持のみを含むものとする。ここでは、ツール部42が把持対象の物体の目標位置姿勢に到達するまでの軌道において、把持対象の物体の目標位置姿勢から一定距離離れたツール部42の軌道は、把持の成功または把持の失敗に寄与しないとし、把持動作以外の移動として、第2の接近軌道として区別して取り扱われる。すなわち、第2の接近軌道は、第1の接近軌道と違う制御方法あるいは動作設定を選択することができる。例えば動作速度を上げるために、第2の接近軌道は速度設定を第1の接近軌道よりも高速に設定することができる。あるいは第2の接近軌道は、第2の接近軌道の間のみ関節補間を選択して動作速度を向上させる事もできる。ここで関節補間とは、モータ軸毎に目標地点の角度を目標角度として設定して制御する補間方法である。関節補間では、手先軌道を設計した軌道に制御できない代わりに、各軸モータを制御する制約が少なくなり高速に動かすことができる。第2の接近軌道については後述する。
第1の接近軌道に関連する位置関係、距離および姿勢変更は、把持の成功または把持の失敗に関するデータベースを用いて、学習的に獲得された位置関係から求めることもでき、また幾何的な拘束関係から同様の関係を解析的に導いてもよい。すなわち、把持接近開始点Psgを決定する方法がツール部42のアーム方向以外の場合もある。具体的には、把持点候補Pgg(i)を入力として、把持点候補Pgg(i)を円弧の端点とする半径Rの円弧を描きながら、当該端点から一定距離離れた位置を算出し、その位置を把持接近開始点Psgと呼ぶこともできる。また、把持対象の物体の表面上に凹凸がある場合、ハンド部43の指先と把持対象の物体を把持する目標位置姿勢関係に到達するまでに、物体表面上の凹凸部を避けるようにハンド部43を動かす一定の軌道が与えられる場合もある。
図5を用いて把持点候補Pgg(i)、把持接近開始点Psgおよび第1の接近軌道を説明する。図5は本発明の実施の形態1に係る干渉回避装置において第1の接近軌道および把持接近開始点の定義方法の例を示す図である。図5に示すように把持接近開始点Psgは、ハンド部43の指先の通過すべき動作点に対応している。把持点候補Pgg(i)を第1の接近軌道の終端点として、ハンド部43の指先が部品9aの凸部12との干渉を避けながら部品9aから離れる第1の接近軌道13の起点として求めることができる。ここで、第1の接近軌道は、接近して把持した後に取り出すように移動する軌道にも用いることができる。特に、取り出す時のことを考える場合は、起点として最短距離の移動でワークを取り出すことのできる位置で把持姿勢から離れた点を指定した第1の接近軌道を指定することができる。例えば、部品の把持後に他の部品から十分離れて持ち上げが成功するのに最低限必要な移動量を最短距離の移動として定義することができる。
把持の成功または失敗に関するデータベースは、物理シミュレーションを用いて試行を行う場合と、実機を用いて実際に実験を行う場合との何れでも実現可能である。先に述べたような優先順位に基づいて作業の把持点候補の優先順位を予め決めておく。優先順位としては、過去のデータベースに基づいて成功率の高い把持姿勢を選定し、または部品箱9の上側に配置された部品9aを優先的に選定することを例示できる。
軌道算出部11は、設定情報3cと複数の把持点候補10aとを用いて、把持姿勢生成部で把持点を選び、選ばれた把持点に対して把持拘束を満たす第1の接近軌道を生成する。さらに第1の接近軌道の起点である把持接近開始点に接続する形で、箱等に干渉しない軌道を第2の接近軌道として生成する。最後にこれら第1の接近軌道と第2の接近軌道を繋いだ形として干渉回避軌道を演算し、干渉回避軌道2aとして出力する。従来の干渉回避装置は、干渉回避軌道を演算せずに把持点候補の演算のみ行うが、実施の形態1に係る干渉回避装置2では、把持点候補以外に、把持点候補10aと第2の接近軌道とを用いて、これらを合わせた形で干渉回避軌道全体を演算する。
以下では干渉回避軌道2aを生成するための軌道算出部11の構成および動作を説明する。
図6は図4に示す軌道算出部の構成図であり、図7は図6に示す干渉チェック部の動作を説明するための図であり、図8は図6に示す把持姿勢生成部の動作を説明するための図であり、図9は図6に示す第1の接近軌道生成部の動作を説明するための図であり、図10から図13は図6に示す第2の接近軌道生成部の動作を説明するための第1から第4の図である。図14は図6に示す回避軌道生成部の動作を説明するための図である。
図6に示す軌道算出部11は、把持姿勢生成部21、第1の接近軌道生成部22、第2の接近軌道生成部23、回避軌道生成部24および干渉チェック部25を備える。
把持姿勢生成部21は、複数の把持点候補10aの中から部品箱9を含む周辺機器との干渉チェックをした後、干渉する可能性が無い有効把持姿勢21aを把持点候補として生成する。複数の把持点候補10aには図8に示すように複数の把持姿勢A,B,Cが含まれ、ツール部42が取り得る姿勢は、これらの複数の把持姿勢A,B,Cの中から、干渉チェック部25における処理を経て生成される。なお、把持点候補は、ロボットツール部の位置あるいは姿勢の何れか違うものに対して候補点と呼ぶ。
図6に示す干渉チェック部25は、例えば、図7に示すロボットハンドモデル101と周辺機器モデル102を、干渉チェックを行う対象として、ロボットハンドモデル101と周辺機器モデル102との間で相対距離を計算して、相対距離が基準値以下であるか否かを判定する。また、干渉チェック部25は、例えば、図7に示すロボットハンドモデル101と周辺機器モデル102を、干渉チェックを行う対象として、ツールモデル103と周辺機器モデル102との間で相対距離を計算して、相対距離が基準値以下であるか否かを判定する。干渉チェックを行う際には、干渉チェック部25は、モデル情報として、モデルの幾何形状情報および位置姿勢情報を入力し、干渉しているか否かの判定結果と、計算されたモデル間の相対距離とを含んだ、干渉チェック判定情報を出力する。幾何形状情報は、属性、寸法などに関する情報であり。属性に関する情報は、形状特性、プリミティブ形状、多面体、自由形状などの情報である。プリミティブ形状は、球、直方体、円筒、円錐などの形状である。多面体は、3D−CAD(three Dimensional Computer Aided Design)でフォーマットされた三角パッチ面で囲まれた多面体である。自由形状は、点群で定義された点群集合である。寸法は、球であれば半径Rであり、円筒であれば半径Rと長さLとである。なお、干渉チェック部25は、生成軌道の各時刻におけるチェックを行う必要がある。干渉チェック部25は、軌道に対して時刻毎のモデル情報を入力し、軌道全体で干渉がないか演算する。計算コストを下げるために、起点と終点の内、代表的な姿勢数点のみを評価する方法がある。他にも、計算コストを下げるために、軌道起点のロボットアームおよびロボットハンドモデルと、軌道終点のロボットアームおよびロボットハンドモデルとを、空間的に内挿した幾何モデル、例えば多面体などを生成し、干渉の有無を評価する方法などがある。
図6に示す第1の接近軌道生成部22は、把持姿勢生成部21で生成された有効把持姿勢21aに対応する把持制約を当てはめて有効第1の接近軌道22aを生成する。干渉チェック部25では有効第1の接近軌道22aに対して干渉チェックが行われる。図9には、把持姿勢生成部21で生成された有効把持姿勢A’,B’と、有効把持姿勢A’に接近制約を考慮した第1の接近軌道A1’と、有効把持姿勢B’に接近制約を考慮した第1の接近軌道B1’とが示される。この場合、把持対象である部品9a1を確実に把持するためには、部品9a1から一定距離離れた位置からツール部42の接近動作を開始させて、ツール部42の先端が部品9a1の下に潜り込むような動作を実施する必要がある。
図9に示すように、第1の接近軌道A1’で動作するツール部42は部品箱9に干渉する可能性がある。そのため、有効把持姿勢A’に対応する第1の接近軌道A1’を生成せず、有効把持姿勢B’に対応する第1の接近軌道B1’を生成する方が望ましい。また第1の接近軌道生成部22の前段に把持姿勢生成部21が設けられているため、第1の接近軌道生成部22は全ての把持点候補に対して有効第1の接近軌道22aを演算する必要が無く、計算効率が向上する。
以下では、把持点候補に対するツール部42側の把持制約について説明する。把持制約とは、作業の成功率を上げるために導入する把持点候補までのツール部42の移動軌道を規定するものである。把持点に関するツール部42の目標位置姿勢を変更する場合、ツール部42の目標位置姿勢は、ハンド部43の指先の把持形態、機構および材質といった変動条件の影響も受けるため、生産システム200を構成する機構毎に把持成功率を上げる方法が異なる。第2の接近軌道生成部23は、干渉回避軌道を生成する際、ハンド部43の指先に関する制約条件を考慮し、把持姿勢だけではなく、把持に関する中間軌道を拘束条件として考慮する。中間軌道は、有効第1の接近軌道の起点である把持接近開始点Psgとピッキング動作の開始点とを結ぶ軌道である。ピッキング動作の開始点には、対象となる部品の入った棚や箱(周辺環境の一部)の上空か、アームやハンドと周辺環境が干渉が生じない程度に十分離れた点が選ばれる。
図10に示すように開閉グリッパ式のハンド部43が用いられている場合、ハンド部43を閉じ切る方法がエアー式であれば、把持速度は空気圧力で決まり、ハンド部43が設置される工場で用いられるエアーの圧力は一定値であることが多いため、把持速度は一定値となる。このとき、把持速度が速すぎる場合、ハンド部43から部品が落ちてしまうリスクがある。そのようなリスクを防ぐために、ハンド部43が部品9a1の下側に触れてから部品9a1の上側に触れるといった把持点候補の考え方は、ハンド部43の構成により変わる。なお図10では、ハンド部43が部品9a1に接近する理想アプローチ方向14と、ハンド部43が部品9a1を把持可能な許容アプローチ方向15とが示される。
図11では、図10に示す開閉グリッパ式のハンド部43の代わりに、吸着式のハンド部43−1が用いられている。ハンド部43−1には吸着パッド43−1aが設けられ、吸着パッド43−1aの硬さおよび吸着力によって、ハンド部43−1の理想アプローチ方向14が変化する。特に吸着パッド43−1aは、部品9a1の表面に対して鉛直方向にアプローチした方が望ましいため、図10に示すハンド部43を用いる場合に比べて、許容アプローチ方向15が狭い。これを考慮すると、把持成功率に寄与する把持前後の接近軌道を、干渉チェックと共に不用意に変化させることは望ましくない。
以上のように、ここまでは把持点候補に対するツール部42側の制約条件について述べた。次に把持点候補に対する部品9a1側の制約条件について述べる。
モデルがある場合、モデル情報3aを用いたモデルレスマッチングにより複数の部品9aの各々が軽量であることを事前に把握できる。このとき、図12に示す把持点候補17に対して、偶力が発生し、また不図示のハンド部43の指先で部品9aを弾いてしまわないようにするため、把持点候補17に対して、距離を含む許容進行ベクトル18が定義される。許容進行ベクトル18は、ベクトルの大きさが幾何的に把持点候補17よりも進んでよい距離と、把持点候補17にかけてよい力の大きさとを示す。すなわち把持点候補17では、把持現象が生じるためにかけてはいけない負荷の上限を規定している。
退避方向については、図13に示すように、距離を含む許容退避ベクトル19が定義される。許容退避ベクトル19は、把持位置にツール部42を移動させて把持を行った場合、どの程度ならばハンド部43を引き上げてよいかを示しており、ベクトルの幅は、何れの方向であれば他の物体への影響を少なくして引き上げられるかを指標化したものである。これらの把持拘束を満たす最も移動量が少ない軌道が、有効第1の接近軌道22aとして定義される。
第2の接近軌道生成部23は、第1の接近軌道生成部22で生成された有効第1の接近軌道22aを通過する干渉回避軌道を検討する上で、有効第1の接近軌道22aの開始点Psgとピッキング動作の開始点とを結ぶ中間軌道を生成する。ここで第2の接近軌道23aとは、有効第1の接近軌道22aに対して、把持動作の成功率に直接関わりが無く、自由空間の移動について区別するために定義された軌道である。そのため、始点は様々であるが、終点は必ず有効第1の接近軌道22aの開始点になる。
第2の接近軌道生成部23では、有効第1の接近軌道22aの起点の位置姿勢に対して、できるだけ姿勢変化の少ないピッキング動作開始点姿勢を指定することで、ツール部42を高速に動作させることができる。また干渉回避軌道の生成については、各軌道を生成する場合の干渉を避ける軌道探索は、デカルト座標で実施してもコンフィギュレーション空間で実施してもよい。オフラインで探索的に軌道を探す場合、一般に知られる探索方法を活用することができる。当該探索方法としてはRRT(Rapid Random Tree)を例示できる。
図14に示す第2の接近軌道23aは、ロボットハンドモデル101およびツールモデル103が部品箱9の周辺機器モデル102と干渉しないように、ロボットハンドモデル101およびツールモデル103が有効第1の接近軌道である第1の接近軌道B1’の開始点に移動するような干渉回避軌道である。
図6に示す回避軌道生成部24は、把持姿勢生成部21で得られたツール部42の有効把持姿勢21aと、第1の接近軌道生成部22で得られたツール部42の有効第1の接近軌道22aと、第2の接近軌道生成部23で得られたツール部42の第2の接近軌道23aとを繋ぎ、干渉回避軌道2aとしてロボット制御装置3に出力する。ロボット制御装置3は、干渉回避軌道2aに基づきビンピッキング動作を実行する。なお、軌道算出部11では、有効把持姿勢21a、有効第1の接近軌道22aおよび第2の接近軌道23aがそれぞれ複数出力され、組み合わせが複数存在する場合には、評価関数を定義して、評点が閾値を超え最も点数が高いものを実行するような方法をとることが出来る。評価関数としては、干渉回避軌道2a全体の移動に要する時間、すなわちロボットの総作業時間が最小化するような軌道を選択することができる。また、評価関数としては、ロボット動作に必要な電流の値に基づいて算出されるエネルギー消費量などを入力として、エネルギー消費量が最小化するよう評価値を算出することが出来る。評価関数の方法は、これらに限定するものではない。
図15は本発明の実施の形態1に係る干渉回避装置の動作を説明するためのフローチャートである。干渉回避装置2は、計測データ1aに基づき複数の把持点候補10aを算出し、算出した複数の把持点候補10aの中から干渉する可能性が無い有効把持姿勢21aを把持点候補として生成する(S1)。干渉回避装置2は、生成した把持点候補に対応する有効第1の接近軌道22aを生成し(S2)、有効把持姿勢21aおよび有効第1の接近軌道22aに対して干渉チェックを実施する(S3)。
干渉チェックの結果、干渉する可能性が有る場合(S4,No)、干渉チェック部25は、部品箱9と干渉する可能性のあるツール部42の一部を生成し、許容姿勢範囲において干渉をなくすために最も小さい姿勢変化をさせた場合の修正した把持点候補を探索し、干渉の可能性の有無を判定する(S5)。
許容姿勢範囲に他の解が無い、すなわち許容姿勢範囲において干渉の可能性が無くなる演算結果が得られない場合(S5,No)、干渉回避装置2ではS2からS5までの処理が繰り返される。干渉の可能性が無くなる演算結果が得られない場合、把持姿勢生成部21より、優先順位が次に高い新しい把持点候補を選び、この候補点に関する評価を行う。
許容姿勢範囲に他の解が有る、すなわち許容姿勢範囲において干渉の可能性が無くなる演算結果が得られる場合(S5,Yes)、干渉回避装置2では有効把持姿勢21aが修正され(S6)、S3からS6までの処理が繰り返される。
S4において干渉する可能性が無い場合(S4,Yes)、第2の接近軌道生成部23が第2の接近軌道23aを生成し(S7)、干渉チェック部25では再び干渉チェックが行われる(S8)。
第2の接近軌道23aに対して干渉の可能性が有る場合(S8,No)、S7およびS8の処理が繰り返される。第2の接近軌道23aに対して干渉の可能性が無い場合(S8,Yes)、回避軌道生成部24はロボット制御装置3に対する干渉回避軌道を生成する(S9)。
以上に説明したように、実施の形態1に係る干渉回避装置2は、有効第1の接近軌道22aと第2の接近軌道23aという2つの領域に分け、先に把持成功率が高い有効第1の接近軌道22aに干渉の可能性が無いことを確認し、次に第2の接近軌道23aが有効な解をもつ場合、その起点となる把持点を有効把持点として選定し、それぞれの軌道を接続して干渉回避軌道とする。この構成により、干渉しない把持点を選定しながら把持成功率を高めることができ、従来の干渉回避装置を用いた場合に比べてロボットシステム100の作業効率を向上できる。
実施の形態2.
図16は本発明の実施の形態2に係る干渉回避装置が備える軌道算出部の構成図である。以下、実施の形態1と同一部分には同一符号を付してその説明を省略し、ここでは異なる部分についてのみ述べる。実施の形態1と実施の形態2との相違点は以下の通りである。
(1)実施の形態2では、実施の形態1の軌道算出部11の代わりに軌道算出部11Aが用いられている。
(2)軌道算出部11Aは、軌道算出部11が備える把持姿勢生成部21、第1の接近軌道生成部22、第2の接近軌道生成部23、回避軌道生成部24および干渉チェック部25に加えて、干渉リスク評価部26を備える。
図17は図16に示す干渉リスク評価部の動作を説明するための第1の図である。距離情報Lijは、互いに干渉を避けたい物体であるロボットハンドモデル101と部品箱9との間の距離、または互いに干渉を避けたい物体であるツールモデル103と部品箱9との間の距離である。通常これらが一定以上の距離に保たれることで、干渉が避けられている。よって、計測部の高精度な計測結果や、計測結果に基づいて算出される周辺機器とロボットの間の正確な相対距離関係が常に分かっている場合は、これらが一定以上の距離に保たれていることを管理することが重要で、これらが一定以上になる軌道を第2の接近軌道生成部は選択する。しかし、キャリブレーション誤差やノイズ・相対距離のモデル化誤差の影響により、正確な相対距離関係が得られないことがある。この場合、第2の接近軌道生成部内では、正確な相対距離関係が得られない場合には、第2の接近軌道の中の干渉リスクを接近距離Lijに基づいて評価して、リスクが高いと考えられる部分については、移動速度を調整することで実際にぶつかる場合のダメージを低減させるように、第2の接近軌道の実行速度を調整することが望ましい。
図16に示す干渉リスク評価部26は、有効第1の接近軌道22aの開始点情報とモデル情報3aとを入力として、第2の接近軌道生成部23に対して、物体iと物体jの間の距離情報Lijを演算する。物体iおよび物体jは、図17に示すロボットハンドモデル101、ツールモデル103および部品箱9といった干渉を避けたいもの同士であればよい。干渉リスク評価部26は、モデル情報3aに含まれるアーム部41、ツール部42、周辺機器および部品箱9といった各モデルの位置情報と計測データ1aとに基づき、物体iと物体jの間の距離情報Lijを演算する。
図18は図16に示す干渉リスク評価部の動作を説明するための第2の図である。図18の上側に示す図では縦軸が距離情報Lijの差分を時間で割ったことで算出された接近速度Lij’であり横軸が時間である。図18の下側に示す図は縦軸が距離情報Lijであり横軸が時間である。図16に示す第2の接近軌道生成部23は、図18に示すように距離情報Lijが接近距離の閾値31bに達しているか否かを確認し、または接近距離の変化率、すなわち接近速度Lij’が距離情報Lijに応じて変化する接近速度の速度上限値31aを超えているか否かを確認する。図18に示す例では接近距離Lijが干渉チェックの閾値31bに近づく場合に、速度上限値31aを低減させる設定がされている。すなわち、干渉リスクが高まる評価の場合は、許容される移動速度を低下させる。仮に、低下させた速度よりも大きい移動速度が設定されていた場合は、移動速度を速度上限値31aまで下げられるよう、ロボットの移動速度が調整される。
干渉チェックにおいて干渉の可能性が無いと判定されても、センシング情報およびモデル化誤差が生じている場合、干渉が生じることがある。通常は、これらを見越してすべての干渉チェックの接近距離Lijに対して干渉していると判定する閾値を大きく設定する「判定マージン」をとることで、ツール部と周辺環境が衝突するリスクを低減する。しかし、この判定マージンをとることで、判定が過剰となり必要以上に「干渉する」と誤判定することがある。これにより把持可能であるとする軌道の数が極端に減ってしまう。実施の形態2に係る干渉回避装置2によれば、前記過剰な誤判定を避ける目的で判定マージンを小さくしたい場合で、かつ、要求作業時間が短く動作が高速なために干渉リスクが高い場合でも、接近距離Lijと接近速度Lij’に基づいて物体の破損レベルが低い速度に指令値を調整してハンド部43を移動させることができる。
前記のように周辺機器とロボットが接近する場合に破損レベルが低いということを保った上で、軌道全体に対しては必要に応じて動作速度を高速化することもできる。例えば、各モデル間の接近速度Lij’の速度上限値31aを満たす場合、特に実際の接近速度30aと速度上限値31aの差が大きい部分を探索し、それらの部分におけるロボットの移動速度を大きく調整することができる。この場合、図18上側に示した接近速度30aが大きくなり、速度上限値31aに近づき、図18下側に示した接近距離30bについては時間軸(横軸)に対して圧縮し、縦軸方向の値は変化しない状況となる。ある時刻のロボット動作速度を上げていくことを繰り返すことで、第2の接近軌道生成部で生成された第2の接近軌道の動作速度を最大化することができるようになる。実際の調整方法としては、第2の接近軌道におけるロボットアームの姿勢によってロボットアームの各軸が動くことのできる最大加速度が変化することを考慮する必要がある。まず、ロボットアームの各姿勢において最大速度で動かした場合の接近速度および接近距離の関係を先に求める。そして、次に接近速度30aが速度上限値31aを超えている部分を見つけ、これらを修正するように調整することで速度を最大化することができる。
実施の形態2に係る干渉リスク評価部26は、干渉リスクとなる物体間の距離として、特にハンド部43と周辺機器との相対距離と、ハンド部43と周辺機器との相対接近速度に着目し、各構成部品が許容する干渉速度を超えるリスクがある場合には速度を低下させることで、作業効率の低下を抑制しながらハンド部43および部品9aの損傷を防止でき、ハンド部43および部品9aの交換に要する時間ロスがなく、ロボットシステム100の更なる作業効率の向上を図ることができる。
実施の形態3.
実施の形態3に係る干渉回避装置2は、実施の形態2に係る干渉回避装置2と同様に把持姿勢生成部21、第1の接近軌道生成部22、第2の接近軌道生成部23、回避軌道生成部24、干渉チェック部25および干渉リスク評価部26を備える。実施の形態3では、実施の形態2に係る第2の接近軌道生成部23にポテンシャル法を適用した干渉回避装置2の動作例を説明する。ポテンシャル法とは、物体間に仮想的なエネルギー場を定義して、2つの物体間が近づくほど斥力(力の次元)が作用するものとして仮想外力を定義するものである。この仮想外力が作用したとして、この仮想外力をロボットアームに作用させ運動方程式に基づいてアームの変位を求めて、変位量を軌道の各地点での補正量として補正して動作させるのがポテンシャル法での軌道補正の考え方である。他にも、仮想外力によって物体が押しのけられる動きをするものとして位置や姿勢の軌道補正量(位置の次元)を表すベクトル量を演算する。ロボットモデルを物体の片方であるとして、各地点における指令値生成をする際に、演算された斥力あるいは軌道補正量ベクトルに基づいて元の指令値に対して一定量押しのけられた位置に働く定義とする。ポテンシャル法を用いた軌道修正とは、以上の様な手順に基づき仮想的に手先制御軌道を修正する方法である。実施の形態3に係る第2の接近軌道生成部23は、干渉リスク評価部26で得られた距離情報Lijに応じた斥力である仮想外力をツール部42に作用させて、第2の接近軌道を参照軌道としてポテンシャル法を用いて参照軌道を修正するものである。
図19は実施の形態3に係る干渉回避装置よって動作するロボットハンドの動作を示す図である。ハンド部43には、干渉リスク評価部26で得られた距離情報Lijに応じた斥力である仮想外力32が作用する。また干渉回避装置2は、図2に示すロボット制御装置3に対して、図16に示される第2の接近軌道23aを含む干渉回避軌道2aに加えて、仮想外力32の示す仮想外力情報を出力する。
ロボット制御装置3は、第2の接近軌道23aを第2の接近軌道Pとしてハンド部43を追従させて、仮想外力情報に応じてインピーダンス制御を実施する。ポテンシャル法では、力の合力がそのまま移動速度として解釈され、適当な係数を掛けて位置補正量ΔPとされ、第2の接近軌道P+位置補正量ΔPを目標値とした位置制御を行うことができる。ここで、第2の接近軌道P+位置補正量ΔPの求め方の例を示す。図19では、ロボットのツール部先端が、第2の接近軌道Pに沿って速度ベクトルVで方向に移動している場合、ツール部先端と箱の距離に応じて仮想外力32が2か所作用している様子を示している。この場合、ロボット制御装置3は、仮想外力32に応じて速度ベクトルVの大きさと方向を補正し、補正された速度ベクトルをV’とする。ロボット制御装置3は、補正された速度ベクトルV’および制御周期ΔTcを掛けた量ΔTc*V’を、位置補正量P+位置補正量ΔPとして、目標値を補正する。速度ベクトルではなく、仮想外力Fと位置補正量ΔPの関係で表現すると、インピーダンス制御の仮想バネ剛性をKとして、外力作用Fに対して、K*ΔPが釣り合うような位置補正量ΔPを選択することもできる。これにより、実施の形態3では、実施の形態2では得られなかったオンラインでの状況の変化への対応を実現し、急な環境変化が生じてもロボットシステム100を破損させることなく動作させてシステム運用上の効率を維持できる。
実施の形態4.
図20は本発明の実施の形態4に係る干渉回避装置が備える軌道算出部の構成図である。以下、実施の形態1と同一部分には同一符号を付してその説明を省略し、ここでは異なる部分についてのみ述べる。実施の形態4に係る干渉回避装置2が備える軌道算出部11Bは、実施の形態1に係る干渉回避装置2が備える軌道算出部11と同様に、把持姿勢生成部21、第1の接近軌道生成部22、第2の接近軌道生成部23、回避軌道生成部24および干渉チェック部25を備える。実施の形態4では、有効把持姿勢21aが第1の接近軌道生成部22に入力されると共に、ハンド開閉速度33とハンド開閉時刻34とが把持接近制約として第1の接近軌道生成部22に入力される。
サーボガンを代表とする溶接技術の分野では溶接時間を短縮するためにアームの静定を見越してサーボガンのトリガを自動的に設定する技術がある。これと関連した事実として、把持においても、ハンド開閉速度および把持開始時間は、重要であり把持成功率に関連する。特に、第1の接近軌道を細かに規定する以上にロボットハンドに備え付けられたサーボガン毎にその軌道にあったハンド開閉動作を実行することが成功率を上げるために必要となる。
実施の形態4に係る第1の接近軌道生成部22は、把持接近拘束、ハンド開閉速度33およびハンド開閉時刻34を考慮した軌道生成およびハンド開閉指示を合わせて評価した有効第1の接近軌道22aを生成する。ハンド部43が空気圧を用いたハンドである場合、当該ハンドの応答時間を部品毎に変えることができない。有効第1の接近軌道22aにおいてハンド開閉が間に合わない場合、回避軌道生成部24にハンド開閉時刻を設定することで無駄な待ち時間を低減することができる。このようなハンド開閉時間の決定については、回避軌道生成部24において有効第1の接近軌道22aに要する時間から判断する。
以上に説明したように実施の形態4では、ハンド開閉時刻34を考慮したピッキング動作を決定することができるため、ハンド開閉に係る1回分の動作の遅延を低減し、タクトタイムを短縮することができる。また実施の形態4では、把持接近制約として軌道に加えてハンド開閉速度を合わせて考慮することで、実施の形態1の効果に加えて、軌道上の把持動作をより細やかに制御でき、把持成功率を向上させることができる。
図21は本発明の実施の形態1から4に係る干渉回避装置のハードウェア構成図である。干渉回避装置2は、CPU(Central Processing Unit)61、ROM(Read Only Memory)62、RAM(Random Access Memory)63、入力部65を備える。干渉回避装置2では、CPU61、ROM62、RAM63および入力部65がバスライン66を介して接続されている。
入力部65は、マウスおよびキーボードを備え、使用者により入力される情報を入力する。入力部65へ入力された情報は、CPU61へ送られる。ROM62には干渉回避装置2用のプログラム60が格納されている。実施の形態1から4に係る干渉回避装置2を実現する場合、CPU61はRAM63内にロードされたプログラム60を実行することにより、干渉回避装置2の把持点候補生成部10および軌道算出部11が実現される。
図22は図2に示す生産システムの変形例を示す図である。図22に示す生産システム200は、図2に示す生産システム200の構成要素に加えて画像処理装置1001を備える。画像処理装置1001は計測部1および干渉回避装置2の間に設けられている。画像処理装置1001は、干渉回避装置2から抜き出された把持点候補生成部10の機能を有する装置である。すなわち画像処理装置1001は、計測データ1aに画像処理を行い把持点候補10aを算出する図4の把持点候補生成部10を備えた装置である。
図23は図22に示す干渉回避装置の構成例を示す図である。図22に画像処理装置1001を用いる場合、図23に示すように干渉回避装置2では図4の把持点候補生成部10が除かれ、干渉回避装置2は、把持点候補10a、モデル情報3a、ロボットプログラム3bおよび設定情報3cを入力情報とする軌道算出部11を備える。
また図22の生産システム200は、画像処理装置1001から画像処理結果である把持点候補10aを伝送するように構成されているため、イーサネット(登録商標)等のネットワークを介して処理結果を共有することができる。
図24は図22に示す生産システムの第1の変形例を示す図である。図24に示す生産システム200は、画像処理の結果得られた把持点候補10aがロボット制御装置3で受信されるように構成されている。なお生産システム200は、把持点候補10aがロボット制御装置3および干渉回避装置2の双方で受信されるように構成してもよい。
図25は図22に示す生産システムの第2の変形例を示す図である。図25に示す生産システム200は、PLCやパーソナルコンピュータ等を用いた情報統合端末5を備え、全ての情報をネットワークを介して情報統合端末5で一括で管理して、状態に応じて全体に動作変更の指示あるいは指令を出力するように構成されている。情報統合端末5には把持点候補10aが入力され、情報統合端末5に入力された把持点候補10aは、ロボット制御装置3を介して干渉回避装置2に入力される。
図26は図22に示す生産システムの第3の変形例を示す図である。図26に示す生産システム200は、複数の画像処理装置1001,1002と、複数の計測部1,1Aとを備える。計測部1Aは、固定台70によりロボット4を撮影可能な位置に設置されている。計測部1Aは、ロボット4の動作を撮像して得られた撮像情報を計測データ1aとして画像処理装置1002に送信する。
画像処理装置1002は、画像処理装置1001と同様に構成されおり、計測データ1bに基づき把持点候補10bを算出する。算出された把持点候補10bは情報統合端末5に入力される。情報統合端末5は把持点候補10a,10bを集約して、状態に応じて全体に動作変更の指示あるいは指令を出力する。
なお本実施の形態では、ロボット4に固定された計測部1およびロボット4以外の場所に設置された計測部1Aを用いた例が示されるが、本実施の形態に係る生産システム200は、計測部1および計測部1Aの何れか一方のみ用いた構成としてもよい。また図示しないが、干渉回避装置2がロボット4以外の対象全体の干渉回避軌道を計算する場合、情報統合端末5の中に干渉回避装置2を含む構成にして、情報統合端末5がコンベア制御装置6、加工機制御装置7およびロボット制御装置8のそれぞれの干渉回避装置2として機能する構成としてもよい。
実施の形態5.
図27は本発明の実施の形態5に係る干渉回避装置が備える軌道算出部の構成図である。図27に示す軌道算出部11Cは、図6に示す第1の接近軌道生成部22および第2の接近軌道生成部23の代わりに、第1の接近軌道生成部22Aおよび第2の接近軌道生成部23Aを備える。軌道算出部11Cは、第1の接近軌道生成部22Aおよび第2の接近軌道生成部23A以外にも、図6に示す把持姿勢生成部21、回避軌道生成部24および干渉チェック部25を備える。図27では、図6の把持姿勢生成部21、回避軌道生成部24および干渉チェック部25の図示が省略されている。以下、実施の形態1と同一部分には同一符号を付してその説明を省略し、ここでは異なる部分についてのみ述べる。
第1の接近軌道生成部22Aは、軌道要素生成部83および接近軌道生成部84を備える。
軌道要素生成部83は、第1の接近軌道に関するM個の中間ゴール情報81と有効把持姿勢21aとに基づき、M+1個の第1の接近軌道要素13aを演算する。Mは1以上の整数である。kは1からM+1までの変数である。軌道要素生成部83は、k=1から、k=M+1まで順に、第1の接近軌道要素13aを演算する。第1の接近軌道要素は、2点の位置(把持点、経由点、動作開始点、動作完了点のうちの2つ)を両端点として、両端点を補間して定義される。補間方法については、スプライン補間を例示できる。中間ゴールとは、ツール部の目標位置である把持点候補Pggと、ツール部の目標位置Pggから一定距離離れた位置を示す第1の接近軌道の起点であるツール部の把持接近開始点Psgとの間に定義される軌道の経由点のことである。中間ゴール情報81は、中間ゴールの内容を示す情報である。
接近軌道生成部84は、k=1から、k=M+1まで順に演算された第1の接近軌道要素13aをそれぞれ記憶し、記憶した順に、複数の第1の接近軌道要素13aのそれぞれを接続することによって、有効第1の接近軌道22aを生成する。例えば、1番目に演算された第1の接近軌道要素13aに、2番目に演算された第1の接近軌道要素13aが接続され、2番目に演算された第1の接近軌道要素13aに、3番目に演算された第1の接近軌道要素13aが接続される。このような処理が、k=1に演算された第1の接近軌道要素13aから、k=M+1に演算された第1の接近軌道要素13aまで、順に実行されることによって、有効第1の接近軌道22aが生成される。k=1のときは、把持点候補Pggと第1の接近軌道に関する1番目の中間ゴールとを接続する接近軌道要素を演算することになる。k=M+1のときは、第1の接近軌道に関するM番目の中間ゴールと第1の接近軌道の起点である把持接近開始点Psgとを接続する接近軌道要素を演算することになる。2つの接近軌道要素の接続の仕方として、ロボット動作が滑らかに遷移する目的で次のような接近軌道要素の接続方法を適用することができる。1つ目の接続の仕方は、速度を考慮した接続方法である。第1の接近軌道生成部は、接続点である中間ゴール付近で生じる慣性力や遠心力の影響を考慮し、低速かつ加減速が緩やかになるように接近軌道を定義することができる。この際、2つの接近軌道要素の接続点が不連続にならない軌道として接続し、かつ接続点近傍の速度指令値が大きくならないように接続する。これは、接続点前後で動作軌道で定義される移動方向が速度の大きさが急激に変化する場合、適切に減速して滑らかなロボット動作を実現させるという、接続の仕方である。通常、軌道には必ずしも速度情報は必要無いが、ここではロボットのツール部が実現しうる通過速度である必要があるため、軌道上の任意の点においてロボットのツール部の通過速度が指定される場合として説明している。2つめの接続の仕方は、スプライン曲線を使って経由点を滑らかに接続する接続の仕方である。第1の接近軌道生成部は、第1の接近軌道の起点である把持接近開始点Psgと終点である把持点候補Pggと中間ゴールとに基づいて、スプライン補間して、滑らかな軌道を生成することも出来る。ここで、中間ゴールの役割を説明する。実施の形態1では、有効把持姿勢21aが決まると、ツール部の把持接近開始点Psgとツール部の把持点候補Pggとを用いて、軌道候補が計算されている。一方、本実施の形態では、ピッキングに必要な有効把持姿勢で表される把持点から算出される把持点候補Pgg以外に、M個の中間ゴールを、必ず通過する経由点として設定している。これらの中間ゴールは、いくつかの方法で得られる。例示すると、ユーザが事前の作業試行をロボットに行わせた後に成功事例から自動的に中間ゴールを抽出する場合、または事前のシミュレーションで成功事例から学習し自動的に中間ゴールを抽出する場合がある。すなわち、把持点に対して法線方向から真っ直ぐ掴みにいくと把持し損ねるような場合には、把持位置直前の目標地点を与える必要が出てくる。この目標地点が中間ゴール81となる。M=1として中間ゴールを1つ設定する場合を説明する。対象物を把持する場合で、把持位置直前の接近ベクトル方向に制約がある場合を考える。ここで「制約」とは、接近ベクトル方向として指定できないベクトルが存在する場合に、その接近ベクトル方向を指す。指定できない接近ベクトル方向は、ロボットが当該接近ベクトル方向に移動すると次のような事象が生じる場合に設定される。前記事象としては、具体的にロボットのツール部やエンドエフェクタが障害物への干渉する事象、把持対象の作業に支障がある作用を及ぼす(把持対象の転倒・把持対象の損傷)事象、などが挙げられる。把持姿勢から10mmオフセットした位置から、姿勢を変えずに指先を把持点に接近させる場合は、把持点候補Pggから10mmオフセットした位置に中間ゴールを設定する。ここで、「オフセットした位置」は、「ある基準となる位置から、ある方向に一定量の位置(mm)だけ平行移動した別の位置」を意味する。ここで示した「10mmオフセットした位置」は、制約として説明した「接近ベクトル方向として指定できないベクトル」を除いた、ロボットが把持成功できる方向に平行移動した位置となっている。一方で、中間ゴールではない点(把持点候補Pggや把持接近開始点Psg)と中間ゴールの決め方の違いについて補足説明する。把持点候補は前述の通り、計測データに基づいて計算される。第1の接近軌道の把持点Pggではない側の端点、すなわち把持接近開始点Psgは、取り出す部品と周囲の部品との干渉が無くなる高さや位置まで、取り出す部品を把持したロボットが移動した位置として設定する。すなわち、中間ゴールとは違う位置を設定する。ただしここでは供給箱に入っていて把持点候補として選ばれている部品を「取り出す部品」と呼び、供給箱に入っているそれ以外の部品を「周囲の部品」と呼んでいる。また、中間ゴールはあくまで、把持位置直前の目標地点を定義することが必要となる場合に定義されるものであり、把持位置直前の接近ベクトル方向に制約が無ければ中間ゴールは設定されない。
第2の接近軌道生成部23Aは、軌道要素生成部85および接近軌道生成部86を備える。
軌道要素生成部85は、有効第1の接近軌道22aの内、有効第1の接近軌道22aの起点である把持接近開始点Psgと、ロボット動作開始点である第2の接近軌道23aの開始点であるピッキング動作の開始点と、第2の接近軌道に関するN個の中間ゴール情報82とに基づき、N+1個の第2の接近軌道要素13bを演算する。Nは1以上の整数である。jは1からN+1までの変数である。軌道要素生成部85は、j=1から、j=N+1まで順に、第2の接近軌道要素13bを演算する。j=1のときは、軌道要素生成部85は、有効第1の接近軌道22aの把持接近開始点Psgと第2の接近軌道に関する1番目の中間ゴールとを接続する接近軌道要素を演算する。j=N+1のときは、軌道要素生成部85は、第2の接近軌道に関するN番目の中間ゴールとピッキング動作の開始点とを接続する接近軌道要素を演算する。中間ゴール情報82は、ロボットツール部の、位置(X,Y,Z)および姿勢(回転角(A,B,C)/回転行列R)で定義される情報である。ただし、第2の接近軌道23aの開始点であるピッキング動作の開始点については、軌道要素生成部85内で定義されるものとする。例えば、ピッキング動作の開始点は、[0076]に説明している通り、対象となる部品の入った棚や箱(周辺環境の一部)の上空か、アームやハンドと周辺環境が干渉を生じない程度に十分離れた点がユーザによって設計され指定される。また、それ以外の方法として、ピッキング動作の開始点は、[0083]、[0084]に説明している通り、探索的に獲得した点を定義しておくことが出来る。探索的に獲得する場合も探索の終了条件としては、箱からハンドが十分離れた点をユーザが定義して設定する。
接近軌道生成部86は、j=1から、j=N+1まで順に演算された第2の接近軌道要素13bをそれぞれ記憶し、記憶した順に、第2の接近軌道要素13bのそれぞれを接続することによって、第2の接近軌道23aを生成する。
ここで、図5に示したように、把持対象となる部品とハンドの幾何形状とを考慮して、ハンド部43の指先が部品9aの凸部12に干渉しないように、有効第1の接近軌道22aが生成される。ところが、有効第1の接近軌道22aの生成において、干渉を避ける軌道探索を行う手法を適用する場合、中間ゴールを設定する必要が生じるときがある。例えば、把持ハンドの指先の開閉と連動して、把持姿勢の直前の中間ゴールにおいて把持ハンドの指をわずかに閉じる動作を、ロボット動作の1つとして実施することによって、把持対象を幾何的にハンドの指先の空間にトラップした状態に遷移させて、さらに把持対象を目標把持点まで移動してから把持する場合を例示できる。なお、把持対象を幾何的にハンドの指先の空間にトラップした状態とは、空間運動に制約を生じている状態、またはケージングの状態である。空間運動に制約を生じている状態は、例えば、把持ハンドの指先が部品よりわずかに大きな領域で近接している場合に、部品が把持ハンドの指先の中で回転しようとすると指先に接触してしまい、部品が回転できなくなるような状態を表している。指の間の隙間から外側に出るほど把持対象部品が大きく変位することがなく、把持不可能とはならない範囲の姿勢変化にとどめることが可能である。このような中間ゴールを使った把持動作により把持点候補Pggに移動しようとした際に、転倒しやすい部品の転倒を防ぐことが出来る。ケージングとは、接触した幾何拘束はないが、いずれの方向にも抜け出ることが出来ないように周囲を囲う物体拘束である。この場合も、指先開閉による部品への作用力以外の外力により部品が変位する場合、部品が転倒あるいは把持不可能になってしまう事象を防ぐことが目的となる。
同様の理由で、第2の接近軌道23aの生成時にも、中間ゴールを設けることによって、把持成功率を高める動作を設定することができる。例えば、物体の搬送中に、物体の重心位置がロボットハンドの把持点から離れて、モーメントが大きくなった場合、搬送中の物体が落下するおそれがある。このようなことを防ぐため第2の接近軌道における中間ゴールとして、ロボット手先姿勢を次のような方法で設定した中間ゴールを選定することができる。第2の接近軌道生成部23Aは、把持点と物体の重心位置に対して、鉛直方向に直交する方向に対する距離を最小化し、把持ハンドから把持対象がモーメントの作用で脱落を防ぐような安定把持姿勢を、中間ゴールのロボットの把持ハンドの姿勢として設定できる。鉛直方向に直交する方向に対する距離は、ロボットハンドの把持点から物体の重心位置までの距離に相当する。把持ハンドの姿勢に対応する中間ゴールの位置については次のように計算できる。第2の接近軌道生成部23Aは、部品箱9と把持物体が当該安定把持姿勢においても把持ハンドと周辺環境が干渉しない高さを演算し、干渉しない高さに到達するまでは前記安定把持姿勢を取らず、干渉しない高さ到達してから前記安定把持姿勢を取る点を中間ゴールの位置として設定できる。ここで、干渉しない高さは、例えば、事前に計測された対象物データから把持姿勢を算出しておき、算出された把持姿勢と事前に取得した物体の幾何データとから、部品箱等と干渉しない距離を演算することによって求めることができる。
以上のように、実施の形態5に係る干渉回避装置によれば、実施の形態1の効果に加えて、把持物体の把持状態からの脱落を防ぐことができ、結果としてシステムの生産性が向上するという効果が得られる。
実施の形態6.
図28は本発明の実施の形態6に係る干渉回避装置が備える軌道算出部の構成図である。図28に示す軌道算出部11Dは、図6に示す第1の接近軌道生成部22および第2の接近軌道生成部23の代わりに、第1の接近軌道生成部22Bおよび第2の接近軌道生成部23Bを備える。また軌道算出部11Dは、図6に示す把持姿勢生成部21の代わりに、組立姿勢候補生成部27と組立位置候補生成部28を備える。実施の形態6では、物体の把持では無く、把持した物体の組み立て作業に構成が変わるのに応じ、把持点候補を「組立姿勢候補」と置き換え、把持接近開始点(第1の接近軌道の起点)を「組立動作開始点」と置き換える。ロボット動作開始点であるピッキング動作の開始点を「組立動作全体の開始点」と置き換える。なお、組立位置候補生成部28は、軌道算出部11Dの外部に設けられていてもよい。以下、実施の形態1と同一部分には同一符号を付してその説明を省略し、ここでは異なる部分についてのみ述べる。
まず、ハンド部43は、カメラまたは画像センサを活用して、部品9aの位置を計測し、部品を把持する。この際、供給形態がバラ積み供給で、部品がバラ積み状態である場合は、ロボットは部品9aを把持した後に部品の上空である実施の形態1と同じような処理で、組立動作全体の開始点Psaに移動する。その後、ロボットは軌道算出部11Dで生成された軌道に従い動作する。組立動作全体の開始点Psaは、第2の接近軌道生成部にて生成される。組立動作開始点に至るまで、または、組立動作開始点において、干渉回避装置2は、計測部であるビジョンセンサまたはカメラを活用して、把持している物体の位置姿勢を計測し、計測した計測情報(RGB(Red Green Blue)画像情報、ポイントクラウドなどの距離画像情報、距離情報)画像認識処理を施すことによって、ハンドで把持した対象の位置姿勢を演算する。画像認識処理では、モデルマッチング処理等が利用される。これにより、部品がハンドに対してどのように把持されているかという、「部品の位置姿勢」が取得される。ただし、部品の位置姿勢については、部品把持のために取得した部品の位置姿勢に対し、把持ハンドが滑りおよび位置ずれの無い理想的な状態で部品の把持を成功したものとして、把持前に計測した部品の位置姿勢情報に基づいて演算することも出来る。組立位置候補生成部28は、部品の位置姿勢に基づいてロボットのツール位置姿勢で表現された把持姿勢情報87を演算する。組立位置候補生成部28は、ロボットおよび周辺機器のモデル情報とに基づき、把持対象のツール部に対する把持姿勢情報87を使って、ツール部が把持対象の組立を完了する複数の第1の組立姿勢候補88を算出する。実施の形態1〜実施の形態5では、把持姿勢生成部21が生成できる姿勢候補は複数ある場合が多い。一方、実施の形態6においては、図29に示すような部品9aを部品9bに対して組み付ける場合のように完了時における候補姿勢が1つしかなく、第1の組立姿勢候補88は1つのみ設定する場合がある。実施の形態6において、組立位置候補生成部28が生成する第1の組立姿勢候補88が複数ある場合の例として、部品形状が直方体、円柱または円盤である場合が挙げられる。部品形状が直方体、円柱または円盤である場合、部品の対称性により、組立位置候補生成部28が第1の組立姿勢候補88を複数個設定する。組立姿勢候補生成部27は、許容される誤差を含めて組立て作業を実現することが可能な第2の組立姿勢候補を生成する。すなわち、組立姿勢候補生成部27は、第2の組立姿勢候補に対し、ツール部が周辺機器に干渉することなく、かつ許容姿勢範囲内に存在する複数の有効組立姿勢候補27aを生成する。有効組立姿勢候補27aには、位置情報と姿勢情報([X,Y,Z,A,B,C])とが含まれる。
図29は図28に示す軌道算出部による動作を説明するための図である。図29には、ロボットのツール部42が部品供給箱である部品箱9に接近し、ハンド部43が部品箱9内の把持対象物である部品9aを把持してから、ハンド部43が部品9aを部品9bの上側に移動して、ハンド部43が把持している部品9aを部品9bに組み付けるまでの動作が示される。
部品箱9から把持対象物を取り出すロボットは、物体の把持動作以外にも、工場において製品の組立て作業を実施することがある。図29で示すように、部品9bに部品9aを組み付けることによって製品が組立てられる場合、部品9bには、スナップフィットによって部品9aが嵌め合わされる固定部80、コの字形状の突起部9b1等が存在する場合がある。スナップフィットとは、2以上の材料の結合に用いられる機械的接合法の一種であり、材料の弾性を利用して2以上の材料同士を嵌め合わせることにより、2以上の材料を互いに固定する方式のことである。そのため、ロボットは、製品の組立て作業の際、部品9aの先端が部品9bの突起部9b1に干渉することがなく、また部品9aの水平方向の両端が固定部80の上面に載ることがないように、部品9bに部品9aを組み付ける必要がある。
ただし、部品9bへの部品9aの組立完了直前の位置および角度と、部品9bへの部品9aの組立完了位置および角度とを比較した場合、部品9bの延伸方向に対する部品9aの延伸方向の角度が異なるだけでなく、部品9bの固定部80および突起部9b1といった部材に対する部品9aの先端部の位置が異なる。組立完了位置は、部品9bに存在する複数の部品9aの内、最も底側に存在する部品9aの位置である。このように、固定部80および突起部9b1といった部材を有する部品9bへ部品9aを組み付ける場合、部品9bへの部品9aの挿入方向、挿入角度等に制約が生じるときがある。また、例えば部品9aの組立完了位置を部品9bの鉛直上方に延長した位置から、鉛直方向に部品9bへの部品9aの組立動作を開始した場合、部品9bの突起部9b1に部品9aが干渉するおそれがある。従って、部品9aの最終到達点である組立位置候補点以外に、中間ゴールである位置に部品9aを経由させる等して、部品9bに対する部品9aの相対位置、部品9bに対する部品9aの相対角度等を、細かく変更しなければ、組立てを完了することができない。すなわち、実施の形態5の第1の接近軌道生成部22Aで生成される有効第1の接近軌道22aをさらに複数の軌道に分割し、また第2の接近軌道生成部23Aで生成される第2の接近軌道23aをさらに複数の軌道に分割しなければ、組立てが完了しない場合がある。
以下では、把持された対象物体が別の対象物体に組み付けられるときにおける、実施の形態6に係る軌道算出部11Dの動作を説明する。図30は図28に示す軌道算出部による動作を説明するためのフローチャートである。
ハンド部43は、供給された部品9aを把持し(S10)、干渉回避装置2は、ハンド部43が把持した部品9aの位置姿勢を演算する(S11)。作業対象の組立姿勢候補点が生成される(S12)。次に、S13において、軌道算出部11Dの第1の接近軌道生成部22Bは、組立の中で組立方向あるいは挿入方向が制約されている部品移動、および組立対象と把持している部品9aが接触を伴う部品移動からなる第1の接近軌道を生成する。軌道算出部11Dの第1の接近軌道生成部22Bは、生成された複数の有効組立姿勢候補27aの中で、把持している部品9aおよび把持ハンドが組立対象をずらすことない状態を満たしつつツール部が組立対象に接近できる組立姿勢を抽出する。次に、第1の接近軌道生成部22Bは、抽出された組立姿勢となるための複数の組立軌道候補を生成し、複数の組立姿勢候補のそれぞれを端点に持つ複数の軌道を第1の接近軌道として生成する。具体的には、第1の接近軌道生成部22Bは、M個の中間ゴールに対し、k番目(ここではk=1)の第1の接近軌道要素13a1を生成する。図29には、このとき生成される第1の接近軌道要素13a1が上向きの湾曲した矢印で示される。続いて、第1の接近軌道生成部22Bは、固定部80に押し付ける要素動作のための軌道を設け、その位置まで部材を挿入する要素動作として、k+1番目の第1の接近軌道要素13a2を生成する。図29には、このとき生成される第1の接近軌道要素13a2が左上向きの矢印で示される。第1の接近軌道要素13a2は、図29の部品9bに形成される突起部9b1へ部品9aの先端を挿入するときの移動量と水平方向に対する傾きを含む。第1の接近軌道要素13a1と第1の接近軌道要素13a2とを組み合わせて形成される軌跡は、部品9bへの部品9aの組立動作時における、有効第1の接近軌道22aとなる。図29には、有効第1の接近軌道22aに関する中間ゴール情報81の数が1つの例、すなわちM=1の例が示される。従って、軌道算出部11Dの第1の接近軌道生成部22Bでは、第1の接近軌道要素13aがM+1個、すなわちM=1の例では2つ生成されるため、生成された2つの第1の接近軌道要素13aのそれぞれが接続される形で、有効第1の接近軌道22aが生成される。
S14において、干渉チェック部25では、有効把持姿勢21aおよび有効第1の接近軌道22aに対して干渉チェックを実施する。干渉チェックの結果、干渉する可能性が有る場合(S15,No)、干渉チェック部25は、部品箱9と干渉する可能性のあるツール部42の一部を生成し、許容姿勢範囲において干渉をなくすために最も小さい姿勢変化をさせた場合の修正した把持点候補を探索し、干渉の可能性の有無を判定する(S16)。
許容姿勢範囲に他の解が無い、すなわち許容姿勢範囲において干渉の可能性が無くなる演算結果が得られない場合(S16,No)、S13からS15までの処理が繰り返される。干渉の可能性が無くなる演算結果が得られない場合、把持姿勢生成部21より、優先順位が次に高い新しい把持点候補を選び、この候補点に関する評価を行う。
許容姿勢範囲に他の解が有る、すなわち許容姿勢範囲において干渉の可能性が無くなる演算結果が得られる場合(S16,Yes)、干渉回避装置2では有効把持姿勢21aが修正され(S17)、S14からS15までの処理が繰り返される。
S15において干渉する可能性が無い場合(S15,Yes)、軌道算出部11Dの第2の接近軌道生成部23Bは、有効第1の接近軌道22aの端点のうち組立対象から最も遠い位置にある第1の端点に、ロボットのアーム部およびツール部が周辺機器に干渉することなく接近する第2の接近軌道23aを生成する(S18)。具体的には、第2の接近軌道生成部23Bは、N個の中間ゴール情報82に対し、j番目(ここではj=1)の第2の接近軌道要素13b1を生成する。なお、図29に示す符号13b1はj=1番目の第2の接近軌道要素を示す。ここでは、中間ゴール情報82には、部品9bの上側の位置で、部品9aの把持姿勢を、把持搬送に有利である脱落しにくい把持姿勢から組立に都合の良い把持姿勢に遷移させることを意図した経由点が設定される。このときj=1番目の第2の接近軌道要素13b1となる軌道の端点13b1aは、組立開始点に接続される。組立開始点は、M+1番目の第1の接近軌道要素13a2の組立位置よりも遠い方の端点13a2aである。図29には、第2の接近軌道23aに関する中間ゴール情報82の数が1つの例、すなわちN=1の例が示される。第2の接近軌道要素13b2の端点は、組立動作全体の開始点Psaに接続する。なお、供給位置から部品9aを取り出し部品9bの上空に対する移動は、搬送動作と呼ぶこととし区別している。従って、軌道算出部11Dの第2の接近軌道生成部23Bでは、第2の接近軌道要素13bがN+1個、すなわち2つ生成されるため、生成された2つの第2の接近軌道要素13bのそれぞれが接続される形で、第2の接近軌道23aが生成される。
干渉チェック部25では再び干渉チェックが行われる(S19)。第2の接近軌道23aに対して干渉の可能性が有る場合(S19,No)、S18およびS19の処理が繰り返される。第2の接近軌道23aに対して干渉の可能性が無い場合(S19,Yes)、回避軌道生成部24は、有効第1の接近軌道22aと第2の接近軌道23aとを接続した干渉回避軌道2aを生成する(S20)。有効第1の接近軌道22aと第2の接近軌道23aとの接続方法について説明する。有効組立姿勢候補27a、有効第1の接近軌道22a、第2の接近軌道23aがそれぞれ複数出力され、組み合わせが複数存在する場合には、評価関数を用いて評価値が最も小さくなるあるいは最も大きくなるもの軌道を選択する。評価関数としては、干渉回避軌道全体の移動に相当する総作業時間を入力としてが時間に関する評価値が最小化するような軌道を選択することができる。また、評価関数としては、ロボット動作による電流値に基づくエネルギー消費量などを入力として、エネルギー消費量が最小化するよう評価値を算出することが出来る。評価関数の方法としては、これらに限定するものではない。
以上のように、実施の形態6に係る干渉回避装置によれば、部品9bに部品9aを組み付けることによって製品が組立てられる場合でも、有効第1の接近軌道22aが複数の軌道に分割され、また第2の接近軌道23aが複数の軌道に分割されるため、部品9bに固定部80等が存在する場合でも、部品9bに部品9aが干渉することなく、部品9bに部品9aを組み付けることができる。
実施の形態7.
図31は本発明の実施の形態7に係る干渉回避装置が備える軌道算出部の構成図である。図31に示す軌道算出部11Eは、図6に示す把持姿勢生成部21、第1の接近軌道生成部22、第2の接近軌道生成部23、回避軌道生成部24および干渉チェック部25に加えて、シミュレーション部300を備える。シミュレーション部300は、3Dモデルシミュレーション部301、学習器302、第1の接近軌道候補記憶部303および第2の接近軌道候補記憶部304を備える。
3Dモデルシミュレーション部301は、3D−CADモデル、または3次元計測で得られた3Dモデルを元に、構築された仮想空間においてロボット動作をシミュレーションすることによって、動作に必要な駆動力と、ロボットハンドまたはロボットアームが通過する動作軌道と、動作起動中の周辺環境との干渉に関する干渉判定情報と、を含むシミュレーション結果311を出力する。
学習器302は、これらのシミュレーション結果311を入力し、評価関数を基にして一定の基準を満たす効率的な動作と干渉の無い動作とを抽出して、それらの動作軌道と動作に必要な駆動力とに関する情報として、ロボット動作軌道候補および動作パラメータ制約に関する情報312を出力する。ここで動作パラメータ制約とは、ロボットの関節可動範囲、直交座標表現のロボットの可動範囲などの、許容する探索空間を狭めるための条件、または駆動軸の加減速度の上限等を狭めるための上限である。
3Dモデルシミュレーション部301は、情報312と、実際の作業時にカメラ等で取得する対象物体の計測データを元にして得られる把持点候補とに基づいて、第1の接近軌道候補313と第2の接近軌道候補314とを生成して出力する。他に、3Dモデルシミュレーション部301は、情報312と、仮想環境でカメラモデルを用いてシミュレーション上で撮像処理し、仮想環境中で得られる把持点候補に基づいて、第1の接近軌道候補313と第2の接近軌道候補314とを生成して出力することもできる。第1の接近軌道候補313は第1の接近軌道候補記憶部303に記憶され、第2の接近軌道候補314は第2の接近軌道候補記憶部304に記憶される。シミュレーション部301では実際のロボットで想定される状況を想定した物体配置や把持点候補に基づいて、計算処理能力が許容可能な回数だけシミュレーションを事前実施しておくことができるため、第1の接近軌道候補313および第2の接近軌道候補314は、あらゆる把持点候補および周辺環境の位置関係に対応した形で事前に記憶しておくことが出来る。すなわち、実際にロボットが稼動する際には、出力された有効把持点候補21aの情報に基づいて、把持成功率と周辺との干渉を考慮した第1の接近軌道候補生成部は短時間に第1の接近軌道を出力できる。同様に第2の接近軌道生成部は短時間で第2の接近軌道を出力することが出来る。
第1の接近軌道生成部22は、有効把持姿勢21aに対応する第1の接近軌道候補313を、第1の接近軌道候補記憶部303から選択して、選択した第1の接近軌道候補313を、有効第1の接近軌道22aとして出力する。第2の接近軌道生成部23は、有効第1の接近軌道22aに対応する第2の接近軌道候補314を、第2の接近軌道候補記憶部304から選択して、選択した第2の接近軌道候補314を、第2の接近軌道23aとして出力する。
以上のように、実施の形態7に係る干渉回避装置によれば、実施の形態1の効果に加えて、動作計画を実施する処理時間が短縮され、生産時のタクトタイムが短くなるという効果が得られる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。