JPWO2013027251A1 - ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 - Google Patents
ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 Download PDFInfo
- Publication number
- JPWO2013027251A1 JPWO2013027251A1 JP2013529792A JP2013529792A JPWO2013027251A1 JP WO2013027251 A1 JPWO2013027251 A1 JP WO2013027251A1 JP 2013529792 A JP2013529792 A JP 2013529792A JP 2013529792 A JP2013529792 A JP 2013529792A JP WO2013027251 A1 JPWO2013027251 A1 JP WO2013027251A1
- Authority
- JP
- Japan
- Prior art keywords
- container
- robot
- hand
- contact
- unit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
カメラ部(130)から得られた物品(OBJ)の位置に誤差が含まれていても物品(OBJ)を容器(BOX)から取り出すことができるロボットシステム(100)、ロボット制御装置(120)、ロボットハンド(108)及びロボットの制御方法を提供する。ロボット(110)の制御方法は、容器(BOX)のステレオ画像に基づいて、容器(BOX)の位置又は姿勢に関する情報を第1の情報として計算するステップと、ハンド(108)を容器(BOX)に接触させることにより、容器(BOX)の位置又は姿勢に関する情報を第2の情報として計算するステップと、部品(OBJ)のステレオ画像に基づいて、部品(OBJ)の位置又は姿勢に関する情報を計算するステップと、第1及び第2の情報に基づいて部品(OBJ)の位置又は姿勢に関する情報を補正するステップとを含む。
Description
本発明は、ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法に関する。
特許文献1には、ハンドアイ付きロボットが記載されている。このハンドアイ付きロボットは、メカニカルハンドを装着するアームに撮像装置の少なくとも撮像光学系を取り付けて、メカニカルハンドによる作業に必要な視覚情報を得るように構成されている。
本発明は、カメラ部から得られた物品の位置に誤差が含まれていても物品を容器から取り出すことができるロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法を提供することを目的とする。
上記課題を解決するため、本発明の一の観点によれば、容器に入った物品を撮像するカメラ部、前記物品を把持するハンド、及び前記ハンドが前記容器に接触したことを検出するための接触検出器を有するロボットと、
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器に接触させる制御部と、
2)前記接触検出器により前記ハンドが前記容器に接触したことを検出し、その接触位置を求める接触検出部と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、該容器の位置を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置と前記接触検出部が求めた前記接触位置との差を補正量として計算する第2の処理部と、
5)前記補正量に基づいて、前記容器に入った前記物品の高さ方向の位置に関する情報を補正する第3の処理部とを有するロボットシステムが適用される。
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器に接触させる制御部と、
2)前記接触検出器により前記ハンドが前記容器に接触したことを検出し、その接触位置を求める接触検出部と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、該容器の位置を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置と前記接触検出部が求めた前記接触位置との差を補正量として計算する第2の処理部と、
5)前記補正量に基づいて、前記容器に入った前記物品の高さ方向の位置に関する情報を補正する第3の処理部とを有するロボットシステムが適用される。
また、他の観点によれば、容器に入った物品を撮像するカメラ部、前記物品を把持するハンド、及び前記ハンドが前記容器に接触したことを検出するための接触検出器を有するロボットと、
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器の異なる第1〜第6の接触位置にそれぞれ接触させる制御部と、
2)前記接触検出器により前記ハンドが前記容器に接触したことを検出し、前記第1〜第6の接触位置を求め、求めた該第1〜第6の接触位置から前記容器の位置姿勢を求める接触検出部と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置姿勢を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置姿勢と前記接触検出部が求めた前記容器の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を表す同次変換行列FTCを計算する第2の処理部と、5)前記同次変換行列FTCに基づいて、前記容器に入った前記物品の位置姿勢に関する情報を補正する第3の処理部とを有するロボットシステムが適用される。
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器の異なる第1〜第6の接触位置にそれぞれ接触させる制御部と、
2)前記接触検出器により前記ハンドが前記容器に接触したことを検出し、前記第1〜第6の接触位置を求め、求めた該第1〜第6の接触位置から前記容器の位置姿勢を求める接触検出部と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置姿勢を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置姿勢と前記接触検出部が求めた前記容器の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を表す同次変換行列FTCを計算する第2の処理部と、5)前記同次変換行列FTCに基づいて、前記容器に入った前記物品の位置姿勢に関する情報を補正する第3の処理部とを有するロボットシステムが適用される。
また、他の観点によれば、容器に入った物品を撮像するカメラ部及び前記物品を把持するハンドを有するロボットと、
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器に接触させる制御部と、
2)前記ハンドが前記容器に接触した際の接触位置を出力する接触位置出力手段と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置と前記接触位置出力手段が出力した前記接触位置との差を補正量として計算する第2の処理部と、
5)前記補正量に基づいて前記容器に入った前記物品の位置に関する情報を補正する第3の処理部とを備えたロボットシステムが適用される。
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器に接触させる制御部と、
2)前記ハンドが前記容器に接触した際の接触位置を出力する接触位置出力手段と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置と前記接触位置出力手段が出力した前記接触位置との差を補正量として計算する第2の処理部と、
5)前記補正量に基づいて前記容器に入った前記物品の位置に関する情報を補正する第3の処理部とを備えたロボットシステムが適用される。
また、他の観点によれば、物品を収容する容器に向かってロボットのハンドを移動させ、該ハンドを該容器に接触させる制御部と、
前記ハンドが前記容器に接触したことを検出し、その接触位置を求める接触検出部と、
前記容器のステレオ画像から、該容器の位置を計算する第1の処理部と、
前記第1の処理部が計算した前記容器の位置と前記接触検出部が求めた前記接触位置との差を補正量として計算する第2の処理部と、
前記補正量に基づいて、前記容器に入った前記物品の高さ方向の位置に関する情報を補正する第3の処理部とを有するロボット制御装置が適用される。
前記ハンドが前記容器に接触したことを検出し、その接触位置を求める接触検出部と、
前記容器のステレオ画像から、該容器の位置を計算する第1の処理部と、
前記第1の処理部が計算した前記容器の位置と前記接触検出部が求めた前記接触位置との差を補正量として計算する第2の処理部と、
前記補正量に基づいて、前記容器に入った前記物品の高さ方向の位置に関する情報を補正する第3の処理部とを有するロボット制御装置が適用される。
また、他の観点によれば、物品を収容する容器に向かってロボットのハンドを移動させ、該ハンドを該容器の異なる第1〜第6の接触位置にそれぞれ接触させる制御部と、
前記ハンドが前記容器に接触したことを検出し、前記第1〜第6の接触位置を求め、求めた該第1〜第6の接触位置から前記容器の位置姿勢を求める接触検出部と、
前記ロボットに設けられたカメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置姿勢を計算する第1の処理部と、
前記第1の処理部が計算した前記容器の位置姿勢と前記接触検出部が求めた前記容器の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を表す同次変換行列FTCを計算する第2の処理部と、
前記同次変換行列FTCに基づいて、前記容器に入った前記物品の位置に関する情報を補正する第3の処理部とを有するロボット制御装置が適用される。
前記ハンドが前記容器に接触したことを検出し、前記第1〜第6の接触位置を求め、求めた該第1〜第6の接触位置から前記容器の位置姿勢を求める接触検出部と、
前記ロボットに設けられたカメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置姿勢を計算する第1の処理部と、
前記第1の処理部が計算した前記容器の位置姿勢と前記接触検出部が求めた前記容器の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を表す同次変換行列FTCを計算する第2の処理部と、
前記同次変換行列FTCに基づいて、前記容器に入った前記物品の位置に関する情報を補正する第3の処理部とを有するロボット制御装置が適用される。
また、他の観点によれば、部品が収容された容器を撮像し、該容器のステレオ画像を取得するステップと、
前記容器のステレオ画像に基づいて、前記容器の位置又は姿勢に関する情報を第1の情報として計算するステップと、
前記容器に向かってロボットのハンドを移動させるステップと、
前記ハンドを前記容器に接触させることにより、該容器の位置又は姿勢に関する情報を第2の情報として計算するステップと、
前記部品を撮像し、該部品のステレオ画像を取得するステップと、
前記部品のステレオ画像に基づいて、前記部品の位置又は姿勢に関する情報を計算するステップと、
前記第1及び第2の情報に基づいて前記部品の位置又は姿勢に関する情報を補正するステップとを含むロボットの制御方法が適用される。
前記容器のステレオ画像に基づいて、前記容器の位置又は姿勢に関する情報を第1の情報として計算するステップと、
前記容器に向かってロボットのハンドを移動させるステップと、
前記ハンドを前記容器に接触させることにより、該容器の位置又は姿勢に関する情報を第2の情報として計算するステップと、
前記部品を撮像し、該部品のステレオ画像を取得するステップと、
前記部品のステレオ画像に基づいて、前記部品の位置又は姿勢に関する情報を計算するステップと、
前記第1及び第2の情報に基づいて前記部品の位置又は姿勢に関する情報を補正するステップとを含むロボットの制御方法が適用される。
また、他の観点によれば、部品が収容された容器を撮像し、該容器のステレオ画像を取得するステップと、
前記容器のステレオ画像に基づいて、前記容器の位置を第1の位置として計算するステップと、
前記容器に向かってロボットのハンドを移動させるステップと、
前記ハンドが前記容器に接触したことを検出し、その接触した位置を第2の位置として求めるステップと、
前記容器の第1の位置と前記第2の位置との差を補正量として計算するステップと、
前記部品を撮像し、該部品のステレオ画像を取得するステップと、
前記部品のステレオ画像に基づいて、前記部品の位置を計算するステップと、
前記補正量に基づいて前記部品の高さ方向の位置に関する情報を補正するステップと、
補正された前記部品の高さ方向の位置に関する情報に基づいて、前記ハンドを用いて前記部品を把持するステップとを含むロボットの制御方法が適用される。
前記容器のステレオ画像に基づいて、前記容器の位置を第1の位置として計算するステップと、
前記容器に向かってロボットのハンドを移動させるステップと、
前記ハンドが前記容器に接触したことを検出し、その接触した位置を第2の位置として求めるステップと、
前記容器の第1の位置と前記第2の位置との差を補正量として計算するステップと、
前記部品を撮像し、該部品のステレオ画像を取得するステップと、
前記部品のステレオ画像に基づいて、前記部品の位置を計算するステップと、
前記補正量に基づいて前記部品の高さ方向の位置に関する情報を補正するステップと、
補正された前記部品の高さ方向の位置に関する情報に基づいて、前記ハンドを用いて前記部品を把持するステップとを含むロボットの制御方法が適用される。
また、他の観点によれば、ロボットに設けられたカメラ部を用いて部品が収容された容器を撮像し、該容器のステレオ画像を取得するステップと、
前記容器のステレオ画像に基づいて、前記容器の位置姿勢を第1の位置姿勢として計算するステップと、
前記容器に向かってロボットのハンドを移動させる処理及び前記記ハンドが前記容器に接触したことを検出し、その接触した接触位置を求める処理を繰り返し、それぞれ異なる少なくとも6つの接触位置を求めるステップと、
前記接触位置から前記容器の位置姿勢を第2の位置姿勢として計算するステップと、
前記第1の位置姿勢と前記第2の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を計算するステップと、
前記フランジ座標系から見た前記カメラ部の位置姿勢に基づいて、前記ロボットのハンドを用いて前記部品を把持するステップとを含むロボットの制御方法が適用される。
前記容器のステレオ画像に基づいて、前記容器の位置姿勢を第1の位置姿勢として計算するステップと、
前記容器に向かってロボットのハンドを移動させる処理及び前記記ハンドが前記容器に接触したことを検出し、その接触した接触位置を求める処理を繰り返し、それぞれ異なる少なくとも6つの接触位置を求めるステップと、
前記接触位置から前記容器の位置姿勢を第2の位置姿勢として計算するステップと、
前記第1の位置姿勢と前記第2の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を計算するステップと、
前記フランジ座標系から見た前記カメラ部の位置姿勢に基づいて、前記ロボットのハンドを用いて前記部品を把持するステップとを含むロボットの制御方法が適用される。
また、他の観点によれば、基部と、
前記基部から延び、開閉する1対の把持爪と、
前記基部から延び、接触すると変形する接触検出部材とを有するロボットハンドが適用される。
前記基部から延び、開閉する1対の把持爪と、
前記基部から延び、接触すると変形する接触検出部材とを有するロボットハンドが適用される。
また、他の観点によれば、基部と、
前記基部から延び、開閉する1対の把持爪とを備え、
前記1対の把持爪のうち、一方の把持爪が、該把持爪の剛性を変更する剛性変更機構を有するロボットハンドが適用される。
前記基部から延び、開閉する1対の把持爪とを備え、
前記1対の把持爪のうち、一方の把持爪が、該把持爪の剛性を変更する剛性変更機構を有するロボットハンドが適用される。
本発明によれば、カメラ部から得られた物品の位置に誤差が含まれていても物品を容器から取り出すことができる。
続いて、添付した図面を参照しつつ、本発明を具体化した実施例につき説明し、本発明の理解に供する。なお、各図において、説明に関連しない部分は図示を省略する場合がある。
<第1の実施例>
本発明の第1の実施例に係るロボットシステム100は、図1に示すように、ロボット110及びこのロボット110の動作を制御するロボット制御装置120を備えている。
ロボット110は、作業台112上の任意の場所に置かれた部品収容容器(容器の一例)BOXの中から山積みになった部品(物品の一例)OBJを取り出すことができる。部品収容容器BOXは、例えば図10に示すように、矩形状の底板114と、側面を構成する4枚の側面板115a〜115dとを有し、上側が開口した容器である。
なお、図1に記載したロボット110は、模式的に描かれている。また、図1に示す座標は、ロボット座標系Crである。ロボット座標系CrのX軸の正方向、Y軸の正方向及びZ軸の正方向は、それぞれ、ロボット110の前方、左方及び上方にとられている。
本発明の第1の実施例に係るロボットシステム100は、図1に示すように、ロボット110及びこのロボット110の動作を制御するロボット制御装置120を備えている。
ロボット110は、作業台112上の任意の場所に置かれた部品収容容器(容器の一例)BOXの中から山積みになった部品(物品の一例)OBJを取り出すことができる。部品収容容器BOXは、例えば図10に示すように、矩形状の底板114と、側面を構成する4枚の側面板115a〜115dとを有し、上側が開口した容器である。
なお、図1に記載したロボット110は、模式的に描かれている。また、図1に示す座標は、ロボット座標系Crである。ロボット座標系CrのX軸の正方向、Y軸の正方向及びZ軸の正方向は、それぞれ、ロボット110の前方、左方及び上方にとられている。
ロボット110は、複数のリンク122a〜122fを有しており、例えば、6軸の多関節ロボットである。各リンク122a〜122fは、関節124を介して連結されている。各関節124は、エンコーダを有するサーボモータ(不図示)によって駆動される。
ロボット110は、図1に示すように、更に、力センサ(接触検出器の一例)126、ハンド(ロボットハンド)108及びカメラ部130を有している。
力センサ126は、ハンド108に加わる力を検出し、力に応じた電気信号を出力することができる。即ち、力センサ126により、ハンド108が物体に接触したことを検出することができる。力センサ126は、例えば、ロボット110の先端部に位置する手首部のフランジ132に設けられている。力センサ126は、ハンド108の接触検出に使用されるため、例えば、ハンド108と物体の接触方向が予め決まっている場合においては、少なくとも接触する方向の力が検出できればよい。
力センサ126は、ハンド108に加わる力を検出し、力に応じた電気信号を出力することができる。即ち、力センサ126により、ハンド108が物体に接触したことを検出することができる。力センサ126は、例えば、ロボット110の先端部に位置する手首部のフランジ132に設けられている。力センサ126は、ハンド108の接触検出に使用されるため、例えば、ハンド108と物体の接触方向が予め決まっている場合においては、少なくとも接触する方向の力が検出できればよい。
なお、接触検出器は、ハンド108が物体に接触したことを検出できるセンサであれば任意でよい。接触検出器の他の例として、接触センサや接触したことを圧力変化として検出する圧力センサが挙げられる。
また、接触したことを導通の有無により電気的に検出する検出手段を用いてハンド108が物体に接触したことを検出することもできる。各関節を駆動するモータのトルク指令値と負荷トルクとの差で表される外乱トルクが予め設定した閾値を超えたことにより接触を検出する検出手段を用いてハンド108が物体に接触したことを検出することもできる。
ハンド108は、力センサ126の先端側に設けられている。ハンド108は、基部133と、基部133から延び開閉する1対の把持爪134、135とを有している。ハンド108は、把持爪134、135を開閉することにより、把持対象物である部品OBJを把持できる。把持爪134、135は、図示しないサーボモータにより駆動され、開閉する。
カメラ部130は、異なる位置にそれぞれ設けられた2台のカメラで構成されており、異なる2つの位置から一度に部品OBJを撮像できる。従って、カメラ部130によって、撮像位置を変えることなく、一度に2枚の部品の画像(ステレオ画像)が取得される。カメラ部130は、例えばハンド108の基部133や、ロボット110の手首部のフランジ132に取り付けられている。
なおカメラ部130は、1台のカメラのみで構成されていてもよい。この場合、カメラ部130はロボット110が移動することによって異なる2つの位置から部品OBJを撮像できる。
カメラ部130によって取得されたステレオ画像によって、部品OBJの3次元の計測データ(部品形状)が得られる。
なおカメラ部130は、1台のカメラのみで構成されていてもよい。この場合、カメラ部130はロボット110が移動することによって異なる2つの位置から部品OBJを撮像できる。
カメラ部130によって取得されたステレオ画像によって、部品OBJの3次元の計測データ(部品形状)が得られる。
ロボット制御装置120は、図1に示すように、記憶部152と、動作シーケンス部154と、軌道生成部156と、サーボ制御部(制御部の一例)158と、ハンド制御部160とを有している。
また、ロボット制御装置120は、更にキャプチャ部162と、位置計算部166と、力センサインターフェース部168と、接触検出部(接触位置出力手段の一例)170と、補正量計算部(第2の処理部の一例)172とを有している。
ロボット制御装置120は、図示しないCPUおよびメモリを内蔵している。図1に示す機能ブロック図により表された各機能は、CPUにより実行されるソフトウェアプログラムやハードウェアによって実現される。
また、ロボット制御装置120は、更にキャプチャ部162と、位置計算部166と、力センサインターフェース部168と、接触検出部(接触位置出力手段の一例)170と、補正量計算部(第2の処理部の一例)172とを有している。
ロボット制御装置120は、図示しないCPUおよびメモリを内蔵している。図1に示す機能ブロック図により表された各機能は、CPUにより実行されるソフトウェアプログラムやハードウェアによって実現される。
記憶部152は、ロボット110を動作させる命令が記述された動作プログラム(JOB)を記憶できる。また、記憶部152は、予め設定された部品OBJの形状及び寸法を表したモデルデータを記憶できる。この記憶部152は例えば、不揮発性の半導体メモリやHDDで構成される。
動作シーケンス部154は、動作プログラムを解析して、必要な処理を実行できる。第1の例として、動作シーケンス部154は、動作プログラムに記述された直線移動命令に基づき、軌道生成部156に対して軌道を生成するように指令cmd1を出力できる。第2の例として、動作シーケンス部154は、動作プログラムに記述された閉命令に基づき、ハンド制御部160に対して、把持爪134、135を閉じるように、指令cmd2を出力できる。
更に、動作シーケンス部154は、カメラ部130の撮像タイミングとなる撮像トリガtrgを出力できる。また、動作シーケンス部154は、接触検出部170に対して、動作を開始させるための指令cmd3を出力できる。
更に、動作シーケンス部154は、カメラ部130の撮像タイミングとなる撮像トリガtrgを出力できる。また、動作シーケンス部154は、接触検出部170に対して、動作を開始させるための指令cmd3を出力できる。
軌道生成部156は、動作シーケンス部154からの指令cmd1に基づいて、ロボット110の軌道を生成できる。例えば、軌道生成部156は、動作シーケンス部154からの指令cmd1に基づいて、直線移動命令で設定された目標位置までロボット110のハンド108を直線移動させるための軌道を生成できる.ロボット110は、生成された軌道に基づいて動作し、部品OBJを把持する位置にハンド108を移動させたり、部品収容容器BOXや部品OBJの撮像位置へカメラ部130を移動させたりする。
サーボ制御部158は、軌道生成部156によって生成された軌道に従って、ロボット110の各関節124を駆動するサーボモータを制御できる。サーボ制御部158は、各サーボモータのエンコーダから信号を受け取り、エンコーダの位置フィードバック情報(エンコーダから取得された角度)Pfbを出力できる。
ハンド制御部160は、動作シーケンス部154が出力した指令cmd2に基づいて、ハンド108の把持爪134、135を駆動するモータを制御し、把持爪134、135を開閉できる。
キャプチャ部162は、動作シーケンス部154が撮像トリガtrgを出力したタイミングで、カメラ部130から画像を取り込み、ステレオ画像である画像データを作成できる。
位置計算部166は、キャプチャ部162が作成した画像データに基づいて、カメラ部130が撮像した部品収容容器BOX又は部品OBJの3次元位置(以下、単に「位置」という。)をそれぞれ位置Pbox及び位置Pobjとして計算できる。これら位置Pbox、Pobjは、エンコーダの位置フィードバック情報Pfbに基づいて、図1に示したロボット座標系Crで表される。
詳細には、位置計算部166は、図2に示すように、画像処理部(第1の処理部の一例)166a及び補正位置計算部(第3の処理部の一例)166bを有している。
画像処理部166aは、部品収容容器BOXの画像データを処理して部品収容容器BOXの位置Pboxを補正量計算部172に出力できる。
補正位置計算部166bは、補正量計算部172が出力する補正量δに基づいて、部品OBJの高さ方向の位置に関する情報を補正し、補正した部品OBJの位置Pobjを動作シーケンス部154に出力できる。
詳細には、位置計算部166は、図2に示すように、画像処理部(第1の処理部の一例)166a及び補正位置計算部(第3の処理部の一例)166bを有している。
画像処理部166aは、部品収容容器BOXの画像データを処理して部品収容容器BOXの位置Pboxを補正量計算部172に出力できる。
補正位置計算部166bは、補正量計算部172が出力する補正量δに基づいて、部品OBJの高さ方向の位置に関する情報を補正し、補正した部品OBJの位置Pobjを動作シーケンス部154に出力できる。
ここで一般に、ステレオ画像から得られた画像データに基づいて計算された部品OBJの位置は、誤差を含んでいる。従って、この位置に基づいてハンド108を制御すると、部品OBJの把持に失敗する場合がある。部品OBJの位置は、特に高さ方向(カメラ部130から撮像対象へ向かう方向)の誤差Derr(図5左図参照)が大きい場合がある。
力センサインターフェース部168は、力センサ126が出力する電気信号を取り込み、力データfを出力することができる。また、力センサインターフェース部168は、力データfの単位を電気量から物理量に変換する。また、力センサインターフェース部168は、エンコーダの位置フィードバック情報Pfbに基づいて、力データfをロボット座標系Crで表す座標変換処理を行う。
接触検出部170は、力データfを予め決められた周期で監視してロボット110のハンド108が部品収容容器BOXに接触したことを検出できる。また、接触検出部170は、接触した際のロボット110の位置に基づいて、ハンド108と部品収容容器BOXとの接触位置Pcntを計算できる。接触位置Pcntは、補正量計算部172に出力される。検出処理部170は、動作シーケンス部154が出力した指令cmd3に基づいて動作を開始する。
補正量計算部172は、位置計算部166の画像処理部166aが計算した部品収容容器BOXの位置Pboxと、ハンド108と部品収容容器BOXとの現実の接触位置Pcntとの高さ方向の位置に関する差を補正量δとして計算できる。この補正量δは、位置計算部166に出力される。
次に、ロボットシステム100の動作(ロボットの制御方法)について説明する。
ロボットシステム100は、図3に示すように、補正量計算処理(図4に示すステップS101〜ステップS107)を実行した後、部品把持動作(ステップS108〜ステップS114)を実行する。以下、ステップ毎に説明する。
(ステップS101)
図4に示すように、ロボット制御装置120の動作シーケンス部154が記憶部152から動作プログラムを読み出す。
ロボットシステム100は、図3に示すように、補正量計算処理(図4に示すステップS101〜ステップS107)を実行した後、部品把持動作(ステップS108〜ステップS114)を実行する。以下、ステップ毎に説明する。
(ステップS101)
図4に示すように、ロボット制御装置120の動作シーケンス部154が記憶部152から動作プログラムを読み出す。
(ステップS102)
動作シーケンス部154が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図5の左図に示すように、ロボット110のカメラ部130は、部品収容容器BOXを撮像する位置に位置決めされる。
動作シーケンス部154が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図5の左図に示すように、ロボット110のカメラ部130は、部品収容容器BOXを撮像する位置に位置決めされる。
(ステップS103)
動作シーケンス部154が、撮像トリガtrgを出力する。
キャプチャ部162は、この撮像トリガtrgが入力されると、カメラ部130を制御し、部品収容容器BOXのステレオ画像を撮像する。キャプチャ部162は、撮像されたステレオ画像である画像データを出力する。
動作シーケンス部154が、撮像トリガtrgを出力する。
キャプチャ部162は、この撮像トリガtrgが入力されると、カメラ部130を制御し、部品収容容器BOXのステレオ画像を撮像する。キャプチャ部162は、撮像されたステレオ画像である画像データを出力する。
(ステップS104)
位置計算部166の画像処理部166a(図2参照)は、キャプチャ部162から得られた画像データを画像処理して、部品収容容器BOXの位置(第1の情報の一例)Pboxを計算する。部品収容容器BOXの位置Pboxは、補正量計算部172に出力される。
位置計算部166の画像処理部166a(図2参照)は、キャプチャ部162から得られた画像データを画像処理して、部品収容容器BOXの位置(第1の情報の一例)Pboxを計算する。部品収容容器BOXの位置Pboxは、補正量計算部172に出力される。
(ステップS105)
動作シーケンス部154が、ハンド108を部品収容容器BOXに接触させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、指令cmd1に基づき、例えば部品収容容器BOXを構成する側面板115a(図10参照)の上端面の方向へハンド108を移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。ハンド108は、部品収容容器BOXに向かって下降する。
動作シーケンス部154が、ハンド108を部品収容容器BOXに接触させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、指令cmd1に基づき、例えば部品収容容器BOXを構成する側面板115a(図10参照)の上端面の方向へハンド108を移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。ハンド108は、部品収容容器BOXに向かって下降する。
(ステップS106)
ハンド108が下降すると、動作シーケンス部154が指令cmd3を出力し、接触検出部170が力データfを監視する。
図5の右図に示すように、ハンド108の把持爪134が部品収容容器BOXを構成する側面板115aの上端面に接触すると、接触検出部170は、力データfに基づいて、その接触を検出する。
ハンド108が下降すると、動作シーケンス部154が指令cmd3を出力し、接触検出部170が力データfを監視する。
図5の右図に示すように、ハンド108の把持爪134が部品収容容器BOXを構成する側面板115aの上端面に接触すると、接触検出部170は、力データfに基づいて、その接触を検出する。
接触検出部170は、接触を検出すると、接触検出信号Sdを動作シーケンス部154に出力する。
動作シーケンス部154は、ハンド108の下降を停止させる。即ち、軌道生成部156はロボット110を減速停止させる軌道を生成する。
サーボ制御部158はこの軌道に従ってロボット110を制御する。
動作シーケンス部154は、ハンド108の下降を停止させる。即ち、軌道生成部156はロボット110を減速停止させる軌道を生成する。
サーボ制御部158はこの軌道に従ってロボット110を制御する。
また、接触検出部170は、ハンド108が部品収容容器BOXに接触した際のロボット110の各サーボモータの位置フィードバック情報(エンコーダから取得された角度)Pfbから、ハンド108の接触位置(第2の情報の一例)Pcntを計算する。
ハンド108の接触位置Pcntは、次の第1の手順及び第2の手順を経て計算される。
第1の手順では、ロボット110の各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置姿勢からハンド108の先端(制御点)までの位置が加算される。
第1の手順では、ロボット110の各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置姿勢からハンド108の先端(制御点)までの位置が加算される。
なお、動作シーケンス部154は、第1の方法として、ステップS105に示したハンド108の下降動作の開始と共に本ステップ(接触検出動作)S106を開始できる。
また、動作シーケンス部154は、第2の方法として、まず、画像データから得られた部品収容容器BOXの水平方向位置にハンド108を位置決めし、次に、画像データから得られた部品収容容器BOXの高さ方向位置H1に基づいて、ハンド108を高さ方向位置H1の上方にある位置H2へ移動させてから、本ステップ106を開始できる。
一般に、本ステップS106に示した接触検出動作においては、ハンド108を低速で移動させる必要があるため、第1の方法よりも第2の方法の方が、処理時間短縮の観点から好ましい。
また、動作シーケンス部154は、第2の方法として、まず、画像データから得られた部品収容容器BOXの水平方向位置にハンド108を位置決めし、次に、画像データから得られた部品収容容器BOXの高さ方向位置H1に基づいて、ハンド108を高さ方向位置H1の上方にある位置H2へ移動させてから、本ステップ106を開始できる。
一般に、本ステップS106に示した接触検出動作においては、ハンド108を低速で移動させる必要があるため、第1の方法よりも第2の方法の方が、処理時間短縮の観点から好ましい。
(ステップS107)
補正量計算部172が、ハンド108の接触位置Pcntと、ステップS104にて位置計算部166が画像データに基づいて計算した部品収容容器BOXの位置Pboxとの高さに関する差を計算する。補正量計算部172は、この差を画像データに基づく部品OBJの位置の補正量δとして求める。
補正量計算部172が、ハンド108の接触位置Pcntと、ステップS104にて位置計算部166が画像データに基づいて計算した部品収容容器BOXの位置Pboxとの高さに関する差を計算する。補正量計算部172は、この差を画像データに基づく部品OBJの位置の補正量δとして求める。
(ステップS108)
軌道生成部156が、部品収容容器BOXに入った部品OBJを撮像するための撮像位置へカメラ部130を移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図6の左図に示すように、カメラ部130は部品OBJを撮像する位置に位置決めされる。
軌道生成部156が、部品収容容器BOXに入った部品OBJを撮像するための撮像位置へカメラ部130を移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図6の左図に示すように、カメラ部130は部品OBJを撮像する位置に位置決めされる。
(ステップS109)
動作シーケンス部154が、撮像トリガtrgを出力する。
キャプチャ部162は、この撮像トリガtrgが入力されると、カメラ部130を制御し、部品収容容器BOXに入った部品OBJのステレオ画像を撮像する。キャプチャ部162は、ステレオ画像である画像データを出力する。
動作シーケンス部154が、撮像トリガtrgを出力する。
キャプチャ部162は、この撮像トリガtrgが入力されると、カメラ部130を制御し、部品収容容器BOXに入った部品OBJのステレオ画像を撮像する。キャプチャ部162は、ステレオ画像である画像データを出力する。
(ステップS110)
位置計算部166の画像処理部166a(図2参照)が、記憶部152から読み出した部品OBJのモデルデータ(図1参照)を使って、画像データから部品OBJを抽出し、画像処理して部品OBJの位置姿勢を算出する。
位置計算部166の画像処理部166a(図2参照)が、記憶部152から読み出した部品OBJのモデルデータ(図1参照)を使って、画像データから部品OBJを抽出し、画像処理して部品OBJの位置姿勢を算出する。
(ステップS111)
位置計算部166の補正位置計算部166bが、ステップS107にて補正量計算部172が求めた補正量δを、算出した部品OBJの高さ方向の位置に加算する。すなわち、補正位置計算部166bが、カメラ部130を用いて求められた部品OBJの高さ方向の位置に関する情報(部品の位置に関する情報の一例)を補正する。この補正された部品OBJの位置Pobjは、動作シーケンス部154に出力される。
位置計算部166の補正位置計算部166bが、ステップS107にて補正量計算部172が求めた補正量δを、算出した部品OBJの高さ方向の位置に加算する。すなわち、補正位置計算部166bが、カメラ部130を用いて求められた部品OBJの高さ方向の位置に関する情報(部品の位置に関する情報の一例)を補正する。この補正された部品OBJの位置Pobjは、動作シーケンス部154に出力される。
(ステップS112)
動作シーケンス部154が、補正された部品OBJの位置Pobjを、ハンド108の移動目標値として設定し、軌道生成部156に対して軌道を生成させるための指令cmd1を出力する。
軌道生成部156が、補正された部品OBJの位置Pobjの方向へハンド108を移動させる軌道を生成する。サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図6の右図に示すように、ロボット110のハンド108は部品OBJを把持する位置に位置決めされる。
動作シーケンス部154が、補正された部品OBJの位置Pobjを、ハンド108の移動目標値として設定し、軌道生成部156に対して軌道を生成させるための指令cmd1を出力する。
軌道生成部156が、補正された部品OBJの位置Pobjの方向へハンド108を移動させる軌道を生成する。サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図6の右図に示すように、ロボット110のハンド108は部品OBJを把持する位置に位置決めされる。
(ステップS113)
動作シーケンス部154が、動作プログラムを解析し、把持爪134、135を閉じる閉命令に基づいて、指令cmd2を出力する。ハンド制御部160は、指令cmd2に基づいて、ハンド108の把持爪134、135を駆動するモータを制御する。その結果、把持爪134、135が閉じ、ハンド108は部品OBJを把持する。
動作シーケンス部154が、動作プログラムを解析し、把持爪134、135を閉じる閉命令に基づいて、指令cmd2を出力する。ハンド制御部160は、指令cmd2に基づいて、ハンド108の把持爪134、135を駆動するモータを制御する。その結果、把持爪134、135が閉じ、ハンド108は部品OBJを把持する。
(ステップS114)
動作シーケンス部154が、ハンド108を上昇させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、動作シーケンス部154からの指令cmd1に基づいて、ハンド108を上昇させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、ロボット110はハンド108を上方に移動させ、ロボット110は部品OBJを取り出すことができる。
動作シーケンス部154が、ハンド108を上昇させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、動作シーケンス部154からの指令cmd1に基づいて、ハンド108を上昇させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、ロボット110はハンド108を上方に移動させ、ロボット110は部品OBJを取り出すことができる。
以上説明したように、本実施例に係るロボットシステム100は、カメラ部130にて撮像したステレオ画像から得られた部品OBJの高さ方向の位置に誤差が含まれていても、部品OBJを部品収容容器BOXから取り出すことができる。
また、ロボットシステム100は、ハンド108が把持対象となる部品OBJではなく、その部品OBJを収容する部品収容容器BOXに接触して補正量δを求めるので、ハンド108が部品OBJと接触した際に山積みになった部品OBJの位置をずらしてしまう可能性が低減される。
また、ロボットシステム100は、ハンド108が把持対象となる部品OBJではなく、その部品OBJを収容する部品収容容器BOXに接触して補正量δを求めるので、ハンド108が部品OBJと接触した際に山積みになった部品OBJの位置をずらしてしまう可能性が低減される。
なお、本実施例において、ハンド108が接触する位置は、部品収容容器BOXを構成する側面板115a(図10参照)の上端面に限定されるものではない。
また、一般に、部品収容容器BOXの置き場所が変わると、カメラ部130から得られる部品OBJの高さ方向の位置の誤差も変動する。この誤差の変動が許容範囲内に収まっている場合には、図3に示す補正量計算処理(図4に示すステップS101〜ステップS107)は、少なくともロボット110を教示する際に一度だけ実行されていればよい。
また、一般に、部品収容容器BOXの置き場所が変わると、カメラ部130から得られる部品OBJの高さ方向の位置の誤差も変動する。この誤差の変動が許容範囲内に収まっている場合には、図3に示す補正量計算処理(図4に示すステップS101〜ステップS107)は、少なくともロボット110を教示する際に一度だけ実行されていればよい。
<第2の実施例>
続いて、本発明の第2の実施例に係るロボットシステム200について説明する。第1の実施例に係るロボットシステム100と同一の構成要素及び動作ステップについては、同じ符号を付して詳しい説明を省略する場合がある。
図7に示すロボットシステム200は、ハンド108が部品収容容器BOXの異なる少なくとも6点に接触することにより、部品収容容器BOXの位置だけでなく姿勢についても計算する手順を実行する。
続いて、本発明の第2の実施例に係るロボットシステム200について説明する。第1の実施例に係るロボットシステム100と同一の構成要素及び動作ステップについては、同じ符号を付して詳しい説明を省略する場合がある。
図7に示すロボットシステム200は、ハンド108が部品収容容器BOXの異なる少なくとも6点に接触することにより、部品収容容器BOXの位置だけでなく姿勢についても計算する手順を実行する。
位置計算部266は、キャプチャ部162が作成した画像データに基づいて、カメラ部130が撮像した部品収容容器BOX又は部品OBJの3次元の位置姿勢(以下、単に「位置姿勢」という。)をそれぞれ位置姿勢PAbox及び位置姿勢Pobjとして計算できる。これら位置姿勢PAbox、PAobjは、エンコーダの位置フィードバック情報Pfbに基づいて、図1に示したロボット座標系Crで表される。
詳細には、位置計算部266は、図8に示すように、画像処理部(第1の処理部の一例)266a及び補正位置計算部(第3の処理部の一例)266bを有している。
画像処理部266aは、部品収容容器BOXの画像データを処理して部品収容容器BOXの位置姿勢PAboxを補正量計算部272に出力できる。
補正位置計算部266bは、補正量計算部272が出力する同次変換行列FTCに基づいて、部品OBJの位置姿勢に関する情報を補正し、補正した部品OBJの位置姿勢PAobjを動作シーケンス部154に出力できる。
詳細には、位置計算部266は、図8に示すように、画像処理部(第1の処理部の一例)266a及び補正位置計算部(第3の処理部の一例)266bを有している。
画像処理部266aは、部品収容容器BOXの画像データを処理して部品収容容器BOXの位置姿勢PAboxを補正量計算部272に出力できる。
補正位置計算部266bは、補正量計算部272が出力する同次変換行列FTCに基づいて、部品OBJの位置姿勢に関する情報を補正し、補正した部品OBJの位置姿勢PAobjを動作シーケンス部154に出力できる。
接触検出部270は、ハンドの異なる6点の接触位置から、部品収容容器BOXの位置姿勢PAcntを求めることができる。
補正量計算部272(第2の処理部の一例)は、画像データに基づいて計算した部品収容容器BOXの位置姿勢PAboxとハンドを接触させて求めた部品収容容器BOXの位置姿勢PAcntとに基づいて、ロボット110のフランジ132に固定されたフランジ座標系Cfから見たカメラ部130の位置姿勢を表すための同次変換行列FTCを計算できる。
次に、ロボットシステム200の動作(ロボットの制御方法)について説明する。
ロボットシステム200は、図3に示すように、補正量計算処理(図9に示すステップS201〜ステップS209)を実行した後、部品把持動作(図4に示したステップS108〜ステップS114に対応するステップ)を実行する。以下、補正量計算処理についてのみ、ステップ毎に説明する。
ロボットシステム200は、図3に示すように、補正量計算処理(図9に示すステップS201〜ステップS209)を実行した後、部品把持動作(図4に示したステップS108〜ステップS114に対応するステップ)を実行する。以下、補正量計算処理についてのみ、ステップ毎に説明する。
(ステップS201)
図9に示すように、ロボット制御装置220の動作シーケンス部154が記憶部152から動作プログラムを読み出す。
図9に示すように、ロボット制御装置220の動作シーケンス部154が記憶部152から動作プログラムを読み出す。
(ステップS202)
動作シーケンス部154が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図5の左図に示すように、ロボット110のカメラ部130は、部品収容容器BOXを撮像する位置に位置決めされる。
動作シーケンス部154が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、カメラ部130を部品収容容器BOXの撮像位置へ移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。その結果、図5の左図に示すように、ロボット110のカメラ部130は、部品収容容器BOXを撮像する位置に位置決めされる。
(ステップS203)
動作シーケンス部154が、撮像トリガtrgを出力する。
キャプチャ部162は、この撮像トリガtrgが入力されると、カメラ部130を制御し、部品収容容器BOXのステレオ画像を撮像する。キャプチャ部162は、撮像されたステレオ画像である画像データを出力する。
動作シーケンス部154が、撮像トリガtrgを出力する。
キャプチャ部162は、この撮像トリガtrgが入力されると、カメラ部130を制御し、部品収容容器BOXのステレオ画像を撮像する。キャプチャ部162は、撮像されたステレオ画像である画像データを出力する。
(ステップS204)
位置計算部266の画像処理部266a(図8参照)は、キャプチャ部162から得られた画像データを画像処理して、部品収容容器BOXの位置姿勢(第1の情報の一例)PAboxを計算する。部品収容容器BOXの位置姿勢PAboxは、補正量計算部272に出力される。
位置計算部266の画像処理部266a(図8参照)は、キャプチャ部162から得られた画像データを画像処理して、部品収容容器BOXの位置姿勢(第1の情報の一例)PAboxを計算する。部品収容容器BOXの位置姿勢PAboxは、補正量計算部272に出力される。
(ステップS205)
動作シーケンス部154が、ハンド108を部品収容容器BOXに接触させる命令に基づいて、指令cmd1を出力する。
指令cmd1に基づき、軌道生成部156が、部品収容容器BOXの方向へハンド108を移動させる軌道を生成する。ハンド108の移動目標位置は、例えば、部品収容容器BOXを構成する側面板の上端面にある点P1(図13参照)に設定される。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。ハンド108は、部品収容容器BOXに向かって移動する。
動作シーケンス部154が、ハンド108を部品収容容器BOXに接触させる命令に基づいて、指令cmd1を出力する。
指令cmd1に基づき、軌道生成部156が、部品収容容器BOXの方向へハンド108を移動させる軌道を生成する。ハンド108の移動目標位置は、例えば、部品収容容器BOXを構成する側面板の上端面にある点P1(図13参照)に設定される。
サーボ制御部158は、生成された軌道に基づいて、ロボット110を制御する。ハンド108は、部品収容容器BOXに向かって移動する。
(ステップS206)
ハンド108が移動すると、動作シーケンス部154が指令cmd3を出力し、接触検出部270が、力データfを監視する。
図5の右図に示すように、ハンド108の把持爪134が部品収容容器BOXに接触すると、接触検出部270は、力データfに基づいて、その接触を検出する。
ハンド108が移動すると、動作シーケンス部154が指令cmd3を出力し、接触検出部270が、力データfを監視する。
図5の右図に示すように、ハンド108の把持爪134が部品収容容器BOXに接触すると、接触検出部270は、力データfに基づいて、その接触を検出する。
接触検出部270は、接触を検出すると、接触検出信号Sdを動作シーケンス部154に出力する。動作シーケンス部154は、ハンド108の移動を停止させる。即ち、軌道生成部156はロボット110を減速停止させる軌道を生成し、サーボ制御部158はこの軌道に従ってロボット110を制御する。
また、接触検出部270は、ハンド108が部品収容容器BOXに接触した際の、各サーボモータの位置フィードバック情報Pfbから、ロボット座標系Crにおけるハンドの接触位置を計算する。
ハンド108の接触位置は、次の第1の手順及び第2の手順を経て計算される。
第1の手順では、ロボット110の各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置姿勢からハンド108の先端(制御点)までの位置姿勢が加算される。
第1の手順では、ロボット110の各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置姿勢からハンド108の先端(制御点)までの位置姿勢が加算される。
(ステップS207)
接触検出部270が、部品収容容器BOXに固定され、部品収容容器BOXの角点Pcc(図11参照)を原点とする容器座標系Cbの位置姿勢を求めるために、例えば図13に示す少なくとも6つの異なるハンド108の接触位置P1〜P6が取得されたか否かを判断する。
なお、ロボットは、図12に示すように、ハンド108の例えば把持爪134の決まった角点Phc(ハンドの予め決められた部位の一例)で部品収容容器BOXに接触する。
接触位置が合計6点取得されていない場合は、ステップS205及びステップS206に戻り、部品収容容器BOXの異なる位置にハンドを接触させる
一方、接触位置が合計6点取得された場合は、次のステップS208へ進む。
接触検出部270が、部品収容容器BOXに固定され、部品収容容器BOXの角点Pcc(図11参照)を原点とする容器座標系Cbの位置姿勢を求めるために、例えば図13に示す少なくとも6つの異なるハンド108の接触位置P1〜P6が取得されたか否かを判断する。
なお、ロボットは、図12に示すように、ハンド108の例えば把持爪134の決まった角点Phc(ハンドの予め決められた部位の一例)で部品収容容器BOXに接触する。
接触位置が合計6点取得されていない場合は、ステップS205及びステップS206に戻り、部品収容容器BOXの異なる位置にハンドを接触させる
一方、接触位置が合計6点取得された場合は、次のステップS208へ進む。
(ステップS208)
取得された合計6点の接触位置(図13参照)P1〜P6の座標から前述の容器座標系Cbの位置姿勢を計算し、ハンド108を接触させて求めた部品収容容器BOXの位置姿勢(第2の情報の一例)PAcntとする。
容器座標系Cbの計算方法の例については後述する。
取得された合計6点の接触位置(図13参照)P1〜P6の座標から前述の容器座標系Cbの位置姿勢を計算し、ハンド108を接触させて求めた部品収容容器BOXの位置姿勢(第2の情報の一例)PAcntとする。
容器座標系Cbの計算方法の例については後述する。
(ステップS209)
補正量計算部272が、ハンド108を接触させて求めた部品収容容器BOXの位置姿勢PAcntと、ステップS204にて位置計算部266が画像データに基づいて計算した部品収容容器BOXの位置姿勢PAboxとに基づいて、ロボット110のフランジ132に固定されたフランジ座標系Cfから見たカメラ部130の位置姿勢を表すための同次変換行列FTCを計算する。この同次変換行列FTCが、補正量計算処理結果となる。
補正量計算部272が、ハンド108を接触させて求めた部品収容容器BOXの位置姿勢PAcntと、ステップS204にて位置計算部266が画像データに基づいて計算した部品収容容器BOXの位置姿勢PAboxとに基づいて、ロボット110のフランジ132に固定されたフランジ座標系Cfから見たカメラ部130の位置姿勢を表すための同次変換行列FTCを計算する。この同次変換行列FTCが、補正量計算処理結果となる。
ここで、ロボット110のフランジ132から見たカメラ部130の位置姿勢の計算方法(同次変換行列FTCの計算方法)について説明する。
図14に示すように、ロボット座標系Crから見たフランジ座標系(フランジ132に固定された座標系)Cfを同次変換行列RTF、フランジ座標系Cfから見たカメラ座標系(カメラ部130に固定された座標系)Ccを同次変換行列FTC、カメラ座標系Ccから見た容器座標系(部品収容容器BOXに固定された座標系)Cbを同次変換行列CT Bにより表すと、これらの行列の積RTBは次の式で表される。
図14に示すように、ロボット座標系Crから見たフランジ座標系(フランジ132に固定された座標系)Cfを同次変換行列RTF、フランジ座標系Cfから見たカメラ座標系(カメラ部130に固定された座標系)Ccを同次変換行列FTC、カメラ座標系Ccから見た容器座標系(部品収容容器BOXに固定された座標系)Cbを同次変換行列CT Bにより表すと、これらの行列の積RTBは次の式で表される。
RTB = RTF・FTC・CTB 式(1)
この行列RTBは、カメラ部130を用いて計算した部品収容容器BOXの位置姿勢PAboxを、ロボット座標系Crから見た位置姿勢に変換する行列である。
なお、図14及び図15に示すロボット110は、各座標系と同次変換行列との関係を示すために、模式的に描かれている。そのため、カメラ部130は、フランジ132に固定されている。カメラ部130は、図7に示すように、ハンド108の基部133に固定されていてもよい。
なお、図14及び図15に示すロボット110は、各座標系と同次変換行列との関係を示すために、模式的に描かれている。そのため、カメラ部130は、フランジ132に固定されている。カメラ部130は、図7に示すように、ハンド108の基部133に固定されていてもよい。
ハンド108が部品収容容器BOXに接触することによって計算された部品収容容器BOXの位置姿勢PAcntを図15に示す行列RTtとし、この行列RTtが式(1)で求まる行列RTBに等しいとして、同次変換行列FTCについて解くと、次式(2)が得られる。
FTC = (RTF)−1・RTt・(CTB)−1 式(2)
式(2)中、右肩の添字(−1)は括弧の行列の逆行列を表す。この同次変換行列FT Cが、補正量計算処理結果である。
すなわち、同次変換行列RTF、同次変換行列RTt、同次変換行列CTBをそれぞれ求めれば、フランジ座標系Cfから見たカメラ部130の位置姿勢(同次変換行列FTC)が決まる。
ここで、同次変換行列RTFは、ステップS202における、カメラ部130で部品収容容器BOXを撮像した際のロボット座標系Crから見たフランジ132の位置姿勢を表す行列である。
同次変換行列RTtは、ステップS208にて求めた、ハンド108が部品収容容器BOXに接触することによって計算されたロボット座標系Crから見た部品収容容器BOXの位置姿勢PAcntを表す行列である。
同次変換行列CTBは、ステップS204にて求めた、画像データから算出した部品収容容器BOXの位置姿勢PAboxを表す行列である。
すなわち、同次変換行列RTF、同次変換行列RTt、同次変換行列CTBをそれぞれ求めれば、フランジ座標系Cfから見たカメラ部130の位置姿勢(同次変換行列FTC)が決まる。
ここで、同次変換行列RTFは、ステップS202における、カメラ部130で部品収容容器BOXを撮像した際のロボット座標系Crから見たフランジ132の位置姿勢を表す行列である。
同次変換行列RTtは、ステップS208にて求めた、ハンド108が部品収容容器BOXに接触することによって計算されたロボット座標系Crから見た部品収容容器BOXの位置姿勢PAcntを表す行列である。
同次変換行列CTBは、ステップS204にて求めた、画像データから算出した部品収容容器BOXの位置姿勢PAboxを表す行列である。
以降の図3に示す部品把持動作においては、図8に示す位置計算部266の補正位置計算部266bが、同次変換行列FTCを使い、上式(1)によって、カメラ部130の画像データから画像処理部266aが算出した部品OBJの位置姿勢に関する情報を、ロボット座標系Crから見た位置姿勢に関する情報に変換する。
次に、前述のステップS208における容器座標系Cbの位置姿勢の計算方法について詳細に説明する。なお、以下の説明では、ハンド108の接触位置P1〜P6にある点を、点P1〜P6という場合がある。
容器座標系Cbの位置姿勢の計算は、以下の計算ステップSc1〜Sc3に従って実行される。
容器座標系Cbの位置姿勢の計算は、以下の計算ステップSc1〜Sc3に従って実行される。
(計算ステップSc1)
本ステップSc1では、部品収容容器BOXの側面板115a、115bの上端面に位置する3点P1、P2、P3を用い、図16に示すような、点P1を原点とする第1の座標系Cb1を求める。具体的には、以下の手順を実行する。
本ステップSc1では、部品収容容器BOXの側面板115a、115bの上端面に位置する3点P1、P2、P3を用い、図16に示すような、点P1を原点とする第1の座標系Cb1を求める。具体的には、以下の手順を実行する。
(手順1)
点P1から点P2へ向かう単位ベクトルaを次式より求める。
点P1から点P2へ向かう単位ベクトルaを次式より求める。
a = (P2−P1)/|P2−P1| 式(3)
(手順2)
点P1から点P3へ向かうベクトルb1を次式より求める。
点P1から点P3へ向かうベクトルb1を次式より求める。
b1 = P3−P1 式(4)
(手順3)
ベクトルb1の単位ベクトルaと直角を成す成分であるベクトルb2を次式より求める。
ベクトルb1の単位ベクトルaと直角を成す成分であるベクトルb2を次式より求める。
b2 = b1−(b1・a)a 式(5)
(手順4)
ベクトルb2の単位ベクトルbを次式より求める。
ベクトルb2の単位ベクトルbを次式より求める。
b = b2/|b2| 式(6)
(手順5)
単位ベクトルaと単位ベクトルbの外積として次式より単位ベクトルcを求める。
単位ベクトルaと単位ベクトルbの外積として次式より単位ベクトルcを求める。
c = a×b 式(7)
求めた単位ベクトルa、単位ベクトルb及び単位ベクトルcをそれぞれX軸、Y軸及びZ軸とし、原点を点P1とする座標系を第1の座標系Cb1と定義する。第1の座標系Cb1は、ロボット座標系Crから見た座標系として、次式の同次変換行列RT1により表される。
ここで、P1は、ロボット座標系Crから見たP1の位置ベクトルである。
(計算ステップSc2)
本ステップSc2では、図18に示すように、部品収容容器BOXの側面板の表面に位置する点P4及び点P5を用いてできるベクトルを使って、第1の座標系Cb1のX軸方向(単位ベクトルa方向)を部品収容容器BOXの側面方向に合わせる。具体的には、以下の手順を実行する。
(手順1)
図17に示すように、点P4から点P5へ向かうベクトルd1を次式より求める。
本ステップSc2では、図18に示すように、部品収容容器BOXの側面板の表面に位置する点P4及び点P5を用いてできるベクトルを使って、第1の座標系Cb1のX軸方向(単位ベクトルa方向)を部品収容容器BOXの側面方向に合わせる。具体的には、以下の手順を実行する。
(手順1)
図17に示すように、点P4から点P5へ向かうベクトルd1を次式より求める。
d1 = P5−P4 式(9)
(手順2)
単位ベクトルcと直角を成すベクトルd1の成分であるベクトルd2を次式より求める。
単位ベクトルcと直角を成すベクトルd1の成分であるベクトルd2を次式より求める。
d2 = d1−(d1・c)c 式(10)
(手順3)
d2の単位ベクトルdを次式より求める。
d2の単位ベクトルdを次式より求める。
d = d2/|d2| 式(11)
(手順4)
単位ベクトルaと単位ベクトルdの成す角αを次式より求める。
単位ベクトルaと単位ベクトルdの成す角αを次式より求める。
α = cos−1((a・d)/(|a||d|)) 式(12)
(手順5)
第1の座標系Cb1をZ軸まわり(単位ベクトルcまわり)に回転させる回転角度θを次式より求める。
第1の座標系Cb1をZ軸まわり(単位ベクトルcまわり)に回転させる回転角度θを次式より求める。
((a×d)・c) > 0 ならば θ = α 式(13a)
((a×d)・c) < 0 ならば θ =−α 式(13b)
((a×d)・c) < 0 ならば θ =−α 式(13b)
(手順6)
第1の座標系Cb1を回転させた座標系を第2の座標系Cb2と定義する。第2の座標系Cb2は、ロボット座標系Crから見た座標系として、次式の同次変換行列RT2により表される。
第1の座標系Cb1を回転させた座標系を第2の座標系Cb2と定義する。第2の座標系Cb2は、ロボット座標系Crから見た座標系として、次式の同次変換行列RT2により表される。
ここでRz(θ)はZ軸まわりの回転を表す次の3×3行列である。
(計算ステップSc3)
本ステップSc3では、図19に示すように、部品収容容器BOXの側面板115b及び側面板115aの表面にそれぞれ位置する点P4及び点P6を用いて、第2の座標系Cb2の原点P1を部品収容容器BOXの角点Pccに合わせ、容器座標系Cbを求める。具体的には、以下の手順を実行する。
本ステップSc3では、図19に示すように、部品収容容器BOXの側面板115b及び側面板115aの表面にそれぞれ位置する点P4及び点P6を用いて、第2の座標系Cb2の原点P1を部品収容容器BOXの角点Pccに合わせ、容器座標系Cbを求める。具体的には、以下の手順を実行する。
(手順1)
点P4を第2の座標系Cb2から見た位置ベクトル2P4に変換する。
点P4を第2の座標系Cb2から見た位置ベクトル2P4に変換する。
ここで、RP4は、ロボット座標系Crから見たP4の位置ベクトルである。2P4x、2P4y、2P4zは、それぞれ、第2の座標系Cb2から見た位置ベクトル2P4のx、y、z成分である。
(手順2)
点P6を第2の座標系Cb2から見た位置ベクトル2P6に変換する。
点P6を第2の座標系Cb2から見た位置ベクトル2P6に変換する。
ここで、RP6は、ロボット座標系Crから見たP6の位置ベクトルである。2P6x、2P6y、2P6zは、それぞれ、第2の座標系Cb2から見た位置ベクトル2P6のx、y、z成分である。
第2の座標系Cb2を並進移動させた座標系を容器座標系Cbとする。容器座標系Cbは、ロボット座標系Crから見た座標系として、次式の同次変換行列RT3により表される。
ここで、I3は3×3の単位行列である。
計算結果のRP3が容器座標系Cbの原点、すなわち部品収容容器BOXの角点Pccの座標である。
なお、部品収容容器BOXの外形が理想的な直方体でない場合には、6点ではなく、各面を3点ずつ接触して面を確定し、面どうしが交差する辺に沿って座標系の位置を決定すればよい。
以上説明したように、本実施例に係るロボットシステム200は、カメラ部130にて撮像したステレオ画像から得られた部品OBJの位置に誤差が含まれているだけでなく、更にロボット座標系Crから見たカメラ部130の位置姿勢に誤差が含まれていても部品を部品収容容器BOXから取り出すことができる。
その際、例えば、市松模様や非対称な図形などが描かれた専用のキャリブレーション対象物は不要である。
その際、例えば、市松模様や非対称な図形などが描かれた専用のキャリブレーション対象物は不要である。
<第3の実施例>
続いて、本発明の第3の実施例に係るロボットシステム300について説明する。第1及び第2の実施例に係るロボットシステムと同一の構成要素及び動作ステップについては、同じ符号を付して詳しい説明を省略する場合がある。
続いて、本発明の第3の実施例に係るロボットシステム300について説明する。第1及び第2の実施例に係るロボットシステムと同一の構成要素及び動作ステップについては、同じ符号を付して詳しい説明を省略する場合がある。
ロボットシステム300のロボット310が有するハンド308は、図20に示すように、第1の実施例に係るハンド108と比較すると、部品収容容器BOXに接触する接触検出プローブ(接触検出部材の一例)380を更に有している。
基部133から延びる接触検出プローブ380は、物体に接触すると、接触検出プローブ380の長手方向となる第1の方向、第1の方向と交差する第2の方向、並びに第1及び第2の方向に交差する第3の方向のうち、少なくとも1方向に弾性変形することができる。接触検出プローブ380は、例えば弾性体により構成される。
基部133から延びる接触検出プローブ380は、物体に接触すると、接触検出プローブ380の長手方向となる第1の方向、第1の方向と交差する第2の方向、並びに第1及び第2の方向に交差する第3の方向のうち、少なくとも1方向に弾性変形することができる。接触検出プローブ380は、例えば弾性体により構成される。
接触検出プローブ380の先端部には、図22の左図に示すように球状の球状部382が形成されている。
接触検出プローブ380は、部品収容容器BOXに接触する際に、ハンド308又はロボット310のリンク122a〜122fが部品収容容器BOXに干渉しないよう、その長さ及び長手方向の向きが設定されている。
接触検出プローブ380は、ハンド308から取り外すことができるように構成されている。接触検出プローブ380は、ロボット310の作業性を損なわないよう、使用しない際にはハンド308に格納されていてもよい。
接触検出プローブ380は、部品収容容器BOXに接触する際に、ハンド308又はロボット310のリンク122a〜122fが部品収容容器BOXに干渉しないよう、その長さ及び長手方向の向きが設定されている。
接触検出プローブ380は、ハンド308から取り外すことができるように構成されている。接触検出プローブ380は、ロボット310の作業性を損なわないよう、使用しない際にはハンド308に格納されていてもよい。
図20に示すロボット制御装置320の接触検出部370は、力データfを予め決められた周期で監視して接触検出プローブ380が物体に接触したことを検出できる。また、接触検出部370は、接触検出プローブ380の先端部の位置及び力データfを記憶部371に記憶できる。
次に、ロボットシステム300の動作(ロボットの制御方法)について説明する。第1の実施例に係るロボットシステム100の動作とは、特に接触検出動作が相違するため、接触検出動作を中心に説明する。
まず、ロボットシステム300は、図4に示すステップS101〜S104を実行する。即ち、図22の左図に示すように、ロボット310のカメラ部130は部品収容容器BOXを撮像する位置に位置決めされ、撮像されたステレオ画像に基づいて、部品収容容器BOXの位置Pboxが補正量計算部172に出力される。
その後、ロボット310のハンド308が部品収容容器BOXの方向へ移動する(ステップS105が実行される)と共に、図21に示す接触検出動作が実行される。接触検出動作は、以下のステップに従って実行される。
(ステップS306a)
同図21に示すように、接触検出部370が、力センサインターフェース部168が出力する力データfを監視し、力データfの値が予め設定された検出閾値fthrを超えているか否かを判断する。
力データfの値が、検出閾値fthrを超えていない場合は、ステップS306b及びステップ306cへ進む。
一方、図22の右図に示すように、接触検出プローブ380が部品収容容器BOXに接触し、力データfの値が、検出閾値fthrを超えた場合(図24に示す時刻t0)は、ステップS306dへ進む。
まず、ロボットシステム300は、図4に示すステップS101〜S104を実行する。即ち、図22の左図に示すように、ロボット310のカメラ部130は部品収容容器BOXを撮像する位置に位置決めされ、撮像されたステレオ画像に基づいて、部品収容容器BOXの位置Pboxが補正量計算部172に出力される。
その後、ロボット310のハンド308が部品収容容器BOXの方向へ移動する(ステップS105が実行される)と共に、図21に示す接触検出動作が実行される。接触検出動作は、以下のステップに従って実行される。
(ステップS306a)
同図21に示すように、接触検出部370が、力センサインターフェース部168が出力する力データfを監視し、力データfの値が予め設定された検出閾値fthrを超えているか否かを判断する。
力データfの値が、検出閾値fthrを超えていない場合は、ステップS306b及びステップ306cへ進む。
一方、図22の右図に示すように、接触検出プローブ380が部品収容容器BOXに接触し、力データfの値が、検出閾値fthrを超えた場合(図24に示す時刻t0)は、ステップS306dへ進む。
(ステップS306b)
接触検出部370が、記憶部371に力データfを記憶する。この記憶処理は、記憶部371に設けられた第1のリングバッファ領域に力データfを書き込む(上書きする)ことで実行される。記憶部371に記憶される力データfの一例を図24に示す。同図の横軸は時刻を示している。右縦軸は力データfを示している。
接触検出部370が、記憶部371に力データfを記憶する。この記憶処理は、記憶部371に設けられた第1のリングバッファ領域に力データfを書き込む(上書きする)ことで実行される。記憶部371に記憶される力データfの一例を図24に示す。同図の横軸は時刻を示している。右縦軸は力データfを示している。
(ステップS306c)
ステップS306bと並行して、接触検出部370が、接触検出プローブ380の3次元の先端部位置(以下、単に「先端部位置」という場合がある。)Ptopを計算し、計算した先端部位置Ptopを記憶部371に記憶する。この記憶処理は、記憶部371に設けられた第2のリングバッファ領域に先端部位置Ptopを書き込む(上書きする)ことで実行される。記憶部371に記憶される先端部位置Ptopの一例を図24に示す。なお、同図24は、先端部位置Ptopの高さ方向の位置についてのみ示している。
先端部位置Ptopは、簡易的に、接触検出プローブ380の先端部に形成された球状部382の中心位置とすることができる。
ステップS306bと並行して、接触検出部370が、接触検出プローブ380の3次元の先端部位置(以下、単に「先端部位置」という場合がある。)Ptopを計算し、計算した先端部位置Ptopを記憶部371に記憶する。この記憶処理は、記憶部371に設けられた第2のリングバッファ領域に先端部位置Ptopを書き込む(上書きする)ことで実行される。記憶部371に記憶される先端部位置Ptopの一例を図24に示す。なお、同図24は、先端部位置Ptopの高さ方向の位置についてのみ示している。
先端部位置Ptopは、簡易的に、接触検出プローブ380の先端部に形成された球状部382の中心位置とすることができる。
接触検出プローブ380の先端部位置Ptopは第1の手順及び第2の手順を経て計算される。
第1の手順では、ロボット310の各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置から接触検出プローブ380の先端部までの位置が加算される。
第1の手順では、ロボット310の各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置から接触検出プローブ380の先端部までの位置が加算される。
記憶部371に記憶される高さ方向の先端部位置Ptopの一例を図24に示す。同図に示す先端部位置Ptopは、計算上の先端部位置であり、現実の接触検出プローブの先端部位置を示しているものではない。そのため、部品収容容器BOXに接触した時刻t0以降も、先端部位置Ptopは変化している。
ところで、前述の接触検出プローブ380の先端部位置(接触検出プローブ380の先端部に形成された球状部382の中心位置)Ptopは、接触検出プローブ380が部品収容容器BOXに接触する実際の接触位置とは異なる。
そこで、より精度良く接触位置を検出するため、球状部382の中心位置Ptcpに球状部382の半径Rを加算して、接触検出プローブ380の先端部位置Ptopとすることができる。
具体的には、先端部位置Ptop(R[xtop ytop ztop])は、接触検出プローブ380のアプローチ方向に応じて、次のケース1〜6に従って計算される。
そこで、より精度良く接触位置を検出するため、球状部382の中心位置Ptcpに球状部382の半径Rを加算して、接触検出プローブ380の先端部位置Ptopとすることができる。
具体的には、先端部位置Ptop(R[xtop ytop ztop])は、接触検出プローブ380のアプローチ方向に応じて、次のケース1〜6に従って計算される。
(ケース1)X軸の負方向から正方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[R 0 0] 式(19a)
(ケース2)X軸の正方向から負方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[−R 0 0] 式(19b)
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[R 0 0] 式(19a)
(ケース2)X軸の正方向から負方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[−R 0 0] 式(19b)
(ケース3)Y軸の負方向から正方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 R 0] 式(19c)
(ケース4)Y軸の正方向から負方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 −R 0] 式(19d)
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 R 0] 式(19c)
(ケース4)Y軸の正方向から負方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 −R 0] 式(19d)
(ケース5)Z軸の負方向から正方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 0 R] 式(19e)
(ケース6)Z軸の正方向から負方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 0 −R] 式(19f)
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 0 R] 式(19e)
(ケース6)Z軸の正方向から負方向へアプローチした場合
R[xtop ytop ztop]
= R[xtcp ytcp ztcp]+[0 0 −R] 式(19f)
上記ケース1〜6に当てはまらない場合には、接触検出プローブ380の移動量の多い方向をアプローチ方向として計算できる。この場合、精度に対する影響は少ない。
例えば、アプローチ動作としてX軸の負方向から正方向へ200ミリ、Y軸の正方向から負方向へ10ミリ移動した場合は、前者の方が後者よりも移動量が多いので、接触検出プローブ380の先端部位置Ptopの計算は、ケース1(X軸の負方向から正方向へアプローチした場合)に示した式(19a)に従う。
例えば、アプローチ動作としてX軸の負方向から正方向へ200ミリ、Y軸の正方向から負方向へ10ミリ移動した場合は、前者の方が後者よりも移動量が多いので、接触検出プローブ380の先端部位置Ptopの計算は、ケース1(X軸の負方向から正方向へアプローチした場合)に示した式(19a)に従う。
(ステップS306d)
接触検出部370が、接触検出信号Sdを動作シーケンス部154へ送信する。
動作シーケンス部154は、ロボット310を減速停止させる。即ち、軌道生成部156はロボット310を減速停止させる軌道を生成する。
サーボ制御部158は、この軌道に従ってロボット310を制御する。(図25の時刻t1〜時刻t2参照)。
接触検出部370が、接触検出信号Sdを動作シーケンス部154へ送信する。
動作シーケンス部154は、ロボット310を減速停止させる。即ち、軌道生成部156はロボット310を減速停止させる軌道を生成する。
サーボ制御部158は、この軌道に従ってロボット310を制御する。(図25の時刻t1〜時刻t2参照)。
(ステップS306e)
接触検出部370が、記憶部371に記憶した力データfから、接触検出プローブ380が部品収容容器BOXに接触した時刻t0を求める。
この時刻t0は、図24に示すように、力データfの時間経過に対する変化率が予め設定された大きさ以上に変化する時刻(力データfが大きく立ち上がる時刻)である。
接触検出部370が、記憶部371に記憶した力データfから、接触検出プローブ380が部品収容容器BOXに接触した時刻t0を求める。
この時刻t0は、図24に示すように、力データfの時間経過に対する変化率が予め設定された大きさ以上に変化する時刻(力データfが大きく立ち上がる時刻)である。
(ステップS306f)
接触検出部370が、時刻t0における接触検出プローブ380の先端部位置Ptopを接触位置Pcntとして算出する。
接触検出部370が、時刻t0における接触検出プローブ380の先端部位置Ptopを接触位置Pcntとして算出する。
続いてロボットシステム300は、図4に示したステップS107〜S114を実行する。即ち、図23の左図に示すように、ロボットシステム300は、ロボット310のカメラ部130を部品OBJの撮像位置に位置決めした後、ロボット310のハンド308を、図23の右図に示すように、部品OBJを把持する位置に位置決めする。ハンド308が位置決めされると、ロボット310は部品OBJを取り出すことができる。
以上説明したように、本実施例に係るロボットシステム300は、弾性を有する接触検出プローブ380を用いて部品収容容器BOXに接触するので、ハンド308の把持爪134を用いて部品収容容器BOXに接触する場合よりも、部品収容容器BOXに接触するまでの速度を高速にすることができる。その結果、補正量計算処理に要する時間をより短縮できる。
なお、本実施例に係るハンドは第2の実施例に示したロボット制御方法に用いることも可能である。
なお、本実施例に係るハンドは第2の実施例に示したロボット制御方法に用いることも可能である。
<第4の実施例>
続いて、本発明の第4の実施例に係るロボットシステムについて説明する。第1〜第3の実施例に係るロボットシステム100、200、300と同一の構成要素及び動作ステップについては、同じ符号を付して詳しい説明を省略する場合がある。
本実施例に係るロボットシステムは、第3の実施例に係るロボットシステム300と比較すると、ロボットの把持爪が相違する。
続いて、本発明の第4の実施例に係るロボットシステムについて説明する。第1〜第3の実施例に係るロボットシステム100、200、300と同一の構成要素及び動作ステップについては、同じ符号を付して詳しい説明を省略する場合がある。
本実施例に係るロボットシステムは、第3の実施例に係るロボットシステム300と比較すると、ロボットの把持爪が相違する。
本実施例に係るロボットシステムのロボットが有するハンド408は、図26に示すように、力センサ126に取り付けられる基部410と、基部410から先端方向に延びる1対の把持爪434、435を有している。
1対の把持爪434、435のうち、一方の把持爪434は、固定部450と、コイルコイルばね452と、把持部454とを有している。また、把持爪434は、スライダ機構(進退機構の一例)440と、ピン442とを有している。
固定部450は、基部410の先端側に設けられている。固定部450の内部には、スライダ機構440が納められている。
コイルばね452は、一方の端部が固定部450に固定されている。
把持部454は、コイルばね452の他方の端部に固定されている。把持部454は、部品OBJに接触して他方の把持爪435とともに部品OBJを把持できる。把持部454の固定部450に対向する面には、穴Hが形成されている。
スライダ機構440は、前述の通り、固定部450の内部に設けられている。スライダ機構440は、ピン442を先端方向に進退させることができる。
ピン442は、コイルばね452の内側に配置される。ピン442は、スライダ機構440によって駆動され、図26及び図27に示すように、先端方向及びその反対方向に進退できる。ピン442は、例えば丸棒状の部材である。ピン442の先端部は、先端方向に向かうに従って、径が徐々に細くなっている。この先端部は、把持部454に形成された穴Hに嵌るように、穴Hの形状に対応した形状となっている。先端部の形状は任意でよく、穴Hに嵌ればよい。
固定部450、コイルばね452、把持部454、ピン442及びスライダ機構440によって、剛性変更機構の一例が構成される。
ピン442は、コイルばね452の内側に配置される。ピン442は、スライダ機構440によって駆動され、図26及び図27に示すように、先端方向及びその反対方向に進退できる。ピン442は、例えば丸棒状の部材である。ピン442の先端部は、先端方向に向かうに従って、径が徐々に細くなっている。この先端部は、把持部454に形成された穴Hに嵌るように、穴Hの形状に対応した形状となっている。先端部の形状は任意でよく、穴Hに嵌ればよい。
固定部450、コイルばね452、把持部454、ピン442及びスライダ機構440によって、剛性変更機構の一例が構成される。
図26に示すように、スライダ機構440によって駆動されるピン442が後退している場合には、把持部454は、コイルばね452を介して固定部450に固定された状態となっている。
一方、図27に示すように、スライダ機構440によって駆動されるピン442が進出している場合には、ピン442が穴Hに嵌り、把持部454は、コイルばね452及びピン442を介して固定部450に固定された状態となっている。
従って、ピン442が進出している場合には、後退している場合に比べて、把持爪434の剛性が高くなるので、ピン442の進退に応じて、把持爪434の剛性が変化する。
一方、図27に示すように、スライダ機構440によって駆動されるピン442が進出している場合には、ピン442が穴Hに嵌り、把持部454は、コイルばね452及びピン442を介して固定部450に固定された状態となっている。
従って、ピン442が進出している場合には、後退している場合に比べて、把持爪434の剛性が高くなるので、ピン442の進退に応じて、把持爪434の剛性が変化する。
ロボット制御装置が有するハンド制御部160は、図1に示すように、動作シーケンス部154が出力した指令cmd2に基づいて、ハンド408の把持爪434、435を駆動するモータ(不図示)を制御し、把持爪434、435を開閉できる。また、ハンド制御部は、動作シーケンス部154が出力した指令cmd2に基づいて、スライダ機構440の動作を制御できる。
次に、ロボットシステムの動作(ロボットの制御方法)について説明する。
まず、ロボットシステムは、図4に示すステップS101〜S104を実行する。即ち、図28の左図に示すように、ロボットのカメラ部130が、部品収容容器BOXを撮像する位置に位置決めされ、撮像されたステレオ画像に基づいて、部品収容容器BOXの位置Pboxが補正量計算部172に出力される。
次に、ロボットシステムは、以下の動作を実行する。
まず、ロボットシステムは、図4に示すステップS101〜S104を実行する。即ち、図28の左図に示すように、ロボットのカメラ部130が、部品収容容器BOXを撮像する位置に位置決めされ、撮像されたステレオ画像に基づいて、部品収容容器BOXの位置Pboxが補正量計算部172に出力される。
次に、ロボットシステムは、以下の動作を実行する。
(ステップS405a)
ハンド制御部160が、動作シーケンス部154の指令cmd2に基づき、スライダ機構440を動作させ、ピン442を後退させる。その結果、把持爪434の剛性が低くなる。
(ステップS405b)
動作シーケンス部154が、ハンド408を部品収容容器BOXに接触させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、指令cmd1に基づき、例えば部品収容容器BOXを構成する側面板115a(図10参照)の上端面に接触する方向へハンド408を移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボットを制御する。ハンド408は、部品収容容器BOXに向かって移動する。
ハンド制御部160が、動作シーケンス部154の指令cmd2に基づき、スライダ機構440を動作させ、ピン442を後退させる。その結果、把持爪434の剛性が低くなる。
(ステップS405b)
動作シーケンス部154が、ハンド408を部品収容容器BOXに接触させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、指令cmd1に基づき、例えば部品収容容器BOXを構成する側面板115a(図10参照)の上端面に接触する方向へハンド408を移動させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボットを制御する。ハンド408は、部品収容容器BOXに向かって移動する。
ロボットのハンド408が部品収容容器BOXの方向へ移動すると共に、接触検出動作が実行される。接触検出動作は、以下のステップに従って実行される。なお、この接触検出動作は、第3の実施例にて示した接触検出動作と実質的に同一である。
(ステップS406a)
接触検出部370が、力センサインターフェース部168が出力する力データfを監視し、力データfの値が予め設定された検出閾値fthrを超えているか否かを判断する。
力データfの値が、検出閾値fthrを超えていない場合は、後述するステップS406bへ進む。
一方、図28の右図に示すように、把持爪434が部品収容容器BOXに接触し、力データfの値が、検出閾値fthrを超えた場合は、後述するステップS406dへ進む。
(ステップS406a)
接触検出部370が、力センサインターフェース部168が出力する力データfを監視し、力データfの値が予め設定された検出閾値fthrを超えているか否かを判断する。
力データfの値が、検出閾値fthrを超えていない場合は、後述するステップS406bへ進む。
一方、図28の右図に示すように、把持爪434が部品収容容器BOXに接触し、力データfの値が、検出閾値fthrを超えた場合は、後述するステップS406dへ進む。
(ステップS406b)
接触検出部370が、記憶部371に力データfを記憶する。この記憶処理は、記憶部371に設けられた第1のリングバッファ領域に力データを書き込む(上書きする)ことで実行される。
接触検出部370が、記憶部371に力データfを記憶する。この記憶処理は、記憶部371に設けられた第1のリングバッファ領域に力データを書き込む(上書きする)ことで実行される。
(ステップS406c)
ステップS406bと並行して、接触検出部370が、把持爪434の先端部位置を計算し、計算した把持爪434の先端部位置を記憶部371に記憶する。この記憶処理は、記憶部371に設けられた第2のリングバッファ領域に把持爪434の先端部位置を書き込む(上書きする)ことで実行される。
ステップS406bと並行して、接触検出部370が、把持爪434の先端部位置を計算し、計算した把持爪434の先端部位置を記憶部371に記憶する。この記憶処理は、記憶部371に設けられた第2のリングバッファ領域に把持爪434の先端部位置を書き込む(上書きする)ことで実行される。
把持爪434の先端部位置は第1の手順及び第2の手順を経て計算される。
第1の手順では、ロボットの各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置から把持爪434の先端部までの位置が加算される。
第1の手順では、ロボットの各サーボモータの位置フィードバック情報Pfbが順運動学変換されることにより、ロボット座標系Crから見たフランジ132の位置姿勢が計算される。
第2の手順では、第1の手順で計算されたフランジ132の位置から把持爪434の先端部までの位置が加算される。
(ステップS406d)
接触検出部370が、接触検出信号Sdを動作シーケンス部154へ送信する。
動作シーケンス部154は、ロボットを減速停止させる。即ち、軌道生成部156はロボットを減速停止させる軌道を生成する。
サーボ制御部158は、この軌道に従ってロボットを制御する。
接触検出部370が、接触検出信号Sdを動作シーケンス部154へ送信する。
動作シーケンス部154は、ロボットを減速停止させる。即ち、軌道生成部156はロボットを減速停止させる軌道を生成する。
サーボ制御部158は、この軌道に従ってロボットを制御する。
(ステップS406e)
接触検出部370が、記憶部371に記憶した力データfから、把持爪434が部品収容容器BOXに接触した時刻t0を求める。
この時刻t0は、力データfの時間経過に対する変化率が予め設定された大きさ以上変化する時刻である。
接触検出部370が、記憶部371に記憶した力データfから、把持爪434が部品収容容器BOXに接触した時刻t0を求める。
この時刻t0は、力データfの時間経過に対する変化率が予め設定された大きさ以上変化する時刻である。
(ステップS406f)
接触検出部370が、時刻t0における把持爪434の先端部位置を接触位置Pcntとして算出する。
接触検出部370が、時刻t0における把持爪434の先端部位置を接触位置Pcntとして算出する。
続いてロボットシステムは、図4に示したステップS107〜S112を実行する。即ち、図29の左図に示すように、ロボットのカメラ部130が部品OBJを撮像する位置に位置決めされた後、ロボットのハンド408は、図29の右図に示すように、部品OBJを把持する位置に位置決めされる。
ロボットシステムは、更に次のステップを実行する。
ロボットシステムは、更に次のステップを実行する。
(ステップS413a)
動作シーケンス部154の指令cmd2に基づき、ハンド制御部は、スライダ機構440を動作させ、ピン442を進出させる。その結果、把持爪434の剛性が高くなる。
動作シーケンス部154の指令cmd2に基づき、ハンド制御部は、スライダ機構440を動作させ、ピン442を進出させる。その結果、把持爪434の剛性が高くなる。
(ステップS413b)
動作シーケンス部154が、動作プログラムを解析し、把持爪434、435を閉じる閉命令に基づいて、指令cmd2を出力する。ハンド制御部160は、指令cmd2に基づいて、ハンド408の把持爪434、435を駆動するモータを制御する。その結果、把持爪434、435が閉じ、ハンド408は部品OBJを把持する。
動作シーケンス部154が、動作プログラムを解析し、把持爪434、435を閉じる閉命令に基づいて、指令cmd2を出力する。ハンド制御部160は、指令cmd2に基づいて、ハンド408の把持爪434、435を駆動するモータを制御する。その結果、把持爪434、435が閉じ、ハンド408は部品OBJを把持する。
(ステップS414)
動作シーケンス部154が、ハンド408を上昇させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、動作シーケンス部154からの指令cmd1に基づいて、ハンド408を上昇させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボットを制御する。その結果、ロボットはハンド408を上方に移動させ、ロボットは部品OBJを取り出すことができる。
動作シーケンス部154が、ハンド408を上昇させる命令に基づいて、指令cmd1を出力する。
軌道生成部156が、動作シーケンス部154からの指令cmd1に基づいて、ハンド408を上昇させる軌道を生成する。
サーボ制御部158は、生成された軌道に基づいて、ロボットを制御する。その結果、ロボットはハンド408を上方に移動させ、ロボットは部品OBJを取り出すことができる。
剛性変更機構の他の例として、電磁石、エア、ER流体又はMR流体を用いて把持部454と固定部450と間に吸引力を発生させ、この吸引力の強さを変更することによって、把持爪の剛性を変更する機構が挙げられる。
なお、本実施例に係るハンドは第2の実施例に示したロボット制御方法に用いることも可能である。
なお、本実施例に係るハンドは第2の実施例に示したロボット制御方法に用いることも可能である。
本発明は、前述の実施例に限定されるものではなく、本発明の要旨を変更しない範囲での変更は可能である。例えば、前述の実施例や変形例の一部又は全部を組み合わせて発明を構成する場合も本発明の技術的範囲に含まれる。
100:ロボットシステム、108:ハンド、110:ロボット、112:作業台、114:底板、115a〜115d:側面板、120:ロボット制御装置、122a〜112f:リンク、124:関節、126:力センサ、130:カメラ部、132:フランジ、133:基部、134、135:把持爪、152:記憶部、154:動作シーケンス部、156:軌道生成部、158:サーボ制御部、160:ハンド制御部、162:キャプチャ部、166:位置計算部、166a:画像処理部、166b:補正位置計算部、168:力センサインターフェース部、170:接触検出部、172:補正量計算部、200:ロボットシステム、220:ロボット制御装置、266:位置計算部、266a:画像処理部、266b:補正位置計算部、270:接触検出部、272補正量計算部、300:ロボットシステム、308:ハンド、310:ロボット、320:ロボット制御装置、370:接触検出部、371:記憶部、380:接触検出プローブ、382:球状部、408:ハンド、410:基部、434、435:把持爪、440:スライダ機構、442:ピン、450:固定部、452:コイルばね、454:把持部、BOX:部品収容容器、OBJ:部品
Claims (15)
- 容器に入った物品を撮像するカメラ部、前記物品を把持するハンド、及び前記ハンドが前記容器に接触したことを検出するための接触検出器を有するロボットと、
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器に接触させる制御部と、
2)前記接触検出器により前記ハンドが前記容器に接触したことを検出し、その接触位置を求める接触検出部と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、該容器の位置を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置と前記接触検出部が求めた前記接触位置との差を補正量として計算する第2の処理部と、
5)前記補正量に基づいて、前記容器に入った前記物品の高さ方向の位置に関する情報を補正する第3の処理部とを有するロボットシステム。 - 請求項1記載のロボットシステムにおいて、
前記ハンドは、基部と、
前記基部から延び、前記容器に接触すると変形する接触検出部材とを有し、
前記制御部が、前記容器に向かって前記ハンドを移動させ、前記接触検出部材を前記容器に接触させるロボットシステム。 - 請求項2記載のロボットシステムにおいて、前記接触検出部材が、弾性体により構成されるロボットシステム。
- 請求項1記載のロボットシステムにおいて、
前記ハンドは、基部と、
前記基部から延び、開閉する1対の把持爪とを備え、
前記1対の把持爪のうち、一方の把持爪が、該把持爪の剛性を変更する剛性変更機構を有するロボットシステム。 - 請求項4記載のロボットシステムにおいて、
前記剛性変更機構が、前記基部に設けられる固定部と、
前記固定部に一端が固定されるコイルばねと、
前記コイルばねの他端に固定され、前記固定部の側に穴が形成された把持部と、
前記コイルばねの内側に配置され、先端部の形状が前記穴の形状に対応するピンと、
前記固定部に設けられ、前記ピンを進退させる進退機構とを有するロボットシステム。 - 容器に入った物品を撮像するカメラ部、前記物品を把持するハンド、及び前記ハンドが前記容器に接触したことを検出するための接触検出器を有するロボットと、
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器の異なる第1〜第6の接触位置にそれぞれ接触させる制御部と、
2)前記接触検出器により前記ハンドが前記容器に接触したことを検出し、前記第1〜第6の接触位置を求め、求めた該第1〜第6の接触位置から前記容器の位置姿勢を求める接触検出部と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置姿勢を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置姿勢と前記接触検出部が求めた前記容器の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を表す同次変換行列FTCを計算する第2の処理部と、5)前記同次変換行列FTCに基づいて、前記容器に入った前記物品の位置姿勢に関する情報を補正する第3の処理部とを有するロボットシステム。 - 請求項6記載のロボットシステムにおいて、
前記制御部は、前記ハンドの予め決められた部位にて、該ハンドを前記容器に接触させるロボットシステム。 - 容器に入った物品を撮像するカメラ部及び前記物品を把持するハンドを有するロボットと、
前記ロボットを制御するロボット制御装置とを備え、
前記ロボット制御装置は、1)前記容器に向かって前記ハンドを移動させ、該ハンドを該容器に接触させる制御部と、
2)前記ハンドが前記容器に接触した際の接触位置を出力する接触位置出力手段と、
3)前記カメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置を計算する第1の処理部と、
4)前記第1の処理部が計算した前記容器の位置と前記接触位置出力手段が出力した前記接触位置との差を補正量として計算する第2の処理部と、
5)前記補正量に基づいて前記容器に入った前記物品の位置に関する情報を補正する第3の処理部とを備えたロボットシステム。 - 物品を収容する容器に向かってロボットのハンドを移動させ、該ハンドを該容器に接触させる制御部と、
前記ハンドが前記容器に接触したことを検出し、その接触位置を求める接触検出部と、
前記容器のステレオ画像から、該容器の位置を計算する第1の処理部と、
前記第1の処理部が計算した前記容器の位置と前記接触検出部が求めた前記接触位置との差を補正量として計算する第2の処理部と、
前記補正量に基づいて、前記容器に入った前記物品の高さ方向の位置に関する情報を補正する第3の処理部とを有するロボット制御装置。 - 物品を収容する容器に向かってロボットのハンドを移動させ、該ハンドを該容器の異なる第1〜第6の接触位置にそれぞれ接触させる制御部と、
前記ハンドが前記容器に接触したことを検出し、前記第1〜第6の接触位置を求め、求めた該第1〜第6の接触位置から前記容器の位置姿勢を求める接触検出部と、
前記ロボットに設けられたカメラ部を用いて取得された前記容器のステレオ画像から、前記容器の位置姿勢を計算する第1の処理部と、
前記第1の処理部が計算した前記容器の位置姿勢と前記接触検出部が求めた前記容器の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を表す同次変換行列FTCを計算する第2の処理部と、
前記同次変換行列FTCに基づいて、前記容器に入った前記物品の位置に関する情報を補正する第3の処理部とを有するロボット制御装置。 - 部品が収容された容器を撮像し、該容器のステレオ画像を取得するステップと、
前記容器のステレオ画像に基づいて、前記容器の位置又は姿勢に関する情報を第1の情報として計算するステップと、
前記容器に向かってロボットのハンドを移動させるステップと、
前記ハンドを前記容器に接触させることにより、該容器の位置又は姿勢に関する情報を第2の情報として計算するステップと、
前記部品を撮像し、該部品のステレオ画像を取得するステップと、
前記部品のステレオ画像に基づいて、前記部品の位置又は姿勢に関する情報を計算するステップと、
前記第1及び第2の情報に基づいて前記部品の位置又は姿勢に関する情報を補正するステップとを含むロボットの制御方法。 - 部品が収容された容器を撮像し、該容器のステレオ画像を取得するステップと、
前記容器のステレオ画像に基づいて、前記容器の位置を第1の位置として計算するステップと、
前記容器に向かってロボットのハンドを移動させるステップと、
前記ハンドが前記容器に接触したことを検出し、その接触した位置を第2の位置として求めるステップと、
前記容器の第1の位置と前記第2の位置との差を補正量として計算するステップと、
前記部品を撮像し、該部品のステレオ画像を取得するステップと、
前記部品のステレオ画像に基づいて、前記部品の位置を計算するステップと、
前記補正量に基づいて前記部品の高さ方向の位置に関する情報を補正するステップと、
補正された前記部品の高さ方向の位置に関する情報に基づいて、前記ハンドを用いて前記部品を把持するステップとを含むロボットの制御方法。 - ロボットに設けられたカメラ部を用いて部品が収容された容器を撮像し、該容器のステレオ画像を取得するステップと、
前記容器のステレオ画像に基づいて、前記容器の位置姿勢を第1の位置姿勢として計算するステップと、
前記容器に向かってロボットのハンドを移動させる処理及び前記記ハンドが前記容器に接触したことを検出し、その接触した接触位置を求める処理を繰り返し、それぞれ異なる少なくとも6つの接触位置を求めるステップと、
前記接触位置から前記容器の位置姿勢を第2の位置姿勢として計算するステップと、
前記第1の位置姿勢と前記第2の位置姿勢とに基づいて、前記ロボットの手首部のフランジに固定されたフランジ座標系から見た前記カメラ部の位置姿勢を計算するステップと、
前記フランジ座標系から見た前記カメラ部の位置姿勢に基づいて、前記ロボットのハンドを用いて前記部品を把持するステップとを含むロボットの制御方法。 - 基部と、
前記基部から延び、開閉する1対の把持爪と、
前記基部から延び、接触すると変形する接触検出部材とを有するロボットハンド。 - 基部と、
前記基部から延び、開閉する1対の把持爪とを備え、
前記1対の把持爪のうち、一方の把持爪が、該把持爪の剛性を変更する剛性変更機構を有するロボットハンド。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013529792A JPWO2013027251A1 (ja) | 2011-08-19 | 2011-08-19 | ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013529792A JPWO2013027251A1 (ja) | 2011-08-19 | 2011-08-19 | ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2013027251A1 true JPWO2013027251A1 (ja) | 2015-03-05 |
Family
ID=52697043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013529792A Pending JPWO2013027251A1 (ja) | 2011-08-19 | 2011-08-19 | ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPWO2013027251A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113103215A (zh) * | 2021-04-14 | 2021-07-13 | 深圳汇控智能技术有限公司 | 一种机器人视觉飞拍的运动控制方法 |
CN113716323A (zh) * | 2021-08-17 | 2021-11-30 | 成都新气象科技实业股份有限公司 | 一种容器智能搬运方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03291119A (ja) * | 1990-01-19 | 1991-12-20 | Enshu Ltd | 自由曲面の自動ティ−チングセンシング方法 |
JPH0430991A (ja) * | 1990-05-25 | 1992-02-03 | Toyoda Mach Works Ltd | 視覚装置付ロボット |
JPH10329065A (ja) * | 1997-05-30 | 1998-12-15 | Matsushita Electric Ind Co Ltd | ロボットの位置ずれ補正方法 |
JP2004351570A (ja) * | 2003-05-29 | 2004-12-16 | Fanuc Ltd | ロボットシステム |
JP2006289580A (ja) * | 2005-04-13 | 2006-10-26 | Fanuc Ltd | プログラムの教示点修正方法及びプログラム教示点修正装置 |
JP2010012567A (ja) * | 2008-07-04 | 2010-01-21 | Fanuc Ltd | 物品取り出し装置 |
JP2010052067A (ja) * | 2008-08-27 | 2010-03-11 | Kawasaki Heavy Ind Ltd | 自動仕上げ装置とその制御方法 |
JP2010112731A (ja) * | 2008-11-04 | 2010-05-20 | Denso Wave Inc | ロボットの座標の結合方法 |
JP2010280010A (ja) * | 2009-06-02 | 2010-12-16 | Fanuc Ltd | 物品搬送ロボットシステム |
JP2011056595A (ja) * | 2009-09-07 | 2011-03-24 | Kde Corp | 搬送ハンド及び搬送ロボット |
-
2011
- 2011-08-19 JP JP2013529792A patent/JPWO2013027251A1/ja active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03291119A (ja) * | 1990-01-19 | 1991-12-20 | Enshu Ltd | 自由曲面の自動ティ−チングセンシング方法 |
JPH0430991A (ja) * | 1990-05-25 | 1992-02-03 | Toyoda Mach Works Ltd | 視覚装置付ロボット |
JPH10329065A (ja) * | 1997-05-30 | 1998-12-15 | Matsushita Electric Ind Co Ltd | ロボットの位置ずれ補正方法 |
JP2004351570A (ja) * | 2003-05-29 | 2004-12-16 | Fanuc Ltd | ロボットシステム |
JP2006289580A (ja) * | 2005-04-13 | 2006-10-26 | Fanuc Ltd | プログラムの教示点修正方法及びプログラム教示点修正装置 |
JP2010012567A (ja) * | 2008-07-04 | 2010-01-21 | Fanuc Ltd | 物品取り出し装置 |
JP2010052067A (ja) * | 2008-08-27 | 2010-03-11 | Kawasaki Heavy Ind Ltd | 自動仕上げ装置とその制御方法 |
JP2010112731A (ja) * | 2008-11-04 | 2010-05-20 | Denso Wave Inc | ロボットの座標の結合方法 |
JP2010280010A (ja) * | 2009-06-02 | 2010-12-16 | Fanuc Ltd | 物品搬送ロボットシステム |
JP2011056595A (ja) * | 2009-09-07 | 2011-03-24 | Kde Corp | 搬送ハンド及び搬送ロボット |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113103215A (zh) * | 2021-04-14 | 2021-07-13 | 深圳汇控智能技术有限公司 | 一种机器人视觉飞拍的运动控制方法 |
CN113716323A (zh) * | 2021-08-17 | 2021-11-30 | 成都新气象科技实业股份有限公司 | 一种容器智能搬运方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2013027251A1 (ja) | ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 | |
US10894324B2 (en) | Information processing apparatus, measuring apparatus, system, interference determination method, and article manufacturing method | |
CN108453701B (zh) | 控制机器人的方法、示教机器人的方法和机器人系统 | |
JP5685027B2 (ja) | 情報処理装置、物体把持システム、ロボットシステム、情報処理方法、物体把持方法およびプログラム | |
JP7145700B2 (ja) | ハンド制御装置 | |
CN107351084B (zh) | 一种面向维修任务的空间机械臂手系统误差修正方法 | |
JP2015182144A (ja) | ロボットシステムおよびロボットシステムの校正方法 | |
JP2011115877A (ja) | 双腕ロボット | |
JPWO2018043525A1 (ja) | ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法 | |
JP6741222B2 (ja) | ロボットのワーク移送方法及びワーク移送装置 | |
CN114174006A (zh) | 机器人手眼标定方法、装置、计算设备、介质以及产品 | |
US12030184B2 (en) | System and method for error correction and compensation for 3D eye-to-hand coordination | |
JP2017170599A (ja) | ロボットを用いた位置決め装置 | |
JP2019188516A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP6900290B2 (ja) | ロボットシステム | |
JP6661027B2 (ja) | 作業ロボット | |
JPWO2018092243A1 (ja) | 作業位置補正方法および作業ロボット | |
CN115194755A (zh) | 用于控制机器人将对象插入到插入部中的设备和方法 | |
JP2008207262A (ja) | マニピュレータシステム | |
CN115194752A (zh) | 用于训练神经网络以控制插入任务的机器人的设备和方法 | |
CN115519536A (zh) | 用于3d眼手协调的误差校正和补偿的系统和方法 | |
Kansal et al. | Vision-based kinematic analysis of the Delta robot for object catching | |
JP6217322B2 (ja) | ロボット制御装置、ロボット及びロボット制御方法 | |
JPWO2013027251A1 (ja) | ロボットシステム、ロボット制御装置、ロボットハンド及びロボットの制御方法 | |
CN108145928B (zh) | 成型系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150901 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160105 |