(57)【要約】【課題】いち早く可動対象物の把持可能部を把持して変位動作を開始させることのできる把持ロボットを提供する。【解決手段】把持ロボットは、対象物を把持するための把持機構と、周辺環境を撮像する撮像部と、撮像部で取得された画像を入力画像とする学習済みモデルを用いて、周辺環境に把持機構が把持可能な把持可能部を抽出する抽出部と、把持可能部の位置を検出する位置検出部と、把持可能部の位置と可動状態とが対応付けられたルックアップテーブルを参照して、把持可能部の状態を認識する認識部と、認識部によって認識された把持可能部の状態に応じて、把持可能部を変位させるように把持機構を制御する把持制御部とを備える。【選択図】図２
2020082282.tif 000002
【特許請求の範囲】
【請求項１】
対象物を把持するための把持機構と、
周辺環境を撮像する撮像部と、
前記撮像部で取得された画像を入力画像とする学習済みモデルを用いて、前記周辺環境に前記把持機構が把持可能な把持可能部を抽出する抽出部と、
前記把持可能部の位置を検出する位置検出部と、
前記把持可能部の位置と可動状態とが対応付けられたルックアップテーブルを参照して、前記把持可能部の状態を認識する認識部と、
前記認識部によって認識された前記把持可能部の状態に応じて、前記把持可能部を変位させるように前記把持機構を制御する把持制御部と
を備える把持ロボット。
【請求項２】
前記ルックアップテーブルは、前記把持可能部と前記可動状態が定義される可動部との関係が対応付けられている請求項１に記載の把持ロボット。
【請求項３】
対象物を把持するための把持機構を備える把持ロボットの制御プログラムであって、
周辺環境を撮像する撮像ステップと、
前記撮像ステップで取得された画像を入力画像とする学習済みモデルを用いて、前記周辺環境に前記把持機構が把持可能な把持可能部を抽出する抽出ステップと、
前記把持可能部の位置を検出する位置検出ステップと、
前記把持可能部の位置と可動状態とが対応付けられたルックアップテーブルを参照して、前記把持可能部の状態を認識する認識ステップと、
前記認識ステップによって認識された前記把持可能部の状態に応じて、前記把持可能部を変位させるように前記把持機構を制御する把持制御ステップと
をコンピュータに実行させる把持ロボットの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持ロボットおよび把持ロボットの制御プログラムに関する。
【背景技術】
【０００２】
可動部を含む対象物体の動きを経時的に取得してその三次元形状を認識する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２２８８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットハンドで可動対象物を変位させる場合には、全体の三次元形状を認識せずとも、いち早く可動対象物の把持可能部を把持して変位動作を開始させたい。
【０００５】
本発明は、このような問題を解決するためになされたものであり、いち早く可動対象物の把持可能部を把持して変位動作を開始させることのできる把持ロボットを提供するものである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様における把持ロボットは、対象物を把持するための把持機構と、周辺環境を撮像する撮像部と、撮像部で取得された画像を入力画像とする学習済みモデルを用いて、周辺環境に把持機構が把持可能な把持可能部を抽出する抽出部と、把持可能部の位置を検出する位置検出部と、把持可能部の位置と可動状態とが対応付けられたルックアップテーブルを参照して、把持可能部の状態を認識する認識部と、認識部によって認識された把持可能部の状態に応じて、把持可能部を変位させるように把持機構を制御する把持制御部とを備える。このように、学習済みモデルとルックアップテーブルを組み合わせることにより、いち早く可動対象物の把持可能部を把持して変位動作を開始させることができる。
【０００７】
上記の把持ロボットにおいて、ルックアップテーブルは、把持可能部と可動状態が定義される可動部との関係が対応付けられていても良い。このようなルックアップテーブルを利用すれば、把持部とは異なる可動部が連動する場合であっても、いち早く変位動作を開始することができる。
【０００８】
本発明の第２の態様における把持ロボットの制御プログラムは、対象物を把持するための把持機構を備える把持ロボットの制御プログラムであって、周辺環境を撮像する撮像ステップと、撮像ステップで取得された画像を入力画像とする学習済みモデルを用いて、周辺環境に把持機構が把持可能な把持可能部を抽出する抽出ステップと、把持可能部の位置を検出する位置検出ステップと、把持可能部の位置と可動状態とが対応付けられたルックアップテーブルを参照して、把持可能部の状態を認識する認識ステップと、認識ステップによって認識された把持可能部の状態に応じて、把持可能部を変位させるように把持機構を制御する把持制御ステップとをコンピュータに実行させる。このような制御プログラムによって制御された把持ロボットは、第１の態様における把持ロボットと同様に、いち早く可動対象物の把持可能部を把持して変位動作を開始させることができる。
【発明の効果】
【０００９】
本発明により、いち早く可動対象物の把持可能部を把持して変位動作を開始させることのできる把持ロボットを提供することができる。  
【図面の簡単な説明】
【００１０】
【図１】把持機構を備える移動ロボットの外観斜視図である。
【図２】移動ロボットの制御ブロック図である。
【図３】移動ロボットが取得した周辺環境画像の一例である。
【図４】学習済みモデルが出力する把持可能領域の一例である。
【図５】把持準備動作の様子を示す図である。
【図６】可動部テーブルにおける可動物の定義を説明する図である。
【図７】把持動作の一連の処理を示すフロー図である。
【発明を実施するための形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００１２】
図１は、対象物を把持する把持機構を備える移動ロボット１００の外観斜視図である。移動ロボット１００は、把持ロボットの一例である。移動ロボット１００は、大きく分けて台車部１１０と本体部１２０によって構成される。台車部１１０は、円筒形状の筐体内に、それぞれが走行面に接地する２つの駆動輪１１１と１つのキャスター１１２とを支持している。２つの駆動輪１１１は、互いに回転軸芯が一致するように配設されている。それぞれの駆動輪１１１は、不図示のモータによって独立して回転駆動される。キャスター１１２は、従動輪であり、台車部１１０から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部１１０の移動方向に倣うように追従する。
【００１３】
台車部１１０は、上面の周縁部にレーザスキャナ１３３を備える。レーザスキャナ１３３は、水平面内の一定の範囲をステップ角ごとにスキャンして、それぞれの方向に障害物が存在するか否かを出力する。さらに、障害物が存在する場合には、その障害物までの距離を出力する。
【００１４】
本体部１２０は、主に、台車部１１０の上面に搭載された胴部１２１、胴部１２１の上面に載置された頭部１２２、胴部１２１の側面に支持されたアーム１２３、およびアーム１２３の先端部に設置されたハンド１２４を備える。ハンド１２４の手首部分には、把持対象物の位置を検出するハンドカメラ１３５を備える。アーム１２３とハンド１２４は、不図示のモータによって駆動され、様々な対象物を制御された姿勢で把持し、変位させることができる。すなわち、アーム１２３とハンド１２４は、対象物を把持するための把持機構としての機能を担う。胴部１２１は、不図示のモータの駆動力により、台車部１１０に対して鉛直軸周りに回転することができる。
【００１５】
頭部１２２は、主に、ステレオカメラ１３１および表示パネル１４１を備える。ステレオカメラ１３１は、同じ画角を有する２つのカメラユニットが互いに離間して配置された構成を有し、それぞれのカメラユニットで撮像された撮像信号を出力する。ステレオカメラ１３１は、周辺環境を撮像する撮像部としての機能を担う。
【００１６】
表示パネル１４１は、例えば液晶パネルであり、設定されたキャラクターの顔をアニメーションで表示したり、移動ロボット１００に関する情報をテキストやアイコンで表示したりする。表示パネル１４１にキャラクターの顔を表示すれば、表示パネル１４１が擬似的な顔部であるかの印象を周囲の人達に与えることができる。
【００１７】
頭部１２２は、不図示のモータの駆動力により、胴部１２１に対して鉛直軸周りに回転することができる。したがって、ステレオカメラ１３１は、任意の方向の対象物を撮像することができ、また、表示パネル１４１は、任意の方向へ向けて表示内容を呈示することができる。
【００１８】
図２は、移動ロボット１００の制御ブロック図である。ここでは、対象物の把持動作に関係する主な要素について説明するが、移動ロボット１００の構成としては他の要素も備え、また、把持動作の処理に寄与する他の要素が加えられることもあり得る。
【００１９】
制御部１６０は、例えばＣＰＵであり、例えば胴部１２１に備えられたコントロールユニットに格納されている。台車駆動ユニット１４５は、駆動輪１１１と駆動輪１１１を駆動するための駆動回路やモータを含む。制御部１６０は、台車駆動ユニット１４５へ駆動信号を送ることにより、駆動輪の回転制御を実行する。また、制御部１６０は、台車駆動ユニット１４５からエンコーダ等のフィードバック信号を受け取って、台車部１１０の移動方向や移動速度を把握する。
【００２０】
上体駆動ユニット１４６は、アーム１２３およびハンド１２４の把持機構と、胴部１２１および頭部１２２と、これらを駆動するための駆動回路やモータを含む。制御部１６０は、上体駆動ユニット１４６へ駆動信号を送ることにより、把持動作や特定方向へのステレオカメラ１３１の回動等を実現する。また、制御部１６０は、上体駆動ユニット１４６からエンコーダ等のフィードバック信号を受け取って、アーム１２３およびハンド１２４の位置や移動速度、胴部１２１および頭部１２２の向きや回転速度を把握する。表示パネル１４１は、ユーザの要求等に応じて制御部１６０が生成した画像信号を表示する。また、制御部１６０は、上述のように、キャラクター等の画像信号を生成して、表示パネル１４１へ表示させる。
【００２１】
ステレオカメラ１３１は、制御部１６０からの要求に従って周辺環境を撮像し、撮像信号を制御部１６０へ引き渡す。制御部１６０は、取得した撮像信号を用いて画像処理を実行する。レーザスキャナ１３３は、制御部１６０からの要求に従って移動方向に障害物が存在するか否かを検出し、その結果である検出信号を制御部１６０へ引き渡す。
【００２２】
ハンドカメラ１３５は、例えば距離画像センサであり、対象物の距離、形状、方向等を認識するために用いられる。ハンドカメラ１３５は、対象空間から入射する光学像を光電変換するピクセルが二次元状に配列された撮像素子を含み、ピクセルごとに被写体までの距離を制御部１６０へ出力する。具体的には、ハンドカメラ１３５は、パターン光を対象空間に照射する照射ユニットを含み、その反射光を撮像素子で受光して、画像におけるパターンの歪みや大きさから各ピクセルが捉えた被写体までの距離を出力する。なお、制御部１６０は、より広い周辺環境の様子をステレオカメラ１３１で把握し、特定の対象物近傍の様子をハンドカメラ１３５で把握する。ハンドカメラ１３５は、把持機構が把持できる把持可能部の位置を検出する検出部としての機能を担う。
【００２３】
メモリ１５０は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ１５０は、移動ロボット１００を制御するための制御プログラムの他にも、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。特に、入力画像から把持機構が把持可能な把持可能領域を出力する学習済みモデル１５１と、対象空間中に配置されている把持可能部の位置と可動状態とが対応付けられたルックアップテーブルである可動部テーブル１５２とを記憶している。
【００２４】
制御部１６０は、メモリ１５０から読み出した制御プログラムを実行することにより移動ロボット１００全体の制御と様々な演算処理とを実行する。また、制御部１６０は、制御に関わる様々な演算や制御を実行する機能実行部としての役割も担う。このような機能実行部として、抽出部１６１、認識部１６２、把持制御部１６３を含む。
【００２５】
抽出部１６１は、ステレオカメラ１３１のいずれか一方の撮像信号から生成された画像データの画像を入力画像として、メモリ１５０から読み出した学習済みモデル１５１から把持可能領域を得て、周辺環境から把持機構が把持可能な把持可能部を抽出する。認識部１６２は、抽出部１６１が抽出した把持可能部のうち、タスク遂行のために把持すべき把持可能部の状態を認識する。より具体的には、ハンドカメラ１３５から得られた当該把持可能部の位置情報と、可動部テーブル１５２に記述された当該把持可能部の情報とに基づいて、現在の当該把持可能部の状態を認識する。把持制御部１６３は、認識部１６２が認識した当該把持可能部の状態に対し、どのように把持するか、さらにはどのように変位させるかを与えられたタスクに応じて定め、把持機構をそのように制御すべく上体駆動ユニット１４６へ駆動信号を送る。
【００２６】
図３は、移動ロボット１００がステレオカメラ１３１により取得した周辺環境画像の一例である。ステレオカメラ１３１は２つのカメラユニットがそれぞれ撮像信号を出力するが、ここではいずれか一方の撮像信号から生成された二次元画像を示す。
【００２７】
この画像によれば、移動ロボット１００の近くにキャビネット７００が存在する。キャビネット７００は、第１つまみ７１１が設けられた引出し７１０と、第２つまみ７２１、第３つまみ７２２が設けられた戸棚７２０を備える。抽出部１６１は、このような画像を入力画像として学習済みモデル１５１に与える。
【００２８】
図４は、学習済みモデル１５１が出力する把持可能領域の一例である。具体的には、第１つまみ７１１を囲む領域が第１検出領域８１１として、第２つまみ７２１を囲む領域が第２検出領域８２１として、第３つまみ７２２を囲む領域が第３検出領域８２２として検出される。学習済みモデル１５１は、把持機構のハンド部がつまんだり引っ掛けたりする把持可能部が写る画像と、その画像のうちどの領域が当該把持可能部であるかの正解値の組み合わせである大量の教師データにより学習を行ったニューラルネットワークである。したがって、画像中につまめそうな凸部や、引っ掛けられそうな凹部が写っていれば、実際には変位不可能な対象物であっても、把持可能領域として検出される場合もある。抽出部１６１は、学習済みモデル１５１の出力結果として、周辺環境から把持機構が把持可能な把持可能部を抽出する。なお、学習済みモデル１５１は、深層学習により学習を行ったニューラルネットワークであると良い。
【００２９】
図５は、移動ロボット１００が実行する把持準備動作の様子を示す図である。移動ロボット１００には、実行すべきタスクが予め与えられており、対象物の変位動作はその一環として実行される。例えばここでは、キャビネット７００の引出し７１０に収容されたタオルを把持して特定の場所まで搬送するタスクが与えられているものとする。
【００３０】
タオルが収容された引出し７１０のおよその位置は、与えられたタスク中に予め記述されている。制御部１６０は、その情報から、抽出部１６１が抽出した把持可能部のうち、引出し７１０の近傍に存在する第１つまみ７１１を把持対象と定める。そして、図示するように、ハンドカメラ１３５が第１つまみ７１１を観察できる位置へアーム１２３を駆動する。
【００３１】
アーム１２３の駆動が完了したら、ハンドカメラ１３５は、第１つまみ７１１を含む空間領域を撮像する。制御部１６０は、現時点におけるハンド１２４の基準位置から第１つまみ７１１までの距離と、第１つまみ７１１が取り付けられている第１基準面７１２の面方向を、ハンドカメラ１３５の出力信号から算出する。
【００３２】
認識部１６２は、算出した第１つまみ７１１までの距離と第１基準面７１２の面方向を、可動部テーブル１５２に記述された第１つまみ７１１の情報に照らし合わせ、引出し７１０の現在の状態を認識する。より具体的には、引出し７１０が閉じられているのか、あるいはどれ程開かれているかといった状態を認識する。把持制御部１６３は、認識部１６２が認識した引出し７１０の状態あるいは第１つまみ７１１の状態に対し、どのように把持するか、さらには把持したままどの方向にどれだけ変位させるかを決定し、当該決定に応じた駆動信号を上体駆動ユニット１４６へ送信する。変位量は、例えばハンド１２４が対象のタオルを取り出すことができる幅から算出される。
【００３３】
図６は、可動部テーブル１８２における可動物の定義を説明する図である。キャビネット７００の場合、可動物として引出し７１０と戸棚７２０が定義される。引出し７１０については、第１つまみ７１１が取り付けられている第１基準面７１２の面方向（例えば面ベクトル）、変位可能方向、および変位可能範囲が、移動ロボットの作業空間に対して規定された絶対座標系を用いて記述されている。また、第１基準面７１２に対する第１つまみ７１１の位置と外形形状が記述されている。
【００３４】
戸棚７２０については、第２つまみ７２１が取り付けられている第２基準面７２３の閉状態における面方向、回転軸方向、および回転可能範囲が、同じく絶対座標系を用いて記述されている。また、第２基準面７２３に対する第２つまみ７２１の位置と外形形状が記述されている。同様に、第３つまみ７２２が取り付けられている第３基準面７２４の閉状態における面方向、回転軸方向、および回転可能範囲が、同じく絶対座標系を用いて記述されている。また、第３基準面７２４に対する第３つまみ７２２の位置と外形形状が記述されている。
【００３５】
このような可動部テーブル１５２を作成しておくことで、制御部１６０は、学習済みモデル１５１の出力とハンド１２４の出力から、いち早く目的とする可動対象物の状態を認識することができる。ひいては、いち早く把持可能部を把持して変位動作を開始することができる。
【００３６】
図７は、把持動作の一連の処理を示すフロー図である。フローは、移動ロボット１００が、実行すべきタスクに応じて、把持対象物の近傍まで移動した時点から開始する。制御部は、メモリ１５０から読み出した把持制御プログラムにより、以下の処理を実行する。
【００３７】
制御部１６０は、ステップＳ１０１で、ステレオカメラ１３１により周辺環境を撮像し、周辺環境画像を取得する。ステップＳ１０２へ進み、抽出部１６１は、当該周辺環境画像を入力画像として、メモリ１５０から読み出した学習済みモデル１５１から把持可能領域を得て、周辺環境から把持機構が把持可能な把持可能部を抽出する。
【００３８】
ステップＳ１０３へ進み、制御部１６０は、ハンドカメラ１３５が把持可能部を観察できる位置へアーム１２３を駆動する。そして、ハンドカメラ１３５に把持可能部を撮像させる。制御部１６０は、把持可能部の位置と把持可能部が取り付けられている基準面の面方向を、ハンドカメラ１３５の出力信号から算出する。
【００３９】
ステップＳ１０４へ進み、認識部１６２は、把持可能部の位置と把持可能部が取り付けられている基準面の面方向を、可動部テーブル１５２に記述された当該把持可能部の情報に照らし合わせ、現在の状態を認識する。ステップＳ１０５へ進み、把持制御部１６３は、認識部１６２が認識した把持可能部の状態に対し、どのように把持するか、さらには把持したままどの方向にどれだけ変位させるかを決定し、当該決定に応じた駆動信号を上体駆動ユニット１４６へ送信する。把持機構は、当該駆動信号に応じて、把持可能部を把持して変位させる。変位が完了したら、一連の処理を終了する。
【００４０】
以上説明した本実施形態においては、把持機構を備える移動ロボット１００を把持ロボットの例として説明したが、把持ロボットは、このような移動ロボットに限らない。特定の場所に設置されたアームロボットであっても構わない。また、把持可能部の位置と可動状態とが対応付けられたルックアップテーブルの例として可動部テーブル１５２を説明したが、表現形式は説明した例に限らない。座標系で表現するのではなく、例えば動画像データを用いて可動状態を表現しても良い。また、把持可能部の位置を検出する位置検出部の例としてハンドカメラ１３５を説明したが、ステレオカメラ１３１が把持動作に対して十分な精度で把持部の位置を検出できるのであれば、ステレオカメラ１３１が位置検出部としての機能も担っても良い。
【００４１】
また、以上説明した本実施形態においては、キャビネット７００を可動対象物として説明したが、もちろん動き得る対象物はキャビネットに限らない。移動ロボット１００に扉を開けさせて仕切られた空間の一方から他方へ移動させるのであれば、開閉する扉も可動対象物となり得る。
【００４２】
また、把持可能部が可動部の一部でなくても構わない。例えば、傘のような構造物であれば、軸部である把持部に対して、軸部に沿って開閉する傘面が可動部となる。このような場合は、把持可能部と可動状態が定義される可動部との関係がルックアップテーブルに対応付けられて記述される。具体的には、開閉する傘面の基準位置が把持部の基準位置に対してどのように変位し得るのか、また、傘面が空間に対してどのように拡がるかが記述される。
【符号の説明】
【００４３】
１００  移動ロボット、１１０  台車部、１１１  駆動輪、１１２  キャスター、１２０  本体部、１２１  胴部、１２２  頭部、１２３  アーム、１２４  ハンド、１３１  ステレオカメラ、１３３  レーザスキャナ、１３５  ハンドカメラ、１４１  表示パネル、１４５  台車駆動ユニット、１４６  上体駆動ユニット、１５０  メモリ、１５１  学習済みモデル、１５２  可動部テーブル、１６０  制御部、１６１  抽出部、１６２  認識部、１６３  把持制御部、７００  キャビネット、７１０  引出し、７１１  第１つまみ、７１２  第１基準面、７２０  戸棚、７２１  第２つまみ、７２２  第３つまみ、７２３  第２基準面、７２４  第３基準面、８１１  第１検出領域、８２１  第２検出領域、８２２  第３検出領域
【図１】
2020082282.tif 000003
【図２】
2020082282.tif 000004
【図３】
2020082282.tif 000005
【図４】
2020082282.tif 000006
【図５】
2020082282.tif 000007
【図６】
2020082282.tif 000008
【図７】
2020082282.tif 000009