(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023148859
(43)【公開日】2023-10-13
(54)【発明の名称】制御方法、制御システム及び保持制御プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20231005BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022057126
(22)【出願日】2022-03-30
(71)【出願人】
【識別番号】517255566
【氏名又は名称】株式会社エクサウィザーズ
(72)【発明者】
【氏名】カール カングール
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707KS03
3C707KS04
3C707KS17
3C707KS29
3C707KS36
3C707KT03
3C707LV07
3C707LW12
3C707MS08
3C707MT04
(57)【要約】
【課題】 ロボットが対象物をより適切に保持する。
【解決手段】
情報処理装置が実行する制御方法であって、情報処理装置が、対象物に接触する接触子を有しかつ当該接触子を用いて対象物を保持する保持体の位置及び形状の少なくとも一方の情報を取得するステップと、対象物に対応する対象物エリアと、保持体に対応する保持体エリアとをそれぞれ算出するステップと、基準軸を算出するステップと、対象物エリア内での基準軸上における保持体と対象物との距離を第一距離として取得するステップと、保持体エリア内での基準軸上における保持体と当該保持体に対向する物体との距離を第二距離として取得するステップと、第二距離を複数取得するステップと、複数の第二距離毎に第一距離との差分量を算出すると共に、当該差分量が最大となる保持位置を算出し、当該保持位置にて対象物を保持体により保持させるステップと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理装置が実行する制御方法であって、
前記情報処理装置が、
対象物に接触する接触子を有しかつ当該接触子を用いて前記対象物を保持する保持体の位置及び形状の少なくとも一方の情報を取得するステップと、
前記保持体が保持可能な領域に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出するステップと、
前記保持体と前記対象物とを結ぶ基準軸を算出するステップと、
前記対象物エリア内での前記基準軸上における前記保持体と前記対象物との距離を第一距離として取得するステップと、
前記保持体エリア内での前記基準軸上における前記保持体と当該保持体に対向する物体との距離を第二距離として取得するステップと、
前記第二距離を複数取得するステップと、
複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となりかつ前記対象物を保持できる保持位置を算出し、当該保持位置にて前記対象物を前記保持体により保持させるステップと、
を含む制御方法。
【請求項2】
前記第二距離は、前記接触子の可動範囲内にて当該接触子を所定の位置へ変更させた上で取得することを繰り返すことで複数取得する、
請求項1に記載の制御方法。
【請求項3】
対象物に接触する接触子を有しかつ当該接触子を用いて前記対象物を保持する保持体の位置及び形状の少なくとも一方の情報を取得する取得部と、
前記保持体が保持可能な領域に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出すると共に、前記保持体と前記対象物とを結ぶ基準軸を算出し、前記対象物エリア内での前記基準軸上における前記保持体と前記対象物との距離を第一距離として取得し、前記保持体エリア内での前記基準軸上における前記保持体と当該保持体に対向する物体との距離を第二距離として取得しかつ前記第二距離を複数取得し、複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となりかつ前記対象物を保持できる保持位置を算出する算出部と、
前記保持位置にて前記対象物を前記保持体により保持させる把持制御部と、
を有する制御システム。
【請求項4】
対象物を保持する保持体の位置及び形状の少なくとも一方を算出する処理と、
前記保持体が保持可能な領域に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出する処理と、
前記保持体と前記対象物とを結ぶ基準軸を算出する処理と、
前記対象物エリア内での前記基準軸における前記保持体と前記対象物との第一距離を取得する処理と、
前記保持体エリア内での前記基準軸上における前記保持体と当該保持体に対向する対象物との第二距離を取得する処理と、
前記第二距離を複数取得する処理と、
複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となりかつ前記対象物を保持できる保持位置を算出し、当該保持位置にて前記対象物を前記保持体により保持させる処理と、
をコンピュータに実行させる保持制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法、制御システム及び保持制御プログラムに関する。
【背景技術】
【0002】
引用文献1には、ロボットにて対象物を取り出す際に対象物を撮像し撮像結果を画像処理することで対象物を認識する画像処理方法が開示されている。この画像処理方法では、同一の対象物を異なる露光条件にて撮像した撮像結果から輝度の差分を求めて対象物の形状を正しく認識する方法とされている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術では、対象物の形状を正しく認識した後にロボットが当該対象物を把持する際、対象物の周囲にある障害物との干渉を避けながらより適切に対象物を把持させるという観点からは改良の余地がある。
【0005】
本発明は、上記の課題を鑑みてなされたものであり、ロボットが対象物をより適切に保持することを目的とする。
【課題を解決するための手段】
【0006】
一実施形態にかかる制御方法は、情報処理装置が実行する制御方法であって、前記情報処理装置が、対象物に接触する接触子を有しかつ当該接触子を用いて前記対象物を保持する保持体の位置及び形状の少なくとも一方の情報を取得するステップと、前記対象物に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出するステップと、前記保持体が前記対象物を保持する際の前記保持体の移動軌跡を算出するステップと、前記対象物エリア内での前記移動軌跡上における前記保持体と前記対象物との距離を第一距離として取得するステップと、前記保持体エリア内での前記移動軌跡上における前記保持体と当該保持体に対向する物体との距離を第二距離として取得するステップと、前記保持体を移動させて前記第二距離を複数取得するステップと、複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となる前記保持体エリアに対応する前記保持体の位置を算出し、当該位置にて前記対象物を前記保持体により保持させるステップと、を含む。
【発明の効果】
【0007】
一実施形態によれば、ロボットが対象物をより適切に把持することができる。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係る制御システムの構成の一例を示す図である。
【
図2】一実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【
図3】一実施形態に係る制御システムの機能構成の一例を示す図である。
【
図4】一実施形態に係る制御システムにおける対象物エリア及び保持体エリアの一例を示す図である。
【
図5】一実施形態に係る制御システムにおいて対象物を保持する際の第一段階の状態を示す図である。
【
図6】一実施形態に係る制御システムにおいて対象物を保持する際の第二段階の状態を示す図である。
【
図7】一実施形態に係る制御システムにおいて対象物を保持する際の第三段階の状態を示す図である。
【
図8】一実施形態に係る制御システムが実行する処理の一例を示すフローチャートである。
【
図9】一実施形態に係る制御システムにおいて対象物を保持する際の別例を示す図である。
【
図10】一実施形態に係る制御システムにおいて対象物を保持する際の更なる別例を示す図である
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。また、各図に適宜記す矢印X、矢印Y、矢印Zは、奥行方向、幅方向、垂直方向をそれぞれ表している。
【0010】
[第1実施形態]
<システム概要>
まず、本実施形態に係る制御システムの概要について説明する。本実施形態に係る制御システムは、任意の場所に載置された対象物を認識すると共に、ロボットに設けられた保持体が当該対象物を保持するようロボットを制御するシステムである。
【0011】
<システム構成>
図1は、本実施形態に係る制御システムの構成の一例を示す図である。
図1に示すように、本実施形態に係る制御システム18は、情報処理装置としての制御装置10と、ロボットとしてのロボットアーム12と、撮像装置14と、を含む。制御装置10は、ロボットアーム12と、撮像装置14とにそれぞれ相互に通信可能に接続されている。例えば、制御装置10と各装置とは、通信ケーブルによる有線接続されている。なお、本実施形態では、制御装置10と各装置とが有線接続とされているが、これに限らず、図示しないネットワークを介して接続されてもよい。この場合、ネットワークは、一例として、有線LAN(Local Area Network)、無線LAN、インターネット、公衆回線網、モバイルデータ通信網、またはこれらの組み合わせである。
【0012】
また、
図1に示す例では、制御装置10、およびロボットアーム12は、通信ケーブルを介して通信可能に接続された物理的に異なる装置であるが、これは本実施形態を限定するものではない。例えば、制御装置10は、ロボットアーム12に内蔵されていてもよい。また、
図1に示す例では、ロボットアーム12および撮像装置14は、物理的に連結された異なる装置であるが、これは本実施形態を限定するものではない。例えば、撮像装置14は、ロボットアーム12に内蔵されていてもよい。
【0013】
さらに、
図1に示す例では、制御システム18が、ロボットアーム12および撮像装置14を1つずつ含んでいるが、これは本実施形態を限定するものではない。制御システム18は、複数のロボットアーム12および複数の撮像装置14を含んでいてもよい。また、
図1に示す例では、1つのロボットアーム12に対して1つの撮像装置14が設けられているが、これは本実施形態を限定するものではない。制御システム18において、1つのロボットアーム12に対応して複数の撮像装置14が設けられていてもよいし、複数のロボットアーム12に対応して1つの撮像装置14が設けられていてもよい。
【0014】
制御装置10は、対象物obj1を被写体として含む画像を取得し、当該対象物obj1における保持位置を示す保持位置情報を、後述の生成モデル60を用いて生成する装置である。また、制御装置10は、生成した保持位置情報に基づいて、対象物を保持する保持動作を実行するようロボットアーム12を制御する。制御装置10は、特許請求の範囲に記載した「情報処理装置」を実現する構成の一例である。制御装置10の詳細な構成については後述する。
【0015】
対象物を被写体として含む画像とは、対象物が撮像されることにより生成された画像である。本実施形態において、当該画像は、少なくとも1つの対象物を被写体として含む。例えば、撮像装置14が対象物obj1を撮像した画像、障害物obj2、obj3を撮像した画像、および対象物obj1及び障害物obj2、obj3の両方を撮像した画像は、それぞれ、対象物を被写体として含む画像の一例である。
【0016】
保持位置とは、現実空間に存在する対象物obj1において、当該対象物obj1をロボットアーム12に保持させる保持部分の現実空間における位置である。本実施形態では、保持位置は、画像上の領域によって特定される。換言すると、当該画像上の領域は、保持部分の現実空間における位置を画像上において示す領域である。なお、複数の保持位置候補が連続する領域を、保持領域とする。
【0017】
ロボットアーム12は、制御装置10の制御に基づいて、物体を把持する把持動作を実行する。具体的には、
図1に示すように、ロボットアーム12は、複数の回転軸を有する多関節ロボットであり、台座部22と、ベース部24と、アーム部26と、保持体としてのエンドエフェクタ28とを含む。
【0018】
台座部22は、ロボットアーム12の設置面に設置される。設置面とは、例えば、床であるが、これに限られない。台座部22は、制御装置10の制御に基づいて設置面を移動可能であり得る。例えば、台座部22は、設置面に接する車輪を有していてもよい。
【0019】
ベース部24は、台座部22に対し、旋回可能に連結される。
【0020】
アーム部26は、複数のアームを含む。各アームの基端部は、ベース部24または他のアームの先端部に対して、定められた軸まわりに回転可能に連結される。また、アーム部26の先端にはエンドエフェクタ28が、定められた軸まわりに回転可能に接続される。また、アーム部26の先端付近には、撮像装置14が連結される。
【0021】
エンドエフェクタ28は、多指ハンドとされており、接触子としての一対の指部30A、30Bを含む。エンドエフェクタ28は、制御装置10の制御に基づいて、指部30A、30Bを互いに離れるように開く動作と、互いに接近するよう閉じる動作とを行う。上述したロボットアーム12の保持動作は、エンドエフェクタ28の開閉により実現される。すなわち、本実施形態におけるロボットアーム12の保持動作は、対象物obj1を把持することで実現される。
【0022】
ロボットアーム12は、制御装置10の制御に基づいて、台座部22の移動、ベース部24の旋回、および各アームの回転の一部または全部を実行することにより、エンドエフェクタ28を所望の位置に移動する。
【0023】
撮像装置14は、制御装置10の制御に基づいて、載置台34の上に載置された対象物obj1および障害物obj2、obj3の一部または全部を撮像した画像を生成する。例えば、撮像装置14の撮像方向および画角は、載置台34の上を撮像範囲とするよう、制御装置10の制御に基づいて変更される。
【0024】
また、撮像装置14は、制御装置10の制御に基づいて、載置台34、載置台34の上に載置された対象物obj1、障害物obj2、obj3と、撮像装置14との間の距離をそれぞれ取得する。例えば、撮像装置14は、公知の深度カメラであり、画素ごとの深度情報から前述の距離を取得するよう、制御装置10の制御に基づいて作動する。ここで、「距離」には、載置台34、対象物obj1、障害物obj2、obj3と、撮像装置14との2点間のそれぞれの最短距離の情報のみならず、所定の軌跡上及び基準軸上の少なくとも一方における2点間の距離の情報が含まれているものとする。本実施形態では、一例として、略上下方向(Z方向)を軸として当該軸上における2点間の距離の情報を含んで取得している。
【0025】
<ハードウェア構成>
次に、制御装置10のハードウェア構成について説明する。
図2は、制御装置10のハードウェア構成の一例を示す図である。
図2に示すように、制御装置10は、バスBを介して相互に接続された、プロセッサ36と、メモリ38と、ストレージ40と、通信I/F42と、入出力I/F44と、を備える。
【0026】
プロセッサ36は、ストレージ40に記憶されたプログラムをメモリ38に展開して実行することにより、制御装置10の各構成を制御し、制御装置10の機能を実現する。プロセッサ36が実行するプログラムは、OS(Operating System)及び保持制御プログラム46(
図3参照)を含むが、これに限られない。プロセッサ36が保持制御プログラム46を実行することにより、本実施形態に係る制御方法が実現される。プロセッサ36は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、又はこれらの組み合わせである。なお、保持制御プログラム46は、請求項4に記載の「プログラム」に相当する。
【0027】
メモリ38は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、又はこれらの組み合わせである。ROMは、例えば、PROM(Programmable ROM)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、又はこれらの組み合わせである。RAMは、例えば、DRAM(Dynamic RAM)、SRAM(Static RAM)、MRAM(Magnetoresistive RAM)、又はこれらの組み合わせである。
【0028】
ストレージ40は、OS、保持制御プログラム46、及び各種のデータを記憶する。ストレージ40は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、SCM(Storage Class Memories)、又はこれらの組み合わせである。
【0029】
通信I/F42は、制御装置10を、通信ケーブルやネットワークを介して、外部装置に接続し、通信を制御するためのインタフェースである。通信I/F42は、例えば、Bluetooth(登録商標)、Wi-Fi(登録商標)、ZigBee(登録商標)、 Ethernet(登録商標)、又は光通信(例えば、Fibre Channel)に準拠したアダプタであるが、これに限られない。
【0030】
入出力I/F44は、制御装置10に撮像装置14及びロボットアーム12を接続するためのインタフェースであり、一例として所定の規格に適合した複数の入出力端子を含んで構成されている。入出力I/F44は、接続されている撮像装置14及びロボットアーム12に対してそれぞれ情報の取得と出力とを行う。
【0031】
なお、本実施形態において、保持制御プログラム46は、制御装置10の製造段階でメモリ38又はストレージ40に書き込まれてもよいし、ネットワーク等を介して制御装置10に提供されてもよいし、図示しないメディアなどの非一時的でコンピュータ読み取り可能な記録媒体を介して制御装置10に提供されてもよい。
【0032】
<機能構成>
次に、制御装置10の機能構成について説明する。
図3は、制御装置10の機能構成の一例を示す図である。
図3に示すように、制御装置10は、制御部48と、記憶部50と、を有する。制御装置10は、一例として上述のハードウェア資源を用いて、具体的には、プロセッサ36がメモリ38又はストレージ40に記憶された保持制御プログラム46を読み出し実行することで、各機能構成を実現する。制御装置10が実現する機能構成について説明する。
【0033】
制御部48は、取得部52と、生成部54と、算出部56と、把持制御部57、と含む。取得部52は、撮像装置14から、対象物obj1及び障害物obj2、obj3を被写体として含む画像を取得する。また、取得部52は、載置台34、対象物obj1及び障害物obj2、obj3と、撮像装置14との2点間のそれぞれの距離を取得する。
【0034】
また、取得部52は、エンドエフェクタ28の位置及び形状の情報を取得する。一例として、取得部52は、ロボットアーム12に設けられた図示しないセンサ等からの情報及び画像情報の少なくとも一方を含む情報を基にエンドエフェクタ28の傾きや姿勢、空間上における位置の情報をリアルタイムで取得する。また、取得部52は、画像情報及び予め入力された寸法情報の少なくとも一方を含む情報からエンドエフェクタ28の形状をリアルタイムで取得する。このエンドエフェクタ28の形状には、指部30A、30Bの開き度合に関する情報も含まれる。
【0035】
生成部54は、取得部52が取得した画像を後述する生成モデル60に入力することにより、保持位置の情報(画像上の領域)を生成する。
【0036】
算出部56は、エンドエフェクタ28の位置及び把持位置情報から、エンドエフェクタ28の移動軌跡及び基準軸を算出する。一例として、本実施形態では対象物obj1の近傍(対象物obj1のZ方向上方)を目標位置としてエンドエフェクタ28の現在位置から目標位置までの移動軌跡と、当該目標位置におけるエンドエフェクタ28と対象物obj1とを結ぶ基準軸とをそれぞれ算出する。本実施形態では、一例として、この基準軸はエンドエフェクタ28と対象物obj1と結ぶ仮想線であり、当該目標位置からエンドエフェクタ28が対象物obj1を保持する際の移動軌跡とされている。目標位置からの移動軌跡において、対象物obj1をエンドエフェクタ28が保持する際、具体的には未把持状態のエンドエフェクタ28が載置台34上の対象物obj1の近傍位置(目標位置)から対象物obj1を把持し載置台34から持ち上げる際には、エンドエフェクタ28を略上下方向の移動軌跡に沿って移動させる(
図7参照)。なお、本実施形態では、基準軸は略上下方向の移動軌跡とされているが、これに限らず、対象物obj1が載置された後述する載置面34Aの鉛直方向でエンドエフェクタ28と対象物obj1とを結ぶ仮想線など、対象物obj1の載置状況やエンドエフェクタ28の位置や形状に応じて設定してもよい。
【0037】
算出部56は、エンドエフェクタ28が保持可能な領域に対応する対象物エリア62と、エンドエフェクタ28に対応する保持体エリア64とをそれぞれ算出する。具体的には、
図4に示されるように、対象物エリア62は、略上下方向(移動軌跡、Z方向)視にてエンドエフェクタ28の指部30Aと指部30Bとで挟まれた領域(エンドエフェクタ28が保持可能な領域)と載置台34の載置面34Aとが重なるエリアとされている(なお、
図4では対象物エリア62をわかり易く図示するため対象物obj1及び障害物obj2、obj3の図示を省略している。また、
図4~
図7、
図9において、説明の都合上エンドエフェクタ28の形状を概略的に図示している)。また、保持体エリア64は、略上下方向(基準軸)視にて載置台34の載置面34Aとエンドエフェクタ28の指部30A、30Bとが重なるエリアとされている。なお、本実施形態では、対象物エリア62は略上下方向視にてエンドエフェクタ28の指部30Aと指部30Bとで挟まれた領域と、載置面34Aとが重なるエリアとされているが、エンドエフェクタ28の移動軌跡(基準軸)によってはこれに限らない。一例として、
図10に示されるように、壁面68に取り付けられた複数の棚板66のうち一つの棚板66上に載置された対象物obj1をエンドエフェクタ28にて保持する場合は、対象物obj1の近傍にてエンドエフェクタ28の移動軌跡は一般的に略水平方向となる。この場合の対象物エリア62は、略水平方向(移動軌跡、X方向)視にて指部30Aと指部30Bとで挟まれた領域と、壁面68とが重なるエリアとなる。同様に、保持体エリア64も、略水平方向(移動軌跡、X方向)視にて壁面68と指部30A、30Bとが重なるエリアとなる。つまり、対象物エリア62及び保持体エリア64は、エンドエフェクタ28の移動軌跡(基準軸)上に存在すると共に、移動軌跡(基準軸)に応じて場所が変化する。
【0038】
算出部56は、予め撮像装置14とエンドエフェクタ28の指部30A、30Bとの位置関係を取得し、取得部52が取得した距離を基に第一距離70と第二距離72とを取得する。すなわち、
図5に示されるように、算出部56は、取得部52からの距離を基に対象物エリア62内における移動軌跡(基準軸)上でのエンドエフェクタ28と対象物エリア62内の物体(本実施形態では対象物obj1)との最短距離を第一距離70として算出する。同様に、算出部56は、取得部52からの距離を基に保持体エリア64内におけるエンドエフェクタ28と、エンドエフェクタ28に対向する物体との最短距離を第二距離72として算出する。本実施形態では、保持体エリア64内におけるエンドエフェクタ28と移動軌跡上対向する物体は障害物obj2、obj3が該当し、当該障害物obj2、obj3とエンドエフェクタ28の基準点Pとの移動軌跡上での最短距離(この場合は基準点Pと障害物obj2との距離)が第二距離72に相当する。なお、基準点Pとは、エンドエフェクタ28の任意の部位とされており、本実施形態では一例として、エンドエフェクタ28が対象物obj1を把持した際に対象物obj1が存在可能な部位であるスペースSP内における対象物obj1(載置面34A)から最も離れた部位に設定されている。また、第一距離70及び第二距離72を算出する際においては、対象物エリア62及び保持体エリア64内に存在する物体の認識をすることなく単純に各エリア内での最短距離を算出してもよいし、対象物エリア62及び保持体エリア64内に存在する物体の認識を実行した上で各エリア内での最短距離を算出してもよい。
【0039】
算出部56は、指部30A、30Bの可動範囲内にて指部30A、30Bを所定の位置へ変更させた上で第二距離72を算出することを繰り返すことで、第二距離72を複数算出する。具体的には、
図6に示されるように、エンドエフェクタ28の指部30A、30Bを所定の範囲内にて所定のステップ(動き幅)で作動させて指部30A、30Bの開き幅を変化させながら指部30A、30Bのそれぞれの位置に対応した第二距離72を複数算出する。この所定の範囲とは、一例として、指部30A、30Bの最大開き幅から最小開き幅までの範囲とされている。また、所定のステップは、一例として1mmなど任意の数値に設定されている。そして、算出部56は、複数の第二距離72毎に第一距離70との差分を算出し、当該差分が最大となりかつ対象物obj1を保持可能となる指部30A、30Bの位置(開き幅)を判定する。なお、差分が最大となりかつ対象物obj1を保持可能となる指部30A、30Bの位置が請求項1、3、4記載の「保持位置」に相当する。
【0040】
把持制御部57は、算出部56が算出した差分が最大となる指部30A、30Bの位置へ指部30A、30Bを移動軌跡(Z方向)に沿って移動させると共に、当該位置にてエンドエフェクタ28を移動軌跡に沿って対象物obj1へ向けて移動させ、
図7に示されるように、対象物obj1を保持(把持)し持ち上げて移動させるように作動させる。換言すると、把持制御部57は、例えば、対象物obj1の検出結果に基づいて、ピッキング対象とする対象物obj1を選択し、選択したピッキング対象を第一距離70と第二距離72との差分が最大となる位置にてピッキングできるようにロボットアーム12を制御する。
【0041】
図3に示されるように、通信部80は、通信I/F42(
図2参照)により実現される。通信部80は、通信ケーブルやネットワークを介して、撮像装置14とロボットアーム12との間で情報の送受信を行う。通信部80は、撮像装置14から撮影画像を受信する。また、通信部80は、ロボットアーム12に対して制御情報を送信し、所定のタスクを実行させる。
【0042】
記憶部50は、メモリ38及びストレージ40により実現される。記憶部50には、生成モデル60、保持制御プログラム46、二次元画像記憶部47及び距離情報記憶部49が格納されている。
【0043】
生成モデル60は、対象物obj1を被写体として含む画像の入力に対して、当該対象物obj1における保持位置を示す保持位置情報を出力するように公知技術により予め機械学習された学習済みの学習モデルである。生成モデル60の学習処理及び再学習処理は、例えば、サーバ装置により行われるが、これに限られない。生成モデル60の学習処理及び再学習処理は、サーバ装置以外の他の装置で行われ、サーバ装置に提供されてもよい。生成モデル60は、例えば、DNN(Deep Neural Network)、RNN(Recurrent Neural Network)、CNN(Convolutional Neural Network)、LSTM(Long Short-Term Memory)等のニューラルネットワークであるが、これに限られない。生成モデル60は、決定木、SVM(Support Vector Machine)等の学習モデルであってもよい。また、生成モデル60の学習方法は、例えば、勾配降下法、確率的勾配降下法、又は誤差逆伝播法であるが、これに限られない。
【0044】
二次元画像記憶部47は、撮像装置14が撮影した実体である撮影画像が格納される。本実施形態に係る画像は静止画像(フレーム画像)であってもよいし、動画像であってもよい。画像が静止画像として格納される場合、PNG(Portable Network Graphics)、GIF(Graphics Interchange Format)、又はJPEG(Joint Photographic Experts Group)等のファイル形式が採用され得る。また、画像が動画像として格納される場合、MPEG(Moving Picture Experts Group)、AVI(Audio Video Interleave)、又はFLV(Flash Video)等のファイル形式が採用され得る。ただし、これらのファイル形式は一例であって、画像は如何なる形式で保存されてもよい。
【0045】
距離情報記憶部49は、撮像装置14により取得された各種距離及び算出部56が算出した各種距離に関する情報が格納される。
【0046】
<処理フロー>
次に、本実施形態に係る制御システムの作用について説明する。
図8は、本実施形態に係る制御システムの処理の流れを示すフローチャートである。プロセッサ36がメモリ38又はストレージ40から本実施形態に係る保持制御プログラム46を読み出し、メモリ38に展開して実行することにより、本実施形態に係る保持制御プログラム46に基づく処理が行われる。
【0047】
プロセッサ36は、対象物obj1を被写体とする画像を取得する(ステップ100)。そして、プロセッサ36は、取得した画像を基に対象物obj1及び障害物obj2、obj3の認識を行う(ステップ102)。この認識については、公知の物体認識技術が利用可能であり、一例として、CNNを用いた3次元物体認識の手法であるMMSS(Multi-model Sharable and Specific Feature Learning for RGB-D Object Recognition)が用いられる。この場合、3Dデータ(RGB画像及び深度画像)と物体の種類(ラベル)との相関関係を機械学習させた学習済モデルに、3Dデータを入力することにより、作業空間に存在する物体の座標と各物体の種類(空間情報)が推定される。推定された空間情報は、各物体の種類(ラベル)を付されたポイントクラウドとして出力され得る。
図1の例では、載置台34上に存在する物体として、対象物obj1、障害物obj2、obj3が認識される。なお、障害物については、種類の特定が行われなくてもよい。
【0048】
プロセッサ36は、ロボットアーム12の移動の目標位置を決定する(ステップ104)。目標位置の決定は、例えば以下のようにして行われる。プロセッサ36は、ステップS102で認識された物体の種類に基づいて、載置台34上に存在する物体の中から対象物obj1を特定する。この場合、対象物obj1の種類がユーザにより予め設定されていてもよい。次いで、プロセッサ36は、対象物obj1とロボットアーム12のエンドエフェクタ28との位置関係が所定の条件を満たすロボットアーム12の状態(位置)を、移動の目標位置として決定する。所定の条件は一例として、対象物obj1の近傍かつエンドエフェクタ28から対象物obj1までの距離が所定の閾値以下である、といった条件である。エンドエフェクタ28から対象物obj1までの距離とは、例えば、エンドエフェクタ28の所定の部分から対象物obj1の重心までの距離、又はエンドエフェクタ28の所定の部分から対象物obj1の表面までの距離である。すなわち、ロボットアーム12の目標位置とは、例えば、エンドエフェクタ28の所定の部分から対象物obj1の表面までの距離が所定の閾値以下となるロボットアーム12の状態をいう。
【0049】
プロセッサ36は、ロボットアーム12の現在位置及び目標位置におけるにおける状態情報、空間情報(対象物obj1及び障害物obj2、obj3の座標情報、ロボットアーム12の目標位置における状態情報)、及び生成モデル60を用いて、軌道情報を生成する(ステップ106)。本実施形態では、プロセッサ36は、ロボットアーム12の現在位置及び目標位置におけるにおける状態情報及び空間情報から障害物obj2、obj3等と干渉しない軌道情報を算出する。また、本実施形態では、プロセッサ36は、図示しないセンサの検知結果を、現在のロボットアーム12の状態情報として取得してもよいし、当該検知結果から状態情報を算出してもよいし、取得した画像データを画像解析することにより、状態情報を特定してもよい。プロセッサ36は、取得した軌道情報を記憶部50(
図3参照)に記憶する。
【0050】
プロセッサ36は、生成される軌道情報に従ってロボットアーム12を制御し、ロボットアーム12を移動させる(ステップ108)。すなわち、プロセッサ36は、ロボットアーム12が軌道情報の示す軌道に沿って移動するようにロボットアーム12を制御する。このとき、図示しないセンサの検知結果がロボットアーム12の制御に用いられてもよい。
【0051】
プロセッサ36は、ロボットアーム12の現在位置と目標位置とを比較することにより、ロボットアーム12が目標位置まで移動したかを判定する(ステップ110)。現在位置と目標位置が一致する、又は現在位置と目標位置との差が閾値未満である場合、プロセッサ36はロボットアーム12が目標位置に移動したと判定する。一方、現在位置と目標位置との差が閾値以上である場合、プロセッサ36はロボットアーム12が目標位置まで移動していないと判定する。
【0052】
ロボットアーム12が目標位置まで移動した場合(ステップS110:YES)、プロセッサ36は、後述するステップS112の処理に進む。一方、目標位置まで移動していない場合(ステップS110:NO)、プロセッサ36は、ステップS108へ処理を移行する。
【0053】
プロセッサ36は、ロボットアーム12が目標位置まで移動した状態で対象物obj1を被写体とする画像を取得する(ステップ112)。そして、プロセッサ36は、目標位置から対象物obj1を保持するまでの移動軌跡(基準軸)を算出する(ステップ114)。
【0054】
プロセッサ36は、エンドエフェクタ28の指部30Aと指部30Bとで挟まれた領域(エンドエフェクタ28が保持可能な領域)に対応する対象物エリア62(
図4参照)を算出する(ステップ116)。また、プロセッサ36は、エンドエフェクタ28の指部30A、30Bに対応する保持体エリア(
図4参照)を算出する(ステップ118)。
【0055】
プロセッサ36は、対象物エリア62内における物体(対象物obj1)とエンドエフェクタ28との間の移動軌跡上での最短距離である第一距離70を算出する(ステップ120)と共に、保持体エリア64内におけるエンドエフェクタ28と、エンドエフェクタ28に対向する物体との最短距離である第二距離72を算出する(ステップ122)。プロセッサ36は、ステップ122にて第二距離72を算出する際は所定の範囲にて指部30A、30Bの開き幅が変化するように指部30A、30Bを移動させて複数の第二距離72を算出する。
【0056】
プロセッサ36は、複数の第二距離72の算出が完了したか否かを判定する(ステップ124)複数の第二距離72の算出が完了していない場合(ステップ124:NO)、プロセッサ36は、ステップ122へ処理を移行する。一方、複数の第二距離72の算出が完了した場合(ステップ124:YES)、プロセッサ36は、複数の第二距離72毎に第一距離70との差分を算出し(ステップ128)、当該差分が最大となりかつ対象物obj1を保持できる指部30A、30Bの位置を判定する(ステップ130)。
【0057】
プロセッサ36は、差分が最大となりかつ対象物obj1を保持できる指部30A、30Bの位置へ指部30A、30Bを移動させる(ステップ132)と共に、当該位置にてエンドエフェクタ28を移動軌跡に沿って対象物obj1へ向けて移動させ、対象物obj1を保持し持ち上げて移動させるように作動させるための処理動作を生成し(ステップ134)、当該処理動作に基づいてロボットアーム12の作動を実行する(ステップ136)。
【0058】
プロセッサ36は、生成した処理動作に基づくロボットアーム12の作動が完了したか否かを判定する(ステップ138)。ロボットアーム12の作動が完了していない場合(ステップ138:NO)、プロセッサ36は、ステップ136へ処理を移行する。一方、ロボットアーム12の作動が完了した場合(ステップ138:YES)、プロセッサ36は、保持制御プログラム46に基づく処理を終了する。
【0059】
<本実施形態の作用・効果>
次に、本実施形態の作用並びに効果を説明する。
【0060】
本実施形態によれば、制御装置10が複数の第二距離72毎の第一距離70との差分を算出し、当該差分が最大となりかつ対象物obj1を保持できる保持位置にて対象物obj1をエンドエフェクタ28が保持するよう制御されることから、エンドエフェクタ28は対象物obj1の周囲に存在する障害物obj2、obj3と衝突回避しながら対象物obj1をより深い位置にて保持することができる。これにより、ロボットアーム12が対象物obj1をより適切に保持させることができる。
【0061】
また、制御装置10が第一距離70及び第二距離72を算出する際、エンドエフェクタ28が対象物obj1を把持した際に対象物obj1が存在するスペースSP内における対象物obj1(載置面34A)から最も離れた部位を基準点Pとして距離を算出する。したがって、エンドエフェクタ28はより一層深く対象物obj1を保持することができる。これにより、ロボットアーム12が対象物obj1をより一層適切に保持させることができる。
【0062】
さらに、本実施形態に係る制御システム18によれば、取得部52がエンドエフェクタ28の位置及び形状について取得する。また、算出部56が対象物エリア62、保持体エリア64をそれぞれ算出すると共に、エンドエフェクタ28の移動軌跡(基準軸)を算出する。さらに算出部56は、第一距離70と複数の第二距離72を取得し複数の第二距離72毎に第一距離70との差分量を算出して当該差分が最大となりかつ対象物obj1を保持できる位置を算出する。把持制御部57は、算出部56が算出した第一距離70と第二距離72との差分が最大となる保持位置にて対象物obj1をエンドエフェクタ28に保持させる。したがって、エンドエフェクタ28は対象物obj1の周囲に存在する障害物obj2、obj3と衝突回避しながら対象物obj1をより深い位置にて保持することができる。これにより、ロボットアーム12が対象物obj1をより適切に保持させることができる。
【0063】
さらにまた、本実施形態に係る保持制御プログラム46によれば、対象物obj1を保持するエンドエフェクタ28の位置及び形状の少なくとも一方を算出する処理と、エンドエフェクタ28の指部30Aと指部30Bとで挟まれた領域(エンドエフェクタ28が保持可能な領域)に対応する対象物エリア62と、エンドエフェクタ28に対応する保持体エリア64とをそれぞれ算出する処理と、エンドエフェクタ28と対象物obj1とを結ぶ基準軸(エンドエフェクタ28の移動軌跡)を算出する処理と、対象物エリア62内でのエンドエフェクタ28の移動軌跡上におけるエンドエフェクタ28と物体(対象物obj1)との第一距離70を取得する処理と、保持体エリア64内でのエンドエフェクタ28の移動軌跡上におけるエンドエフェクタ28とエンドエフェクタ28に対向する物体(障害物obj2、obj3)との第二距離72を取得する処理と、エンドエフェクタ28を移動させて第二距離72を複数取得する処理と、複数の第二距離72毎に第一距離70との差分量を算出すると共に、当該差分量が最大となりかつ対象物obj1を保持できる保持体エリア64に対応するエンドエフェクタ28の位置を算出し、当該位置にて対象物obj1をエンドエフェクタ28により保持させる処理と、をコンピュータに実行させる。したがって、エンドエフェクタ28は対象物obj1の周囲に存在する障害物obj2、obj3と衝突回避しながら対象物obj1をより深い位置にて保持することができる。これにより、ロボットアーム12が対象物obj1をより適切に保持させることができる。
【0064】
また、制御装置10は、エンドエフェクタ28を目標位置、すなわち対象物obj1の近傍まで移動させた後に再度対象物obj1を含む画像を撮像すると共に、第一距離70及び第二距離72を算出することから、保持する際の精度をより一層高めることができる。
【0065】
さらに、第二距離72は、指部30Aと指部30Bとの可動範囲内にて指部30Aと指部30Bとを所定の位置へ変更させた上で取得することを繰り返すことで複数取得することから、指部30Aと指部30Bとが対象物obj1を実際に把持可能な範囲内にて対象物obj1をより深い位置にて保持することができる。これにより、ロボットアーム12が対象物obj1を現実的かつより適切に保持させることができる。
【0066】
なお、本実施形態では、一対の指部30A、30Bにより対象物obj1を把持するエンドエフェクタ28を制御する構成とされているが、これに限らず、一つ又は三以上の複数の接触子を有するエンドエフェクタにより対象物obj1を保持する構成としてもよい。
【0067】
また、本実施形態では、対象物obj1を指部30A、30Bが外側から挟み込むことで保持する構成とされているが、これに限らず、
図9に示されるような環状の対象物obj4を保持可能としてもよい。この場合においては、算出部56が対象物エリア62と、保持体エリア64とをそれぞれ算出するのみならず、保持体エリア64に対して指部30A、30Bの保持時における可動方向外側(Y方向)の外側エリア65を算出する。そして、外側エリア65内における移動軌跡(基準軸)上でのエンドエフェクタ28と外側エリア65内の物体(対象物obj4)との最短距離を第一距離70として算出する。その後、算出部56が算出した差分が最大となりかつ対象物obj4を保持可能となる指部30A、30Bの位置にて指部30A、30Bが対象物obj4の内側に挿入されその後(Y方向)外側へ開くことで対象物obj4を保持する構成としてもよい。
【0068】
さらに、算出部56は、指部30A、30Bの開き幅を変化させながら複数の第二距離72を算出する構成とされているが、これに限らず、エンドエフェクタ28自体の向きや位置を変更させて複数の第二距離72を算出する構成としてもよい。
【0069】
さらにまた、本実施形態では保持体エリア64内におけるエンドエフェクタ28と移動軌跡(基準軸)上対向する物体は障害物obj2、obj3が該当するが、障害物obj2、obj3が存在しない場合は、エンドエフェクタ28と移動軌跡上対向する物体は載置台34(載置面34A)や壁等が該当する。
【0070】
また、制御装置10は、エンドエフェクタ28を目標位置、すなわち対象物obj1の近傍まで移動させた後に再度対象物obj1を含む画像を撮像すると共に、第一距離70及び第二距離72を算出する構成とされているが、これに限らず、一度画像取得をした際に移動軌跡、対象物エリア62、保持体エリア64、第一距離70及び第二距離72を算出しかつエンドエフェクタ28を移動させる構成としてもよい。換言すると、
図8に示されるステップ100からステップ110までを省いた構成としてもよい。
【0071】
さらに、保持制御プログラム46に基づく処理を行う際にプロセッサ36は、ステップ102において取得した画像を基に対象物obj1及び障害物obj2、obj3の認識を行う構成とされているが、これに限らず、障害物obj2、obj3の認識は行わずに保持体エリア64内のエンドエフェクタ28に対向する物体の高さを認識する構成としてもよい。
【0072】
<付記>
本実施形態は、以下の開示を含む。
【0073】
(付記1)
情報処理装置が実行する制御方法であって、
前記情報処理装置が、
対象物に接触する接触子を有しかつ当該接触子を用いて前記対象物を保持する保持体の位置及び形状の少なくとも一方の情報を取得するステップと、
前記保持体が保持可能な領域に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出するステップと、
前記保持体と前記対象物とを結ぶ基準軸を算出するステップと、
前記対象物エリア内での前記基準軸上における前記保持体と前記対象物との距離を第一距離として取得するステップと、
前記保持体エリア内での前記基準軸上における前記保持体と当該保持体に対向する物体との距離を第二距離として取得するステップと、
前記第二距離を複数取得するステップと、
複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となりかつ前記対象物を保持できる保持位置を算出し、当該保持位置にて前記対象物を前記保持体により保持させるステップと、
を含む制御方法。
【0074】
(付記2)
前記第二距離は、前記接触子の可動範囲内にて当該接触子を所定の位置へ変更させた上で取得することを繰り返すことで複数取得する、
付記1に記載の制御方法。
【0075】
(付記3)
対象物に接触する接触子を有しかつ当該接触子を用いて前記対象物を保持する保持体の位置及び形状の少なくとも一方の情報を取得する取得部と、
前記保持体が保持可能な領域に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出すると共に、前記保持体と前記対象物とを結ぶ基準軸を算出し、前記対象物エリア内での前記基準軸上における前記保持体と前記対象物との距離を第一距離として取得し、前記保持体エリア内での前記基準軸上における前記保持体と当該保持体に対向する物体との距離を第二距離として取得しかつ前記第二距離を複数取得し、複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となりかつ前記対象物を保持できる保持位置を算出する算出部と、
前記保持位置にて前記対象物を前記保持体により保持させる把持制御部と、
を有する制御システム。
【0076】
(付記4)
対象物を保持する保持体の位置及び形状の少なくとも一方を算出する処理と、
前記保持体が保持可能な領域に対応する対象物エリアと、前記保持体に対応する保持体エリアとをそれぞれ算出する処理と、
前記保持体と前記対象物とを結ぶ基準軸を算出する処理と、
前記対象物エリア内での前記基準軸における前記保持体と前記対象物との第一距離を取得する処理と、
前記保持体エリア内での前記基準軸上における前記保持体と当該保持体に対向する対象物との第二距離を取得する処理と、
前記第二距離を複数取得する処理と、
複数の前記第二距離毎に前記第一距離との差分量を算出すると共に、当該差分量が最大となりかつ前記対象物を保持できる保持位置を算出し、当該保持位置にて前記対象物を前記保持体により保持させる処理と、
をコンピュータに実行させる保持制御プログラム。
【0077】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0078】
10 制御装置(情報処理装置)
18 制御システム
30A 指部(接触子)
30B 指部(接触子)
28 エンドエフェクタ(保持体)
46 保持制御プログラム
52 取得部
56 算出部
57 把持制御部
62 対象物エリア
64 保持体エリア
70 第一距離
72 第二距離
obj1 対象物