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

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

▶ 国立大学法人信州大学の特許一覧 ▶ トヨタ自動車株式会社の特許一覧

特開2024-142918軌道生成システム、軌道生成方法、及び、プログラム
<>
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図1
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図2
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図3
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図4
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図5
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図6
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図7
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図8
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図9
  • 特開-軌道生成システム、軌道生成方法、及び、プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024142918
(43)【公開日】2024-10-11
(54)【発明の名称】軌道生成システム、軌道生成方法、及び、プログラム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20241003BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023055327
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】504180239
【氏名又は名称】国立大学法人信州大学
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】山崎 公俊
(72)【発明者】
【氏名】岩崎 拓也
(72)【発明者】
【氏名】竹下 佳佑
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS34
3C707BS10
3C707BS27
3C707CS08
3C707CV06
3C707CW06
3C707KS12
3C707KT03
3C707MS07
3C707MS08
3C707MS09
3C707WA03
3C707WA16
3C707WK04
(57)【要約】
【課題】サービス環境との接触を回避しつつタスクを完遂できるモバイルマニピュレータの軌道を短時間で生成する。
【解決手段】接触判定部22は、モバイルマニピュレータ1がタスクを完了するまでの間にリアルタイムに取得した三次元データに基づくサービス環境とモバイルマニピュレータ1が接触するか否か判定する。回避動作データ抽出部23は、接触すると接触判定部22が判定した場合、複数の候補動作データから、リアルタイムに取得した三次元データに基づくサービス環境と接触しないSVを有する動作データを回避動作データとして抽出する。遷移軌道生成部24は、初期動作データの軌道Qから回避動作データの軌道Qへ遷移する遷移軌道を生成する。回避動作データ抽出部23は、ニューラルネットワークにより構築してもよい。
【選択図】図10
【特許請求の範囲】
【請求項1】
目標手先位置姿勢と、モバイルマニピュレータの手先位置姿勢を当該目標手先位置姿勢に移動させるための前記モバイルマニピュレータの軌道と、当該軌道に従って前記モバイルマニピュレータを動作させるときに前記モバイルマニピュレータが描く三次元形状である掃引空間と、を含む動作データを複数記憶する記憶部と、
第1のタイミングで環境の三次元データを取得し、タスクに対応する前記目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データであって、前記第1のタイミングで取得した前記三次元データに基づく前記環境と接触しない掃引空間を有する動作データを前記記憶部から複数抽出する第1動作データ抽出部と、
前記第1動作データ抽出部が抽出した前記複数の動作データの何れか1つである第1動作データに基づいて、前記タスクを開始するタスク開始部と、
前記環境の三次元データを前記第1のタイミングよりも後にリアルタイムに取得することにより、前記モバイルマニピュレータが前記タスクを完了するまでの間にリアルタイムに取得した前記三次元データに基づく環境と前記モバイルマニピュレータが接触するか否か判定する接触判定部と、
接触すると前記接触判定部が判定した場合、前記第1動作データ抽出部が抽出した前記複数の動作データから、リアルタイムに取得した前記三次元データに基づく環境と接触しない掃引空間を有する動作データを第2動作データとして抽出する第2動作データ抽出部と、
前記第1動作データの軌道から前記第2動作データの軌道へ遷移する遷移軌道を生成する遷移軌道生成部と、
を含む、
軌道生成システム。
【請求項2】
前記遷移軌道の軌道始点と軌道終点の間の差分は所定値未満である、
請求項1に記載の軌道生成システム。
【請求項3】
前記遷移軌道の軌道始点から見た前記遷移軌道の軌道終点の方向と、前記第2動作データの軌道の遷移完了直後の方向と、が成す角度が所定値未満である、
請求項1に記載の軌道生成システム。
【請求項4】
前記遷移軌道の軌道終点は、
前記遷移軌道の軌道始点と前記軌道終点の間の差分が所定値未満となる第1の条件と、
前記軌道始点から見た前記軌道終点の方向と、前記第2動作データの軌道の遷移完了直後の方向と、が成す角度が所定値未満となる第2の条件と、
を同時に満たす複数の軌道点のうち最も下流側の軌道点である、
請求項1に記載の軌道生成システム。
【請求項5】
前記遷移軌道生成部は、前記モバイルマニピュレータの連続する2つの軌道点の差分を小さくするための第1コスト関数と、リアルタイムに取得した前記三次元データに基づく環境を回避するための第2コスト関数と、に基づく二次計画法により前記遷移軌道を生成する、
請求項1に記載の軌道生成システム。
【請求項6】
前記遷移軌道生成部は、前記モバイルマニピュレータの連続する2つの軌道点の差分を、前記モバイルマニピュレータがリアルタイムに取得した前記三次元データに基づく環境を回避するための回避量に基づいて重み付けし、重み付け後の差分の総和を求めることにより前記第1コスト関数を演算する、
請求項5に記載の軌道生成システム。
【請求項7】
前記遷移軌道生成部は、前記モバイルマニピュレータとリアルタイムに取得した前記三次元データに基づく環境との重なり量の対数に基づいて、前記モバイルマニピュレータがリアルタイムに取得した前記三次元データに基づく環境を回避するための回避量を演算する、
請求項5に記載の軌道生成システム。
【請求項8】
コンピュータが、目標手先位置姿勢と、モバイルマニピュレータの手先位置姿勢を当該目標手先位置姿勢に移動させるための前記モバイルマニピュレータの軌道と、当該軌道に従って前記モバイルマニピュレータを動作させるときに前記モバイルマニピュレータが描く三次元形状である掃引空間と、を含む動作データを複数記憶する記憶部を参照して軌道を生成する軌道生成方法であって、
第1のタイミングで環境の三次元データを取得し、タスクに対応する前記目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データであって、前記第1のタイミングで取得した前記三次元データに基づく前記環境と接触しない掃引空間を有する動作データを前記記憶部から複数抽出し、
前記複数の動作データの何れか1つである第1動作データに基づいて、前記タスクを開始し、
前記環境の三次元データを前記第1のタイミングよりも後にリアルタイムに取得することにより、前記モバイルマニピュレータが前記タスクを完了するまでの間にリアルタイムに取得した前記三次元データに基づく環境と前記モバイルマニピュレータが接触するか否か判定し、
接触すると判定した場合、前記複数の動作データから、リアルタイムに取得した前記三次元データに基づく環境と接触しない掃引空間を有する動作データを第2動作データとして抽出し、
前記第1動作データの軌道から前記第2動作データの軌道へ遷移する遷移軌道を生成する、
軌道生成方法。
【請求項9】
コンピュータに、請求項8に記載の軌道生成方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、軌道生成システム、軌道生成方法、及び、プログラムに関する。
【背景技術】
【0002】
特許文献1は、モバイルマニピュレータの軌道生成装置を開示している。具体的には、複数の動作データを格納するデータベースを利用する。
【0003】
各動作データは、目標手先位置姿勢と、モバイルマニピュレータの手先位置姿勢を当該目標手先位置姿勢に移動させるためのモバイルマニピュレータの軌道と、当該軌道に従ってモバイルマニピュレータを動作させるときのモバイルマニピュレータが横切る空間である掃引空間(Swept Volume:SV)と、の組み合わせから構成される。
【0004】
モバイルマニピュレータのタスク開始時においては、サービス環境の三次元点群データを取得し、タスクに対応する目標手先位置姿勢をキーとしてデータベース内で検索を実行し、タスクに対応する目標手先位置姿勢に近い目標手先位置姿勢を有する動作データであって、サービス環境と干渉しない掃引空間を有する動作データを抽出する。
【0005】
そして、モバイルマニピュレータは、抽出した動作データの軌道に従って動作する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2021-024019号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、上記特許文献1の構成では、モバイルマニピュレータがタスクを開始した後のモバイルマニピュレータの移動中に、モバイルマニピュレータと接触する虞のある未知の障害物が存在しないことを前提としている。
【0008】
従って、モバイルマニピュレータがタスクを実行した後のモバイルマニピュレータの移動中に、モバイルマニピュレータが時々刻々と変化するサービス環境に接触すると判定した場合、データベースから適切な動作データを抽出する抽出処理を改めて実行しなければならないだろう。即ち、当該抽出処理が完了するまで、モバイルマニピュレータは長時間の待機を余儀なくされる。
【0009】
本発明の目的は、モバイルマニピュレータがサービス環境に接触すると判定したとき、当該サービス環境との接触を回避しつつタスクを完遂できるモバイルマニピュレータの軌道を短時間で生成する技術を提供することにある。
【課題を解決するための手段】
【0010】
本開示の第1の観点によれば、
目標手先位置姿勢と、モバイルマニピュレータの手先位置姿勢を当該目標手先位置姿勢に移動させるための前記モバイルマニピュレータの軌道と、当該軌道に従って前記モバイルマニピュレータを動作させるときに前記モバイルマニピュレータが横切る空間である掃引空間と、を含む動作データを複数記憶する記憶部と、
第1のタイミングで環境の三次元データを取得し、タスクに対応する前記目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データであって、前記第1のタイミングで取得した前記三次元データに基づく前記環境と接触しない掃引空間を有する動作データを前記記憶部から複数抽出する第1動作データ抽出部と、
前記第1動作データ抽出部が抽出した前記複数の動作データの何れか1つである第1動作データに基づいて、前記タスクを開始するタスク開始部と、
前記環境の三次元データを前記第1のタイミングよりも後にリアルタイムに取得することにより、前記モバイルマニピュレータが前記タスクを完了するまでの間にリアルタイムに取得した前記三次元データに基づく環境と前記モバイルマニピュレータが接触するか否か判定する接触判定部と、
接触すると前記接触判定部が判定した場合、前記第1動作データ抽出部が抽出した前記複数の動作データから、リアルタイムに取得した前記三次元データに基づく環境と接触しない掃引空間を有する動作データを第2動作データとして抽出する第2動作データ抽出部と、
前記第1動作データの軌道から前記第2動作データの軌道へ遷移する遷移軌道を生成する遷移軌道生成部と、
を含む、
軌道生成システムが提供される。
以上の構成によれば、モバイルマニピュレータがタスクを開始した後のモバイルマニピュレータの移動中に、モバイルマニピュレータがサービス環境に接触すると判定したとき、当該サービス環境との接触を回避しつつタスクを完遂できるモバイルマニピュレータの軌道を短時間で生成することができる。
【0011】
前記遷移軌道の軌道始点と軌道終点の間の差分は所定値未満であってもよい。以上の構成によれば、前記遷移軌道を生成する生成処理が安定化する。
【0012】
前記遷移軌道の軌道始点から見た前記遷移軌道の軌道終点の方向と、前記第2動作データの軌道の遷移完了直後の方向と、が成す角度が所定値未満であってもよい。以上の構成によれば、前記遷移軌道から前記第2動作データの軌道に乗り換えるときの前記モバイルマニピュレータの滑らかな動作を実現できる。
【0013】
前記遷移軌道の軌道終点は、
前記遷移軌道の軌道始点と前記軌道終点の間の差分が所定値未満となる第1の条件と、
前記軌道始点から見た前記軌道終点の方向と、前記第2動作データの軌道の遷移完了直後の方向と、が成す角度が所定値未満となる第2の条件と、
を同時に満たす複数の軌道点のうち最も下流側の軌道点であってもよい。
以上の構成によれば、前記遷移軌道を生成する生成処理が安定化し、前記遷移軌道から前記第2動作データの軌道に乗り換えるときの前記モバイルマニピュレータの滑らかな動作を実現できると共に、前記モバイルマニピュレータがタスクを実行するための所要時間を短縮することができる。
【0014】
前記遷移軌道生成部は、前記モバイルマニピュレータの連続する2つの軌道点の差分を小さくするための第1コスト関数と、リアルタイムに取得した前記三次元データに基づく環境を回避するための第2コスト関数と、に基づく二次計画法により前記遷移軌道を生成してもよい。
以上の構成によれば、前記遷移軌道を合理的に生成することができる。
【0015】
前記遷移軌道生成部は、前記モバイルマニピュレータの連続する2つの軌道点の差分を、前記モバイルマニピュレータがリアルタイムに取得した前記三次元データに基づく環境を回避するための回避量に基づいて重み付けし、重み付け後の差分の総和を求めることにより前記第1コスト関数を演算してもよい。
以上の構成によれば、前記モバイルマニピュレータとリアルタイムに取得した三次元点群データに基づくサービス環境との接触を回避するように遷移軌道を生成するに際し、連続する2つの軌道点が過度に離れてしまうことを抑制できる。
【0016】
前記遷移軌道生成部は、前記モバイルマニピュレータとリアルタイムに取得した前記三次元データに基づく環境との重なり量の対数に基づいて、前記モバイルマニピュレータがリアルタイムに取得した前記三次元データに基づく環境を回避するための回避量を演算してもよい。
以上の構成によれば、前記二次計画法による前記遷移軌道の生成処理が安定化する。
【0017】
本開示の第2の観点によれば、
コンピュータが、目標手先位置姿勢と、モバイルマニピュレータの手先位置姿勢を当該目標手先位置姿勢に移動させるための前記モバイルマニピュレータの軌道と、当該軌道に従って前記モバイルマニピュレータを動作させるときに前記モバイルマニピュレータが横切る空間である掃引空間と、を含む動作データを複数記憶する記憶部を参照して軌道を生成する軌道生成方法であって、
第1のタイミングで環境の三次元データを取得し、タスクに対応する前記目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データであって、前記第1のタイミングで取得した前記三次元データに基づく前記環境と接触しない掃引空間を有する動作データを前記記憶部から複数抽出し、
前記複数の動作データの何れか1つである第1動作データに基づいて、前記タスクを開始し、
前記環境の三次元データを前記第1のタイミングよりも後にリアルタイムに取得することにより、前記モバイルマニピュレータが前記タスクを完了するまでの間にリアルタイムに取得した前記三次元データに基づく環境と前記モバイルマニピュレータが接触するか否か判定し、
接触すると判定した場合、前記複数の動作データから、リアルタイムに取得した前記三次元データに基づく環境と接触しない掃引空間を有する動作データを第2動作データとして抽出し、
前記第1動作データの軌道から前記第2動作データの軌道へ遷移する遷移軌道を生成する、
軌道生成方法が提供される。
以上の方法によれば、モバイルマニピュレータがタスクを開始した後のモバイルマニピュレータの移動中に、モバイルマニピュレータがサービス環境に接触すると判定したとき、当該サービス環境との接触を回避しつつタスクを完遂できるモバイルマニピュレータの軌道を短時間で生成することができる。
【0018】
コンピュータに、上記の軌道生成方法を実行させるプログラムが提供される。
【発明の効果】
【0019】
本開示によれば、モバイルマニピュレータがタスクを開始した後のモバイルマニピュレータの移動中に、モバイルマニピュレータがサービス環境に接触すると判定したとき、当該サービス環境との接触を回避しつつタスクを完遂できるモバイルマニピュレータの軌道を短時間で生成することができる。
【図面の簡単な説明】
【0020】
図1】モバイルマニピュレータの斜視図である。
図2】モバイルマニピュレータの機能ブロック図である。
図3】管理サーバの機能ブロック図である。
図4】基本データベースのデータ構造図である。
図5】候補データベースのデータ構造図である。
図6】初期SV、回避SV、遷移SVを対比させるための図である。
図7】回避方向の説明図である。
図8】探索範囲の説明図である。
図9】軌道点と障害物との位置関係を示す図である。
図10】軌道生成システムの制御フローである。
【発明を実施するための形態】
【0021】
以下、本開示を適用した具体的な実施形態について、図面を参照しながら詳細に説明する。ただし、本開示が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載および図面は、適宜、簡略化されている。
【0022】
まず、図1を参照して、モバイルマニピュレータ1を説明する。モバイルマニピュレータ1は、いわゆるHSR(Human Support Robot)である。モバイルマニピュレータ1は、食器の後片付けをするタスクや、収納棚から物品を取り出すタスク、物品を収容棚に収容するタスク、その他のタスクを自律的に実行可能に構成されている。
【0023】
モバイルマニピュレータ1は、上記のタスクを実行するために、移動台車2と、移動台車2の上に搭載されるロボット3と、を含む。
【0024】
移動台車2は、典型的には、複数の車輪と駆動モータを備える。駆動モータにより複数の車輪の少なくとも1つを回転させることにより、モバイルマニピュレータ1のサービス環境内での移動が実現される。
【0025】
サービス環境は、環境の一具体例である。環境は、モバイルマニピュレータ1から見た外部環境と言及することもできる。
【0026】
ロボット3は、ロボット本体4と、ロボット本体4によって支持される多関節型のマニピュレータ5と、マニピュレータ5の先端に設けられるエンドエフェクタ6と、環境センサ7と、制御部8と、を備える。
【0027】
マニピュレータ5は、上腕リンク9と前腕リンク10を有する。上腕リンク9は、ロボット本体4に肩関節11を介して連結している。上腕リンク9と前腕リンク10は肘関節12を介して連結している。上腕リンク9の先端には、上記のエンドエフェクタ6が手首関節13を介して連結している。
【0028】
環境センサ7は、モバイルマニピュレータ1のサービス環境を走査することにより、サービス環境の三次元点群データを制御部8に出力する。環境センサ7は、典型的には、RGB-Dカメラ、ステレオカメラ、レーザレンジファインダ、超音波センサである。三次元点群データは、三次元データの一具体例である。環境センサ7は、モバイルマニピュレータ1に搭載されることに代えて、サービス環境に設置されてもよい。モバイルマニピュレータ1が環境センサ7を備えることに加えて、サービス環境に別の環境センサが設置されてもよい。
【0029】
本実施形態において、軌道生成システム100は、モバイルマニピュレータ1と管理サーバ80を含む。軌道生成システム100は、モバイルマニピュレータ1と管理サーバ80による分散処理により成立している。しかし、管理サーバ80を省略してもよい。この場合、軌道生成システム100は、モバイルマニピュレータ1単独により実現されることになる。
【0030】
図2は、モバイルマニピュレータ1の機能ブロック図を示している。図2に示すように、制御部8は、CPU8a(Central Processing Unit)と、RAM(Random Access Memory)やROM(Read Only Memory)、SSD(Solid State Drive)を含むメモリ8b、通信インターフェース8cを備えている。そして、CPU8aがメモリ8bに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU8aなどのハードウェアを、タスク準備部20、タスク実行部21、接触判定部22、回避動作データ抽出部23、遷移軌道生成部24、軌道更新部25、として機能させる。
【0031】
図3は、管理サーバ80の機能ブロック図を示している。図3に示すように、管理サーバ80は、CPU80a(Central Processing Unit)と、RAM(Random Access Memory)やROM(Read Only Memory)、SSD(Solid State Drive)を含むメモリ80b、通信インターフェース80cを備えている。そして、CPU80aがメモリ80bに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU80aなどのハードウェアを、データベース生成部81、基本データベース82、データ受信部83、候補動作データ抽出部85、候補データベース86、として機能させる。
【0032】
図2に示すモバイルマニピュレータ1の制御部8は、通信インターフェース8cを介して管理サーバ80と双方向通信可能である。図3に示す管理サーバ80は、通信インターフェース80cを介してモバイルマニピュレータ1と双方向通信可能である。
【0033】
図3に示すデータベース生成部81は、基本データベース82を生成する。データベース生成部81は、モバイルマニピュレータ1の運用を開始する準備段階で基本データベース82を生成する。即ち、モバイルマニピュレータ1がタスクを開始する時点では基本データベース82が既に生成されているものとする。基本データベース82は、記憶部の一具体例である。
【0034】
図4には、基本データベース82のデータ構造を示している。図4に示すように、基本データベース82は、目標手先位置姿勢yと、モバイルマニピュレータ1の手先位置姿勢を当該目標手先位置姿勢yに移動させるためのモバイルマニピュレータ1の軌道Qと、当該軌道Qに従ってモバイルマニピュレータ1を動作させるときのモバイルマニピュレータ1が横切る空間である掃引空間(swept volume)(以下、単にSVと称する。)と、を含む動作データを複数記憶するデータベースである。本実施形態において、基本データベース82は、N個の動作データを記憶している。
【0035】
手先位置姿勢とは、サービス環境に固定されたサービス座標系におけるエンドエフェクタ6の位置及び姿勢を意味する。
【0036】
軌道Qは、複数の軌道点qから構成されている。複数の軌道点qは、モバイルマニピュレータ1の動作を所定のタイムステップで離散化したものである。各軌道点qは、以下の式で示すように定義される。ここで、下記式におけるθは、モバイルマニピュレータ1のマニピュレータ5の複数の関節の関節角度、モバイルマニピュレータ1の移動台車2のサービス座標系における位置及び向きを表す変数である。従って、各軌道点qは、サービス環境内におけるモバイルマニピュレータ1の状態を一義的に表現している。下記式においてNは、モバイルマニピュレータ1のモバイルマニピュレータ1の自由度と移動台車2の自由度の合計である。
【0037】
【0038】
SV(Swept Volume)は、軌道Qに従ってモバイルマニピュレータ1を動作させるときにモバイルマニピュレータ1が描く三次元形状である。換言すれば、SVは、軌道Qに従ってモバイルマニピュレータ1を動作させるときにモバイルマニピュレータ1が横切る空間である。本実施形態においてSVは、ボクセル法により表現されている。ボクセル法とは、空間や物の形状を同一の小さな立方体の組み合わせにより表現する手法である。
【0039】
データベース生成部81は、典型的には、以下のような手順により基本データベース82を生成する。即ち、まず、データベース生成部81は、例えばGazeboシミュレータなどのシミュレータでサービス環境を構築する。このとき、データベース生成部81は、サービス環境内に机や棚、物品等の障害物をランダムに配置する。次に、データベース生成部81は、目標手先位置姿勢yをランダムに設定し、当該目標手先位置姿勢yに至るまでの軌道Qを生成する。データベース生成部81は、目標手先位置姿勢yを所定のルールに基づいて設定してもよい。データベース生成部81は、例えば、モバイルマニピュレータ1の前方エリア内で目標手先位置姿勢yをランダムに設定してもよい。また、データベース生成部81は、目標手先位置姿勢yをユーザー入力に基づいて設定してもよい。データベース生成部81は、典型的には、CBiRRT(Constrained Bi-directional Rapidly-Exploring Random Tree)に基づいて軌道Qを生成する。具体的には、データベース生成部81は、シミュレータ上でモバイルマニピュレータ1の環境センサ7から出力される三次元点群データを回避するように軌道Qを設定する。そして、データベース生成部81は、目標手先位置姿勢yと軌道Q、SVを互いに関連付けた動作データを生成し、生成した動作データを基本データベース82に格納する。一例として、データベース生成部81は、数万通りの動作データを生成し、基本データベース82に格納する。
【0040】
図2に戻り、モバイルマニピュレータ1のタスク準備部20は、ユーザー端末からタスクデータを取得することをトリガーに、環境センサ7を制御することで、モバイルマニピュレータ1がタスクを開始する時点でのサービス環境の三次元点群データを環境センサ7から取得する。そして、タスク準備部20は、受信した三次元点群データを管理サーバ80に送信すると共に、タスクに対応する目標手先位置姿勢を目標データとして管理サーバ80に送信する。
【0041】
図3に示す管理サーバ80のデータ受信部83は、モバイルマニピュレータ1から三次元点群データ及び目標データを受信する。
【0042】
候補動作データ抽出部85は、第1動作データ抽出部の一具体例である。候補動作データ抽出部85は、基本データベース82から、目標データが示す目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データを抽出する。ここで、タスク毎に目標手先位置姿勢は千差万別となることから、目標データが示す目標手先位置姿勢と完全に一致する目標手先位置姿勢を有する動作データは現実として存在しない。従って、候補動作データ抽出部85は、基本データベース82から目標データが示す目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データを抽出するに際し、目標データが示す目標手先位置姿勢に近い目標手先位置姿勢を有する動作データを基本データベース82から抽出する。具体的には、候補動作データ抽出部85は、目標データが示す目標手先位置姿勢と、動作データの目標手先位置姿勢と、の差分が所定量未満であるとき、当該動作データを基本データベース82から抽出する。所定量とは、典型的には、目標手先位置について言えば30cmであり、目標手先姿勢について90度である。候補動作データ抽出部85は、目標データが示す目標手先位置姿勢を入力すると、基本データベース82から目標データが示す目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データを抽出するように学習された学習済みのニューラルネットワークにより構築してもよい。
【0043】
候補動作データ抽出部85は、基本データベース82から抽出した複数の動作データを更に絞る。具体的には、候補動作データ抽出部85は、基本データベース82から抽出した複数の動作データから、タスクの開始時におけるサービス環境と接触しないSVを有する動作データを複数抽出する。このとき、候補動作データ抽出部85は、抽出に先立って、タスクの開始時におけるサービス環境を示す三次元点群データをボクセルデータに変換する。これにより、候補動作データ抽出部85は、サービス環境を示すボクセルデータと、各動作データが有するSVのボクセルデータと、の物理的な干渉を極めて高速に判定することができる。候補動作データ抽出部85は、こうして抽出した複数の動作データを候補データベース86に候補動作データとして格納する。図5には、候補データベース86のデータ構造の一例を示している。図5に示すように、候補動作データ抽出部85は、一例として、数十通りの候補動作データを基本データベース82から抽出し、候補データベース86に格納する。このように候補データベース86に格納されている複数の候補動作データのうちどの候補動作データを使用しても、モバイルマニピュレータ1は、タスクの開始時におけるサービス環境と接触することなくタスクを完遂することができる。
【0044】
ただし、候補動作データ抽出部85による抽出は、あくまでモバイルマニピュレータ1がタスクを開始する時点で取得したサービス環境の三次元点群データに基づいている。この三次元点群データは、モバイルマニピュレータ1がタスクを開始する時点でモバイルマニピュレータ1から観測できたサービス環境の一部を表しているに過ぎない。従って、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境に接触してしまう虞がある。本実施形態では、後述するように、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境に接触してしまう虞がある場合、モバイルマニピュレータ1は、候補データベース86を再度参照してモバイルマニピュレータ1の軌道を修正する。
【0045】
モバイルマニピュレータ1がタスクを開始する時点とは、第1のタイミングの一具体例である。第1のタイミングは、モバイルマニピュレータ1がタスクを開始する時点であることに代えて、モバイルマニピュレータ1がタスクを開始する時点よりも少し前のタイミングであってもよく、タスク開始時よりも少し後のタイミングであってもよい。
【0046】
なお、候補動作データ抽出部85は、環境センサ7がサービス環境を測定することで環境センサ7が生成した三次元点群データを環境センサ7から取得する。従って、候補動作データ抽出部85が環境センサ7を含むように解釈してはならない。
【0047】
図2に戻り、タスク実行部21は、タスク開始部の一具体例である。タスク実行部21は、管理サーバ80の候補動作データ抽出部85が抽出した複数の候補動作データの何れか1つである初期動作データに基づいてタスクを開始する。具体的には、タスク実行部21は、管理サーバ80の候補データベース86を参照し、候補データベース86に格納されている複数の候補動作データから1つの候補動作データを初期動作データとして選択する。このとき、タスク実行部21は、典型的には、複数の候補動作データのうち、当該候補動作データの目標手先位置姿勢がタスクに対応する目標手先位置姿勢に最も近いものを選択する。タスク実行部21は、初期動作データの軌道Qに従ってモバイルマニピュレータ1の移動台車2及びマニピュレータ5、エンドエフェクタ6を制御する。初期動作データは、第1動作データの一具体例である。
【0048】
なお、初期動作データの目標手先位置姿勢と、タスクに対応する目標手先位置姿勢は前述するように完全には一致していない。従って、タスク実行部21は、タスクを開始するに際し、初期動作データの目標手先位置姿勢と、タスクに対応する目標手先位置姿勢と、の差分を補完する差分補完軌道を生成してもよい。
【0049】
次に、接触判定部22は、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境の三次元点群データをリアルタイムに取得することにより、モバイルマニピュレータ1がタスクを完了するまでの間にモバイルマニピュレータ1が、リアルタイムに取得した三次元点群データに基づくサービス環境と接触するか否か判定する。換言すれば、接触判定部22は、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境の三次元点群データをリアルタイムに取得することにより、モバイルマニピュレータ1がタスクを完了するまでの間にモバイルマニピュレータ1が、「最新の」三次元点群データに基づくサービス環境と接触するか否か判定する。例えば、モバイルマニピュレータ1がタスクを開始した時点でモバイルマニピュレータ1の環境センサ7から見て死角だった領域に物品があり、当該物品が初期動作データの軌道Q上にあるとする。この場合、モバイルマニピュレータ1が初期動作データの軌道Qに従って動作している限り、モバイルマニピュレータ1は、やがて当該物品と接触することになるだろう。
【0050】
モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境の三次元点群データをリアルタイムに取得することは、サービス環境の三次元データをモバイルマニピュレータ1がタスクを開始する時点よりも後にリアルタイムに取得することの一具体例である。即ち、接触判定部22は、モバイルマニピュレータ1がタスクを開始した後であってモバイルマニピュレータ1の動作停止中にサービス環境の三次元点群データをリアルタイムに取得してもよい。
【0051】
接触判定部22は、具体的には以下のように動作する。即ち、接触判定部22は、環境センサ7を制御することにより、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中に、所定のインターバルで、サービス環境の三次元点群データを取得する。そして、接触判定部22は、高速判定のために、取得した三次元点群データをボクセルデータに変換する。接触判定部22は、変換後のボクセルデータと、初期動作データのSVのボクセルデータと、を比較することにより、モバイルマニピュレータ1がタスクを完了するまでの間にモバイルマニピュレータ1が、リアルタイムに取得した三次元点群データに基づくサービス環境と接触するか否か判定する。
【0052】
なお、接触判定部22は、環境センサ7がサービス環境を測定することで環境センサ7が生成した三次元点群データを環境センサ7から取得する。従って、接触判定部22が環境センサ7を含むように解釈してはならない。
【0053】
接触すると接触判定部22が判定した場合、回避動作データ抽出部23は、管理サーバ80の候補データベース86を参照し、候補データベース86に格納されている複数の候補動作データから、リアルタイムに取得した三次元点群データに基づくサービス環境と接触しないSVを有する候補動作データを回避動作データとして抽出する。換言すれば、回避動作データ抽出部23は、管理サーバ80の候補データベース86を参照し、候補データベース86に格納されている複数の候補動作データから、「最新の」三次元点群データに基づくサービス環境と接触しないSVを有する候補動作データを回避動作データとして抽出する。回避動作データ抽出部23は、第2動作データ抽出部の一具体例である。回避動作データ抽出部23は、具体的には、以下のように動作する。
【0054】
即ち、回避動作データ抽出部23は、接触判定部22が生成した最新のボクセルデータと、各候補動作データのSVのボクセルデータと、を比較することにより、複数の候補動作データから、リアルタイムに取得した三次元点群データに基づくサービス環境と接触しないSVを有する候補動作データを選択し、選択した候補動作データを回避動作データとして抽出する。なお、リアルタイムに取得した三次元点群データに基づくサービス環境と接触しないSVを有する候補動作データが複数ある場合、回避動作データ抽出部23は、何らかのルールに従って、複数の候補動作データの何れか1つを選択することになるだろう。例えば、回避動作データ抽出部23は、初期動作データのSVと最も近いSVを有する候補動作データを選択してもよい。回避動作データ抽出部23は、リアルタイムに取得した最新の三次元点群データを入力すると、リアルタイムに取得した三次元点群データに基づくサービス環境と接触しないSVを有する候補動作データを回避動作データとして抽出するように学習された学習済みのニューラルネットワークにより構築してもよい。
【0055】
遷移軌道生成部24は、初期動作データの軌道Qから回避動作データの軌道Qへ遷移する遷移軌道を二次計画法により生成する。遷移軌道の軌道始点は、初期動作データの軌道Qに含まれる複数の軌道点の何れかである。遷移軌道の軌道終点は、回避動作データの軌道Qに含まれる複数の軌道点の何れかである。図6には、初期動作データの軌道QのSVを初期SVとして示し、回避動作データの軌道QのSVを回避SVとして示し、遷移軌道のSVを遷移SVとして示している。また、図6には、遷移軌道の軌道始点qstartと軌道終点qendを併せて示している。そして、図6には、モバイルマニピュレータ1がタスクを開始する時点ではサービス環境に存在せず、モバイルマニピュレータ1がタスクを開始した後に初めてサービス環境に出現した障害物を併せて図示している。遷移軌道生成部24が遷移軌道を生成する詳細な演算処理は後述する。
【0056】
軌道更新部25は、モバイルマニピュレータ1がタスクを開始してからタスクを完了するまでの軌道を、回避動作データの軌道Qと遷移軌道に基づいて更新する。具体的には、モバイルマニピュレータ1がタスクを開始してからタスクを完了するまでの軌道は、更新前では初期動作データの軌道Qであった。軌道更新部25は、モバイルマニピュレータ1がタスクを開始してからタスクを完了するまでの軌道を、初期動作データの軌道Qと、遷移軌道と、回避動作データの軌道Qと、をこの記載順に連結した軌道とする。詳しくは、モバイルマニピュレータ1が遷移軌道の軌道始点qstartに至るまではモバイルマニピュレータ1が初期動作データの軌道Qに従って動作するものとし、モバイルマニピュレータ1が遷移軌道の軌道始点qstartに至ったらモバイルマニピュレータ1が遷移軌道に従って動作するものとし、モバイルマニピュレータ1が遷移軌道の軌道終点qendに至ったらモバイルマニピュレータ1が回避動作データの軌道Qに従って動作するものとする。
【0057】
次に、遷移軌道生成部24が遷移軌道を生成する生成処理を詳細に説明する。まず、遷移軌道生成部24は、まず、遷移軌道の軌道始点qstart及び軌道終点qendを決定し、次に、遷移軌道の軌道始点qstart及び軌道終点qendを連結する遷移軌道を生成する。
【0058】
<遷移軌道の軌道始点qstart
遷移軌道の軌道始点qstartは、下記(1)及び(2)を同時に満たす軌道点とする。
(1)接触判定部22により接触があると判定した時点から所定時間経過したときに、初期動作データの軌道Qに従って動作しているモバイルマニピュレータ1が到達する軌道点よりも下流の、初期動作データの軌道Qの軌道点であること。
(2)初期動作データの軌道Qに従って動作しているモバイルマニピュレータ1がリアルタイムに取得した三次元点群データに基づくサービス環境に接触するときの軌道点よりも上流の、初期動作データの軌道Qの軌道点であること。
【0059】
即ち、遷移軌道の軌道始点qstartを障害物の近くに設定すれば、遷移軌道を生成する生成処理のための時間を稼げるので、モバイルマニピュレータ1の移動を停止させることなくモバイルマニピュレータ1が遷移軌道に乗り移ることができる。これに対し、遷移軌道の軌道始点qstartを障害物の遠くに設定すれば、空間的に滑らかな遷移軌道が実現される。
【0060】
<遷移軌道の軌道終点qend
遷移軌道の軌道終点qendをどのように決定するかは重要な課題である。即ち、モバイルマニピュレータ1が遷移軌道に従って動作するときに目標手先位置姿勢から遠ざかるように後退するようでは、モバイルマニピュレータ1がタスクを短時間で完遂できなくなる。従って、軌道更新部25は、回避動作データの軌道Qに含まれる複数の軌道点から下記式に基づいて軌道終点qendの候補を絞り込む。
【0061】
【0062】
ここで、Q’は、軌道終点qendの候補となり得る複数の軌道点の集合である。qは、回避動作データの軌道Qのi番目の軌道点である。Qは、回避動作データの軌道Qである。qstartは、遷移軌道の軌道始点qstartである。
【0063】
軌道終点qendの候補を絞り込む第1の条件は、距離による制限である。即ち、軌道始点qstartと軌道点qiの間の差分が所定値d以上である場合、当該軌道点qは候補から除外する。端的に言えば、軌道始点qstartにおけるモバイルマニピュレータ1の位置と軌道終点qendにおけるモバイルマニピュレータ1の位置が離れすぎている場合、二次計画法による安定した遷移軌道の生成が困難になるからである。裏を返せば、上記第1の条件を満たすように軌道終点qendの候補を絞り込めば、二次計画法による安定した遷移軌道の生成が実現される。
【0064】
軌道終点qendの候補を絞り込む第2の条件は、遷移軌道から回避動作データの軌道Qに乗り移るときのモバイルマニピュレータ1の滑らかな動作を実現するための条件である。即ち、遷移軌道の軌道始点qstartから見た軌道点qの方向と、回避動作データの軌道Qの遷移完了直後の方向と、が成す角度が90度を超える場合、当該軌道点qは候補から除外する。
【0065】
そして、遷移軌道生成部24は、絞り込まれた集合Q’の中で最も下流側の軌道点qを軌道終点qendに決定する。これにより、モバイルマニピュレータ1がタスクを実行するための所要時間を短縮することができる。仮に、上記式を満たす軌道点qが存在しない場合、遷移軌道生成部24は、上記式を満たす軌道点qが出現するまで所定値dを徐々に大きくすればよい。
【0066】
<遷移軌道の生成>
次に、遷移軌道生成部24は、遷移軌道の軌道始点qstart及び軌道終点qendの間の遷移軌道を二次計画法により生成する。
【0067】
即ち、遷移軌道生成部24は、下記式(1)で示す目的関数を最小化することで、遷移軌道の軌道始点qstart及び軌道終点qendを連結する遷移軌道を生成する。
【0068】
【0069】
ここで、f(x)は、モバイルマニピュレータ1の動作を小さくするためのポテンシャル関数である。即ち、このポテンシャル関数は、モバイルマニピュレータの連続する2つの軌道点の差分を小さくするためのポテンシャル関数である。このポテンシャル関数は、第1コスト関数の一具体例である。また、g(x)は、障害物回避のためのペナルティ関数である。即ち、ペナルティ関数は、モバイルマニピュレータ1とリアルタイムに取得した三次元点群データに基づくサービス環境との干渉深さを小さくするためのペナルティ関数である。このペナルティ関数は、第2コスト関数の一具体例である。μは、任意の定数であって、2つの目的関数のバランスを調整する。
【0070】
上記式(1)の変数xは、遷移軌道xを意味する。遷移軌道xは、下記式のように、複数の軌道点qの集合である。
【0071】
【0072】
ここで、qは、遷移軌道xにおけるi番目の軌道点である。Tは、遷移軌道xのタイムステップ数である。遷移軌道生成部24は、遷移軌道xのSVがリアルタイムに取得した三次元点群データに基づくサービス環境に接触しなくなるまで遷移軌道xを更新することにより、遷移軌道xを生成する。
【0073】
(ペナルティ関数)
図7は、ボクセル空間において、モバイルマニピュレータ1のリンクが障害物と干渉している様子と、この干渉時におけるモバイルマニピュレータ1のリンクの望ましい回避方向と、を示す図である。ここで、本実施形態の環境センサ7は、障害物の表面のみを検出するものであり、障害物の表面よりも内側の部分は検出できないことに留意されたい。以降、障害物の表面が存在するボクセルを障害物ボクセルと称し、モバイルマニピュレータ1のリンクが存在するボクセルをリンクボクセルと称する。障害物ボクセルとリンクボクセルの重なっている部分は図7に示す通りである。
【0074】
遷移軌道生成部24は、障害物回避のためのペナルティ関数を決定するために、図7の回避方向vavoid(l,t)及びその方向への回避量sdltを求める。ここで、添え字のスモールLはリンク番号であり、tはタイムステップの番号である。
【0075】
まず、遷移軌道生成部24は、以下のような手順で上記の回避方向vavoid(l,t)を決定する。即ち、遷移軌道生成部24は、回避方向vavoid(l,t)をボクセルの探索により決定する。ボクセルの探索は各リンクボクセルを中心とした所定の範囲にて行う。探索範囲はボクセルの一辺を1としたとき、中心のボクセルからL1ノルムがd以下となる範囲とする。ここでdは任意の定数である。図8には、二次元平面における探索範囲を示している。遷移軌道生成部24は、この探索を全てのリンクボクセルに対して行う。そして、遷移軌道生成部24は、回避方向vavoid(l,t)を下記式(3)に従って決定する。
【0076】
【0077】
ここで、Mltは、tステップ目のスモールL個目のリンクについて探索を行ったとき、探索したボクセルが障害物ボクセルと重複した重なり数であり、viは探索範囲の中心のリンクボクセルから障害物ボクセルへの方向の単位ベクトルである。上記式(3)において、viと逆方向のベクトルを加算していき、その総和を自身のノルムで除算することで単位ベクトルに変換している。これにより、障害物が存在する方向から離れるための回避方向vavoid(l,t)が得られる。
【0078】
次に、遷移軌道生成部24は、以下のような手順で、上記回避方向への回避量sdltを求める。即ち、障害物を避けるための回避量sdltは,障害物とリンクとの干渉の深度(干渉深さ)により求める方法が考えられるが、実際は障害物の表面のみしかボクセル化できない。この場合、単純な干渉計算では干渉の深度を算出することは難しい。そこで、リンクボクセルと重なっている障害物ボクセルの数Cltを用いて回避量sdltを決定する。Clt図7を例にすると“重なり”で示すボクセルの総数に相当する。そして、遷移軌道生成部24は、回避量sdltを下記式(4)に従って決定する。
【0079】
【0080】
ここで、aとbは任意の定数である。右辺で対数を使用している理由は、モバイルマニピュレータ1のリンクが障害物と大きく干渉する場合にCltの値が急激に大きくなることにより、回避量sdltが同様に過大となって最小化演算(最適化演算)が不安定になるのを防ぐためである。
【0081】
上記の回避方向vavoid(l,t)及び回避量sdltを用いて、ペナルティ関数g(x)は、下記式(5)で定義される。
【0082】
【0083】
ここで、Δrltは最適化後のリンクの位置変化量であり、下記式(6)で近似される。
【0084】
【0085】
ここで、qtダッシュは最適化前のリンクの関節角度であり、Jlt(qtダッシュ)はリンクの位置についてのヤコビ行列である。上記ペナルティ関数は、最適化によるリンクの位置変化量の回避方向vavoid(l,t)成分が回避量sdltに足りない量の総和となっている。つまり、リンクの位置変化量が設定した回避量sdltに違反した量ともいえる。これをペナルティ関数として二次計画法における目的関数とすることで、障害物と接触しない遷移軌道を生成することができる。
【0086】
(ポテンシャル関数)
一方で、動作のポテンシャル関数は、二つの役割を持っている。一つ目の役割は、モバイルマニピュレータ1の動作の最小化である。そして、二つ目の役割は、軌道点間の広がりを抑制することである。このポテンシャル関数は、軌道点間を自然長がゼロであるバネにより連結した際のバネに蓄えられるポテンシャルの関数として下記式(7)により定義される。
【0087】
【0088】
上記式におけるωkは、kステップ目の軌道点とk+1ステップ目の軌道点を連結するバネのバネ定数に相当する。このωkを設定する理由は、障害物回避のためのペナルティ関数g(x)の影響により図9に示すように障害物の近傍で軌道点間が広がってしまうことを抑制するためである。障害物回避のためのペナルティ関数では、各軌道点が障害物と接触しないように設定されるため、軌道点間が広がってしまった場合、軌道点間の動作を障害物と接触しないように生成することが困難となる場合がある。図9の例では、モバイルマニピュレータ1は、軌道点qu+1から軌道点qu+2に直線的に移動する際、障害物と接触してしまうだろう。そのため、広がりやすい軌道点間のばね定数ωkを大きくすることで障害物近傍での軌道点間の広がりを抑制する。互いから離れやすい2つの軌道点では、設定した回避量sdltが必然的に大きくなるため、障害物回避のためのペナルティ関数の影響を強く受けると考えられる。例えば、kステップ目の軌道点とk+1ステップ目の軌道点の間が広がっている場合、回避量sdlkと回避量sdlk+1の値が大きいことが考えられる。よって、ωkを下記式(8)及び(9)に基づいて設定する。
【0089】
【0090】
【0091】
【0092】
ここで、c及びdは任意の定数である。また、上記式(9)のmin関数は集合の中の最小の要素を抽出するものであり、σは標準偏差を意味する。ωkチルダは前後のステップの設定された回避量sdltを足し合わせたものである。これにより、障害物によるペナルティ関数の影響を受けた軌道点間のばね定数ωkを大きくすることができる。このばね定数ωkは、他のばね定数と比べ相対的に大きければよいため、最終的なばね定数ωkは、ωkチルダを正規化した値とすればよい。正規化することでばね定数ωkは過大にならない。また、上記式(9)は標準偏差による除算を含むため、全体的な回避量sdltの大きさの変化に影響され難い。そのため上記式(4)における定数a及びbの影響を緩和し、上記の定数c及びdを含む各種のパラメータの調整が容易になる。
【0093】
(二次計画法への適用)
以下、障害物回避のためのペナルティ関数と動作のポテンシャル関数を二次計画法へ適応するための方法を説明する。まず、二次計画法の基本形は以下の通りである。
【0094】
【0095】
【0096】
まず、障害物回避のためのペナルティ関数g(x)について説明する。ペナルティ関数g(x)は、スラック変数sltを用いて目的関数に追加する。このとき、最適化の変数xは次のように拡張される。
【0097】
【0098】
そして、上記式(12)の不等式制約に次のような制約を追加する。
【0099】
【0100】
【0101】
上の二つの式により、スラック変数sltの取り得る最小値は次のようになる。
【0102】
【0103】
これは、上記式(5)の各項と同じ値である。そして、障害物によるコスト関数g(xダッシュ)を以下のようにすることで、目的関数に追加可能な形に変形することができる。
【0104】
【0105】
ここで、0TNは,長さTxNの零ベクトルである。上記式は式(11)のbTxに代入することで目的関数に追加することが出来る。
【0106】
次に動作のポテンシャル関数f(x)ついてである。前述したポテンシャル関数f(x)は、次のように表現できる。
【0107】
【0108】
【0109】
ここで、INxNはNxNの単位行列である。上記式は、式(11)のAをKTKとすることで二次計画法の目的関数とすることができる。また、スラック変数による変数の拡張に対しては、変数の次元数と合わせるように行列Kに0を追加して拡張することで対応できる。
【0110】
最後に、上記式(12)の制約にモバイルマニピュレータ1のマニピュレータ5の関節角度の上限と下限を設定することで、実行可能領域をモバイルマニピュレータ1の可動範囲に制約する。
【0111】
次に、図10を参照して、軌道生成システム100の動作フローを説明する。
【0112】
まず、管理サーバ80のデータベース生成部81は、基本データベース82を生成する(S100)。
【0113】
ユーザー端末90でタスク入力が行われると(S110)、ユーザー端末90は、タスクデータをモバイルマニピュレータ1に送信する(S120)。モバイルマニピュレータ1のタスク準備部20は、ユーザー端末90からタスクデータを受信したことをトリガーとして、サービス環境の三次元点群データを取得し(S130)、当該三次元点群データと、タスクに対応する目標手先位置姿勢を示す目標データと、を管理サーバ80に送信する(S140)。
【0114】
管理サーバ80の候補動作データ抽出部85は、基本データベース82から候補動作データを抽出し(S150)、抽出した候補動作データを候補データベース86に格納する。
【0115】
次に、モバイルマニピュレータ1のタスク実行部21は、候補データベース86を参照し(S160)、複数の候補動作データの何れか1つである初期動作データに基づいてタスクを開始する(S170)。
【0116】
次に、モバイルマニピュレータ1の接触判定部22は、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境の三次元点群データを取得する(S180)。そして、接触判定部22は、モバイルマニピュレータ1がタスクを完了するまでの間にモバイルマニピュレータ1がサービス環境と接触するか判定する(S190)。モバイルマニピュレータ1がタスクを完了するまでの間にモバイルマニピュレータ1がサービス環境と接触しないと接触判定部22が判定した場合、接触判定部22は、処理をS240に進める。一方、モバイルマニピュレータ1がタスクを完了するまでの間にモバイルマニピュレータ1がサービス環境と接触すると接触判定部22が判定した場合、接触判定部22は、処理をS200に進める。
【0117】
ステップS200において、回避動作データ抽出部23は、管理サーバ80の候補データベース86を参照し(S200)、候補データベース86に格納されている複数の候補動作データから、サービス環境と接触しないSVを有する候補動作データを回避動作データとして抽出する(S210)。
【0118】
次に、遷移軌道生成部24は、初期動作データの軌道Qから回避動作データの軌道Qへ遷移する遷移軌道を二次計画法により生成する(S220)。
【0119】
次に、軌道更新部25は、モバイルマニピュレータ1がタスクを完了するまでの軌道を、回避動作データの軌道Qと遷移軌道に基づいて更新する(S230)。このとき、軌道更新部25は、モバイルマニピュレータ1がタスクを完了するまでの軌道を更新するに際し、前述した差分補完軌道を改めて生成することになるだろう。
【0120】
そして、制御部8は、モバイルマニピュレータ1がタスクを完了したか判定する(S240)。ここで、タスクには、前述した差分補完軌道も含まれることに留意されたい。モバイルマニピュレータ1がタスクを完了したと制御部8が判定した場合、制御部8は、処理を終了する。一方、モバイルマニピュレータ1がタスクを完了していないと制御部8が判定した場合、制御部8は、処理をS180に戻す。以降、モバイルマニピュレータ1がサービス環境と接触することを接触判定部22が判定する度に(S190)、ステップS200からステップS240が繰り返されることになる。
【0121】
以上に、本開示の好適な実施形態を説明したが、上記実施形態は以下の特徴を有する。
軌道生成システム100は、基本データベース82(データベース)と、候補動作データ抽出部85(第1動作データ抽出部)と、タスク実行部21(タスク開始部)と、接触判定部22と、回避動作データ抽出部23(第2動作データ抽出部)と、遷移軌道生成部24と、を含む。
基本データベース82は、目標手先位置姿勢と、モバイルマニピュレータ1の手先位置姿勢を当該目標手先位置姿勢に移動させるためのモバイルマニピュレータ1の軌道Qと、当該軌道Qに従ってモバイルマニピュレータ1を動作させるときにモバイルマニピュレータ1が横切る空間としてのSV(Swept Volume)と、を含む動作データを複数記憶する。
候補動作データ抽出部85は、モバイルマニピュレータ1のタスクの開始時において、サービス環境の三次元データを取得し、タスクに対応する目標手先位置姿勢に対応する目標手先位置姿勢を有する動作データであって、モバイルマニピュレータ1のタスクの開始時に取得した三次元データに基づくサービス環境と接触しないSVを有する動作データを候補動作データとして基本データベース82から複数抽出する。
タスク実行部21は、複数の候補動作データの何れか1つである初期動作データ(第1動作データ)に基づいて、タスクを開始する。
接触判定部22は、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中にサービス環境の三次元データをリアルタイムに取得することにより、モバイルマニピュレータ1がタスクを完了するまでの間にリアルタイムに取得した三次元データに基づくサービス環境とモバイルマニピュレータ1が接触するか否か判定する。
回避動作データ抽出部23は、接触すると接触判定部22が判定した場合、複数の候補動作データから、リアルタイムに取得した三次元データに基づくサービス環境と接触しないSVを有する動作データを回避動作データ(第2動作データ)として抽出する。
遷移軌道生成部24は、初期動作データの軌道Qから回避動作データの軌道Qへ遷移する遷移軌道を生成する。
以上の構成によれば、モバイルマニピュレータ1がタスクを開始した後のモバイルマニピュレータ1の移動中に、モバイルマニピュレータ1がサービス環境に接触すると判定したとき、当該サービス環境との接触を回避しつつタスクを完遂できるモバイルマニピュレータ1の軌道を短時間で生成することができる。なお、モバイルマニピュレータ1の軌道を短時間で生成できるのは、回避動作データ抽出部23が回避動作データを抽出するに際し、基本データベース82に格納されている複数の動作データから回避動作データを抽出するのではなく、候補動作データ抽出部85が抽出した複数の候補動作データから回避動作データを抽出するからである。
【0122】
また、遷移軌道の軌道始点qstartと軌道終点qendの間の差分は所定値未満であってもよい。以上の構成によれば、遷移軌道を生成する生成処理が安定化する。
【0123】
また、遷移軌道の軌道始点qstartから見た遷移軌道の軌道終点qendの方向と、第2動作データの軌道の遷移完了直後の方向と、が成す角度が所定値未満であってもよい。以上の構成によれば、遷移軌道から回避動作データの軌道に乗り換えるときのモバイルマニピュレータ1の滑らかな動作を実現できる。
【0124】
また、遷移軌道の軌道終点qendは、
遷移軌道の軌道始点qstartと軌道終点qendの間の差分が所定値未満となる第1の条件と、
軌道始点qstartから見た軌道終点qendの方向と、回避動作データの軌道Qの遷移完了直後の方向と、が成す角度が所定値未満となる第2の条件と、
を同時に満たす複数の軌道点qのうち最も下流側の軌道点qであってもよい。
以上の構成によれば、遷移軌道を生成する生成処理が安定化し、遷移軌道から回避動作データの軌道に乗り換えるときのモバイルマニピュレータ1の滑らかな動作を実現できると共に、モバイルマニピュレータ1がタスクを実行するための所要時間を短縮することができる。
【0125】
また、式(1)に示すように、遷移軌道生成部24は、モバイルマニピュレータ1の連続する2つの軌道点の差分を小さくするためのポテンシャル関数(第1コスト関数)と、リアルタイムに取得した三次元データに基づくサービス環境を回避するためのペナルティ関数(第2コスト関数)と、に基づく二次計画法により遷移軌道を生成する。
以上の構成によれば、遷移軌道を効率よく生成することができる。
【0126】
また、式(7)に示すように、遷移軌道生成部24は、モバイルマニピュレータ1の連続する2つの軌道点の差分を、モバイルマニピュレータ1がリアルタイムに取得した三次元データに基づくサービス環境を回避するための回避量sdltに基づいて重み付けし、重み付け後の差分の総和を求めることによりポテンシャル関数を演算する。
以上の構成によれば、モバイルマニピュレータ1とリアルタイムに取得した三次元点群データに基づくサービス環境との接触を回避するように遷移軌道を生成するに際し、連続する2つの軌道点が過度に離れてしまうことを抑制できる。
【0127】
また、式(4)に示すように、遷移軌道生成部24は、モバイルマニピュレータ1とリアルタイムに取得した三次元点群データに基づくサービス環境との重なり量Cltの対数に基づいて、前記モバイルマニピュレータがリアルタイムに取得した前記三次元データに基づくサービス環境を回避するための回避量sdltを演算する。
以上の構成によれば、二次計画法による遷移軌道の生成処理が安定化する。
【0128】
上記の実施形態は以下のように変更できる。
【0129】
図10に示すように、ユーザー端末90は、タスクデータをモバイルマニピュレータ1に送信することとしたが(S120)、これに代えて、ユーザー端末90は、タスクデータを管理サーバ80に送信するようにしてもよい。この場合、管理サーバ80からモバイルマニピュレータ1にタスクデータが転送されることになるだろう。
【0130】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。非一時的なコンピュータ可読媒体の例は、更に、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROMを含む。非一時的なコンピュータ可読媒体の例は、更に、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0131】
1 モバイルマニピュレータ
2 移動台車
3 ロボット
4 ロボット本体
5 マニピュレータ
6 エンドエフェクタ
7 環境センサ
8 制御部
8b メモリ
8c 通信インターフェース
9 上腕リンク
10 前腕リンク
11 肩関節
12 肘関節
13 手首関節
20 タスク準備部
21 タスク実行部
22 接触判定部
23 回避動作データ抽出部
24 遷移軌道生成部
25 軌道更新部
80 管理サーバ
80b メモリ
80c 通信インターフェース
81 データベース生成部
82 基本データベース
83 データ受信部
85 候補動作データ抽出部
86 候補データベース
90 ユーザー端末
100 軌道生成システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10