(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-19
(45)【発行日】2023-06-27
(54)【発明の名称】軌道生成装置
(51)【国際特許分類】
B25J 9/10 20060101AFI20230620BHJP
B25J 5/00 20060101ALI20230620BHJP
【FI】
B25J9/10 A
B25J5/00 A
(21)【出願番号】P 2019142793
(22)【出願日】2019-08-02
【審査請求日】2022-01-17
【新規性喪失の例外の表示】特許法第30条第2項適用 2019年7月6日IEEE ICMA 2019 webサイト(http://2019.ieee-icma.org/)にて頒布の予稿集 「Proceedings of 2019 IEEE International Conference on Mechatronics and Automation August 4-7, Tianjin, China (ICMA2019-323)」に公開
(73)【特許権者】
【識別番号】504180239
【氏名又は名称】国立大学法人信州大学
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】山崎 公俊
(72)【発明者】
【氏名】長濱 虎太郎
(72)【発明者】
【氏名】朱 瑞
(72)【発明者】
【氏名】竹下 佳佑
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2017-227955(JP,A)
【文献】特開平08-036410(JP,A)
【文献】特開2014-123200(JP,A)
【文献】特開2016-012348(JP,A)
【文献】特開2002-326174(JP,A)
【文献】特開2009-056554(JP,A)
【文献】米国特許第10303180(US,B1)
【文献】特開2011-128758(JP,A)
【文献】特開2018-1348(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05D 1/00- 1/02
(57)【特許請求の範囲】
【請求項1】
モバイルマニピュレータを任意の目標地点へ移動させる過程の経路を含む空間を3次元的にボクセル化してデータベースに記憶し、記憶されたボクセル情報に基づき、目標地点にモバイルマニピュレータを移動させるためのモバイルマニピュレータの軌道生成装置であって、
事前計画において、モバイルマニピュレータの複数の軌道群の計画を実現した際にモバイルマニピュレータが通過する複数の軌道及び複数の空間のボクセル情報を記憶するデータベースを備え、
目標地点に基づき、前記データベース
に記憶された前記複数の軌道及び複数の空間のボクセル情報から、モバイルマニピュレータが動作する1つ又は複数の候補軌道と、各候補軌道に沿ってモバイルマニピュレータが通る空間のボクセル情報と、を取得し、
環境センサにより、モバイルマニピュレータが動作する環境の3次元点群を検出し、
前記3次元点群をボクセル化した3次元環境情報を取得し、
前記
データベースから取得された1つ又は複数の候補軌道に沿ってモバイルマニピュレータが通る
前記空間のボクセル情報と、
前記環境センサにより取得された前記ボクセル化された3次元環境情報との比較に基づき、障害物と衝突しない軌道を生成する、軌道生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、軌道生成装置に関する。
【背景技術】
【0002】
特許文献1には、モバイルマニピュレータとも称される、ロボットアームの先端のエンドエフェクタの軌道生成装置が開示されている。モバイルマニピュレータを任意の目標地点へ移動させる過程の経路を含む空間を3次元的にブロック化し、各ブロックにモバイルマニピュレータを移動させるための関節角度を計算したデータを記憶したデータベースを作成しておく。そして、実際にモバイルマニピュレータを移動させる際は、まず、ブロックの基準点に移動し、このデータベースを参酌して目標地点までの移動を実行する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、経路の途中に障害物が存在する場合には、こうした障害物を回避してモバイルマニピュレータを適切に移動させることはできない。
【0005】
本発明は、このような事情に鑑みなされたものであって、障害物が存在する場合であっても、衝突を回避して移動させる軌道を高速で生成する軌道生成装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様にかかる軌道生成装置は、モバイルマニピュレータを任意の目標地点へ移動させる過程の経路を含む空間を3次元的にボクセル化してデータベースに記憶し、記憶されたボクセル情報に基づき、目標地点にモバイルマニピュレータを移動させるためのモバイルマニピュレータの軌道生成装置であって、
目標地点に基づき、前記データベースから、モバイルマニピュレータが動作する1つ又は複数の候補軌道と、各候補軌道に沿ってモバイルマニピュレータが通る空間のボクセル情報と、を取得し、
環境センサにより、モバイルマニピュレータが動作する環境の3次元点群を検出し、3次元点群をボクセル化した3次元環境情報を取得し、
前記取得された1つ又は複数の候補軌道に沿ってモバイルマニピュレータが通る空間のボクセル情報と、前記ボクセル化された3次元環境情報との比較に基づき、障害物と衝突しない軌道を生成する。
【発明の効果】
【0007】
本発明により、経路の途中に障害物が存在する場合であっても、衝突を回避して移動させる軌道を高速で生成する軌道生成装置を実現できる。
【図面の簡単な説明】
【0008】
【
図1】自律移動ロボットの構成を示す外観図である。
【
図2】自律移動ロボットの概略的なシステム構成を示すブロック図である。
【
図3】実施の形態1にかかるロボットの事前学習を説明するフローチャートである。
【
図4】シミュレータで構築された環境の一例を示す図である。
【
図5】ロボットが通る空間をボクセル化した一例を示す図である。
【
図6】実施の形態1にかかるロボットの動作計画を説明するフローチャートである。
【
図7】ロボットが3次元環境情報を取得する例を説明する図である。
【
図9】実施の形態2にかかるロボットの事前学習を説明するフローチャートである。
【
図10】実施の形態2にかかるロボットの動作計画を説明するフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明を適用した具体的な実施形態について、図面を参照しながら詳細に説明する。ただし、本発明が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載および図面は、適宜、簡略化されている。
【0010】
<実施の形態1>
図1及び
図2を参照して、本発明の実施形態に係る自律移動ロボットの一例であるロボットの構成について説明する。
図1は、本発明の実施の形態1に係る自律移動ロボットの構成を示す外観図である。本実施の形態1に係る自律移動ロボット1は、HSR(Human Support Robot)であり、例えば、片付けを行う対象物(以下、対象物)を予め設定された片付け場所に移動させ、対象物を片付け場所に片付ける作業を自律的に行う。
【0011】
図2は、本発明の実施形態1に係る自律移動ロボットの概略的なシステム構成を示すブロック図である。本実施形態に係る自律移動ロボット1は、ロボット本体2と、ロボット本体2を移動させる移動装置3と、物体を把持し移動させる把持操作装置4と、移動装置3及び把持操作装置4を制御する制御装置5と、環境センサ6と、を備えている。なお、移動装置3と把持操作装置4を合わせて、モバイルマニピュレータ又はモバイルマニピュレータロボットと呼ばれる。
【0012】
移動装置3は、制御装置5からの制御信号に応じて、例えば、モータなどを駆動させることで複数の車輪を回転させ、ロボット本体2を所望の位置に移動させる。
【0013】
把持操作装置4は、例えば、複数の手先44で対象物を把持する把持部41と、手首関節、肘関節、肩関節などの関節部42を介して連結される複数のリンク43と、各関節部42を駆動するモータなどの複数のアクチュエータと、を含む多関節型アームとして構成されている。
【0014】
制御装置5は、例えば、ユーザが操作端末7を介して入力した操作信号に基づいて移動装置3及び把持操作装置4を制御することで、自律移動ロボット1に作業を実行させる。操作端末7は、例えば、タブレット端末、PC(Personal Computer)、スマートフォンなどの携帯端末である。操作端末7と制御装置5は、無線あるいは有線で通信接続されており、相互にデータの送受信を行う。
【0015】
制御装置5は、例えば、制御処理、演算処理等を行うCPU(Central Processing Unit)5a、CPU5aによって実行される制御プログラム、演算プログラム等が記憶されたROM(Read Only Memory)やRAM(Random Access Memory)からなるメモリ5b、外部と信号の入出力を行うインターフェイス部(I/F)5c、などからなるマイクロコンピュータを中心にして構成されている。CPU5a、メモリ5b、及びインターフェイス部5cは、データバスなどを介して相互に接続されている。
【0016】
環境センサ6は、ロボット1の周囲の対象物などの環境情報(距離情報、画像情報など)を検出する。環境センサ6は、例えば、ロボット1の頭部などに搭載されている(この場合、頭部センサとも呼ばれる)が、これに限られない。環境センサ6は、ロボット1が動作する動作環境内に設置されていてもよい。さらに、環境センサ6は、ロボット1及び動作環境内に複数設けられていてもよい。環境センサ6は、例えば、カメラ(RGB-Dカメラ、ステレオカメラ)、レーザレンジファインダ、超音波センサなどの距離センサであってもよい。
【0017】
環境センサ6は、自律移動ロボット1が移動経路を移動する際の移動経路上の対象物などの障害物(例えば、机、棚など)を検出する。環境センサ6は、検出した障害物などの環境情報を制御装置5に出力する。
【0018】
データベース10は、後述する事前学習等で得られたロボットの手先ゴール、軌道、および通過する空間のボクセル情報等を記憶する。
【0019】
制御装置5は、自律移動ロボット1が移動する移動経路を計画し、その移動経路に沿って自律移動ロボット1が移動するよう、移動装置3を制御する。もちろん、自律移動ロボット1は車輪型の移動ロボットに限らず、歩行型やその他の移動ロボットでもよい。制御装置5は、例えば、環境センサ6により検出された環境情報に基づいて、自律移動ロボット1の自己位置推定を行い、計画した移動経路に従って自律移動ロボット1を移動させる。
【0020】
ロボットが人間に価値を提供するタスクにおいて、タスクを素早く実行することは重要であり、そのためにも環境と衝突しない安全な動作を、高速に計画することが要求されている。こうした要求を実現するために、事前の様々な軌道を計画しておき、それを利用する手法を提案する。事前計算では、ロボット軌道群とそれを実現した際にロボットが通過する空間をボクセル化した情報を計算し、データベースに蓄積する。動作計画時には、蓄積した情報から軌道と通過する空間情報を取り出すとともに、現在の環境情報をボクセルで表現し、ボクセル同士のビット演算にて衝突判定を高速に行う。これらによって、環境と衝突しない動作の計画を、高速に実現する。
【0021】
図3を参照して、本実施の形態にかかるロボットの事前学習について説明する。
まず、シミュレータで適当な環境を構築する(ステップS101)。この場合、例えば、
図4に示すように、机や棚、物品等の障害物を一定範囲でランダムに配置する。この際、Gazeboシミュレータを利用することができる。ロボットモデルは、HSRとすることができる。
【0022】
次に、任意の手先ゴール(目標地点)を指定し、軌道を計画する(ステップS102)。手先ゴールは、生成するルールを定義し、実装することで、自動生成され得る。ルールの例としては、ロボット前方一定エリア内からランダムにサンプリングしてもよいし、あるいは、ロボット前方一定エリアを等間隔にグリッド化して、その中心点としてもよい。また、手先ゴールは、ユーザが操作端末7を介して入力してもよい。この際、例えば、10mm刻みでロボットを移動してシミュレーションを行う。ここでは、CBiRRT(Constrained Bi-directional Rapidly-Exploring Random Tree)により軌道計画を実施する。軌道は、シミュレータ上の、環境センサ6(頭部3Dセンサ)が出力する3次元点群を回避するように設定される。設定された軌道を保存する。
【0023】
次に、計画された軌道に基づいて、ロボットが通る空間のボクセル表現を計算する(ステップS103)。ボクセル(例えば、一辺100mm)で埋め尽くした空間(ロボットが通る空間をボクセル化した一例)を用意する(
図5参照)。ここでは、ボクセルの一辺は100mmとしたが、より細かくなるように設定してもよいが、その分、干渉チェックにかかる時間が増大することになる。例えば、ボクセルの一辺が100mmの場合、1軌道にかかる干渉チェック時間は、0.5msecとなる。こうして用意したボクセルで埋め尽くした空間において、ロボットを、軌道上で様々な姿勢を取らせ、ロボットとボクセルとの干渉をチェックする。
【0024】
以上のように事前学習した、手先ゴールと、軌道と、ロボットが通る空間のボクセル表現と、をデータベースに蓄積する(ステップS104)。ここでは、手先ゴールをキーとしたKdtreeを利用することができ、高速検索化を実現できる。Kdtree、すなわち、k次元木とは、k次元の空間内のいくつかの点の組織化のため計算機科学で使用されるデータ構造である。
【0025】
次に
図6を参照して、本実施の形態にかかるロボットの動作計画について説明する。
3次元点群(3次元環境情報)を取得する(ステップS201)。
図7に示すように、ロボット1は、環境センサ6(
図1)を、ロボットが動く方向、つまり、目標手先位置の方向に向けて、ロボットが動作する予定の空間の障害物を表す3次元環境情報を検出して取得する。次に、3次元点群をボクセル化する(ステップS202)。ボクセルグリッドフィルタを通して点群を減らし、残った点のxyzから有効なボクセルを選択する。
【0026】
次に、手先目標をキーとして、データベース10を検索して、1つ又は複数の候補軌道と、軌道を通る空間のボクセル表現を取得する(ステップS203)。前述したように、データベース10では、Kdtreeが構築されているので、候補軌道と、軌道を通る空間のボクセルをすぐに検索することができる。
【0027】
最後に、ボクセル化された3次元点群と、候補軌道ごとにロボットが通る空間のボクセルのビット演算により、ロボットが通る空間と環境の障害物との干渉をチェックする(ステップS204)。ボクセル化された3次元点は、動作計画のステップS201、S202で取得したものである。ロボットが通る空間のボクセルは、事前学習のステップS103で取得したものである。
図8は、干渉チェックを説明する図である。
図8において、ボクセル化のSwept Volume(V
i・j・k)は、ロボットが通る空間のボクセルを示し、実世界のVoxel Map(M
i・j・k)は、ボクセル化された3次元点群を示す。衝突判定は以下の通りに行われる。すなわち、
V・M=1となる
xyzが存在する場合には、衝突が発生する。
すべての
ijkでV・M=0の場合には、(衝突が発生しないので)動作が許可できる。
これにより、障害物と衝突しない軌道を、軌道候補から選択することができる。
【0028】
以上説明した動作計画(S201~S204)によれば、処理時間の平均値は、0.074秒となり、Motion Planning Networksの軌道生成(約0.11秒)に比べて、処理時間を3割程度短縮し、高速化することができる。
【0029】
以上説明した実施の形態1にかかる軌道生成装置は、様々な手先目標指令を生成する機能と、様々な環境形状を生成する機能と、手先日標指令と環境形状から軌道計画を行う機能(低速でもよい)と、ロボットの形状情報及び軌道とロボット形状から、ロボットが通る空間のボクセル表現を算出する機能と、を有する。また、本実施の形態にかかるデータベースは、手先日標指令、軌道、ロボットが通る空間を蓄積し、手先日標指令をキーとして、軌道と、ロボットが通る空間と、を出力する。さらに、本実施の形態にかかる軌道生成装置は、環境センサ等を介して、3次元環境情報を取得する機能と、3次元環境情報のボクセル表現を算出する機能と、3次元環境情報のボクセル表現とロボットが通る空間の重なりがあるかをビット演算により判定(比較)する機能(干渉チェック機能)を有する。
【0030】
このように、データベースからの軌道候補の探索は、既存の軌道計画よりも高速である。また、ロボットの通る空間と3次元環境の重なりをビット演算で判定するため、軌道候補が環境と衝突しないかについても高速に判定できる。これらを合わせると、環境と衝突しない軌道が高速に生成される
【0031】
<実施の形態2>
図9及び
図10を参照して実施の形態2にかかる事前学習及び学習計画を説明する。
図9及び
図10では、実施の形態1(
図3及び
図6)と同一の処理は、適宜説明を省略する。
【0032】
図9を参照して、本実施の形態にかかるロボットの事前学習について説明する。
まず、シミュレータで適当な環境を構築する(ステップS301)。次に、任意の手先ゴール(目標地点)を指定し、軌道を計画する(ステップS302)。次に、計画された軌道に基づいて、ロボットが通る空間のボクセル表現を計算する(ステップS303)。以上のステップS301~S303は、実施の形態1の事前計画のステップS101~S103と同様に行われる。
【0033】
シミュレータ上の3次元点群をボクセル化する(ステップS304)。ここでのボクセル化は、実施の形態1の動作計画のステップS202と同じように行う。
【0034】
手先ゴールと環境形状を入力し、軌道とロボットが通る空間を出力するニューラルネットワークの教師付き学習を実施する(ステップS305)。ここでは、Motion Planning Networksの軌道生成手順に基づき、適宜改良して行ってもよい。様々な軌道を出力できるように、軌道長やロボットが通る空間のボクセル数をニューラルネットワークに入力してもよい。
【0035】
図10を参照して、本実施の形態にかかるロボットの動作計画について説明する。
3次元点群を取得する(ステップS401)。次に、3次元点群をボクセル化する(ステップS402)。以上のステップS401、S402は、実施の形態1の動作計画のステップS201、S202と同様に行われる。
【0036】
次に、手先ゴールとボクセル化された3次元点群をニューラルネットワークに入力して、軌道と、ロボットが通る空間のボクセルを取得する(ステップS403)。前述したように、目標軌道長や、ロボットが通る空間のボクセル数を複数準備し、候補軌道と、ロボットが通る空間のボクセル表現の複数のペアを出力することもできる。
【0037】
最後に、ボクセル化された3次元点群と、候補軌道に沿ってロボットが通る空間のボクセルのビット演算により、ロボットが通る空間と環境のボクセル情報との干渉をチェックする(ステップS404)。
【0038】
以上説明した実施の形態1にかかる軌道生成装置は、様々な手先日標指令を生成する機能と、様々な環境形状を生成する機能と、手先日標指令と環境形状から軌道計画を行う機能(低速でもよい)と、ロボットの形状情報及び軌道とロボット形状から、ロボットが通る空間のボクセル表現を算出する機能と、を有する。また、本実施の形態にかかる軌道生成装置は、手先日標指令と環境形状を入力、軌道とロボットが通る空間を出力とするニューラルネットワークの教師付き学習と、手先日標指令と環境形状から、軌道とロボットが通る空間を出力する学習済みモデルと、3次元環境情報を取得する機能と、3次元環境情報のボクセル表現を算出する機能と、3次元環境情報のボクセル表現とロボットが通る空間の重なりがあるかをビット演算により判定(比較)する機能と、を有する。
【0039】
Motion Planning Networksでは、オートエンコーダで行っている3次元環境の特徴抽出を、ボクセル表現で行った方が性能が良くなる可能性があり、また、軌道が推定された後の衝突判定も出来るので便利となる可能性がある。
【0040】
さらに、本実施の形態に軌道生成装置は、実施の形態1に対して、機械学習を利用することで、より幅広い環境と手先目標指令に対応できるようになる場合がある。また、軌道候補が環境と衝突しないかの判定を機械学習による推定とは別に行っているため、環境と衝突しないことが保証できる。機械学習による軌道とロボットが通る空間の推定に要する時間は、データベースからの探索と同程度、もしくはわずかに劣る程度だと考えられ十分に高速に、環境と衝突しない軌道が生成され得る。
【0041】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0042】
また、以上で説明した複数の例は、適宜組み合わせて実施されることもできる。
【0043】
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【0044】
1 自律移動ロボット
2 ロボット本体
3 移動装置
4 把持操作装置
5 制御装置
5a CPU
5b メモリ
5c インターフェイス部
6 環境センサ
7 操作端末
10 データベース
41 把持部
42 関節部
43 リンク
44 手先