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

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

▶ 株式会社日立製作所の特許一覧

特開2024-157873ロボット制御装置、ロボット制御システム、および、ロボット制御方法
<>
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図1
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図2
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図3
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図4
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図5
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図6
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図7
  • 特開-ロボット制御装置、ロボット制御システム、および、ロボット制御方法 図8
< >
(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】
【特許文献1】特開2022-41294号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の学習装置では、出力される指令に対応して予測される制御対象の次状態と、次状態に対応する制御対象の計測された状態と、の間の誤差が小さくなるように集約状態遷移モデルを更新する必要があった。
【0006】
しかし、状態および指令の候補が多数存在する場合、各状態および指令のもとで計測された次状態を用いて状態遷移モデルを都度更新する必要があるため、この状態遷移モデルの学習に時間がかかってしまうことがある。このため、状態を都度計測して学習させることなく、遷移可否を自動で推定できるのが望ましい。
【0007】
そこで、本発明は、動作間の遷移可否を算出し、遷移可能な一連動作を生成できるロボット制御装置およびロボット制御方法を提供することを目的とした。
【課題を解決するための手段】
【0008】
本発明によるロボット制御装置は、ロボットの動作を制御するロボット制御装置であって、ロボットの動作と、動作前のロボットの作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報を記憶する記憶部と、ある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の作業周辺環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成する一連動作生成部と、前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御するロボット制御部と、を備える。
【0009】
また、本発明によるロボット制御方法は、ロボットの動作を制御するロボット動作制御方法であって、一連動作生成部を用いて、記憶部が記憶しているロボットの動作と、動作前の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報からある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の動作環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成し、ロボット制御部を用いて、前記一連動作生成部が生成した前記ロボットの一連動作に基づいて、前記ロボットを制御する。
【発明の効果】
【0010】
本発明によると、動作間の遷移可否を算出し、遷移可能な一連動作を生成できるロボット制御装置およびロボット制御方法を提供することができる。
【図面の簡単な説明】
【0011】
図1】実施例1のロボット制御装置の使用環境を示す概説図。
図2】実施例1のロボット制御装置のハードウェア構成を示すブロック図。
図3】実施例1のロボット制御装置の機能ブロック図。
図4】動作間の類似度算出方法の例を示す図。
図5】実施例2のロボット制御装置の機能ブロック図。
図6】一連動作の生成方法の例を示す図。
図7】階層化された動作情報の例を示す図。
図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と、動作後の状態に関する動作後情報Iを関連付けた動作情報mを記憶する記憶部12bと、記憶部12bから受け取った動作情報mをもとに動作間の類似度を算出する類似度算出部11aと、算出された類似度と、ロボットの現在の動作周辺環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられる目標とを用いて、実行可能な一連動作を生成する一連動作生成部11bと、生成された一連動作を実行するための指令を求めるロボット制御部11cと、を備えている。ロボット制御部11cで求まった指令は通信インターフェース15を介してロボット2に送信することで、ロボット2を制御する。なお、実施例1においては、動作情報mをもとに動作間の類似度を算出する類似度算出部11aを設けたが、記憶部12bが、あらかじめ動作情報mをもとに算出された動作間の類似度を記憶しても良い。
【0021】
動作前情報Iは、動作前の作業周辺環境とロボット2の状態の少なくとも一方に関する情報であり、両方を備えれば後述するロボット制御をより精度高く実施することができる。動作後情報Iは、動作後の作業周辺環境とロボット2の状態の少なくとも一方に関する情報であり、両方を備えれば後述するロボット制御をより精度高く実施することができる。
【0022】
例えば、計測センサ3がカメラである場合には、記憶部12bは、カメラで撮像した、RGB画像、グレー画像、赤外線画像などの画像Pを動作前情報Iおよび動作後情報Iとして記憶する。また、例えば、計測センサ3が距離センサである場合には、記憶部12bは、距離センサで測定した、深度画像、点群データ等を動作前情報Iおよび動作後情報Iとして記憶する。距離センサとしては、例えば、LiDAR、レーザ変位計、ステレオカメラ、赤外線距離計、レーザ距離計、及びTOF距離センサなどである。また、例えば、計測センサ3がマイクである場合には、記憶部12bは、マイクで録音した音声データを動作前情報Iおよび動作後情報Iとして記憶する。また、例えば、計測センサがロボット2に内蔵された関節角センサおよび加速度センサおよび触覚センサである場合には、記憶部12bは、各センサで測定した関節角データおよび加速度データおよび触覚データを動作前情報Iおよび動作後情報Iとして取得する。
【0023】
なお、記憶部12bに記憶される動作前情報Iおよび動作後情報Iは、計測センサ3によって計測された情報そのものである必要はなく、それらを加工した情報であっても良い。例えば、関節角の速度や加速度、あるいは時系列画像から算出されるオプティカルフローのような計測情報間の差分情報であってもよい。また、例えば、あらかじめ定めた座標系から見た視点と合うようにホモグラフィ変換した画像を用いてもよいし、予め求めた計測情報の平均と標準偏差をもとに正規化した情報を用いても良い。
【0024】
また、動作前情報Iおよび動作後情報Iは、例えば、計測情報から抽出された特徴ベクトルおよび注目領域および物品認識結果であってもよい。特徴ベクトル抽出および注目領域算出および物品認識の方法の例には、SIFT、及びORBなどの手法を用いた特徴点および特徴ベクトルの抽出、Saliency Mapを用いた注目領域の算出、R-CNN、YOLO、SSD、及びVision Transformerなどの手法を用いたディープラーニング、Mask R-CNN、及びGANなどの手法を用いたセグメンテーション、並びにDex-Netなどの手法を用いた把持点認識を挙げることができる。
【0025】
さらに、動作前情報Iおよび動作後情報Iは、複数回計測して得た計測情報群であってもよく、複数種類の計測情報を組み合わせたものであってもよい。また、これらの計測情報群をもとに算出した計測情報の確率分布であってもよい。計測情報群から確率分布を算出する方法の例には、ガウス分布や混合ガウス分布を用いた最尤推定および事後分布の推定、あるいはVAEなどのディープラーニング手法を用いた特徴空間上での確率分布推定が挙げられる。
【0026】
また、記憶部12bは、後述するロボット制御部11cでの制御則に関連する制御情報を紐づけて記憶してもよい。制御情報の一例として、例えば、動作時のロボット2のトルク列や、ロボット2の関節角の目標値、物品4のプレース位置が挙げられる。また、例えば、制御則としてニューラルネットワークなどの学習手法を利用する場合、事前に学習したニューラルネットワークの重みを制御情報として記憶しても良い。また、複数の制御則が存在する場合、制御則を特定するための制御則名やインデックスを制御情報として記憶しても良い。
【0027】
記憶部12bは、また、動作によって遂行される内容を示す遂行情報を紐づけて記憶してもよい。遂行情報の一例として、例えば、動作によって実現される効果あるいは状態に関する詳細な言語情報が挙げられる。例えば、コンロを点火する動作情報mは、お湯を沸かす、食材を焼く、などの複数の言語情報を遂行情報として紐づけることができる。なお、これらの言語情報と対応する動作前情報Iおよび動作後情報Iをそれぞれ分類したうえで、動作情報mを記憶しても良い。
【0028】
記憶部12bに遂行情報を紐づけて記憶されていない場合でも、機械学習により言語情報などから推考し、ロボット2の現在の状態やロボット2の作業周辺環境を把握することも可能である。
【0029】
また、現在の状態を受け取る状態入力部を新たに備え、一連動作生成部11bは、入力部から受け取った現在の状態と類似度とをもとに、一連動作を生成することも可能である。
【0030】
また、ロボット制御装置1において、現在の状態は、上記の計測センサ3およびロボットに内蔵されたセンサから得た計測情報を、通信インターフェースを介して取得する。
【0031】
動作と現在の状態からロボットの指令値を算出する方法の一例として、PID制御のようなフィードバック制御が挙げられる。また、事前に学習させた制御則を用いてロボットの指令値を求めても良い。制御則の学習方法の一例として、Q学習のような強化学習手法が挙げられる。また、DQNやA3Cなどの深層強化学習手法を用いても良い。
【0032】
ロボット2の現在の動作状態やロボット2の作業周辺環境を把握することにより、現在の状態に応じて、柔軟に一連動作を生成することが可能となる。
【0033】
また、目標を受け取る目標入力部を新たに備え、一連動作生成部11bは、類似度算出部11aで求めた類似度および目標入力部から受け取った目標動作および状態をもとに、指定された目標に到達する一連動作を生成しても良い。
【0034】
目標入力部から受け取る目標が目標とする動作を指定する動作名などの情報、あるいは目標とする状態を示す言語情報である場合は、指定された動作および指定された言語情報と一致する遂行情報を持つ動作群を目標動作とし、目標動作に到達する一連動作を算出する。
【0035】
また、目標が目標状態である場合は、目標状態に到達できる動作を目標動作とし、目標状態に到達する一連動作を生成する。例えば、各動作の動作後情報Iと目標状態の類似度が最も大きいものを目標動作とする手法が挙げられる。また、例えば、動作後情報Iが計測情報の確率分布である場合、各動作の動作後情報Iにおける目標状態の生成確率を目標状態への到達確率とすることで、目標状態に到達可能な動作を算出することができる。
【0036】
類似度と目標動作から目標動作に到達する一連動作を算出する方法の一例としては、A-star(A*)アルゴリズムやRRT-star(RRT*)アルゴリズムが挙げられる。また、遷移確率と目標動作から目標動作に到達する一連動作を算出する方法の一例としては、LMDP(Linearly-solvable Markov Decision Process)のような動的計画法、能動的推論、信念伝播法による推定が挙げられる。
【0037】
<類似度算出部11aの詳細>
類似度算出部11aは、まず、ある動作の動作情報に含まれる動作後情報Iと別の動作の動作情報に含まれる動作前情報Iの類似度を算出する。例えば、ロボット2が実行可能な動作として、動作a「戸棚4aからやかん4bを取出す」、動作a「蛇口4cを操作しやかん4bに水を注ぐ」、動作a「コンロ4dを点火する」が用意されている図4の例では、まず、動作aを起点として、動作aの動作情報mに含まれる動作後情報I1aと動作aの動作情報mに含まれる動作前情報Ib2の間の類似度、および、動作aの動作後情報I1aと動作aの動作情報mに含まれる動作前情報Ib3の間の類似度を算出する。同様に、動作aを起点とする場合の動作前後情報間の類似度や、動作aを起点とする場合の動作前後情報間の類似度も算出する。
【0038】
この例では、動作aの動作後情報I1aに登録された画像P1aは何れも、空のやかん4bがコンロ4dの鍋載置部に載置されている状態を撮像したものである。また、動作aの動作前情報I2bに登録された画像P2bは何れも、空のやかん4bがコンロ4dの鍋載置部に載置されている状態を撮像したものである。一方、動作aの動作前情報I3bに登録された画像P3bは何れも、満水のやかん4bがコンロ4dの鍋載置部に載置されている状態を撮像したものである。従って、動作aの動作後の画像P1aと動作aの動作前の画像P2bが酷似し、動作aの動作後の画像P1aと動作aの動作前の画像P3bが相違する図4の例では、動作aの動作後情報I1aと動作aの動作前情報I2bの類似度が「大」と判定され、動作aの動作後情報I1aと動作aの動作前情報I3bの類似度が「小」と判定される。なお、ロボット2が同じ動作を繰り返す可能性がある場合は、同一の動作情報mの間の類似度を求めても良い。また、記憶部12bに格納された動作情報mのうち、類似度を求める動作情報mの部分集合を予め指定しても良い。
【0039】
類似度算出方法の具体例としては、例えば、動作前情報Iおよび動作後情報Iが単一の計測情報および複数の計測情報からなる場合、計測情報間のコサイン類似度およびその平均値や最大・最小値が挙げられる。また、計測情報間のユークリッド距離およびその平均値や最大・最小値を求めることで類似していない度合い、すなわち非類似度を一度算出した後、非類似度から類似度を算出してもよい。非類似度から類似度を算出する方法の例として、非類似度の逆数および非類似度を変数としたポアソン分布の値が挙げられる。
【0040】
また、類似度算出方法の別例としては、例えば、動作前情報Iおよび動作後情報Iが計測情報の確率分布からなる場合、確率分布間の距離であるカルバック・ライブラー(KL)距離およびワッサースタイン距離を求めることで非類似度を算出し、先と同様、非類似度から類似度を算出する方法が挙げられる。また、動作後情報Iから1つ以上サンプルして得た計測データの動作前情報Iにおける生成確率およびその平均値や最大・最小値を類似度として利用することもできる。
【0041】
なお、先述の通り、計測情報でなく、差分情報や物品認識結果のような計測情報の加工情報をもとに上記類似度算出方法で類似度を求めても良い。
【0042】
<一連動作生成部11bの詳細>
続いて、類似度を用いて一連動作を生成する場合の一連動作生成部11bで実施される処理の詳細を説明する。
【0043】
一連動作生成部11bは、類似度算出部11aで求めた類似度をもとに一連動作を生成する。一連動作の生成方法の一例を説明する。一連動作生成部11bは、状態入力部から受け付けたロボットの作業周辺環境およびロボットの状態の内、どちらか一方を含む現在の状態を起点とし、目標入力部から受け付けたロボットの目標を終点として、類似度を用いて、現在の状態とロボットの目標とを繋げるための一連動作を生成する。なお、ロボット1が作業周辺環境などから推考したロボットの状態と目標を、一連動作生成部11bが用いても良い。
【0044】
<ロボット制御部11cの詳細>
最後に、ロボット制御部11cで実施される処理の詳細を説明する。ロボット制御部11cは、一連動作生成部11bで求めた一連動作をもとにロボットを制御するための指令を算出する。制御則を用いて一連動作内の各動作を実行するために必要なロボットへの指令値を順次求めることで、一連動作に対応する指令を算出する。制御則の例として、例えば、動作前情報Iから動作後情報Iに到達する軌道を計画するA*アルゴリズムやRRTなどの軌道計画手法が挙げられる。
【0045】
制御則から指令を算出する際、先述の制御情報を利用してもよい。例えば、制御情報として記憶したロボットのトルク列をそのまま出力する方法が挙げられる。また、制御情報として記憶されたロボットの関節角の目標値の列をもとにPID制御などを用いて指令値を求めても良い。
【0046】
また、制御則としてニューラルネットワークなどの機械学習手法を用いてもよい。制御情報として記憶されたニューラルネットワークの重みを利用し、動作前情報Iと動作後情報Iから対応する指令値を直接推定することで、指令値を求めることができる。
【0047】
<本実施例の効果>
以上で説明したように、本実施例のロボット制御装置によれば、ある動作情報の動作後情報Iと、他の動作情報の動作前情報Iと、の類似度を算出し、一連動作を生成する。このため、本実施例のロボット制御装置は、動作間の遷移確率を人手で事前に指定、あるいは学習させることなく、動作間の遷移確率を自動で算出し、一連動作を生成することができる。
【実施例0048】
次に、本発明の実施例2に係るロボット制御装置1を説明する。なお、実施例1との共通点は重複説明となるため、省略する。図5は、実施例2のロボット制御装置1の機能ブロック図である。類似度算出部11aが求めた類似度をもとに動作間の遷移確率を算出する確率算出部11dをロボット制御装置1に加えた。
【0049】
<確率算出部11dの詳細>
確率算出部11dで実施される処理の詳細を、図4を用いて説明する。以下では、計測センサ3がカメラであり、動作情報m(動作前情報I、動作後情報I)には、カメラで撮像した画像Pが各々の確率分布を示す情報と共に登録されているものとする。例えば、動作a「取出す」の記憶情報としては、同動作の実施前に撮像された過去の画像P1bが、動作前情報Iにおける画像の確率分布と共に登録されているものとする。なお、図4の記憶情報内の同心円は、中央に行くほど濃色(確率分布が高いことを表現)となり外周に行くほど淡色(確率分布が低いことを表現)となる円内のどこに画像が配置されているかにより、各画像の確率の高低を表現したイメージ図である。従って、この例では、右の画像P1bより左の画像P1bの確率が大きいことが示されている。
【0050】
確率算出部11aは、類似度に基づいて、動作間の遷移確率を算出する。なお、先と同様、同一の動作情報mの間の遷移確率を求めても良い。
【0051】
類似度をもとに遷移確率を算出する方法として、ある動作と、その動作から遷移する可能性のあるすべての動作と、の間の類似度を算出して得た類似度ベクトルを正規化することで遷移確率を算出する方法が挙げられる。また、求まった類似度ベクトルを変数とするソフトマックス分布の値から遷移確率を求めても良い。また、動作後情報Iから1つ以上サンプルして得た計測データの動作前情報Iにおける生成確率を利用して遷移確率を算出することもできる。例えば、計測データとして画像P、動作情報miの動作前情報Iで画像Pが生成される確率をpi(P|I)、動作情報miの動作後情報Iaで画像Pが生成される確率をpi(P|Ia)、動作情報miの初期確率をp(mi)、画像Pが与えられた際の動作情報miの事後確率をp(mi|P)とすると、動作情報miから動作情報mjへの遷移確率p(mj|mi)は以下の式1のように求めることができる。
【0052】
【数1】
【0053】
遷移確率の事前分布が存在する場合、求まった遷移確率を用いて事後確率を求めることで、遷移確率を算出しても良い。また、予め定めた閾値以下の類似度に対応する動作間の遷移は遷移不可と判断して遷移確率を0に設定してもよい。特定の動作を終端条件とし、その動作から他の動作への遷移確率は全て0に設定してもよい。
【0054】
図4の例を前提に本ステップの処理を説明すれば、ステップS1で、動作aの動作後情報I1aと動作aの動作前情報I2bの類似度が「大」と判定され、動作aの動作後情報I1aと動作aの動作前情報I3bの類似度が「小」と判定されているため、確率算出部11aは、動作aから動作aへの遷移確率が高く、動作aから動作aへの遷移確率が低いと判定する。
【0055】
また、ステップS1では他の動作間の類似度も算出されるため、確率算出部11aは最終的に、動作aから動作a、動作aから動作aへの遷移確率が高く、動作aから動作a、動作aから動作a、動作aから動作a、動作aから動作a、動作aから動作a、動作aから動作a、動作aから動作aへの遷移確率が低いと判定することができる。
【0056】
<一連動作生成部11bの詳細>
続いて、遷移確率を用いて一連動作を生成する場合の一連動作生成部11bで実施される処理の詳細を説明する。図6は本実施例による一連動作の生成方法の例を示す図である。なお、図4に倣い、図6では、遷移確率「大」を実線矢印で示し、遷移確率「小」を点線矢印で示している。
【0057】
一連動作生成部11bは、確率算出部11dで求めた遷移確率をもとに一連動作を生成する。一連動作の生成方法の例として、予め指定した開始動作から遷移確率に従って次の動作をサンプルし、これを繰り返すことで一定の長さの一連動作を生成する方法が挙げられる。なお、遷移確率の最大値から次の動作を一意に選択してもよい。また、開始動作の確率分布を設けて開始動作もサンプルから求めても良い。図6の例では、動作aから動作a、および、動作aから動作aへの遷移確率が高いので、一連動作生成部11bは、太破線で囲った、動作a、動作a、動作aの順番で実行される動作の組み合わせを一連動作として生成する。
【0058】
任意の長さの一連動作を生成する場合、一連動作の長さTも予め指定した確率分布よりサンプルし、サンプルされたTの長さとなる一連動作を生成してもよい。また、終端条件となる動作が存在する場合、終端条件に到達するまで動作を生成しつづけることで一連動作を生成してもよい。
【0059】
遷移確率と目標動作から目標動作に到達する一連動作を算出する方法の一例としては、LMDP(Linearly-solvable Markov Decision Process)のような動的計画法、能動的推論、信念伝播法による推定が挙げられる。 一連動作は動作情報mの階層構造をもとに生成してもよい。図7は本実施例において階層化された動作情報mから一連動作を生成する方法の例を示す図である。同図では、動作a「取出す」の動作情報mを階層構造化した例であり、同情報がさらに、動作a11「戸棚を開ける」の動作情報m11、動作a12「やかんをコンロに置く」の動作情報m12、動作a13「戸棚を閉める」の動作情報m13に階層化された例を示している。この例では、一連動作内の一動作として動作a「取出す」の動作情報mが選択された場合、下位層の動作間遷移確率をもとに生成した動作列で置き換えることで、階層化された動作情報mから一連動作を生成することができる。
【実施例0060】
次に、本発明の実施例3に係るロボット制御装置1を説明する。なお、上記の実施例との共通点は重複説明のため、省略する。
【0061】
上記の実施例では、例えば、生成された一連動作をもとにロボット2を制御した際に動作遷移に失敗すると、それ以降の一連動作を実行できなくなってしまうことがある。
【0062】
そこで、本実施例では、動作遷移の成否の判定結果である動作遷移判定結果を出力する動作遷移判定部を新たに備え、動作遷移が失敗したと判定された際に、一連動作を再生成することとした。
【0063】
動作の遷移に失敗したことを判断する方法は、例えば、一連動作内のある動作が終了した際に計測した状態と、一連動作内の次の動作の動作前情報Iと、の類似度が予め定めた閾値より低いか否かで判断できる。また、例えば、動作前情報Iが計測情報の確率分布である場合、各動作の動作前情報Iにおける計測した状態の生成確率が予め定めた閾値より低いか否かで判断してもよい。
【0064】
一連動作の再生成の方法の一例として、例えば、動作遷移に失敗したと判断された遷移における遷移前の動作を起点とし、遷移確率を用いて残りの一連動作を再生成する方法が挙げられる。また、例えば、遷移に失敗した際の遷移後の動作の遷移確率を0としたうえで一連動作を再生成することで、遷移に失敗した際と同じ一連動作が生成されないように制約を設けても良い。
【実施例0065】
次に、本発明の実施例4に係るロボット制御装置1を説明する。なお、上記の実施例との共通点は重複説明を省略する。
【0066】
上記の実施例では、例えば、動作前情報Iおよび動作後情報Iとして用いた計測情報に偏りがあった場合や、作業周辺環境が少しずつ変化している場合には、確率算出部11aで求めた遷移確率と実際の遷移確率に差異が生じてしまうことがある。
【0067】
そこで、本実施例では、類似度を更新する類似度更新部又は遷移確率を更新する遷移確率更新部を新たに備え、生成された一連動作と、一連動作を実行した際に計測された状態をもとに類似度又は遷移確率を更新することとした。
【0068】
類似度の更新方法の一例として、各動作を実行した際に計測した動作前後の状態をもとに動作前情報Iおよび動作後情報Iを更新し、更新された動作前情報Iおよび動作後情報Iを用いて類似度を更新する方法が挙げられる。例えば、動作前情報Iおよび動作後情報Iが計測情報の確率分布である場合、計測した状態を用いて事後確率の分布を計算し、求まった事後確率分布を用いて動作前情報Iおよび動作後情報Iを更新してもよい。
【0069】
また、例えば、動作遷移判定結果が取得できる場合、動作遷移判定結果をもとに類似度を直接更新しても良い。類似度を直接更新する方法の一例として、遷移に失敗したと判断された際に予め定めた一定の値を用いて類似度を引き下げる方法が挙げられる。また、一定回数の遷移失敗が発生した場合、対象となる動作間の類似度を0に設定しても良い。
【0070】
遷移確率の更新方法の一例として、各動作を実行した際に計測した動作前後の状態をもとに動作前情報Iおよび動作後情報Iを更新し、更新された動作前情報Iおよび動作後情報Iを用いて遷移確率を再算出する方法が挙げられる。例えば、動作前情報Iおよび動作後情報Iが計測情報の確率分布である場合、計測した状態を用いて事後確率の分布を計算し、求まった事後確率分布を用いて動作前情報Iおよび動作後情報Iを更新してもよい。
【0071】
また、例えば、動作遷移判定結果が取得できる場合、動作遷移判定結果をもとに遷移確率を直接更新しても良い。遷移確率を直接更新する方法の一例として、遷移に失敗したと判断された際に予め定めた一定の値を用いて遷移確率を引き下げる方法が挙げられる。また、一定回数の遷移失敗が発生した場合、対象となる動作間の遷移確率を0に設定しても良い。
【実施例0072】
次に、本発明の実施例5に係るロボット制御装置1を説明する。なお、上記の実施例との共通点は重複説明を省略する。
【0073】
本実施例では、実施例3の動作成否判定部で生成した動作遷移判定結果を指示入力装置5の表示部51に表示し、動作遷移が失敗したと判定された際に動作を継続するための制御指示の入力を制御指示入力部52で受け付けることで、動作遷移に失敗したと判断された場合でもロボット2の動作を継続できるようにする。
【0074】
図8は、ユーザに遷移失敗を通知し、ユーザからの制御指示を受け付けるための表示画面の一例である。この例では、表示部51に相当するウィンドウを用いて、動作a「注ぐ」から動作a「点火する」への遷移の失敗を示す情報(この例では×印)を、現在の作業周辺環境を示す画像Pと共に表示している。そして、制御指示入力部52に相当するウィンドウでは、動作の遷移が失敗したと判断された際に、代わりに実行する次の動作の候補(例えば、コントローラを用いた手動制御等)を表示して、ユーザから代替する動作の選択を受け付ける。制御指示入力部52のウィンドウ内で所望のチェックボックスをチェックする等して代替動作の入力を受け付けた後、一連動作再開ボタン53を押下されると、選択された代替動作を起点とした一連動作を再生成することで、ロボット制御を続行することができる。なお、制御完了ボタン54を押下された場合には、一連動作を再開することなく、ロボット2の制御を完了させても良い。
【0075】
また、例えば、制御指示はロボット2を制御するための指令であっても良い。受け付けた指令をもとにロボット2を制御し、その後、代替動作の入力を受け付けることで、どの動作でも復旧ができない場合でも、受け付けた指令をもとにロボット制御を続行することができる。
【0076】
なお、動作遷移判定結果が失敗した際、上記と同様、一連動作を再生成することでロボット制御を続行し、一定回数以上失敗した場合のみ制御指示を受け付けても良い。
【実施例0077】
次に、本発明の実施例6に係るロボット制御装置1を説明する。なお、上記の実施例との共通点は重複説明を省略する。
【0078】
本実施例では、同じ遷移確率が複数存在する場合、よりエネルギー消費量(電池の消費量)が少ない方を選択する。これにより、ロボット2のエネルギー消費量を抑制することができる。また、同じ遷移確率が複数存在する場合、より動作完了時間が早い方を選択する。これにより、ロボット2の作業時間を短くすることができる。
【0079】
最後に、ロボット制御システムで用いられるロボット制御方法について説明する。
【0080】
まずは、動作間の類似度が記憶部12bに記憶されているなどのように、既に類似度がある場合のロボット制御方法について説明する。
【0081】
<<Step1>>
一連動作生成部11bを用いて、記憶部12bが記憶しているロボットの動作と、動作前の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報と、ある動作の動作後情報と他の動作の動作前情報との類似度と、ロボットの現在の動作環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成する。
【0082】
<<Step2>>
ロボット制御部を用いて、前記一連動作生成部が生成したロボットの一連動作に基づいて、前記ロボットを制御する。
【0083】
次に、類似度算出部11aが動作間の類似度を算出することを加えたロボット制御方法について説明する。
【0084】
<<Step1>>
類似度算出部11aを用いて、記憶部12bが記憶しているロボットの動作と、動作前の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、を関連付けた複数の動作情報からある動作の動作後情報と他の動作の動作前情報との類似度を算出する。
【0085】
<<Step2>>
一連動作生成部11bを用いて、記憶部12bが記憶しているロボットの動作と、動作前の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作前情報と、動作後の作業周辺環境及びロボットの状態の内、少なくともどちらか一方を含む動作後情報と、類似度算出部11aが算出した類似度と、ロボットの現在の動作環境及びロボットの現在の状態の内、少なくともどちらか一方を含む現在の動作状態と、ロボットに対して与えられた目標とを用いて、ロボットの一連動作を生成する。
【0086】
<<Step3>>
ロボット制御部を用いて、前記一連動作生成部が生成したロボットの一連動作に基づいて、前記ロボットを制御する。
【0087】
なお、本開示は、上記の実施例に限定されるものではなく、様々な変形例が含まれる。上記の実施例は、本開示を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることも可能である。
【0088】
上記の各構成、機能、処理部、処理手段などは、それらの一部または全部を、例えば集積回路などのハードウェアで実現してもよい。上記の各構成、機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈して実行することにより、ソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイルなどの情報は、メモリ、ハードディスク、SSD(Solid State Drive)などの記録装置、または、フラッシュメモリカード、DVD(Digital Versatile Disk)などの記録媒体に置くことができる。
【0089】
各実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0090】
1 ロボット制御装置
11 プロセッサ
11a 類似度算出部
11b 一連動作生成部
11c ロボット制御部
11d 確率算出部
12 記憶デバイス
12a ロボット制御処理プログラム
12b 記憶部
13 入力部
14 出力部
15 通信インターフェース
16 バス
2 ロボット
21 多関節アーム
22 ハンド
3 計測センサ
4 物品
4a 戸棚
4b やかん
4c 蛇口
4d コンロ
5 指示入力装置
51 表示部
52 制御指示入力部
図1
図2
図3
図4
図5
図6
図7
図8