IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2024-118901生成装置、生成方法、及び生成プログラム
<>
  • 特開-生成装置、生成方法、及び生成プログラム 図1
  • 特開-生成装置、生成方法、及び生成プログラム 図2
  • 特開-生成装置、生成方法、及び生成プログラム 図3
  • 特開-生成装置、生成方法、及び生成プログラム 図4
  • 特開-生成装置、生成方法、及び生成プログラム 図5
  • 特開-生成装置、生成方法、及び生成プログラム 図6
  • 特開-生成装置、生成方法、及び生成プログラム 図7
  • 特開-生成装置、生成方法、及び生成プログラム 図8
  • 特開-生成装置、生成方法、及び生成プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118901
(43)【公開日】2024-09-02
(54)【発明の名称】生成装置、生成方法、及び生成プログラム
(51)【国際特許分類】
   B25J 9/16 20060101AFI20240826BHJP
   B25J 13/08 20060101ALI20240826BHJP
【FI】
B25J9/16
B25J13/08 A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023025473
(22)【出願日】2023-02-21
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年9月19日 https://ieeexplore.ieee.org/abstract/document/9894673/にて公開 令和4年10月14日 https://www.youtube.com/watch?v=Xzz_zt5BgAEにて公開 令和4年10月21日 https://github.com/omron-sinicx/uncertainty-aware-manipulation-planningにて公開 令和4年10月24日 IROS2022(https://events.infovaya.com/presentation?id=84598)にて公開
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】フェリクス フォン ドリガルスキ
(72)【発明者】
【氏名】笠浦 一海
(72)【発明者】
【氏名】クリスティアン ベルトラン エルナンデス
(72)【発明者】
【氏名】▲濱▼屋 政志
(72)【発明者】
【氏名】田中 一敏
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS06
3C707BS10
3C707DS01
3C707ES03
3C707EW01
3C707KS03
3C707KS04
3C707KS30
3C707KT03
3C707KT06
3C707LT06
3C707LT12
3C707LT18
3C707LV08
3C707LV09
3C707LV14
(57)【要約】
【課題】多様な対象物の姿勢を精度良く位置決めすることができる生成装置、生成方法、及び生成プログラムを得る。
【解決手段】生成装置は、ロボットの把持部により対象物を把持する第1の動作、把持部により把持された対象物を支持面に置く第2の動作、及び把持部により対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、対象物の位置決めを行うための動作列を生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する生成部
を含む生成装置。
【請求項2】
前記動作列の候補に含まれる各動作を行ったと仮定した場合の各動作後の前記対象物の姿勢及び、その姿勢の不確実性を推定する推定部をさらに含み、
前記生成部は、各動作を順次行うたびに前記推定部により推定された姿勢の不確実性が減少する動作列を生成する
請求項1に記載の生成装置。
【請求項3】
前記推定部は、前記不確実性を表すスコアを算出し、
前記生成部は、異なる複数の動作列の候補の中から、最終的な前記スコアが最小となる動作列を選択することによって動作列を生成する
請求項2に記載の生成装置。
【請求項4】
前記第3の動作において、前記把持部が前記対象物に接触する2点以上の点を結ぶ線分又は面に対して、前記対象物の重心から引いた垂線が前記線分内又は前記面内に位置することを条件とする
請求項1から請求項3の何れか1項に記載の生成装置。
【請求項5】
前記生成部は、1つの動作列の中に同じ動作を含む場合、その同じ動作の間では動作条件を異ならせる
請求項1から請求項3の何れか1項に記載の生成装置。
【請求項6】
ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する
ことを含む処理をコンピュータが実行する生成方法。
【請求項7】
コンピュータを、
ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する生成部
として機能させるための生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、生成装置、生成方法、及び生成プログラムに関する。
【背景技術】
【0002】
従来、把持部を備えるロボットであって、把持部により対象物を把持し、対象物を組み立てる作業等を行うロボットに関する技術が提案されている。
【0003】
例えば、特許文献1には、作業対象物の複数の作業部位のうちの一部の作業部位に対して、センサにより得られた計測値に基づいて、エンドエフェクタを移動させることにより一部の作業部位に位置決めして作業させるロボット装置が開示されている。このロボット装置は、位置決めしたエンドエフェクタの位置姿勢を基準位置姿勢として設定する。また、このロボット装置は、複数の作業部位のうちの一部の作業部位以外の残部の作業部位に対して、基準位置姿勢から次の作業部位までのオフセット量を算出する。また、このロボット装置は、エンドエフェクタを基準位置姿勢からオフセット量だけずらした位置姿勢に移動させることにより残部の作業部位に位置決めして作業させる。
【0004】
また、特許文献2には、環境内で、物体を保持しているロボットの手を動かすステップと、所定の時点に、物体を保持しているロボットの手の中の姿勢を、先の相互作用情報に基づいて推定するステップとを含む方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2015-000455号公報
【特許文献2】WO2021/048598A1
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、ロボットによる組み立て作業において、ロボットが備える把持部により対象物の適切な箇所を把持し、精度良く作業を行うためには、対象物の姿勢を精度良く位置決めすることが求められる。
【0007】
しかしながら、特許文献1及び特許文献2に記載の技術では、対象物の形状が限定されてしまい、多様な対象物の姿勢を精度良く位置決めできない場合がある。
【0008】
本開示は、上記の点に鑑みてなされたものであり、多様な対象物の姿勢を精度良く位置決めすることができる生成装置、生成方法、及び生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本開示に係る生成装置は、ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する生成部を含む。
【0010】
また、本開示に係る生成方法は、ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成することを含む処理をコンピュータが実行する。
【0011】
また、本開示に係る生成プログラムは、コンピュータを、ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する生成部として機能させる。
【発明の効果】
【0012】
本開示によれば、多様な対象物の姿勢を精度良く位置決めすることができる。
【図面の簡単な説明】
【0013】
図1】ロボットシステムの概略構成を示すブロック図である。
図2】生成装置のハードウェア構成の一例を示すブロック図である。
図3】生成装置の機能的な構成の一例を示すブロック図である。
図4】把持部が対象物を押す動作の条件を説明するための図である。
図5】把持部が対象物を把持する動作の条件を異ならせることを説明するための図である。
図6】把持部が対象物を置く動作を説明するための図である。
図7】把持部が対象物を把持する動作を説明するための図である。
図8】把持部が対象物を押す動作を説明するための図である。
図9】動作列生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本開示の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0015】
まず、図1を参照して、本実施形態に係るロボットシステム1の構成を説明する。図1に示すように、ロボットシステム1は、生成装置10、制御装置50、及びロボット52を含む。生成装置10及び制御装置50の例としては、コンピュータが挙げられる。生成装置10及び制御装置50は、1台のコンピュータによって実現されてもよい。
【0016】
ロボット52は、ロボットアーム54及び把持部56を含む。ロボットアーム54は、リンクと、リンク間を接続すると共に、モータの駆動により回転又は直動伸縮するジョイントとを含んで構成される。ロボットアーム54は、制御装置50から出力された指令値にしたがってモータが駆動されて、ジョイントの回転角度又は伸縮状態が変更される。これにより、把持部56が3次元空間において指定された位置、及び指定された姿勢となるように制御される。
【0017】
把持部56は、ロボットアーム54の先端に設けられ、支持面P上に置かれた対象物Oを把持可能なツールである。把持部56は、2本の平板状の指を備え、2本の指によって対象物Oを把持可能である。また、把持部56は、支持面P上において対象物Oを水平方向に押すことも可能である。なお、本実施形態では、把持部56が2本の指を備える場合について説明するが、把持部56が3本以上の指を備えてもよい。
【0018】
制御装置50は、生成装置10から入力された動作列に基づく指令値を生成し、かつロボット52へ出力する。
【0019】
次に、図2を参照して、本実施形態に係る生成装置10のハードウェア構成を説明する。図2に示すように、生成装置10は、CPU(Central Processing Unit)12、メモリ14、記憶装置16、入出力I/F(Interface)18、及び入出力装置20を含む。各構成は、バス26を介して相互に通信可能に接続されている。
【0020】
記憶装置16には、生成プログラム30が格納されている。CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU12は、記憶装置16からプログラムを読み出し、メモリ14を作業領域としてプログラムを実行する。CPU12は、記憶装置16に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0021】
メモリ14は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置16は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0022】
入出力I/F18は、制御装置50と接続するためのインタフェースである。入出力装置20は、例えば、キーボード及びマウス等の、各種の入力を行うための入力装置、ディスプレイ等の、各種の情報を出力するための出力装置である。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
【0023】
本実施形態では、ロボット52が行う組み立て作業として、プレート等の対象物Oがトレイの支持面P上に置かれ、対象物Oを土台の上に、ねじ穴の位置が合うように固定する作業を例に説明する。なお、対象物Oの3次元データ、支持面Pの高さ、及び土台の位置は、既知であるものとする。
【0024】
このようなロボット52が行う作業において、対象物Oを目標位置に精度良く固定するためには、その作業を行う前に、対象物Oの姿勢を精度良く推定することが好ましい。本実施形態に係る生成装置10は、ロボット52が作業を行う前に、対象物Oの位置決めを行うための動作列を生成する機能を有する。
【0025】
次に、図3を参照して、生成装置10の機能的な構成について説明する。図3に示すように、生成装置10は、生成部40、推定部42、及び出力部44を含む。CPU12が生成プログラム30を実行することにより、生成部40、推定部42、及び出力部44として機能する。
【0026】
生成部40は、第1の動作、第2の動作、及び第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、対象物Oの位置決めを行うための動作列を生成する。また、生成部40は、動作列の候補に含まれる各動作を順次行うたびに姿勢の不確実性が減少する動作列を生成する。
【0027】
第1の動作は、ロボット52の把持部56により対象物Oを把持する動作である、第2の動作は、把持部56により把持された対象物Oを支持面Pに置く動作である。第3の動作は、把持部56により対象物Oを押す動作である。以下では、第1の動作(すなわち、Grasp Action)をGrasp、第2の動作(すなわち、Place Action)をPlace、第3の動作(すなわち、Push Action)をPushと称することもある。
【0028】
具体的には、まず、生成部40は、異なる複数の動作列の候補を生成する。本実施形態では、動作列の候補数を30とし、1つの動作列に含まれる動作の数を3とした場合を例について説明する。動作列の候補数及び1つの動作列に含まれる動作の数は、この例に限定されず、要求される精度及び処理時間の許容値等に応じて設定されてもよい。
【0029】
Nを行動可能な動作列の候補数、dを1つの動作列に含まれる動作の数とした場合、生成部40による探索空間の大きさはO(N^d)となり、十分に小さい値である。このため、生成部40は、幅優先探索によって姿勢の不確実性が減少する動作列の候補を生成することができる。生成部40は、各ステップにおいて、次の動作を選択する。選択された動作を行ったと仮定した場合の動作後の対象物Oの姿勢及び姿勢の不確実性は、後述する推定部42により推定される。なお、本実施形態では、対象物Oの初期姿勢の推定値及び姿勢の不確実性は、視覚センサからの出力及びその視覚センサの精度に基づいて概算されるものとする。
【0030】
動作列には、3つの動作のうちの何れかの動作と、その動作の動作条件との組が含まれる。動作条件とは、例えば、Graspであれば、把持部56が把持する対象物Oの位置等が相当し、Placeであれば、対象物Oを置く支持面P上の位置等が相当し、Pushであれば、把持部56が把持する対象物Oの位置等が相当する。
【0031】
本実施形態では、図4に示すように、Pushにおいて、把持部56が対象物Oに接触する2点以上の点を結ぶ線分又は面に対して、対象物Oの重心Gから引いた垂線が線分内又は面内に位置することを条件とする。これにより、把持部56が対象物Oを押すことによって対象物Oが転がり、その結果として対象物Oの姿勢の不確実性が高まることを抑制することができる。
【0032】
また、生成部40は、1つの動作列の中に同じ動作を含む場合、その同じ動作の間では動作条件を異ならせてもよい。一例として図5に示すように、対象物Oが側面視L字型のプレートであり、1つの動作列の中に2回のGraspを含む場合について説明する。図5の例では、灰色に塗りつぶされた矩形が把持部56の指を表している。この場合、生成部40は、1回目のGraspでは、把持部56は指を水平にした状態で対象物Oを把持し、2回目のGraspでは、把持部56は指を垂直にした状態で対象物Oを把持する。このように、把持部56が把持する対象物Oの位置を異ならせることによって、姿勢の不確実性を減少させることができる。
【0033】
生成部40は、生成した異なる複数の動作列の候補の中から、最終的な姿勢の不確実性を表すスコアが最小となる動作列を選択することによって動作列を生成する。
【0034】
推定部42は、動作列の候補に含まれる各動作を行ったと仮定した場合の各動作後の対象物Oの姿勢及び、その姿勢の不確実性を推定する。本実施形態では、推定部42は、姿勢の不確実性を表すスコアを算出する。以下、推定部42の処理の詳細について説明する。
【0035】
本実施形態では、対象物Oの姿勢の確信度をモデル化するために、以下の参考文献1に記載されている手法を用いる。以下の(1)式に示すように、不確実性を伴う姿勢T∈SO(3)を、確率変数ξ∈Rによる小さな摂動を伴う平均姿勢T∈SO(3)として表現する。このTは、(1)式の右辺に示すように、Tの上に「-」があることを示している。
[参考文献1]T. D. Barfoot and P. T. Furgale, “Associating uncertainty with three-dimensional poses for use in estimation problems,” IEEE Trans. on Robotics, vol.30, no.3, pp.679-693, 2014.
【0036】
【数1】
【0037】
変数ξは、ゼロ平均ガウス分布N(0,Σ)(Σは共分散行列)に従うと仮定する。従って、摂動変数の平均姿勢Tと共分散行列Σとを用いて姿勢の確信度が表現される。
【0038】
各動作が姿勢の確信度に与える影響は以下のように計算される。まず、(1)式により姿勢の粒子T、…、Tを生成する(Nは粒子数)。各動作後の姿勢T、…、Tは、後述する計算方法により推定される。最後に、サンプルT’、…、T’に適合する分布として新しい姿勢の確信度(T―’,Σ’)を推定する。T―’を計算するために、以下の(2)式を、ニュートン法を使用して解く。
【0039】
【数2】
【0040】
より正確には、(2)式の解の現在の近似をT―’ とし、ξ’s,i=ln(T’(T―’ -1とする。そして、

を次の近似とし、ここで、ηを以下の(3)式で表す。
【0041】
【数3】
【0042】
(3)式のJは写像のヤコビアン

であり、上記参考文献1の(33)式及び(34)式を用いて計算することができる。
【0043】
―’の計算後に、以下の(4)式に従って姿勢の不確実性を表すΣ’が計算される。
【0044】
【数4】
【0045】
次に、推定部42による、各動作を行ったと仮定した場合の各動作後の対象物Oの姿勢の推定処理の詳細を説明する。ここでは、対象物Oは多面体であり、多面体の重心は既知であると仮定する。また、ここでは、対象物Oと把持部56との間の摩擦、及び対象物Oと支持面Pとの間の摩擦は無視するものとする。
【0046】
対象物Oの重心を支持面P上に投影した点をCとする。Placeにおいて、対象物Oと支持面Pとの摩擦を無視するため、支持ポリゴン内の点Cの位置は変化しない。従って、Placeにおいて、対象物Oの回転は、配置されたまま計算すればよい。
【0047】
一例として図6に示すように、支持面Pに置かれる対象物Oの回転は、次の4段階に分けられる。
(1)対象物Oのどの頂点も支持面P上にない場合、対象物Oは垂直に落下し、回転しない。
(2)対象物Oの1つの頂点のみが支持面P上にある場合、その頂点と点Cとを結ぶ線と直交する支持面P上の線を中心に対象物Oは回転する。
(3)対象物Oの2つの頂点が支持面P上にあり、点Cから2つの頂点を結ぶ線に垂直な線が存在する場合、対象物Oは2つの頂点を結ぶ線を中心に回転する。
(4)対象物Oの3つ以上の頂点が支持面P上にあり、点Cが支持面P上の対象物Oの頂点の凸包の内側にある場合、対象物Oは安定に配置される。それ以外の場合、配置動作は不安定とみなされる。
【0048】
推定部42は、Placeを行ったと仮定した場合のPlace後の対象物Oの姿勢の推定値を以下の(5)式~(13)式に従って算出する。以下の表記を用いる。
ある点vのx、y、z座標をv、v、vとする。
2つの点vとuとを結ぶ直線を

とする。
直線lの周りを角度θで回転させた変換をTl,θとする。
d∈{x,y,z}とし、d座標が一定の直線lと2つの点v、uに対して、Tl,θ(v)とTl,θ(u)のd座標が同じになるような角度θをangd,l(v,u)とする。
対象物Oの頂点の初期座標の集合をv、v、…、vとする。
支持面Pのz座標をzとする。
【0049】
Placeによる変換は以下のように計算される。
1)
【0050】
【数5】

2)vi0を含み、

に直交する支持面P上の直線をlとする。
【0051】
【数6】
【0052】
【数7】
【0053】
【数8】
【0054】
【数9】
【0055】
3)

とする。
【0056】
【数10】
【0057】
【数11】
【0058】
【数12】
【0059】
最終的に、以下の(13)式によってPlace後の座標が計算される。
【0060】
【数13】
【0061】
Graspにおいて、把持部56の指は支持面Pに対して直交する2つの平行平面の一部であり、その法線方向に移動すると考える。ここで、x軸は支持面P及び指の両方に平行であり、y軸は指に直交し、z軸は支持面Pから離れる方向であると考える。対象物Oの初期姿勢が安定姿勢に近く、重心が把持部56の指からあまり離れていない場合、対象物Oのx軸に対する位置の変化は無視できるほど小さい。また、対象物Oのy軸の位置は、指によって固定され、z軸の位置は支持面Pによって固定される。従って、Graspにおいては、把持部56が把持中の対象物Oの回転のみを決めればよい。
【0062】
一例として図7に示すように、Graspにおける対象物Oの回転は、把持部56の指の閉まり具合によって次の5段階に分けられる。
(1)いずれの指も対象物Oに触れていない場合、対象物Oは回転しない。
(2)対象物Oの1つの頂点がいずれかの指に触れている場合、又は2つの頂点がそれぞれ1つの指に触れている場合、対象物Oはz軸を中心に回転する。
(3)対象物Oの2つの頂点が一方の指に触れ、他方の指に対象物Oの頂点が触れていない場合、対象物Oは押されるのみであり、回転しない。
(4)対象物Oの2つの頂点が一方の指に触れ、対象物Oの1つの頂点が他方の指に触れている場合、同じ指に触れている2つの頂点を結ぶ線の周りを対象物Oは回転する。
(5)対象物Oの3つ以上の頂点が一方の指に触れ、対象物Oの少なくとも1つの頂点が他方の指に触れている場合、あるいは、それぞれの指に対象物Oの2つの頂点が触れている場合、一方の指に触れている頂点の凸包と他方の指に触れている頂点の凸包との交点が存在すれば、対象物Oは安定して把持されていると考えられる。そうでない場合は、対象物Oは不安定に把持されていると考えられる。
なお、第3段階は、必ずしも通過するとは限らない。また、第2段階、第3段階、及び第4段階において、同じx座標とy座標を有する頂点は1つの頂点とみなされる。
【0063】
推定部42は、Graspを行ったと仮定した場合のGrasp後の対象物Oの姿勢の推定値を以下の(14)式~(23)式に従って算出する。
1)
【0064】
【数14】
【0065】
【数15】
【0066】
2)vi0、vi1を含むz軸に平行な直線をそれぞれl、lとする。
【0067】
【数16】
【0068】
【数17】
【0069】
【数18】
【0070】
【数19】
【0071】
3)

とする。
【0072】
【数20】
【0073】
【数21】
【0074】
【数22】
【0075】
最終的に、以下の(23)式によってPlace後の座標が計算される。(23)式におけるgは、把持部56のy座標である。
【0076】
【数23】
【0077】
Pushにおいて、Graspと同じ座標が用いられる。Pushでは、対象物Oをx軸方向に押す。PushにおいてもGraspの場合と同じ推論が適用可能なため、対象物Oの回転のみを計算すればよい。
【0078】
一例として図8に示すように、Pushにおける対象物Oの回転は、次の3段階に分けられる。
(1)把持部56の指が対象物Oに触れていない場合、対象物Oは回転しない。
(2)対象物Oの頂点が1つでも指に触れている場合、対象物Oはz軸の周りを回転する。
(3)対象物Oの2つの頂点が指に触れている場合、対象物Oは押されるのみであり、回転しない。
なお、同じx座標とy座標を有する頂点は1つの頂点とみなされる。
【0079】
推定部42は、Pushを行ったと仮定した場合のPush後の対象物Oの姿勢の推定値を以下の(24)式~(28)式に従って算出する。
1)
【0080】
【数24】
【0081】
2)vi0を含むz軸に平行な直線をlとする。
【0082】
【数25】
【0083】
【数26】
【0084】
【数27】
【0085】
最終的に、以下の(28)式によってPush後の座標が計算される。(28)式におけるgは、把持部56のx座標であり、wは把持部56の指の幅である。
【0086】
【数28】
【0087】
生成部40が複数の動作列の候補の中から1つの動作列を選択するために、推定部42は、姿勢の不確実性をスカラーとして定量化する。この定量化のために、(1)式の代替式として、以下の(29)式が用いられる。
【0088】
【数29】
【0089】
ξ’の共分散行列をΣ’とする。ΣからΣ’への変換は、上記参考文献1の座標変換式である(26)式により計算することができる。推定部42は、以下の(30)式に従って、姿勢の不確実性を表すスコアを算出する。(30)式におけるci,jは固定係数である。
【0090】
【数30】
【0091】
ΣからΣ’へ変換する理由は、Σ’が対象物O自身の座標系と関連するためである。Σ’の最初の3つの対角成分は、x、y、zにおける対象物Oの位置の不確実性に対応し、2番目の3つの対角成分は、対象物Oの姿勢の不確実性に対応する。Σ’の非対角成分は、それらの間の共分散に対応する。
【0092】
いくつかの対象物Oは、軸の周りに回転対称性を持ち、その周りの不確実性を排除することは難しい。このような場合、避けられない不確実性が無視され、残りを最小化するように、係数ci,jが設定される。
【0093】
出力部44は、生成部40により選択された動作列を制御装置50に対して出力する。制御装置50は、生成装置10から入力された動作列に基づく指令値を生成し、かつロボット52へ出力する。ロボット52は、制御装置50から入力された指令値に従って駆動し、対象物Oの位置決めを行う。
【0094】
次に、図9を参照して、生成装置10の作用を説明する。CPU12が生成プログラム30を実行することによって、図9に示す動作列生成処理が実行される。図9に示す動作列生成処理は、例えば、ユーザにより実行開始の指示が入力された場合等に実行される。
【0095】
図9のステップS10で、生成部40は、前述したように、幅優先探索によって異なる複数の動作列の候補を生成する。推定部42は、前述したように、この幅優先探索の各ステップにおいて、そのステップの動作を行ったと仮定した場合の動作後の対象物Oの姿勢及び姿勢の不確実性を推定する。
【0096】
ステップS12で、生成部40は、ステップS10で生成された複数の動作列の候補の中から、最終的な姿勢の不確実性を表すスコアが最小となる動作列を選択することによって動作列を生成する。ステップS14で、出力部44は、ステップS12で選択された動作列を制御装置50に対して出力する。
【0097】
ステップS14の処理が終了すると、動作列生成処理が終了する。ロボット52は、ステップS14で制御装置50から入力された指令値に従って駆動し、対象物Oの位置決めを行う。
【0098】
以上説明したように、本実施形態によれば、Grasp、Place、及びPushという3つの動作によって対象物Oが位置決めされる。従って、多様な対象物Oの姿勢を精度良く位置決めすることができる。また、専用の治具を用いることなく、対象物Oの姿勢を精度良く位置決めすることができる。
【0099】
なお、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した動作列生成処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、動作列生成処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0100】
また、上記実施形態では、生成プログラム30が記憶装置16に予め記憶(インストール)されている態様を説明したが、これに限定されない。生成プログラム30は、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、生成プログラム30は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0101】
以下に、本開示に関する付記項を記載する。
【0102】
(付記項1)
ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する生成部
を含む生成装置。
【0103】
(付記項2)
前記動作列の候補に含まれる各動作を行ったと仮定した場合の各動作後の前記対象物の姿勢及び、その姿勢の不確実性を推定する推定部をさらに含み、
前記生成部は、各動作を順次行うたびに前記推定部により推定された姿勢の不確実性が減少する動作列を生成する
付記項1に記載の生成装置。
【0104】
(付記項3)
前記推定部は、前記不確実性を表すスコアを算出し、
前記生成部は、異なる複数の動作列の候補の中から、最終的な前記スコアが最小となる動作列を選択することによって動作列を生成する
付記項2に記載の生成装置。
【0105】
(付記項4)
前記第3の動作において、前記把持部が前記対象物に接触する2点以上の点を結ぶ線分又は面に対して、前記対象物の重心から引いた垂線が前記線分内又は前記面内に位置することを条件とする
付記項1から付記項3の何れか1項に記載の生成装置。
【0106】
(付記項5)
前記生成部は、1つの動作列の中に同じ動作を含む場合、その同じ動作の間では動作条件を異ならせる
付記項1から付記項4の何れか1項に記載の生成装置。
【0107】
(付記項6)
ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する
ことを含む処理をコンピュータが実行する生成方法。
【0108】
(付記項7)
コンピュータを、
ロボットの把持部により対象物を把持する第1の動作、前記把持部により把持された前記対象物を支持面に置く第2の動作、及び前記把持部により前記対象物を押す第3の動作のうちの少なくとも1つの動作の2つ以上の組合せからなる動作列であって、前記対象物の位置決めを行うための動作列を生成する生成部
として機能させるための生成プログラム。
【符号の説明】
【0109】
1 ロボットシステム
10 生成装置
12 CPU
14 メモリ
16 記憶装置
18 入出力I/F
20 入出力装置
26 バス
30 生成プログラム
40 生成部
42 推定部
44 出力部
50 制御装置
52 ロボット
54 ロボットアーム
56 把持部
O 対象物
P 支持面
図1
図2
図3
図4
図5
図6
図7
図8
図9