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

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

▶ Telexistence株式会社の特許一覧

特許7079435ロボット制御装置、ロボット制御方法及びロボット制御プログラム
<>
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図1
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図2
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図3
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図4
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図5
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図6
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図7
  • 特許-ロボット制御装置、ロボット制御方法及びロボット制御プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-25
(45)【発行日】2022-06-02
(54)【発明の名称】ロボット制御装置、ロボット制御方法及びロボット制御プログラム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20220526BHJP
【FI】
B25J19/06
【請求項の数】 8
(21)【出願番号】P 2018097144
(22)【出願日】2018-05-21
(65)【公開番号】P2019202354
(43)【公開日】2019-11-28
【審査請求日】2021-03-24
(73)【特許権者】
【識別番号】517135833
【氏名又は名称】Telexistence株式会社
(74)【代理人】
【識別番号】100134094
【弁理士】
【氏名又は名称】倉持 誠
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【弁理士】
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】ホセ エンリケ チェン
(72)【発明者】
【氏名】チャリス ラサンタ フェルナンド
【審査官】杉田 隼一
(56)【参考文献】
【文献】特開2005-046931(JP,A)
【文献】特開2016-132080(JP,A)
【文献】特開2001-198865(JP,A)
【文献】特開2006-146435(JP,A)
【文献】国際公開第2017/033376(WO,A1)
【文献】特開2018-51652(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
操作者の動作に追従するようにロボットを制御するロボット制御装置であって、
前記ロボットの物体への衝突を検出する衝突検出部と、
前記衝突検出部が前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデル基づいて、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定する駆動決定部と、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、
前記ロボットの周囲の状況ごとに前記駆動内容を学習させた複数の前記学習モデルを記憶する記憶部と、
を有し、
前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記ロボットから取得した情報に基づいて前記状況を特定し、特定した前記状況に対応する前記学習モデルを前記記憶部から取得し、取得した前記学習モデルが示す駆動内容を、前記衝突を回避可能な前記駆動内容として決定する、ロボット制御装置。
【請求項2】
前記駆動決定部は、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定する、請求項に記載のロボット制御装置。
【請求項3】
前記駆動制御部は、前記所定の姿勢に遷移する前記駆動内容の実行を完了した後に、前記操作者の動作への追従を前記ロボットに再開させる、請求項に記載のロボット制御装置。
【請求項4】
前記駆動制御部は、前記操作者の動作への追従を前記ロボットに停止させる際に、前記操作者の頭部の動作への追従を停止させず、前記操作者の頭部以外の動作への追従を停止させる、請求項1からのいずれか一項に記載のロボット制御装置。
【請求項5】
前記操作者が視認する表示部に対して、前記ロボットが前記操作者の動作へ追従する期間と、前記ロボットが前記操作者の動作への追従を停止している期間との間で表示態様を変更するように制御する表示制御部をさらに有する、請求項1からのいずれか一項に記載のロボット制御装置。
【請求項6】
前記物体は、前記ロボットの体と、前記ロボットの外部の物体との少なくとも一方を含む、請求項1からのいずれか一項に記載のロボット制御装置。
【請求項7】
操作者の動作に追従するようにロボットを制御するロボット制御装置のプロセッサが、
前記ロボットの物体への衝突を検出するステップと、
前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデル基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、
を実行するロボット制御方法であって、
前記ロボット制御装置は、前記ロボットの周囲の状況ごとに前記駆動内容を学習させた複数の前記学習モデルを記憶する記憶部を有し、
前記駆動内容を決定するステップは、前記ロボットから取得した情報に基づいて前記状況を特定し、特定した前記状況に対応する前記学習モデルを前記記憶部から取得し、取得した前記学習モデルが示す駆動内容を、前記衝突を回避可能な前記駆動内容として決定することを含む、ロボット制御方法
【請求項8】
操作者の動作に追従するようにロボットを制御するロボット制御装置に、
前記ロボットの物体への衝突を検出するステップと、
前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデル基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、
を実行させるロボット制御プログラムであって、
前記ロボット制御装置は、前記ロボットの周囲の状況ごとに前記駆動内容を学習させた複数の前記学習モデルを記憶する記憶部を有し、
前記駆動内容を決定するステップは、前記ロボットから取得した情報に基づいて前記状況を特定し、特定した前記状況に対応する前記学習モデルを前記記憶部から取得し、取得した前記学習モデルが示す駆動内容を、前記衝突を回避可能な前記駆動内容として決定することを含む、ロボット制御プログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットを操作するロボット制御装置、ロボット制御方法及びロボット制御プログラムに関する。
【背景技術】
【0002】
操作者の動作に追従してロボットを遠隔操作するシステムが開発されている。操作者が、自分自身が現存する場所とは異なった場所に実質的に存在し、その場所で自在に行動するための技術は、テレイグジスタンス(Telexistence)と呼ばれる。特許文献1には、ロボットのアームを制御する際に動作シミュレーションを行い、物体との衝突が予測された場合にロボットのアームを物体から遠ざかる向きに動作するように制御するロボット制御システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2010-240782号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
物体との衝突を回避する際に、ロボットをどのように駆動するか(モーションプランニング)を演算する必要がある。衝突が発生した時点又は衝突回避のために停止した時点から、従来のモーションプランニングを演算するためには、相当の時間を要する。これは、衝突の回避後に2次的な衝突を回避したうえでロボットと操作者の動きとを同期するのが非常に複雑であるためである。
【0005】
操作者にとって、衝突発生から復帰までの長い演算時間は、操作のスムーズさやテレイグジスタンスの体験価値を損なうものである。ロボットの腕やその他部位は、操作者の動作との時間的なずれが小さくなるように、操作者に同期されることが求められる。
【0006】
本発明はこれらの点に鑑みてなされたものであり、ロボットが物体に衝突することを回避するための演算時間を短縮できるロボット制御装置、ロボット制御方法及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係るロボット制御装置は、操作者の動作に追従するようにロボットを制御するロボット制御装置であって、前記ロボットの物体への衝突を検出する衝突検出部と、前記衝突検出部が前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定する駆動決定部と、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、を有する。
【0008】
前記ロボット制御装置は、前記学習モデルを記憶する記憶部をさらに有し、前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記ロボットから取得した情報に基づいて前記状況を特定し、特定した前記状況に対応する前記学習モデルを前記記憶部から取得し、取得した前記学習モデルが示す駆動内容を、前記衝突を回避可能な前記駆動内容として決定してもよい。
【0009】
前記ロボット制御装置は、前記駆動履歴を記憶する記憶部をさらに有し、前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記衝突の検出時から遡って所定時間の前記駆動履歴を前記記憶部から取得し、取得した前記駆動履歴を時間順に逆にした駆動内容を、前記衝突を回避可能な前記駆動内容として決定してもよい。
【0010】
前記駆動決定部は、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定してもよい。
【0011】
前記駆動制御部は、前記所定の姿勢に遷移する前記駆動内容の実行を完了した後に、前記操作者の動作への追従を前記ロボットに再開させてもよい。
【0012】
前記駆動制御部は、前記操作者の動作への追従を前記ロボットに停止させる際に、前記操作者の頭部の動作への追従を停止させず、前記操作者の頭部以外の動作への追従を停止させてもよい。
【0013】
前記ロボット制御装置は、前記操作者が視認する表示部に対して、前記ロボットが前記操作者の動作へ追従する期間と、前記ロボットが前記操作者の動作への追従を停止している期間との間で表示態様を変更するように制御する表示制御部をさらに有してもよい。
【0014】
前記物体は、前記ロボットの体と、前記ロボットの外部の物体との少なくとも一方を含んでもよい。
【0015】
本発明の第2の態様に係るロボット制御方法は、操作者の動作に追従するようにロボットを制御するロボット制御装置のプロセッサが、前記ロボットの物体への衝突を検出するステップと、前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、を実行する。
【0016】
本発明の第3の態様に係るロボット制御プログラムは、操作者の動作に追従するようにロボットを制御するロボット制御装置に、前記ロボットの物体への衝突を検出するステップと、前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、を実行させる。
【0017】
本発明の第4の態様に係るロボット制御装置は、操作者の動作に追従するようにロボットを制御するロボット制御装置であって、前記ロボットの物体への衝突を検出する衝突検出部と、前記衝突検出部が前記衝突を検出した場合に、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定するとともに、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定する駆動決定部と、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、を有する。
【発明の効果】
【0018】
本発明によれば、ロボットが物体に衝突することを回避するための演算時間を短縮できるという効果を奏する。
【図面の簡単な説明】
【0019】
図1】本実施形態に係るロボット制御システムの模式図である。
図2】本実施形態に係るロボット制御システムのブロック図である。
図3】ロボットの動作中に発生し得る衝突を説明する図である。
図4】学習モデルを用いて衝突を回避する第1の方法を説明する模式図である。
図5】駆動履歴を用いて衝突を回避する第2の方法を説明する模式図である。
図6】衝突を回避した後に操作者の姿勢とロボットの姿勢とを合わせる方法を説明する模式図である。
図7】本実施形態に係る表示部が表示する画面を示す模式図である。
図8】本実施形態に係るロボット制御方法のフローチャートを示す図である。
【発明を実施するための形態】
【0020】
[ロボット制御システムSの構成]
図1は、本実施形態に係るロボット制御システムSの模式図である。ロボット制御システムSは、ロボット制御装置1と、ロボット2とを含む。ロボット制御システムSは、その他のサーバ、端末等の機器を含んでもよい。
【0021】
ロボット制御装置1は、操作者U(ユーザ)の操作を示す情報に基づいてロボット2を制御するコンピュータである。ロボット制御装置1は、ロボット2に一体化されて構成されてもよい。すなわち、ロボット2は、ロボット制御装置1の機能を有してもよい。
【0022】
ロボット制御装置1は、操作者Uの動作を示す情報を取得する動作情報取得部11と、操作者Uに対して情報を表示する表示部12とを有する。動作情報取得部11は、操作者Uの体から離れて設けられてもよく、操作者Uの体に装着されてもよい。表示部12は操作者Uの頭部に固定されており、操作者Uは頭部を動かしても表示部12が表示している情報を視認できる。
【0023】
ロボット2は、ロボット制御装置1から受信した信号に従って動作する装置である。図1の例では、ロボット2は人間と同様の頭部、腕部等を有しており、ロボット2を操作する操作者Uの体の動きに追従して各部が動作するように制御される。また、ロボット2は、撮像部21を有しており、撮像部21が撮像した撮像画像をロボット制御装置1へ送信する。ロボット2は、有線又は無線でロボット制御装置1に接続され、ロボット制御装置1との間で信号を授受する。ロボット2は、ロボット制御装置1に直接接続されてもよく、インターネット等のネットワークを介して接続されてもよい。
【0024】
[ロボット制御システムSの構成]
図2は、本実施形態に係るロボット制御システムSのブロック図である。図2において、矢印は主なデータの流れを示しており、図2に示したもの以外のデータの流れがあってよい。図2において、各ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、図2に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【0025】
ロボット2は、撮像部21、駆動部22と、インタフェース23とを有する。インタフェース23は、ロボット制御装置1との間で信号の授受をするための接続部である。インタフェース23は、ロボット制御装置1から受信した信号に所定の処理を行ってデータを取得し、取得したデータを駆動部22に入力する。また、インタフェース23は、撮像部21から入力されたデータに所定の処理を行って信号を生成し、生成した信号をロボット制御装置1に送信する。
【0026】
駆動部22は、ロボット2の各部位に動力を供給するモータ、アクチュエータ等の駆動装置を含む。駆動部22は例えばロボット2の腕に設けられており、ロボット2はロボット制御装置1の指示に基づいて駆動部22が動作することによって、物に触れたり、物を掴んだりする。駆動部22は、ロボット制御装置1から受信した駆動情報に従って、ロボット2の各部位を駆動する。
【0027】
撮像部21は、ロボット2自身の体を含む所定の撮像範囲を撮像する撮像装置である。撮像部21は、1つ又は複数の撮像素子を含む。撮像部21は、予め設定されたタイミングで撮像を行ってもよく、あるいはロボット制御装置1から受信した撮像の指示に従って撮像を行ってもよい。撮像部21は、撮像素子を用いて撮像した撮像画像を示す信号をロボット制御装置1に送信する。
【0028】
ロボット制御装置1は、上述の動作情報取得部11及び表示部12に加えて、制御部13と、記憶部14と、インタフェース15とを有する。制御部13は、動作特定部131と、衝突検出部132と、駆動決定部133と、駆動制御部134と、表示制御部135とを有する。記憶部14は、学習モデル記憶部141と、駆動履歴記憶部142とを有する。
【0029】
インタフェース15は、ロボット2との間で信号の授受をするための接続部である。インタフェース15は、ロボット2から受信した信号に所定の処理を行ってデータを取得し、取得したデータを制御部13に入力する。また、インタフェース15は、制御部13から入力されたデータに所定の処理を行って信号を生成し、生成した信号をロボット2に送信する。
【0030】
動作情報取得部11は、操作者Uの動作を示す動作情報を取得する。例えば動作情報取得部11は、操作者Uに向けて赤外線等の光を照射し、操作者Uの体の各部位に装着された受光部が光を受けたタイミングを、動作情報として取得する。あるいは動作情報取得部11は、撮像素子を用いて操作者Uの体を含む撮像範囲を撮像した撮像画像を、動作情報として取得する。動作情報取得部11は、ここに示した方法に限られず、その他の方法で操作者Uの動作を示す動作情報を取得してもよい。動作情報取得部11は、取得した動作情報を示す信号を制御部13に入力する。
【0031】
表示部12は、各種情報を表示するための、液晶ディスプレイ等の表示装置を含む。表示部12は、制御部13から受け取った信号に従って情報を表示する。
【0032】
記憶部14は、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクドライブ等を含む記憶媒体である。記憶部14は、制御部13が実行するプログラムを予め記憶している。学習モデル記憶部141は、機械学習によって生成された、衝突を回避するための駆動情報を示す学習モデルを記憶する。駆動履歴記憶部142は、ロボット2の駆動部22の駆動履歴を記憶する。学習モデル記憶部141及び駆動履歴記憶部142は、それぞれ記憶部14中の記憶領域でもよく、記憶部14に記憶されたデータベースでもよい。記憶部14は、ロボット制御装置1の外部に設けられてもよく、その場合にインタフェース15を介して制御部13との間でデータの授受を行ってもよい。
【0033】
制御部13は、例えばCPU(Central Processing Unit)等のプロセッサであり、記憶部14に記憶されたプログラムを実行することにより、動作特定部131、衝突検出部132、駆動決定部133、駆動制御部134及び表示制御部135として機能する。動作特定部131、衝突検出部132、駆動決定部133、駆動制御部134及び表示制御部135の記憶については、図3図7を用いて後述する。制御部13の機能の少なくとも一部は、電気回路によって実行されてもよい。また、制御部13の機能の少なくとも一部は、ネットワーク経由で実行されるプログラムによって実行されてもよい。
【0034】
本実施形態に係るロボット制御システムSは、図2に示す具体的な構成に限定されない。例えばロボット制御装置1及びロボット2は、それぞれ1つの装置に限られず、2つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されてもよい。
【0035】
[ロボット制御方法の説明]
本実施形態に係るロボット制御装置1が実行するロボット制御方法を以下に説明する。まず動作特定部131は、動作情報取得部11から動作情報を取得し、取得した動作情報に基づいて操作者Uの動作を特定する。操作者Uの体の各部位に装着された受光部が光を受けたタイミングを示す動作情報を用いる場合には、動作特定部131は、複数の時点の該タイミングと受光部が装着された体の部位との間の関係を特定することによって、各部位の相対的な位置関係及び各部位の位置の変化を含む、操作者Uの動作を特定する。
【0036】
操作者Uの体を含む撮像範囲を撮像した撮像画像を示す動作情報を用いる場合には、動作特定部131は、パターンマッチング等の画像認識技術を用いて複数の時点の該撮像画像に含まれる体の部位を特定することによって、各部位の相対的な位置関係及び各部位の位置の変化を含む、操作者Uの動作を特定する。
【0037】
動作特定部131が操作者Uの動作を特定するのと並行して、衝突検出部132はロボット2の体の少なくとも一部が物体に衝突(接触)すること又は衝突したことを検出する。ロボット2が衝突する相手の物体は、ロボット2自身の体及びロボット2の外部の物体の少なくとも一方である。
【0038】
図3は、ロボット2の動作中に発生し得る衝突を説明する図である。操作者Uが腕を動かすように動作すると、ロボット制御装置1は操作者Uの動作に対応するように、ロボット2の腕を動作させる。操作者Uの体の形状とロボット2の体の形状との間には差異があるため、ロボット2は操作者Uの動作に追従しようとすると、ロボット2の体が物体と衝突する場合がある。図3はロボット2の2本の腕同士が衝突する場合を表しているが、ロボット2の腕と外部の物体とが衝突する場合もある。
【0039】
衝突検出部132は、ロボット2の体が物体に衝突することを予測し、又はロボット2の体が物体に衝突したことを感知することによって、衝突を検出する。衝突検出部132は、例えばロボット2の撮像部21が撮像した撮像画像を取得して、パターンマッチング等の画像認識技術を用いて撮像画像内の物体を抽出する。そして衝突検出部132は、後述の駆動制御部134がロボット2の体の部位を駆動する向き(ベクトル)上に抽出した物体があり、かつ該体の部位と該物体との間の距離が所定の値以下である場合に、ロボット2の体が物体に衝突することを予測する。
【0040】
また、衝突検出部132は、例えばロボット2の体の少なくとも一部に設けられた圧力センサ、加速度センサ等のセンサから値を取得し、取得した値が、物体への衝突を示す所定の条件を満たす場合にロボット2の体が物体に衝突したことを感知する。
【0041】
衝突検出部132は、ここに示した方法に限られず、その他の方法でロボット2の体の少なくとも一部が物体に衝突すること又は衝突したことを検出してもよい。
【0042】
駆動決定部133は、動作特定部131が特定した操作者Uの動作と、衝突検出部132が衝突を検出した結果とに基づいて、ロボット2を駆動する指示を示す駆動情報を決定する。
【0043】
衝突検出部132が衝突を検出しなかった場合に、駆動決定部133は、動作特定部131が特定した操作者Uの動作に対応するロボット2の動作を決定する。駆動決定部133は、操作者Uの動作と同一の動作をロボット2の動作としてもよく、操作者Uの動作に対して所定の変換を加えた動作をロボット2の動作としてもよい。また、駆動決定部133は、操作者Uの動作に基づいてロボット制御装置1上で仮想的な姿勢のモデルを動かし、該姿勢のモデルの動作に基づいてロボット2の動作を決定してもよい。そして駆動決定部133は、ロボット2が該動作をするように駆動部22を駆動する指示を示す駆動情報を決定する。駆動部22を駆動する様々な指示は、予めロボット制御装置1に設定される。
【0044】
駆動制御部134は、駆動決定部133が決定した駆動情報をロボット2に送信することによって、動作特定部131が特定した操作者Uの動作に追従するように、ロボット2を制御する。ロボット2の駆動部22は、ロボット制御装置1から受信した駆動情報に従って、ロボット2の各部位を駆動する。
【0045】
衝突検出部132が衝突を検出した場合に、まず駆動制御部134は、ロボット2に所定の停止情報を送信することによって、操作者Uの動作への追従をロボット2に停止させる。そして駆動決定部133は、衝突を回避するためのロボット2の動作を決定する。衝突を回避することは、衝突の発生前に衝突を防ぐことと、衝突の発生後に衝突を解消することとを含む。本発明者は、従来のモーションプランニングの代わりに又は従来のモーションプランニングに加えて、学習モデルを用いて衝突を回避する第1の方法と、駆動履歴を用いて操作者Uの直前の動作を巻き戻すことによって衝突を回避する第2の方法との少なくとも一方によって、衝突を回避することを考案した。これらの方法は、従来のモーションプランニングを行うよりも、格段に早い衝突からの復帰を実現できる。
【0046】
図4は、学習モデルを用いて衝突を回避する第1の方法を説明する模式図である。図4は、時刻T1、時刻T2にかけて順にロボット2の腕が動作し、その後、時刻T3の時点で衝突検出部132が衝突を検出したことを表している。
【0047】
学習モデル記憶部141には、機械学習によって生成された、衝突を回避するための駆動情報を示す学習モデルが予め記憶されている。ロボット制御装置1は、機械学習技術を用いて、ロボット2の周囲の様々な状況ごとに、衝突を回避可能なロボット2の駆動部22の駆動内容を学習し、学習モデルとして学習モデル記憶部141に予め記憶させる。駆動内容は、ロボット2の部位の移動を示すベクトルや、ロボット2の部位の移動後の位置を示す情報等、駆動部22がどのように駆動するかを示す情報である。ロボット制御装置1は、機械学習技術として、ニューラルネットワーク、サポートベクトルマシン等の公知の学習技術を用いることができる。
【0048】
駆動決定部133は、時刻T3において衝突検出部132が衝突を検出した場合に、ロボット2の撮像部21が撮像した撮像画像を取得し、取得した撮像画像からロボット2の周囲の状況を特定する。ロボット2の周囲の状況は、ロボット2の各部位の位置と、ロボット2の近傍にある物体の位置とを含む。駆動決定部133は、学習モデル記憶部141からロボット2の周囲の状況に対応する学習モデルを取得し、取得した学習モデルが示す、衝突を回避可能な駆動内容を示す駆動情報を決定する。
【0049】
このように駆動決定部133は、第1の方法として学習モデルを用いるため、衝突回避のためのシミュレーション等の複雑な計算が不要であり、高速に駆動情報を決定するための、演算時間を短縮できる。また、駆動決定部133は、衝突が検出された際のロボット2の周囲の状況に対応する駆動内容を決定するため、ロボット2が衝突を回避する際に他の物体に衝突することを抑制でき、状況ごとに適した動作をして衝突を回避できる。
【0050】
図5は、駆動履歴を用いて衝突を回避する第2の方法を説明する模式図である。図5は、時刻T1、時刻T2にかけて順にロボット2の腕が動作し、その後、時刻T3の時点で衝突検出部132が衝突を検出したことを表している。
【0051】
駆動履歴記憶部142には、ロボット2の駆動部22が過去に実行した駆動内容を示す駆動履歴が記憶されている。駆動履歴記憶部142は、過去の全ての駆動履歴を記憶してもよく、現在から遡って所定時間の駆動履歴を記憶してもよい。
【0052】
駆動決定部133は、時刻T3において衝突検出部132が衝突を検出した場合に、駆動履歴記憶部142から、衝突検出時から遡って所定時間(例えば5秒)の駆動履歴を取得する。そして駆動決定部133は、取得した駆動履歴が示す所定時間の駆動内容を時間順に逆にした駆動内容、すなわち衝突検出時から遡って所定時間前まで巻き戻す駆動内容を、衝突を回避可能な駆動内容を示す駆動情報として決定する。
【0053】
図5の例では、駆動決定部133は、時刻T3から時刻T2まで巻き戻し、さらに時刻T2から時刻T1まで巻き戻すように、ロボット2の駆動部22の駆動情報を決定する。このように駆動決定部133は、第2の方法として、ロボット2の部位が過去に実際に駆動した駆動履歴を用いて、実際に行った駆動内容を巻き戻すようにロボット2を駆動する。そのため、駆動決定部133は、衝突回避のためのシミュレーション等の複雑な計算が不要であり、高速に駆動情報を決定するための演算時間を短縮できる。また、ロボット2が衝突を回避する際に他の物体に衝突することを抑制でき、また予め学習モデルを構築する必要がないため実装が容易である。
【0054】
駆動決定部133は、第1の方法と第2の方法とを、状況によって切り替えて実行してもよい。例えば駆動決定部133は、学習モデルを用いる第1の方法の処理が失敗した又は計算時間が所定値以上になった場合に、駆動履歴を用いる第2の方法に切り替える。これにより、周囲の状況に対応する学習モデルが学習モデル記憶部141に記憶されていなかった場合や、撮像画像に基づいて学習モデルを取得する計算の解が出なかった場合等に、駆動決定部133は、第1の方法を中止して第2の方法を用いて処理を続行できる。
【0055】
駆動制御部134は、駆動決定部133が決定した駆動情報をロボット2に送信することによって、衝突検出部132が検出した衝突を回避するようにロボット2を制御する。このとき駆動制御部134は、駆動履歴記憶部142に記憶されている駆動履歴に、最新の駆動情報を追加する。ロボット2の駆動部22は、ロボット制御装置1から受信した駆動情報に従って、ロボット2の各部位を駆動する。
【0056】
操作者Uの全ての動作への追従をロボット2に停止させると、操作者Uが頭部を動かしてもロボット2の撮像部21が撮像した画像(すなわち表示部12に表示されている画像)が変化しないため、操作者Uは自身の動作とロボット2の動作とのズレに起因する画面酔いをする場合がある。そのため駆動制御部134は、操作者Uの動作へ追従する動作を停止した場合であっても、操作者Uの頭部の動作への追従を停止させる必要が生じない範囲において(例えば、ロボット2の頭部の衝突が検出されていないことを条件として)、操作者Uの頭部の動作への追従は継続し、操作者Uの頭部以外の動作への追従を停止することが望ましい。
【0057】
例えば駆動制御部134は、ロボット2の腕の衝突を回避する動作をロボット2に行わせている際に、操作者Uの頭部の動作に対応する動作をロボットに行わせる。これにより操作者Uは、ロボット2が回避動作を行っている際にも、自身の頭部に追従した画像を表示部12で見ることができるため、自身の動作とロボット2の動作とのズレに起因する画面酔いをしづらい。
【0058】
ロボット2が衝突を回避する動作は操作者Uの動作に追従しないため、ロボット2が衝突を回避する行動をした後には、操作者Uの姿勢とロボット2の姿勢との間にずれが生じる。そのためロボット2は、衝突を回避した後に、操作者Uの動作に追従することが難しくなる。そこで、駆動決定部133は、衝突を回避した後に操作者Uの姿勢とロボット2の姿勢とを合わせる駆動内容を示す駆動情報を決定することが望ましい。
【0059】
図6は、衝突を回避した後に操作者Uの姿勢とロボット2の姿勢とを合わせる方法を説明する模式図である。衝突検出部132が図6の上段のような衝突を検出すると、駆動決定部133は、まず上述の学習モデルを用いる第1の方法又は駆動履歴を用いる第2の方法を用いて、衝突を回避可能な駆動内容を示す駆動情報を決定する。このときロボット2は、操作者Uの動作へ追従する動作を停止しているため、図6の中段のように操作者Uの姿勢とロボット2の姿勢との間にずれが生じる。
【0060】
駆動決定部133は、衝突を回避可能な駆動の実行の後に、上述の学習モデルを用いる第1の方法によって、ロボット2を所定の姿勢に遷移させる駆動内容を示す駆動情報を決定する。所定の姿勢は、操作者Uとの共通認識として定められた姿勢である。図6の例では、所定の姿勢は手を下方に伸ばして広げた姿勢である。この場合に、操作者Uは、図6の下段のように、自らの体を動かして所定の姿勢に遷移する。
【0061】
あるいは所定の姿勢は、操作者Uの現在の姿勢であってもよい。この場合に、動作特定部131が操作者Uの現在の姿勢を特定し、駆動決定部133は、ロボット2の姿勢を操作者Uの現在の姿勢に遷移させるように駆動情報を決定する。
【0062】
駆動制御部134は、ロボット2が所定の姿勢に遷移する駆動の実行を完了し、かつ操作者Uが所定の姿勢になった場合に、ロボット2を操作者Uの動作に追従させる制御を再開する。操作者Uの姿勢は、動作特定部131によって特定される。このように、ロボット制御装置1は、衝突を回避した後に操作者Uの姿勢とロボット2の姿勢とを合わせ、操作者Uの動作への追従をロボット2に再開させることができる。
【0063】
表示制御部135は、駆動制御部134によるロボット2の駆動制御と並行して、ロボット2の撮像部21が撮像した画像を表示させるように表示部12を制御する。図7(a)、図7(b)は、本実施形態に係る表示部12が表示する画面を示す模式図である。
【0064】
動作特定部131が特定した操作者Uの動作に対応する動作をロボット2に行わせる場合(すなわち衝突検出部132が衝突を検出しなかった場合)に、表示制御部135は、図7(a)のように、ロボット2の撮像部21が撮像した画像を表す画面Aを表示部12に表示させる。
【0065】
衝突検出部132が決定した衝突を回避する動作をロボット2に行わせる場合(すなわち衝突検出部132が衝突を検出した場合)に、表示制御部135は、図7(b)のように、ロボット2の撮像部21が撮像した画像に、ロボット2が衝突回避動作を行っていることを表す情報Cを重畳した画面Bを表示部12に表示させる。すなわち、表示制御部135は、ロボット2が操作者Uの動作へ追従する動作をしている期間と、ロボット2が操作者Uの動作へ追従する動作を停止している期間との間で、表示部12の表示態様を変更する。表示制御部135は、例えば画面Bにおいてロボット2の撮像部21が撮像した画像の明度を下げることによって、画面Aとの表示態様を変更する。
【0066】
このように表示制御部135は、動作特定部131が特定した操作者Uの動作に対応する動作をロボット2が行っているか、衝突検出部132が決定した衝突を回避する動作をロボット2が行っているかを、操作者Uが区別できるように表示制御を行う。衝突発生時に、操作者Uはさらなる衝突を発生させないことを意識して、自身の体を動かしてよいかどうかわからなくなる場合がある。図7(a)、図7(b)のように表示部12に追従の有無を明示することによって、操作者Uはロボット2が衝突発生時に自身の動作に追従していないことを認識することができ、自由に体を動かせるようになる。また、操作者Uは、表示部12上で追従の有無を認識することによって、自身の動作とロボット2の動作とのズレに起因する画面酔いをしづらい。
【0067】
[ロボット制御方法のフローチャート]
図8は、本実施形態に係るロボット制御方法のフローチャートを示す図である。図8のフローチャートは、例えば操作者Uがロボット制御装置1に対して所定の開始操作を行うことによって開始される。まず動作特定部131は、動作情報取得部11から動作情報を取得し、取得した動作情報に基づいて操作者Uの動作を特定する(S11)。
【0068】
ステップS11で動作特定部131が操作者Uの動作を特定するのと並行して、衝突検出部132は、ロボット2の体の少なくとも一部が物体に衝突すること又は衝突したことを検出する(S12)。
【0069】
ステップS12で衝突検出部132が衝突を検出しなかった場合に(S13のNO)、駆動決定部133は、ステップS11で動作特定部131が特定した操作者Uの動作に対応するロボット2の動作を決定し、ロボット2が該動作をするように駆動部22を駆動する指示を示す駆動情報を決定する(S14)。
【0070】
駆動制御部134は、ステップS14で駆動決定部133が決定した駆動情報をロボット2に送信することによって、ステップS11で動作特定部131が特定した操作者Uの動作に追従するようにロボット2を制御する(S15)。
【0071】
ステップS12で衝突検出部132が衝突を検出した場合に(S13のYES)、駆動制御部134は、ロボット2に所定の停止情報を送信することによって、操作者Uの動作への追従をロボット2に停止させる(S16)。駆動決定部133は、学習モデル記憶部141からロボット2の周囲の状況に対応する学習モデルを取得し、又は駆動履歴記憶部142から所定時間の駆動履歴を取得する(S17)。そして駆動決定部133は、ステップS16で取得した学習モデル又は駆動履歴に基づいて、衝突を回避可能な駆動内容を示す駆動情報を決定する(S18)。
【0072】
駆動制御部134は、ステップS17で駆動決定部133が決定した駆動情報をロボット2に送信することによって、衝突検出部132が検出した衝突を回避するようにロボット2を制御する(S19)。
【0073】
所定の終了条件(例えば操作者Uがロボット制御装置1に対して所定の終了操作を行うこと)が満たされていない場合に(S20のNO)、ロボット制御装置1はステップS11に戻って処理を繰り返す。所定の終了条件が満たされた場合に(S20のYES)、ロボット制御装置1は処理を終了する。
【0074】
[実施形態の効果]
本実施形態に係るロボット制御装置1は、学習モデル又は駆動履歴を用いて衝突を回避するためのロボット2の駆動内容を決定し、操作者Uの動作への追従を停止して衝突を回避するようにロボット2を駆動する。そのため、衝突回避のためにロボット2の各部位をどのように駆動するか(モーションプランニング)の演算時間を短縮できる。また、ロボット2が衝突を回避する際に別の物体に衝突することを抑制できる。
【0075】
操作者Uの動作に追従するようにロボット2を動作させる際には、操作者Uの操作の違和感を小さくするために、操作者Uの動作を検出してからロボット2の駆動内容を決定するまでのタイムラグを小さくすることが求められる。本実施形態に係るロボット制御装置1は、衝突回避のために学習モデル又は駆動履歴を用いているため、衝突回避のためのシミュレーション等の複雑な計算が不要であり、高速に駆動内容を決定し、タイムラグを低減できる。
【0076】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【0077】
ロボット制御装置1の制御部13(プロセッサ)は、図8に示すロボット制御方法に含まれる各ステップ(工程)の主体となる。すなわち、制御部13は、図8に示すロボット制御方法を実行するためのプログラムを記憶部14から読み出し、当該プログラムを実行してロボット制御装置1の各部を制御することによって、図8に示すロボット制御方法を実行する。図8に示すロボット制御方法に含まれるステップは一部省略されてもよく、ステップ間の順番が変更されてもよく、複数のステップが並行して行われてもよい。
【符号の説明】
【0078】
S ロボット制御システム
1 ロボット制御装置
12 表示部
13 制御部
132 衝突検出部
133 駆動決定部
134 駆動制御部
135 表示制御部
14 記憶部
141 学習モデル記憶部
142 駆動履歴記憶部
2 ロボット

図1
図2
図3
図4
図5
図6
図7
図8