(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024081946
(43)【公開日】2024-06-19
(54)【発明の名称】ロボット
(51)【国際特許分類】
B25J 13/00 20060101AFI20240612BHJP
【FI】
B25J13/00 A
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022195553
(22)【出願日】2022-12-07
(71)【出願人】
【識別番号】000000099
【氏名又は名称】株式会社IHI
(74)【代理人】
【識別番号】110000936
【氏名又は名称】弁理士法人青海国際特許事務所
(72)【発明者】
【氏名】林 浩一郎
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS02
3C707BS10
3C707DS01
3C707ES03
3C707EV07
3C707HS27
3C707KS03
3C707KT01
3C707KT05
3C707KV01
3C707LS15
3C707LT12
3C707LV07
3C707NS06
(57)【要約】
【課題】物体の表面性状にかかわらず安定的に対象物を把持することができる、ロボットを提供すること。
【解決手段】ロボット10は、把持される対象物80を検出するセンサ13と、対象物80を把持するマニピュレータ11と、ロボット10の制御装置50と、を備える。制御装置50は、マニピュレータ11および対象物80の形状を記憶する。制御装置50は、センサ13の検出データと、対象物80の記憶された形状とを比較することによって、対象物80が存在する領域を予測することと、マニピュレータ11の記憶された形状、および、対象物80の予測された領域に基づいて、マニピュレータ11が対象物80を脱出不能に囲うようにケージングを成立させる、把持位置を算出することと、算出された把持位置までのマニピュレータ11の軌道を生成することと、を実行するように構成される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
把持される対象物を検出するセンサと、
前記対象物を把持するマニピュレータと、
ロボットの制御装置であって、
当該制御装置は、前記マニピュレータおよび前記対象物の形状を記憶し、
当該制御装置は、
前記センサの検出データと、前記対象物の前記記憶された形状とを比較することによって、前記対象物が存在する領域を予測することと、
前記マニピュレータの前記記憶された形状、および、前記対象物の前記予測された領域に基づいて、前記マニピュレータが前記対象物を脱出不能に囲うようにケージングを成立させる、把持位置を算出することと、
前記算出された把持位置までの前記マニピュレータの軌道を生成することと、
を実行するように構成される、
制御装置と、
を備える、ロボット。
【請求項2】
前記対象物は、第1端部と、前記第1端部の反対側の第2端部と、前記第1端部および前記第2端部の間に位置し、かつ前記第1端部よりも細いネック部と、を含み、
前記把持位置を算出することは、前記マニピュレータが前記ネック部と係合するようにケージングを成立させることを含む、
請求項1に記載のロボット。
【請求項3】
前記制御装置は、前記対象物の周囲環境の形状を記憶し、
前記把持位置を算出することは、前記マニピュレータおよび前記周囲環境が前記対象物を脱出不能に囲い込むようにケージングを成立させることを含む、
請求項1または2に記載のロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットに関する。
【背景技術】
【0002】
ロボットは、マニピュレータの制御に力制御を使用する場合がある。例えば、特許文献1は、切削または研磨等の機械加工に使用可能なエンドエフェクタを備えるロボットを開示する。このロボットは、エンドエフェクタの制御に力制御および位置制御の双方を使用する。特許文献1のロボットでは、エンドエフェクタを目標の軌道に沿って移動させるように位置制御が使用される。また、エンドエフェクタが目標力で対象物に接触するように力制御が使用される。
【0003】
また、例えば、特許文献2は、部品またはツール等のワークを把持するロボットアームを備える、ロボットを開示する。このロボットは、ロボットアームの制御に、力制御としてインピーダンス制御を使用する。特許文献2のロボット制御装置では、ロボットアームの手先の速度が第1速度である場合には、インピーダンス制御の粘性パラメータが第1粘性値に調整される。ロボットアームの手先の速度が第1速度よりも遅い第2速度である場合には、粘性パラメータが第1粘性値よりも高い第2粘性値に調整される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018-089747号公報
【特許文献2】特開2019-214105号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ロボットのマニピュレータは、様々な作業に使用される。例えば、マニピュレータは、物体の把持に使用される。例えば、マニピュレータが、物体とマニピュレータとの間の摩擦によって物体を把持する場合、摩擦係数は、物体の表面性状に応じて変化する。しかしながら、物体毎に摩擦係数を得ることは困難である。したがって、この場合、把持力は、安全率を考慮して大きな値に設定され得る。しかしながら、安全率は、経験およびノウハウに基づいて決定されがちである。
【0006】
本開示は、物体の表面性状にかかわらず安定的に対象物を把持することができる、ロボットを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一態様に係るロボットは、把持される対象物を検出するセンサと、対象物を把持するマニピュレータと、ロボットの制御装置であって、制御装置は、マニピュレータおよび対象物の形状を記憶し、制御装置は、センサの検出データと、対象物の記憶された形状とを比較することによって、対象物が存在する領域を予測することと、マニピュレータの記憶された形状、および、対象物の予測された領域に基づいて、マニピュレータが対象物を脱出不能に囲うようにケージングを成立させる、把持位置を算出することと、算出された把持位置までのマニピュレータの軌道を生成することと、を実行するように構成される、制御装置と、を備える。
【0008】
対象物は、第1端部と、第1端部の反対側の第2端部と、第1端部および第2端部の間に位置し、かつ第1端部よりも細いネック部と、を含んでもよく、把持位置を算出することは、マニピュレータがネック部と係合するようにケージングを成立させることを含んでもよい。
【0009】
制御装置は、対象物の周囲環境の形状を記憶してもよく、把持位置を算出することは、マニピュレータおよび周囲環境が対象物を脱出不能に囲い込むようにケージングを成立させることを含んでもよい。
【発明の効果】
【0010】
本開示によれば、物体の表面性状にかかわらず安定的に対象物を把持することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態に係るロボットを含むロボットシステムを示す概略図である。
【
図2】
図2は、対象物を説明する概略的な断面図である。
【
図3】
図3は、
図2中のIII-III線に沿って得られる概略的な断面図である。
【
図5】
図5は、把持位置の算出を示す概略的な断面図である。
【
図6】
図6は、マニピュレータの軌道の生成を示す概略的な断面図である。
【
図7】
図7は、実施形態に係るロボットの動作を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本開示の実施形態について詳細に説明する。かかる実施形態に示す具体的な寸法、材料および数値等は、理解を容易とするための例示にすぎず、特に断る場合を除き、本開示を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本開示に直接関係のない要素は図示を省略する。
【0013】
図1は、実施形態に係るロボット10を含むロボットシステム100を示す概略図である。本開示において、ロボットシステム100は、単にシステム100とも称され得る。システム100では、通い箱(周囲環境)90からのワーク(対象物)80の運搬に、ロボット10が使用される。具体的には、ロボット10は、通い箱90中のワーク80を把持し、ワーク80を通い箱90から取り出す。その後、ロボット10は、ワーク80をシステム100内の後工程へと運搬する。他の実施形態では、ロボット10は、対象物を把持することを含む、様々な作業に使用されてもよい。また、他の実施形態では、対象物は、ワーク80以外の他の物体であってもよい。
【0014】
通い箱90は、複数の部屋91を含む。各部屋91は、ワーク80を収容するように構成される。例えば、各部屋91は、鉛直方向に延在する直方体形状を有する。各部屋91の上部は、開口91aを含む。
【0015】
図2は、対象物80を説明する概略的な断面図である。
図2では、1つの部屋91のみが示される。ワーク80は、ワーク80が部屋91内に収容された姿勢において、概ね鉛直方向に延在する。ワーク80は、ワーク80が部屋91内に収容された姿勢において、上側に位置する第1端部81と、延在方向において第1端部81の反対側に位置する、すなわち、下側に位置する第2端部82と、を含む。ワーク80は、第1端部81と第2端部82との間にネック部83を含む。ネック部83は、第1端部81と第2端部82との間を延在する。ネック部83は、第1端部81よりも細い。また、本実施形態では、ネック部83は、第2端部82よりも細い。
【0016】
図1を参照して、本実施形態では、ワーク80の運搬に使用されるロボット10は、多自由度多関節型ロボットである。他の実施形態では、ロボット10は、他のタイプのロボットであってもよい。本実施形態では、例えば、ロボット10は、マニピュレータ11と、アーム12と、カメラ(センサ)13と、制御装置50と、を備える。ロボット10は、他の構成要素をさらに備えてもよい。
【0017】
マニピュレータ11は、アーム12の先端から延在する。例えば、マニピュレータ11は、ロッド11aと、複数のフィンガ11bと、を含む。なお、
図1では、1つのフィンガ11bのみが示される。例えば、ロッド11aは、アーム12の先端から延在する。例えば、フィンガ11bは、ロッド11aの先端から、ロッド11aの延在方向に垂直な方向に突出する。
【0018】
図3は、
図2中のIII-III線に沿って得られる概略的な断面図である。
図2と同様に、
図3では、1つの部屋91のみが示される。
図3の例では、ネック部83の断面は、矩形形状を有する。また、
図3では、より良い理解のために、第1端部81が二点鎖線で示される。本実施形態では、マニピュレータ11は、2本のフィンガ11bを含む。本実施形態では、2本のフィンガ11bは、ロッド11aの延在方向およびフィンガ11bの突出方向に垂直な方向に沿って、互いに離間して配置される。本実施形態では、フィンガ11bは、非可動であり、アーム12の先端に対して相対的に固定される。他の実施形態では、フィンガ11bの数は、3本以上であってもよい。また、他の実施形態では、フィンガ11bは、可動であってもよい。2つのフィンガ11bの間の隙間は、第1端部81の幅よりも狭く、かつ、ネック部83の幅よりも広い。したがって、マニピュレータ11は、2つのフィンガ11bをネック部83の両側に配置し、かつ、2つのフィンガ11bを第1端部81の下面に接触させることによって、ワーク80を把持して持ち上げることができる。
【0019】
図1を参照して、アーム12は、例えば、マニピュレータ11を多自由度で移動させる。例えば、アーム12は、鉛直方向と、鉛直方向に垂直な1または複数の方向と、これらの組み合わせの方向と、にマニピュレータ11を移動させることができる。
【0020】
ロボット10は、アーム12を動かすための複数のモータMを含む。例えば、モータMは、サーボモータであってもよく、エンコーダを含んでもよい。モータMは、制御装置50と有線または無線で通信可能に接続される。例えば、制御装置50は、エンコーダからの信号に基づいて、マニピュレータ11の位置および姿勢を得ることができる。制御装置50は、モータMに指令信号を送信し、マニピュレータ11の移動を制御する。
【0021】
カメラ13は、ワーク80を検出するように構成される。例えば、カメラ13は、アーム12の先端付近に設けられてもよい。例えば、カメラ13は、イメージセンサを含む。例えば、カメラ13は、ToF(Time-of-Flight)カメラ、RGBカメラ等の2Dカメラ、ステレオカメラ、または、RGB-Dカメラ等のデプスカメラであってもよい。本実施形態では、カメラ13は、ワーク80および通い箱90の画像を上方から撮影するが、他の実施形態では、カメラ13は、画像を他の方向から撮影してもよい。カメラ13は、制御装置50と有線または無線で通信可能に接続され、撮影された画像を制御装置50に送信する。
【0022】
制御装置50は、ロボット10の全体または一部を制御する。制御装置50は、例えば、プロセッサ50a、記憶装置50bおよびコネクタ50c等の構成要素を含み、これらの構成要素はバスを介して互いに接続される。例えば、プロセッサ50aは、CPU(Central Processing Unit)等を含む。例えば、記憶装置50bは、ハードディスク、プログラム等が格納されるROM、および、ワークエリアとしてのRAM等を含む。制御装置50は、コネクタ50cを介してロボット10の各構成要素と通信する。例えば、制御装置50は、液晶ディスプレイまたはタッチパネル等の表示装置、および、キーボード、ボタンまたはタッチパネル等の入力装置等、他の構成要素を更に含んでもよい。例えば、以下に示される制御装置50の動作は、記憶装置50bに記憶されるプログラムをプロセッサ50aに実行することによって、実現されてもよい。
【0023】
制御装置50は、マニピュレータ11、ワーク80および通い箱90のモデルを記憶する。モデルは、少なくとも、マニピュレータ11、ワーク80および通い箱90の3次元形状を含む。モデルは、マニピュレータ11、ワーク80および通い箱90に関する他の項目を含んでもよい。モデルは、例えば、記憶装置50bに記憶される。
【0024】
プロセッサ50aは、カメラ13から受信する画像と、記憶装置50bに記憶されたモデルの形状とを比較することによって、ワーク80が存在する領域を予測する。具体的には、例えば、カメラ13は、ワーク80の第1端部81(上面)と、通い箱90の開口91aと、を含む画像を撮影する。例えば、プロセッサ50aは、公知の様々なマッチング手法を用いて、第1端部81の記憶された形状と、撮影された画像と、を比較することによって、第1端部81がカメラ13に対してどこに位置するかを決定することができる。例えば、プロセッサ50aは、第1端部81の決定された位置に、記憶された形状を重ね合わせることによって、第1端部81よりも下方のワーク80の部分が、カメラ13に対してどこに位置するかを予測することができる。同様に、プロセッサ50aは、公知の様々なマッチング手法を用いて、開口91aの記憶された形状と、撮影された画像とを比較することによって、開口91aがカメラ13に対してどこに位置するかを決定することができる。例えば、プロセッサ50aは、開口91aの決定された位置に、記憶された形状を重ね合わせることによって、開口91aよりも下方の部屋91の部分が、カメラ13に対してどこに位置するかを予測することができる。
【0025】
続いて、実施形態で使用されるC空間(Configuration Space)について説明する。
【0026】
図4は、一般的なC空間の説明図である。
図4の左図は、移動体20が、壁21,22の間を通りながら、スタートP1からゴールP2まで移動することを示す上面図である。この例では、移動体20は、半径rを有する球形状を有する。
【0027】
図4の右図は、左図の状況をC空間として表す。C空間は、位置および姿勢を含む移動体20の状態を、一般化座標として表す。すなわち、C空間では、移動体20は点として表される。例えば、この点は、移動体20の中心と一致する。C空間は、移動体20に対する障害物(C障害物)として、壁21,22を含む。
【0028】
移動体20は所定のサイズを有するため、壁21,22の周りには、移動体20が壁21,22と干渉する、すなわち、移動体20(点)が通過することができない領域C1,C2が存在する。C空間では、これらの領域C1,C2もC障害物として表され、右図ではクロスハッチングで示される。本開示において、このような領域は、「C障害物領域」とも称され得る。具体的には、この例では、移動体20は半径rを有する球形状を有するため、C障害物領域C1,C2は、それぞれ、壁21,22から、これらの壁21,22より距離rだけ離れた位置までである。したがって、スタートP1からゴールP2までの移動体20の軌道T1は、C障害物領域C1,C2の間の空間(C-free空間)から見つけることができる。
【0029】
C空間の次元数は、移動体20の取り得る姿勢の数と一致する。例えば、
図4の例では、移動体20は球形状を有し、移動体20が姿勢を変えても形状は変わらない。したがって、
図4の例では、右図に示されるような次元のみが考慮される。しかしながら、移動体20が単純な球形状を有さず、移動体20の取り得る姿勢の数が増加する場合には、取り得る姿勢の数に応じて、より多くの次元数のC空間を考慮しなければならない。
【0030】
続いて、マニピュレータ11がワーク80を把持する把持位置の算出、および、把持位置までのマニピュレータ11の軌道の生成について説明する。
【0031】
図5は、把持位置Phの算出を示す概略的な断面図である。
図5の上図は、
図2中のIII-III線に沿って得られる概略的な断面図であり、上記の
図3と一致する。
図5の上図を参照して、ネック部83の第1の辺83aは幅W1を有し、第2の辺83bは幅W2を有する。部屋91は、側壁92a,92b,92c,92dおよび底壁92eにより画定される。ネック部83は、マニピュレータ11と、側壁92aとの間に位置する。
【0032】
マニピュレータ11の把持位置Phの算出には、上記のC空間が使用される。
図5の中図は、上図の状況をC空間として表す。このプロセスでは、ワーク80の状態が一般化座標で示される。すなわち、このC空間では、ワーク80が点として表される。
図5の例では、この点は、ネック部83の断面の中心と一致する。他の実施形態では、この点は、ワーク80に関する他の点であってもよい。
【0033】
ワーク80が側壁92a,92b,92c,92dおよび底壁92eと干渉する領域は、C障害物として表される。なお、より良い理解のため、
図5では、これらの領域のうち、ケージングに使用される領域C3のみが、クロスハッチングで示される。C障害物領域C3は、ネック部83を挟んでマニピュレータ11と対向する側壁92aから、この側壁92aより距離W2/2だけ離れた位置までである。
【0034】
また、ワーク80がマニピュレータ11と干渉する領域C4も、C障害物として表される。C障害物領域C4は、マニピュレータ11の辺のうち、ネック部83の第1の辺83aに平行な辺から、これらの辺より距離W2/2だけ離れた位置までである。また、C障害物領域C4は、マニピュレータ11の辺のうち、ネック部83の第2の辺83bに平行な辺から、これらの辺より距離W1/2だけ離れた位置までである。
【0035】
図5の下図は、ケージングが成立した状況を示す。本開示において、「ケージング」とは、対象物が少なくともマニュピレータによって脱出不能に囲われることを意味する。周囲環境もケージングに使用される場合には、「ケージング」とは、対象物がマニュピレータおよび周囲環境によって脱出不能に囲われることを意味する(本開示において、「環境ケージング」とも称され得る)。つまり、環境ケージングは、ケージングの一形式である。本開示において、「周囲環境」とは、対象物の周辺の物体を意味する。本開示において、「脱出不能」とは、対象物が包囲物から抜け出すことができない状況を意味する。C空間では、ワーク80を表す点がC障害物領域によって脱出不能によって囲われると、ケージングが成立する。
図5の例では、ワーク80は、マニピュレータ11に加えて、周囲環境である側壁92aを使用して囲われる。具体的には、
図5の下図に示されるように、ワーク80は、マニピュレータ11に対して設定されたC障害物領域C4と、側壁92aに対して設定されたC障害物領域C3とが互いに接触して、C障害物領域C4,C3によって閉ループが形成される場合に、マニピュレータ11および側壁92aによって脱出不能に囲われる。プロセッサ50aは、ケージングが成立する位置を、マニピュレータ11の把持位置Phとして算出する。
【0036】
図2を参照して、例えば、把持位置Ph(
図2には不図示)の高さは、マニピュレータ11および側壁92aによるケージングが成立する限りにおいてどの位置であってもよい。何故ならば、その位置からマニピュレータ11を上方に移動させることによって、フィンガ11bが第1端部81に接触するからである。
【0037】
図6は、マニピュレータ11の軌道T2の生成を示す概略的な断面図である。
図6の左図は、
図3中のVI-VI線に沿って得られる概略的な断面図である。
図6の左図を参照して、フィンガ11bは、突出方向に長さW3を有する。プロセッサ50aは、ある初期位置P3、例えば、カメラ13がワーク80の画像を撮影した位置から、算出された把持位置Phまでのマニピュレータ11の軌道T2を生成する。
【0038】
軌道T2の生成には、C空間が使用される。
図6の右図は、左図の状況をC空間として表す。このプロセスでは、マニピュレータ11の状態が一般化座標で示される。すなわち、このC空間では、マニピュレータ11が点として表される。
図6の例では、この点は、突出方向におけるフィンガ11bの中心と一致する。他の実施形態では、この点は、フィンガ11bもしくはロッド11a、または、マニピュレータ11全体に関する他の点であってもよい。
【0039】
マニピュレータ11が部屋91を画定する壁と干渉する領域は、C障害物として表される。なお、より良い理解のため、
図6では、これらの領域のうち、
図6で視認可能な側壁92a,92cに対する領域C5,C6のみがクロスハッチングで示され、側壁92b,92dおよび底壁92eに対する領域は省略される。C障害物領域C5,C6は、それぞれ側壁92a,92cから、これらの側壁92a,92cより距離W3/2だけ離れた位置までである。
【0040】
また、マニピュレータ11がワーク80と干渉する領域も、C障害物として表される。しかしながら、
図3を参照して、VI-VI線の断面位置では、ワーク80の周りに配置されるC障害物領域は視認不可であるため、
図6では、これらの領域の描写は省略される。
【0041】
図6の右図を参照して、プロセッサ50aは、初期位置P3から把持位置Phまでのマニピュレータ11の軌道T2を、C障害物領域C5、C障害物領域C6、および、不図示の他のC障害物領域の間のC-free空間から見つけだす。
【0042】
以上のような把持位置Phの算出および軌道T2の生成に使用されるC空間の構成には、様々な手法が使用可能である。
【0043】
例えば、ワーク80に固定されワーク80の所定の点に原点を有する第1座標系と、マニピュレータ11に固定されマニピュレータ11の所定の点に原点を有する第2座標系と、を設定する。
【0044】
まず、第1座標系において、所定の範囲(例えば、部屋91)を複数のセルへと離散化する(第1C空間)。各セルにおいて、干渉を判定する。各セルは、マニピュレータ11がC障害物と干渉するC-obstacle点、または、マニピュレータ11がC障害物と干渉しないC-free点に分類される。
【0045】
続いて、第1C空間においてC-free点に分類された全てのセルについて、第2座標系において、当該セルを基準に所定の範囲を複数のセルへと離散化する(第2C空間)。つまり、第1C空間においてC-free点に分類された全てのセルについて、第2C空間を作成する。各セルにおいて、干渉を判定する。各セルは、ワーク80がC障害物と干渉するC-obstacle点、または、ワーク80がC障害物と干渉しないC-free点に分類される。ある第2C空間において、ワーク80を含むC-free領域がC-obstacle領域に囲われている場合、すなわち、ワーク80を含むC-free領域が、C-obstacle領域の外側のC-free領域とC-free点によって接続されていない場合、ケージングが成立する。
【0046】
続いて、システム100の動作について説明する。
【0047】
図7は、実施形態に係るロボット10の動作を示すフローチャートである。例えば、
図7に示される動作は、通い箱90がロボット10の周りの所定の位置に運ばれ、制御装置50が、システム100全体のメイン制御装置(不図示)から指令を受けると、開始されてもよい。
【0048】
制御装置50のプロセッサ50aは、ある部屋91に対して予め設定された初期位置P3まで、マニピュレータ11を移動させる(ステップS100)。具体的には、プロセッサ50aは、マニピュレータ11が初期位置P3に到達するように、アーム12のモータMに指令を送る。
【0049】
プロセッサ50aは、初期位置P3において、ワーク80を検出する(ステップS102)。具体的には、プロセッサ50aは、初期位置P3からの画像を撮影するように、カメラ13に指令を送る。
【0050】
プロセッサ50aは、カメラ13から受信する画像と、記憶装置50bに記憶されたモデルの形状とを比較することによって、ワーク80が存在する領域を予測する(ステップS104)。具体的には、例えば、プロセッサ50aは、第1端部81の記憶された形状と、撮影された画像と、を比較することによって、第1端部81がカメラ13に対してどこに位置するかを決定することができる。プロセッサ50aは、第1端部81の決定された位置に、記憶された形状を重ね合わせることによって、第1端部81よりも下方のワーク80の部分が、カメラ13に対してどこに位置するかを予測することができる。同様に、プロセッサ50aは、開口91aの記憶された形状と、撮影された画像とを比較することによって、開口91aがカメラ13に対してどこに位置するかを決定することができる。プロセッサ50aは、開口91aの決定された位置に、記憶された形状を重ね合わせることによって、開口91aよりも下方の部屋91の部分が、カメラ13に対してどこに位置するかを予測することができる。
【0051】
プロセッサ50aは、マニピュレータ11の記憶された形状、および、ワーク80の予測された領域に基づいて、マニピュレータ11がワーク80を脱出不能に囲うようにケージングを成立させる、把持位置Phを算出する(ステップS106)。具体的には、
図5の下図を参照して、本実施形態では、プロセッサ50aは、マニピュレータ11に対して設定されたC障害物領域C4と、側壁92aに対して設定されたC障害物領域C3とが互いに接触して、C障害物領域C4,C3によって閉ループが形成される把持位置Phを算出する。
【0052】
図7に戻り、プロセッサ50aは、算出された把持位置Phまでのマニピュレータ11の軌道T2を生成する(ステップS108)。具体的には、
図6の右図を参照して、プロセッサ50aは、初期位置P3から把持位置Phまでのマニピュレータ11の軌道T2を、C障害物領域C5、C障害物領域C6、および、不図示の他のC障害物領域の間のC-free空間から見つけだす。
【0053】
図7に戻り、プロセッサ50aは、生成された軌道T2に沿って、把持位置Phまでマニピュレータ11を移動させる(ステップS110)。具体的には、プロセッサ50aは、マニピュレータ11が把持位置Phに到達するように、アーム12のモータMに指令を送る。
【0054】
プロセッサ50aは、マニピュレータ11を鉛直上方に移動させることによって、フィンガ11bによってワーク80の第1端部81を把持し、所定の位置までワーク80を運搬する(ステップS112)。これによって、一連の動作が終了する。
【0055】
例えば、
図7に示される動作は、1つの通い箱90に収容された全てのワーク80が運搬されるまで、繰り返されてもよい。この場合、ステップS100では、プロセッサ50aは、次の部屋91に対して設定された初期位置P3まで、マニピュレータ11を移動させる。また、ステップS102において、ワーク80が検出されない場合、すなわち、部屋91が空である場合、プロセッサ50aは、ステップS100に戻り、次の部屋91に対して設定された初期位置P3まで、マニピュレータ11を移動させてもよい。
【0056】
以上のようなロボット10は、把持されるワーク80を検出するカメラ13と、ワーク80を把持するマニピュレータ11と、ロボット10の制御装置50と、を備える。制御装置50は、マニピュレータ11およびワーク80の形状を記憶する。制御装置50は、カメラ13の画像と、ワーク80の記憶された形状とを比較することによって、ワーク80が存在する領域を予測することと、マニピュレータ11の記憶された形状、および、ワーク80の予測された領域に基づいて、マニピュレータ11がワーク80を脱出不能に囲うようにケージングを成立させる、把持位置Phを算出することと、算出された把持位置Phまでのマニピュレータ11の軌道T2を生成することと、を実行するように構成される。このような構成によれば、マニピュレータ11は、ワーク80を脱出不能に囲うように、ワーク80を把持する。したがって、制御装置50は、摩擦係数等のワーク80の表面性状にかかわらず安定的に、ワーク80を把持することができる。また、このような構成によれば、カメラ13によってワーク80の一部を検出することができない場合でも、カメラ13の画像と、ワーク80の記憶された形状とを比較することによって、ワーク80が存在する全領域を予測することができる。したがって、ワーク80の中のケージングに適した部位が、どの領域に存在するかを予測することができる。よって、ケージングが成立されやすくなる。
【0057】
また、ワーク80は、第1端部81と、第1端部81の反対側の第2端部82と、第1端部81および第2端部82の間に位置し、かつ第1端部81よりも細いネック部83と、を含み、把持位置Phを算出することは、マニピュレータ11がネック部83と係合するようにケージングを成立させることを含む。このような構成によれば、把持位置Phの取り得る領域が、ネック部83に限られる。したがって、制御装置50は、把持位置Phを容易に見つけ出すことができる。
【0058】
また、制御装置50は、ワーク80の周囲の部屋91の形状を記憶し、把持位置Phを算出することは、マニピュレータ11および部屋91の側壁92aがワーク80を脱出不能に囲い込むようにケージングを成立させることを含む。このような構成によれば、周囲環境をケージングに利用することができ、マニピュレータ11の構成を簡素化することができる。
【0059】
以上、添付図面を参照しながら実施形態について説明したが、本開示は上記実施形態に限定されない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。
【0060】
例えば、上記の実施形態では、対象物を検出するセンサとして、カメラ13が使用される。センサはこれに限定されず、例えば、LiDAR(Light Detection and Ranging)またはレーザセンサ等の他のセンサが使用されてもよい。
【0061】
また、例えば、上記の実施形態では、カメラ13は、通い箱90の開口91aを検出する。しかしながら、例えば、部屋91におけるワーク80の収容位置が予め決められている場合には、部屋91が存在する領域は、ワーク80の予測された領域に基づいて予測することができる。したがって、他の実施形態では、制御装置50は、通い箱90の開口91aを検出しなくてもよい。
【0062】
また、例えば、上記の実施形態では、ワーク80は、通い箱90に収容され、制御装置50は、把持位置の算出に周囲環境である通い箱90の側壁92aを使用する。他の実施形態では、制御装置50は、把持位置の算出にロボット10の周囲環境を使用しなくてもよい。例えば、対象物は、加工機のテーブル上で治具によって支持されてもよく、ロボット10は、テーブル上の対象物を把持してもよい。
【符号の説明】
【0063】
10 ロボット
11 マニピュレータ
13 カメラ(センサ)
50 制御装置
80 ワーク(対象物)
81 第1端部
82 第2端部
83 ネック部
90 通い箱(周囲環境)
Ph 把持位置
T2 軌道