(57)【要約】【課題】ロボットが物体に衝突することを回避するための演算時間を短縮できるようにする。【解決手段】本発明の一実施形態に係るロボット制御装置１は、ロボットの物体への衝突を検出する衝突検出部１３２と、衝突検出部１３２が衝突を検出した場合に、ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、ロボットの過去の駆動履歴との少なくとも一方に基づいて、衝突検出部１３２が検出した衝突を回避可能な駆動内容を決定する駆動決定部１３３と、操作者の動作への追従をロボットに停止させるとともに、駆動決定部１３３が決定した駆動内容をロボットに行わせる駆動制御部１３４と、を有する。【選択図】図２
2019202354.tif 000002
【特許請求の範囲】
【請求項１】
操作者の動作に追従するようにロボットを制御するロボット制御装置であって、
前記ロボットの物体への衝突を検出する衝突検出部と、
前記衝突検出部が前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定する駆動決定部と、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、
を有するロボット制御装置。
【請求項２】
前記学習モデルを記憶する記憶部をさらに有し、
前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記ロボットから取得した情報に基づいて前記状況を特定し、特定した前記状況に対応する前記学習モデルを前記記憶部から取得し、取得した前記学習モデルが示す駆動内容を、前記衝突を回避可能な前記駆動内容として決定する、請求項１に記載のロボット制御装置。
【請求項３】
前記駆動履歴を記憶する記憶部をさらに有し、
前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記衝突の検出時から遡って所定時間の前記駆動履歴を前記記憶部から取得し、取得した前記駆動履歴を時間順に逆にした駆動内容を、前記衝突を回避可能な前記駆動内容として決定する、請求項１又は２に記載のロボット制御装置。
【請求項４】
前記駆動決定部は、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定する、請求項１から３のいずれか一項に記載のロボット制御装置。
【請求項５】
前記駆動制御部は、前記所定の姿勢に遷移する前記駆動内容の実行を完了した後に、前記操作者の動作への追従を前記ロボットに再開させる、請求項４に記載のロボット制御装置。
【請求項６】
前記駆動制御部は、前記操作者の動作への追従を前記ロボットに停止させる際に、前記操作者の頭部の動作への追従を停止させず、前記操作者の頭部以外の動作への追従を停止させる、請求項１から５のいずれか一項に記載のロボット制御装置。
【請求項７】
前記操作者が視認する表示部に対して、前記ロボットが前記操作者の動作へ追従する期間と、前記ロボットが前記操作者の動作への追従を停止している期間との間で表示態様を変更するように制御する表示制御部をさらに有する、請求項１から６のいずれか一項に記載のロボット制御装置。
【請求項８】
前記物体は、前記ロボットの体と、前記ロボットの外部の物体との少なくとも一方を含む、請求項１から７のいずれか一項に記載のロボット制御装置。
【請求項９】
操作者の動作に追従するようにロボットを制御するロボット制御装置のプロセッサが、
前記ロボットの物体への衝突を検出するステップと、
前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、
を実行するロボット制御方法。
【請求項１０】
操作者の動作に追従するようにロボットを制御するロボット制御装置に、
前記ロボットの物体への衝突を検出するステップと、
前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、
を実行させるロボット制御プログラム。
【請求項１１】
操作者の動作に追従するようにロボットを制御するロボット制御装置であって、
前記ロボットの物体への衝突を検出する衝突検出部と、
前記衝突検出部が前記衝突を検出した場合に、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定するとともに、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定する駆動決定部と、
前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、
を有するロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを操作するロボット制御装置、ロボット制御方法及びロボット制御プログラムに関する。
【背景技術】
【０００２】
操作者の動作に追従してロボットを遠隔操作するシステムが開発されている。操作者が、自分自身が現存する場所とは異なった場所に実質的に存在し、その場所で自在に行動するための技術は、テレイグジスタンス（Telexistence）と呼ばれる。特許文献１には、ロボットのアームを制御する際に動作シミュレーションを行い、物体との衝突が予測された場合にロボットのアームを物体から遠ざかる向きに動作するように制御するロボット制御システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２４０７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
物体との衝突を回避する際に、ロボットをどのように駆動するか（モーションプランニング）を演算する必要がある。衝突が発生した時点又は衝突回避のために停止した時点から、従来のモーションプランニングを演算するためには、相当の時間を要する。これは、衝突の回避後に２次的な衝突を回避したうえでロボットと操作者の動きとを同期するのが非常に複雑であるためである。
【０００５】
操作者にとって、衝突発生から復帰までの長い演算時間は、操作のスムーズさやテレイグジスタンスの体験価値を損なうものである。ロボットの腕やその他部位は、操作者の動作との時間的なずれが小さくなるように、操作者に同期されることが求められる。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、ロボットが物体に衝突することを回避するための演算時間を短縮できるロボット制御装置、ロボット制御方法及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様に係るロボット制御装置は、操作者の動作に追従するようにロボットを制御するロボット制御装置であって、前記ロボットの物体への衝突を検出する衝突検出部と、前記衝突検出部が前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定する駆動決定部と、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、を有する。
【０００８】
前記ロボット制御装置は、前記学習モデルを記憶する記憶部をさらに有し、前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記ロボットから取得した情報に基づいて前記状況を特定し、特定した前記状況に対応する前記学習モデルを前記記憶部から取得し、取得した前記学習モデルが示す駆動内容を、前記衝突を回避可能な前記駆動内容として決定してもよい。
【０００９】
前記ロボット制御装置は、前記駆動履歴を記憶する記憶部をさらに有し、前記衝突検出部が前記衝突を検出した場合に、前記駆動決定部は、前記衝突の検出時から遡って所定時間の前記駆動履歴を前記記憶部から取得し、取得した前記駆動履歴を時間順に逆にした駆動内容を、前記衝突を回避可能な前記駆動内容として決定してもよい。
【００１０】
前記駆動決定部は、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定してもよい。
【００１１】
前記駆動制御部は、前記所定の姿勢に遷移する前記駆動内容の実行を完了した後に、前記操作者の動作への追従を前記ロボットに再開させてもよい。
【００１２】
前記駆動制御部は、前記操作者の動作への追従を前記ロボットに停止させる際に、前記操作者の頭部の動作への追従を停止させず、前記操作者の頭部以外の動作への追従を停止させてもよい。
【００１３】
前記ロボット制御装置は、前記操作者が視認する表示部に対して、前記ロボットが前記操作者の動作へ追従する期間と、前記ロボットが前記操作者の動作への追従を停止している期間との間で表示態様を変更するように制御する表示制御部をさらに有してもよい。
【００１４】
前記物体は、前記ロボットの体と、前記ロボットの外部の物体との少なくとも一方を含んでもよい。
【００１５】
本発明の第２の態様に係るロボット制御方法は、操作者の動作に追従するようにロボットを制御するロボット制御装置のプロセッサが、前記ロボットの物体への衝突を検出するステップと、前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、を実行する。
【００１６】
本発明の第３の態様に係るロボット制御プログラムは、操作者の動作に追従するようにロボットを制御するロボット制御装置に、前記ロボットの物体への衝突を検出するステップと、前記検出するステップが前記衝突を検出した場合に、前記ロボットの周囲の状況に対応する衝突を回避可能な駆動内容を示す学習モデルと、前記ロボットの過去の駆動履歴との少なくとも一方に基づいて、前記検出するステップが検出した前記衝突を回避可能な駆動内容を決定するステップと、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記決定するステップが決定した前記駆動内容を前記ロボットに行わせるステップと、を実行させる。
【００１７】
本発明の第４の態様に係るロボット制御装置は、操作者の動作に追従するようにロボットを制御するロボット制御装置であって、前記ロボットの物体への衝突を検出する衝突検出部と、前記衝突検出部が前記衝突を検出した場合に、前記衝突検出部が検出した前記衝突を回避可能な駆動内容を決定するとともに、前記ロボットが前記衝突を回避した後に所定の姿勢に遷移する駆動内容を決定する駆動決定部と、前記操作者の動作への追従を前記ロボットに停止させるとともに、前記駆動決定部が決定した前記駆動内容を前記ロボットに行わせる駆動制御部と、を有する。
【発明の効果】
【００１８】
本発明によれば、ロボットが物体に衝突することを回避するための演算時間を短縮できるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るロボット制御システムの模式図である。
【図２】本実施形態に係るロボット制御システムのブロック図である。
【図３】ロボットの動作中に発生し得る衝突を説明する図である。
【図４】学習モデルを用いて衝突を回避する第１の方法を説明する模式図である。
【図５】駆動履歴を用いて衝突を回避する第２の方法を説明する模式図である。
【図６】衝突を回避した後に操作者の姿勢とロボットの姿勢とを合わせる方法を説明する模式図である。
【図７】本実施形態に係る表示部が表示する画面を示す模式図である。
【図８】本実施形態に係るロボット制御方法のフローチャートを示す図である。
【発明を実施するための形態】
【００２０】
［ロボット制御システムＳの構成］
図１は、本実施形態に係るロボット制御システムＳの模式図である。ロボット制御システムＳは、ロボット制御装置１と、ロボット２とを含む。ロボット制御システムＳは、その他のサーバ、端末等の機器を含んでもよい。
【００２１】
ロボット制御装置１は、操作者Ｕ（ユーザ）の操作を示す情報に基づいてロボット２を制御するコンピュータである。ロボット制御装置１は、ロボット２に一体化されて構成されてもよい。すなわち、ロボット２は、ロボット制御装置１の機能を有してもよい。
【００２２】
ロボット制御装置１は、操作者Ｕの動作を示す情報を取得する動作情報取得部１１と、操作者Ｕに対して情報を表示する表示部１２とを有する。動作情報取得部１１は、操作者Ｕの体から離れて設けられてもよく、操作者Ｕの体に装着されてもよい。表示部１２は操作者Ｕの頭部に固定されており、操作者Ｕは頭部を動かしても表示部１２が表示している情報を視認できる。
【００２３】
ロボット２は、ロボット制御装置１から受信した信号に従って動作する装置である。図１の例では、ロボット２は人間と同様の頭部、腕部等を有しており、ロボット２を操作する操作者Ｕの体の動きに追従して各部が動作するように制御される。また、ロボット２は、撮像部２１を有しており、撮像部２１が撮像した撮像画像をロボット制御装置１へ送信する。ロボット２は、有線又は無線でロボット制御装置１に接続され、ロボット制御装置１との間で信号を授受する。ロボット２は、ロボット制御装置１に直接接続されてもよく、インターネット等のネットワークを介して接続されてもよい。
【００２４】
［ロボット制御システムＳの構成］
図２は、本実施形態に係るロボット制御システムＳのブロック図である。図２において、矢印は主なデータの流れを示しており、図２に示したもの以外のデータの流れがあってよい。図２において、各ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図２に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【００２５】
ロボット２は、撮像部２１、駆動部２２と、インタフェース２３とを有する。インタフェース２３は、ロボット制御装置１との間で信号の授受をするための接続部である。インタフェース２３は、ロボット制御装置１から受信した信号に所定の処理を行ってデータを取得し、取得したデータを駆動部２２に入力する。また、インタフェース２３は、撮像部２１から入力されたデータに所定の処理を行って信号を生成し、生成した信号をロボット制御装置１に送信する。
【００２６】
駆動部２２は、ロボット２の各部位に動力を供給するモータ、アクチュエータ等の駆動装置を含む。駆動部２２は例えばロボット２の腕に設けられており、ロボット２はロボット制御装置１の指示に基づいて駆動部２２が動作することによって、物に触れたり、物を掴んだりする。駆動部２２は、ロボット制御装置１から受信した駆動情報に従って、ロボット２の各部位を駆動する。
【００２７】
撮像部２１は、ロボット２自身の体を含む所定の撮像範囲を撮像する撮像装置である。撮像部２１は、１つ又は複数の撮像素子を含む。撮像部２１は、予め設定されたタイミングで撮像を行ってもよく、あるいはロボット制御装置１から受信した撮像の指示に従って撮像を行ってもよい。撮像部２１は、撮像素子を用いて撮像した撮像画像を示す信号をロボット制御装置１に送信する。
【００２８】
ロボット制御装置１は、上述の動作情報取得部１１及び表示部１２に加えて、制御部１３と、記憶部１４と、インタフェース１５とを有する。制御部１３は、動作特定部１３１と、衝突検出部１３２と、駆動決定部１３３と、駆動制御部１３４と、表示制御部１３５とを有する。記憶部１４は、学習モデル記憶部１４１と、駆動履歴記憶部１４２とを有する。
【００２９】
インタフェース１５は、ロボット２との間で信号の授受をするための接続部である。インタフェース１５は、ロボット２から受信した信号に所定の処理を行ってデータを取得し、取得したデータを制御部１３に入力する。また、インタフェース１５は、制御部１３から入力されたデータに所定の処理を行って信号を生成し、生成した信号をロボット２に送信する。
【００３０】
動作情報取得部１１は、操作者Ｕの動作を示す動作情報を取得する。例えば動作情報取得部１１は、操作者Ｕに向けて赤外線等の光を照射し、操作者Ｕの体の各部位に装着された受光部が光を受けたタイミングを、動作情報として取得する。あるいは動作情報取得部１１は、撮像素子を用いて操作者Ｕの体を含む撮像範囲を撮像した撮像画像を、動作情報として取得する。動作情報取得部１１は、ここに示した方法に限られず、その他の方法で操作者Ｕの動作を示す動作情報を取得してもよい。動作情報取得部１１は、取得した動作情報を示す信号を制御部１３に入力する。
【００３１】
表示部１２は、各種情報を表示するための、液晶ディスプレイ等の表示装置を含む。表示部１２は、制御部１３から受け取った信号に従って情報を表示する。
【００３２】
記憶部１４は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスクドライブ等を含む記憶媒体である。記憶部１４は、制御部１３が実行するプログラムを予め記憶している。学習モデル記憶部１４１は、機械学習によって生成された、衝突を回避するための駆動情報を示す学習モデルを記憶する。駆動履歴記憶部１４２は、ロボット２の駆動部２２の駆動履歴を記憶する。学習モデル記憶部１４１及び駆動履歴記憶部１４２は、それぞれ記憶部１４中の記憶領域でもよく、記憶部１４に記憶されたデータベースでもよい。記憶部１４は、ロボット制御装置１の外部に設けられてもよく、その場合にインタフェース１５を介して制御部１３との間でデータの授受を行ってもよい。
【００３３】
制御部１３は、例えばＣＰＵ（Central Processing Unit）等のプロセッサであり、記憶部１４に記憶されたプログラムを実行することにより、動作特定部１３１、衝突検出部１３２、駆動決定部１３３、駆動制御部１３４及び表示制御部１３５として機能する。動作特定部１３１、衝突検出部１３２、駆動決定部１３３、駆動制御部１３４及び表示制御部１３５の記憶については、図３〜図７を用いて後述する。制御部１３の機能の少なくとも一部は、電気回路によって実行されてもよい。また、制御部１３の機能の少なくとも一部は、ネットワーク経由で実行されるプログラムによって実行されてもよい。
【００３４】
本実施形態に係るロボット制御システムＳは、図２に示す具体的な構成に限定されない。例えばロボット制御装置１及びロボット２は、それぞれ１つの装置に限られず、２つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されてもよい。
【００３５】
［ロボット制御方法の説明］
本実施形態に係るロボット制御装置１が実行するロボット制御方法を以下に説明する。まず動作特定部１３１は、動作情報取得部１１から動作情報を取得し、取得した動作情報に基づいて操作者Ｕの動作を特定する。操作者Ｕの体の各部位に装着された受光部が光を受けたタイミングを示す動作情報を用いる場合には、動作特定部１３１は、複数の時点の該タイミングと受光部が装着された体の部位との間の関係を特定することによって、各部位の相対的な位置関係及び各部位の位置の変化を含む、操作者Ｕの動作を特定する。
【００３６】
操作者Ｕの体を含む撮像範囲を撮像した撮像画像を示す動作情報を用いる場合には、動作特定部１３１は、パターンマッチング等の画像認識技術を用いて複数の時点の該撮像画像に含まれる体の部位を特定することによって、各部位の相対的な位置関係及び各部位の位置の変化を含む、操作者Ｕの動作を特定する。
【００３７】
動作特定部１３１が操作者Ｕの動作を特定するのと並行して、衝突検出部１３２はロボット２の体の少なくとも一部が物体に衝突（接触）すること又は衝突したことを検出する。ロボット２が衝突する相手の物体は、ロボット２自身の体及びロボット２の外部の物体の少なくとも一方である。
【００３８】
図３は、ロボット２の動作中に発生し得る衝突を説明する図である。操作者Ｕが腕を動かすように動作すると、ロボット制御装置１は操作者Ｕの動作に対応するように、ロボット２の腕を動作させる。操作者Ｕの体の形状とロボット２の体の形状との間には差異があるため、ロボット２は操作者Ｕの動作に追従しようとすると、ロボット２の体が物体と衝突する場合がある。図３はロボット２の２本の腕同士が衝突する場合を表しているが、ロボット２の腕と外部の物体とが衝突する場合もある。
【００３９】
衝突検出部１３２は、ロボット２の体が物体に衝突することを予測し、又はロボット２の体が物体に衝突したことを感知することによって、衝突を検出する。衝突検出部１３２は、例えばロボット２の撮像部２１が撮像した撮像画像を取得して、パターンマッチング等の画像認識技術を用いて撮像画像内の物体を抽出する。そして衝突検出部１３２は、後述の駆動制御部１３４がロボット２の体の部位を駆動する向き（ベクトル）上に抽出した物体があり、かつ該体の部位と該物体との間の距離が所定の値以下である場合に、ロボット２の体が物体に衝突することを予測する。
【００４０】
また、衝突検出部１３２は、例えばロボット２の体の少なくとも一部に設けられた圧力センサ、加速度センサ等のセンサから値を取得し、取得した値が、物体への衝突を示す所定の条件を満たす場合にロボット２の体が物体に衝突したことを感知する。
【００４１】
衝突検出部１３２は、ここに示した方法に限られず、その他の方法でロボット２の体の少なくとも一部が物体に衝突すること又は衝突したことを検出してもよい。
【００４２】
駆動決定部１３３は、動作特定部１３１が特定した操作者Ｕの動作と、衝突検出部１３２が衝突を検出した結果とに基づいて、ロボット２を駆動する指示を示す駆動情報を決定する。
【００４３】
衝突検出部１３２が衝突を検出しなかった場合に、駆動決定部１３３は、動作特定部１３１が特定した操作者Ｕの動作に対応するロボット２の動作を決定する。駆動決定部１３３は、操作者Ｕの動作と同一の動作をロボット２の動作としてもよく、操作者Ｕの動作に対して所定の変換を加えた動作をロボット２の動作としてもよい。また、駆動決定部１３３は、操作者Ｕの動作に基づいてロボット制御装置１上で仮想的な姿勢のモデルを動かし、該姿勢のモデルの動作に基づいてロボット２の動作を決定してもよい。そして駆動決定部１３３は、ロボット２が該動作をするように駆動部２２を駆動する指示を示す駆動情報を決定する。駆動部２２を駆動する様々な指示は、予めロボット制御装置１に設定される。
【００４４】
駆動制御部１３４は、駆動決定部１３３が決定した駆動情報をロボット２に送信することによって、動作特定部１３１が特定した操作者Ｕの動作に追従するように、ロボット２を制御する。ロボット２の駆動部２２は、ロボット制御装置１から受信した駆動情報に従って、ロボット２の各部位を駆動する。
【００４５】
衝突検出部１３２が衝突を検出した場合に、まず駆動制御部１３４は、ロボット２に所定の停止情報を送信することによって、操作者Ｕの動作への追従をロボット２に停止させる。そして駆動決定部１３３は、衝突を回避するためのロボット２の動作を決定する。衝突を回避することは、衝突の発生前に衝突を防ぐことと、衝突の発生後に衝突を解消することとを含む。本発明者は、従来のモーションプランニングの代わりに又は従来のモーションプランニングに加えて、学習モデルを用いて衝突を回避する第１の方法と、駆動履歴を用いて操作者Ｕの直前の動作を巻き戻すことによって衝突を回避する第２の方法との少なくとも一方によって、衝突を回避することを考案した。これらの方法は、従来のモーションプランニングを行うよりも、格段に早い衝突からの復帰を実現できる。
【００４６】
図４は、学習モデルを用いて衝突を回避する第１の方法を説明する模式図である。図４は、時刻Ｔ１、時刻Ｔ２にかけて順にロボット２の腕が動作し、その後、時刻Ｔ３の時点で衝突検出部１３２が衝突を検出したことを表している。
【００４７】
学習モデル記憶部１４１には、機械学習によって生成された、衝突を回避するための駆動情報を示す学習モデルが予め記憶されている。ロボット制御装置１は、機械学習技術を用いて、ロボット２の周囲の様々な状況ごとに、衝突を回避可能なロボット２の駆動部２２の駆動内容を学習し、学習モデルとして学習モデル記憶部１４１に予め記憶させる。駆動内容は、ロボット２の部位の移動を示すベクトルや、ロボット２の部位の移動後の位置を示す情報等、駆動部２２がどのように駆動するかを示す情報である。ロボット制御装置１は、機械学習技術として、ニューラルネットワーク、サポートベクトルマシン等の公知の学習技術を用いることができる。
【００４８】
駆動決定部１３３は、時刻Ｔ３において衝突検出部１３２が衝突を検出した場合に、ロボット２の撮像部２１が撮像した撮像画像を取得し、取得した撮像画像からロボット２の周囲の状況を特定する。ロボット２の周囲の状況は、ロボット２の各部位の位置と、ロボット２の近傍にある物体の位置とを含む。駆動決定部１３３は、学習モデル記憶部１４１からロボット２の周囲の状況に対応する学習モデルを取得し、取得した学習モデルが示す、衝突を回避可能な駆動内容を示す駆動情報を決定する。
【００４９】
このように駆動決定部１３３は、第１の方法として学習モデルを用いるため、衝突回避のためのシミュレーション等の複雑な計算が不要であり、高速に駆動情報を決定するための、演算時間を短縮できる。また、駆動決定部１３３は、衝突が検出された際のロボット２の周囲の状況に対応する駆動内容を決定するため、ロボット２が衝突を回避する際に他の物体に衝突することを抑制でき、状況ごとに適した動作をして衝突を回避できる。
【００５０】
図５は、駆動履歴を用いて衝突を回避する第２の方法を説明する模式図である。図５は、時刻Ｔ１、時刻Ｔ２にかけて順にロボット２の腕が動作し、その後、時刻Ｔ３の時点で衝突検出部１３２が衝突を検出したことを表している。
【００５１】
駆動履歴記憶部１４２には、ロボット２の駆動部２２が過去に実行した駆動内容を示す駆動履歴が記憶されている。駆動履歴記憶部１４２は、過去の全ての駆動履歴を記憶してもよく、現在から遡って所定時間の駆動履歴を記憶してもよい。
【００５２】
駆動決定部１３３は、時刻Ｔ３において衝突検出部１３２が衝突を検出した場合に、駆動履歴記憶部１４２から、衝突検出時から遡って所定時間（例えば５秒）の駆動履歴を取得する。そして駆動決定部１３３は、取得した駆動履歴が示す所定時間の駆動内容を時間順に逆にした駆動内容、すなわち衝突検出時から遡って所定時間前まで巻き戻す駆動内容を、衝突を回避可能な駆動内容を示す駆動情報として決定する。
【００５３】
図５の例では、駆動決定部１３３は、時刻Ｔ３から時刻Ｔ２まで巻き戻し、さらに時刻Ｔ２から時刻Ｔ１まで巻き戻すように、ロボット２の駆動部２２の駆動情報を決定する。このように駆動決定部１３３は、第２の方法として、ロボット２の部位が過去に実際に駆動した駆動履歴を用いて、実際に行った駆動内容を巻き戻すようにロボット２を駆動する。そのため、駆動決定部１３３は、衝突回避のためのシミュレーション等の複雑な計算が不要であり、高速に駆動情報を決定するための演算時間を短縮できる。また、ロボット２が衝突を回避する際に他の物体に衝突することを抑制でき、また予め学習モデルを構築する必要がないため実装が容易である。
【００５４】
駆動決定部１３３は、第１の方法と第２の方法とを、状況によって切り替えて実行してもよい。例えば駆動決定部１３３は、学習モデルを用いる第１の方法の処理が失敗した又は計算時間が所定値以上になった場合に、駆動履歴を用いる第２の方法に切り替える。これにより、周囲の状況に対応する学習モデルが学習モデル記憶部１４１に記憶されていなかった場合や、撮像画像に基づいて学習モデルを取得する計算の解が出なかった場合等に、駆動決定部１３３は、第１の方法を中止して第２の方法を用いて処理を続行できる。
【００５５】
駆動制御部１３４は、駆動決定部１３３が決定した駆動情報をロボット２に送信することによって、衝突検出部１３２が検出した衝突を回避するようにロボット２を制御する。このとき駆動制御部１３４は、駆動履歴記憶部１４２に記憶されている駆動履歴に、最新の駆動情報を追加する。ロボット２の駆動部２２は、ロボット制御装置１から受信した駆動情報に従って、ロボット２の各部位を駆動する。
【００５６】
操作者Ｕの全ての動作への追従をロボット２に停止させると、操作者Ｕが頭部を動かしてもロボット２の撮像部２１が撮像した画像（すなわち表示部１２に表示されている画像）が変化しないため、操作者Ｕは自身の動作とロボット２の動作とのズレに起因する画面酔いをする場合がある。そのため駆動制御部１３４は、操作者Ｕの動作へ追従する動作を停止した場合であっても、操作者Ｕの頭部の動作への追従を停止させる必要が生じない範囲において（例えば、ロボット２の頭部の衝突が検出されていないことを条件として）、操作者Ｕの頭部の動作への追従は継続し、操作者Ｕの頭部以外の動作への追従を停止することが望ましい。
【００５７】
例えば駆動制御部１３４は、ロボット２の腕の衝突を回避する動作をロボット２に行わせている際に、操作者Ｕの頭部の動作に対応する動作をロボットに行わせる。これにより操作者Ｕは、ロボット２が回避動作を行っている際にも、自身の頭部に追従した画像を表示部１２で見ることができるため、自身の動作とロボット２の動作とのズレに起因する画面酔いをしづらい。
【００５８】
ロボット２が衝突を回避する動作は操作者Ｕの動作に追従しないため、ロボット２が衝突を回避する行動をした後には、操作者Ｕの姿勢とロボット２の姿勢との間にずれが生じる。そのためロボット２は、衝突を回避した後に、操作者Ｕの動作に追従することが難しくなる。そこで、駆動決定部１３３は、衝突を回避した後に操作者Ｕの姿勢とロボット２の姿勢とを合わせる駆動内容を示す駆動情報を決定することが望ましい。
【００５９】
図６は、衝突を回避した後に操作者Ｕの姿勢とロボット２の姿勢とを合わせる方法を説明する模式図である。衝突検出部１３２が図６の上段のような衝突を検出すると、駆動決定部１３３は、まず上述の学習モデルを用いる第１の方法又は駆動履歴を用いる第２の方法を用いて、衝突を回避可能な駆動内容を示す駆動情報を決定する。このときロボット２は、操作者Ｕの動作へ追従する動作を停止しているため、図６の中段のように操作者Ｕの姿勢とロボット２の姿勢との間にずれが生じる。
【００６０】
駆動決定部１３３は、衝突を回避可能な駆動の実行の後に、上述の学習モデルを用いる第１の方法によって、ロボット２を所定の姿勢に遷移させる駆動内容を示す駆動情報を決定する。所定の姿勢は、操作者Ｕとの共通認識として定められた姿勢である。図６の例では、所定の姿勢は手を下方に伸ばして広げた姿勢である。この場合に、操作者Ｕは、図６の下段のように、自らの体を動かして所定の姿勢に遷移する。
【００６１】
あるいは所定の姿勢は、操作者Ｕの現在の姿勢であってもよい。この場合に、動作特定部１３１が操作者Ｕの現在の姿勢を特定し、駆動決定部１３３は、ロボット２の姿勢を操作者Ｕの現在の姿勢に遷移させるように駆動情報を決定する。
【００６２】
駆動制御部１３４は、ロボット２が所定の姿勢に遷移する駆動の実行を完了し、かつ操作者Ｕが所定の姿勢になった場合に、ロボット２を操作者Ｕの動作に追従させる制御を再開する。操作者Ｕの姿勢は、動作特定部１３１によって特定される。このように、ロボット制御装置１は、衝突を回避した後に操作者Ｕの姿勢とロボット２の姿勢とを合わせ、操作者Ｕの動作への追従をロボット２に再開させることができる。
【００６３】
表示制御部１３５は、駆動制御部１３４によるロボット２の駆動制御と並行して、ロボット２の撮像部２１が撮像した画像を表示させるように表示部１２を制御する。図７（ａ）、図７（ｂ）は、本実施形態に係る表示部１２が表示する画面を示す模式図である。
【００６４】
動作特定部１３１が特定した操作者Ｕの動作に対応する動作をロボット２に行わせる場合（すなわち衝突検出部１３２が衝突を検出しなかった場合）に、表示制御部１３５は、図７（ａ）のように、ロボット２の撮像部２１が撮像した画像を表す画面Ａを表示部１２に表示させる。
【００６５】
衝突検出部１３２が決定した衝突を回避する動作をロボット２に行わせる場合（すなわち衝突検出部１３２が衝突を検出した場合）に、表示制御部１３５は、図７（ｂ）のように、ロボット２の撮像部２１が撮像した画像に、ロボット２が衝突回避動作を行っていることを表す情報Ｃを重畳した画面Ｂを表示部１２に表示させる。すなわち、表示制御部１３５は、ロボット２が操作者Ｕの動作へ追従する動作をしている期間と、ロボット２が操作者Ｕの動作へ追従する動作を停止している期間との間で、表示部１２の表示態様を変更する。表示制御部１３５は、例えば画面Ｂにおいてロボット２の撮像部２１が撮像した画像の明度を下げることによって、画面Ａとの表示態様を変更する。
【００６６】
このように表示制御部１３５は、動作特定部１３１が特定した操作者Ｕの動作に対応する動作をロボット２が行っているか、衝突検出部１３２が決定した衝突を回避する動作をロボット２が行っているかを、操作者Ｕが区別できるように表示制御を行う。衝突発生時に、操作者Ｕはさらなる衝突を発生させないことを意識して、自身の体を動かしてよいかどうかわからなくなる場合がある。図７（ａ）、図７（ｂ）のように表示部１２に追従の有無を明示することによって、操作者Ｕはロボット２が衝突発生時に自身の動作に追従していないことを認識することができ、自由に体を動かせるようになる。また、操作者Ｕは、表示部１２上で追従の有無を認識することによって、自身の動作とロボット２の動作とのズレに起因する画面酔いをしづらい。
【００６７】
［ロボット制御方法のフローチャート］
図８は、本実施形態に係るロボット制御方法のフローチャートを示す図である。図８のフローチャートは、例えば操作者Ｕがロボット制御装置１に対して所定の開始操作を行うことによって開始される。まず動作特定部１３１は、動作情報取得部１１から動作情報を取得し、取得した動作情報に基づいて操作者Ｕの動作を特定する（Ｓ１１）。
【００６８】
ステップＳ１１で動作特定部１３１が操作者Ｕの動作を特定するのと並行して、衝突検出部１３２は、ロボット２の体の少なくとも一部が物体に衝突すること又は衝突したことを検出する（Ｓ１２）。
【００６９】
ステップＳ１２で衝突検出部１３２が衝突を検出しなかった場合に（Ｓ１３のＮＯ）、駆動決定部１３３は、ステップＳ１１で動作特定部１３１が特定した操作者Ｕの動作に対応するロボット２の動作を決定し、ロボット２が該動作をするように駆動部２２を駆動する指示を示す駆動情報を決定する（Ｓ１４）。
【００７０】
駆動制御部１３４は、ステップＳ１４で駆動決定部１３３が決定した駆動情報をロボット２に送信することによって、ステップＳ１１で動作特定部１３１が特定した操作者Ｕの動作に追従するようにロボット２を制御する（Ｓ１５）。
【００７１】
ステップＳ１２で衝突検出部１３２が衝突を検出した場合に（Ｓ１３のＹＥＳ）、駆動制御部１３４は、ロボット２に所定の停止情報を送信することによって、操作者Ｕの動作への追従をロボット２に停止させる（Ｓ１６）。駆動決定部１３３は、学習モデル記憶部１４１からロボット２の周囲の状況に対応する学習モデルを取得し、又は駆動履歴記憶部１４２から所定時間の駆動履歴を取得する（Ｓ１７）。そして駆動決定部１３３は、ステップＳ１６で取得した学習モデル又は駆動履歴に基づいて、衝突を回避可能な駆動内容を示す駆動情報を決定する（Ｓ１８）。
【００７２】
駆動制御部１３４は、ステップＳ１７で駆動決定部１３３が決定した駆動情報をロボット２に送信することによって、衝突検出部１３２が検出した衝突を回避するようにロボット２を制御する（Ｓ１９）。
【００７３】
所定の終了条件（例えば操作者Ｕがロボット制御装置１に対して所定の終了操作を行うこと）が満たされていない場合に（Ｓ２０のＮＯ）、ロボット制御装置１はステップＳ１１に戻って処理を繰り返す。所定の終了条件が満たされた場合に（Ｓ２０のＹＥＳ）、ロボット制御装置１は処理を終了する。
【００７４】
［実施形態の効果］
本実施形態に係るロボット制御装置１は、学習モデル又は駆動履歴を用いて衝突を回避するためのロボット２の駆動内容を決定し、操作者Ｕの動作への追従を停止して衝突を回避するようにロボット２を駆動する。そのため、衝突回避のためにロボット２の各部位をどのように駆動するか（モーションプランニング）の演算時間を短縮できる。また、ロボット２が衝突を回避する際に別の物体に衝突することを抑制できる。
【００７５】
操作者Ｕの動作に追従するようにロボット２を動作させる際には、操作者Ｕの操作の違和感を小さくするために、操作者Ｕの動作を検出してからロボット２の駆動内容を決定するまでのタイムラグを小さくすることが求められる。本実施形態に係るロボット制御装置１は、衝突回避のために学習モデル又は駆動履歴を用いているため、衝突回避のためのシミュレーション等の複雑な計算が不要であり、高速に駆動内容を決定し、タイムラグを低減できる。
【００７６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【００７７】
ロボット制御装置１の制御部１３（プロセッサ）は、図８に示すロボット制御方法に含まれる各ステップ（工程）の主体となる。すなわち、制御部１３は、図８に示すロボット制御方法を実行するためのプログラムを記憶部１４から読み出し、当該プログラムを実行してロボット制御装置１の各部を制御することによって、図８に示すロボット制御方法を実行する。図８に示すロボット制御方法に含まれるステップは一部省略されてもよく、ステップ間の順番が変更されてもよく、複数のステップが並行して行われてもよい。
【符号の説明】
【００７８】
Ｓ  ロボット制御システム
１  ロボット制御装置
１２  表示部
１３  制御部
１３２  衝突検出部
１３３  駆動決定部
１３４  駆動制御部
１３５  表示制御部
１４  記憶部
１４１  学習モデル記憶部
１４２  駆動履歴記憶部
２  ロボット
【図１】
2019202354.tif 000003
【図２】
2019202354.tif 000004
【図３】
2019202354.tif 000005
【図４】
2019202354.tif 000006
【図５】
2019202354.tif 000007
【図６】
2019202354.tif 000008
【図７】
2019202354.tif 000009
【図８】
2019202354.tif 000010