(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-17
(45)【発行日】2025-03-26
(54)【発明の名称】保持位置決定装置、及び保持位置決定方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20250318BHJP
B25J 13/08 20060101ALI20250318BHJP
【FI】
B25J13/00 Z
B25J13/08 A
(21)【出願番号】P 2023524256
(86)(22)【出願日】2022-05-27
(86)【国際出願番号】 JP2022021812
(87)【国際公開番号】W WO2022250152
(87)【国際公開日】2022-12-01
【審査請求日】2023-11-24
(31)【優先権主張番号】P 2021090521
(32)【優先日】2021-05-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006633
【氏名又は名称】京セラ株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100132045
【氏名又は名称】坪内 伸
(74)【代理人】
【識別番号】100195534
【氏名又は名称】内海 一成
(72)【発明者】
【氏名】土井 龍太
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2021-041513(JP,A)
【文献】特開2020-015141(JP,A)
【文献】特開2020-179441(JP,A)
【文献】特開2021-024052(JP,A)
【文献】特開2021-037594(JP,A)
【文献】国際公開第2017/119088(WO,A1)
【文献】米国特許出願公開第2020/0262064(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/16-13/08
(57)【特許請求の範囲】
【請求項1】
保持対象物を保持する
2つ以上の指を有するエンドエフェクタが、前記保持対象物と接触する位置を保持位置として決定する制御部を備え、
前記制御部は、
前記指が開閉動作する範囲を示すストロークモデルを含むエンドエフェクタモデルを取得し、
前記保持対象物を撮影した保持対象画像に基づいて、前記エンドエフェクタが保持すべき前記保持対象物の位置を規定するマップを含むルールマップを取得し、
前記エンドエフェクタモデルと前記ルールマップとに基づいて前記保持位置を決定する、
保持位置決定装置。
【請求項2】
前記制御部は、前記保持対象物の形状データと、前記保持対象画像に対応づけられるデプスデータと、の少なくとも1つに基づく前記ルールマップを取得する、請求項1に記載の保持位置決定装置。
【請求項3】
前記ルールマップは、前記保持対象物を保持する前記保持対象物の高さ方向の位置に基づいて生成されるマップを含む、請求項1に記載の保持位置決定装置。
【請求項4】
前記制御部は、
前記エンドエフェクタモデルと前記ルールマップとに基づいて、前記保持位置の適正さを表す適正値を複数の前記保持位置について算出し、
前記適正値に基づいて前記保持位置を決定する、請求項1から3までのいずれか一項に記載の保持位置決定装置。
【請求項5】
前記エンドエフェクタモデル及び前記ルールマップは、各位置に割り当てた前記保持対象物を保持する位置としての適正さを示す値で表され、
前記制御部は、前記エンドエフェクタモデルを前記ルールマップに重ねた場合に各位置に割り当てた値を演算することによって、前記適正値を算出する、請求項4に記載の保持位置決定装置。
【請求項6】
前記制御部は、前記ルールマップに含まれる複数の前記マップに基づく前記適正値と、各々の前記マップについて定めたマップ係数とに基づいて、前記ルールマップに基づく前記適正値を算出する、請求項4に記載の保持位置決定装置。
【請求項7】
前記制御部は、
複数の前記保持位置に対するアノテーションの情報を取得し、
前記アノテーションの情報に基づいて前記適正値を補正する、請求項4に記載の保持位置決定装置。
【請求項8】
前記ルールマップは、前記エンドエフェクタが前記保持対象物を保持する際に、前記エンドエフェクタが移動できる範囲を規定する前記マップである周辺環境マップを含み、
前記制御部は、前記周辺環境マップに適合する前記エンドエフェクタの複数の位置から、前記保持位置を決定する、請求項1から3までのいずれか一項に記載の保持位置決定装置。
【請求項9】
前記周辺環境マップにおいて、前記エンドエフェクタが存在できる第1領域と前記エンドエフェクタが存在できない第2領域が規定され、
前記第2領域は、少なくとも前記保持対象物及び前記保持対象物の周辺の領域に規定され、前記周辺の領域においては、前記保持対象物から離れるにつれて前記第1領域における第2領域の割合が低下するように前記第2領域が割り当てられている、請求項8に記載の保持位置決定装置。
【請求項10】
前記ルールマップは、前記保持対象物を保持する位置としての適正さを表す前記マップである物体マップを含み、
前記制御部は、前記物体マップに適合する前記エンドエフェクタの複数の位置から、前記保持位置を決定する、請求項1から3までのいずれか一項に記載の保持位置決定装置。
【請求項11】
前記物体マップは、前記保持対象物の有する特性に基づき規定される、請求項10に記載の保持位置決定装置。
【請求項12】
前記物体マップは、前記保持対象物の形状、材質、テクスチャ、重量、摩擦係数のいずれかに基づき規定される、請求項11記載の保持位置決定装置。
【請求項13】
前記ルールマップは、前記エンドエフェクタの前記保持対象物との接触部分の、前記保持対象物と接触する位置としての適正さを表す前記マップである接触マップを含み、
前記制御部は、前記接触マップに対する前記エンドエフェクタの複数の位置から、前記保持位置を決定する、請求項1から3までのいずれか一項に記載の保持位置決定装置。
【請求項14】
前記接触マップは、前記エンドエフェクタの前記保持対象物との接触部分の形状と、前記保持対象物の形状とに基づき規定される、請求項13に記載の保持位置決定装置。
【請求項15】
前記エンドエフェクタは、前記保持対象物を少なくとも2つの指で挟んで把持するグリッパーであり、
前記エンドエフェクタモデルは、前記指の動作範囲を規定し、
前記制御部は、前記グリッパーが前記保持対象物を把持する際に前記指が前記保持対象物に接触する位置の組み合わせを前記保持位置として決定する、請求項1から3までのいずれか一項に記載の保持位置決定装置。
【請求項16】
前記エンドエフェクタは、前記保持対象物を吸着によって保持する吸着部を有し、
前記エンドエフェクタモデルは、前記吸着部が前記保持対象物を吸着する際に他の物体と干渉する範囲を規定し、
前記制御部は、前記エンドエフェクタが前記保持対象物を吸着する際に前記吸着部が前記保持対象物に接触する位置を保持位置として決定する、請求項1から3までのいずれか一項に記載の保持位置決定装置。
【請求項17】
保持対象物を保持する
2つ以上の指を有するエンドエフェクタが前記保持対象物と接触する位置を保持位置として決定する保持位置決定装置が、
前記指が開閉動作する範囲を示すストロークモデルを含むエンドエフェクタモデルを取得することと、
前記保持位置決定装置が、前記保持対象物を撮影した保持対象画像に基づいて、前記エンドエフェクタが保持すべき前記保持対象物の位置を規定するマップを含むルールマップを取得することと、
前記保持位置決定装置が、前記エンドエフェクタモデルと前記ルールマップとに基づいて前記保持位置を決定することと
を含む保持位置決定方法。
【発明の詳細な説明】
【関連出願へのクロスリファレンス】
【0001】
本出願は、日本国特許出願2021-90521号(2021年5月28日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
【技術分野】
【0002】
本開示は、保持位置決定装置及び保持位置決定方法に関する。
【背景技術】
【0003】
従来、コンピュータ上の画像から物体を把持する位置及び姿勢を適切に決定するための学習を行う学習装置が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【0005】
本開示の一実施形態に係る保持位置決定装置は、保持対象物を保持するエンドエフェクタが前記保持対象物と接触する位置を保持位置として決定する制御部を備える。前記制御部は、前記エンドエフェクタの保持部が存在しうる領域を特定するエンドエフェクタモデルを取得する。前記制御部は、前記保持対象物を撮影した保持対象画像に基づいて、前記エンドエフェクタが保持すべき前記保持対象物の位置を規定するマップを含むルールマップを取得する。前記制御部は、前記エンドエフェクタモデルと前記ルールマップとに基づいて前記保持位置を決定する。
【0006】
本開示の一実施形態に係る保持位置決定方法は、保持対象物を保持するエンドエフェクタが前記保持対象物と接触する位置を保持位置として決定する保持位置決定装置によって実行される。前記保持位置決定方法は、前記保持位置決定装置が、前記エンドエフェクタの保持部が存在しうる領域を特定するエンドエフェクタモデルを取得することを含む。前記保持位置決定方法は、前記保持位置決定装置が、前記保持対象物を撮影した保持対象画像に基づいて、前記エンドエフェクタが保持すべき前記保持対象物の位置を規定するマップを含むルールマップを取得することを含む。前記保持位置決定方法は、前記保持位置決定装置が、前記エンドエフェクタモデルと前記ルールマップとに基づいて前記保持位置を決定することを含む。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係るロボット制御システムの構成例を示す模式図である。
【
図2】保持対象物をエンドエフェクタで保持する例を示す側面図である。
【
図3】一実施形態に係るロボット制御システムの構成例を示すブロック図である。
【
図4】保持対象物を保持する平面における保持対象物の外形を表すマスク画像の一例を示す図である。
【
図5A】エンドエフェクタモデルのうちフィンガーの開口幅を表すモデルの一例を示す図である。
【
図5B】エンドエフェクタモデルのうちフィンガーのストロークを表すモデルの一例を示す図である。
【
図5C】エンドエフェクタモデルのうちフィンガーの開口幅とストロークとを合わせた全体モデルの一例を示す図である。
【
図7】周辺環境マップのアプローチ範囲を生成する手法を表す図である。
【
図8A】保持対象物の中心を表す物体マップの一例を示す図である。
【
図8B】ユーザが指定した保持位置の優先度を表す物体マップの一例を示す図である。
【
図10】周辺環境マップに対してエンドエフェクタモデルを投影する位置の例を示す図である。
【
図11】周辺環境マップに対してエンドエフェクタモデルを投影できる位置と投影できない位置とを示す図である。
【
図12A】物体マップにエンドエフェクタモデルを投影する位置の例を示す図である。
【
図12B】接触マップにエンドエフェクタモデルを投影する位置の例を示す図である。
【
図13】保持位置決定方法の手順例を示すフローチャートである。
【
図14】
図13の保持位置決定方法で決定した保持位置を修正して学習させる手順例を示すフローチャートである。
【発明を実施するための形態】
【0008】
物体の保持位置を学習させる場合において、物体の保持位置が人間の意図に沿った位置になるように大量の教師データが必要となる。大量の教師データを準備するための作業負荷又はコストが増大する。本開示の一実施形態に係る保持位置決定装置及び保持位置決定方法によれば、物体の保持位置が簡易に人間の意図に沿った位置になり得る。
【0009】
(ロボット制御システム100の構成例)
図1、
図2及び
図3に示されるように、本開示の一実施形態に係るロボット制御システム100は、ロボット2と、カメラ4と、ロボット制御装置110と、保持位置決定装置10とを備える。ロボット2は、保持対象物80をエンドエフェクタ2Bによって保持して作業を実行する。ロボット制御装置110は、ロボット2を制御する。保持位置決定装置10は、ロボット2が保持対象物80を保持するときに接触する位置を保持位置として決定し、ロボット制御装置110に出力する。
【0010】
本実施形態において、ロボット2は、保持対象物80を作業開始台6で保持する。つまり、ロボット制御装置110は、保持対象物80を作業開始台6で保持するようにロボット2を制御する。ロボット2は、保持対象物80を作業開始台6から作業目標台7へ移動させてよい。保持対象物80は、作業対象とも称される。ロボット2は、動作範囲5の内側で動作する。
【0011】
<ロボット2>
ロボット2は、アーム2Aと、エンドエフェクタ2Bとを備える。アーム2Aは、例えば、6軸又は7軸の垂直多関節ロボットとして構成されてよい。アーム2Aは、3軸又は4軸の水平多関節ロボット又はスカラロボットとして構成されてもよい。アーム2Aは、2軸又は3軸の直交ロボットとして構成されてもよい。アーム2Aは、パラレルリンクロボット等として構成されてもよい。アーム2Aを構成する軸の数は、例示したものに限られない。言い換えれば、ロボット2は、複数の関節で接続されるアーム2Aを有し、関節の駆動によって動作する。
【0012】
エンドエフェクタ2Bは、例えば、保持対象物80を保持できるように構成されるグリッパーを含んでよい。グリッパーは、少なくとも1本の指を有してよい。グリッパーの指は、1つ以上の関節を有してよい。グリッパーの指は、保持対象物80を吸着によって保持する吸着部を有してもよい。エンドエフェクタ2Bは、吸着部を有する1本の指として構成されてもよい。エンドエフェクタ2Bは、保持対象物80を挟み込んで保持する2つ以上の指として構成されてよい。エンドエフェクタ2Bは、保持対象物80を掬うことができるように構成される掬いハンドを含んでもよい。エンドエフェクタ2Bは、これらの例に限られず、他の種々の動作ができるように構成されてよい。
図1に例示される構成において、エンドエフェクタ2Bは、グリッパーを含むとする。エンドエフェクタ2Bが保持対象物80を保持する部分は、保持部とも称される。エンドエフェクタ2Bの保持部は、保持対象物80に接触する部分を含んでよい。
【0013】
ロボット2は、アーム2Aを動作させることによって、エンドエフェクタ2Bの位置を制御できる。エンドエフェクタ2Bは、保持対象物80に対して作用する方向の基準となる軸を有してもよい。エンドエフェクタ2Bが軸を有する場合、ロボット2は、アーム2Aを動作させることによって、エンドエフェクタ2Bの軸の方向を制御できる。ロボット2は、エンドエフェクタ2Bが保持対象物80に作用する動作の開始及び終了を制御する。ロボット2は、エンドエフェクタ2Bの位置、又は、エンドエフェクタ2Bの軸の方向を制御しつつ、エンドエフェクタ2Bの動作を制御することによって、保持対象物80を動かしたり加工したりすることができる。
図1に例示される構成において、ロボット2は、作業開始台6でエンドエフェクタ2Bに保持対象物80を保持させ、エンドエフェクタ2Bを作業目標台7へ移動させる。ロボット2は、作業目標台7でエンドエフェクタ2Bに保持対象物80を解放させる。このようにすることで、ロボット2は、保持対象物80を作業開始台6から作業目標台7へ移動させることができる。
【0014】
<カメラ4>
図1に示される構成例において、ロボット制御システム100は、ロボット2のエンドエフェクタ2Bに取り付けられたカメラ4を備えるとする。カメラ4は、エンドエフェクタ2Bから保持対象物80に向かって保持対象物80を撮影する。つまり、カメラ4は、エンドエフェクタ2Bが保持対象物80を保持する方向から保持対象物80を撮影する。カメラ4は、他の方向から保持対象物80を撮影するように構成されてもよい。他の方向から保持対象物80を撮影した画像は、エンドエフェクタ2Bが保持対象物80を保持する方向から撮影した場合の画像に変換されてよい。保持対象物80を撮影した画像は、保持対象画像とも称される。また、カメラ4は、デプスセンサを備え、保持対象物80のデプスデータを取得可能に構成される。カメラ4が撮影する画像は、モノクロの輝度情報を含んでもよいし、RGB(Red, Green and Blue)等で表される各色の輝度情報を含んでもよい。カメラ4の数は、1つに限られず、2つ以上であってもよい。カメラ4は、保持対象物80から所定範囲内に位置する他の物体も障害物として撮影し、障害物のデプスデータも取得してよい。
【0015】
<保持位置決定装置10>
図3に示されるように、保持位置決定装置10は、制御部12と、インタフェース14とを備える。インタフェース14は、外部装置から保持対象物80等に関する情報又はデータを取得したり外部装置に情報又はデータを出力したりする。また、インタフェース14は、カメラ4から保持対象物80を撮影した画像を取得する。インタフェース14は、ユーザからの入力を受け付けてもよい。インタフェース14は、ユーザに情報又はデータを認識させるように出力してもよい。制御部12は、インタフェース14で取得した情報又はデータに基づいてロボット2に保持対象物80を保持させる位置を決定し、インタフェース14に出力する。ロボット2に保持対象物80を保持させる位置は、単に保持位置とも称される。
【0016】
制御部12は、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含んで構成されてよい。プロセッサは、制御部12の種々の機能を実現するプログラムを実行してよい。プロセッサは、単一の集積回路として実現されてよい。集積回路は、IC(Integrated Circuit)とも称される。プロセッサは、複数の通信可能に接続された集積回路及びディスクリート回路として実現されてよい。プロセッサは、他の種々の既知の技術に基づいて実現されてよい。
【0017】
制御部12は、記憶部を備えてよい。記憶部は、磁気ディスク等の電磁記憶媒体を含んでよいし、半導体メモリ又は磁気メモリ等のメモリを含んでもよい。記憶部は、各種情報を格納する。記憶部は、制御部12で実行されるプログラム等を格納する。記憶部は、非一時的な読み取り可能媒体として構成されてもよい。記憶部は、制御部12のワークメモリとして機能してよい。記憶部の少なくとも一部は、制御部12とは別体として構成されてもよい。
【0018】
インタフェース14は、有線又は無線で通信可能に構成される通信デバイスを含んで構成されてよい。通信デバイスは、種々の通信規格に基づく通信方式で通信可能に構成されてよい。通信デバイスは、既知の通信技術により構成することができる。
【0019】
インタフェース14は、ユーザから情報又はデータ等の入力を受け付ける入力デバイスを含んで構成されてもよい。入力デバイスは、例えば、タッチパネル若しくはタッチセンサ、又はマウス等のポインティングデバイスを含んで構成されてよい。入力デバイスは、物理キーを含んで構成されてもよい。入力デバイスは、マイク等の音声入力デバイスを含んで構成されてもよい。
【0020】
インタフェース14は、ユーザに対して情報又はデータ等を出力する出力デバイスを含んで構成される。出力デバイスは、例えば、画像又は文字若しくは図形等の視覚情報を出力する表示デバイスを含んでよい。表示デバイスは、例えば、LCD(Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイ若しくは無機ELディスプレイ、又は、PDP(Plasma Display Panel)等を含んで構成されてよい。表示デバイスは、これらのディスプレイに限られず、他の種々の方式のディスプレイを含んで構成されてよい。表示デバイスは、LED(Light Emission Diode)又はLD(Laser Diode)等の発光デバイスを含んで構成されてよい。表示デバイスは、他の種々のデバイスを含んで構成されてよい。出力デバイスは、例えば、音声等の聴覚情報を出力するスピーカ等の音声出力デバイスを含んでよい。出力デバイスは、これらの例に限られず、他の種々のデバイスを含んでよい。
【0021】
<ロボット制御装置110>
ロボット制御装置110は、保持位置決定装置10から保持位置を特定する情報を取得し、保持位置決定装置10で決定した保持位置でロボット2が保持対象物80を保持するようにロボット2を制御する。
【0022】
ロボット制御装置110は、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含んで構成されてよい。ロボット制御装置110の各構成部は、少なくとも1つのプロセッサを含んで構成されてもよい。ロボット制御装置110の各構成部のうち複数の構成部が1つのプロセッサで実現されてもよい。ロボット制御装置110の全体が1つのプロセッサで実現されてもよい。プロセッサは、ロボット制御装置110の種々の機能を実現するプログラムを実行しうる。プロセッサは、保持位置決定装置10で用いられるプロセッサと同一又は類似に構成されてよい。
【0023】
ロボット制御装置110は、記憶部を備えてよい。記憶部は、保持位置決定装置10で用いられる記憶部と同一又は類似に構成されてよい。
【0024】
ロボット制御装置110は、保持位置決定装置10を含んでもよい。ロボット制御装置110と保持位置決定装置10とは、別体として構成されてもよい。
【0025】
(ロボット制御システム100の動作例)
ロボット制御システム100は、ロボット制御装置110によってロボット2を制御してロボット2に作業を実行させる。本実施形態において、ロボット2に実行させる作業は、保持対象物80を保持する動作を含む。ロボット制御システム100において、保持位置決定装置10は、ロボット2による保持対象物80の保持位置を決定する。ロボット制御装置110は、決定した保持位置でロボット2が保持対象物80を保持するようにロボット2を制御する。
【0026】
制御部12は、エンドエフェクタ2Bがグリッパーである場合、グリッパーが保持対象物80を把持する際に指が保持対象物80に接触する位置の組み合わせを保持位置として決定する。制御部12は、エンドエフェクタ2Bが吸着部を有する場合、エンドエフェクタ2Bが保持対象物80を吸着する際に吸着部が保持対象物80に接触する位置を保持位置として決定する。
【0027】
保持位置決定装置10の制御部12は、カメラ4から、保持対象物80を撮影した画像と保持対象物80のデプスデータとを取得する。制御部12は、保持対象物80を撮影した画像とデプスデータとに基づいて保持対象物80の外形及び位置を認識する。制御部12は、
図4に例示されるように、保持対象物80をエンドエフェクタ2Bに取り付けられているカメラ4から見たときの、保持対象物80の認識結果を表すマスク画像20を生成する。マスク画像20は、カメラ4から見て保持対象物80が存在する領域を表す窓22と、それ以外の領域を表すマスク24とを含む。窓22は、白塗りの領域として表されている。マスク24は、右上がり斜線のハッチングが付された領域として表されている。なお、マスク画像20においてマスク24の部分は、図面記載の便宜上、ハッチングが付された領域として表されているが、現実の実施態様において黒塗りの領域として表されてよい。
【0028】
制御部12は、エンドエフェクタ2Bに関する情報を取得する。エンドエフェクタ2Bに関する情報は、例えばエンドエフェクタ2Bがグリッパーである場合、把持する指の間隔の最大値、指の太さ、及び指の幅等を特定する情報を含む。制御部12は、エンドエフェクタ2Bに関する情報に基づいてエンドエフェクタモデル30を生成してもよい。制御部12は、エンドエフェクタ2Bの保持部が存在しうる領域を特定するエンドエフェクタモデル30を取得してもよい。
【0029】
エンドエフェクタモデル30は、
図5Aに示されるように、グリッパーの指が所定の間隔を空けて位置している範囲を表す指位置32と、指位置32以外の範囲を表す動作外範囲38とを特定する指モデルを含む。つまり、指モデルは、グリッパーの指の開口幅を表す。指位置32は、グリッパーの指が最大の間隔を空けて位置している範囲を表してもよい。この場合、指モデルは、グリッパーの指の最大開口幅を表す。
図5Aに示される指モデルは、グリッパーの指の最大開口幅を表しているとする。指位置32は、白塗りの領域として表されている。動作外範囲38は、右上がり斜線のハッチングが付された領域として表されている。なお、動作外範囲38は、図面記載の便宜上、ハッチングが付された領域として表されているが、現実の実施態様において黒塗りの領域として表されてよい。
【0030】
エンドエフェクタモデル30は、
図5Bに示されるように、グリッパーの指が動作する範囲を表すストローク範囲34を特定するストロークモデルを含む。ストローク範囲34は、白塗りの領域として表されている。
【0031】
エンドエフェクタモデル30は、
図5Cに示されるように、
図5Aの指モデルと
図5Bのストロークモデルとを合わせた全体モデルを含む。全体モデルは、指の動作範囲36を特定している。指の動作範囲36は、指位置32を含む。なお、
図5Cにおいて、グリッパーの指の動作範囲36のうち指部分が破線によって区別して示されているが、現実の実施態様においては区別されなくてもよい。また、本実施形態では、エンドエフェクタモデル30は、グリッパーの指が最大の間隔(最大の開口幅)を開けて位置している範囲を表すとしているが、これに限られない。エンドエフェクタモデル30は、グリッパーの指が任意の間隔(所定の間隔)を開けて位置している範囲を表すものであってよい。例えば、エンドエフェクタモデル30は、エンドエフェクタ2Bが把持しようとする物体の大きさに応じたグリッパーの指の間隔を表すものとされてもよい。
【0032】
制御部12は、エンドエフェクタモデル30として全体モデルだけ生成してもよい。この場合、指位置32を特定する情報を全体モデルに関連づけることによって指位置32が特定されてもよい。指位置32を特定する情報は、指の特徴点を表す数値を含んでよい。
【0033】
エンドエフェクタ2Bが吸着部を有する場合、エンドエフェクタモデル30は、吸着部が保持対象物80を吸着する際に他の物体と干渉する範囲を規定するモデルとして構成される。
【0034】
制御部12は、保持対象物80のデプスデータに基づいて、保持対象物80を保持する位置の高さを設定する。具体的に、制御部12は、
図2に例示されるように、作業開始台6の上に配置されている保持対象物80を保持する位置の高さとして、作業開始台6からの高さを設定する。
図2の場合、保持対象物80をエンドエフェクタ2Bの指で挟んで把持する位置が、保持点82として表されている。作業開始台6からの保持点82の位置の高さはHで表されている。この場合、制御部12は、保持対象物80を保持する位置の高さとしてHを設定する。制御部12は、保持対象物80のデプスデータに基づいて、保持対象物80のうち作業開始台6から最も高い点までの距離より小さい値に、保持対象物80を保持する位置の高さを設定する。制御部12は、保持対象物80の高さの半分程度の値に、保持対象物80を保持する位置の高さを設定してもよい。
【0035】
制御部12は、保持対象物80を保持する位置の高さと、保持対象物80のデプスデータとに基づいてマスク画像20を生成してもよい。具体的に、制御部12は、保持対象物80を保持する位置の高さの平面による保持対象物80の断面形状を窓22とするマスク画像20を生成してもよい。
【0036】
制御部12は、保持対象物80の保持位置を決定するためのルールを特定するルールマップを取得する。ルールマップは、エンドエフェクタ2Bが保持に使用すべき保持対象物80の位置を規定するマップを含む。ルールマップは、保持対象物80を保持する位置の高さに基づいて生成されるマップを含んでもよい。ルールマップは、保持対象画像に基づいて生成されてよい。ルールマップは、エンドエフェクタ2Bが保持対象物80を保持する方向ではない方向から保持対象物80を撮影した保持対象画像を、エンドエフェクタ2Bが保持対象物80を保持する方向から撮影した場合の画像に変換した画像に基づいて生成されてよい。ルールマップは、例えば、周辺環境マップ40(
図6参照)、物体マップ50(
図8A若しくは
図8B参照)、又は接触マップ60(
図9参照)等に分類されてよい。制御部12は、ルールマップを生成してもよい。制御部12は、保持対象物80の形状データ及び保持対象画像に対応づけられるデプスデータの少なくとも1つに基づくルールマップを取得してよい。ルールマップは、保持対象物80を保持する位置の高さ毎に取得されてよい。ルールマップは2次元状に表現した画像の表示形態によってルールを特定してよい。
【0037】
周辺環境マップ40は、
図6に示されるように、対象物領域42と、障害物領域44と、アプローチ領域46と、非アプローチ領域48とを特定する。対象物領域42は、保持対象物80を保持する位置の高さにおいて、保持対象物80が存在する範囲を表す。障害物領域44は、保持対象物80を保持する位置の高さにおいて、保持対象物80以外の物体であってエンドエフェクタ2Bの動作を制限する障害物が存在する範囲を表す。アプローチ領域46は、エンドエフェクタ2Bとしてのグリッパー自体の動作とグリッパーの指の動作とを合わせた動作範囲を表す。対象物領域42、障害物領域44及び非アプローチ領域48は、アプローチ領域46以外の範囲を表す。アプローチ領域46は、白塗りの領域として表されている。対象物領域42、障害物領域44及び非アプローチ領域48は、右上がり斜線のハッチングが付された領域として表されている。対象物領域42、障害物領域44及び非アプローチ領域48は、図面記載の便宜上、ハッチングが付された領域として表されているが、現実の実施態様において黒塗りの領域として表されてよい。周辺環境マップ40は、保持対象物80を保持する位置の高さにおいて、エンドエフェクタ2Bが移動できる範囲を規定するマップとして構成される。
【0038】
制御部12は、アプローチ領域46と非アプローチ領域48とを生成し、アプローチ領域46に対象物領域42と障害物領域44とを配置することによって周辺環境マップ40を生成できる。アプローチ領域46は、エンドエフェクタ2Bが存在できる第1領域とも称される。非アプローチ領域48は、エンドエフェクタ2Bが存在できない第2領域とも称される。第2領域は、少なくとも保持対象物80が存在する領域及びその周辺の領域に規定される。保持対象物80の周辺の領域おいて、保持対象物80から離れるにつれて第1領域における第2領域の割合が低下するように第2領域が割り当てられている。
【0039】
制御部12は、マスク画像20に基づいてアプローチ領域46を生成できる。例えば
図7を参照して制御部12がアプローチ領域46を生成する方法が説明される。制御部12は、マスク画像20に対してエンドエフェクタモデル30の畳み込みを実行してよい。制御部12は、マスク画像20に含まれる窓22に対して、エンドエフェクタモデル30で特定される指の動作範囲36の少なくとも一部が重なるように、指の動作範囲36を移動させてよい。この場合、指の動作範囲36を表す矩形は、例えば窓22の左上の隅の点に矩形の少なくとも一部が重なるように種々の角度に回転して配置され得る。制御部12は、指の動作範囲36を移動させたときに指の動作範囲36が通過する領域をアプローチ領域46として生成する。
図7において、指の動作範囲36が移動するときに窓22から最も遠い点が描く軌跡は、アプローチ領域46の境界46aとして表される。境界46aは、破線で表されている。
【0040】
制御部12は、生成したアプローチ領域46に、保持対象物80のデプスデータに基づいて対象物領域42を生成する。制御部12は、保持対象物80を保持する位置の高さよりも高い位置において保持対象物80が存在する範囲を対象物領域42として生成する。また、制御部12は、生成したアプローチ領域46に、障害物のデプスデータに基づいて障害物領域44を配置する。制御部12は、保持対象物80を保持する位置の高さよりも高い位置において障害物が存在する範囲を障害物領域44として生成する。
【0041】
制御部12は、生成した周辺環境マップ40に対して境界を曖昧にするぼかし処理を実行してもよい。上述してきた手順で生成した周辺環境マップ40に含まれる各領域は、マップ中の各座標における数値として区別され得る。制御部12は、例えば、アプローチ領域46に含まれる座標における数値として、その座標で特定される点がエンドエフェクタ2Bの動作範囲に含まれることを表す1を設定してよい。一方、制御部12は、対象物領域42、障害物領域44、及び非アプローチ領域48に含まれる座標における数値として、その座標で特定される点がエンドエフェクタ2Bの動作範囲に含まれないことを表す0を設定してよい。制御部12は、1が設定されている領域と0が設定されている領域との境界から所定範囲内の点を特定する座標における数値を、0より大きくかつ1より小さい、例えば0.5等の値を設定する。制御部12は、このように領域の境界を曖昧にする処理をぼかし処理として実行する。
【0042】
また、上述してきた手順で生成した周辺環境マップ40は、マップ中の各座標における色として区別され得る。制御部12は、例えば、アプローチ領域46に含まれる点を白で表し、それ以外の領域に含まれる点を黒で表してよい。制御部12は、白で表される領域と黒で表される領域との境界から所定範囲内の点の色を、グレースケールで表してよい。制御部12は、このように領域の境界を曖昧にする処理をぼかし処理として実行してもよい。各領域の色を黒、白及びグレーで表すことは、各領域に設定される数値を輝度値として表すことに相当する。
【0043】
制御部12がぼかし処理を実行することによって、エンドエフェクタ2Bの動作範囲の誤差、又は、保持対象物80若しくは障害物の外形の誤差によってエンドエフェクタ2Bが予期せず物体に衝突する可能性が低減され得る。つまり、制御部12は、ぼかし処理によって、種々のマージンを考慮して保持対象物80に対するエンドエフェクタ2Bの位置を決定できる。ぼかし処理は、生成した周辺環境マップ40に含まれる各領域の周辺部分に対して実行されてよい。ぼかし処理によって各領域が拡大される。
【0044】
物体マップ50は、仮に作業者が保持対象物80を保持する場合に保持対象物80のどの位置で保持対象物80を保持するか判断するために参照する情報を表す。物体マップ50は、例えば、保持対象物80の形状、材質又は密度分布等の情報を表す。
【0045】
例えば、保持対象物80の中心に近づくほどルールに対して適正な保持位置となる保持対象物80の存在が仮定される。このように仮定した保持対象物80に関する物体マップ50は、
図8Aに示されるように、保持対象物80を保持する位置の高さの平面によって切断した場合に得られる断面52において、保持対象物80の中心に近いほどルールに対して適正な保持位置であることに対応する白に近い色で表され、中心から離れるほどルールに対して適正でない保持位置であることに対応する黒に近い色で表されるグレースケールで表されてよい。また、物体マップ50は、
図8Bに示されるように、保持対象物80を保持する位置を決定するルールとしてユーザが任意に設定し
たルールを特定するグレースケールで表されてよい。
図8Bに示す、保持対象物80の中心に近づいていくことに従って、適正な把持位置となる物体マップ50を作成する場合、保持対象物80の断面52の水平方向に沿って中心に近いほど、適正な保持位置であることに対応する白に近い色で表され、中心から離れるほど、適正でない保持位置であることに対応する黒に近い色で表されている。また、
図8Bの物体マップ50は、断面52の高さ方向に沿って同じ色で表されている。
【0046】
図8A及び
図8Bにおいて、物体マップ50の断面52を囲む黒色の実線は、単に断面52の輪郭を表す線であり、ルールを示すものではない。黒色の実線が描かれている座標が適正でない保持位置であることを表すものではない。
【0047】
物体マップ50は、保持対象物80を保持する位置を仮定して、仮定した位置で保持することの適正さを評価する際に、白に近い色で表される領域の近くを保持することによって適正さの評価を表す適性値が大きくなるように構成されてよい。また、物体マップ50は、周辺環境マップ40のように、各座標の色に数値を対応づけることによって表されてもよい。制御部12は、例えば白で表される座標に1を設定し、黒で表される座標に0を設定してよい。
【0048】
制御部12は、上述の例に限られず、種々のルールを特定するように、各座標に色又は数値を設定した物体マップ50を生成してよい。制御部12は、例えば、保持対象物80の重心からの距離に応じて各座標に色又は数値を設定した物体マップ50を生成してよい。制御部12は、例えば、保持する位置として避けるべき位置又は保持する位置として禁止する位置を特定するように、各座標に色又は数値を設定した物体マップ50を生成してよい。
【0049】
制御部12は、1つのルールを特定する物体マップ50を混合することによって、複数のルールを特定する1つの物体マップ50を生成してもよい。制御部12は、複数の物体マップ50を混合する場合、各物体マップ50に重みづけ係数を設定して混合してよい。制御部12は、例えば保持対象物80の重心位置が重要である場合、重心位置を特定する物体マップ50の重みづけ係数を大きく設定してよい。
【0050】
物体マップ50は、保持対象物80自身の有する特性に基づき規定されてよい。物体マップ50は、保持対象物80の形状、材質、テクスチャ、重量、又は摩擦係数のいずれかに基づき規定されてよい。物体マップ50は、保持対象物80の保持位置についてユーザが任意に定めた規定に基づくものであってよい。例えば、保持対象物80の部分のうち、接触することで破損又は変形しやすい部分、グリス等が付着している部分、滑りやすく保持に適さない部分など、様々な理由で保持位置とすべきでない部分がルールとして物体マップ50に規定され得る。同様に、破損又は変形がしにくい部分、グリス等が付着していない部分、滑りにくい部分、その他、経験則に基づいて保持位置とすべき部分(保持しやすいとされる部分)がルールとして物体マップ50に規定され得る。物体マップ50を二次元状の画像として表すことで、保持対象物80の保持位置として、どのようなルールが規定されているのか把握することが容易となる。物体マップ50は、保持対象物80の種類ごとに生成されてよい。
【0051】
接触マップ60は、エンドエフェクタ2Bの指と保持対象物80の表面の状態との関係に基づいて定まるルールを表す。接触マップ60は、物体マップ50のように、仮に作業者が保持対象物80を保持する場合に保持対象物80のどの位置で保持対象物80を保持するか判断するために参照する情報を表す。接触マップ60は、エンドエフェクタ2Bの保持対象物80との接触部分の形状と、保持対象物80の形状とに基づき規定される。接触マップ60は、エンドエフェクタ2Bが保持対象物80と接触する位置としての適正さを表す。例えば、エンドエフェクタ2Bの保持対象物80との接触部分の形状若しくは材質と、保持対象物80の保持位置の形状若しくは材質との関係で保持位置とすべき部分、又は保持位置とすべきでない部分が接触マップ60に規定され得る。より具体的には、エンドエフェクタ2Bと保持対象物80との接触面積が小さくなる部分、エンドエフェクタ2Bと保持対象物80との摩擦係数が所定値より小さい部分、又は、その他、経験則に基づいて使用するエンドエフェクタ2Bにとって保持しにくいとされる部分が、保持位置とすべきでない部分を表すルールとして接触マップ60に規定され得る。同様に、エンドエフェクタ2Bと保持対象物80との接触面積が大きくなる部分、エンドエフェクタ2Bと保持対象物80との摩擦係数が所定値より大きい部分、又は、その他、経験則に基づいて使用するエンドエフェクタ2Bにとって保持しやすいとすべき部分が、保持位置とすべき部分を表すルールとして接触マップ60に規定され得る。
【0052】
接触マップ60は、例えば、保持対象物80をエンドエフェクタ2Bで保持するときの保持対象物80の表面とエンドエフェクタ2Bの指との接触面積、又は、保持対象物80の表面とエンドエフェクタ2Bの指との間に作用する摩擦力等を表す。仮に保持対象物80の表面が凹凸を有する場合、エンドエフェクタ2Bの指の位置が少しずれただけで接触面積が大きく異なり得る。
【0053】
接触マップ60は、
図9に示されるように、保持対象物80を保持する位置の高さの平面によって切断した場合に得られる断面の外周62において、各辺の中央に近いほど適正な保持位置であることに対応する白に近い色で表され、中心から離れて隅に近づくほど適正でない保持位置であることに対応する黒に近い色で表されるグレースケールで表されてよい。
図9に例示される接触マップ60は、各辺の中央に近い位置を保持する場合に保持対象物80の表面とエンドエフェクタ2Bの指との接触面積が大きくなり、隅に近い位置を保持する場合に接触面積が小さくなることを表している。
【0054】
図9において、接触マップ60の外周62を囲む黒色の実線は、単に外周62の輪郭を表す線である。黒色の実線が描かれている座標が適正でない保持位置であることを表すものではない。
【0055】
制御部12は、1つのルールを特定する接触マップ60を混合することによって、複数のルールを特定する1つの接触マップ60を生成してもよい。制御部12は、複数の接触マップ60を混合する場合、各接触マップ60に重みづけ係数を設定して混合してよい。制御部12は、例えば保持対象物80の表面とエンドエフェクタ2Bの指との接触面積が重要である場合、接触面積を特定する接触マップ60の重みづけ係数を大きく設定してよい。
【0056】
制御部12は、生成したルールマップに基づいて、保持対象物80を保持する位置を決定する。具体的に、制御部12は、ルールマップに対してエンドエフェクタモデル30を仮の保持位置として投影し、投影した位置における一致度を算出することによって仮の保持位置で実際に保持対象物80を保持することの適正さを評価する。
【0057】
制御部12は、マスク画像20の窓22の範囲内の任意の点を選択する。窓22の範囲内で選択した任意の点は、
図10に示されるように、周辺環境マップ40において、対象物領域42に含まれるアプローチ位置70に対応する。つまり、制御部12は、マスク画像20の窓22の範囲内の任意の点をアプローチ位置70として設定する。制御部12は、アプローチ位置70にエンドエフェクタモデル30の中心を合わせて投影する。投影したエンドエフェクタモデル30は、
図10において投影モデル72a及び72bとして表される。投影モデル72aは、エンドエフェクタモデル30を、対象物領域42の短辺方向に沿って回転させたモデルに対応する。投影モデル72bは、エンドエフェクタモデル30を、対象物領域42の短辺方向から時計回りに45度回転させたモデルに対応する。
【0058】
制御部12は、エンドエフェクタモデル30に含まれる指位置32が対象物領域42に重なる場合にエンドエフェクタモデル30を投影できないとする。
図11に示されるように、投影モデル72aは投影モデル72aに含まれる指の投影位置74aが対象物領域42に重ならない。したがって、制御部12は、投影モデル72aを周辺環境マップ40に投影できる。一方で、投影モデル72cは投影モデル72cに含まれる指の投影位置74cが対象物領域42に重なる。したがって、制御部12は、投影モデル72cを周辺環境マップ40に投影できない。指位置32が対象物領域42に重なる場合にエンドエフェクタモデル30を投影しないことによって、エンドエフェクタ2Bが保持対象物80に接近する間にエンドエフェクタ2Bが保持対象物80に衝突することが避けられる。また、制御部12は、エンドエフェクタモデル30の少なくとも一部が障害物領域44に重なる場合にエンドエフェクタモデル30を投影できないとする。このようにすることで、エンドエフェクタ2Bが保持対象物80を保持する場合に障害物に衝突することが避けられる。
【0059】
制御部12は、エンドエフェクタモデル30において指位置32が特定されていない場合、エンドエフェクタモデル30に関連づけられている指の特徴点に基づいて、エンドエフェクタモデル30を投影できるか判定する。
【0060】
周辺環境マップ40に投影できるエンドエフェクタモデル30の位置及び回転角度に対応するエンドエフェクタ2Bの位置は、周辺環境マップ40に適合する位置であるともいえる。制御部12は、周辺環境マップ40に適合する位置の中から保持位置を決定するともいえる。
【0061】
制御部12は、アプローチ位置70をマスク画像20の窓22の範囲内で走査するように移動させるとともに、各位置においてエンドエフェクタモデル30を回転させて周辺環境マップ40に投影する。制御部12は、エンドエフェクタモデル30を周辺環境マップ40に投影できる、アプローチ位置70及びエンドエフェクタモデル30の回転角度の組み合わせを抽出する。
【0062】
また、制御部12は、エンドエフェクタモデル30を投影可能なアプローチ位置70及びエンドエフェクタモデル30の回転角度の組み合わせのそれぞれにおいて、周辺環境マップ40における一致度を算出する。具体的に、制御部12は、
図10の周辺環境マップ40において投影モデル72aと重なる範囲のうち対象物領域42の範囲外の各座標に設定されている数値又は色の輝度の平均値を投影モデル72aの一致度として算出する。制御部12は、
図10の周辺環境マップ40において投影モデル72bと重なる範囲のうち対象物領域42の範囲外の各座標に設定されている数値又は色の輝度の平均値を投影モデル72bの一致度として算出する。
【0063】
制御部12は、抽出したアプローチ位置70及びエンドエフェクタモデル30の回転角度の組み合わせを、物体マップ50にも投影する。制御部12は、例えば
図12Aに示されるように、物体マップ50に投影モデル72a又は72bを投影する。制御部12は、物体マップ50においてマスク画像20の窓22と重なり、かつ、保持対象物80の断面52のうち投影モデル72aと重なる範囲の各座標に設定されている数値又は色の輝度値の平均値を、投影モデル72aの一致度として算出する。制御部12は、物体マップ50においてマスク画像20の窓22と重なり、かつ、保持対象物80の断面52のうち投影モデル72bと重なる範囲の各座標に設定されている数値又は色の輝度値の平均値を、投影モデル72bの一致度として算出する。
図12Aにおいて、物体マップ50の断面52を囲む黒色の実線は、単に断面52の輪郭を表す線である。黒色の実線が描かれている座標が適正でない保持位置であることを表すものではない。
【0064】
物体マップ50は、保持対象物80を保持する位置としての適正さを表す。物体マップ50に投影するエンドエフェクタモデル30の位置及び回転角度に対応するエンドエフェクタ2Bの位置は、物体マップ50に適合する位置であるともいえる。制御部12は、物体マップ50に適合する位置の中から保持位置を決定するともいえる。
【0065】
制御部12は、抽出したアプローチ位置70及びエンドエフェクタモデル30の回転角度の組み合わせを、接触マップ60にも投影する。制御部12は、例えば
図12Bに示されるように、接触マップ60に投影モデル72a又は72bを投影する。制御部12は、接触マップ60における保持対象物80の断面の外周62のうち投影モデル72aと重なる範囲の各座標に設定されている数値又は色の輝度値の平均値を投影モデル72aの一致度として算出する。制御部12は、接触マップ60における保持対象物80の断面の外周62のうち投影モデル72bと重なる範囲の各座標に設定されている数値又は色の輝度値の平均値を投影モデル72bの一致度として算出する。
図12Bにおいて、接触マップ60の外周62を囲む黒色の実線は、単に外周62の輪郭を表す線である。黒色の実線が描かれている座標が適正でない保持位置であることを表すものではない。
【0066】
接触マップ60は、エンドエフェクタ2Bの保持対象物80との接触部分の、保持対象物80と接触する位置としての適正さを表す。制御部12は、接触マップ60に投影する複数のエンドエフェクタモデル30の位置及び回転角度に対応するエンドエフェクタ2Bの複数の位置の中から保持位置を決定するともいえる。
【0067】
制御部12は、エンドエフェクタモデル30の2つの指位置32それぞれがストローク範囲34の方向に沿って外周62に対して入射する角度を算出してよい。言い換えれば、制御部12は、エンドエフェクタモデル30のストローク範囲34の方向に沿った線と外周62との2つの交点それぞれにおける交差の角度を算出してよい。本実施形態において、制御部12は、指位置32が外周62に対して垂直に入射する場合の入射角度を0度として算出する。制御部12は、算出した角度を接触マップ60における一致度の値に反映してよい。制御部12は、角度が0度に近いほど一致度の値を大きい値として算出してよい。制御部12は、例えば、接触マップ60の外周62のうち投影されたエンドエフェクタモデル30と重なる範囲の各座標に設定されている数値又は色の輝度値の平均値と、算出した角度のコサインの値(余弦値)との積を一致度として算出してもよい。
【0068】
制御部12は、外周62が凹凸を有する場合、エンドエフェクタ2Bの指の太さ又は幅若しくは長さに基づいて外周62を平坦化したモデルを生成し、平坦化したモデルに対して指位置32が入射する角度を算出してもよい。
【0069】
制御部12は、アプローチ位置70及びエンドエフェクタモデル30の回転角度の組み合わせ毎に、各ルールマップにおいて算出した一致度を合算し、総合一致度を算出する。制御部12は、各ルールマップにおいて算出した一致度に対して重みづけを行って合算してよい。制御部12は、各ルールマップにおいて算出した一致度に対して行う重みづけを、全ての組み合わせにおいて同一とする。各ルールマップにおいて算出した一致度に対して適用される重みづけの係数は、マップ係数とも称される。マップ係数は、各マップについて定められてよい。
【0070】
以上述べてきたように、制御部12は、エンドエフェクタモデル30とルールマップとに基づいて各保持位置について総合一致度を算出する。総合一致度は、各保持位置の適正さを表す適正値に対応する。また、ルールマップは、ルールマップの各位置(各座標)に割り当てた数値又は色の輝度値等によって、保持対象物80を保持する位置としての適正さを表す。制御部12は、エンドエフェクタモデル30をルールマップに重ねた場合に各位置に割り当てた値を演算することによって、適正値を算出できる。
【0071】
制御部12は、アプローチ位置70及びエンドエフェクタモデル30の回転角度の各組み合わせについて算出した総合一致度を比較し、総合一致度が高い組み合わせを選択する。制御部12は、選択した組み合わせのアプローチ位置70及びエンドエフェクタモデル30の回転角度に基づいて定まる、エンドエフェクタ2Bの指がストローク方向に沿って動いたときに保持対象物80に入射する位置を、保持対象物80を保持する位置として決定する。つまり、制御部12は、エンドエフェクタモデル30とルールマップとに基づいて保持位置を決定する。制御部12は、例えばエンドエフェクタモデル30とルールマップとを比較して保持位置を推定した後で、別のルールに基づいて推定した保持位置を調整又は補正することによって保持位置を決定してよい。また、制御部12は、適正値に基づいて保持位置を決定してよい。制御部12は、決定した保持位置を、インタフェース14を介してロボット制御装置110に出力する。
【0072】
(保持位置決定方法の手順例)
保持位置決定装置10の制御部12は、
図13に例示されるフローチャートの手順を含む保持位置決定方法を実行してもよい。保持位置決定方法は、保持位置決定装置10の制御部12を構成するプロセッサに実行させる保持位置決定プログラムとして実現されてもよい。保持位置決定プログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてよい。
【0073】
制御部12は、保持対象物80を撮影した画像と保持対象物80のデプスデータとを含むデータを取得する(ステップS1)。制御部12は、エンドエフェクタモデル30を生成する(ステップS2)。制御部12は、保持対象物80を保持する位置の高さを決定する(ステップS3)。制御部12は、マスク画像20を生成する(ステップS4)。
【0074】
制御部12は、周辺環境マップ40、物体マップ50又は接触マップ60等のルールマップを生成する(ステップS5)。制御部12は、各ルールマップにエンドエフェクタモデル30を投影する(ステップS6)。制御部12は、各ルールマップと各ルールマップに投影したエンドエフェクタモデル30との一致度を算出する(ステップS7)。制御部12は、総合一致度を算出するために、各ルールマップについて算出した一致度に重みづけを行う(ステップS8)。制御部12は、総合一致度が高くなるときのエンドエフェクタモデル30の投影位置を選出し、選出した位置においてエンドエフェクタ2Bの指が保持対象物80に入射する位置を保持位置として決定する(ステップS9)。制御部12は、ステップS9の手順の実行後、
図13のフローチャートの手順の実行を終了する。
【0075】
制御部12は、マスク画像20を生成するステップS4の手順を、ステップS2又はS3の前に実行してもよい。
【0076】
(小括)
以上述べてきたように、本実施形態に係る保持位置決定装置10及び保持位置決定方法によれば、保持対象物80をロボット2のエンドエフェクタ2Bで保持するときの保持位置がルールマップに基づいて決定される。ルールマップに基づいて保持位置を決定することによって、作業者の経験等をルールマップに反映させることができる。例えば、作業者が種々の保持対象物80を保持する場合に、保持対象物80それぞれについて、どの位置で保持するか考えて保持する。作業者は、例えば、保持対象物80の重心、保持対象物80の周囲に存在する障害物、又は、保持対象物80を持つ位置が広いこと等を考えて保持位置を決める。つまり、本実施形態に係る保持位置決定装置10及び保持位置決定方法によれば、作業者の考えをルールマップに反映し、各ルールマップにおける一致度を算出し、一致度に重みづけを行って算出した総合一致度に基づいて、把持位置が決定される。その結果、作業者が考える保持位置で、ロボット2に保持対象物80を保持させることができる。つまり、物体の保持位置が簡易に人間の意図に沿った位置に決定され得る。
【0077】
また、作業者が保持位置をルール化したルールマップを使用できる。その結果、学習が不要になる。また、新たなルールが発生した場合にルールマップを追加することによって、環境の変化に対応しやすくなる。例えば、保持対象物80の保持を含む作業は、作業者又は作業現場の環境等に応じた種々の構成要素を含み得る。したがって、各構成要素に基づいて保持対象物80の保持位置を決定して保持する必要がある。種々の構成要素を反映したルールマップを生成して一致度の算出対象に追加することによって、各作業者又は各現場における特殊なルール等にも対応が容易になる。
【0078】
(他の実施形態)
以下、他の実施形態が説明される。
【0079】
<他の手法に基づく推定結果の利用>
保持位置決定装置10は、他の手法に基づいて推定された保持対象物80の保持位置を取得してよい。保持位置決定装置10は、取得した保持位置に対して本実施形態に係る保持位置決定方法を実行することによって、取得した保持位置の中から保持位置を決定してよい。
【0080】
具体的に、保持位置決定装置10の制御部12は、インタフェース14を介して他の手法に基づいて推定された保持対象物80の保持位置を取得する。制御部12は、取得した保持位置に対応する、アプローチ位置70とエンドエフェクタモデル30の回転角度との組み合わせを算出する。制御部12は、取得した保持位置に対応する組み合わせでエンドエフェクタモデル30を各ルールマップに投影し、各ルールマップにおける一致度を算出する。制御部12は、各ルールマップにおける一致度に重みづけを行って合算し、総合一致度として算出する。制御部12は、総合一致度の値が大きい組み合わせに対応する保持位置を選択してロボット制御装置110に出力する。
【0081】
保持位置決定装置10は、取得した保持位置における総合一致度を算出して取得した保持位置の適正さを評価してもよい。制御部12は、算出した総合一致度に基づいて、取得した保持位置が妥当であるか評価する。制御部12は、例えば、算出した総合一致度が所定値以上となった場合に、取得した保持位置が妥当であると判定してよい。
【0082】
保持位置決定装置10は、他の手法に基づいて推定された、エンドエフェクタ2Bの中心位置及び回転角度を取得してもよい。保持位置決定装置10は、取得したエンドエフェクタ2Bの中心位置をアプローチ位置70とみなすことによってアプローチ位置70と回転角度との組み合わせを算出し、本実施形態に係る保持位置決定方法を実行できる。
【0083】
保持位置決定装置10は、他の手法に基づいて推定された保持対象物80の保持位置を取得することによって、一致度の算出対象とするアプローチ位置70と回転角度との組み合わせの数を低減できる。その結果、計算負荷が低減され得る。
【0084】
<学習による重みづけの調整>
保持位置決定装置10は、各ルールマップについて算出した一致度に対して重みづけを行って合算することによって、総合一致度を算出する。保持位置決定装置10は、決定した保持位置に対するアノテーションの情報に基づいて学習することによって、重みづけの係数を更新してよい。保持位置決定装置10は、重みづけの係数を更新することによって保持位置の決定精度を向上できる。
【0085】
具体的に、保持位置決定装置10の制御部12は、決定した保持位置をインタフェース14によってユーザに通知してよい。制御部12は、インタフェース14によって、決定した保持位置に対するアノテーションとして保持位置を修正する入力をユーザから受け付ける。制御部12は、ユーザによる修正の情報に基づいて、修正した保持位置をロボット制御装置110に出力してよい。制御部12は、ユーザによる修正の情報に基づいて学習することによって重みづけの係数を更新し、保持位置の決定をやり直してもよい。
【0086】
制御部12は、複数の保持位置の候補を決定してインタフェース14によってユーザに通知してよい。制御部12は、総合一致度が所定値以上となる保持位置を候補として決定してよい。制御部12は、インタフェース14によって、決定した保持位置に対するアノテーションとして保持位置の候補から選択する入力をユーザから受け付ける。制御部12は、ユーザが選択した保持位置をロボット制御装置110に出力してよい。制御部12は、ユーザが選択した情報に基づいて学習することによって重みづけの係数を更新してもよい。
【0087】
制御部12は、総合一致度が所定値以上となる保持位置を、保持対象物80を保持可能な候補位置として抽出し、ユーザに通知してよい。制御部12は、インタフェース14によって、候補位置に対するアノテーションとして、候補位置を修正する入力、又は、候補位置を選択する入力をユーザから受け付ける。制御部12は、候補位置に対する修正又は選択の入力に基づいて、各候補位置の適正さを評価する。制御部12は、ユーザの入力に基づいて保持位置としての適正さが高いと評価した候補位置について総合一致度の値が大きくなるように、重みづけの係数を更新してよい。制御部12は、選択された候補位置を保持位置としてロボット制御装置110に出力してもよい。制御部12は、修正された候補位置を保持位置としてロボット制御装置110に出力してもよい。
【0088】
保持位置決定装置10の制御部12は、
図14に示されるフローチャートの手順を実行してもよい。制御部12は、例えば
図13のフローチャートの手順を実行することによって、保持位置の候補を選出する(ステップS11)。制御部12は、保持位置の候補をインタフェース14に出力する(ステップS12)。制御部12は、ユーザによる修正の入力に基づいて保持位置を修正する(ステップS13)。制御部12は、修正内容を学習する(ステップS14)。制御部12は、学習結果に基づいて重みづけを更新する(ステップS15)。制御部12は、ステップS15の手順の実行後、
図14のフローチャートの手順の実行を終了する。
【0089】
以上述べてきたように、保持位置決定装置10は、ユーザによるアノテーションの内容に基づいて重みづけを更新できる。その結果、種々の作業環境に対応できるロバスト性が向上し得る。
【0090】
保持位置決定装置10は、ルールマップを生成するために複数のマップに重みづけを実行して混合する。例えば、保持位置決定装置10は、複数の物体マップ50を混合して1つの物体マップ50を生成する。複数のマップに重みづけを実行して混合する場合において、保持位置決定装置10は、各マップに対する重みづけ係数をアノテーションに基づく学習によって更新してもよい。
【0091】
保持位置決定装置10は、複数の保持位置に対するアノテーションの情報を取得し、アノテーションの情報に基づいて適正値を補正してもよい。
【0092】
<画像に基づくマップの生成>
保持位置決定装置10は、カメラ4で撮影した画像に基づいて、ルールマップを生成してもよい。保持位置決定装置10の制御部12は、例えば、画像に基づいて保持対象物80の重心を推定し、重心位置を特定する物体マップ50を生成してもよい。制御部12は、例えば、画像に基づいて保持対象物80の材質を推定し、保持対象物80の表面とエンドエフェクタ2Bの指との間に作用する摩擦力を特定する接触マップ60を生成してもよい。制御部12は、保持対象物80の色若しくは模様、又は、凹凸に関する情報に基づいて、保持対象物80の材質を推定してもよい。
【0093】
<保持位置の高さの設定>
保持位置決定装置10は、最初に保持対象物80を保持する位置の高さを設定し、設定した高さにおける保持位置を決定する。保持位置決定装置10は、保持対象物80を保持する位置の高さを変化させ、それぞれの高さにおいて保持位置決定方法を実行し、総合一致度の値が最も大きくなるときの保持の高さとエンドエフェクタ2Bのアプローチ位置70及び回転角度の組み合わせとを、保持位置として決定してもよい。このようにすることで、保持の安定性が向上し得る。
【0094】
以上、保持位置決定装置10の実施形態を説明してきたが、本開示の実施形態としては、装置を実施するための方法又はプログラムの他、プログラムが記録された記憶媒体(一例として、光ディスク、光磁気ディスク、CD-ROM、CD-R、CD-RW、磁気テープ、ハードディスク、又はメモリカード等)としての実施態様をとることも可能である。
【0095】
また、プログラムの実装形態としては、コンパイラによってコンパイルされるオブジェクトコード、インタプリタにより実行されるプログラムコード等のアプリケーションプログラムに限定されることはなく、オペレーティングシステムに組み込まれるプログラムモジュール等の形態であっても良い。さらに、プログラムは、制御基板上のCPUにおいてのみ全ての処理が実施されるように構成されてもされなくてもよい。プログラムは、必要に応じて基板に付加された拡張ボード又は拡張ユニットに実装された別の処理ユニットによってその一部又は全部が実施されるように構成されてもよい。
【0096】
本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は改変を行うことが可能であることに注意されたい。従って、これらの変形又は改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0097】
本開示に記載された構成要件の全て、及び/又は、開示された全ての方法、又は、処理の全てのステップについては、これらの特徴が相互に排他的である組合せを除き、任意の組合せで組み合わせることができる。また、本開示に記載された特徴の各々は、明示的に否定されない限り、同一の目的、同等の目的、または類似する目的のために働く代替の特徴に置換することができる。したがって、明示的に否定されない限り、開示された特徴の各々は、包括的な一連の同一、又は、均等となる特徴の一例にすぎない。
【0098】
さらに、本開示に係る実施形態は、上述した実施形態のいずれの具体的構成にも制限されるものではない。本開示に係る実施形態は、本開示に記載された全ての新規な特徴、又は、それらの組合せ、あるいは記載された全ての新規な方法、又は、処理のステップ、又は、それらの組合せに拡張することができる。
【0099】
本開示において「第1」及び「第2」等の記載は、当該構成を区別するための識別子である。本開示における「第1」及び「第2」等の記載で区別された構成は、当該構成における番号を交換することができる。例えば、第1領域は、第2領域と識別子である「第1」と「第2」とを交換することができる。識別子の交換は同時に行われる。識別子の交換後も当該構成は区別される。識別子は削除してよい。識別子を削除した構成は、符号で区別される。本開示における「第1」及び「第2」等の識別子の記載のみに基づいて、当該構成の順序の解釈、小さい番号の識別子が存在することの根拠に利用してはならない。
【符号の説明】
【0100】
10 保持位置決定装置(12:制御部、14:インタフェース)
20 マスク画像(22:窓、24:マスク)
30 エンドエフェクタモデル(32:指位置、34:ストローク範囲、36:指の動作範囲、38:動作外範囲)
40 周辺環境マップ(42:対象物領域、44:障害物領域、46:アプローチ領域、46a:境界、48:非アプローチ領域)
50 物体マップ(52:断面)
60 接触マップ(62:外周)
70 アプローチ位置
72a、72b、72c 投影モデル
74a、74c 指の投影位置
80 保持対象物(82:保持点)
100 ロボット制御システム(2:ロボット、2A:アーム、2B:エンドエフェクタ、4:カメラ、5:ロボットの動作範囲、6:作業開始台、7:作業目標台、110:ロボット制御装置)