JP7180696B2 - 制御装置、制御方法およびプログラム - Google Patents

制御装置、制御方法およびプログラム Download PDF

Info

Publication number
JP7180696B2
JP7180696B2 JP2020569235A JP2020569235A JP7180696B2 JP 7180696 B2 JP7180696 B2 JP 7180696B2 JP 2020569235 A JP2020569235 A JP 2020569235A JP 2020569235 A JP2020569235 A JP 2020569235A JP 7180696 B2 JP7180696 B2 JP 7180696B2
Authority
JP
Japan
Prior art keywords
control
command value
value
controlled
controlled device
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.)
Active
Application number
JP2020569235A
Other languages
English (en)
Other versions
JPWO2020157863A1 (ja
Inventor
博之 大山
岳大 伊藤
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020157863A1 publication Critical patent/JPWO2020157863A1/ja
Application granted granted Critical
Publication of JP7180696B2 publication Critical patent/JP7180696B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34082Learning, online reinforcement learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39001Robot, manipulator control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40339Avoid collision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40476Collision, planning for collision free path

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Feedback Control In General (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、制御装置、制御方法およびプログラムに関する。
制御対象機器の動作を強化学習する際、制御対象機器が障害物に接触することを回避するための技術が提案されている。
例えば、特許文献1に記載の強化学習装置では、強化学習を行う制御パラメータ値算出手段が算出する制御パラメータ値と、仮想外力発生器が算出する仮想外力との和の力ベクトルを制御対象に出力する。仮想外力発生器は、仮想外力の方向を、障害物の表面に対して垂直な方向とし、仮想外力の大きさを、制御対象と障害物との距離の3乗に比例して小さくなるように算出する。
日本国特開2012-208789号公報
制御対象機器が障害物に接触することを回避する動作は、制御対象機器に設定されている目標を達成するための動作との関係では阻害要因となる場合がある。このため、制御対象機器が障害物に接触することを回避する動作の影響をなるべく小さくできることが好ましい。制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができれば、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
本発明の目的の一例は、上記の問題を解決することができる制御装置、制御方法およびプログラムを提供することである。
本発明の第1の態様によれば、制御装置は、制御対象機器の動作の制御を機械学習する機械学習部と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件として、制御対象機器と障害物との距離を表す干渉関数値の所定時間当たりの予測変化量と、干渉関数値との条件を含む制約条件を満たし、かつ、その制御指令値を、制御対象機器に設定されている目的の実行についての評価関数に適用した評価値が、前記目的の実行可能性に関する所定の条件を満たす制御指令値である回避指令値を求める回避指令値演算部と、前記回避指令値演算部が前記回避指令値の取得に成功したと判定した場合、前記回避指令値に基づいて、前記制御対象機器を制御し、前記回避指令値演算部が前記回避指令値の取得に失敗したと判定した場合、前記制御対象機器を減速させる機器制御部と、を備え、前記機械学習部の機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される。
本発明の第2の態様によれば、制御方法は、制御対象機器の動作の制御を機械学習する工程と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件として、制御対象機器と障害物との距離を表す干渉関数値の所定時間当たりの予測変化量と、干渉関数値との条件を含む制約条件を満たし、かつ、その制御指令値を、制御対象機器に設定されている目的の実行についての評価関数に適用した評価値が、前記目的の実行可能性に関する所定の条件を満たす制御指令値である回避指令値を求める工程と、前記回避指令値の取得に成功したと判定した場合、前記回避指令値に基づいて、前記制御対象機器を制御し、前記回避指令値の取得に失敗したと判定した場合、前記制御対象機器を減速させる工程と、を含み、前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される。
本発明の第3の態様によれば、プログラムは、コンピュータに、制御対象機器の動作の制御を機械学習する工程と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件として、制御対象機器と障害物との距離を表す干渉関数値の所定時間当たりの予測変化量と、干渉関数値との条件を含む制約条件を満たし、かつ、その制御指令値を、制御対象機器に設定されている目的の実行についての評価関数に適用した評価値が、前記目的の実行可能性に関する所定の条件を満たす制御指令値である回避指令値を求める工程と、前記回避指令値の取得に成功したと判定した場合、前記回避指令値に基づいて、前記制御対象機器を制御し、前記回避指令値の取得に失敗したと判定した場合、前記制御対象機器を減速させる工程と、を実行させるためのプログラムであって、前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映されるプログラムである。
上記した制御装置、制御方法および記録媒体によれば、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。
第1実施形態に係る制御システムの装置構成の例を示す概略構成図である。 第1実施形態に係る報酬値演算装置の機能構成の例を示す概略ブロック図である。 第1実施形態に係る制御装置の機能構成の例を示す概略ブロック図である。 第1実施形態に係る制御システムにおけるデータの流れの例を示す図である。 第1実施形態に係る制御装置が制御対象機器に対する制御指令値を取得する処理手順の例を示すフローチャートである。 第1実施形態に係る機械学習部が制御対象機器に対する制御を機械学習する処理手順の例を示す図である。 第2実施形態に係る制御装置の機能構成の例を示す概略ブロック図である。 第2実施形態に係る制御システムにおけるデータの流れの例を示す図である。 第3実施形態に係る制御装置の構成の例を示す図である。 第4実施形態に係る制御方法における処理の手順の例を示す図である。 少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1実施形態>
図1は、第1実施形態に係る制御システムの装置構成の例を示す概略構成図である。図1に示す構成で、制御システム1は、情報取得装置100と、報酬値演算装置200と、制御装置300とを備える。
制御システム1は、制御対象機器900を制御する。制御システム1は、制御対象機器900に所望の動作をさせ、かつ、制御対象機器900が障害物に接触しないように、制御対象機器900を制御する。
ここでいう所望の動作は、制御対象機器900に設定されている目標を達成する動作である。ここでいう接触することは、単に触れることに限定されず、ぶつかることを含む。制御対象機器900が障害物に接触することは、制御対象機器900の少なくとも一部分が、障害物の少なくとも一部分に接触することである。
以下では、制御対象機器900が垂直多関節ロボットである場合を例に説明するが、制御システム1の制御対象は、制御指令値に従って動作し、障害物に接触する可能性があるいろいろな機器とすることができる。例えば、制御対象機器900が、垂直多関節ロボット以外の産業用ロボットであってもよい。
あるいは、制御対象機器900が、建築用ロボットまたは家事ロボットなど、産業用ロボット以外のロボットであってもよい。特定の用途に限定されず、形状変化を伴ういろいろなロボットを、制御対象機器900の例とすることができる。
あるいは、制御対象機器900が、無人搬送車またはドローンなどの移動体であってもよい。また、制御対象機器900が、制御指令値にて制御可能であれば、自律的に動作する装置であってもよい。
ここでいう障害物は、制御対象機器900が接触する可能性がある物である。障害物は、特定の種類のものに限定されない。例えば、障害物が、人間、他のロボット、周囲の壁または機械、一時的に置かれた荷物の何れか、あるいはこれらの組み合わせであってもよい。
また、制御対象機器900自らも障害物として扱われていてもよい。例えば、制御対象機器900が垂直多関節ロボットであり、その姿勢によってはロボットアームと台座部分とが接触する場合、制御システム1が制御対象機器900を障害物として扱うことで、ロボットアームと台座部分との接触を回避し得る。
情報取得装置100は、制御対象機器900が備えるセンサなど制御対象機器900を観測するセンサからセンシングデータを取得して、制御対象機器900の位置および動作を検出する。情報取得装置100がセンシングデータを取得するセンサは、特定の種類のセンサに限定されない。例えば、情報取得装置100が、センシングデータから、制御対象機器900の各関節の、関節角度、関節角速度、関節速度、および、関節加速度のうち何れか、あるいはこれらの組み合わせの情報を取得するようにしてもよい。
情報取得装置100は、得られた情報に基づいて、制御対象機器900の位置情報、および、制御対象機器900の動きを示す情報を生成し送信する。
情報取得装置100が、制御対象機器900の位置情報をボクセルデータで送信するようにしてもよい。例えば、情報取得装置100が制御対象機器900の表面の位置情報をボクセルデータで送信することで、制御装置300は、1点ではなく制御対象機器900の表面と、障害物との位置関係を把握でき、制御対象機器900と障害物との距離をより正確に把握できる。制御対象機器900と障害物との距離をより正確に把握できることで、制御装置300は、制御対象機器900に障害物を回避させる制御をより高精度に行うことができる。あるいは、情報取得装置100が、制御対象機器900の位置情報として、制御対象機器900に設定されている代表点の座標を送信するようにしてもよい。
情報取得装置100は、制御対象機器900の動きを示す情報として、例えば、制御対象機器900の速度、加速度、角速度、角加速度、またはこれらの組み合わせを送信する。情報取得装置100が、制御対象機器900全体の動きを示す情報をボクセルデータで送信するようにしてもよい。あるいは、情報取得装置100が、制御対象機器900の代表点の動きを示すデータを送信するようにしてもよい。例えば、情報取得装置100が、制御対象機器900の一般化座標qと、一般化速度q’とを並べたベクトルを送信するようにしてもよい。
あるいは、情報取得装置100が、制御対象機器の関節の角速度など、制御対象機器のアクチュエータの動きを示す情報を送信するようにしてもよい。
制御対象機器900の位置情報と制御対象機器900の動きを示す情報とを総称して制御対象機器900の状態情報と称する。
情報取得装置100は、制御対象機器の状態情報を、報酬値演算装置200および制御装置300へ送信する。
また、情報取得装置100は、障害物の位置を特定する。情報取得装置100が、障害物の位置を特定する方法として、公知のいろいろな方法を用いることができる。例えば、制御システム1が、例えばデプスカメラ(Depth Camera)またはステレオカメラ(Stereo Camera)など、3次元の情報を得られるカメラを備え、情報取得装置100が、このカメラの画像に基づいて障害物の3次元位置情報を取得するようにしてもよい。あるいは、制御システム1が、例えば3D-LiDAR(3-Dimension Light Detection and Ranging)など、3次元情報を得るための装置を備え、情報取得装置100が、この装置の測定データに基づいて障害物の3次元位置情報を取得する世にしてもよい。
情報取得装置100は、障害物の位置情報を送信する。情報取得装置100が、障害物の位置情報をボクセルデータのデータ形式で送信するようにしてもよい。例えば、情報取得装置100が障害物の表面の位置情報をボクセルデータで送信することで、制御装置300は、1点ではなく障害物の表面と、制御対象機器900との位置関係を把握でき、制御対象機器900と障害物との距離をより正確に把握できる。制御対象機器900と障害物との距離をより正確に把握できることで、制御装置300は、制御対象機器900に障害物を回避させる制御をより高精度に行うことができる。あるいは、情報取得装置100が、制御対象機器900の位置情報として、制御対象機器900に設定されている代表点の座標を送信するようにしてもよい。
障害物が動く場合、情報取得装置100が、障害物の位置情報に加えて、障害物の動きを示す情報を送信するようにしてもよい。情報取得装置100が、障害物の動きを示す情報として、例えば、障害物の速度、加速度、角速度、角加速度、またはこれらの組み合わせを送信するようにしてもよい。情報取得装置100が、障害物全体の動きを示す情報をボクセルデータで送信するようにしてもよい。あるいは、情報取得装置100が、障害物の代表点の動きを示すデータを送信するようにしてもよい。例えば、情報取得装置100が、障害物の一般化座標qと、一般化速度q’とを並べたベクトルを送信するようにしてもよい。
障害物の位置情報、あるいは、障害物が動く場合の、障害物の位置情報と障害物の動きを示す情報との組み合わせを、障害物の状態情報と称する。
情報取得装置100は、障害物の状態情報を制御装置300へ送信する。
報酬値演算装置200は、報酬値を算出する。報酬値は、制御装置300が制御対象機器900に対する制御を機械学習するために用いられる。ここでいう報酬値は、制御装置300からの制御指令値に基づいて制御対象機器900が動作した結果に対する評価を数値で示すものである。例えば、報酬値演算装置200は、制御対象機器900の位置および動作を示す情報を入力として、制御対象機器900に設定されている目標の達成度合いが高いほど報酬値を高く算出する報酬関数を予め記憶しておく。そして、報酬値演算装置200は、情報取得装置100から取得する制御対象機器900の位置および動作を示す情報を報酬関数に入力して報酬値を算出する。
制御装置300は、制御システム1による制御対象機器900の制御を実行する。したがって、制御システム1について上述したように、制御装置300は、制御対象機器900に所望の動作をさせ、かつ、制御対象機器900が障害物に接触しないように、制御対象機器900を制御する。制御装置300は、情報取得装置100が送信する情報に基づいて、制御対象機器900に対する制御指令値を算出し、算出した制御指令値を制御対象機器900に送信することで制御対象機器900を制御する。
また、制御装置300は、制御対象機器900に対する制御を機械学習する。制御装置300は、報酬値演算装置200が算出する報酬値がより大きくなるように、制御対象機器900に対する制御を機械学習する。
図2は、報酬値演算装置200の機能構成の例を示す概略ブロック図である。図2に示す構成で、報酬値演算装置200は、第1通信部210と、第1記憶部280と、第1制御部290とを備える。第1記憶部280は、報酬関数記憶部281を備える。第1制御部290は、報酬値演算部291を備える。
第1通信部210は、他の装置と通信を行う。特に、第1通信部210は、情報取得装置100が送信する制御対象機器900の状態情報を受信する。また、第1通信部210は、報酬値演算部291が算出する報酬値を制御装置300へ送信する。
第1記憶部280は、各種データを記憶する。第1記憶部280の機能は、報酬値演算装置200が備える記憶デバイスを用いて実行される。
報酬関数記憶部281は、報酬関数を記憶する。
第1制御部290は、報酬値演算装置200の各部を制御して各種処理を実行する。第1制御部290の機能は、報酬値演算装置200が備えるCPU(Central Processing Unit、中央処理装置)が、第1記憶部280からプログラムを読み出して実行することで実行される。
報酬値演算部291は、報酬値を算出する。具体的には、報酬値演算部291は、報酬関数記憶部281が記憶する報酬関数に、第1通信部210が情報取得装置100から受信する制御対象機器900の状態情報を入力して報酬値を算出する。
図3は、制御装置300の機能構成の例を示す概略ブロック図である。図3に示す構成で、制御装置300は、第2通信部310と、第2記憶部380と、第2制御部390とを備える。第2記憶部380は、干渉関数記憶部381と、制御関数記憶部382と、パラメータ値記憶部383とを備える。第2制御部390は、干渉関数演算部391と、機械学習部392と、機器制御部395とを備える。機械学習部392は、パラメータ値更新部393と、安定性判定部394とを備える。機器制御部395は、回避指令値演算部396を備える。
第2通信部310は、他の装置と通信を行う。特に、第2通信部310は、情報取得装置100が送信する制御対象機器900の状態情報および障害物の状態情報を受信する。また、第1通信部210は、報酬値演算部291が算出する報酬値を制御装置300へ送信する。また、第2通信部310は、機器制御部395が算出する制御指令値を制御対象機器900へ送信する。
第2記憶部380は、各種データを記憶する。第2記憶部380の機能は、制御装置300が備える記憶デバイスを用いて実行される。
干渉関数記憶部381は、干渉関数を記憶する。干渉関数は、制御対象機器900が障害物に接触することを防止するために用いられる関数であり、制御対象機器900と障害物との位置関係に応じた値を示す。干渉関数Bは、式(1)のような値をとる。
Figure 0007180696000001
式(1)では、xは、制御対象機器900の状態情報を示す。例えば、情報取得装置100が、制御対象機器900の表面の位置情報をボクセルデータで送信し、干渉関数演算部391が、制御対象機器900の状態情報を干渉関数Bに適用することで、制御対象機器900と障害物とが最も近い位置における両者の距離を算出するようにしてもよい。
以下では、干渉関数値B(x)が、制御対象機器900の状態情報xが示す制御対象機器900の位置と障害物との距離を示すものとする。障害物が複数ある場合は、制御対象機器900の位置に最も近い障害物との距離を示すものとする。通常、制御対象機器900は障害物の中には入らないので、制御対象機器900が障害物の内部に位置する場合の干渉関数値B(x)は定義されていなくてもよい。
干渉関数値B(x)により、制御対象機器900が障害物に接触しているか否か、および、制御対象機器900と障害物との距離が示される。
制御関数記憶部382は、制御関数を記憶する。ここでいう制御関数は、制御対象機器900に設定されている目標を達成するように、制御対象機器900に対する制御指令値を算出するための関数である。以下では、制御関数記憶部382が制御関数としてリアプノフ関数(Lyapunov Function)を記憶する場合を例に説明する。但し、制御装置300が制御対象機器900を制御する方法は、リアプノフ関数を用いる制御方法に限定されない。制御装置300が制御対象機器900を制御する方法として、制御パラメータ値を機械学習可能な、公知のいろいろな制御方法を用いることができる。
ここでいう制御パラメータ値は、制御関数に含まれるパラメータの値である。制御パラメータ値は、機器制御部395が算出する制御指令値に反映される。
パラメータ値記憶部383は、制御パラメータ値を記憶する。
第2制御部390は、制御装置300の各部を制御して各種処理を実行する。第2制御部390の機能は、制御装置300が備えるCPUが第2記憶部380からプログラムを読み出して実行することで実行される。
干渉関数演算部391は、干渉関数値を算出する。具体的には、干渉関数演算部391は、障害物の位置情報に基づいて干渉関数を生成し、干渉関数記憶部381に記憶させておく。そして、干渉関数演算部391は、干渉関数記憶部381が記憶する干渉関数に、第1通信部210が情報取得装置100から受信する制御対象機器900の状態情報および障害物の状態情報を入力して干渉関数値を算出する。
また、干渉関数演算部391は、干渉関数値の経時変化を示す値を算出する。
制御対象機器900が動作して制御対象機器900の位置が経時変化することで、干渉関数値B(x)も経時変化する。この場合、干渉関数演算部391は、干渉関数値B(x)の経時変化を示す値として、制御ステップ間における干渉関数値B(x)の変化量を算出する。
ここでの制御ステップは、制御装置300が制御対象機器900に対して制御指令値を1回送信するための一連の処理のステップである。すなわち、制御装置300は、周期的な制御ステップ毎に制御対象機器900に対して制御指令値を送信する。
干渉関数演算部391は、今回の制御ステップから次回の制御ステップまでの間の、干渉関数値B(x)の変化量を予測する。制御ステップ間における干渉関数値の変化量をΔB(x,u)と表記する。干渉関数値B(x)の変化量は制御対象機器900の位置の変化に依存し、制御対象機器900の位置の変化は制御指令値uに依存するため、制御指令値uを明示している。
干渉関数演算部391が干渉関数値の変化量をΔB(x,u)を算出するために、第2記憶部380が、制御対象機器900の動的モデルを予め記憶しておくようにしてもよい。制御対象機器900の動的モデルは、制御対象機器900の状態情報、および、制御指令値の入力を受けて制御対象機器900がその制御指令値に従う場合の動作を模擬する。
動的モデルが、将来の時点における制御対象機器900の予測位置の位置情報を出力するようにしてもよい。あるいは、動的モデルが、制御対象機器900の動作量を出力するようにしてもよい。すなわち、動的モデルが、制御対象機器900の将来の予測位置から現在位置を減算した差分を出力するようにしてもよい。
動的モデルは、制御指令値uの入力に対して、制御対象機器900の状態情報xで示される状態の微分値または差分が求まるモデルであり、例えば状態空間モデルであってもよい。
干渉関数演算部391は、動的モデルに制御対象機器900の位置情報および制御指令値uを入力することで、制御対象機器900の位置の予測値を算出することができる。干渉関数演算部391は、制御対象機器900の位置の予測値に基づいて干渉関数値の予測値を算出することができる。干渉関数演算部391は、干渉関数値の予測値から現在値を減算することで、干渉関数値の変化量を算出することができる。
干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出するようにしてもよい。あるいは、干渉関数演算部391が、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出するようにしてもよい。
Figure 0007180696000002
Δtは、制御ステップ間の時間間隔を示す。B(x,u)は、干渉関数値を示す。制御指令値uを変更すると制御対象機器900の動作が変わり干渉関数値が変わるので、干渉関数Bを制御指令値uの関数として表記している。
あるいは、干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出する方法と、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出する方法と使い分けるようにしてもよい。例えば、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出できる場合は、干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出するようにしてもよい。一方、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出できない場合、干渉関数演算部391が、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出するようにしてもよい。
機器制御部395は、制御対象機器900に対する制御指令値を算出し、算出した制御指令値を、第2通信部310を介して制御対象機器900へ送信することで、制御対象機器900を制御する。
機器制御部395は、回避指令値演算部396にて回避指令値の算出を試みる。回避指令値の算出に成功した場合、機器制御部395は、得られた回避指令値を、第2通信部310を介して制御対象機器900へ送信する。一方、回避指令値を得られなかった場合、機器制御部395は、制御対象機器900を減速させる制御指令値を、第2通信部310を介して制御対象機器900へ送信する。
回避指令値演算部396は、上記のように回避指令値を求める。回避指令値は、制御対象機器900に対する制御指令値であって、制御対象機器900が障害物に接触しないための十分条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である。回避指令値演算部396はこのような制約条件および評価関数を用いた最適化問題を解くことで、回避指令値を算出する。制御対象機器900が障害物に接触しないための十分条件は、制御対象機器900が障害物に接触しないための条件の例に該当する。
制御装置300が回避指令値を用いて制御対象機器900を制御することで、制御対象機器900が障害物に接触しないように制御できる。
回避指令値演算部396が解く最小化問題における制約条件は、3種類の式で示される。3種類の式のうち1種類目は、式(3)のように示される。
Figure 0007180696000003
γは、0≦γ<1の定数である。
γの値によって、制御対象機器900と障害物とが接触しないための、制御対象機器900と障害物との間隔の余裕分をどれだけ見込むか調整できる。
通常、制御対象機器900と障害物とは接触しておらず、B(x)が、制御対象機器900と障害物との距離を示す。制御対象機器900が障害物に接近してΔB(x,u)が負の値をとるとき、ΔB(x,u)の大きさがγB(x)以下である場合に式(3)が成り立つ。
このことから、B(x)で示される制御対象機器900と障害物との距離のうち、(1-γ)B(x)の分は、制御対象機器900と障害物とが接触しないための余裕分として、制御対象機器900の動作可能範囲から除外されているといえる。γの値を大きく設定するほど、制御対象機器900の動作可能範囲が広がる。一方、γの値を小さく設定するほど、制御対象機器900と障害物とが接触しないための余裕分を大きくとることになり、例えば予期しない外力によって制御対象機器900が障害物のほうへ押された場合でも、制御対象機器900が障害物にぶつかりにくい。
式(3)に示されるように、回避指令値演算部396は、干渉関数値、および、干渉関数値の経時変化を示す値を用いて回避指令値を求める。
複数の障害物が存在する場合、障害物毎に式(3)の制約条件を設けることができる。これにより、障害物回避制御装置400は、制御対象機器900が障害物全体に接触しないよう制御することができる。あるいは、複数の障害物をまとめたものに対して干渉関数を設計してもよい。
式(3)は、制御対象機器900が今回の制御ステップで障害物に接触していなければ、次の制御ステップでも障害物に接触しないことの十分条件を示す。この点について説明する。
今回の制御ステップをtで示し、制御ステップtの次の制御ステップをt+1で示す。制御ステップtにおける干渉関数値をB(x)と表記する。
制御ステップt+1における干渉関数値をB(xt+1)と表記する。B(xt+1)からB(x)を減算した差分を、ΔB(x,u)と表記する。ΔB(x,u)は、式(4)のように示される。
Figure 0007180696000004
また、式(3)より式(5)を得られる。
Figure 0007180696000005
式(4)および式(5)より式(6)を得られる。
Figure 0007180696000006
0≦γ<1なので、B(x)>0の場合、B(x)-γB(x)≧0であり、Bt+1(x)>0である。従って、制御ステップtで制御対象機器900の位置が障害物の外部にあれば、制御ステップt+1でも制御対象機器900の位置は障害物の外部にある。
全ての制御ステップで式(3)を満たすように最適化問題を解くことで、次の制御ステップだけではなく、次以降の全ての制御ステップで制御対象機器900が障害物と接触しないように制御できる。
回避指令値演算部396が解く最小化問題における制約条件を示す3種類の式のうち2種類目は、式(7)のように示される。
Figure 0007180696000007
(iは、1≦i≦Nの整数)は、例えば、制御対象機器900の関節毎など、制御対象機器900の可動部分毎の制御指令値を示すスカラ値である。Nは、制御対象機器900の可動部分の個数を示す。iは、可動部分を識別する識別番号である。
識別番号iで識別される可動部分をi番目の可動部分と表記する。従って、uは、i番目の可動部分に対する制御指令値である。
i_min、ui_maxは、それぞれ、制御対象機器900の仕様により予め定められている、uの下限値、上限値である。
式(7)は、いずれの制御指令値も、可動部分の仕様により規定される上下限値の範囲内で設定されるという制約条件を示している。可動部分の仕様は、例えば、その可動部分に用いられているアクチュエータの仕様により規定される。
制御指令値uは、u(i=1,2,・・・,N)を纏めてベクトルで表したものである。
回避指令値演算部396が解く最小化問題における制約条件を示す3種類の式のうち3種類目は、式(8)のように示される。
Figure 0007180696000008
ΔVはリアプノフ関数値の変化量を示す。リアプノフ関数Vは、機械学習部392が行う機械学習によって求まる。但し、制御装置300が用いる制御関数はリアプノフ関数に限定されない。
「d」は、制約条件を緩和して解を得易くするために設けられている。
d=0として解を得られた場合、その解は、制御対象機器900に設定される目標を厳密に達成するための制御指令値である。一方、d=0の場合、解をピンポイントで探索することになり、解を得られないことが懸念される。
そこで、d≧0とすることで、制御指令値に基づく制御対象機器900の動作結果と目標とのずれを許容して、解の探索範囲を広げることができる。以下では、制御対象機器900の動作結果と目標とのずれを誤差と称する。「d」の値が大きくなるほど、許容する誤差が大きくなり、解を得易くなる。
回避指令値演算部396が解く最適化問題における評価関数(目的関数とも称される)は、式(9)のように示される。
Figure 0007180696000009
「u」は、この最適化問題の解となる制御指令値を示す。「argmin」は、引数の値を最小化する関数である。式(3)の場合、「argmin」は、引数「uPu+p・d」を最小化するような、制御指令値uを関数値とする。
ベクトルまたは行列に上付の「T」は、ベクトルまたは行列の転置を示す。
制御指令値を示すuおよびuのデータ形式は、同じ次元のベクトルであるとする。これらのベクトルの次元数は、制御装置300が制御対象機器900へ送信する制御指令値の次元数と同じとする。
「P」は、「u」の次元数と同じ行数および列数を有する任意の正定値行列とすることができる。例えば、「P」として単位行列を用いると、制御対象機器900が無駄な動作をしないよう、制御指令値の大きさをなるべく小さくすることができる。
式9の「p・d」の項は、式(8)における「d」の大きさを評価するための項である。「p・d」の「p」は、「uu」と「d」の重み付けを調整するための重みを示す。「p」は、例えばp>0の定数として設定される。
この最適化問題の解の候補が2つ検出された場合、2つの解の候補の「uu」の項の値が同じであれば、「p・d」の項の値が小さい方が最適化として採用される。
式(9)は、評価関数の例に該当する。式(9)における最小解となる制御指令値uは、制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値の例に該当する。
機械学習部392は、制御対象機器900に対する制御を学習する。具体的には、パラメータ値更新部393が、報酬値演算部291が算出する報酬値に基づいて制御パラメータ値を更新することで、制御パラメータ値を機械学習する。安定性判定部394は、リアプノフ関数を用いて制御の安定性を判定し、パラメータ値更新部393は、制御が安定するようにパラメータ値を更新する。
ここで、Wを正定なダイアゴナル行列として、リアプノフ関数Vは式(10)のように示される。
Figure 0007180696000010
Wの対角要素が制御パラメータの例に該当し、機械学習部392は、報酬値が最大となる制御パラメータ値を機械学習する。機械学習部392が機械学習で制御パラメータ値を設定することで、リアプノフ関数が得られる。
ここで、制御指令値uは、式(11)のように示される。
Figure 0007180696000011
θは制御パラメータを示す。
また、上記の最適化演算でuの算出に用いられるΔB(x,u)には、制御対象機器900の動的モデルを示しているといえる。このことから、機械学習部392は、ポリシーπをモデルベースで学習しているといえる。
パラメータ値更新部393が制御パラメータ値を探索する方法として、例えばベイズ最適化などの最適化ベースの方法、または、実験計画法など、公知の方法を用いることができる。
機械学習部392が行う機械学習で、制御対象機器900の動作のシミュレーションを併用することで、学習速度の向上を図るようにしてもよい。
制御装置300が、機械学習の際に制御パラメータ値だけでなく、リアプノフ関数等の制御関数も更新するようにしてもよい。例えば、制御関数記憶部382が別々の構造の複数のリアプノフ関数を予め記憶しておくようにしてもよい。制御がうまくいかない場合(例えば、図6のステップS213で、安定性判定部394が所定の条件以上に制御が安定しないと判定した場合)、機械学習部392が、式(10)のリアプノフ関数を他のリアプノフ関数に置き換えるようにしてもよい。それに伴い、回避指令値演算部396も、式(8)のリアプノフ関数を式(10)のリアプノフ関数と同じリアプノフ関数に置き換える。
このように、機械学習部392と回避指令値演算部396とが制御関数を共通で切り替えて使用することで、機械学習部392による機械学習の結果を制御パラメータ値だけでなく制御関数にも反映させることができる。これにより、機器制御部395による制御対象機器900の制御の安定化など、制御の向上を図ることができる。
図4は、制御システム1におけるデータの流れの例を示す図である。図4では、障害物に符号950を付している。障害物950は、上記で説明した障害物と同様である。
情報取得装置100は、制御対象機器900のセンサのセンシングデータなど、制御対象機器900に関する観測データ、および、障害物950の撮像画像など障害物950に関する観測データを取得する。
情報取得装置100は、制御対象機器900に関する観測データに基づいて、制御対象機器900の状態情報を生成する。具体的には、情報取得装置100は、制御対象機器900の位置情報、および、制御対象機器900の動作を示す情報を生成する。情報取得装置100は、生成した制御対象機器900の状態情報を、報酬値演算装置200および制御装置300へ送信する。
また、情報取得装置100は、障害物950に関する観測データに基づいて、障害物950の状態情報を生成する。具体的には、情報取得装置100は、障害物950の位置情報を生成する。障害物950が動く場合、情報取得装置100は、障害物950の位置情報に加えて、障害物950の動作を示す情報を生成する。情報取得装置100は、生成した障害物950の状態情報を、制御装置300へ送信する。
報酬値演算装置200の報酬値演算部291は、制御対象機器900の状態情報に基づいて報酬値を算出する。報酬値演算部291は、算出した報酬値を、第1通信部210を介して制御装置300へ送信する。
制御装置300の干渉関数演算部391は、制御対象機器900の状態情報および障害物950の状態情報に基づいて、干渉関数値B(x)を算出する。
具体的には、干渉関数演算部391は、障害物950の状態情報に基づいて干渉関数を求め、第2記憶部380に記憶させておく。そして、干渉関数演算部391は、制御対象機器の状態情報xを干渉関数に入力して、干渉関数値を算出する。
また、干渉関数演算部391は、機器制御部395が制御指令値を算出するために最適化問題を解く際、制御ステップ間におけるB(x)の変化量ΔB(x,u)を算出する。干渉関数演算部391は、制御対象機器900の状態情報および障害物950の状態情報に加えて、最適化問題の解の候補となる制御指令値uに基づいて、干渉関数値の変化量ΔB(x,u)を算出する。
干渉関数演算部391が干渉関数値の変化量ΔB(x,u)を算出するために、例えば、第2記憶部380が、制御対象機器900の動的モデルを記憶しておく。干渉関数演算部391は、この動的モデルを用いて、干渉関数値の変化量の予測値を算出し、干渉関数値の変化量の現在値との差分を算出することで、干渉関数値の変化量を算出する。
干渉関数演算部391は、干渉関数値B(x)および干渉関数値の変化量ΔB(x、u)を、機器制御部395へ出力する。
制御装置300の機械学習部392は、制御対象機器900の状態情報、および、報酬値に基づいて機械学習を行って制御パラメータ値を算出する。
制御装置300の機器制御部395は、機械学習部392が算出する制御パラメータ値を反映させた最適化問題を解くことで、制御対象機器900に対する制御指令値を算出する。機器制御部395は、算出した制御指令値を、第2通信部310を介して制御対象機器900へ送信する。
図5および図6を参照して、制御装置300の動作について説明する。
図5は、制御装置300が制御対象機器900に対する制御指令値を取得する処理手順の例を示すフローチャートである。制御装置300は、1回の制御ステップで図5のループを1回実行する。
図5の処理で、回避指令値演算部396は、機械学習部392が算出した制御パラメータ値を最適化問題に反映させる(ステップS111)。具体的には、回避指令値演算部396は、上記の式(10)で得られるリアプノフ関数を最適化問題に適用する。
次に、回避指令値演算部396は、最適化問題の演算を行う(ステップS112)。そして、回避指令値演算部396は、最適化問題の解を得られたか否かを判定する(ステップS113)。
解を得られたと判定した場合(ステップS113:YES)、回避指令値演算部396は、u=uと算出する(ステップS121)。すなわち、回避指令値演算部396は、最適化問題を解いて得られた制御指令値を、制御対象機器900へ送信する制御指令値に決定する。
そして、第2通信部310が、制御指令値を制御対象機器900へ送信する(ステップS141)。
ステップS141の後、処理がステップS111へ戻る。
一方、ステップS113の判定で解を得られなかったと判定した場合(ステップS113:NO)、回避指令値演算部396は、制御対象機器900へ送信する制御指令値として、制御対象機器900を減速させる制御指令値を生成する。
ステップS131の後、処理がステップS14へ進む。
図6は、機械学習部392が制御対象機器900に対する制御を機械学習する処理手順の例を示す図である。機械学習部392は、機械学習の終了条件が成立したと判定するまで、回避指令値演算部396が行う図5の処理の前処理として、1回の制御ステップで、ステップS211からS214のループを1回実行する。
図6の処理で、機械学習部392は、報酬値演算部291が算出する報酬値を取得する(ステップS211)。
そして、パラメータ値更新部393は、取得した報酬値、および、制御対象機器900の状態情報に基づいて、制御パラメータ値を更新する(ステップS212)。上述したように、ステップS212での解としての制御パラメータ値の探索方法として、公知の方法を用いることができる。
次に、安定性判定部394は、ステップS212で得られたパラメータ値で制御が安定するか否かを判定する(ステップS213)。ステップS213での判定方法として、公知の判定方法を用いることができる。
制御が安定していないと安定性判定部394が判定した場合(ステップS213:NO)、処理がステップS212へ戻る。
一方、制御が安定すると安定性判定部394が判定した場合(ステップS213:YES)、機械学習部392は、所定の学習終了条件が成立しているか否かを判定する(ステップS214)。安定性判定部394は、例えば、前回の制御パラメータ値と今回の制御パラメータ値とを比較して、制御パラメータ値の変化量の大きさが所定の大きさ以下であることを学習終了条件とする。この場合の学習終了条件は、式(12)のように示される。
Figure 0007180696000012
||Δθ||は、制御パラメータ値の変化量Δθのノルムを示す。制御パラメータ値の変化量のノルムは、制御パラメータ値の変化量の大きさの例に該当する。
αは、正の定数の閾値である。
学習終了条件が成立していないと機械学習部392が判定した場合(ステップS214:NO)、処理がステップS211へ戻る。
一方、学習終了条件が成立していると機械学習部392が判定した場合(ステップS214:YES)、制御装置300は図6の処理を終了する。
以上のように、機械学習部392は、制御対象機器900の動作の制御を機械学習する。回避指令値演算部396は、制御対象機器900に対する制御指令値であって、制御対象機器900が障害物に接触しないための十分条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める。機器制御部395は、回避指令値に基づいて、制御対象機器900を制御する。また、機械学習部392の機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
制御装置300では、制御対象機器900が障害物に接触しないための条件を含む制約条件を満たす制御指令値を求めることで、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。制御装置300によれば、この点で、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
また、機械学習部392は、制御対象機器900の制御を学習する際、制御対象機器900と障害物との接触を考慮する必要が無い。制御装置300によれば、この点で、機械学習部392が解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
また、回避指令値演算部396は、制御対象機器900に設定された目標を達成するための条件であって、パラメータ値が反映された条件を含む制約条件を用いる。具体的には、回避指令値演算部396は、制御パラメータ値が反映された制御関数を含む制約条件を用いる。
制御装置300では、機械学習にてパラメータ値を更新することで目標達成の精度の向上が期待され、かつ、制御対象機器900が障害物に接触しないための条件により、機械学習が進んでいない段階でも、制御対象機器900が障害物に接触することを回避できると期待される。
また、制御関数記憶部382は、機械学習部392によるパラメータ値の取得と、回避指令値演算部396による回避指令値の取得とに共通で用いられる制御関数を複数記憶する。機械学習部392および回避指令値演算部396は、制御関数記憶部382が記憶する制御関数のうち何れかを共通で切り替えて使用する。
このように、機械学習部392と回避指令値演算部396とが制御関数を共通で切り替えて使用することで、機械学習部392による機械学習の結果を制御パラメータ値だけでなく制御関数にも反映させることができる。これにより、機器制御部395による制御対象機器900の制御の安定化など、制御の向上を図ることができる。
<第2実施形態>
第2実施形態では、制御装置が制御指令値の算出に用いる最適化問題のもう1つの例について説明する。
図7は、第2実施形態に係る制御装置300の機能構成の例を示す概略ブロック図である。図7に示す構成で、制御装置300は、第2通信部310と、第2記憶部380と、第2制御部390とを備える。第2記憶部380は、干渉関数記憶部381と、制御関数記憶部382と、パラメータ値記憶部383とを備える。第2制御部390は、干渉関数演算部391と、機械学習部392と、機器制御部395とを備える。機械学習部392は、パラメータ値更新部393と、安定性判定部394とを備える。機器制御部395は、回避指令値演算部396と、ノミナル(Nominal)指令値演算部397とを備える。
図7に示す制御装置300では、回避指令値演算部396が用いる最適化問題が、図3に示す第1実施形態の場合と異なる。それに伴い、図7に示す制御装置300では、機器制御部395がノミナル指令値演算部397を備えている点が、図3に示す第1実施形態の場合と異なる。それ以外の点では、図7に示す制御装置300は、図3に示す第1実施形態の場合と同様である。
第2実施形態に係る制御システムは、上記の点以外は、第1実施形態の場合と同様である。第2実施形態に係る制御システムについて、第1実施形態の場合と同様の点の説明を省略し、必要に応じて図1に示す符号、および、図2に示す符号を引用する。
ノミナル指令値演算部397は、ノミナル指令値を算出する。ノミナル指令値は、制御対象機器900による障害物回避を考慮しない場合の、制御対象機器900に対する制御指令値である。すなわち、ノミナル指令値は、障害物が無いとの仮定の下で、制御対象機器900に設定された目標を達成するための、制御対象機器900に対する制御指令値である。
ノミナル指令値演算部397がノミナル指令値を算出するための制御方法は特定のものに限定されず、公知のいろいろな制御方法を用いることができる。
ノミナル指令値演算部397が算出するノミナル指令値は、回避指令値演算部396が、制御対象機器900に対して指示する制御指令値(すなわち、実際に用いられる制御指令値)を取得するための基準となる制御指令値として用いられる。
ノミナル指令値を算出するための関数が、制御関数の例に該当する。ノミナル指令値を算出するための関数をノミナル関数と称する。
ノミナル指令値演算部397は、機械学習部392が算出する制御パラメータ値をノミナル関数に反映させ、反映後のノミナル関数を用いてノミナル指令値を算出する。
回避指令値演算部396が制御指令値の算出に用いる最適化問題の制約条件は、第1実施形態の場合と同様であり、式(3)、式(7)および式(8)のように示される。
一方、回避指令値演算部396が制御指令値の算出に用いる最適化問題の評価関数は、第1実施形態の場合と異なり、式(13)のように示される。
Figure 0007180696000013
第1実施形態の場合と同様、「u」は、この最適化問題の解となる制御指令値を示す。
上述したように、「argmin」は、引数の値を最小化する関数である。式(13)の場合、「argmin」は、引数「(u-u(u-u)」を最小化するような、uの値を関数値とする。
「u」は、ノミナル指令値演算部397からのノミナル指令値を示す。
式(13)は、制約条件の下で、ノミナル指令値uになるべく近い制御指令値を求めることを示している。ノミナル指令値uは、制御対象機器900に設定されている目的を制御対象機器900に実行させるように算出された指令値なので、ノミナル指令値uに近い指令値を求めることで、制御対象機器900に設定されている目的を制御対象機器900に実行させることができると期待される。
のデータ形式は、上述したuおよびuの場合と同じ次元のベクトルであるとする。これらのベクトルの次元数は、制御装置300が制御対象機器900へ送信する制御指令値の次元数と同じとする。
図8は、第2実施形態に係る制御システム1におけるデータの流れの例を示す図である。図8の例では、機器制御部395の回避指令値演算部396が明示されている点、および、機器制御部395がノミナル指令値演算部397を備える点が図4の場合と異なる。機械学習部392が算出した制御パラメータ値がノミナル指令値演算部397に入力され、ノミナル指令値演算部397は、制御パラメータ値を反映されたノミナル関数を用いてノミナル指令値を算出する。ノミナル指令値演算部397は、算出したノミナル指令値を回避指令値演算部396へ出力する。回避指令値演算部396は、ノミナル指令値を最適化問題の評価関数に用いる。
それ以外の点については、図8の例は、図4の場合と同様である。
以上のように、回避指令値演算部396は、制御指令値を算出する最適化問題の評価関数として、機械学習部392が算出したパラメータ値を用いて求められるノミナル指令値との相違が小さい制御指令値ほど高く評価する評価関数を用いる。
制御装置300では、この評価関数を用いることで、制御対象機器900に設定されている目的を制御対象機器900に実行させることができると期待される。そして、制御装置300では、評価関数のノミナル指令値にパラメータ値が反映されることで、機械学習部392の学習結果を制御指令値に反映させることができる。
<第3実施形態>
図9は、第3実施形態に係る制御装置の構成の例を示す図である。図9に示す制御装置10は、機械学習部11と、回避指令値演算部12と、機器制御部13とを備える。
かかる構成で、機械学習部11は、制御対象機器の動作の制御を機械学習する。回避指令値演算部12は、回避指令値を求める。回避指令値は、制御対象機器に対する制御指令値であって、制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である。機器制御部13は、回避指令値に基づいて、制御対象機器を制御する。また、機械学習部11の機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
制御装置10では、制御対象機器が障害物に接触しないための条件を含む制約条件を満たす制御指令値を求めることで、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。制御装置10によれば、この点で、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
また、機械学習部11は、制御対象機器の制御を学習する際、制御対象機器と障害物との接触を考慮する必要が無い。制御装置10によれば、この点で、機械学習部11が解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
<第4実施形態>
図10は、第4実施形態に係る制御方法における処理の手順の例を示す図である。図10に示す制御方法では、制御対象機器の動作の制御を機械学習し(ステップS11)、制御対象機器に対する制御指令値であって、制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求め(ステップS12)、回避指令値に基づいて、制御対象機器を制御する(ステップS13)。また、ステップS11での機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
この制御方法では、制御対象機器が障害物に接触しないための条件を含む制約条件を満たす制御指令値を求めることで、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。この制御方法では、この点で、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
また、ステップS11で、制御対象機器の制御を学習する際、制御対象機器と障害物との接触を考慮する必要が無い。この制御方法によれば、この点で、ステップS11で解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
図11は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図20に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
上記の情報取得装置100、報酬値演算装置200、および、制御装置300のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
報酬値演算装置200がコンピュータ700に実装される場合、第1制御部290およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、第1記憶部280に対応する記憶領域を主記憶装置720に確保する。第1通信部210が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
制御装置300がコンピュータ700に実装される場合、第2制御部390およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、第2記憶部380およびその各部に対応する記憶領域を主記憶装置720に確保する。第2通信部310が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
なお、情報取得装置100、報酬値演算装置200、および、制御装置300の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、OS(オペレーティングシステム)や周辺機器等のハードウェアを含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
本発明の実施形態は、制御装置、制御方法および記録媒体に適用してもよい。
1 制御システム
10、300 制御装置
11、392 機械学習部
12、396 回避指令値演算部
13、395 機器制御部
100 情報取得装置
200 報酬値演算装置
210 第1通信部
280 第1記憶部
281 報酬関数記憶部
290 第1制御部
291 報酬値演算部
310 第2通信部
380 第2記憶部
381 干渉関数記憶部
382 制御関数記憶部
383 パラメータ値記憶部
390 第2制御部
391 干渉関数演算部
393 パラメータ値更新部
394 安定性判定部
397 ノミナル指令値演算部

Claims (6)

  1. 制御対象機器の動作の制御を機械学習する機械学習部と、
    前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件として、制御対象機器と障害物との距離を表す干渉関数値の所定時間当たりの予測変化量と、干渉関数値との条件を含む制約条件を満たし、かつ、その制御指令値を、制御対象機器に設定されている目的の実行についての評価関数に適用した評価値が、前記目的の実行可能性に関する所定の条件を満たす制御指令値である回避指令値を求める回避指令値演算部と、
    前記回避指令値演算部が前記回避指令値の取得に成功したと判定した場合、前記回避指令値に基づいて、前記制御対象機器を制御し、前記回避指令値演算部が前記回避指令値の取得に失敗したと判定した場合、前記制御対象機器を減速させる機器制御部と、
    を備え、
    前記機械学習部の機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される、
    制御装置。
  2. 前記機械学習部によるパラメータ値の取得と、前記回避指令値演算部による回避指令値の取得とに共通で用いられる制御関数を複数記憶する制御関数記憶部をさらに備え、
    前記機械学習部および前記回避指令値演算部は、前記制御関数記憶部が記憶する制御関数のうち何れかを共通で切り替えて使用する、
    請求項1に記載の制御装置。
  3. 前記回避指令値演算部は、前記制御対象機器に設定された目標を達成するための条件であって、前記パラメータ値が反映された条件を含む前記制約条件を用いる、
    請求項1または請求項2に記載の制御装置。
  4. 前記機械学習部は、前記回避指令値演算部が用いる前記評価関数に含まれるノミナル指令値を求めるための制御関数のパラメータ値を前記機械学習で取得する、
    請求項1に記載の制御装置。
  5. 制御対象機器の動作の制御を機械学習する工程と、
    前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件として、制御対象機器と障害物との距離を表す干渉関数値の所定時間当たりの予測変化量と、干渉関数値との条件を含む制約条件を満たし、かつ、その制御指令値を、制御対象機器に設定されている目的の実行についての評価関数に適用した評価値が、前記目的の実行可能性に関する所定の条件を満たす制御指令値である回避指令値を求める工程と、
    前記回避指令値の取得に成功したと判定した場合、前記回避指令値に基づいて、前記制御対象機器を制御し、前記回避指令値の取得に失敗したと判定した場合、前記制御対象機器を減速させる工程と、
    を含み、
    前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される、
    制御方法。
  6. コンピュータに、
    制御対象機器の動作の制御を機械学習する工程と、
    前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件として、制御対象機器と障害物との距離を表す干渉関数値の所定時間当たりの予測変化量と、干渉関数値との条件を含む制約条件を満たし、かつ、その制御指令値を、制御対象機器に設定されている目的の実行についての評価関数に適用した評価値が、前記目的の実行可能性に関する所定の条件を満たす制御指令値である回避指令値を求める工程と、
    前記回避指令値の取得に成功したと判定した場合、前記回避指令値に基づいて、前記制御対象機器を制御し、前記回避指令値の取得に失敗したと判定した場合、前記制御対象機器を減速させる工程と、
    を実行させるためのプログラムであって、
    前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映されるプログラム。
JP2020569235A 2019-01-30 2019-01-30 制御装置、制御方法およびプログラム Active JP7180696B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/003188 WO2020157863A1 (ja) 2019-01-30 2019-01-30 制御装置、制御方法および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2020157863A1 JPWO2020157863A1 (ja) 2021-11-11
JP7180696B2 true JP7180696B2 (ja) 2022-11-30

Family

ID=71841469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020569235A Active JP7180696B2 (ja) 2019-01-30 2019-01-30 制御装置、制御方法およびプログラム

Country Status (4)

Country Link
US (1) US20220105632A1 (ja)
EP (1) EP3920000A4 (ja)
JP (1) JP7180696B2 (ja)
WO (1) WO2020157863A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7088313B2 (ja) * 2018-12-12 2022-06-21 日本電信電話株式会社 マルチデバイス連携制御装置、マルチデバイス連携制御方法およびマルチデバイス連携制御プログラム
WO2023013126A1 (ja) * 2021-08-02 2023-02-09 ソニーグループ株式会社 情報処理装置、学習モデル、及び情報処理方法
WO2024095651A1 (ja) * 2022-11-01 2024-05-10 日本電気株式会社 制御装置、学習装置、制御方法、学習方法および記録媒体

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208789A (ja) 2011-03-30 2012-10-25 Advanced Telecommunication Research Institute International 強化学習装置、制御装置、および強化学習方法
JP2018190241A (ja) 2017-05-09 2018-11-29 オムロン株式会社 タスク実行システム、タスク実行方法、並びにその学習装置及び学習方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317651B1 (en) * 1999-03-26 2001-11-13 Kuka Development Laboratories, Inc. Trajectory generation system
US10065313B2 (en) * 2016-12-07 2018-09-04 Harris Corporation Robot manipulator system
CA3027627C (en) * 2017-07-13 2021-08-10 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for trajectory determination
US11256983B2 (en) * 2017-07-27 2022-02-22 Waymo Llc Neural networks for vehicle trajectory planning
US20190318050A1 (en) * 2018-04-11 2019-10-17 Toyota Research Institute, Inc. Environmental modification in autonomous simulation
US11465279B2 (en) * 2018-11-29 2022-10-11 X Development Llc Robot base position planning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208789A (ja) 2011-03-30 2012-10-25 Advanced Telecommunication Research Institute International 強化学習装置、制御装置、および強化学習方法
JP2018190241A (ja) 2017-05-09 2018-11-29 オムロン株式会社 タスク実行システム、タスク実行方法、並びにその学習装置及び学習方法

Also Published As

Publication number Publication date
US20220105632A1 (en) 2022-04-07
EP3920000A1 (en) 2021-12-08
JPWO2020157863A1 (ja) 2021-11-11
WO2020157863A1 (ja) 2020-08-06
EP3920000A4 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
CN108873768B (zh) 任务执行***及方法、学习装置及方法、以及记录介质
Hajiloo et al. Robust online model predictive control for a constrained image-based visual servoing
Park et al. ITOMP: Incremental trajectory optimization for real-time replanning in dynamic environments
JP7180696B2 (ja) 制御装置、制御方法およびプログラム
US20210325894A1 (en) Deep reinforcement learning-based techniques for end to end robot navigation
JP7180695B2 (ja) 障害物回避制御装置、障害物回避制御システム、障害物回避制御方法およびプログラム
JP5750657B2 (ja) 強化学習装置、制御装置、および強化学習方法
Janabi-Sharifi et al. Automatic selection of image features for visual servoing
CN114761966A (zh) 用于以轨迹为中心的基于模型的强化学习的稳健优化的***及方法
EP3622439B1 (en) Improvements related to generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot
Ding et al. Collision avoidance with proximity servoing for redundant serial robot manipulators
Dani et al. Human-in-the-loop robot control for human-robot collaboration: Human intention estimation and safe trajectory tracking control for collaborative tasks
CN117270393B (zh) 智能机器人集群协同控制***
US20230241770A1 (en) Control device, control method and storage medium
Mohammad Hossein Fallah et al. Conjugated visual predictive control for constrained visual servoing
Iftikhar et al. Nonlinear model predictive control of an overhead laboratory-scale gantry crane with obstacle avoidance
Sadeghian et al. Visual servoing with safe interaction using image moments
JP6438354B2 (ja) 自己位置推定装置及び自己位置推定装置を備えた移動体
CN115488881A (zh) 基于多运动技能先验的人机共享自治遥操作方法及***
Barnes et al. Fuzzy control for active perceptual docking
US20230202026A1 (en) Robot Training System
Bis Velocity occupancy space: autonomous navigation and dynamic obstacle avoidance with sensor and actuation error
Bis et al. Velocity occupancy space for differential drive vehicles
Vochten et al. Specification and control of human-robot handovers using constraint-based programming
US20220371203A1 (en) Assistance for robot manipulation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210707

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221031

R151 Written notification of patent or utility model registration

Ref document number: 7180696

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151