(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157873
(43)【公開日】2024-11-08
(54)【発明の名称】ロボット制御装置、ロボット制御システム、および、ロボット制御方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20241031BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023072499
(22)【出願日】2023-04-26
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】矢野 泰樹
(72)【発明者】
【氏名】伊藤 潔人
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707KS03
3C707KS04
3C707KS21
3C707KS23
3C707KS31
3C707KS36
3C707KT03
3C707KT06
3C707KX10
3C707LS15
3C707LV14
3C707LW03
3C707LW12
(57)【要約】
【課題】 動作間の遷移可否を算出し、一連動作の遷移可否をプログラム・学習させることなく自動で判断できるロボット制御装置を提供する。
【解決手段】 ロボットの動作を制御するロボット制御装置であって、ロボットの動作と、動作前のロボットの作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報を記憶する記憶部と、ある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の作業周辺環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成する一連動作生成部と、前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御するロボット制御部と、を備えるロボット制御装置。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ロボットの動作を制御するロボット制御装置であって、
ロボットの動作と、動作前のロボットの作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報を記憶する記憶部と、
前記複数の動作情報と、ある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の作業周辺環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成する一連動作生成部と、
前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御するロボット制御部と、を備えることを特徴とするロボット制御装置。
【請求項2】
請求項1に記載のロボット制御装置であって、
前記一連動作生成部は、前記類似度が高い動作情報同士を繋げ、ロボットの一連動作を生成することを特徴とするロボット制御装置。
【請求項3】
請求項1又は請求項2に記載のロボット制御装置であって、
前記一連動作生成部は、前記現在の動作状態を起点とし、前記目標を終点として、前記動作情報同士を繋げ、ロボットの一連動作を生成することを特徴とするロボット制御装置。
【請求項4】
請求項1に記載のロボット制御装置であって、
前記記憶部は、前記動作情報同士の類似度を記憶することを特徴とするロボット制御装置。
【請求項5】
請求項1に記載のロボット制御装置であって、
前記動作情報を用いて、ある動作の動作情報と他の動作前情報との類似度を算出し、前記記憶部に入力する類似度算出部を備えることを特徴とするロボット制御装置。
【請求項6】
請求項1に記載のロボット制御装置であって、
動作遷移の成否の判定結果である動作遷移判定結果を判定する動作遷移判定部と、
前記類似度を更新する類似度更新部とを備え、
前記類似度更新部は、前記一連動作と現在の状態及び前記動作遷移判定結果を基に、前記類似度を更新し、
前記一連動作生成部は、前記動作遷移判定部が前記動作遷移が失敗したと判定した際に、前記一連動作を再生成することを特徴とするロボット制御装置。
【請求項7】
請求項1に記載のロボット制御装置であって、
前記作業周辺環境の状態には、前記作業周辺環境から取得した画像、音声、距離のいずれかの情報、及び、それらの加工情報が含まれ、
前記ロボットの状態には、前記ロボットの関節角、加速度、及び触覚の内、いずれかが含まれることを特徴とするロボット制御装置。
【請求項8】
請求項1に記載のロボット制御装置であって、
ある動作の動作後情報と他の動作の動作前情報との類似度を用いて、前記ある動作から前記他の動作へ遷移する確率を算出する確率算出部と、
前記一連動作生成部は、前記確率を用いて、ロボットの一連動作を生成することを特徴とするロボット制御装置。
【請求項9】
請求項8に記載のロボット制御装置であって、
前記確率算出部は、前記動作後情報と前記動作前情報との前記作業周辺環境及び前記ロボットの状態の分布の類似度に基づいて、前記ある動作から前記他の動作へ遷移する確率を算出する確率算出部と、
前記一連動作生成部は、前記確率を用いて、ロボットの一連動作を生成することを特徴とするロボット制御装置。
【請求項10】
請求項9に記載のロボット制御装置であって、
動作遷移の成否の判定結果である動作遷移判定結果を判定する動作遷移判定部を備え、
前記一連動作生成部は、前記動作遷移判定部が前記動作遷移が失敗したと判定した際に、前記一連動作を再生成することを特徴とするロボット制御装置。
【請求項11】
請求項10に記載のロボット制御装置であって、
前記確率を更新する遷移確率更新部と、
前記遷移確率更新部は、前記一連動作と現在の状態及び前記動作遷移判定結果を基に、前記確率を更新することを特徴とするロボット制御装置。
【請求項12】
請求項1に記載のロボット制御装置であって、
前記動作前情報及び前記動作後情報は、前記作業周辺環境及び前記ロボットの状態の分布であることを特徴とするロボット制御装置。
【請求項13】
請求項1に記載のロボット制御装置であって、
前記作業周辺環境及び前記ロボットの状態の内、どちらか一方を含む現在の状態を受け付ける状態入力部を備えることを特徴とするロボット制御装置。
【請求項14】
請求項1に記載のロボット制御装置であって、
前記目標を受け取る目標入力部を備えることを特徴とするロボット制御装置。
【請求項15】
ロボットの動作を制御するロボット動作制御方法であって、
一連動作生成部を用いて、記憶部が記憶しているロボットの動作と、動作前の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報からある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の動作環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成し、
ロボット制御部を用いて、前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御することを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの動作を制御するロボット制御装置、ロボット制御システム、および、ロボット制御方法に関する。
【背景技術】
【0002】
近年の製造・物流・サービス・施工・設備保守等の分野では、ロボットを用いた作業自動化の需要が高まっている。この種のロボットが、例えば、目的を達成するために複数の作業を遂行する必要がある場合には、各作業を遂行するための動作だけでなく、それぞれの動作による状態の遷移を推定したうえで、遷移が可能である順に一連の動作を実行する必要がある。
【0003】
ここで、ロボット制御時に動作状態遷移を推定する従来技術としては、特許文献1の学習装置が知られている。例えば、特許文献1の請求項1には、「計測された制御対象の状態及び制御対象に対する指令に基づき制御対象の次状態を予測する複数の状態遷移モデル、及び、複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成する作成部と、計測された制御対象の状態を入力し、制御対象に対する指令又は指令系列の複数の候補を生成し、制御対象の状態、及び、制御対象に対する指令又は指令系列の複数の候補から集約状態遷移モデルを用いて予測される制御対象の複数の状態又は状態系列を取得し、制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する指令生成部と、出力される指令に対応して予測される制御対象の次状態と、次状態に対応する制御対象の計測された状態と、の間の誤差が小さくなるように集約状態遷移モデルを更新する学習部と、を備えた学習装置」が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の学習装置では、出力される指令に対応して予測される制御対象の次状態と、次状態に対応する制御対象の計測された状態と、の間の誤差が小さくなるように集約状態遷移モデルを更新する必要があった。
【0006】
しかし、状態および指令の候補が多数存在する場合、各状態および指令のもとで計測された次状態を用いて状態遷移モデルを都度更新する必要があるため、この状態遷移モデルの学習に時間がかかってしまうことがある。このため、状態を都度計測して学習させることなく、遷移可否を自動で推定できるのが望ましい。
【0007】
そこで、本発明は、動作間の遷移可否を算出し、遷移可能な一連動作を生成できるロボット制御装置およびロボット制御方法を提供することを目的とした。
【課題を解決するための手段】
【0008】
本発明によるロボット制御装置は、ロボットの動作を制御するロボット制御装置であって、ロボットの動作と、動作前のロボットの作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報を記憶する記憶部と、ある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の作業周辺環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成する一連動作生成部と、前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御するロボット制御部と、を備える。
【0009】
また、本発明によるロボット制御方法は、ロボットの動作を制御するロボット動作制御方法であって、一連動作生成部を用いて、記憶部が記憶しているロボットの動作と、動作前の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報からある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の動作環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成し、ロボット制御部を用いて、前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御する。
【発明の効果】
【0010】
本発明によると、動作間の遷移可否を算出し、遷移可能な一連動作を生成できるロボット制御装置およびロボット制御方法を提供することができる。
【図面の簡単な説明】
【0011】
【
図1】実施例1のロボット制御装置の使用環境を示す概説図。
【
図2】実施例1のロボット制御装置のハードウェア構成を示すブロック図。
【
図3】実施例1のロボット制御装置の機能ブロック図。
【
図5】実施例2のロボット制御装置の機能ブロック図。
【
図8】遷移失敗を通知して制御入力設定を受け付ける表示画面の一例を示す図。
【発明を実施するための形態】
【0012】
まず、本発明の実施例に係るロボット制御装置とロボット制御方法の説明に先立ち、本発明の実施例における前提や、本発明の実施例で用いる用語を説明する。本発明では、一連動作を実行することで目的となる作業を完遂するようにロボットを制御する。本発明における「状態」とは、ロボット自身のある時点での情報である。「状態」としては、例えば、後述の計測センサで計測されたロボット位置姿勢の情報を含む。また、「作業周辺環境」とは、ロボットが作業する周辺環境のある時点での情報である。「作業周辺環境」としては、例えば、後述の計測センサで計測された作業周辺環境の情報を含む。なお、「状態」や「作業周辺環境」は、作業周辺環境情報やロボット位置姿勢情報の時空間上での差分情報であってもよいし、ロボット周囲の物品の認識結果のような1次情報を加工した情報であってもよい。また、本発明における「動作」とは、1つ以上の状態を遷移させることであり、「一連動作」とは、複数の動作からなる動作列のことである。所定の動作を実行するための指令をロボットに与えることでロボットを制御する。
【0013】
通常、一連動作を実行するには、前の動作に続けて次の動作が実行できなければならないが、ある動作の後に別の動作を実行可能であるかを事前に知ることは困難である。このため、本発明では、動作と、動作後の状態に関する動作後情報と、動作前の状態に関する動作前情報と、を関連付けた動作情報を用いて、ある動作の動作後情報と他の動作の動作前情報との類似度を算出し、算出された類似度をもとに実行可能な一連動作を生成する。
【0014】
本発明によるロボット制御装置とロボット制御方法では、このような構成を備えるため、動作間の類似度を自動で算出することができ、動作間の遷移確率を人手で事前に指定、あるいは学習させる必要が無くなる。
【0015】
以下、本発明の実施例に関して、ロボット制御装置とロボット制御方法について、図面を参照しながら説明する。なお、本明細書で用いる図面において、同一の又は対応する構成要素には同一の符号を付け、これらの構成要素については繰り返しの説明を省略する場合がある。
【実施例0016】
以下、
図1から
図4を用いて、本発明の実施例1に係るロボット制御装置1を含むロボット制御システムについて説明する。
【0017】
図1は、ロボット制御装置1の使用環境を示す概説図である。同図において、ロボット2は、多関節アーム21とハンド22を有し、有線または無線で通信可能に接続されたロボット制御装置1によって制御される多関節アームロボットである。なお、ロボット2は、直交型ロボットであってもよい。ロボット2は、ロボット制御装置1を内蔵したものであってもよい。ロボット2は、移動可能なロボットであってもよい。計測センサ3は、ロボット2の作業周辺環境を計測する、カメラ、距離センサ、マイクなどのセンサである。計測センサ3は、ロボット制御装置1と有線または無線で通信可能に接続されている。計測センサ3は、ロボット2に内蔵したものであってもよい。物品4は、ロボット2によって取り扱われる、戸棚4a、やかん4b、蛇口4c、コンロ4dなどの種々物品である。指示入力装置5は、ユーザがロボット2に動作を指示する際に利用する。指示入力装置5は、例えば、キーボードやマウス、液晶ディスプレイ等のヒューマンインターフェース装置、または、スマートフォンやタブレット等である。指示入力装置5は、ロボット制御装置1と有線または無線で通信可能に接続されている。
【0018】
なお、
図1から明らかなように、ロボット2は、多関節アーム21を動かすことで、任意の物品4をハンド22で把持あるいは操作できる場所に設置されており、計測センサ3は、ロボット2の作業周辺環境全体を撮像可能な場所に設置されている。また、計測センサ3はロボット2に直接取り付けられたものであってもよく、ロボット2に内蔵された関節角センサ、加速度センサ、触覚センサ等であってもよい。
【0019】
図2は、ロボット制御装置1のハードウェア構成を示すブロック図である。ここに示すように、ロボット制御装置1は、CPUなどのプロセッサ11、半導体メモリなどの記憶デバイス12、指示入力装置5から情報を受信する入力部13、指示入力装置5に情報を送信する出力部14、ロボット2や計測センサ3と通信する通信インターフェース15、および、それらを接続するバス16などを備えたコンピュータである。なお、プロセッサ11が、所定のロボット制御処理プログラム12aを実行することで、後述する各機能部が実現されるが、以下では、この種の周知技術の説明を省略しながら、本発明の詳細を説明するものとする。
【0020】
図3は、ロボット制御装置1の機能ブロック図である。ここに示すように、ロボット制御装置1は、ロボット2がある動作を実行する際の、動作前の状態に関する動作前情報I
bと、動作後の状態に関する動作後情報I
aを関連付けた動作情報mを記憶する記憶部12bと、記憶部12bから受け取った動作情報mをもとに動作間の類似度を算出する類似度算出部11aと、算出された類似度と、ロボットの現在の動作周辺環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられる目標とを用いて、実行可能な一連動作を生成する一連動作生成部11bと、生成された一連動作を実行するための指令を求めるロボット制御部11cと、を備えている。ロボット制御部11cで求まった指令は通信インターフェース15を介してロボット2に送信することで、ロボット2を制御する。なお、実施例1においては、動作情報mをもとに動作間の類似度を算出する類似度算出部11aを設けたが、記憶部12bが、あらかじめ動作情報mをもとに算出された動作間の類似度を記憶しても良い。
【0021】
動作前情報Ibは、動作前の作業周辺環境とロボット2の状態の少なくとも一方に関する情報であり、両方を備えれば後述するロボット制御をより精度高く実施することができる。動作後情報Iaは、動作後の作業周辺環境とロボット2の状態の少なくとも一方に関する情報であり、両方を備えれば後述するロボット制御をより精度高く実施することができる。
【0022】
例えば、計測センサ3がカメラである場合には、記憶部12bは、カメラで撮像した、RGB画像、グレー画像、赤外線画像などの画像Pを動作前情報Ibおよび動作後情報Iaとして記憶する。また、例えば、計測センサ3が距離センサである場合には、記憶部12bは、距離センサで測定した、深度画像、点群データ等を動作前情報Ibおよび動作後情報Iaとして記憶する。距離センサとしては、例えば、LiDAR、レーザ変位計、ステレオカメラ、赤外線距離計、レーザ距離計、及びTOF距離センサなどである。また、例えば、計測センサ3がマイクである場合には、記憶部12bは、マイクで録音した音声データを動作前情報Ibおよび動作後情報Iaとして記憶する。また、例えば、計測センサがロボット2に内蔵された関節角センサおよび加速度センサおよび触覚センサである場合には、記憶部12bは、各センサで測定した関節角データおよび加速度データおよび触覚データを動作前情報Ibおよび動作後情報Iaとして取得する。
【0023】
なお、記憶部12bに記憶される動作前情報Ibおよび動作後情報Iaは、計測センサ3によって計測された情報そのものである必要はなく、それらを加工した情報であっても良い。例えば、関節角の速度や加速度、あるいは時系列画像から算出されるオプティカルフローのような計測情報間の差分情報であってもよい。また、例えば、あらかじめ定めた座標系から見た視点と合うようにホモグラフィ変換した画像を用いてもよいし、予め求めた計測情報の平均と標準偏差をもとに正規化した情報を用いても良い。
【0024】
また、動作前情報Ibおよび動作後情報Iaは、例えば、計測情報から抽出された特徴ベクトルおよび注目領域および物品認識結果であってもよい。特徴ベクトル抽出および注目領域算出および物品認識の方法の例には、SIFT、及びORBなどの手法を用いた特徴点および特徴ベクトルの抽出、Saliency Mapを用いた注目領域の算出、R-CNN、YOLO、SSD、及びVision Transformerなどの手法を用いたディープラーニング、Mask R-CNN、及びGANなどの手法を用いたセグメンテーション、並びにDex-Netなどの手法を用いた把持点認識を挙げることができる。
【0025】
さらに、動作前情報Ibおよび動作後情報Iaは、複数回計測して得た計測情報群であってもよく、複数種類の計測情報を組み合わせたものであってもよい。また、これらの計測情報群をもとに算出した計測情報の確率分布であってもよい。計測情報群から確率分布を算出する方法の例には、ガウス分布や混合ガウス分布を用いた最尤推定および事後分布の推定、あるいはVAEなどのディープラーニング手法を用いた特徴空間上での確率分布推定が挙げられる。
【0026】
また、記憶部12bは、後述するロボット制御部11cでの制御則に関連する制御情報を紐づけて記憶してもよい。制御情報の一例として、例えば、動作時のロボット2のトルク列や、ロボット2の関節角の目標値、物品4のプレース位置が挙げられる。また、例えば、制御則としてニューラルネットワークなどの学習手法を利用する場合、事前に学習したニューラルネットワークの重みを制御情報として記憶しても良い。また、複数の制御則が存在する場合、制御則を特定するための制御則名やインデックスを制御情報として記憶しても良い。
【0027】
記憶部12bは、また、動作によって遂行される内容を示す遂行情報を紐づけて記憶してもよい。遂行情報の一例として、例えば、動作によって実現される効果あるいは状態に関する詳細な言語情報が挙げられる。例えば、コンロを点火する動作情報mは、お湯を沸かす、食材を焼く、などの複数の言語情報を遂行情報として紐づけることができる。なお、これらの言語情報と対応する動作前情報Ibおよび動作後情報Iaをそれぞれ分類したうえで、動作情報mを記憶しても良い。
【0028】
記憶部12bに遂行情報を紐づけて記憶されていない場合でも、機械学習により言語情報などから推考し、ロボット2の現在の状態やロボット2の作業周辺環境を把握することも可能である。
【0029】
また、現在の状態を受け取る状態入力部を新たに備え、一連動作生成部11bは、入力部から受け取った現在の状態と類似度とをもとに、一連動作を生成することも可能である。
【0030】
また、ロボット制御装置1において、現在の状態は、上記の計測センサ3およびロボットに内蔵されたセンサから得た計測情報を、通信インターフェースを介して取得する。
【0031】
動作と現在の状態からロボットの指令値を算出する方法の一例として、PID制御のようなフィードバック制御が挙げられる。また、事前に学習させた制御則を用いてロボットの指令値を求めても良い。制御則の学習方法の一例として、Q学習のような強化学習手法が挙げられる。また、DQNやA3Cなどの深層強化学習手法を用いても良い。
【0032】
ロボット2の現在の動作状態やロボット2の作業周辺環境を把握することにより、現在の状態に応じて、柔軟に一連動作を生成することが可能となる。
【0033】
また、目標を受け取る目標入力部を新たに備え、一連動作生成部11bは、類似度算出部11aで求めた類似度および目標入力部から受け取った目標動作および状態をもとに、指定された目標に到達する一連動作を生成しても良い。
【0034】
目標入力部から受け取る目標が目標とする動作を指定する動作名などの情報、あるいは目標とする状態を示す言語情報である場合は、指定された動作および指定された言語情報と一致する遂行情報を持つ動作群を目標動作とし、目標動作に到達する一連動作を算出する。
【0035】
また、目標が目標状態である場合は、目標状態に到達できる動作を目標動作とし、目標状態に到達する一連動作を生成する。例えば、各動作の動作後情報Iaと目標状態の類似度が最も大きいものを目標動作とする手法が挙げられる。また、例えば、動作後情報Iaが計測情報の確率分布である場合、各動作の動作後情報Iaにおける目標状態の生成確率を目標状態への到達確率とすることで、目標状態に到達可能な動作を算出することができる。
【0036】
類似度と目標動作から目標動作に到達する一連動作を算出する方法の一例としては、A-star(A*)アルゴリズムやRRT-star(RRT*)アルゴリズムが挙げられる。また、遷移確率と目標動作から目標動作に到達する一連動作を算出する方法の一例としては、LMDP(Linearly-solvable Markov Decision Process)のような動的計画法、能動的推論、信念伝播法による推定が挙げられる。
【0037】
<類似度算出部11aの詳細>
類似度算出部11aは、まず、ある動作の動作情報に含まれる動作後情報I
aと別の動作の動作情報に含まれる動作前情報I
bの類似度を算出する。例えば、ロボット2が実行可能な動作として、動作a
1「戸棚4aからやかん4bを取出す」、動作a
2「蛇口4cを操作しやかん4bに水を注ぐ」、動作a
3「コンロ4dを点火する」が用意されている
図4の例では、まず、動作a
1を起点として、動作a
1の動作情報m
1に含まれる動作後情報I
1aと動作a
2の動作情報m
2に含まれる動作前情報I
b2の間の類似度、および、動作a
1の動作後情報I
1aと動作a
3の動作情報m
3に含まれる動作前情報I
b3の間の類似度を算出する。同様に、動作a
2を起点とする場合の動作前後情報間の類似度や、動作a
3を起点とする場合の動作前後情報間の類似度も算出する。
【0038】
この例では、動作a
1の動作後情報I
1aに登録された画像P
1aは何れも、空のやかん4bがコンロ4dの鍋載置部に載置されている状態を撮像したものである。また、動作a
2の動作前情報I
2bに登録された画像P
2bは何れも、空のやかん4bがコンロ4dの鍋載置部に載置されている状態を撮像したものである。一方、動作a
3の動作前情報I
3bに登録された画像P
3bは何れも、満水のやかん4bがコンロ4dの鍋載置部に載置されている状態を撮像したものである。従って、動作a
1の動作後の画像P
1aと動作a
2の動作前の画像P
2bが酷似し、動作a
1の動作後の画像P
1aと動作a
3の動作前の画像P
3bが相違する
図4の例では、動作a
1の動作後情報I
1aと動作a
2の動作前情報I
2bの類似度が「大」と判定され、動作a
1の動作後情報I
1aと動作a
3の動作前情報I
3bの類似度が「小」と判定される。なお、ロボット2が同じ動作を繰り返す可能性がある場合は、同一の動作情報mの間の類似度を求めても良い。また、記憶部12bに格納された動作情報mのうち、類似度を求める動作情報mの部分集合を予め指定しても良い。
【0039】
類似度算出方法の具体例としては、例えば、動作前情報Ibおよび動作後情報Iaが単一の計測情報および複数の計測情報からなる場合、計測情報間のコサイン類似度およびその平均値や最大・最小値が挙げられる。また、計測情報間のユークリッド距離およびその平均値や最大・最小値を求めることで類似していない度合い、すなわち非類似度を一度算出した後、非類似度から類似度を算出してもよい。非類似度から類似度を算出する方法の例として、非類似度の逆数および非類似度を変数としたポアソン分布の値が挙げられる。
【0040】
また、類似度算出方法の別例としては、例えば、動作前情報Ibおよび動作後情報Iaが計測情報の確率分布からなる場合、確率分布間の距離であるカルバック・ライブラー(KL)距離およびワッサースタイン距離を求めることで非類似度を算出し、先と同様、非類似度から類似度を算出する方法が挙げられる。また、動作後情報Iaから1つ以上サンプルして得た計測データの動作前情報Ibにおける生成確率およびその平均値や最大・最小値を類似度として利用することもできる。
【0041】
なお、先述の通り、計測情報でなく、差分情報や物品認識結果のような計測情報の加工情報をもとに上記類似度算出方法で類似度を求めても良い。
【0042】
<一連動作生成部11bの詳細>
続いて、類似度を用いて一連動作を生成する場合の一連動作生成部11bで実施される処理の詳細を説明する。
【0043】
一連動作生成部11bは、類似度算出部11aで求めた類似度をもとに一連動作を生成する。一連動作の生成方法の一例を説明する。一連動作生成部11bは、状態入力部から受け付けたロボットの作業周辺環境およびロボットの状態の内、どちらか一方を含む現在の状態を起点とし、目標入力部から受け付けたロボットの目標を終点として、類似度を用いて、現在の状態とロボットの目標とを繋げるための一連動作を生成する。なお、ロボット1が作業周辺環境などから推考したロボットの状態と目標を、一連動作生成部11bが用いても良い。
【0044】
<ロボット制御部11cの詳細>
最後に、ロボット制御部11cで実施される処理の詳細を説明する。ロボット制御部11cは、一連動作生成部11bで求めた一連動作をもとにロボットを制御するための指令を算出する。制御則を用いて一連動作内の各動作を実行するために必要なロボットへの指令値を順次求めることで、一連動作に対応する指令を算出する。制御則の例として、例えば、動作前情報Ibから動作後情報Iaに到達する軌道を計画するA*アルゴリズムやRRTなどの軌道計画手法が挙げられる。
【0045】
制御則から指令を算出する際、先述の制御情報を利用してもよい。例えば、制御情報として記憶したロボットのトルク列をそのまま出力する方法が挙げられる。また、制御情報として記憶されたロボットの関節角の目標値の列をもとにPID制御などを用いて指令値を求めても良い。
【0046】
また、制御則としてニューラルネットワークなどの機械学習手法を用いてもよい。制御情報として記憶されたニューラルネットワークの重みを利用し、動作前情報Ibと動作後情報Iaから対応する指令値を直接推定することで、指令値を求めることができる。
【0047】
<本実施例の効果>
以上で説明したように、本実施例のロボット制御装置によれば、ある動作情報の動作後情報Iaと、他の動作情報の動作前情報Ibと、の類似度を算出し、一連動作を生成する。このため、本実施例のロボット制御装置は、動作間の遷移確率を人手で事前に指定、あるいは学習させることなく、動作間の遷移確率を自動で算出し、一連動作を生成することができる。
類似度をもとに遷移確率を算出する方法として、ある動作と、その動作から遷移する可能性のあるすべての動作と、の間の類似度を算出して得た類似度ベクトルを正規化することで遷移確率を算出する方法が挙げられる。また、求まった類似度ベクトルを変数とするソフトマックス分布の値から遷移確率を求めても良い。また、動作後情報Iaから1つ以上サンプルして得た計測データの動作前情報Ibにおける生成確率を利用して遷移確率を算出することもできる。例えば、計測データとして画像P、動作情報miの動作前情報Ibで画像Pが生成される確率をpi(P|Ib)、動作情報miの動作後情報Iaで画像Pが生成される確率をpi(P|Ia)、動作情報miの初期確率をp(mi)、画像Pが与えられた際の動作情報miの事後確率をp(mi|P)とすると、動作情報miから動作情報mjへの遷移確率p(mj|mi)は以下の式1のように求めることができる。
遷移確率の事前分布が存在する場合、求まった遷移確率を用いて事後確率を求めることで、遷移確率を算出しても良い。また、予め定めた閾値以下の類似度に対応する動作間の遷移は遷移不可と判断して遷移確率を0に設定してもよい。特定の動作を終端条件とし、その動作から他の動作への遷移確率は全て0に設定してもよい。
任意の長さの一連動作を生成する場合、一連動作の長さTも予め指定した確率分布よりサンプルし、サンプルされたTの長さとなる一連動作を生成してもよい。また、終端条件となる動作が存在する場合、終端条件に到達するまで動作を生成しつづけることで一連動作を生成してもよい。