JP7163925B2 - 情報処理装置、情報処理方法、および、プログラム - Google Patents

情報処理装置、情報処理方法、および、プログラム Download PDF

Info

Publication number
JP7163925B2
JP7163925B2 JP2019544255A JP2019544255A JP7163925B2 JP 7163925 B2 JP7163925 B2 JP 7163925B2 JP 2019544255 A JP2019544255 A JP 2019544255A JP 2019544255 A JP2019544255 A JP 2019544255A JP 7163925 B2 JP7163925 B2 JP 7163925B2
Authority
JP
Japan
Prior art keywords
planning
state
information
unit
predetermined
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
JP2019544255A
Other languages
English (en)
Other versions
JPWO2019064730A1 (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.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group 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 Sony Corp, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2019064730A1 publication Critical patent/JPWO2019064730A1/ja
Application granted granted Critical
Publication of JP7163925B2 publication Critical patent/JP7163925B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0006Digital architecture hierarchy
    • 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/40519Motion, trajectory planning

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Manufacturing & Machinery (AREA)
  • Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Transportation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Manipulator (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本開示は、情報処理装置、情報処理方法、および、プログラムに関する。
従来、例えば外界の状況を認識することにより自律的に動作を行うロボットが各種提案されている。
例えば、下記特許文献1には、ロボット装置が、木構造形式に構成された複数の行動モジュールを有し、そして、当該複数の行動モジュールのうち上位の行動モジュールは、記憶手段に記憶された制御ポリシーに基づいて、自身に接続された一以上の行動モジュールを制御することが記載されている。
特許第4449372号公報
しかしながら、特許文献1に記載の技術では、行動モジュールが処理を行う際に、当該行動モジュールの状態を変更することについては考慮されていない。
そこで、本開示では、状態を適切に変更しつつ、行動の計画を行うことが可能な、新規かつ改良された情報処理装置、情報処理方法、および、プログラムを提案する。
本開示によれば、複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理を行う第1の計画部、を備え、前記状態を変更した場合には、前記第1の計画部は、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知し、前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含む、情報処理装置が提供される。
また、本開示によれば、複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理をプロセッサが行うことと、前記状態を変更した場合には、状態を変更したことを示す情報を上位の第2の計画部へ通知することと、を含み、前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含む、情報処理方法が提供される。
また、本開示によれば、コンピュータを、複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理を行う第1の計画部、として機能させるためのプログラムであって、前記状態を変更した場合には、前記第1の計画部は、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知し、前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含む、プログラムが提供される。
以上説明したように本開示によれば、状態を適切に変更しつつ、行動の計画を行うことができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本開示の各実施形態に共通する情報処理システムの構成例を示した説明図である。 あるロボットの行動計画モジュールの全体の構成例を示した図である。 第1の実施形態に係るロボット10の機能構成例を示したブロック図である。 第1の実施形態に係る行動計画部100の構成例を示したブロック図である。 ある計画部が保持している、当該計画部よりも上位の計画部の各々に対応する状態の一例を示した図である。 各計画部の各サーバ内が保持する状態が、複数の種類の所定の状態間で変更される流れの例を示した図(状態遷移図)である。 上位の計画部と下位の計画部との間で送受信される情報の例を示した図である。 行動計画部100において実現され得る分岐の構造および集約の構造の例を示した図である。 図8に示した計画部Xおよび計画部Yに順々に処理を実行させる際の、各計画部の状態の変更の例を示した図である。 計画部104の詳細な機能構成例を示したブロック図である。 第1の実施形態に係る処理の流れの一部を示したフローチャートである。 第1の実施形態に係る処理の流れの一部を示したフローチャートである。 第2の実施形態に係る各計画部による、状態を変更したことを示す情報の記憶部164に対する出力例を示した図である。 第2の実施形態に係る、動作履歴情報に基づいてトレース画面が表示されるまでの流れを示した図である。 トレース画面の表示例を示した図である。 図15に示したトレース画面内の一部の領域に関する詳細画面の表示例を示した図である 第2の実施形態に係る処理の流れの一部を示したフローチャートである。 第2の実施形態に係る処理の流れの一部を示したフローチャートである。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。例えば、実質的に同一の機能構成を有する複数の構成要素を、必要に応じて計画部102aおよび計画部102bのように区別する。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。例えば、計画部102aおよび計画部102bを特に区別する必要が無い場合には、単に計画部102と称する。
また、以下に示す項目順序に従って当該「発明を実施するための形態」を説明する。
1.概要
2.第1の実施形態
3.第2の実施形態
4.変形例
<<1.概要>>
まず、本開示の概要について説明する。通常、例えば自律型のロボットなどの自律移動型の装置は、行動計画の機能(行動計画モジュール)を有している。さらに、当該行動計画モジュールでは、実行周期の異なる複数のアルゴリズムが階層構造(例えば木構造など)をなすように構成されている場合が多い。
<1-1.行動計画モジュールの概要>
図2は、あるロボットの行動計画モジュールの全体の構成例を示した図である。図2に示したように、当該ロボットの行動計画モジュールでは、実行周期の異なる複数のアルゴリズム(計画モジュール)が階層構造をなすように構成されている。具体的には、階層が一番上の機能が「行動の目的の決定機能」であり、階層が二番目の機能が「トポロジカルマップ上の移動経路の決定機能」であり、階層が三番目の機能が「直近のノードまでの移動経路の決定機能」であり、そして、階層が四番目の機能が「移動経路に沿う制御指令値の決定機能」であるように、当該行動計画モジュールは構成されている。そして、当該行動計画モジュールでは、各計画モジュールは、一つ下の階層に位置する計画モジュールの実行を制御する。
ここで、上記の各計画モジュールの内容についてより具体的に説明する。まず、「行動の目的の決定機能」では、例えば、ロボットは、後述する通信網22を介して、取得される人間の操作情報に基づいて移動モードを選択し、そして、当該操作情報に基づいて、目的地の決定を行う。この「行動の目的の決定機能」の周期は、人間の操作の周期であり得る。
「トポロジカルマップ上の移動経路の決定機能」では、例えば、ロボットは、まず、「行動の目的の決定機能」で決定された目的地の情報と、ロボットが行った状況認識の結果から得られる、トポロジカルマップおよびトポロジカルマップ上の自己位置の情報とに基づいて、「移動経路と移動方法の計画」を行う。そして、ロボットは、計画した移動方法を実行する。この「トポロジカルマップ上の移動経路の決定機能」の周期は、人間の操作の周期、または、トポロジカルマップの変化の周期であり得る。
「直近のノードまでの移動経路の決定機能」では、例えば、ロボットは、まず、上記の状況認識の結果から得られる、占有格子地図および自己位置を用いて、例えばA*(A-star)探索アルゴリズムなどのグラフ探索アルゴリズムにより、目的地までの移動経路の情報を生成する。そして、ロボットは、生成した個々の移動経路の情報をマージする。この「直近のノードまでの移動経路の決定機能」の周期は、数Hz(例えば1Hz)程度であり得る。
「移動経路に沿う制御指令値の決定機能」では、例えば、ロボットは、上記の状況認識の結果から得られる自己位置、自己姿勢、および、自己速度などを用いて、(「直近のノードまでの移動経路の決定機能」により)マージされた移動経路に沿うように制御指令値(例えば進行方向や進行速度など)を決定する。この「移動経路に沿う制御指令値の決定機能」の周期は、数Hz(例えば5Hz)程度であり得る。
<1-2.課題の整理>
ところで、従来、行動計画モジュールなどのソフトウェアの開発効率を向上させることが望まれている。
一般的に、特定のロボット用の行動計画のアルゴリズムは、別の種類のロボットでも流用可能な場合が多い。例えば、自動運転車用の行動計画のアルゴリズムのうちの一部は、室内移動用ロボット(例えばサービスロボットなど)のアルゴリズムと同一であり得る。このように、異なる種類のロボット間でアルゴリズムを流用可能な場合が多い。そこで、あるロボット向けに開発されたアルゴリズムが、階層構造の異なる別の種類のロボットにも流用可能であることが望ましい。
そこで、上記事情を一着眼点にして、本開示の各実施形態を創作するに至った。各実施形態によれば、ロボットの行動計画を実現するアルゴリズム実装を、ユースケースの異なるロボットでも共有可能とするソフトウェアフレームワークを提供することができる。これにより、ソフトウェアの開発効率を向上させることができる。
<1-3.情報処理システムの構成>
次に、本開示の各実施形態に共通する情報処理システムの構成例について、図1を参照して説明する。図1に示すように、各実施形態に係る情報処理システムは、ロボット10、端末20、および、通信網22を有する。
{1-3-1.ロボット10}
ロボット10は、本開示に係る情報処理装置の一例である。ロボット10は、電気的および/または磁気的な作用を用いて自律的に行動(移動など)可能な装置であり得る。例えば、ロボット10は、図2を参照して説明した上記の行動計画モジュールと同様の機能を実行可能であってもよい。
図1では、ロボット10が車(自動運転車など)である例を示しているが、かかる例に限定されない。例えば、ロボット10は、室内移動用ロボット、人型の自律制御ロボット、四足歩行ロボット、ドローン、産業用ロボット(例えば、機械等の組み立てロボットなど)、サービスロボット(例えば、手術ロボットなどの医療用ロボットや、調理用ロボットなど)、または、玩具であってもよい。また、自動運転車は、四輪車に限定されず、二輪車や三輪車などであってもよい。
{1-3-2.端末20}
端末20は、例えば、ロボット10の開発者などのユーザが使用する情報処理端末である。端末20は、例えば処理回路(CPU(Central Processing Unit)など)を含む制御部、ユーザが操作するための入力部(例えばマウスやキーボードなど)、表示画面を表示する表示部(例えばLCD(Liquid Crystal Display)またはOLED(Organic Light Emitting Diode)など)、および、通信網22を介して他の装置と通信する通信部などを備える。
例えば、端末20は、ロボット10の行動に関してユーザの操作情報(例えば目的地の指定など)の入力を受け付け、そして、当該操作情報を通信網22を介してロボット10へ送信する。また、ロボット10の開発者は、端末20を使用して、例えばロボット10に実装され得るソフトウェアを開発することが可能である。
{1-3-3.通信網22}
通信網22は、通信網22に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、通信網22は、電話回線網、インターネット、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、通信網22は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
<<2.第1の実施形態>>
以上、各実施形態に共通する情報処理システムの構成について説明した。次に、本開示に係る第1の実施形態の内容について説明する。
<2-1.構成>
まず、第1の実施形態に係るロボット10の機能構成について説明する。図3は、第1の実施形態に係るロボット10の機能構成例を示したブロック図である。図3に示すように、ロボット10は、制御部150、通信部160、センサ部162、記憶部164、および、移動機構166を有する。
{2-1-1.制御部150}
制御部150は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)などの処理回路、および、ROM(Read Only Memory)やRAM(Random Access Memory)などのメモリを用いて、ロボット10の動作を統括的に制御する。例えば、制御部150は、センサ部162によるセンシング結果などに基づいて、状況理解(例えば、外界の情報やロボット10の動作状態などの理解)や行動の計画を行う。そして、制御部150は、これらの結果に基づいて移動機構166を制御することにより目的地まで移動する。
また、図3に示すように、制御部150は、行動計画部100を有する。
{2-1-2.行動計画部100}
行動計画部100は、例えば、センサ部162によるセンシング結果(画像、音声、位置情報など)や、通信部160により受信されたユーザの操作情報などに基づいて、ロボット10の行動を計画する。
図4は、行動計画部100の構成例を示したブロック図である。図4に示したように、行動計画部100は、複数の計画部を含み、かつ、当該複数の計画部は、N層の階層構造をなすように構成されている。ここで、Nは、2以上の任意の数であり得る。例えば、行動計画部100は、階層が最も高い一以上の計画部102(以下「階層Aの計画部102」と称する場合がある)、階層が二番目に高い一以上の計画部104(以下「階層Bの計画部104」と称する場合がある)、および、階層が三番目に高い一以上の計画部106(以下「階層Cの計画部106」と称する場合がある)を含む。
さらに、各計画部はそれぞれ、当該計画部よりも一つ上位の階層に位置する一以上の計画部、および、当該計画部よりも一つ下位の階層に位置する一以上の計画部とそれぞれ通信可能なように構成され得る。例えば、図4に示したように、階層Bの計画部104aは、全ての「階層Aの計画部102」および全ての「階層Cの計画部106」の各々と通信可能なように構成される。
(2-1-2-1.処理の実行)
各計画部は、複数の種類の所定の状態間で状態を変更しながら、ロボット10の行動の計画に関する所定の処理を行う。例えば、各計画部は、ロボット10の行動の計画に関して、当該計画部に対して予め定められている処理を行う。ここで、各計画部は、当該計画部が位置する階層ごとに異なる種類の処理を行うように、例えば開発者により予め定められ得る。なお、同じ階層に位置する個々の計画部は、互いに異なる種類の処理を行うように予め定められていてもよいし、または、同じ種類の処理をそれぞれ行うように予め定められていてもよい。
さらに、各計画部は、例えば図5に示したように、当該計画部よりも一つ上位の階層に位置する全ての計画部の数だけ、当該全ての上位の計画部の各々に対応する状態を保持し得る。そして、各計画部は、当該全ての上位の計画部の各々に対応する(現在の)状態を上記複数の種類の所定の状態間でそれぞれ変更し得る。例えば、図6を参照して後述するように、各計画部は、当該全ての上位の計画部の各々に関して、当該上位の計画部に対応する現在の状態を、上記複数の種類の所定の状態のうち、当該現在の状態に関連付けられているいずれかの他の状態へ変更する。一例として、各計画部は、当該全ての上位の計画部の各々に関して、当該上位の計画部に対応する現在の状態を、上記複数の種類の所定の状態のうち、当該現在の状態に関連付けられているいずれかの他の状態へ変更するための機能を用いることにより、当該現在の状態を当該いずれかの他の状態へ変更する。
当該複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態、および、複数の種類の、第1の状態とは異なる第2の状態を含み得る。ここで、当該複数の種類の第1の状態の各々は、当該計画部に対応する処理の進捗度合いが互いに異なるように定められていてもよい。例えば、図6に示したように、当該複数の種類の第1の状態は、ACTIVATING、ACTIVE、および、APPROACHINGの三種類であり、かつ、処理の進捗度合いが低い順が、ACTIVATING、ACTIVE、および、APPROACHINGの順であるように定められていてもよい。一例として、ACTIVATINGは、当該計画部に対応する処理の準備中であることを示す状態である。ACTIVEは、当該処理を正常実行中であり、かつ、当該処理の進捗度合いが所定の閾値未満である状態である。APPROACHINGは、当該処理を正常実行中であり、かつ、当該処理の進捗度合いが当該所定の閾値以上である状態(つまり、当該計画部に対応する処理の終了に近づいている状態)である。
また、当該複数の種類の第2の状態は、図6に示したように、例えば、当該処理の実行の待機中である状態(READY)、当該処理が正常終了した状態(つまり、当該処理の進捗度合いが100%になった状態)(SUCCEEDED)、当該処理が異常終了中である状態(ABORTING)、当該処理が異常終了した状態(ABORTED)、当該処理が中断中である状態(PREEMPTING)、および、当該処理が中断した状態(PREEMPTED)を含む。
‐上位からの指示
以下では、前述した各計画部が実行する処理の内容についてより詳細に説明を行う。例えば、各計画部は、当該計画部よりも一つ上位の階層に位置するいずれかの計画部から受信された制御情報に基づいて、当該計画部に対応する処理(計画処理)を行う。ここで、当該制御情報は、当該計画部に対応する処理の開始または停止などを指示する情報を含んでもよい。例えば、図7に示したように、計画部B104は、処理の開始を指示するための制御情報を上位の計画部A102から受信し得る。この場合、計画部B104は、当該制御情報に従って、計画部B104が保持している、計画部A102に対応する現在の状態をREADYからACTIVATINGへと変更しながら、計画部B104に対応する処理の実行を開始し得る。
また、図7に示したように、計画部B104は、処理の停止を指示するための制御情報を計画部A102から受信し得る。この場合、計画部B104は、当該制御情報に従って、現在実行中の計画部B104に対応する処理を停止(中断)し得る。この場合、計画部B104は、計画部B104が保持している、計画部A102に対応する現在の状態(ACTIVATING、ACTIVE、または、APPROACHINGのいずれか)をPREEMPTINGへと変更しながら、計画部B104に対応する処理の実行を停止し得る。
または、当該制御情報は、該当の上位の計画部に対応する現在の状態を上記複数の種類の所定の状態間で変更することを指示する情報を含んでもよい。例えば、該当の上位の計画部に対応する現在の状態に関連付けられている一以上の他の所定の状態のうち、変更先の状態を指示する情報を含んでもよい。一例として、該当の上位の計画部に対応する現在の状態が“ACTIVE”である場合には、当該制御情報は、当該状態を“PREEMPTING”へ変更することの指示を含んでいてもよい。
‐下位からの通知
さらに、各計画部は、当該計画部よりも一つ下位の階層に位置するいずれかの計画部から受信された情報と、当該計画部の設定(実装)とに基づいて、当該計画部に対応する処理を行う。例えば、図7に示したように、各計画部は、当該計画部よりも一つ下位の階層に位置するいずれかの計画部から、当該いずれかの計画部の状態が別の状態へ変更されたことを示す情報を受信し得る。または、各計画部は、当該いずれかの計画部に対応する処理の進捗(例えば、処理の完了や失敗など)を示す情報を受信し得る。この場合、各計画部は、これらの受信した情報と、当該計画部の設定とに対応する処理を行い得る。
‐状態の組み合わせ
さらに、各計画部は、当該計画部の現在の状態と、当該計画部の設定とに基づいて、当該計画部に対応する処理を行う。前述したように、各計画部は、当該計画部よりも一つ上位の階層に位置する全ての計画部の各々に対応する状態を保持し得る。この場合、各計画部は、当該上位の全ての計画部の各々に対応する現在の状態の組み合わせに予め関連付けられている、(当該計画部の)処理を実行し得る。
(2-1-2-2.上位の計画部への通知)
さらに、各計画部は、状態を変更した場合には、当該計画部よりも一つ上位の階層に位置する別の計画部へ、状態を変更したことを示す情報を通知する。例えば、各計画部は、当該計画部よりも一つ上位の階層に位置する全ての計画部の各々に関して、当該上位の計画部に対応する状態を変更する度に、当該上位の計画部に対応する状態を変更したことを示す情報を当該上位の計画部にのみ逐次通知する。ここで、「当該上位の計画部に対応する状態を変更したことを示す情報」は、例えば、当該上位の計画部に対応する変更前の状態の識別情報、および、当該上位の計画部に対応する変更後の状態の識別情報を含む。
さらに、各計画部は、例えば図7に示したように、当該計画部よりも一つ上位の階層に位置する一以上の計画部へ、当該計画部に対応する処理の進捗(例えば、処理の完了や失敗など)を示す情報を、当該計画部の設定に基づいて通知することも可能である。
(2-1-2-3.下位の計画部の制御)
さらに、各計画部は、図7に示したように、当該計画部よりも一つ下位の階層に位置する別の計画部に対して、当該別の計画部に対応する処理の実行を当該計画部の設定に基づいて制御することも可能である。例えば、各計画部は、当該計画部よりも一つ下位の階層に位置する別の計画部へ、当該別の計画部に対応する処理の開始や停止などを指示するための制御情報を、当該計画部の処理の進捗度合いに基づいて通知してもよい。または、各計画部は、当該計画部が保持している、当該計画部よりも一つ上位の階層に位置する全ての計画部の各々に対応する現在の状態の組み合わせに基づいて、当該下位の計画部へ当該制御情報を通知してもよい。
このように、第1の実施形態では、各計画部の接続方法、各計画部の状態遷移のルール、および、各計画部の制御方法が基本的に共通化されている。このため、行動計画部100は任意の階層構造を取ることができる。例えば、図8に示したように、行動計画部100は、分岐の構造や集約の構造を含むことが可能となる。図8に示した例では、計画部A102が、計画部A102よりも一つ下位の階層に位置する計画部X104aおよび計画部Y104bの各々に対して並列に制御可能なような構造(つまり、分岐の構造)が構成されている。さらに、図8に示した例では、同じ階層に位置する複数の計画部(具体的には、計画部X104aおよび計画部Y104b)の各々が、当該複数の計画部よりも一つ下位の階層に位置する一つの計画部106に対してそれぞれ独立して制御可能なような構造(つまり、集約の構造)が構成されている。このように、第1の実施形態によれば、各種の自律型の装置(各種のロボットなど)において想定され得る任意の階層構造を実現可能なような、各計画部間の標準インターフェースを規定したソフトウェアフレームワークが提供され得る。
例えば、図8に示したような「分岐の構造」が構成されることにより、図9に示したように、複数の計画部104に処理を順々に実行させる場面において、各計画部104による処理を切り替える際の、切り替えのための時間を不要にする(または、大きく削減する)ことができる。より具体的には、図8に示した計画部A102は、図9に示したように、計画部X104aの状態が“ACTIVE”から“APPROACHING”に変わったタイミングに、計画部Y104bの状態を(“READY”から)“ACTIVATING”へ切り替え、計画部Y104bに暖気運転をさせることができる。このように、2つの計画部104の実行をスムーズに(効率的に)切り替えることができる。
‐変形例
追加的に、または、代替的に、各計画部は、当該計画部よりも一つ下位の階層に位置する別の計画部へ、当該別の計画部の状態を別の状態へ変更させるための制御情報を当該計画部の設定に基づいて通知することも可能である。
(2-1-2-4.各計画部の詳細な機能構成例)
ここで、各計画部のさらに詳細な機能構成例について、図10を参照して説明する。図10は、計画部104の詳細な機能構成例を示したブロック図である。図10に示したように、計画部104は、N個のサーバ1040、処理部1044、および、N個のクライアント1046を含んで構成され得る。ここで、Nは、予め定められている、2以上の数である。なお、図10では、一例として計画部104の構成例を示しているが、他の階層に位置する他の計画部(例えば計画部102や計画部106など)に関しても、図10に示した構成例と同様に構成され得る。
‐サーバ1040
各サーバ1040は、計画部104よりも一つ上位の階層に位置するいずれかの計画部102と通信を行う機能を有する。例えば、計画部104よりも一つ上位の階層に位置する全ての計画部102の各々は、それぞれ別々のサーバ1040と一対一に関連付けられる。そして、各サーバ1040は、(当該全ての計画部102のうち)当該サーバ1040に関連付けられている計画部102とのみ通信する。かかる構成によれば、計画部104は、計画部104よりも一つ上位の階層に位置する全ての計画部102と通信を行うことができる。
‐‐状態の変更
さらに、各サーバ1040は、ステートマシン1042を含む。ステートマシン1042は、(当該ステートマシン1042を含んでいる)サーバ1040に関連付けられている上位の計画部102に対応する状態を保持する。これにより、計画部104は、図5に示したように、計画部104よりも一つ上位の階層に位置する全ての計画部102の各々に対応する状態を保持することができる。図5に示した例では、「計画部X」102aに関連付けられているサーバ1040a内のステートマシン1042aは、「計画部X」102aに対応する現在の状態として「ACTIVE」を保持している。
さらに、各サーバ1040内のステートマシン1042は、保持している状態を、例えば図6に示したように、上記複数の種類の所定の状態間で変更する。
図6は、各ステートマシン1042が保持する状態が、上記複数の種類の所定の状態間で変更(状態遷移)される流れの例を示した図(状態遷移図)である。なお、図6では、上位の計画部102からの指示(要求)を契機として状態の変更が生じる場合を実線で示している。また、後述する、処理部1044の要求を契機として状態の変更が生じる場合を破線で示している。また、自動的に状態が変更される場合を一点鎖線で示している。図6に示した例では、あるステートマシン1042が保持する現在の状態が“READY”である場合には、上位の計画部102からの指示を契機してのみ当該状態の変更が行われ、かつ、変更後の状態は“ACTIVATING”になる。このように、第1の実施形態では、各計画部に含まれる個々のステートマシン1042は全て同じ流れで状態遷移を行う。これにより、行動計画部100は任意の階層構造を取ることが可能になる。
‐‐状態の変更の通知
さらに、(前述したように)各サーバ1040は、当該サーバ1040内のステートマシン1042が保持している状態を変更する度に、当該サーバ1040に関連付けられている上位の計画部102へ、状態を変更したことを示す情報(メッセージとも称する)を通知する。また、各サーバ1040は、例えば当該サーバ1040内のステートマシン1042が保持している状態を変更する度に、状態を変更したことを示す情報(例えば、当該サーバ1040の識別情報、および、変更後の状態の識別情報など)を、後述する処理部1044へ通知する。
‐‐処理の進捗の通知
さらに、各サーバ1040は、処理部1044による処理の進捗を示す情報を、当該サーバ1040に関連付けられている上位の計画部102へ例えば処理部1044からの要求に基づいて通知する。ここで、当該処理の進捗を示す情報は、当該処理の進捗度合いを示したり、または、例えば、予め定められている各種のイベント(例えば処理の完了に対応するイベントや、処理の失敗に対応するイベントなど)のうちのいずれかが発生したことなどを示し得る。
‐クライアント1046
各クライアント1046は、計画部104よりも一つ下位の階層に位置するいずれかの計画部106と通信を行う機能を有する。例えば、計画部104よりも一つ下位の階層に位置する全ての計画部106の各々は、それぞれ別々のクライアント1046と一対一に関連付けられる。そして、各クライアント1046は、(当該全ての計画部106のうち)当該クライアント1046に関連付けられている計画部106とのみ通信する。かかる構成によれば、計画部104は、計画部104よりも一つ下位の階層に位置する全ての計画部106と通信を行うことができる。
例えば、各クライアント1046は、当該クライアント1046に関連付けられている計画部106に対して、当該計画部106に対応する処理の開始や停止などを指示するための制御情報を、後述する処理部1044から取得される要求に基づいて通知する。また、各クライアント1046は、当該クライアント1046に関連付けられている計画部106から、当該計画部106の状態が変更されたことを示す情報(より詳細には、当該計画部106における当該計画部104に対応する状態が変更されたことを示す情報)を受信する。
‐処理部1044
処理部1044は、ロボット10の行動の計画に関して、該当の計画部104に対して予め開発者により定められている機能(実装されている機能)を実行する。例えば、処理部1044は、計画部104よりも一つ下位の階層に位置するいずれかの計画部106に対応する処理の開始または停止を指示するための制御情報を当該計画部106へ通知することを、当該計画部106に関連付けられているクライアント1046に対して要求する。
さらに、計画部104よりも一つ上位の階層に位置するいずれかの計画部102に対応する現在の状態を上記複数の種類の所定の状態間で変更するための、予め定められている条件が満たされた場合には、処理部1044は、当該計画部102に関連付けられているサーバ1040に対して、当該サーバ1040内のステートマシン1042に保持されている状態を変更することを要求する。例えば、この場合、処理部1044は、まず、図6に示したような状態の変更(遷移)の設定に基づいて、当該計画部102に対応する変更後の状態を決定する。そして、処理部1044は、当該計画部102に関連付けられているサーバ1040(内のステートマシン1042)が保持している現在の状態を当該決定された状態へ変更することを、当該サーバ1040に対して要求する。
例えば、処理部1044は、当該決定された状態に変更させるための所定の関数を呼ぶ(Call)ことにより、当該サーバ1040内のステートマシン1042が保持している状態の変更を当該サーバ1040に対して要求する。ここで、当該所定の関数は、変更後の状態ごとに予め定められ得る。例えば、“ACTIVATING”に変更させるための関数がsetActivating()、“SUCCEEDED”に変更させるための関数がsetSucceeded()、“PREEMPTING”へ変更させるための関数がsetPreempting()などのように定められていてもよい。
ここで、個々の計画部102に対応する現在の状態を変更するための条件は、処理部1044に対して予め設定されている。例えば、当該条件は、処理部1044に対して定められている処理の進捗度合いなどに応じて設定されている。一例として、「現在の状態が“ACTIVE”である場合には、処理部1044に対して定められている全体の処理のうちの80%までが完了したタイミングに現在の状態を“APPROACHING”へ変更すること」が、当該条件の一つとして定められていてもよい。
{2-1-3.通信部160}
通信部160は、例えばネットワークカードやアンテナなどの通信インターフェースを含んで構成され得る。通信部160は、例えば通信網22を介して外部の装置と情報を送受信する。例えば、通信部160は、ユーザの操作情報を外部の装置から受信する。
{2-1-4.センサ部162}
センサ部162は、例えば外界やロボット10の動作状態などに関してセンシングする。センサ部162は、例えば、カメラ(イメージセンサ)、デプスセンサ(例えばtime of flight方式のセンサ、または、ステレオカメラなど)、マイクロフォン、加速度センサ、ジャイロスコープ、温度センサ、地磁気センサ、および/または、トルクセンサなどを含む。さらに、センサ部162は、例えばGPS(Global Positioning System)やGLONASS(Global Navigation Satellite System)などの測位衛星から測位信号を受信する受信機を含み得る。
{2-1-5.記憶部164}
記憶部164は、例えばHDD(Hard Disk Drive)などの記憶装置を含んで構成され得る。記憶部164は、各種のデータおよび各種のソフトウェアを記憶する。
{2-1-6.移動機構166}
移動機構166は、ロボット10が移動するための機構である。例えば、移動機構166は、複数の車輪を有してもよいし、歩行するための複数の脚部(例えば2脚や4脚など)を有してもよいし、または、例えばキャタピラ(登録商標)などの無限軌道の機構を有してもよい。
例えば、移動機構166は、一以上のアクチュエータを有する。この場合、ロボット10内の電源部(図示省略)から供給される電力と、制御部150から伝達される制御信号とに基づいて当該一以上のアクチュエータが駆動されることにより、ロボット10は移動し得る。
<2-2.処理の流れ>
以上、第1の実施形態に係る構成について説明した。次に、第1の実施形態に係る処理の流れの一例について、図11および図12を参照して説明する。ここでは、ロボット10内のある計画部104の処理の流れの一例について説明する。
図11は、ある計画部104の処理の流れの一部を示したフローチャートである。図11に示したように、まず、計画部104よりも一つ上位の階層に位置するいずれかの計画部102は、当該計画部102に関連付けられている(計画部104内の)サーバ1040へ、計画部104に対応する処理の開始を指示するための制御情報を送信する。そして、当該サーバ1040は、受信した制御情報を、計画部104内の処理部1044へ通知する(S101)。
その後、計画部104内の処理部1044は、受信した制御情報に基づいて、当該上位の計画部102に対応する状態を“READY”から“ACTIVATING”に変更するように、当該上位の計画部102に関連付けられているサーバ1040へ要求する。そして、該当のサーバ1040は、当該サーバ1040内のステートマシン1042が保持している現在の状態を“READY”から“ACTIVATING”へ変更する(S103)。
続いて、該当のサーバ1040は、当該上位の計画部102に対応する状態を“ACTIVATING”に変更したことを示す情報を当該上位の計画部102へ通知する(S105)。
続いて、計画部104内の処理部1044は、ロボット10の行動の計画に関して、当該計画部104に対して予め定められている処理を開始する(S107)。
その後、計画部104内の各サーバ1040が保持している現在の状態のうちのいずれかを変更するための条件が成立するまで(S109:No)、処理部1044は、当該処理の実行を継続する。
ここで、図12を参照して、当該いずれかの状態を変更するための条件が成立した場合(S109:Yes)における処理の流れについて説明する。図12に示したように、この場合、まず、処理部1044は、該当の状態を、図6に示した状態遷移図に基づいて上記複数の種類の所定の状態の間で変更するように、該当の状態に対応するサーバ1040に対して要求する。そして、当該サーバ1040は、当該サーバ1040内のステートマシン1042が保持している状態を、当該要求に基づいて別の状態へ変更する(S121)。
続いて、該当のサーバ1040は、当該別の状態へ変更したことを示す情報を、当該サーバ1040に関連付けられている上位の計画部102へ通知する(S123)。
その後、該当の処理の中断または終了の条件が満たされた場合には(S125:Yes)、計画部104は、当該処理を中断または終了する。一方、該当の処理の中断および終了の条件が満たされていない場合には(S125:No)、計画部104は、再びS109以降の処理を行う。
<2-3.効果>
以上説明したように、第1の実施形態に係るロボット10は、上記複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理を行う一以上の計画部を備え、当該一以上の計画部の各々は、状態を変更した場合には、状態を変更したことを示す情報を、当該計画部よりも上位の計画部へ通知する。このため、例えば公知の技術と比較して、ロボット10の行動の計画に関して、より多様な種類の処理を実現することができる。
例えば、各計画部は、当該計画部よりも一つ上の階層に位置する全ての計画部の各々に対応する状態を保持し、かつ、当該全ての上位の計画部の各々に対応する状態をそれぞれ上記複数の種類の所定の状態間で、図6に示した状態遷移図に基づいて変更する。このため、例えば実行周期の異なる複数の計画部を含む行動計画部100が、任意の階層構造を取ることが可能になる。
このように、第1の実施形態によれば、各種の自律型の装置(各種のロボットなど)において想定され得る任意の階層構造を実現可能なような、各計画部間の標準インターフェースを規定したソフトウェアフレームワークを提供することができる。これにより、アルゴリズムの流用性が向上する。例えばあるロボット向けに開発されたアルゴリズムを別の種類のロボットにも流用可能となる。その結果、ソフトウェアの開発効率を向上させることも可能となる。
<<3.第2の実施形態>>
以上、第1の実施形態について説明した。前述したように、第1の実施形態に係るロボット10内の複数の計画部は、並行に同時動作可能であり、かつ、計画部同士は、非同期通信で連携し得る。
一方で、ロボット10を開発する開発者の観点では、例えば以下のような困難が生じ得るという課題がある。第1に、ロボット10の稼働中に、ロボット10内の各計画部の動作状況を開発者が把握することが困難であり得る。第2に、ロボット10内の一以上の計画部に不具合が生じた場合に、開発者が当該不具合を解析することが困難であり得る。
次に、本開示の第2の実施形態について説明する。後述するように、第2の実施形態によれば、各計画部の動作履歴(または動作状況)を可視化することが可能となる。これにより、ロボット10の開発がより容易になり得る。
<3-1.構成>
まず、第2の実施形態に係るロボット10の機能構成について説明する。第2の実施形態に係るロボット10に含まれる各構成要素は、例えば図3、図4、および、図10などに示した第1の実施形態と同様である。以下では、第1の実施形態とは異なる内容についてのみ説明を行うこととし、同一の内容については説明を省略する。
{3-1-1.計画部}
第2の実施形態に係る各計画部は、状態を変更する度に、例えば図13に示したように、状態を変更したことを示す情報を動作履歴情報として記憶部164(例えば記憶部164内の所定の領域)に出力する。例えば、各計画部は、当該計画部よりも一つ上位の階層に位置する全ての計画部のうちのいずれかに対応する状態を変更する度に、当該上位の計画部に対応する状態を変更したことを示す情報を当該動作履歴情報として記憶部164に出力する。ここで、「当該状態を変更したことを示す情報」は、例えば、状態を変更した日時、変更前の状態の識別情報、変更後の状態の識別情報、および、当該上位の計画部の識別情報などを含む。
さらに、各計画部は、当該計画部よりも一つ上位の階層に位置する全ての計画部のうちのいずれかに対して、状態を変更したことを示す情報を当該上位の計画部に対して通知する度に、当該通知(メッセージ)を送信したことを示す情報を当該動作履歴情報として記憶部164に出力することも可能である。ここで、「当該通知を送信したことを示す情報」は、例えば、当該通知の送信日時、当該通知の送信先の計画部の識別情報、および、当該通知の識別番号などを含む。
さらに、各計画部は、当該計画部よりも一つ上位の階層に位置するいずれかの計画部から、状態を変更したことを示す通知を受信する度に、当該状態の変更の通知を受信したことを示す情報を当該動作履歴情報として記憶部164に出力することも可能である。ここで、「当該状態の変更の通知を受信したことを示す情報」は、例えば、当該通知の受信日時、当該通知の送信元の計画部の識別情報、および、当該通知の識別番号などを含む。
さらに、各計画部は、当該計画部に対して予め定められている機能(関数など)を用いる度に、当該機能を用いたことを示す情報(例えば、当該機能を使用した日時、および、使用した関数の識別情報などを含む)を当該動作履歴情報として記憶部164に出力することも可能である。さらに、各計画部は、例えば当該計画部に対応する処理の実行中において、予め定められている任意のイベントが発生する度に、イベントの発生情報(例えば、イベントの発生時刻、および、イベントの識別情報などを含む)を当該動作履歴情報として記憶部164に出力することも可能である。
(3-1-1-1.動作履歴情報)
第2の実施形態では、記憶部164に格納された動作履歴情報に基づいて、各計画部の動作履歴を可視化するための、例えば図15に示したようなトレース画面が表示され得る。例えば、図14に示したように、まず、記憶部164に格納された動作履歴情報30は、トレース画面の表示のためのトレースファイル32へ変換され得る。そして、トレースファイル32に基づいて当該トレース画面が例えば端末20などにより表示され得る。
例えば、端末20は、通信網22を介してトレースファイル32をロボット10から受信し、そして、受信したトレースファイル32に基づいて当該トレース画面の表示を制御する。または、端末20は、記憶部164に格納された全ての動作履歴情報を通信網22を介して受信し、当該全ての動作履歴情報の各々をトレースファイル32に変換し、そして、変換された全てのトレースファイル32に基づいて当該トレース画面の表示を制御してもよい。
(3-1-1-2.トレース画面)
図15は、トレース画面の表示例(トレース画面40)を示した図である。図15に示したように、トレース画面40は、各計画部における状態の変更の履歴を時間軸に沿って一覧表示することが可能である。この表示例によれば、例えば一以上の計画部に不具合が生じた際に、当該不具合の発生時までの各計画部の動作履歴を、開発者は、時間軸に沿って一覧的に確認することができる。このため、当該不具合の内容や原因の解析をより容易に行うことができる。
図16は、図15に示したトレース画面40内の一部の領域(具体的には、「A」で示した領域)における詳細な情報を示す詳細画面の表示例(詳細画面42)を示した図である。図16に示したように、詳細画面42では、該当の領域に対応する時間帯における、各計画部の動作状況(例えば、当該計画部の状態、発生したイベント、および、使用された関数など)の時系列を示す詳細履歴表示420、当該時間帯における個々の計画部同士の通信履歴を示す通信履歴表示422、および、当該時間帯において発生した一つのイベントの詳細情報を示す詳細情報表示欄424などを含む。ここで、詳細履歴表示420は、例えば、前述した「イベントの発生情報」に基づいて表示され得る。通信履歴表示422は、例えば、前述した「通知を送信したことを示す情報」と「通知を受信したことを示す情報」との組み合わせに基づいて表示され得る。詳細情報表示欄424は、例えば、前述した「イベントの発生情報」に基づいて表示され得る。
<3-2.処理の流れ>
以上、第2の実施形態に係る構成について説明した。次に、第2の実施形態に係る処理の流れの一例について、図17および図18を参照して説明する。ここでは、ロボット10内のある計画部104の処理の流れの一例について説明する。
図17は、第2の実施形態に係る、ある計画部104の処理の流れの一部を示したフローチャートである。なお、図17に示したS201~S205の処理は、第1の実施形態におけるS101~S105と同様である。
S205の後、計画部104内の該当のサーバ1040は、当該サーバ1040が保持している状態を“ACTIVATING”に変更したことを示す情報を動作履歴情報として記憶部164に出力する(S207)。
なお、図17に示したS209~S211の処理は、第1の実施形態におけるS107~S109と同様である。
ここで、図18を参照して、S211の後の処理の流れについて説明する。図18に示したS221~S223の処理は、第1の実施形態におけるS121~S123と同様である。
S223の後、計画部104内の該当のサーバ1040は、当該サーバ1040が保持している状態を変更したことを示す情報を動作履歴情報として記憶部164に出力する(S225)。
なお、図18に示したS227の処理は、第1の実施形態におけるS125と同様である。
<3-3.効果>
以上説明したように、第2の実施形態に係る各計画部は、状態を変更する度に、状態を変更したことを示す情報を動作履歴情報として記憶部164に出力する。さらに、当該動作履歴情報に基づいてトレース画面の表示が可能である。従って、各計画部の動作履歴(または動作状況)の可視化が可能となるので、ロボット10の開発がより容易になり得る。
例えば一以上の計画部に不具合が生じた際に、当該不具合の発生時までの各計画部の動作履歴を表示可能であるので、開発者は、時間軸に沿って一覧的に確認することができる。このため、当該不具合の内容や原因の解析をより容易に行うことができる。
<<4.変形例>>
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
<4-1.変形例1>
前述した各実施形態では、本開示に係る情報処理装置がロボット10である例について説明したが、かかる例に限定されない。当該情報処理装置は、例えば、サーバ機、汎用PC(Personal Computer)、タブレット型端末、ゲーム機、スマートフォンなどの携帯電話、例えばHMD(Head Mounted Display)やスマートウォッチなどのウェアラブルデバイス、または、車載装置(カーナビゲーション装置など)などであってもよい。
追加的に、または、代替的に、当該情報処理装置は、自装置の行動を計画する代わりに、他の装置(例えば他のロボットなど)の行動、または、人間(または、人間が運転する各種の乗り物)の行動を計画してもよい。
<4-2.変形例2>
前述した各実施形態に係る処理の流れにおける各ステップは、必ずしも記載された順序に沿って処理されなくてもよい。例えば、各ステップは、適宜順序が変更されて処理されてもよい。また、各ステップは、時系列的に処理される代わりに、一部並列的に又は個別的に処理されてもよい。また、記載されたステップのうちの一部が省略されたり、または、別のステップがさらに追加されてもよい。
また、前述した各実施形態によれば、CPU、ROM、およびRAMなどのハードウェアを、前述した各実施形態に係るロボット10の各構成(例えば行動計画部100など)と同等の機能を発揮させるためのコンピュータプログラムも提供可能である。また、当該コンピュータプログラムが記録された記憶媒体も提供される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理を行う第1の計画部、
を備え、
前記状態を変更した場合には、前記第1の計画部は、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知し、
前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含む、情報処理装置。
(2)
前記複数の種類の前記第1の状態の各々に対応する前記所定の処理の進捗度合いは、互いに異なる、前記(1)に記載の情報処理装置。
(3)
前記複数の種類の所定の状態は、少なくとも一種類の、前記第1の状態とは異なる第2の状態をさらに含み、
前記少なくとも一種類の前記第2の状態は、待機中であることを示す状態、異常終了中であることを示す状態、実行中断中であることを示す状態、および、正常終了したことを示す情報のうちの少なくとも一つを含む、前記(2)に記載の情報処理装置。
(4)
前記所定の処理は、前記情報処理装置の行動の計画に関する処理である、前記(3)に記載の情報処理装置。
(5)
前記第2の計画部は、前記第1の計画部よりも一つ上の階層に位置し、かつ、一以上存在し、
前記第1の計画部は、前記一以上の前記第2の計画部の各々に対応する状態を保持し、かつ、前記一以上の前記第2の計画部の各々に対応する状態をそれぞれ前記複数の種類の所定の状態間で変更する、前記(4)に記載の情報処理装置。
(6)
前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、当該第2の計画部に対応する状態を変更した場合には、当該第2の計画部に対応する状態を変更したことを示す情報を当該第2の計画部へ通知する、前記(5)に記載の情報処理装置。
(7)
当該第2の計画部に対応する状態を変更したことを示す情報は、変更後の、当該第2の計画部に対応する状態の識別情報を含む、前記(6)に記載の情報処理装置。
(8)
前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、当該第2の計画部に対応する現在の状態を、前記複数の種類の所定の状態のうち、当該現在の状態に関連付けられているいずれかの他の状態へ変更する、前記(6)または(7)に記載の情報処理装置。
(9)
前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、前記複数の種類の所定の状態のうち、当該第2の計画部に対応する現在の状態に関連付けられているいずれかの他の状態へ変更するための機能を用いることにより、当該現在の状態を当該いずれかの他の状態へ変更する、前記(8)に記載の情報処理装置。
(10)
前記第1の計画部は、さらに、前記第1の計画部に対して処理の実行を制御するための第1の制御情報を前記一以上の前記第2の計画部のうちの少なくとも一つから受信し、かつ、
受信した前記第1の制御情報に基づいて前記所定の処理を行う、前記(8)または(9)に記載の情報処理装置。
(11)
前記第1の計画部は、さらに、前記一以上の前記第2の計画部の各々に対応する状態の組み合わせに基づいて前記所定の処理を行う、前記(10)に記載の情報処理装置。
(12)
前記第1の計画部は、前記所定の処理の進捗に基づいて、前記一以上の前記第2の計画部のうちの少なくとも一つに対応する状態を変更する、前記(10)または(11)に記載の情報処理装置。
(13)
前記一以上の前記第2の計画部をさらに備え、
前記一以上の前記第2の計画部の各々は、前記行動の計画に関する、前記所定の処理とは異なる処理を行う、前記(10)~(12)のいずれか一項に記載の情報処理装置。
(14)
前記第1の計画部は、さらに、前記一以上の前記第2の計画部の各々に対応する状態の組み合わせ、または、前記所定の処理の進捗に基づいて、前記第1の計画部よりも下位の一以上の第3の計画部のうちのいずれかに対して、当該第3の計画部に対応する処理の実行を制御するための第2の制御情報を通知する、前記(13)に記載の情報処理装置。
(15)
前記第1の計画部は、前記一以上の第3の計画部の各々から、当該第3の計画部の状態が変更したことを示す情報、または、当該第3の計画部に対応する処理の進捗を示す情報を受信し、
前記第1の計画部は、さらに、受信した当該第3の計画部の状態が変更したことを示す情報、または、受信した当該第3の計画部に対応する処理の進捗を示す情報に基づいて、前記所定の処理を行う、前記(14)に記載の情報処理装置。
(16)
前記一以上の第3の計画部は、前記第1の計画部よりも一つ下の階層に位置し、
前記一以上の第3の計画部をさらに備え、
前記一以上の第3の計画部の各々は、前記行動の計画に関する、前記所定の処理とは異なる処理を行う、前記(14)または(15)に記載の情報処理装置。
(17)
前記第1の計画部は、前記一以上の前記第2の計画部の数以上の複数のサーバと、
前記所定の処理を行う処理部と、
前記一以上の前記第3の計画部の数以上の複数のクライアントと、を含み、
前記複数のサーバのうちの一以上のサーバの各々は、前記一以上の前記第2の計画部のうち、それぞれ異なる一つの前記第2の計画部に対応する状態を保持し、かつ、当該状態を変更した場合には、当該状態を変更したことを示す情報を、当該状態に対応する前記第2の計画部へ通知し、
前記複数のクライアントのうちの一以上のクライアントの各々は、前記一以上の前記第3の計画部のうち、それぞれ異なる一つの前記第3の計画部に対して、当該第3の計画部に対応する処理の実行を制御するための制御情報を通知する、前記(16)に記載の情報処理装置。
(18)
前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、当該第2の計画部に対応する状態を変更した場合には、当該第2の計画部に対応する状態を変更したことを示す情報をさらに記憶部に出力し、
前記記憶部に格納された前記状態を変更したことを示す情報に基づいて、前記第1の計画部を含む複数の計画部の状態の変更の履歴情報が表示部に表示される、前記(16)または(17)に記載の情報処理装置。
(19)
複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理をプロセッサが行うことと、
前記状態を変更した場合には、状態を変更したことを示す情報を上位の第2の計画部へ通知することと、
を含み、
前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含む、情報処理方法。
(20)
コンピュータを、
複数の種類の所定の状態間で状態を変更しながら、行動の計画に関する所定の処理を行う第1の計画部、
として機能させるためのプログラムであって、
前記状態を変更した場合には、前記第1の計画部は、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知し、
前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含む、プログラム。
10 ロボット
20 端末
22 通信網
100 行動計画部
102、104、106 計画部
150 制御部
160 通信部
162 センサ部
164 記憶部
166 移動機構
1040 サーバ
1042 ステートマシン
1044 処理部
1046 クライアント

Claims (16)

  1. 複数の種類の所定の状態間で状態を変更しながら、占有格子地図および自己位置を用いて目的地までの移動経路情報を生成する処理である所定の処理を行う第1の計画部、を備え、
    前記状態を変更した場合には、前記第1の計画部は、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知し、
    前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含
    前記複数の種類の前記第1の状態の各々に対応する前記所定の処理の進捗度合いは、互いに異なり、
    前記複数の種類の所定の状態は、少なくとも一種類の、前記第1の状態とは異なる第2の状態をさらに含み、
    前記少なくとも一種類の前記第2の状態は、待機中であることを示す状態、異常終了中であることを示す状態、実行中断中であることを示す状態、および、正常終了したことを示す情報のうちの少なくとも一つを含み、
    前記第2の計画部は、前記第1の計画部よりも一つ上の階層に位置し、かつ、一以上存在し、
    前記第1の計画部は、前記一以上の前記第2の計画部の各々に対応する状態を保持し、かつ、前記一以上の前記第2の計画部の各々に対応する状態をそれぞれ前記複数の種類の所定の状態間で変更する、
    情報処理装置。
  2. 前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、当該第2の計画部に対応する状態を変更した場合には、当該第2の計画部に対応する状態を変更したことを示す情報を当該第2の計画部へ通知する、請求項に記載の情報処理装置。
  3. 当該第2の計画部に対応する状態を変更したことを示す情報は、変更後の、当該第2の計画部に対応する状態の識別情報を含む、請求項に記載の情報処理装置。
  4. 前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、当該第2の計画部に対応する現在の状態を、前記複数の種類の所定の状態のうち、当該現在の状態に関連付けられているいずれかの他の状態へ変更する、請求項に記載の情報処理装置。
  5. 前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、前記複数の種類の所定の状態のうち、当該第2の計画部に対応する現在の状態に関連付けられているいずれかの他の状態へ変更するための機能を用いることにより、当該現在の状態を当該いずれかの他の状態へ変更する、請求項に記載の情報処理装置。
  6. 前記第1の計画部は、さらに、前記第1の計画部に対して処理の実行を制御するための第1の制御情報を前記一以上の前記第2の計画部のうちの少なくとも一つから受信し、かつ、
    受信した前記第1の制御情報に基づいて前記所定の処理を行う、請求項に記載の情報処理装置。
  7. 前記第1の計画部は、さらに、前記一以上の前記第2の計画部の各々に対応する状態の組み合わせに基づいて前記所定の処理を行う、請求項に記載の情報処理装置。
  8. 前記第1の計画部は、前記所定の処理の進捗に基づいて、前記一以上の前記第2の計画部のうちの少なくとも一つに対応する状態を変更する、請求項に記載の情報処理装置。
  9. 前記一以上の前記第2の計画部をさらに備え、
    前記一以上の前記第2の計画部の各々は、前記行動の計画に関する、前記所定の処理とは異なる処理を行う、請求項に記載の情報処理装置。
  10. 前記第1の計画部は、さらに、前記一以上の前記第2の計画部の各々に対応する状態の組み合わせ、または、前記所定の処理の進捗に基づいて、前記第1の計画部よりも下位の一以上の第3の計画部のうちのいずれかに対して、当該第3の計画部に対応する処理の実行を制御するための第2の制御情報を通知する、請求項に記載の情報処理装置。
  11. 前記第1の計画部は、前記一以上の第3の計画部の各々から、当該第3の計画部の状態が変更したことを示す情報、または、当該第3の計画部に対応する処理の進捗を示す情報を受信し、
    前記第1の計画部は、さらに、受信した当該第3の計画部の状態が変更したことを示す情報、または、受信した当該第3の計画部に対応する処理の進捗を示す情報に基づいて、前記所定の処理を行う、請求項10に記載の情報処理装置。
  12. 前記一以上の第3の計画部は、前記第1の計画部よりも一つ下の階層に位置し、
    前記一以上の第3の計画部をさらに備え、
    前記一以上の第3の計画部の各々は、前記行動の計画に関する、前記所定の処理とは異なる処理を行う、請求項10に記載の情報処理装置。
  13. 前記第1の計画部は、前記一以上の前記第2の計画部の数以上の複数のサーバと、
    前記所定の処理を行う処理部と、
    前記一以上の前記第3の計画部の数以上の複数のクライアントと、を含み、
    前記複数のサーバのうちの一以上のサーバの各々は、前記一以上の前記第2の計画部のうち、それぞれ異なる一つの前記第2の計画部に対応する状態を保持し、かつ、当該状態を変更した場合には、当該状態を変更したことを示す情報を、当該状態に対応する前記第2の計画部へ通知し、
    前記複数のクライアントのうちの一以上のクライアントの各々は、前記一以上の前記第3の計画部のうち、それぞれ異なる一つの前記第3の計画部に対して、当該第3の計画部に対応する処理の実行を制御するための制御情報を通知する、請求項12に記載の情報処理装置。
  14. 前記第1の計画部は、前記一以上の前記第2の計画部の各々に関して、当該第2の計画部に対応する状態を変更した場合には、当該第2の計画部に対応する状態を変更したことを示す情報をさらに記憶部に出力し、
    前記記憶部に格納された前記状態を変更したことを示す情報に基づいて、前記第1の計画部を含む複数の計画部の状態の変更の履歴情報が表示部に表示される、請求項12に記載の情報処理装置。
  15. 複数の種類の所定の状態間で状態を変更しながら、占有格子地図および自己位置を用いて目的地までの移動経路情報を生成する処理である所定の処理を第1の計画部が行うことと、
    前記状態を変更した場合には、前記第1の計画部が、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知することと、
    を含み、
    前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含
    前記複数の種類の前記第1の状態の各々に対応する前記所定の処理の進捗度合いは、互いに異なり、
    前記複数の種類の所定の状態は、少なくとも一種類の、前記第1の状態とは異なる第2の状態をさらに含み、
    前記少なくとも一種類の前記第2の状態は、待機中であることを示す状態、異常終了中であることを示す状態、実行中断中であることを示す状態、および、正常終了したことを示す情報のうちの少なくとも一つを含み、
    前記第2の計画部は、前記第1の計画部よりも一つ上の階層に位置し、かつ、一以上存在し、
    前記第1の計画部は、前記一以上の前記第2の計画部の各々に対応する状態を保持し、かつ、前記一以上の前記第2の計画部の各々に対応する状態をそれぞれ前記複数の種類の所定の状態間で変更する、
    情報処理方法。
  16. コンピュータを、
    複数の種類の所定の状態間で状態を変更しながら、占有格子地図および自己位置を用いて目的地までの移動経路情報を生成する処理である所定の処理を行う第1の計画部、として機能させるためのプログラムであって、
    前記状態を変更した場合には、前記第1の計画部は、状態を変更したことを示す情報を、前記第1の計画部よりも上位の第2の計画部へ通知し、
    前記複数の種類の所定の状態は、複数の種類の、正常実行中であることを示す第1の状態を含
    前記複数の種類の前記第1の状態の各々に対応する前記所定の処理の進捗度合いは、互いに異なり、
    前記複数の種類の所定の状態は、少なくとも一種類の、前記第1の状態とは異なる第2の状態をさらに含み、
    前記少なくとも一種類の前記第2の状態は、待機中であることを示す状態、異常終了中であることを示す状態、実行中断中であることを示す状態、および、正常終了したことを示す情報のうちの少なくとも一つを含み、
    前記第2の計画部は、前記第1の計画部よりも一つ上の階層に位置し、かつ、一以上存在し、
    前記第1の計画部は、前記一以上の前記第2の計画部の各々に対応する状態を保持し、かつ、前記一以上の前記第2の計画部の各々に対応する状態をそれぞれ前記複数の種類の所定の状態間で変更する、
    プログラム。
JP2019544255A 2017-09-26 2018-06-18 情報処理装置、情報処理方法、および、プログラム Active JP7163925B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017184564 2017-09-26
JP2017184564 2017-09-26
PCT/JP2018/023149 WO2019064730A1 (ja) 2017-09-26 2018-06-18 情報処理装置、情報処理方法、および、プログラム

Publications (2)

Publication Number Publication Date
JPWO2019064730A1 JPWO2019064730A1 (ja) 2020-09-03
JP7163925B2 true JP7163925B2 (ja) 2022-11-01

Family

ID=65901522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019544255A Active JP7163925B2 (ja) 2017-09-26 2018-06-18 情報処理装置、情報処理方法、および、プログラム

Country Status (5)

Country Link
US (1) US20200198136A1 (ja)
EP (1) EP3690588B1 (ja)
JP (1) JP7163925B2 (ja)
CN (1) CN111133397B (ja)
WO (1) WO2019064730A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6973427B2 (ja) * 2019-02-15 2021-11-24 株式会社安川電機 通信システム、通信方法、及びプログラム
DE102021201212A1 (de) * 2021-02-09 2022-08-11 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Mehrzahl an Fahrfunktionen in einem automatisierten oder autonomen Fahrzeug

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006110707A (ja) 2004-09-14 2006-04-27 Sony Corp ロボット装置
JP2006298562A (ja) 2005-04-20 2006-11-02 Matsushita Electric Ind Co Ltd 搬送システムの制御方法および搬送システム
JP2010231808A (ja) 2010-06-16 2010-10-14 Autonetworks Technologies Ltd プログラム変更方法及びコンピュータプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4449372B2 (ja) * 2002-09-02 2010-04-14 ソニー株式会社 ロボット装置及びその行動制御方法
CN102637036A (zh) * 2012-05-08 2012-08-15 北京理工大学 一种复合式仿生四足机器人控制器
US10025306B2 (en) * 2012-10-02 2018-07-17 Nathan Bivans System and method for remote control of unmanned vehicles
KR101999231B1 (ko) * 2013-02-27 2019-07-11 주식회사 케이티 차량 콤포넌트 제어 유닛 및 차량 콤포넌트 제어를 위한 휴대용 단말
CN103317513B (zh) * 2013-04-17 2016-01-20 杭州职业技术学院 一种基于多cpu的网络化机器人控制系统
JP6868408B2 (ja) * 2017-01-31 2021-05-12 株式会社Screenホールディングス パラメータ管理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006110707A (ja) 2004-09-14 2006-04-27 Sony Corp ロボット装置
JP2006298562A (ja) 2005-04-20 2006-11-02 Matsushita Electric Ind Co Ltd 搬送システムの制御方法および搬送システム
JP2010231808A (ja) 2010-06-16 2010-10-14 Autonetworks Technologies Ltd プログラム変更方法及びコンピュータプログラム

Also Published As

Publication number Publication date
WO2019064730A1 (ja) 2019-04-04
EP3690588B1 (en) 2023-05-17
US20200198136A1 (en) 2020-06-25
CN111133397A (zh) 2020-05-08
EP3690588A4 (en) 2021-02-17
JPWO2019064730A1 (ja) 2020-09-03
CN111133397B (zh) 2023-10-03
EP3690588A1 (en) 2020-08-05

Similar Documents

Publication Publication Date Title
JP5924740B2 (ja) 実時間ミッションプランニング
EP3425849B1 (en) State control method and device
CN109131340A (zh) 基于驾驶员行为的主动车辆性能调整
Basu et al. Trust dynamics in human autonomous vehicle interaction: a review of trust models
JP2018527680A (ja) 階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム
JP2013527529A5 (ja)
JP7163925B2 (ja) 情報処理装置、情報処理方法、および、プログラム
CN106528327A (zh) 一种数据处理方法以及备份服务器
CN112416323B (zh) 控制代码的生成方法、运行方法、装置、设备及存储介质
Finzi et al. Model-based executive control through reactive planning for autonomous rovers
US20190308317A1 (en) Information processing apparatus and information processing method
Cleland-Huang et al. Extending MAPE-K to support human-machine teaming
CN104881307B (zh) 下载实现方法和装置
EP3907679B1 (en) Enhanced robot fleet navigation and sequencing
US10089159B2 (en) Processing non-spatial input by multiple program elements of a computer program executed on a computer
Al-Hussaini et al. Generating alerts to assist with task assignments in human-supervised multi-robot teams operating in challenging environments
Aissam et al. Cloud robotic: Opening a new road to the industry 4.0
US10275912B1 (en) Multi-dimensional visualization and resource evaluation system
Tsuda et al. Towards self-adaptation on real-world hardware: a preliminary lightweight programming framework
Khalid et al. Super-Convergence of Autonomous Things
Park et al. Collaborative goal distribution in distributed multiagent systems
Hutton Augmented reality interfaces for semi-autonomous drones
US20230059372A1 (en) Holographic interface for voice commands
US20220197304A1 (en) Systems and methods for centralized control of a fleet of robotic devices
Park et al. A Middleware Framework for Leveraging Local and Global Adaptation in IT Ecosystems.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220610

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: 20220920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221003

R151 Written notification of patent or utility model registration

Ref document number: 7163925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151