JP2020196102A - 制御装置、システム、学習装置および制御方法 - Google Patents

制御装置、システム、学習装置および制御方法 Download PDF

Info

Publication number
JP2020196102A
JP2020196102A JP2019104449A JP2019104449A JP2020196102A JP 2020196102 A JP2020196102 A JP 2020196102A JP 2019104449 A JP2019104449 A JP 2019104449A JP 2019104449 A JP2019104449 A JP 2019104449A JP 2020196102 A JP2020196102 A JP 2020196102A
Authority
JP
Japan
Prior art keywords
data
learning
moving body
control device
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019104449A
Other languages
English (en)
Inventor
裕紀 森
Hironori Mori
裕紀 森
亮太 鳥島
Ryota Torishima
亮太 鳥島
哲也 尾形
Tetsuya Ogata
哲也 尾形
城志 高橋
Kuniyuki Takahashi
城志 高橋
大輔 岡野原
Daisuke Okanohara
大輔 岡野原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Preferred Networks Inc
Original Assignee
Preferred Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Preferred Networks Inc filed Critical Preferred Networks Inc
Priority to JP2019104449A priority Critical patent/JP2020196102A/ja
Priority to PCT/JP2020/021831 priority patent/WO2020246482A1/ja
Publication of JP2020196102A publication Critical patent/JP2020196102A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/06Safety devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】障害物を回避する軌道をより容易に求める。【解決手段】実施形態にかかる制御装置は、推論部を備える。推論部は、移動体の位置および姿勢の少なくとも一方の潜在的な特徴を示す潜在空間上の入力データを入力し、実空間上で障害物に接触しない移動体の位置および姿勢の少なくとも一方を示す出力データを出力する第1モデルに対して、潜在空間上の複数の第1入力データを入力し、第1モデルが出力する複数の第1出力データを得る。【選択図】図4

Description

本発明の実施形態は、制御装置、システム、学習装置および制御方法に関する。
工場および倉庫などで利用されるロボットに加え、生活環境で人間と協働作業するロボットの需要が高まっている。これらのロボットは、照明および障害物などの条件が常に変化する環境での動作が想定される。従って、人間、環境の障害物、および、ロボット自身が損傷しないようにロボットが動作することを保証するために、障害物を回避する能力をロボットが備えることが必要である。
Marija Jegorova, Stephane Doncieux, and Timothy Hospedales., "Behavioural Repertoire via Generative Adversarial Policy Network",arXiv: 1811.02945, 6 Mar 2019 Oussama Khatib.,"Real-time obstacle avoidance for manipulators and mobile robots.", In Robotics and Automation. Proceedings. 1985 IEEE International Conference on, Vol. 2, pp.500-505. IEEE, 1985. Sertac Karaman and Emilio Frazzoli.,"Incremental sampling-based algorithms for optimal motion planning.", Robotics Science and Systems VI, Vol. 104, p. 2, 2010. Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio., "Generative adversarial nets." In Advances in neural information processing systems, pp. 2672-2680, 2014. Karen Simonyan Andrew Brock, Jeff Donahue., "Large scale gan training for high fidelity natural image synthesis.", In International Conference on Learning Representations 2019, 2019. Hariharan Narayanan Charles Fefferman, Sanjoy Mitter., "Testing the manifold hypothesis.", In Journal of the American Mathematical Society, Vol. 29, pp. 983-1049, 2016. Masanori Koyama Yuichi Yoshida Takeru Miyato, Toshiki Kataoka., "Spectral normalization for generative adversarial networks.", In International Conference on Learning Representations 2018, 2018.
発明が解決しようとする課題は、障害物を回避する軌道をより容易に求めることにある。
実施形態にかかる制御装置は、推論部を備える。推論部は、移動体の位置および姿勢の少なくとも一方の潜在的な特徴を示す潜在空間上の入力データを入力し、実空間上で障害物に接触しない移動体の位置および姿勢の少なくとも一方を示す出力データを出力する第1モデルに対して、潜在空間上の複数の第1入力データを入力し、第1モデルが出力する複数の第1出力データを得る。
図1は、本実施形態の制御装置を含むロボットシステムのハードウェア構成例を示す図である。 図2は、2リンクアームロボットであるロボットの構成例を示す図である。 図3は、制御装置のハードウェアブロック図である。 図4は、制御装置の機能構成の一例を示す機能ブロック図である。 図5は、本実施形態で用いるGANの構成例を示す図である。 図6は、本実施形態における学習処理の一例を示すフローチャートである。 図7は、本実施形態における制御処理の一例を示すフローチャートである。 図8は、潜在空間上での直線軌道の関節角度空間への写像の一例を示す図である。 図9は、ロボットの軌跡の例を示す図である。 図10は、潜在表現上での直線軌道の関節角度空間への写像の一例を示す図である。 図11は、関節角度空間上の軌道を元に動作させたロボットの軌跡の例を示す図である。 図12は、VAEの構成例を示す図である。 図13は、学習データの例を説明するための図である。
以下、図面を参照しながら実施形態について詳細に説明する。
障害物を回避する軌道計画では、人間による設計が不要であり、計算コストがより小さい障害物回避の方法が望まれる。そこで、本実施形態では、生成モデルを用いて障害物を回避する軌道を計算する。例えばGAN(Generative Adversarial Networks)を、生成モデルを含むモデルとして用いることができる。GANは、多様体仮説に基づいて、学習データをより低次元の潜在表現(潜在空間上で表されるデータ)に落とし込める利点がある。本実施形態では、ロボットが障害物を回避する位置および姿勢の少なくとも一方をGANに含まれる潜在空間に獲得させ、潜在空間上で軌道を指定する。これにより、障害物を回避する軌道計画がより容易に実現可能となる。簡単な設計により障害物回避を実現することができるため、例えば技術者だけでなく、熟練した知識のないユーザでもロボットを扱うことが可能となる。
図1は、本実施形態の制御装置100を含むロボットシステム1のハードウェア構成例を示す図である。図1に示すように、ロボットシステム1は、制御装置100と、コントローラ200と、ロボット300と、センサ400と、を備えている。
ロボット300は、制御装置100によって位置および姿勢の少なくとも一方(軌道)が制御されて移動する移動体の例である。ロボット300は、例えば、複数のリンク、複数の関節、および、関節それぞれを駆動する複数の駆動装置(モータなど)を備える。以下では、2つの関節および2つのリンクを備える2リンクアームロボットであるロボット300を例に説明する。
図2は、2リンクアームロボットであるロボット300の構成例を示す図である。図2に示すように、ロボット300は、ベース部材321と、2つの関節301、302と、2つのリンク311、312と、を備えている。関節301、302は、図2の紙面と垂直な方向の軸回りに回転する。関節301は、ベース部材321に固定された軸回りに回転する。リンク311、312は、関節301、302の回転に応じて移動する。図2では、関節301、302がそれぞれ反時計回りに回転することによりリンク311、312が移動する様子が示されている。
適用可能なロボット(移動体)はこれに限られず、どのようなロボット(移動体)であってもよい。例えば、3つ以上の関節およびリンクを備えるロボット、モバイルマニピュレータ、および、移動台車であってもよい。また、ロボット全体を実空間内の任意の方向に平行移動させるための駆動装置を備えるロボットであってもよい。移動体は、このように全体の位置が変化する物体でもよいし、図2のリンクアームロボットのように、一部の位置が固定され、他の部分の位置および姿勢の少なくとも一方が変化する物体でもよい。
図1に戻り、センサ400は、ロボット300の動作の制御に用いるための情報を検知する。センサ400は、例えば、ロボット300の周囲の画像を撮像する撮像装置(カメラ)、および、ロボット300の周囲の物体までの深度情報を検知する深度センサ(デプスセンサ)の両方または一方である。センサ400はこれらに限られるものではなく、例えば、障害物の位置に関する情報(位置情報)を取得可能なセンサであってもよい。
コントローラ200は、制御装置100からの指示に応じて、ロボット300の駆動を制御する。例えばコントローラ200は、制御装置100から指定された回転方向および回転速度で回転するように、ロボット300の関節を駆動する駆動装置(モータなど)を制御する。
制御装置100は、コントローラ200、ロボット300、および、センサ400に接続され、ロボットシステム1の全体を制御する。例えば制御装置100は、ロボット300の動作を制御する。ロボット300の動作の制御には、生成モデルを用いた軌道の計算が含まれる。制御装置100は、計算した軌道に従ってロボット300を動作させるための動作指令を、コントローラ200に出力する。制御装置100は、生成モデルを学習する機能を備えてもよい。この場合、制御装置100は、生成モデルを学習する学習装置としても機能する。
図3は、制御装置100のハードウェアブロック図である。制御装置100は、一例として、図3に示すような一般のコンピュータ(情報処理装置)と同様のハードウェア構成により実現される。制御装置100は、図3に示すような1つのコンピュータにより実現されてもよいし、協働して動作する複数のコンピュータにより実現されてもよい。
制御装置100は、メモリ204と、1または複数のハードウェアプロセッサ206と、記憶装置208と、操作装置210と、表示装置212と、通信装置214とを備える。各部は、バスにより接続される。
メモリ204は、例えば、ROM222と、RAM224とを含む。ROM222は、制御装置100の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。RAM224は、SDRAM(Synchronous Dynamic Random Access Memory)等の揮発性の記憶媒体である。RAM224は、1または複数のハードウェアプロセッサ206の作業領域として機能する。
1または複数のハードウェアプロセッサ206は、メモリ204(ROM222およびRAM224)にバスを介して接続される。1または複数のハードウェアプロセッサ206は、例えば、1または複数のCPU(Central Processing Unit)であってもよいし、1または複数のGPU(Graphics Processing Unit)であってもよい。また、1または複数のハードウェアプロセッサ206は、ニューラルネットワークを実現するための専用の処理回路を含む半導体装置等であってもよい。
1または複数のハードウェアプロセッサ206は、RAM224の所定領域を作業領域としてROM222または記憶装置208に予め記憶された各種プログラムとの協働により各種処理を実行し、制御装置100を構成する各部の動作を統括的に制御する。また、1または複数のハードウェアプロセッサ206は、ROM222または記憶装置208に予め記憶されたプログラムとの協働により、操作装置210、表示装置212、および、通信装置214等を制御する。
記憶装置208は、フラッシュメモリ等の半導体による記憶媒体、あるいは、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶装置208は、制御装置100の制御に用いられるプログラムおよび各種設定情報等を記憶する。
操作装置210は、マウスおよびキーボード等の入力デバイスである。操作装置210は、ユーザから操作入力された情報を受け付け、受け付けた情報を1または複数のハードウェアプロセッサ206に出力する。
表示装置212は、情報をユーザに表示する。表示装置212は、1または複数のハードウェアプロセッサ206から情報等を受け取り、受け取った情報を表示する。なお、通信装置214または記憶装置208等に情報を出力する場合、制御装置100は、表示装置212を備えなくてもよい。
通信装置214は、外部の機器と通信して、ネットワーク等を介して情報を送受信する。
本実施形態の制御装置100で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
また、本実施形態の制御装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の制御装置100で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態の制御装置100で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施形態にかかる制御装置100で実行されるプログラムは、コンピュータを後述する制御装置100の各部として機能させうる。このコンピュータは、ハードウェアプロセッサ206がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
図1に示すハードウェア構成は一例であり、これに限られるものではない。制御装置100、コントローラ200、ロボット300、および、センサ400のうち一部または全部を、1つの装置が備えるように構成してもよい。例えば、ロボット300が、制御装置100、コントローラ200、および、センサ400の機能も備えるように構成してもよい。また、制御装置100が、コントローラ200およびセンサ400の一方または両方の機能も備えるように構成してもよい。また、図1では制御装置100が学習装置としても機能しうることを記載しているが、制御装置100と学習装置とを物理的に異なる装置により実現してもよい。
次に、制御装置100の機能構成について説明する。図4は、制御装置100の機能構成の一例を示す機能ブロック図である。図4に示すように、制御装置100は、取得部101と、学習部102と、推論部103と、移動制御部104と、記憶部121と、を備えている。
取得部101は、制御装置100が実行する各種処理で用いられる各種情報を取得する。例えば取得部101は、生成モデルを学習するための学習データを取得する。学習データの取得方法はどのような方法であってもよいが、取得部101は、例えば予め作成された学習データを、外部の装置からネットワークなどを介して、または、記憶媒体から取得する。
学習部102は、学習データを用いて生成モデル(第1モデル)を学習する。GANを用いる場合、学習部102は、GANを構成する生成器および識別器の2つのニューラルネットワークを学習する。
学習データは、例えば、実空間上で障害物に接触しないロボット300の位置および姿勢の少なくとも一方を示すデータである。このような学習データを用いて学習することにより、入力された潜在表現(潜在空間上のデータ)に対して、実空間上で障害物に接触(干渉)しない移動体の位置および姿勢の少なくとも一方を示す出力データを出力する生成器が得られる。なお、位置および姿勢の少なくとも一方を示す出力データは、位置を示す出力データ、姿勢を示す出力データ、および、位置および姿勢の両方を示す出力データ、を含む。生成器は、移動体の位置および姿勢の少なくとも一方の潜在的な特徴を示す潜在空間上の入力データを入力し、実空間上で障害物に接触しない移動体の位置および姿勢の少なくとも一方を示す出力データを出力する生成モデル(第1モデル)に相当する。学習方法の詳細は後述する。
推論部103は、学習された生成モデルを用いた推論を実行する。例えば推論部103は、生成モデルに対して、潜在空間上で線を構成する複数の入力データ(第1入力データ)を入力し、生成モデルが出力する複数の出力データ(第1出力データ)を得る。
移動制御部104は、ロボット300の移動を制御する。例えば移動制御部104は、推論部103により得られた出力データを、実空間上でロボット300が障害物に接触しない軌道を示す軌道データとして、ロボット300の移動を制御する。より具体的には、移動制御部104は、軌道データに従ってロボット300を動作させるための動作指令を生成し、動作指令をコントローラ200に送信することにより、ロボット300を移動させる。
記憶部121は、制御装置100で用いられる各種情報を記憶する。例えば記憶部121は、GANを構成するニューラルネットワーク(生成器および識別器)のパラメータ(重み係数、バイアスなど)、および、GANを構成するニューラルネットワークを学習するための学習データを記憶する。記憶部121は、例えば図3の記憶装置208により実現される。
上記各部(取得部101、学習部102、推論部103、および、移動制御部104)は、例えば、1または複数のハードウェアプロセッサ206により実現される。例えば上記各部は、1または複数のCPUにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのハードウェアプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
次に、GANの構成例について説明する。図5は、本実施形態で用いるGANの構成例を示す図である。図5に示すように、GANは、生成器501および識別器502の2つのニューラルネットワークを含む。生成器501は、入力される低次元の潜在空間上の潜在変数zに対して、学習データの偽のデータ(高次元データ)を出力する。生成器501は、出力された偽のデータの分布が真の学習データの分布に近くなるように学習される。識別器502は、入力データが真の学習データか偽のデータのいずれであるかを識別し、識別精度をより高くするように学習される。
図2に示すような2リンクロボットを用いる場合、低次元(潜在空間)のデータ(潜在変数)、および、高次元(実空間)のデータ(学習データ、偽のデータ)は、例えば以下のように定義される。
まず、関節301、302の角度(関節角度)を、それぞれθ、θとする。関節302、および、リンク312の先端の座標をそれぞれ(x,y)、および、(x,y)とする。リンク311、312の長さ(リンク長)は、例えば1とする。高次元のデータは、2つの関節301、302の角度、関節302の位置、リンク312の先端の位置、を含む6次元のデータ(θ0,θ1,,y,x,y)として表される。このような6次元の位置姿勢情報のうち(x,y,x,y)は、潜在的には(θ0,θ)という2次元の情報を与えれば順運動学によって生成できる。このため、低次元のデータ(潜在変数)は、2次元のデータ(z,z)と定義することができる。同様に、関節などの駆動部がn個(n≧3の整数)である場合は、例えばn次元のデータ(z,z,・・・,zn−1)を潜在変数とすることができる。
なお、上記のような低次元(潜在空間)のデータ、および、高次元(実空間)のデータは一例であり、これらに限られるものではない。例えば、関節の自由度よりも大きい次元数の潜在変数が用いられてもよい。
図5に示すGANは、生成器501および識別器502それぞれに対して、複数の条件のうち指定された条件(Condition)を入力することができる。これにより、生成器501および識別器502は、条件に応じたデータ(偽のデータ、または、識別結果)を出力することができる。なお、このように条件を入力可能なGANは、Conditional GANと呼ばれる場合がある。なお、条件を入力しないGANを用いるように構成してもよい。
図5に示す条件は、ロボット300が移動可能な範囲内に、黒い矩形で示す障害物が存在することを示す。条件の指定方法はどのような方法であってもよい。図5に示すように、ロボット300が移動可能な範囲を複数(図5では16個)に区切った領域(矩形)ごとに障害物が存在するか否かを示す情報(例えば障害物が存在する場合に1、存在しない場合に0)を指定した条件を用いてもよい。ロボット300の周囲を撮像した画像およびロボット300の周囲の物体までの深度情報の一方または両方を、障害物に関する条件として用いてもよい。この場合、センサ400(撮像装置、深度センサ)により検知される画像情報および深度情報を障害物に関する条件として用いることができる。画像情報または深度情報を用いる場合、障害物の位置を示す情報(位置情報)がさらに障害物に関する条件として明示的に与えられてもよいし、与えられなくてもよい。障害物の位置情報を取得可能なセンサ400を用いて、障害物の位置情報のみを障害物に関する条件として用いてもよい。
多様体仮説によると、この世の中のあらゆる表現は、より低次元の多様体として表現できる。GANは、多様体仮説に基づき、高次元の表現から低次元の潜在表現を獲得することが期待される。本実施形態のように障害物を回避する軌道計画に適用する場合、GANの条件付き生成モデル(生成器501)を学習することにより、障害物と接触しないロボット300の位置および姿勢の少なくとも一方を示す低次元の潜在表現が獲得される。学習された生成器501は、指定された潜在表現(潜在空間上の位置および姿勢の少なくとも一方を示すデータ)から、実空間上でロボットが障害物を回避する位置および姿勢の少なくとも一方を示すデータを生成することが可能となる。
また、GANは、潜在空間上のデータ(潜在変数)の隣接関係と、生成するデータの隣接関係とが対応するように学習することが知られている。従って、低次元の潜在空間上で指定された軌道(複数の隣接する位置および姿勢の少なくとも一方)を生成器501により写像すると、実空間上でロボット300が障害物を回避する位置および姿勢の少なくとも一方の軌道が得られる。
また、障害物の位置などの情報を含む条件を生成器501と識別器502に入力すると、同じ潜在表現から出力される位置および姿勢の少なくとも一方が歪み、条件に含まれる障害物の位置に応じて、障害物を回避する位置およびは姿勢の少なくとも一方が出力される。
次に、このように構成された本実施形態にかかる制御装置100による学習処理について説明する。図6は、本実施形態における学習処理の一例を示すフローチャートである。
まず、取得部101は、学習データを取得する(ステップS101)。取得部101は、例えば外部の装置からネットワークなどを介して取得され、記憶部121に記憶された学習データを取得する。通常、学習処理は、複数回繰り返し実行される。取得部101は、複数の学習データのうち一部を、各回の学習に用いる学習データ(バッチ)として取得してもよい。
次に学習部102は、GANの生成器501により、偽のデータを生成する(ステップS102)。学習部102は、生成した偽のデータ、または、ステップS101で取得された学習データ(真の学習データ)を識別器502に入力し、識別器502が出力する識別結果を得る(ステップS103)。
学習部102は、識別結果を用いて、生成器501および識別器502のパラメータを更新する(ステップS104)。例えば学習部102は、識別器502が偽のデータを真の学習データであると誤って識別するほど小さい値となるロス関数の値を最小化するように生成器501のパラメータを更新する。また学習部102は、識別器502の識別結果が正しいほど小さい値となるロス関数の値を最小化するように識別器502のパラメータを更新する。学習部102は、どのようなアルゴリズムを学習に用いてもよいが、例えばAdam(Adaptive moment estimation)を用いて学習を行うことができる。
学習部102は、学習を終了するか否かを判定する(ステップS105)。例えば学習部102は、すべての学習データを処理したか、ロス関数の改善の大きさが閾値より小さくなったか、または、学習の回数が上限値に達したか否か、などにより、学習の終了を判定する。
学習が終了していない場合(ステップS105:No)、ステップS101に戻り、新たな学習データに対して処理が繰り返される。学習が終了したと判定された場合(ステップS105:Yes)、学習処理を終了する。
なお、GANは、学習する際にしばしば勾配が消失あるいは発散するため、学習が難しいことが知られている。そこで学習部102は、学習を安定化させるための手法、例えば、生成器501および識別器502の各層に正規化(Spectral Normalizationなど)を適用する手法を用いてもよい。
以上のような学習処理により、潜在空間上の入力データに対して、実空間上でロボット300が障害物に接触しない位置および姿勢の少なくとも一方を示す出力データを出力する生成モデル(生成器501)が得られる。ロボット300の移動する軌道を計算する際には、このように生成された生成器501が用いられる。
次に、本実施形態にかかる制御装置100によるロボット300の制御処理について説明する。図7は、本実施形態における制御処理の一例を示すフローチャートである。
まず、推論部103は、潜在空間上での、ロボット300のスタート位置(移動開始位置)およびエンド位置(移動終了位置)を計算する(ステップS201)。なお、実空間上でのロボット300のスタート位置およびエンド位置は、事前に与えられていることを前提とする。
推論部103は、例えば、潜在空間上の潜在変数zをランダムに生成し、潜在変数zを生成器501に入力して得られるデータが、実空間上で与えられたスタート位置と一致するか判定する。なお一致には、値が完全に一致する場合のみでなく、値の差分が閾値以内となる場合を含んでもよい。一致した場合に、推論部103は、生成器501に入力したデータを、潜在空間上でのスタート位置と推定する。一致しない場合は再度潜在変数zをランダムに生成し、処理を繰り返す。推論部103は、潜在空間上のエンド位置も同様にして推定することができる。
推論部103は、生成器501とは異なるモデル(第2モデル)を用いて、潜在空間上でのロボット300のスタート位置およびエンド位置を計算(推定)してもよい。例えば、学習部102は、実空間上のデータ(生成器501が生成した偽のデータなど)を入力し、潜在空間上のデータを出力するニューラルネットワークモデル(第2モデル)を、生成器501および識別器502の学習と同時に、または独立に学習する。推論部103は、このように学習されたニューラルネットワークモデルに対して、実空間上で与えられたスタート位置およびエンド位置を入力し、出力されたデータを、それぞれ潜在空間上でのロボット300のスタート位置およびエンド位置として推定する。
推論部103は、潜在空間上でのスタート位置とエンド位置とを結ぶ軌道を決定する(ステップS202)。軌道は、スタート位置とエンド位置とを結ぶ軌道であればどのような軌道であってもよい。上記のように2次元の潜在空間を用いる場合、推論部103は、例えばスタート位置とエンド位置とを結ぶ線(直線、曲線)を軌道として決定してもよい。
推論部103は、決定した軌道に相当する潜在空間上の複数の入力データを生成器501に入力し、生成器501が出力する複数の出力データを得る(ステップS203)。この出力データは、実空間上でロボット300が障害物に接触せずに移動する軌道に相当する。
移動制御部104は、計算された軌道に従って移動するようにロボット300の移動を制御する(ステップS204)。
以上のように、本実施形態によれば、GANの学習により得られる生成モデル(生成器501)を用いてロボット300の軌道を計算することができる。このような方法では、ポテンシャル法のような複雑な関数の設計は不要である。また、学習データより低次元の潜在空間での軌道の計算となるため、計算コストを低減することができる。
次に、ロボットの移動制御の具体例について図8〜図11を用いて説明する。以下では、図2のような2リンクアームロボットであるロボット300をシミュレートするシミュレータを用いて軌道を計算した例を説明する。
まず、ロボット(シミュレータ)の動作の前提について説明する。学習データは以下のように求める。関節301の関節角度θの範囲は、−90°〜+90°とする。関節302の関節角度θの範囲は、0°〜+150°とする。各関節角度の刻み幅は1°とする。関節角度θ、θ01から順運動学によって関節302およびリンク312の先端の座標を含む上記の(x,y,x,y)を得ることができる。このようにして得られる6次元のデータ(θ0,θ1,,y,x,y)が学習データとして用いられる。
条件としては、障害物情報を含むマップを与える。マップは、ロボット300の存在する空間を8×4=32の領域に分け、各領域に対して障害物の有無を表す2値の情報(例えば障害物がある場合1、ない場合0)を障害物情報として含む。条件数は、障害物のない場合(いずれの領域にも障害物がない場合)、および、障害物のある場合(いずれかの領域に障害物がある場合)の2つとする。以下では、障害物のない場合を条件1、障害物のある場合を条件2という場合がある。バッチサイズ(各回の学習データの個数)は2056、最適化手法はAdamとし、10万回の学習を行う。
図8は、上記のような前提に従い学習した後の生成器501に対して、条件1(障害物なし)とともに入力された潜在空間上での直線軌道の関節角度空間への写像の一例を示す図である。関節角度空間とは、6次元のデータのうち関節角度θ0,θにより表される2次元の空間である。図8の上部は、潜在空間上で指定されるスタート位置801と、エンド位置802とを結ぶ直線軌道の例を示す。図8の下部は、関節角度空間上に写像されたスタート位置811とエンド位置812とを結ぶ軌道の例を示す。また、図9は、図8の関節角度空間上の軌道を元に動作させたロボット(シミュレータ)の軌跡の例を示す図である。
また、図10は、生成器501に対して、条件2(障害物あり)とともに入力された潜在表現上での直線軌道の関節角度空間への写像の一例を示す図である。また、図11は、図10の関節角度空間上の軌道を元に動作させたロボット(シミュレータ)の軌跡の例を示す図である。
潜在表現上での隣接関係はロボット位置および姿勢の少なくとも一方の隣接関係と対応しており、潜在表現上で指定された滑らかな軌道は関節角度空間でも滑らかな軌道となり、ロボット位置および姿勢の少なくとも一方は滑らかに変化する。
図11に示すように、障害物情報を条件として入力した場合、障害物1101に衝突する関節角度は生成されず、障害物1101に衝突しない関節角度が生成される。このように、ロボットは障害物1101のある領域を回避して移動することが可能となる。
図8のように、条件として障害物がない情報を入力した場合であっても、生成される関節角度が、条件として障害物がある情報を入力した場合である図10の関節角度と類似している。Conditional GANでは異なる条件に対しても同一のニューラルネットワーク(生成モデル)が用いられるため、他の条件の影響を受けることが原因の1つと考えられる。この例のように条件を2つしか用いない場合は、2つの条件が互いに影響し合い、類似する出力データが出力されている可能性がある。条件数をより多くすれば、特定の条件の影響を受けないように学習された(汎化性能の高い)生成モデルが得られることが期待される。例えば、条件1(障害物なし)とともに入力された潜在空間上での直線軌道の関節角度空間への写像が、図8の下部のような歪みを含まない写像となる可能性がある。
(変形例1)
生成モデルは、GANに含まれる生成器に限られるものではない。学習データから低次元の潜在表現が得られるような生成モデルであれば、どのようなモデルを用いてもよい。例えば、GANの代わりに、VAE(Variational Autoencoder)、オートエンコーダ、または、フローベース生成モデルを用いてもよい。
図12は、VAEの構成例を示す図である。VAEでは、6次元のデータ(θ0,θ1,,y,x,y)がエンコーダ1201に入力され、エンコーダ1201が潜在空間上の潜在変数zを出力する。潜在変数zに対して条件が与えられた変数z’がデコーダ1202に入力され、デコーダ1202が新たな6次元のデータを生成して出力する。VAEの場合、デコーダ1202が生成モデルとして用いられる。
VAEでは、実空間上でのロボットのスタート位置およびエンド位置をエンコーダ1201に入力することにより、潜在空間上でのスタート位置およびエンド位置を得ることができる。すなわち、エンコーダ1201を、潜在空間上でのロボットのスタート位置およびエンド位置を推定するためのモデル(第2モデル)として用いることができる。
(変形例2)
図13は、2リンクアームロボットの軌道計画に用いるモデルの学習のための学習データの例を説明するための図である。丸印は、例えば図2の2リンクアームロボットの関節301、302またはリンク312の先端の位置を表す。図13では、座標(0,0)を関節301の位置とし、リンク311、312の長さを1としている。また、図13では、関節302およびリンク312の先端の位置が、それぞれ座標(0,−1.0)および座標(0,−2.0)である状態から、関節301、302の角度を一定幅で変化させた場合のロボット各部の位置の変化が表されている。図13に示す各位置に対応する6次元のデータが学習データとして用いられる。
各回の学習では、バッチとして与えられる複数の学習データが用いられる。例えば、学習データ全体からランダムに選択された一定数の学習データがバッチとして各回の学習に用いられる。
このような方法では、学習結果が安定しない場合がある。例えば、図13に示すような学習データのうち左上部の学習データが偏って選択されたため、学習後に得られる潜在空間にも偏りが生じる場合がある。
このような問題を回避し、学習結果がより安定するように学習データを選択してもよい。例えば、取得部101は、1以上の学習データをそれぞれ含む複数のデータ群から、それぞれ1以上の学習データを取得し、各回の学習に用いる学習データ(バッチ)として用いてもよい。図13のような学習データの場合、取得部101は、例えば、位置および姿勢の少なくとも一方を示す値(座標値)に応じて学習データが分類された複数のデータ群それぞれから1以上の学習データを、例えばランダムに選択してもよい。より具体的には、例えば図13に示す位置座標(x,y)の空間をメッシュ状に複数の領域に分割し、各領域内にリンク312の先端の座標が含まれる学習データを、それぞれ各領域に対応するデータ群に分類する。取得部101は、このように分類される各データ群から1以上の学習データを選択することにより、各回の学習に用いる学習データ(バッチ)を取得する。
また、取得部101は、障害物により近い位置を含む学習データを優先して選択してもよい。例えば上記のように学習データを複数のデータ群に分類する場合は、取得部101は、障害物を含む領域または障害物を含む領域に隣接する領域から、他の領域よりも多くの学習データを取得してもよい。これにより、障害物を回避する位置および姿勢の少なくとも一方をより効率的に学習することが可能となる。
本変形例によれば、偏りが生じないように取得した学習データを用いて学習できるため、より均一な潜在空間を生成することが可能となる。
本明細書において、“a、bおよびcの少なくとも1つ(一方)”のような表現は、a、b、c、a−b、a−c、b−c、a−b−cの組み合わせだけでなく、a−a、a−b−b、a−a−b−b−c−cなどの同じ要素の複数の組み合わせも含む表現である。また、a−b−c−dの組み合わせのように、a、b、c以外の要素を含む構成もカバーする表現である。同様に、本明細書において、“a、bまたはcの少なくとも1つ(一方)”のような表現は、a、b、c、a−b、a−c、b−c、a−b−cの組み合わせだけでなく、a−a、a−b−b、a−a−b−b−c−cなどの同じ要素の複数の組み合わせも含む表現である。また、a−b−c−dの組み合わせのように、a、b、c以外の要素を含む構成もカバーする表現である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
1 ロボットシステム
100 制御装置(学習装置)
101 取得部
102 学習部
103 推論部
104 移動制御部
121 記憶部
200 コントローラ
204 メモリ
206 ハードウェアプロセッサ
208 記憶装置
210 操作装置
212 表示装置
214 通信装置
222 ROM
224 RAM
300 ロボット
400 センサ

Claims (13)

  1. 移動体の位置および姿勢の少なくとも一方の潜在的な特徴を示す潜在空間上の入力データを入力し、実空間上で障害物に接触しない前記移動体の位置および姿勢の少なくとも一方を示す出力データを出力する第1モデルに対して、前記潜在空間上の複数の第1入力データを入力し、前記第1モデルが出力する複数の第1出力データを得る推論部と、
    を備える制御装置。
  2. 複数の前記第1出力データに基づいて、前記移動体の移動を制御する移動制御部、
    を備える請求項1に記載の制御装置。
  3. 複数の前記第1入力データは、前記実空間上での前記移動体の移動開始位置および移動終了位置に対応する第1入力データを含む、
    請求項1又は2に記載の制御装置。
  4. 複数の前記第1入力データは、前記潜在空間上での移動開始位置および移動終了位置を結ぶ線を構成する、
    請求項1乃至3のいずれか一項に記載の制御装置。
  5. 前記推論部は、前記第1モデル、または、前記実空間上での前記移動体の位置および姿勢の少なくとも一方を示す入力データを入力し、前記潜在空間上の出力データを出力する第2モデルを用いて、前記実空間上での前記移動体の移動開始位置に対応する前記潜在空間上での移動開始位置、および、前記実空間上での前記移動体の移動終了位置に対応する前記潜在空間上での移動終了位置を推定する、
    請求項3又は4に記載の制御装置。
  6. 前記第1モデルは、前記障害物に関する条件とともに前記入力データを入力し、前記出力データを出力するように学習され、
    前記推論部は、前記障害物に関する条件とともに複数の前記第1入力データを前記第1モデルに入力し、複数の前記第1出力データを得る、
    請求項1乃至5のいずれか一項に記載の制御装置。
  7. 前記障害物に関する条件は、前記障害物の画像情報、深度情報、及び、位置情報のいずれか一つを含む、
    請求項1乃至6のいずれか一項に記載の制御装置。
  8. 前記第1モデルは、GAN(Generative Adversarial Network)、VAE(Variational Autoencoder)、オートエンコーダ、または、フローベース生成モデルである、
    請求項1乃至7のいずれか一項に記載の制御装置。
  9. 前記障害物に関する条件を取得するセンサと、
    請求項1乃至8のいずれか一項に記載の制御装置と、
    前記移動体と、
    を備えるシステム。
  10. 実空間上で障害物に接触しない移動体の位置および姿勢の少なくとも一方を示す1以上の学習データを取得する取得部と、
    取得された学習データを用いて、移動体の位置および姿勢の少なくとも一方の潜在的な特徴を示す潜在空間上の入力データを入力し、実空間上で障害物に接触しない前記移動体の位置および姿勢の少なくとも一方を示す出力データを出力する第1モデルを学習する学習部と、
    を備える学習装置。
  11. 前記取得部は、前記1以上の学習データをそれぞれ含む複数のデータ群から、それぞれ1以上の学習データを取得する、
    請求項10に記載の学習装置。
  12. 複数の前記データ群は、前記位置および前記姿勢の少なくとも一方を示す値に応じて分類された1以上の学習データを含む、
    請求項11に記載の学習装置。
  13. 移動体の位置および姿勢の少なくとも一方の潜在的な特徴を示す潜在空間上の入力データを入力し、実空間上で障害物に接触しない前記移動体の位置および姿勢の少なくとも一方を示す出力データを出力する第1モデルに対して、前記潜在空間上の複数の第1入力データを入力し、前記第1モデルが出力する複数の第1出力データを得るステップ、
    を含む制御方法。
JP2019104449A 2019-06-04 2019-06-04 制御装置、システム、学習装置および制御方法 Pending JP2020196102A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019104449A JP2020196102A (ja) 2019-06-04 2019-06-04 制御装置、システム、学習装置および制御方法
PCT/JP2020/021831 WO2020246482A1 (ja) 2019-06-04 2020-06-02 制御装置、システム、学習装置および制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019104449A JP2020196102A (ja) 2019-06-04 2019-06-04 制御装置、システム、学習装置および制御方法

Publications (1)

Publication Number Publication Date
JP2020196102A true JP2020196102A (ja) 2020-12-10

Family

ID=73649427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019104449A Pending JP2020196102A (ja) 2019-06-04 2019-06-04 制御装置、システム、学習装置および制御方法

Country Status (2)

Country Link
JP (1) JP2020196102A (ja)
WO (1) WO2020246482A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6955733B1 (ja) * 2021-02-17 2021-10-27 株式会社エクサウィザーズ 情報処理装置、情報処理方法、及びプログラム
WO2022163513A1 (ja) * 2021-01-27 2022-08-04 富士フイルム株式会社 学習済みモデルの生成方法、機械学習システム、プログラムおよび医療画像処理装置
WO2023068354A1 (ja) * 2021-10-22 2023-04-27 川崎重工業株式会社 ロボットデータ処理サーバ及び干渉データ提供方法
KR102624237B1 (ko) * 2023-08-03 2024-01-15 주식회사 아임토리 로봇팔의 도메인 적응 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04340603A (ja) * 1991-05-17 1992-11-27 Mitsubishi Electric Corp 障害物回避を考慮したマニピュレータの制御方法
JP2005125475A (ja) * 2003-10-24 2005-05-19 Sunao Kitamura 一回の成功試行で最良経路を学習するアーキテクチャ
JP6595151B2 (ja) * 2017-06-29 2019-10-23 株式会社Preferred Networks 訓練方法、訓練装置、プログラム及び非一時的コンピュータ可読媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022163513A1 (ja) * 2021-01-27 2022-08-04 富士フイルム株式会社 学習済みモデルの生成方法、機械学習システム、プログラムおよび医療画像処理装置
JP6955733B1 (ja) * 2021-02-17 2021-10-27 株式会社エクサウィザーズ 情報処理装置、情報処理方法、及びプログラム
JP2022125900A (ja) * 2021-02-17 2022-08-29 株式会社エクサウィザーズ 情報処理装置、情報処理方法、及びプログラム
WO2023068354A1 (ja) * 2021-10-22 2023-04-27 川崎重工業株式会社 ロボットデータ処理サーバ及び干渉データ提供方法
KR102624237B1 (ko) * 2023-08-03 2024-01-15 주식회사 아임토리 로봇팔의 도메인 적응 장치 및 방법

Also Published As

Publication number Publication date
WO2020246482A1 (ja) 2020-12-10

Similar Documents

Publication Publication Date Title
WO2020246482A1 (ja) 制御装置、システム、学習装置および制御方法
Long et al. Towards optimally decentralized multi-robot collision avoidance via deep reinforcement learning
Finn et al. Deep visual foresight for planning robot motion
Rana et al. Towards robust skill generalization: Unifying learning from demonstration and motion planning
Vogt et al. A system for learning continuous human-robot interactions from human-human demonstrations
Toussaint et al. Integrated motor control, planning, grasping and high-level reasoning in a blocks world using probabilistic inference
Wang et al. Collision-free trajectory planning in human-robot interaction through hand movement prediction from vision
Sturm et al. Body schema learning for robotic manipulators from visual self-perception
Kumar et al. Visual motor control of a 7DOF redundant manipulator using redundancy preserving learning network
Field et al. Learning trajectories for robot programing by demonstration using a coordinated mixture of factor analyzers
JP7295421B2 (ja) 制御装置及び制御方法
CN115605326A (zh) 用于控制机器人的方法和机器人控制器
Zhang et al. Sim2real learning of obstacle avoidance for robotic manipulators in uncertain environments
Paus et al. Predicting pushing action effects on spatial object relations by learning internal prediction models
KR20220155921A (ko) 로봇 디바이스를 제어하기 위한 방법
CN114516060A (zh) 用于控制机器人装置的设备和方法
Zarubin et al. Hierarchical Motion Planning in Topological Representations.
JP2022155828A (ja) 軌道生成システム、軌道生成方法及びプログラム
Fan et al. Learning resilient behaviors for navigation under uncertainty
WO2017134735A1 (ja) ロボットシステム、ロボットの最適化システム、およびロボットの動作計画学習方法
CN115338856A (zh) 用于控制机器人装置的方法
Wu et al. Learning robot anomaly recovery skills from multiple time-driven demonstrations
Ahmad et al. Learning to adapt the parameters of behavior trees and motion generators (btmgs) to task variations
Gäbert et al. Generation of human-like arm motions using sampling-based motion planning
Yang et al. Particle filters in latent space for robust deformable linear object tracking