(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023062361
(43)【公開日】2023-05-08
(54)【発明の名称】動作指令生成装置および動作指令生成方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20230426BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021172279
(22)【出願日】2021-10-21
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】一藁 秀行
(72)【発明者】
【氏名】伊藤 洋
(72)【発明者】
【氏名】山本 健次郎
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707HS27
3C707KT01
3C707KT05
3C707KT06
3C707LS15
3C707LW12
(57)【要約】
【課題】自律学習型のエンドツーエンドの動作指令生成において対象物の選択を可能とする。
【解決手段】動作指令生成装置100は、ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得する取得部111と、機械学習モデル(指令生成モデル140)を用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する指令生成部113とを備える。機械学習モデルは、対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、対象物に対するロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、説明変数が画像およびセンサ情報を含み、目的変数が動作指令を含む学習データ130を用いて生成される。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得する取得部と、
機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する指令生成部とを備え、
前記機械学習モデルは、
前記対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、前記対象物に対する前記ロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、
説明変数が前記画像および前記センサ情報を含み、目的変数が前記動作指令を含む学習データを用いて生成される
ことを特徴とする動作指令生成装置。
【請求項2】
前記指令生成部は、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報を取得し、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報を、前記作業対象指定情報が示す対象物の位置または領域の情報に置き換えて前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。
【請求項3】
前記機械学習モデルは、
作業種別ごとの複数の機械学習モデルであり、
前記指令生成部は、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報、および当該対象物に対する前記ロボットが行う前記作業種別を取得し、
前記複数の機械学習モデルのなかで当該作業種別に対応した機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。
【請求項4】
前記指令生成部は、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報を取得し、
前記機械学習モデルを用いて、前記作業対象指定情報が示す対象物の領域とは異なる領域をマスクした画像を入力として前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。
【請求項5】
前記指令生成部は、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報から算出される分散が所定値より大きい場合に、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報を取得し、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報を、前記作業対象指定情報が示す対象物の位置または領域の情報に置き換えて前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。
【請求項6】
前記指令生成部は、
前記画像を表示装置に表示し、表示された前記対象物の候補のなかで指定された対象物の候補の前記画像における位置または領域の情報を前記作業対象指定情報とする
ことを特徴とする請求項2~5の何れか1項に記載の動作指令生成装置。
【請求項7】
前記指令生成部は、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報のなかの何れか1つを作業対象指定情報として選択し、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報を、前記作業対象指定情報が示す対象物の位置または領域の情報に置き換えて前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。
【請求項8】
動作指令生成装置が、
ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得するステップと、
機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力するステップとを実行し、
前記機械学習モデルは、
前記対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、前記対象物に対する前記ロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、
説明変数が前記画像および前記センサ情報を含み、目的変数が前記動作指令を含む学習データを用いて生成される
ことを特徴とする動作指令生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの動作指令を生成する動作指令生成装置および動作指令生成方法に関する。
【背景技術】
【0002】
生産効率向上や人件費削減のため、工業製品の組み立て、溶接、搬送などの人が行っていた作業をロボットに代替させる取り組みが増えている。しかし、これまでのロボットシステムは、膨大なプログラミングや高い専門知識が必要であり、ロボット導入の阻害要因になっていた。
【0003】
このような状況に対応するために、ロボットに取り付けられた各種センサ情報に基づいてロボット自身で動作を決定する自律学習型ロボット制御システムが提案されている。これまでのロボットシステムに比べると膨大なプログラミングや高い専門知識が不要であり、ロボットを容易に導入できることが期待される。さらに、この自律学習型ロボット制御システムは、ロボット自らが動作経験を記憶・学習することで多様な環境変化に対し柔軟な動作生成(動作指令の生成)が可能であると期待されている。
【0004】
ロボットの動作経験とは、例えば、ロボットの操作者/管理者がロボットに動作を直接教えて記憶させる手法や、操作者/管理者や他のロボットの動作を見て真似る手法などがある。また、一般的に自律学習型ロボット制御システムには、学習器と呼ばれる学習装置が備えられており、動作経験時のセンサ情報の記憶と、動作を生成するためのパラメータ調整とが行われている。この記憶された動作は学習データ、パラメータ調整は学習と呼ばれ、学習データを用いて学習器の学習を行う。学習器は、予め入出力の関係を定義し、学習器への入力値に対し期待した出力値が出力されるように学習(パラメータ調整)を繰り返し行う。
【0005】
学習データの例として、ある動作経験時のロボットの関節角情報と作業の撮像画像との時系列データがある。物体を把持する作業を含む場合、撮影画像には把持の対象物やロボットアーム、ロボットハンドが映っている。この学習データを用いて、学習器に時刻(t)の関節角情報と画像を入力し、時刻(t+1)の関節角情報と画像を予測するように時系列学習させたとする。すると、学習が完了した学習器にロボット関節角情報と画像を逐次入力することで、自律学習型ロボット制御システムは、作業の状態に応じて自動的に動作を生成することが可能になる。
【0006】
このような手法は、ある時刻のセンサ情報から物体認識などを陽に介さず、直接ロボットの動作を生成するため、自律学習型のエンドツーエンドの動作生成手法と呼ばれる。これらの手法では、学習時に作業対象とした物体や類似の物体が撮像画像中に得られた場合に、その物体に対して自律的に作業を開始する。しかし、作業対象の物体が同時に複数存在する場合については想定されておらず、作業ができない、もしくはどの物体に作業を行うかが分からない可能性があった。
【0007】
一方で、自律化が求められるロボットの作業として、作業対象物体が同時に複数存在するケースがある。このような作業として例えば、廃炉作業における瓦礫撤去作業や、プラントにおけるバルブ開閉作業、段ボールの搬送作業などがある。瓦礫撤去作業では、類似形状・テクスチャの瓦礫が散らばっていることが想定され、順番によらず撤去すればよい場合や、瓦礫が重なるなどしているために適切な順番で撤去しなければならない場合がある。また、バルブ開閉作業では、適切な順番でバルブを開閉する必要がある。このため、自律学習型のエンドツーエンドの動作生成手法において、対象物を指定し、その物体に作業を行うことが求められている。
作業の対象物を指定する技術として、特許文献1に記載のロボット装置があり、ロボット装置が撮像した画像内の対象物の位置や姿勢(向き)を操作者が指定する。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1に記載のロボット装置は、位置や姿勢が指定された対象物を把持するための腕部の起動を計画し、この軌道に従って動作を制御する。自律学習型のエンドツーエンドの動作生成では、物体認識(物体の位置や姿勢の認識)を陽に介さず、直接ロボットの動作(動作指令)を生成している。このため、特許文献1に記載のロボット装置のように対象物の位置や姿勢を指定することができない。
本発明は、このような背景を鑑みてなされたものであり、自律学習型のエンドツーエンドの動作指令生成において対象物の選択を可能とする動作指令生成装置および動作指令生成方法を提供することを課題とする。
【課題を解決するための手段】
【0010】
上記した課題を解決するため、本発明に係る動作指令生成装置は、ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得する取得部と、機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する指令生成部とを備え、前記機械学習モデルは、前記対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、前記対象物に対する前記ロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、説明変数が前記画像および前記センサ情報を含み、目的変数が前記動作指令を含む学習データを用いて生成される。
【発明の効果】
【0011】
本発明によれば、自律学習型のエンドツーエンドの動作指令生成において対象物の選択を可能とする動作指令生成装置および動作指令生成方法を提供することができる。上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】第1実施形態に係るロボット制御システムの全体構成図である。
【
図2】第1実施形態に係る動作指令生成装置の機能ブロック図である。
【
図3】第1実施形態に係る指令生成モデルの構成図である。
【
図4】第1実施形態に係る動作指令生成処理のフローチャートである。
【
図5】第1実施形態の変形例に係る撮影画像である。
【
図6】第1実施形態の変形例に係るマスク用の画像である。
【
図7】第1実施形態の変形例に係る撮影画像が画像でマスクされた撮影画像である。
【
図8】第2実施形態に係る動作指令生成処理のフローチャートである。
【
図9】第3実施形態に係る動作指令生成処理のフローチャートである。
【発明を実施するための形態】
【0013】
≪動作指令生成装置の概要≫
以下に本発明を実施するための形態(実施形態)における動作指令生成装置を説明する。動作指令生成装置は、作業対象を含む撮影画像を入力として、学習済みの機械学習モデルである指令生成モデルを用いてロボットに対する動作指令を生成する。
【0014】
指令生成モデルは、位置抽出ブロックと動作指令生成ブロックとを含む。位置抽出ブロックは、撮影画像にある1つ以上の作業対象(物体)を認識する処理に用いられるパラメータを含む。換言すれば位置抽出ブロックは、作業対象(作業の対象物の候補)の位置または領域を算出する際に参照されるパラメータを含む。動作指令生成ブロックは、1つの作業対象を把持するためのロボットの動作を指示する動作指令を生成する処理に用いられるパラメータを含む。換言すれば動作指令生成ブロックは、対象物に対するロボットの作業の動作指令を算出する際に参照されるパラメータを含む。
【0015】
なお、指令生成モデルや位置抽出ブロック、動作指令生成ブロックは、機械学習技術を用いた認識や推論などの処理に用いるパラメータであるが、以下ではパラメータ自体がパラメータを用いて処理する主体であるかのように記載する場合もある。例えば、「指令生成モデルが動作指令を算出する」、「位置抽出ブロックの入力である撮影画像」などと記す場合がある。
【0016】
動作指令生成装置は、位置抽出ブロックと動作指令生成ブロックとを含む構成の機械学習モデルを、学習データを用いて訓練して学習済み機械学習モデルである指令生成モデルを生成する。学習データの説明変数(入力)は撮影画像を含み、目的変数(出力、正解)は撮影画像にある1つの物体(作業対象、対象物)を把持するロボットの動作指令を含む。
【0017】
学習データは、人がロボットを操作して物体を把持する様子の撮影画像と、把持するときのロボットの操作を示す動作指令とを含む教示型の学習データであってもよい。人が操作せず、物体に対する最適な把持動作を、例えば機械学習技術を用いて算出して、算出された動作を動作指令として記録した学習データであってもよい。なお教示型学習データの撮影画像に映る作業対象の物体は、1つであってもよい。
【0018】
動作指令生成装置は、指令生成モデル(の位置抽出ブロック)を用いて撮影画像から1つ以上の作業対象(の位置情報)を取得する。次に動作指令生成装置は、操作者に問い合わせて1つ以上の作業対象から1つの作業対象を選択する。続いて動作指令生成装置は、指令生成モデル(の動作指令生成ブロック)を用いて選択された作業対象を把持するロボットの動作命令を生成する。換言すれば、動作指令生成装置は、指令生成モデル(の位置抽出ブロック)を用いて取得された1つ以上の作業対象を1つの作業対象に置き換えて、当該1つの作業対象を把持する動作指令を生成する。
【0019】
このような動作指令生成装置によれば、取得しやすい教示型/自律学習型の学習データを用いて生成された指令生成モデルを用いて、複数の作業対象のなかで作業者が指定した作業対象を把持する動作指令が生成される。従来までの教示型の学習データを用いて生成された機械学習モデルを用いる場合には、複数の作業対象があった場合の動作が保証できなかった(どのように動作するか不明だった)。動作指令生成装置によれば、作業する作業対象の順番を保証することができる。例えば、作業順序が決まった作業に対してロボットを使用することができるようになる。
【0020】
≪ロボット制御システムの全体構成≫
図1は、第1実施形態に係るロボット制御システム10の全体構成図である。ロボット制御システム10は、ロボット300、制御装置310、カメラ371,372、および動作指令生成装置100を含んで構成される。
ロボット300は、物体である作業対象380のハンドリングが可能であり、部品の組み立てや搬送など所定の作業を行う。ロボット300の構成は問わず、ロボットアーム単体でもよく、クローラや車輪などの移動装置を備えてもよい。
【0021】
制御装置310は、動作指令生成装置100から入力されたロボット300の関節角やエンドエフェクタ301(ロボットハンド)の姿勢(位置)、力(トルク)などの動作指令を基に、ロボット300に制御指令を出力してロボット300の動作を制御する装置である。制御指令は、例えばロボット300に備わるロボットアームの関節やエンドエフェクタ301などに設けられたアクチュエータ(モータなど)に対する電流値や電圧値などを示す信号である。ロボット300は、制御装置310から制御指令を受信すると内蔵の駆動回路が該当するアクチュエータに駆動信号を供給する。
【0022】
カメラ371,372は、ロボット300の作業環境や周辺環境を撮像するための撮像装置である。
図1では、2台のカメラ371,372が設置されているが、1台であっても3台以上であってもよい。カメラ371はロボットアーム302に取り付けられており、カメラ372はロボット300の周辺(例えば作業室や建物の壁)に設置されている。ここで作業環境はロボット300の可動領域(作業エリア)に相当し、周辺環境はロボットの可動領域外の周辺領域に相当する。
【0023】
動作指令生成装置100は、カメラ371,372により撮影された画像(撮影画像)、ロボット300や作業環境、周辺環境に配置されたセンサから得られた情報(以下、センサ情報と記す)に基づいて、ロボット300の動作を計画し、制御装置310にロボット300の関節角や力などの動作指令を送信する装置である。ここで、ロボット300やセンサ情報の種類は問わない。例えば、センサ情報は、ロボット300の関節に備わっているアクチュエータの電流値、ロボット300に外付けされている触覚センサや慣性センサの出力信号などでもよい。さらにセンサ情報は、作業環境や周辺環境を計測している温度センサなどでもよい。このように、各センサは、ロボット300の状態や環境の状態を検出し、検出内容に応じた検出信号を出力する。
【0024】
≪動作指令生成装置の構成≫
図2は、第1実施形態に係る動作指令生成装置100の機能ブロック図である。動作指令生成装置100はコンピュータであり、制御部110、記憶部120、および入出力部180を備える。
入出力部180には、ディスプレイやキーボード、マウスなどのユーザインターフェイス機器が接続される。例えば入出力部180にはタッチパネルディスプレイが接続され、カメラ371,372の撮影画像が表示される。ロボットの操作者は、ロボット300が把持する作業対象380の1つをタッチパネルディスプレイ上で指定する。また、入出力部180は通信デバイスを備え、制御装置310やカメラ371,372などの装置とのデータ(信号)の送受信が可能である。
【0025】
記憶部120は、ROM(Read Only Memory)やRAM(Random Access Memory)、SSD(Solid State Drive)などの記憶機器を含んで構成される。記憶部120には、学習データ130、指令生成モデル140、およびプログラム128が記憶される。プログラム128は、動作指令生成処理(後記する
図4参照)の記述を含む。
【0026】
≪動作指令生成装置:学習データ≫
学習データ130は、機械学習モデルである指令生成モデル140の学習に用いる学習用データである。学習データ130の説明変数(入力)は、ロボット300が作業対象380を把持する作業時に時系列に取得した、ロボット300の作業環境や周辺環境の撮影画像、および、ロボット300や作業環境、周辺環境のセンサ情報である。学習データ130の目的変数(出力)は、ロボット300が作業対象380を把持する作業時に時系列に取得したロボット300への動作指令である。
【0027】
この作業は、ロボット300の操作者が、例えばジョイスティックなどの操作部を入出力部180に接続して、ロボット300を操作(制御)する作業である。操作部は操作者の入力を受け付けて、その内容に応じた動作指令を制御装置310に送信する装置である。操作者が操作する替わりに、予め計画されたロボット300の動作をロボット300に再生させてもよい。なお、ロボット300の運用時に作業対象380が複数あることが予想されるとしても、学習データ130の取得時には、作業対象380は1つであってもよい。
【0028】
≪動作指令生成装置:指令生成モデル≫
図3は、第1実施形態に係る指令生成モデル140の構成図である。指令生成モデル140は機械学習モデルであって、位置抽出ブロック141と動作指令生成ブロック142とを含む。
位置抽出ブロック141は、撮影画像にある1つ以上の作業対象380やエンドエフェクタ301を認識する処理に用いられるパラメータを含む。位置抽出ブロック141は、例えば画像の特徴量を抽出するCNN(Convolutional Neural Network)、および得られた特徴マップから一番強度の大きい位置の座標情報を抽出するSpatial Softmaxに係るパラメータを含み、撮影画像から作業対象380の位置情報を抽出する処理をするときに参照される。Spatial Softmaxは、機械学習で用いられるsoftmax関数やtanh関数、sigmoid関数などの関数の一種であり、soft argmaxとも称される。Spatial Softmaxで抽出される位置座標の数は、直前のCNNのチャンネル数に基づいて決定される。
【0029】
動作指令生成ブロック142は、作業対象を把持するためのロボット300の動作を指示する動作指令を生成する処理に用いられるパラメータを含む。動作指令生成ブロック142は、例えば全結合層やRecurrent Neural Network(RNN)などを用いて、位置抽出ブロックから得られた作業対象の位置情報とセンサ情報とから、動作指令を生成する。
【0030】
≪動作指令生成装置:制御部≫
図2に戻って制御部110の説明を続ける。制御部110は、CPU(Central Processing Unit)を含んで構成され、取得部111、学習部112、および指令生成部113が備わる。取得部111は、カメラ371,372の撮影画像、およびロボット300や作業環境、周辺環境に備わるセンサのセンサ情報を取得する。
【0031】
学習部112は、学習データ130を用いて指令生成モデル140を訓練する(指令生成モデル140に学習データ130を学習させる)。訓練/学習の結果として指令生成モデル140に含まれるパラメータが調整され、撮影画像とセンサ情報とに基づいて誤差が最小となるような作業対象380を把持する動作指令が出力されるようになる。
【0032】
動作指令の誤差を最小化することは、学習データ130に示されている作業を達成することに等しいため、位置抽出ブロック141の出力として作業を達成するために重要な位置情報が得られることが期待できる。例えば、作業対象380やエンドエフェクタ301などの位置情報が得られると考えられる。なお学習データ130は、撮影画像とセンサ情報と動作指令とを含むが、位置情報は含んでおらず、陽に訓練/学習されたものではない。
【0033】
また、学習の結果として得られたCNNの各チャンネルは、特定の形状に反応する。例えば、第1のチャンネルは作業対象380に、第2のチャンネルはエンドエフェクタ301に反応するなどである。動作指令生成ブロック142は、各チャンネルから得られる座標に基づいて動作指令を予測するため、第1のチャンネルの座標が変わることは作業対象の位置が変わることと等しい。なお、どのチャンネルが作業対象に反応するかは、訓練/学習後に学習データを入力して、作業対象の位置座標を出力しているチャンネルを調べることで決定できる。このように、位置抽出ブロック141の出力となる位置情報は、撮影画像に含まれる個々の作業対象380やエンドエフェクタ301の位置座標を含む。
【0034】
指令生成部113は、指令生成モデル140を用いて、撮影画像と、センサ情報と、操作者が指定した作業対象物の位置情報とに基づいて推論(予測)を行い、ロボット300の動作指令を出力する。この動作指令は、制御装置310に送信され、ロボット300が動作する。
【0035】
操作者が指定した作業対象物の位置情報は、機械学習モデルとしての指令生成モデル140の入力(説明変数)ではない。指令生成部113は、位置抽出ブロック141を用いて算出された作業対象の位置情報を操作者が指定した作業対象物の位置情報に置き換えて、動作指令生成ブロック142を用いて動作指令を算出する。
【0036】
≪動作指令生成処理≫
図4は、第1実施形態に係る動作指令生成処理のフローチャートである。以下の動作指令生成処理の説明において主作業とは、ロボット300が1つ以上の作業対象380(例えば瓦礫)を1つずつエンドエフェクタ301で把持して、所定の容器(不図示)に移す(撤去する)作業である。1つの作業対象380を把持して容器に移すのが、1つの副作業である。第1実施形態では、撤去する作業対象380をロボット300の操作者が指示して、生成された動作命令に従ってロボット300が指示された作業対象380を把持して容器に移す。
【0037】
ステップS11において指令生成部113は、副作業ごとにステップS12~S17を繰り返す処理を開始する。詳しくは、指令生成部113は、位置抽出ブロック141を用いて、撮影画像から位置情報を算出し、位置情報に作業対象380の位置情報がなければ動作指令生成処理を終え、作業対象380があればステップS12に進む。
【0038】
ステップS12において指令生成部113は、作業対象380が映っているカメラ371,372の撮影画像をタッチパネルディスプレイに表示し、どの作業対象380が把持するかを操作者に問い合わせる。操作者が把持する作業対象380の1つをタッチして指示すると、指令生成部113はその位置を取得する。換言すれば、指令生成部113は作業対象となる対象物の候補のなかでロボット300の作業対象となる対象物を指定する作業対象指定情報を取得する。以下では指示された1つの作業対象380を作業対象物体と記す。
【0039】
ステップS13において指令生成部113は、副作業が終了する(ステップS12で指示された作業対象物体をロボットが把持して容器に移す)までステップS14~S17の処理を繰り返す。
ステップS14において指令生成部113は、撮像画像を位置抽出ブロック141に入力して位置情報を取得する。詳しくは、指令生成部113は位置抽出ブロック141を用いて撮影画像から位置情報を算出する。位置情報には、個々の作業対象380やエンドエフェクタ301の位置座標が含まれる。
【0040】
ステップS15において指令生成部113は、位置情報に含まれる作業対象物体の位置座標を、ステップS12で取得した位置情報に置き換える。なお、指令生成部113がステップS14~S17を繰り返して、ロボット300が作業対象物体を把持して移動することで、作業対象物体の位置は変化する。指令生成部113は、ステップS12で指示された作業対象物体の位置を追跡して、追跡結果である作業対象物体の位置に置き換える。把持した後の作業対象物体の位置は、後記するステップS16で取得される動作指令から算出されるエンドエフェクタ301の位置から取得可能である。
【0041】
ステップS16において指令生成部113は、置き換えた位置情報とセンサ情報とを動作指令生成ブロック142に入力して、動作指令を取得する。詳しくは、指令生成部113は動作指令生成ブロック142を用いて置き換えた位置情報とセンサ情報とから動作指令を算出する。
ステップS17において指令生成部113は、ステップS16で算出した動作指令を制御装置310に送信する。
【0042】
≪動作指令生成装置の特徴≫
動作指令生成装置100は、指令生成モデル140を用いて、撮影画像とセンサ情報とからロボット300の動作指令を生成する。指令生成モデル140は機械学習モデルであって、その学習データは、操作者がロボット300を操作した作業から取得可能なデータであって、低コストで作成可能である。
【0043】
指令生成モデル140は、位置抽出ブロック141と、動作指令生成ブロック142とを含み、動作指令を生成する際に作業対象の位置を算出する構成となっている。動作指令生成装置100は動作指令を生成する際に、作業対象の位置を操作者が指定した作業対象の位置に置き換える。このようにすることで、複数の作業対象となる物体があった場合でも、操作者が指示した物体に対してロボット300は作業を行うようになる。
学習データを作成(操作者がロボット300を操作)するときの作業対象の物体は1つであってもよい。複数の作業対象がある場合の学習データを準備して、訓練/学習するのに比べて低コスト・短時間に学習データを作成できる。
【0044】
≪変形例:位置情報≫
上記した第1実施形態では、指令生成モデル140を用いて動作指令を算出する際に、作業対象の位置情報(位置座標)が算出されている(
図3参照)。位置抽出ブロック141においてSpatial Softmax関数の替わりにsigmoid関数を用いてヒートマップを得ることで、位置情報の替わりに作業対象やエンドエフェクタ301の領域情報が算出されるようにしてもよい。
【0045】
≪変形例:位置情報の置き換え≫
上記した第1実施形態において指令生成部113は、位置抽出ブロック141の出力である作業対象の位置情報を、操作者が指定した作業対象の位置情報に置き換えている(
図4のステップS15参照)。入力となる撮影画像が作業対象のみを含むようにしてもよい。
【0046】
図5は、第1実施形態の変形例に係る撮影画像510である。撮影画像510の右下にある3つの作業対象のなかで、操作者が右の作業対象511を把持するように指定したとする。すると指令生成部113は、作業対象511を含む領域を残して他をマスクする画像であり、作業対象511以外の操作者が指定しなかった作業対象をマスクする画像であるマスク用の画像520(後記する
図6参照)を生成する。
【0047】
図6は、第1実施形態の変形例に係るマスク用の画像520である。領域521は、作業対象511を含む領域で、作業対象511以外の操作者が指定しなかった作業対象を含まない領域である。画像520において領域521以外がマスクされている。
【0048】
図7は、第1実施形態の変形例に係る撮影画像510が画像520でマスクされた撮影画像530である。指令生成部113は、位置情報を置き換えるのではなく、指定された作業対象511を残して他がマスクされた撮影画像530を指令生成モデル140(位置抽出ブロック141)の入力として、動作指令を算出する。このような作業対象511のみが撮影されている画像を入力とすることで、位置抽出ブロック141の出力である位置情報には作業対象511の位置情報のみが含まれ、作業対象511を把持する動作指令が生成される。
【0049】
≪変形例:作業種別の選択≫
上記した第1実施形態では、操作者が作業対象を選択している(
図4記載のステップS12参照)が、さらに複数ある作業種別の1つを選択するようにしてもよい。瓦礫撤去作業における作業種別とは、例えば選択されてロボット300が把持した作業対象の瓦礫をどの容器に移す作業かということである。またバルブ開閉作業における作業種別とは、例えば選択されたバルブを開く作業か、閉じる作業かということである。
【0050】
指令生成モデル140は、作業種別に応じて複数あり、それぞれ作業種別に応じた動作指令を生成するように訓練/学習されている。ステップS12において指令生成部113は、作業対象の位置情報とともに、作業種別を取得する。ステップS14~S17において指令生成部113は、作業種別に対応した指令生成モデル140を用いて動作指令を算出する。
このようにすることでロボット300は、作業対象に対して操作者が指示した作業種別の作業を行うことができるようになる。
【0051】
≪第2実施形態≫
上記した第1実施形態では、把持する作業対象を操作者に問い合わせている(
図4のステップS12参照)。把持する作業対象が1つに特定できる場合には、操作者への問い合わせることなく、作業を行ってもよい。例えば、撮影画像において作業対象が一カ所にあると見なせる場合には、操作者に問い合わせることなく、作業を行ってもよい。これは、位置抽出ブロック141が算出した位置情報(位置座標)が1つ以上あるが、その位置の散らばり(分散)が小さく、一カ所と見なせる場合である。
【0052】
第2実施形態に係る動作指令生成装置100の機能構成は、指令生成部113(動作指令生成処理)を除いて第1実施形態と同様である。第2実施形態の指令生成部を指令生成部113Aと記す。
図8は、第2実施形態に係る動作指令生成処理のフローチャートである。
ステップS31において指令生成部113Aは、副作業ごとにステップS32~S40を繰り返す処理を開始する。
ステップS32において指令生成部113Aは、撮像画像を位置抽出ブロック141に入力して位置情報を取得して、位置情報の分散を算出する。分散は、例えば作業対象の位置を示すX座標とY座標それぞれの分散の和である。
【0053】
ステップS33において指令生成部113Aは、ステップS32で算出した分散が所定値より大きければ(ステップS33→YES)ステップS34に進み、所定値以下であれば(ステップS33→NO)ステップS35に進む。
ステップS34は、
図4記載のステップS12と同様の処理である。
ステップS35において指令生成部113Aは、ステップS34で指示された作業対象物体をロボットが把持して容器に移すまでステップS36~S40の処理を繰り返す。ステップS34がスキップされた(ステップS33→NO)場合の作業対象物体は、分散が小さく一カ所と見なせる位置情報の位置にある作業対象の物体である。
【0054】
ステップS36は、ステップS14と同様の処理である。
ステップS37において指令生成部113Aは、ステップS34(ステップS12参照)において操作者の指示である作業対象物体の位置を取得したならば(ステップS37→YES)ステップS38に進み、取得していないならば(ステップS37→NO)ステップS39に進む。
ステップS38~S40は、ステップS15~S17とそれぞれ同様の処理である。
【0055】
≪第2実施形態の特徴≫
撮影画像において作業対象が一カ所にあると見なせる場合には、操作者に問い合わせることなく、ロボット300は作業を行うので、作業効率が向上する。
なおステップS37でNOに分岐してステップS38をスキップすることなく、ステップS36に続いてステップS38を実行するようにしてもよい。この場合、ステップS38において指令生成部113Aは、作業対象物体の位置座標を把持された作業対象物体の移動に応じた位置情報に置き換えてもよい(ステップS15参照)。
【0056】
≪第3実施形態≫
第1実施形態では、作業対象の順番が決まっている。順番が決まっていない場合には、操作者に問い合わせることなく、次々と作業を行ってもよい。例えば、瓦礫撤去作業において、類似形状・見た目の瓦礫が散らばっており、順番によらず撤去すればよい場合は、次々と瓦礫を把持して容器に移せばよい。
【0057】
第3実施形態に係る動作指令生成装置100の機能構成は、指令生成部(動作指令生成処理)を除いて第1実施形態と同様である。第3実施形態の指令生成部を指令生成部113Bと記す。
図9は、第3実施形態に係る動作指令生成処理のフローチャートである。
ステップS51において指令生成部113Bは、副作業ごとにステップS52~S58を繰り返す処理を開始する。
ステップS52において指令生成部113Bは、撮像画像を位置抽出ブロック141に入力して作業対象の位置情報を取得する。
【0058】
ステップS53において指令生成部113Bは、ステップS52で取得した位置情報にある作業対象の1つをランダムに選択する。以下、この選択された作業対象を作業対象物体と記す。
ステップS54~S58は、ステップS13~S17とそれぞれ同様である。但し、ステップS56では、位置情報に含まれる作業対象物体の位置座標を、ステップS53で選択した作業対象物体の位置情報に置き換える。
【0059】
≪第3実施形態の特徴≫
操作者への問い合わせることなく、ロボット300は作業を行うので、作業効率が向上する。
【0060】
≪変形例≫
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。例えば、ロボット300の作業として瓦礫の撤去(瓦礫を把持して容器に移動)を例にしたが、これに限らず他の作業であってもよい。例えば、プラントにおける順番が決められた複数のバルブの開閉作業や物体(箱)の搬送作業などの作業であってもよい。バルブの開閉作業の場合、副作業は1つのバルブの開閉作業である。
【0061】
上記した第1実施形態では、作業対象となる物体をロボット300の操作者が選択しているが、これに限らない。作業対象の順番を決めるシステムがあり、このシステムが作業対象を選択するようにしてもよい。
上記した第1実施形態では、作業対象380(の位置情報)の有無を、位置情報を基に指令生成部113が判断しているが(
図4のステップS11参照)操作者が撮影画像を基に判断するようにしてもよい。また、副作業の終了(ステップS13参照)を操作者が判断するようにしてもよい。
【0062】
上記した実施形態における動作指令生成装置100は、学習部112と指令生成部113,113A,113Bとを備えており、指令生成モデル140を生成し、当該指令生成モデル140を用いて動作指令を出力している。指令生成モデル140を生成する装置と、動作指令を出力する装置とを分けてもよい。例えば、学習部112を備えるモデル生成装置が指令生成モデル140を生成して、複数の動作指令装置に送信し、それぞれの動作指令装置がそれぞれのロボットの制御装置に動作指令を出力するようにしてもよい。他にも動作指令生成装置100と制御装置310とが一体となる形態であってもよい。
【0063】
本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0064】
100 動作指令生成装置
111 取得部
112 学習部
113,113A,113B 指令生成部
128 プログラム
130 学習データ
140 指令生成モデル(機械学習モデル)
141 位置抽出ブロック
142 動作指令生成ブロック
300 ロボット
380 作業対象(対象物)