JP2022102961A - ロボットの制御方法 - Google Patents
ロボットの制御方法 Download PDFInfo
- Publication number
- JP2022102961A JP2022102961A JP2020218052A JP2020218052A JP2022102961A JP 2022102961 A JP2022102961 A JP 2022102961A JP 2020218052 A JP2020218052 A JP 2020218052A JP 2020218052 A JP2020218052 A JP 2020218052A JP 2022102961 A JP2022102961 A JP 2022102961A
- Authority
- JP
- Japan
- Prior art keywords
- point
- arm
- robot
- end effector
- work
- 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
【課題】カメラ座標系とロボット座標系との対応付けを省略することができるロボットの制御方法を提供すること。【解決手段】三次元カメラで、ロボットアームおよび対象物を含む画像を撮像する第1ステップと、得られた画像および深度情報から点群を生成する第2ステップと、点群を、ロボットアームに関する第1点群、および、対象物に関する第2点群に分類する第3ステップと、画像に基づいて、ロボットアームの関節の位置を求める第4ステップと、第1点群に含まれる点をアーム基準点に設定するとともに、第2点群に基づいて、作業を実行する際にアーム基準点が位置する点をアーム作業点に設定する第5ステップと、アーム基準点とアーム作業点とが仮想的に受ける力を推定するポテンシャル関数、および、関節の位置に基づいてロボットアームの動作における関節の回転角度を算出する第6ステップと、を有することを特徴とするロボットの制御方法。【選択図】図6
Description
本発明は、ロボットの制御方法に関するものである。
近年、工場では人件費の高騰や人材不足により、各種ロボットやそのロボット周辺機器によって、人手で行われてきた作業の自動化が加速している。例えば特許文献1に記載されたロボットは、ロボットアームと、カメラと、を有し、カメラで撮像した撮像結果に基づいて、ロボットアームを駆動する。
また、特許文献1では、ロボットを動作させるのに先立って、カメラの座標系と、ロボットの座標系とを対応付ける必要がある。この方法としては、例えば、カメラ座標系での位置を把握している治具を撮像しつつ、治具にロボットアームを接触させ、ロボットの座標系とカメラの座標系とを対応付ける方法が挙げられる。このような対応付けを行うことにより、撮像画像における位置をロボットの座標系に変換することができる。よって、撮像結果に基づいて、ロボットアームに所望の動作を行わせることができる。
しかしながら、ロボットの座標系とカメラの座標系とを対応付けるという作業は、手間がかかる作業であり、この作業を行わないと、正確にロボットを駆動することが難しくなる。
本発明のロボットの制御方法は、ロボットアームを有し、前記ロボットアームに設けられたエンドエフェクターによって対象物への作業を実行するロボットを、三次元カメラの撮像結果に基づいて制御するロボットの制御方法であって、
前記三次元カメラで、前記ロボットアームおよび前記対象物を含む画像を撮像する第1ステップと、
得られた前記画像および深度情報から点群を生成する第2ステップと、
前記点群を、前記ロボットアームに関する第1点群、および、前記対象物に関する第2点群に分類する第3ステップと、
前記画像に基づいて、前記ロボットアームの関節の位置を求める第4ステップと、
前記第1点群のうちの少なくとも1つの点をアーム基準点に設定するとともに、前記第2点群に基づいて、前記作業を実行する際に前記アーム基準点が位置する点をアーム作業点に設定する第5ステップと、
前記アーム基準点と前記アーム作業点とが仮想的に受ける力を推定するポテンシャル関数、および、前記関節の位置に基づいて、前記アーム基準点が前記アーム作業点に位置するよう移動するための前記ロボットアームの動作における前記関節の回転角度を算出する第6ステップと、
算出した前記回転角度に基づいて、前記ロボットアームの前記関節を所定角度動作させる第7ステップと、を有することを特徴とする。
前記三次元カメラで、前記ロボットアームおよび前記対象物を含む画像を撮像する第1ステップと、
得られた前記画像および深度情報から点群を生成する第2ステップと、
前記点群を、前記ロボットアームに関する第1点群、および、前記対象物に関する第2点群に分類する第3ステップと、
前記画像に基づいて、前記ロボットアームの関節の位置を求める第4ステップと、
前記第1点群のうちの少なくとも1つの点をアーム基準点に設定するとともに、前記第2点群に基づいて、前記作業を実行する際に前記アーム基準点が位置する点をアーム作業点に設定する第5ステップと、
前記アーム基準点と前記アーム作業点とが仮想的に受ける力を推定するポテンシャル関数、および、前記関節の位置に基づいて、前記アーム基準点が前記アーム作業点に位置するよう移動するための前記ロボットアームの動作における前記関節の回転角度を算出する第6ステップと、
算出した前記回転角度に基づいて、前記ロボットアームの前記関節を所定角度動作させる第7ステップと、を有することを特徴とする。
本発明のロボットの制御方法は、ロボットアームを有し、前記ロボットアームに設けられたエンドエフェクターによって対象物への作業を実行するロボットを、三次元カメラの撮像結果に基づいて制御するロボットの制御方法であって、
前記撮像結果から設定される作業位置に対し、前記ロボットを制御する際に用いられるロボット制御座標系への変換を行わずに、前記ロボットアームの関節の回転角度を算出することを特徴とする。
前記撮像結果から設定される作業位置に対し、前記ロボットを制御する際に用いられるロボット制御座標系への変換を行わずに、前記ロボットアームの関節の回転角度を算出することを特徴とする。
以下、本発明のロボットの制御方法を添付図面に示す好適な実施形態に基づいて詳細に説明する。
<第1実施形態>
図1は、ロボットシステムの概略構成図である。図2は、図1に示すロボットシステムの機能ブロック図である。図3は、図1に示す制御装置のハードウェア構成の一例を示すブロック図である。図4は、図1に示す三次元カメラが撮像した撮像画像を示す図である。図5は、撮像画像において、点群を設定した状態を示す図である。図6は、撮像画像において、点群を分類した状態を示す図である。図7は、図1に示すロボットの側面図である。図8は、関節を特定する方法を説明するための模式図である。図9は、関節を特定する方法を説明するための模式図である。図10は、基準点および作業点を説明するためのロボットの模式図である。図11は、ポテンシャル関数における引力および斥力を示した図である。図12は、ロボットアームが作業を実行する際の手順を示す図である。図13は、ロボットアームが作業を実行する際の手順を示す図である。図14は、本発明のロボットの制御方法の一例を説明するためのフローチャートである。
図1は、ロボットシステムの概略構成図である。図2は、図1に示すロボットシステムの機能ブロック図である。図3は、図1に示す制御装置のハードウェア構成の一例を示すブロック図である。図4は、図1に示す三次元カメラが撮像した撮像画像を示す図である。図5は、撮像画像において、点群を設定した状態を示す図である。図6は、撮像画像において、点群を分類した状態を示す図である。図7は、図1に示すロボットの側面図である。図8は、関節を特定する方法を説明するための模式図である。図9は、関節を特定する方法を説明するための模式図である。図10は、基準点および作業点を説明するためのロボットの模式図である。図11は、ポテンシャル関数における引力および斥力を示した図である。図12は、ロボットアームが作業を実行する際の手順を示す図である。図13は、ロボットアームが作業を実行する際の手順を示す図である。図14は、本発明のロボットの制御方法の一例を説明するためのフローチャートである。
また、以下では、図1中の基台20側を「基端」、その反対側、すなわち、ハンド25側を「先端」と言う。また、図1中の上下方向を「鉛直方向」とし、左右方向を「水平方向」とする。
図1および図2に示すロボットシステム100は、例えば、電子部品および電子機器等のワークの保持、搬送、組立ておよび検査等の作業で用いられる装置である。ロボットシステム100は、ロボット2と、三次元カメラ3と、制御装置4と、を備える。以下、各部について説明する。
1.ロボット
ロボット2は、多関節ロボットであり、基台20と、基台20に接続されたロボットアーム200と、を有する。ロボットアーム200は、第1アーム21と、第2アーム22と、第3アーム23と、第4アーム24と、を有し、先端にエンドエフェクターとしてのハンド25が装着されている。
ロボット2は、多関節ロボットであり、基台20と、基台20に接続されたロボットアーム200と、を有する。ロボットアーム200は、第1アーム21と、第2アーム22と、第3アーム23と、第4アーム24と、を有し、先端にエンドエフェクターとしてのハンド25が装着されている。
第1アーム21は、基台20に回転可能に支持されている。第2アーム22は、第1アーム21に、関節20Aを介して接続されている。第3アーム23は、第2アーム22に、関節20Bを介して接続されている。第4アーム24は、第3アーム23に、関節20Cを介して接続されている。ハンド25は、第4アーム24に、関節20Dを介して接続されている。また、ハンド25は、図示の構成では、第1指251および第2指252を有し、これらの間でワーク等の対象物を把持する構成である。第1指251は、関節20Eを有し、第2指252は、関節20Fを有する。
本実施形態では、作業の一例として、図1に示すように、ワークWを把持する作業について説明する。
なお、上記では、エンドエフェクターの一例として2本の指を有するハンド25を例に挙げて説明したが、本発明ではこれに限定されず、例えば、2本以上の指を有するハンドであってもよく、その他の構成、例えば、レンチ、ドライバー、研削器、研磨機等の工具や、塗布スプレー等であってもよい。
また、図1および図2に示すように、ロボット2は、モーターM1と、モーターM2と、モーターM3と、モーターM4と、モーターM5と、モーターM6と、モーターM7と、を有する。モーターM1は、基台20に対して第1アーム21を第1軸回りに回転駆動させる。モーターM2は、関節20Aを回転駆動する、すなわち、第1アーム21に対して第2アーム22を第2軸回りに回転させる。モーターM3は、関節20Bを回転駆動する、すなわち、第2アーム22に対して第3アーム23を第3軸回りに回転させる。モーターM4は、関節20Cを回転駆動する、すなわち、第3アーム23に対して第4アーム24を第4軸回りに回転させる。モーターM5は、関節20Dを回転駆動する、すなわち、第4アーム24に対してハンド25を第5軸回りに回転させる。モーターM6は、関節20Eを回転駆動する、すなわち、第1指251を関節20Eで折り曲げるよう駆動する。モーターM7は、関節20Fを回転駆動する、すなわち、第2指252を関節20Fで折り曲げるよう駆動する。
これらモーターM1~モーターM7としては、例えば、ACサーボモーター、DCサーボモーター等のサーボモーターを用いることができる。モーターM1~モーターM7は、それぞれ、対応する図示しないモータードライバーに接続されており、モータードライバーを介して制御装置4により通電条件を制御されて駆動する。
また、ロボット2は、図2に示すように、エンコーダーE1と、エンコーダーE2と、エンコーダーE3と、エンコーダーE4と、エンコーダーE5と、エンコーダーE6と、エンコーダーE7と、を有する。
エンコーダーE1は、モーターM1の回転量を検出し、検出した情報を制御装置4に送信する。エンコーダーE2は、モーターM2の回転量を検出し、検出した情報を制御装置4に送信する。エンコーダーE3は、モーターM3の回転量を検出し、検出した情報を制御装置4に送信する。エンコーダーE4は、モーターM4の回転量を検出し、検出した情報を制御装置4に送信する。エンコーダーE5は、モーターM5の回転量を検出し、検出した情報を制御装置4に送信する。エンコーダーE6は、モーターM6の回転量を検出し、検出した情報を制御装置4に送信する。エンコーダーE7は、モーターM7の回転量を検出し、検出した情報を制御装置4に送信する。そして、制御装置4は、これらの情報と、後述する位置指令値とに基づいて、モーターM1~モーターM7への通電条件を決定する。
これらモーターM1~モーターM7およびエンコーダーE1~エンコーダーE7は、関節に設けられていてもよく、アームの内部に設けられていてもよい。
2.三次元カメラ
三次元カメラ3は、画像Dxを撮像可能なデバイスである。三次元カメラ3は、ロボット2およびロボット2が作業を行う領域を撮像可能な位置に設置される。図4に示すように、三次元カメラ3が撮像する画像Dxには、ロボット2、ワークWおよび作業台300が映っている。
三次元カメラ3は、画像Dxを撮像可能なデバイスである。三次元カメラ3は、ロボット2およびロボット2が作業を行う領域を撮像可能な位置に設置される。図4に示すように、三次元カメラ3が撮像する画像Dxには、ロボット2、ワークWおよび作業台300が映っている。
なお、三次元カメラ3は、任意の位置に固定されていてもよく、作業者が撮像を行いつつ持ち歩くように用いられてもよい。
三次元カメラ3が撮像した画像Dxのデータは、制御装置4に送信され、後述するような処理に用いられる。
3.制御装置
制御装置4は、撮像制御部41と、点群生成部42と、点群分類部43と、位置特定部44と、位置設定部45と、回転角度算出部46と、実行部47と、を有する。これらは、1つの筐体に内蔵されていてもよく、異なる筐体に内蔵されていてもよい。また、これらは、1つのボードに設置されていてもよく、異なるボードに設置されていてもよい。
制御装置4は、撮像制御部41と、点群生成部42と、点群分類部43と、位置特定部44と、位置設定部45と、回転角度算出部46と、実行部47と、を有する。これらは、1つの筐体に内蔵されていてもよく、異なる筐体に内蔵されていてもよい。また、これらは、1つのボードに設置されていてもよく、異なるボードに設置されていてもよい。
3.1.撮像制御部
撮像制御部41は、三次元カメラ3を駆動し、ロボットアーム200およびワークWを含む画像を撮像させ、図4に示すような画像Dxを取得する。撮像制御部41は、リアルタイムで撮像を行うよう三次元カメラ3を駆動する。
この撮像制御部41は、後述する第1ステップであるステップS101を実行する。
撮像制御部41は、三次元カメラ3を駆動し、ロボットアーム200およびワークWを含む画像を撮像させ、図4に示すような画像Dxを取得する。撮像制御部41は、リアルタイムで撮像を行うよう三次元カメラ3を駆動する。
この撮像制御部41は、後述する第1ステップであるステップS101を実行する。
3.2.点群生成部
点群生成部42は、図5に示すように、画像Dxに移ったロボットアーム200、ワークWおよび作業台300の表面に点群Ppointsを生成する。点群Ppointsは、三次元座標値を持つ点の集合である。点群生成部42は、例えば、位相シフト法、アクティブステレオ法等を用いて点群Ppointsを生成する。
この点群生成部42は、後述する第2ステップであるステップS102を実行する。
点群生成部42は、図5に示すように、画像Dxに移ったロボットアーム200、ワークWおよび作業台300の表面に点群Ppointsを生成する。点群Ppointsは、三次元座標値を持つ点の集合である。点群生成部42は、例えば、位相シフト法、アクティブステレオ法等を用いて点群Ppointsを生成する。
この点群生成部42は、後述する第2ステップであるステップS102を実行する。
3.3.点群分類部
点群分類部43は、図6に示すように、点群Ppointsを、ロボットアーム200に関する第1点群Parm、ワークWに関する第2点群Ptar、および、ハンド25に関する第3点群Pfinger、作業台300に関する第4点群Pobsに分類する。なお、図示の構成では、ハンド25を省略したロボット2を撮像しており、このため、以下の説明では、第3点群Pfingerを省略して説明する。点群分類部43は、例えば、点群データを前処理してボクセルに符号化してから、そのイメージライクなデータを、シンプルな三次元畳み込みニューラルネットワークで使用して上記のような分類を行うことができる。
点群分類部43は、図6に示すように、点群Ppointsを、ロボットアーム200に関する第1点群Parm、ワークWに関する第2点群Ptar、および、ハンド25に関する第3点群Pfinger、作業台300に関する第4点群Pobsに分類する。なお、図示の構成では、ハンド25を省略したロボット2を撮像しており、このため、以下の説明では、第3点群Pfingerを省略して説明する。点群分類部43は、例えば、点群データを前処理してボクセルに符号化してから、そのイメージライクなデータを、シンプルな三次元畳み込みニューラルネットワークで使用して上記のような分類を行うことができる。
点群Ppoints、第1点群Parm、第2点群Ptar、および第4点群Pobsは、以下の式(1)、(2)で表すことができる。
また、各点群に含まれる個別の点は、以下の式(3)~(5)に示すように定義することができる。
なお、R3camは、三次元カメラ3のカメラ座標系を示している。
このような点群分類部43は、後述する第3ステップであるステップS103を実行する。
このような点群分類部43は、後述する第3ステップであるステップS103を実行する。
3.4.位置特定部
位置特定部44は、画像Dxに基づいて、ロボットアーム200の関節20A~関節20Fの位置、および、ハンド25の指先の位置を求める。
位置特定部44は、画像Dxに基づいて、ロボットアーム200の関節20A~関節20Fの位置、および、ハンド25の指先の位置を求める。
なお、以下の説明では、関節位置は、以下の式(6)で表すことができるが、以下、「E」とも言う。
関節20A~関節20Fの関節位置Eは、それぞれ、下記式(7)で表すことができる。
ハンド25の指先の位置は、それぞれ、下記式(8)で表すことができる。
なお、エンコーダーE1~エンコーダーE7の検出結果を加味して関節20A~関節20Fの位置、および、ハンド25の指先の位置を求めてもよい。
次いで、関節20A~関節20Fの位置から、関節の回転ベクトルの単位ベクトルを計算する。図8に示すように、関節の回転軸が鉛直方向に沿っている場合には、下記式(9)を用い、図9に示すように、関節の回転軸が水平方向に沿っている場合には、下記式(10)を用いる。
式(9)、(10)中、μには、第1アーム21~第4アーム24、ハンド25の第1指251および第2指252に対応する数字が入る。これらの対応関係は、図7に示す通りである。
また、位置特定部44は、関節位置Eに基づいて、第1点群Parmの各点がどのアームに属しているのかを識別する。これらの関係式は、下記式(11)、(12)で表すことができる。
識別方法としては、例えば、全アームまたは全指に、関節位置E(μに正の整数αを代入)と、隣の関節位置E(μに正の整数α+1を代入)と、を通る直線を設定し、各々の点が、どの直線に最も近いかを求め、最も近い直線に対応するアームまたは指に属することとする。
このような位置特定部44は、後述する第4ステップであるステップS104を実行する。
3.5.位置設定部
以下の説明では、アーム基準点は、以下の式(13)で表すことができるが、以下、「A」とも言う。また、アーム作業点は、以下の式(14)で表すことができるが、以下、「B」とも言う。
以下の説明では、アーム基準点は、以下の式(13)で表すことができるが、以下、「A」とも言う。また、アーム作業点は、以下の式(14)で表すことができるが、以下、「B」とも言う。
この設定は、例えば、ロボットアーム200が作業を行う際にとらせたい好ましい姿勢のデータに基づいてなされる。なお、好ましい姿勢のデータは、例えば、エンコーダーE1~エンコーダーE7のエンコーダー値として記憶部4bに記憶されている。
アーム基準点Aおよびアーム作業点Bは、以下の式(15)、(16)で表される。
以下の説明では、エンドエフェクター基準点は、以下の式(17)で表すことができるが、以下、「C」とも言う。また、エンドエフェクター作業点は、以下の式(18)で表すことができるが、以下、「D」とも言う。
また、位置設定部45は、第3点群Pfingerの少なくとも1つの点をエンドエフェクター基準点Cに設定するとともに、第3点群Pfingerに基づいて、作業を実行する際にエンドエフェクター基準点Cが位置する点をエンドエフェクター作業点Dに設定する。本実施形態では、エンドエフェクター基準点Cおよびエンドエフェクター作業点Dをそれぞれ2点ずつ設定する。図10、図12および図13では、エンドエフェクター基準点CをC1、C2で示し、エンドエフェクター作業点DをD1、D2で示している。
エンドエフェクター作業点Dは、以下の式(19)で表される。
エンドエフェクター作業点Dは、以下の式(19)で表される。
このような位置設定部45は、後述する第5ステップであるステップS105を実行する。
3.6.回転角度算出部
回転角度算出部46は、アーム基準点Aとアーム作業点Bとが仮想的に受ける力を推定し、アーム基準点Aがアーム作業点Bに位置するよう移動するための各関節の回転角度を算出する。
回転角度算出部46は、アーム基準点Aとアーム作業点Bとが仮想的に受ける力を推定し、アーム基準点Aがアーム作業点Bに位置するよう移動するための各関節の回転角度を算出する。
また、回転角度算出部46は、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが仮想的に受ける力を推定し、エンドエフェクター基準点Cがエンドエフェクター作業点Dに位置するためのハンド25の回転角度を算出する。
本実施形態では、ポテンシャル関数を用いて、アーム基準点Aとアーム作業点Bとが仮想的に受ける力、および、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが仮想的に受ける力を推定する。以下、具体的に説明する。
エンドエフェクター作業点D、アーム作業点B、および、作業台300の第4点群Pobsはそれぞれ、図11中矢印で示すような力学的な場を形成している。そして、エンドエフェクター基準点C、アーム基準点A、および、ロボットアーム200の第1点群Parmと各々相互作用するという仮想的な状況を仮定する。
この状況において、エンドエフェクター作業点Dは短距離の引力場を形成し、アーム作業点Bは長距離の引力場を形成し、第1点群Parmは斥力場を形成すると仮定することができる。
この場合、エンドエフェクター作業点Dの短距離引力場は、ポテンシャル関数として、下記式(20)で表すことができる。
また、アーム作業点Bの長距離引力場は、ポテンシャル関数として、下記式(21)で表すことができる。
また、第4点群Pobsの斥力場は、ポテンシャル関数として、下記式(22)で表すことができる。
また、各点ごとのポテンシャルの和をとると、エンドエフェクター作業点D、アーム作業点B、および、第4点群Pobsのポテンシャルは、それぞれ、以下の式(23)~(25)で表すことができる。
なお、式(23)~(25)中の式中のδは、ディラックのデルタ関数である。このため、ポテンシャルはペアである点にのみ選択的に働き、姿勢制御や順序性のある動作の生成が実現できる。
そして、全ポテンシャルは、下記式(26)で表すことができる。
そして、全ポテンシャルは、下記式(26)で表すことができる。
このポテンシャルによりロボットアーム200に関する第1点群Parmの各々の点が受ける仮想的な力は、下記式(27)で表すことができる。
このような仮想的な力を受けていると想定したうえで、動作生成の目的は、この仮想的な力が全て0となるような姿勢を見つけることである。換言すれば、その姿勢を実現する関節の回転角度θを見つけることである。関節の回転角度θは、下記式(28)で表すことができる。
第1点群Parmは、θの関数であることから、下記式(29)で表すことができ、下記式(30)が成り立つ。
これを実現するθは、下記式(31)に示す通りとなる。
式(31)中のGは、下記式(32)で表すことができる。
そして、式(32)より、下記式(33)が導き出される。
式(33)中の下記式(34)は、設定したポテンシャルから解析的に求めるか、あるいは、数値的に求めることができる。
一方、式(33)中、式(35)については、下記式(36)で表すことができる。
以上より、各関節の回転角度θを算出することができる。
このような回転角度算出部46は、後述する第6ステップであるステップS106を実行する。
このような回転角度算出部46は、後述する第6ステップであるステップS106を実行する。
3.7.実行部
実行部47は、回転角度算出部46が算出した回転角度θに基づいて、各モーターM1~モーターM7に対する通電条件を制御する。これにより、アーム基準点Aとアーム作業点Bとが一致し、かつ、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが一致するようにロボットアーム200およびハンド25を駆動することができる。
実行部47は、回転角度算出部46が算出した回転角度θに基づいて、各モーターM1~モーターM7に対する通電条件を制御する。これにより、アーム基準点Aとアーム作業点Bとが一致し、かつ、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが一致するようにロボットアーム200およびハンド25を駆動することができる。
この際、長距離引力場に設定したロボットアーム200および短距離引力場に設定したハンド25の順で駆動する。すなわち、図12に示すように、先に、アーム基準点Aとアーム作業点Bとが一致するようにロボットアーム200を駆動し、次に、図13に示すように、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが一致するようにハンド25を駆動する。これにより、まず、ロボットアーム200を所望の位置に移動させた後に、ハンド25がワークWを把持することができる。
4.ハードウェア構成例
このような制御装置4は、例えば、以下のようなハードウェア構成により上記のような制御を実現することができる。
このような制御装置4は、例えば、以下のようなハードウェア構成により上記のような制御を実現することができる。
図3は、図1に示す制御装置4のハードウェア構成の一例を示すブロック図である。
図3に示す制御装置4は、プロセッサー4aと、記憶部4bと、外部インターフェース4cと、を含んでいる。そして、これらの各要素は、システムバス4dを介して相互に通信可能に接続されている。
図3に示す制御装置4は、プロセッサー4aと、記憶部4bと、外部インターフェース4cと、を含んでいる。そして、これらの各要素は、システムバス4dを介して相互に通信可能に接続されている。
プロセッサー4aは、CPU(Central Processing Unit)等を備えている。そして、記憶部4bに記憶されている各種プログラム等を読み出し、実行する。これにより、制御装置4における各種演算や各種処理等を実現する。
記憶部4bは、プロセッサー4aで実行可能な各種プログラム等を保存する。記憶部4bとしては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等が挙げられる。なお、記憶部4bには、プログラムの他に、前述した各部から出力されたデータや設定値等についても記憶される。
外部インターフェース4cは、例えば有線LAN(Local Area Network)、無線LAN等が挙げられる。
なお、制御装置4の各部の機能は、プロセッサー4aがプログラムを実行することにより実現されるが、少なくとも一部がハードウェア上で実現されるようになっていてもよい。
また、制御装置4は、ロボット2の筐体内に配置されていてもよく、筐体外に配置されていてもよく、ネットワーク等を介して遠隔地に設けられていてもよい。
また、制御装置4には、モニター等の表示装置、キーボード、タッチパネル等の入力装置等が接続されていてもよい。
5.ロボットの制御方法
次に、本発明のロボットの制御方法について説明する。
次に、本発明のロボットの制御方法について説明する。
5.ロボットの制御方法
次に、本発明のロボットの制御方法について説明する。
次に、本発明のロボットの制御方法について説明する。
ロボットの制御方法は、ステップS101と、ステップS102と、ステップS103と、ステップS104と、ステップS105と、ステップS106と、ステップS107と、ステップS108と、を有する。
5.1.ステップS101
まず、ステップS101において、三次元カメラ3を駆動し、ロボットアーム200およびワークWを含む画像を撮像させ、図4に示すような画像Dxを取得する。
まず、ステップS101において、三次元カメラ3を駆動し、ロボットアーム200およびワークWを含む画像を撮像させ、図4に示すような画像Dxを取得する。
次いで、ステップS102において、画像Dxに移ったロボットアーム200、ワークWおよび作業台300の表面に点群Ppointsを生成する(図5参照)。
次いで、ステップS103において、点群Ppointsを、ロボットアーム200に関する第1点群Parm、ワークWに関する第2点群Ptar、および、ハンド25に関する第3点群Pfinger、作業台300に関する第4点群Pobsに分類する(図6参照)。
次いで、ステップS104において、画像Dxに基づいて、ロボットアーム200の関節20A~関節20Fの位置、および、ハンド25の指先の位置を求めるとともに、関節20A~関節20Fの位置から、関節の回転ベクトルの単位ベクトルを計算する。
また、ステップS104において、点群Ppointの各点が、どの部位に属しているのかを識別する。この識別方法は、前述した通りである。
次いで、ステップS105において、図10に示すように、第1点群Parmのうちの少なくとも1つの点をアーム基準点Aに設定するとともに、第2点群Ptarに基づいて、作業を実行する際にアーム基準点Aが位置する点をアーム作業点Bに設定する。また、第3点群Pfingerの少なくとも1つの点をエンドエフェクター基準点Cに設定するとともに、第3点群Pfingerに基づいて、作業を実行する際にエンドエフェクター基準点Cが位置する点をエンドエフェクター作業点Dに設定する。
次いで、ステップS106において、アーム基準点Aとアーム作業点Bとが仮想的に受ける力を推定し、アーム基準点Aがアーム作業点Bに位置するよう移動するための各関節の回転角度を算出する。
さらに、ステップS106では、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが仮想的に受ける力を推定し、エンドエフェクター基準点Cがエンドエフェクター作業点Dに位置するためのハンド25の回転角度を算出する。
ステップS106では、前述したように、ポテンシャル関数を用いて、アーム基準点Aとアーム作業点Bとが仮想的に受ける力、および、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが仮想的に受ける力を推定し、その推定結果と、関節の位置とに基づいて回転角度θを算出する。具体的な算出方法は、前述した通りである。
次いで、ステップS107において、ロボットアーム200を駆動する。すなわち、ステップS106で算出した回転角度θに基づいて、各モーターM1~モーターM7に対する通電条件を制御する。また、長距離引力場に設定したロボットアーム200および短距離引力場に設定したハンド25の順で駆動することで、アーム基準点Aとアーム作業点Bとが一致し、その後、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが一致するようにロボットアーム200およびハンド25を駆動することができる。
次いで、ステップS108において、作業が完了したか否かを判断する。ステップS108において、完了していないと判断した場合、ステップS101に戻り、以降のステップを順次繰り返す。このように、リアルタイムで撮像しつつ、関節の回転角度θを算出してロボットアーム200およびハンド25を駆動することにより、リアルタイムで障害物の回避や、例えば、コンベア上の移動するワークWに追従して所望の作業を行うことができる。
以上説明したように、本発明のロボットの制御方法は、ロボットアーム200を有し、ロボットアーム200に設けられたエンドエフェクターであるハンド25によって対象物であるワークWへの作業を実行するロボット2を、三次元カメラ3の撮像結果に基づいて制御するロボットの制御方法である。また、ロボットの制御方法は、三次元カメラ3で、ロボットアーム200およびワークWを含む画像Dxを撮像する第1ステップと、得られた画像Dxおよび深度情報から点群Ppointを生成する第2ステップと、点群Ppointを、ロボットアームに関する第1点群Parm、および、ワークWに関する第2点群Ptarに分類する第3ステップと、画像Dxに基づいて、ロボットアーム200の関節の位置を求める第4ステップと、第1点群Parmとロボットアーム200の関節の位置とに基づいてアーム基準点Aを設定するとともに、第2点群Ptarに基づいて、作業を実行する際にアーム基準点Aが位置する点をアーム作業点Bに設定する第5ステップと、アーム基準点Aとアーム作業点Bとが仮想的に受ける力を推定するポテンシャル関数、および、関節の位置に基づいて、アーム基準点Aがアーム作業点Bに位置するよう移動するためのロボットアーム200の動作における関節の回転角度θを算出する第6ステップと、算出した回転角度θに基づいて、ロボットアーム200の関節を所定角度動作させる第7ステップと、を有する。このような方法によれば、従来のようなカメラ座標系とロボット座標系とを対応付けるという面倒な作業を省略することができる。よって、ロボット2を即座に使用することができる。
換言すれば、本発明のロボットの制御方法は、ロボットアーム200を有し、ロボットアーム200に設けられたエンドエフェクターであるハンド25によって対象物であるワークWへの作業を実行するロボット2を、三次元カメラ3の撮像結果に基づいて制御するロボットの制御方法であって、撮像結果から設定される作業位置に対し、ロボット2を制御する際に用いられるロボット制御座標系への変換を行わずに、ロボットアーム200の関節の回転角度θを算出する。これにより、従来のようなカメラ座標系とロボット座標系とを対応付けるという面倒な作業を省略することができる。よって、ロボット2を即座に使用することができる。
また、本発明では、三次元カメラ3の撮像範囲にロボットアーム200およびワークWが入ってさえいれば、ロボットアーム200を駆動するのに必要な関節の回転角度θを算出することができる。三次元カメラ3を上記制限内で自由に動かすことができる。よって、より作業に適したアングルで撮像を行うことができ、三次元カメラ3を複数設置する必要がない。また、ロボット2の設置位置も変更することができる。
さらに、本発明では、式(23)において、最小二乗法を用いて最適化を行っているため、複雑な制御を行うことなく、正確な動作を実現することができる。
また、本発明のロボットの制御方法では、第7ステップにおいてロボットアーム200を動作させた後に、再度、第1ステップ、第2ステップ、第3ステップ、第4ステップ、第5ステップ、第6ステップおよび第7ステップを繰り返す。これにより、リアルタイムで障害物の回避や、例えば、コンベア上で移動するワークWに追従して所望の作業を行うことができる。
また、第5ステップでは、アーム基準点Aを複数設定するとともに、アーム作業点Bを、アーム基準点Aと同数設定する。これにより、作業中のロボットアーム200の姿勢をより正確に設定することができる。
また、第3ステップでは、点群Ppointから、さらに、エンドエフェクターであるハンド25に関する第3点群Pfingerに分類し、第4ステップでは、画像Dxに基づいて、さらに、ハンド25の位置を求め、第5ステップでは、第3点群Pfingerの少なくとも1つの点をエンドエフェクター基準点Cに設定するとともに、第3点群Pfingerに基づいて、作業を実行する際にエンドエフェクター基準点Cが位置する点をエンドエフェクター作業点Dに設定し、第6ステップでは、ハンド25の位置およびポテンシャル関数に基づいて、エンドエフェクター基準点Cとエンドエフェクター作業点Dとが仮想的に受ける力を推定し、エンドエフェクター基準点Cがエンドエフェクター作業点Dに位置するためのハンド25の動作におけるハンド25の回転角度θ、すなわち、関節25Aおよび関節25Bの回転角度θを算出する。これにより、ロボットアーム200に所望の動作を行わせることに加え、ハンド25にも所望の動作を行わせることができる。
また、本発明のロボットの制御方法では、ポテンシャル関数において、アーム基準点Aとアーム作業点Bとで仮想的に受ける力の大きさは、エンドエフェクター基準点Cとエンドエフェクター作業点Dとで仮想的に受ける力の大きさよりも大きくなるよう第6ステップを実行する。このように、ポテンシャル関数において、動作を行う際の優先順位を設定することができる。すなわち、長距離引力場に設定したロボットアーム200および短距離引力場に設定したハンド25の順で駆動することができる。よって、まず、ロボットアーム200を所望の位置に移動させた後に、ハンド25がワークWを把持するといった順序性のある動作を行うことが可能となる。
以上、本発明のロボットの制御方法を図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各工程の構成は、同様の機能を有する任意の工程に置換することができる。また、ロボットの制御方法には、他の任意の工程が付加されていてもよい。
また、前記実施形態では、アーム基準点Aは第1点群Parmのうちの少なくとも1つの点から設定されるが、これに限定されず、例えば、第1点群Parmと関節位置Eとに基づいて、ロボットアーム200の内部または外部に新たに設定される点であってもよい。
また、前記実施形態では、エンドエフェクター基準点Cは、第3点群Pfingerの少なくとも1つの点から設定されるが、これに限定されず、例えば、第3点群Pfingerに基づいてハンド25の内部または外部に新たに設定される点であってもよい。
また、前記実施形態では、ポテンシャル関数を用いて関節角度を求める構成について説明したが、本発明ではこれに限定されず、関節角度が求められる関数であればよい。
2…ロボット、3…三次元カメラ、4…制御装置、4a…プロセッサー、4b…記憶部、4c…外部インターフェース、4d…システムバス、20…基台、20A…関節、20B…関節、20C…関節、20D…関節、20E…関節、20F…関節、21…第1アーム、22…第2アーム、23…第3アーム、24…第4アーム、25…ハンド、41…撮像制御部、42…点群生成部、43…点群分類部、44…位置特定部、45…位置設定部、46…回転角度算出部、47…実行部、100…ロボットシステム、200…ロボットアーム、251…第1指、252…第2指、300…作業台、Dx…画像、E1…エンコーダー、E2…エンコーダー、E3…エンコーダー、E4…エンコーダー、E5…エンコーダー、E6…エンコーダー、E7…エンコーダー、M1…モーター、M2…モーター、M3…モーター、M4…モーター、M5…モーター、M6…モーター、M7…モーター、Ppoints…点群、Parm…第1点群、Ptar…第2点群、Pfinger…第3点群、Pobs…第4点群、W…ワーク、A(A1、A2)…アーム作業点、B(B1、B2)…アーム基準点、C(C1、C2)…エンドエフェクター作業点、D(D1、D2)…エンドエフェクター基準点、θ…回転角度
Claims (6)
- ロボットアームを有し、前記ロボットアームに設けられたエンドエフェクターによって対象物への作業を実行するロボットを、三次元カメラの撮像結果に基づいて制御するロボットの制御方法であって、
前記三次元カメラで、前記ロボットアームおよび前記対象物を含む画像を撮像する第1ステップと、
得られた前記画像および深度情報から点群を生成する第2ステップと、
前記点群を、前記ロボットアームに関する第1点群、および、前記対象物に関する第2点群に分類する第3ステップと、
前記画像に基づいて、前記ロボットアームの関節の位置を求める第4ステップと、
前記第1点群のうちの少なくとも1つの点をアーム基準点に設定するとともに、前記第2点群に基づいて、前記作業を実行する際に前記アーム基準点が位置する点をアーム作業点に設定する第5ステップと、
前記アーム基準点と前記アーム作業点とが仮想的に受ける力を推定するポテンシャル関数、および、前記関節の位置に基づいて、前記アーム基準点が前記アーム作業点に位置するよう移動するための前記ロボットアームの動作における前記関節の回転角度を算出する第6ステップと、
算出した前記回転角度に基づいて、前記ロボットアームの前記関節を所定角度動作させる第7ステップと、を有することを特徴とするロボットの制御方法。 - 前記第7ステップにおいて前記ロボットアームを動作させた後に、再度、前記第1ステップ、前記第2ステップ、前記第3ステップ、前記第4ステップ、前記第5ステップ、前記第6ステップおよび前記第7ステップを繰り返す請求項1に記載のロボットの制御方法。
- 前記第5ステップでは、前記アーム基準点を複数設定するとともに、前記アーム作業点を、前記アーム基準点と同数設定する請求項1または2に記載のロボットの制御方法。
- 前記第3ステップでは、前記点群から、さらに、前記エンドエフェクターに関する第3点群に分類し、
前記第4ステップでは、前記画像に基づいて、さらに、前記エンドエフェクターの位置を求め、
前記第5ステップでは、前記第3点群の少なくとも1つの点をエンドエフェクター基準点に設定するとともに、前記第3点群に基づいて、前記作業を実行する際に前記エンドエフェクター基準点が位置する点をエンドエフェクター作業点に設定し、
前記第6ステップでは、前記エンドエフェクターの位置および前記ポテンシャル関数に基づいて、前記エンドエフェクター基準点と前記エンドエフェクター作業点とが仮想的に受ける力を推定し、前記エンドエフェクター基準点が前記エンドエフェクター作業点に位置するための前記エンドエフェクターの動作における前記エンドエフェクターの回転角度を算出する請求項1ないし3のいずれか1項に記載のロボットの制御方法。 - 前記ポテンシャル関数において、前記アーム基準点と前記アーム作業点とで仮想的に受ける力の大きさは、前記エンドエフェクター基準点と前記エンドエフェクター作業点とで仮想的に受ける力の大きさよりも大きくなるよう前記第6ステップを実行する請求項4に記載のロボットの制御方法。
- ロボットアームを有し、前記ロボットアームに設けられたエンドエフェクターによって対象物への作業を実行するロボットを、三次元カメラの撮像結果に基づいて制御するロボットの制御方法であって、
前記撮像結果から設定される作業位置に対し、前記ロボットを制御する際に用いられるロボット制御座標系への変換を行わずに、前記ロボットアームの関節の回転角度を算出することを特徴とするロボットの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020218052A JP2022102961A (ja) | 2020-12-25 | 2020-12-25 | ロボットの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020218052A JP2022102961A (ja) | 2020-12-25 | 2020-12-25 | ロボットの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022102961A true JP2022102961A (ja) | 2022-07-07 |
Family
ID=82273707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020218052A Pending JP2022102961A (ja) | 2020-12-25 | 2020-12-25 | ロボットの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022102961A (ja) |
-
2020
- 2020-12-25 JP JP2020218052A patent/JP2022102961A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11090814B2 (en) | Robot control method | |
JP6180086B2 (ja) | 情報処理装置及び情報処理方法 | |
US8306661B2 (en) | Method and system for establishing no-entry zone for robot | |
JP6380828B2 (ja) | ロボット、ロボットシステム、制御装置、及び制御方法 | |
JP6826069B2 (ja) | ロボットの動作教示装置、ロボットシステムおよびロボット制御装置 | |
CN110815258B (zh) | 基于电磁力反馈和增强现实的机器人遥操作系统和方法 | |
JP7111114B2 (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
US20170277167A1 (en) | Robot system, robot control device, and robot | |
JP2017170599A (ja) | ロボットを用いた位置決め装置 | |
JP6897396B2 (ja) | 制御装置、ロボットシステムおよび制御方法 | |
CN113829343A (zh) | 基于环境感知的实时多任务多人人机交互系统 | |
CN108340352A (zh) | 基于示教关节臂的工业机器人远程实时操控方法 | |
CN114347008A (zh) | 基于工业机器人的无序抓取工件方法、装置及智能终端 | |
Nandikolla et al. | Teleoperation Robot Control of a Hybrid EEG‐Based BCI Arm Manipulator Using ROS | |
Parga et al. | Tele-manipulation of robot arm with smartphone | |
JP2022102961A (ja) | ロボットの制御方法 | |
US20230123629A1 (en) | 3d computer-vision system with variable spatial resolution | |
Zhao | Multifeature video modularized arm movement algorithm evaluation and simulation | |
JP2015221485A (ja) | ロボット、ロボットシステム、制御装置、及び制御方法 | |
JP7134413B2 (ja) | 計測装置、計測方法、及び計測プログラム | |
JP2003062775A (ja) | 人間型ハンドロボット用教示システム | |
Huynh et al. | Dynamic Hybrid Filter for Vision‐Based Pose Estimation of a Hexa Parallel Robot | |
JP2021186929A (ja) | 多軸ロボットの制御方法 | |
Lu et al. | Robot calibration using relative measurements | |
JP7447568B2 (ja) | シミュレーション装置およびプログラム |