JP2014504958A - 物理的および仮想的資源の管理プログラムを備えるヒューマノイドロボット、使用方法、およびプログラミング方法 - Google Patents

物理的および仮想的資源の管理プログラムを備えるヒューマノイドロボット、使用方法、およびプログラミング方法 Download PDF

Info

Publication number
JP2014504958A
JP2014504958A JP2013543610A JP2013543610A JP2014504958A JP 2014504958 A JP2014504958 A JP 2014504958A JP 2013543610 A JP2013543610 A JP 2013543610A JP 2013543610 A JP2013543610 A JP 2013543610A JP 2014504958 A JP2014504958 A JP 2014504958A
Authority
JP
Japan
Prior art keywords
resources
resource
action
actions
subset
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.)
Granted
Application number
JP2013543610A
Other languages
English (en)
Other versions
JP6144628B2 (ja
Inventor
マゼル、アレクサンドル
ウーサン、ダヴィド
モンソー、ジェローム
Original Assignee
アルデバラン ロボティクス エス、ア
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 アルデバラン ロボティクス エス、ア filed Critical アルデバラン ロボティクス エス、ア
Publication of JP2014504958A publication Critical patent/JP2014504958A/ja
Application granted granted Critical
Publication of JP6144628B2 publication Critical patent/JP6144628B2/ja
Expired - Fee Related 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Manipulator (AREA)

Abstract

本発明は、物理的および仮想的資源のための管理プログラムを備えるヒューマノイドロボットと、使用方法と、管理プログラムをプログラムするための方法とに関する。資源(140、1410、1420)は行動(130、1310、1320)を実行するように要求される。資源と行動は、オブジェクトツリーで随意的に定義される階層的サブセットに組織化される。行動による資源の使用の競合は局所的に解決され、資源を予約する行動は、ユーザに、行動を予約することにより資源をロックする選択肢と、第1の他の要求する行動に賛成して解放する選択肢と、進行中のまたは休止の行動の部分的実行の選択肢と、を提示するようにプログラムされる。ソフトウェアツールキットは、行動のプログラミングを可能にする開発環境においてグラフィック的やり方で本発明の資源管理プログラムをプログラムすることを可能にする。

Description

本発明はヒューマノイドロボットの分野に属する。より正確には、本発明は、特には、ヒューマノイドロボットにより実施される行動をヒューマノイドロボットの何人かのユーザが独立にプログラムする際のヒューマノイドロボットの資源の管理に適用される。
ロボットは、人間の外観および機能性(例えば、頭、胴、両腕、両手、両脚、両足など)のいくつかの属性を有する限りヒューマノイドと称され得る。外観以外では、ヒューマノイドロボットが達成できる機能は、運動を行い、話し、「推論する」その能力に依存する。ヒューマノイドロボットは四肢または頭を使って歩行し、身振りをすることができる。ヒューマノイドロボットが行うことができる身振りの複雑さは引き続き増加している。互いに連携されたまたは話すことと連携された身振り(例えば上げられる腕、耳障りなトーンで話されるおどし文句)とロボットの一部(特には、そのLED)により発せられる信号は、ロボットの「感情」(例えば怒り)を伝達するロボットの行動の表現である可能性がある。本発明を実施するための概念と手段が開発されたプラットホームであるいくつかのロボット(特にはNAOロボット)は、何人かのユーザに、互いに独立して行動を開発する可能性を提供する。これらの可能性は、Choregrapheソフトウェアなどのユーザ言語を採用する開発ツールにより著しく高められる。その結果、付随的に使用されなければならない資源の可用性の同期を保証するとともに一定数の機能の実行の優先度を管理するために特にはロボットまたはロボット群のハードウェアおよびソフトウェア資源の使用の競合を回避するように、異なるユーザによりプログラムされる様々な行動の一貫性をその実行時にいかに保証するかを知る問題が発生する。
モータの保護を保証するとともにいくつかの行動によるそれらの同時使用を禁止することがロボット工学では伝統的である。これは、この資源の管理の一般的問題に対する第1のタイプの解決策であるが一般的解決策ではない。特に、このタイプの解決策は、異なる資源の同期によりもたらされる問題に対するまたは資源の解放の問題に対するいかなる対応も提供しない。
他の技術分野において長期にわたる資源の割り当てのこれらの問題を解決するために、特には制約ベース論理プログラミングタイプのアルゴリズムを使用することにより資源の割り当てに際し最適化機構を実施することが伝統的である。しかし、これらのアルゴリズムは計算資源という意味で大食いであるので、直ちに消費されない資源の割り当ての計算に適する。具体的には、これらは、複数の行動を有するヒューマノイドロボット上のそのごく少数の行動だけに使用できるかもしれない。
したがって、独立処理に対するハードウェアまたはソフトウェア資源の割り当てまたは他のタイプの資源の割り当ての問題を解決できるようにするいかなる解決策も従来技術には存在しない。
本発明は、局所的または非集中的解決機構と結合された資源の階層的定義を提供することによりこの問題を解決する。
この目的のため、本発明は、複数の行動の実行に割り当てることができる複数の資源を管理するためのサブモジュールを含む搭載管理モジュールの制御下で複数の行動を実行することができるヒューマノイドロボットであって、複数の行動と複数の資源はそれぞれ階層的サブセットに組織化され、資源を管理するためのサブモジュールは、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行のための複数の資源の少なくとも1つのサブセットに属する少なくとも1つの資源を予約するようにプログラムされることができ、予約は複数の行動のサブセットにより継承されるおよび/または複数の資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とするヒューマノイドロボットを開示する。
有利には、複数の資源を管理するためのサブモジュールは、第1の行動を実行中に、以下の行為、すなわち、資源を第2の行動に利用可能にすることに対する拒絶、第2の行動に対し資源を直ちに利用可能にすること、第2の行動に対し資源を利用可能にすることに続く少なくとも1つの追加の行為の実行、第2の行動に対し資源を利用可能にすることに続く現在実行中の第1の行動の休止、のうちの少なくとも1つを有する第2の行動による資源要求に応答するようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、第2の行動により要求された資源を利用可能にすることに対する拒絶の行為が実行されると、第2の行動が再び、同様に所定の終了期限の終了まで所定の頻度に従って利用可能にする要求を実行するように、プログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、少なくとも2つの行動が同一の資源を利用可能にする要求を実行すると、少なくとも2つの行動の第1の行動は後者が解放されると同じ資源の予約の優先度を有するようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、少なくとも1つの行動が少なくとも2つの資源を利用可能にする要求を実行すると、少なくとも2つの資源は単一資源として処理される新しい資源にグループ化され、上記グループ化は、同一の資源要求を実行するすべての行動に対して一意的やり方で順序付けられるようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、親行動がそれを使用することなく少なくとも1つの資源を予約すると、少なくとも1つの資源は親行動の子行動により使用されることができるようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、第1の子行動が親行動により予約された資源を使用すると、同じ親の第2の子行動は、同資源を使用することができるように第1の子行動により資源を利用可能にする要求を行わなければならないようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、親行動がその予約された資源を解放すると、同資源は親の任意の子行動により解放されなければならないようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、複数の資源のサブセットが可用性を下げたとき、可用性の低下の関数として定義される仮想行動のための資源の予約を実行するようにプログラムされる。
有利には、複数の資源を管理するためのサブモジュールは、可用性の低下の状態の進展の関数として予約を解放するようにプログラムされる。
有利には、複数の資源は、少なくとも1つの行動の実行に必要な予約が行われるように所定の状態でなければならない少なくとも1つの状態変数を含む。
有利には、複数の資源は少なくとも1つの累積資源(accumulative resource)を含み、複数の資源は、後者の使用率が少なくとも1つの資源を使用するようにプログラムされた行動に割り当てられることを特徴とする。
有利には、複数の資源は少なくとも1つの必須資源と1つの非必須資源を含み、任意の行動は、必須資源が利用可能でなければ実行することができない少なくとも1つの必須資源であって、少なくとも1つの非必須資源を呼び出さなければならなければたとえ後者が利用可能でなくても実行することができる少なくとも1つの必須資源を呼び出さなければならない。
本発明はまた、搭載管理モジュールの制御下で複数の行動を実行することができるヒューマノイドロボットの資源を管理する方法を開示する。本方法は、行動の実行に割り当てることができる複数の資源を予約する工程を含み、複数の行動と複数の資源はそれぞれ階層的サブセットに組織化され、予約工程は、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、予約は複数の行動のサブセットにより継承されるおよび/または複数の資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする。
本発明はまた、コンピュータ上で実行されると本方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムを開示する。上記プログラムは、搭載管理サブルーチンの制御下で複数の行動を実行することができるヒューマノイドロボットの資源の管理を可能にするように適合化され、上記サブルーチンは、複数の行動の実行に割り当てることができる複数の資源の予約のための機能を実行することができるモジュールを含む。本プログラムは、複数の行動と複数の資源がそれぞれ階層的サブセットに組織化され、予約機能が、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に複数の資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、予約は複数の行動のサブセットにより継承されるおよび/または複数の資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする。
有利には、複数の行動と複数の資源のサブセットはオブジェクトのクラスとして定義される。
本発明はまた、ヒューマノイドロボットの資源を管理するためのモジュールを開発する方法とこの方法を実施するためのコンピュータプログラムとを開示する。
本発明はさらに、同一のプロセッサ上で並行して実行する処理を有するコンピュータシステムにおいて頻繁であるロックアップ状況を回避するという利点を提供する。本発明はまた、状態に対応する仮想資源を含む多種多様の資源を管理できるようにし、その凍結は、ロボットのロックアップまたは危険な状況を生じる傾向があるであろう行動の起動を回避できるようにする。
本発明は、いくつかの例示的実施形態の以下の説明とその添付図面からより良く理解され、その様々な特性と利点が浮かび上がることになる。
本発明がその実施形態のうちのいくつかにおいて実施される機能アーキテクチャの線図である。 その実施形態のうちのいくつかにおいて本発明の実施を可能にするコンピュータプログラムの画面図である。 本発明のいくつかの実施形態における、利用可能資源のリストの形式とボックスに基づくグラフィックプログラミングの形式の資源管理方式をそれぞれ表す。 本発明のいくつかの実施形態における、機能流れ図の形式とポップアップグラフィックメニュー形式で様々なタイプの資源を同期させるための機構をそれぞれ表す。 本発明のいくつかの実施形態における、機能流れ図の形式とポップアップグラフィックメニュー形式でクリティカル資源を予約するための機構をそれぞれ表す。 本発明のいくつかの実施形態における、ポップアップグラフィックメニュー形式とボックスに基づくグラフィックプログラミングの形式の資源の予約の継承機構をそれぞれ表す。 本発明のいくつかの実施形態における、完全なロボット、胴ロボット、利用可能/利用不能資源のリストをそれぞれ表すことにより、存在しない資源の管理の問題事項を示す。 本発明のいくつかの実施形態における、機能流れ図形式(図8a)で、競合の様々な終了オプションに対応するポップアップグラフィックメニューの形式(図8b−e)で、競合を解決するためのいくつかの方式をそれぞれ示す。 本発明のいくつかの実施形態における、ポップアップグラフィックメニュー形式の状態資源(state resource)の使用を示す。 本発明のいくつかの実施形態における、共有累積資源の使用の機能流れ図を表す。
図1は、本発明がその実施形態のうちのいくつかにおいて実施される機能アーキテクチャの線図である。根底にある物理的アーキテクチャは、その例示的実施形態が以下に与えられるヒューマノイドロボット110と、任意選択的に行動160を生成するためのソフトウェアワークショップを備えた遠隔ワークステーション150と、からなる。
商標NAO(商標)を有するヒューマノイドロボットが知られている。このようなロボットは、特に2009年10月15日公開の国際公開第2009/124951号パンフレットに開示されている。このプラットホームは、本発明に至る改良のためのベースとして役立った。以下の説明では、このヒューマノイドロボットはこの総称用語またはその商標NAO(商標)のいずれかで示され得るが、これにより参照の一般性が変更されることはない。このロボットは、センサと関節を駆動するアクチュエータとを制御するための約2ダースの電子カードを含む。関節は通常、少なくとも2つの自由度したがって2つのモータを有する。各モータは角度の意味で駆動される。関節はまた、いくつかの位置センサ、特にMRE(磁気回転符合器:Magnetic Rotary Encoder)を含む。電子制御カードは市販のマイクロコントローラを含む。これは例えばMicrochip社のDSPIC(商標)である可能性がある。これはDSPに結合された16ビットMCUである。このMCUは1ミリ秒のループ連動化サイクル(looped slaving cycle)を有する。ロボットはまた、他のタイプのアクチュエータ、特にその色と強度がロボットの感情を伝えることができるLED(発光ダイオード)を含むことができる。後者はまた、他のタイプの位置センサ、特には慣性ユニット、FSR(接地圧センサ)を含むことができる。
頭は、ロボットの知能、特にロボットに割り当てられた使命をロボットが達成できるようにするハイレベル機能を実行するカードを含む。カードのプロセッサは市販のx86プロセッサである可能性がある。AMD社のGeode(商標)(32ビット、500MHz)などの低消費電力プロセッサが好適なやり方で選択されることになる。カードはまた、一組のRAMとフラッシュメモリを含む。このカードはまた、通常はWiFi、WiMaxトランスミッションレイヤ上で、任意選択的にはVPN内の任意選択的にカプセル化された(encapsulated)標準プロトコルを有するデータの移動体通信用公衆ネットワーク上で、外部(行動のサーバ、他のロボットなど)とロボットとの通信を管理する。プロセッサは通常、標準OSにより駆動され、これにより通常のハイレベル言語(C、C++、Python等)、またはハイレベル機能をプログラムするためのURBI(ロボット工学のための特殊なプログラミング言語)などの人工知能用特定言語を使用できるようにする。
別のカードがロボットの胴内に収容される。これは、頭のカードにより計算される命令の関節制御カードへの送信を保証するコンピュータが位置する場所である。このカードのコンピュータもまた市販のプロセッサである。これは、100MHzクロックのARM9(商標)タイプの32ビットプロセッサであると有利である可能性がある。プロセッサのタイプ、オン/オフボタンに近いその中央位置、電源の制御へのそのリンクは、ロボットの電源(アイドルモード、緊急停止等)を管理するのに非常に好適なツールとなる。カードはまた、一組のRAMとフラッシュメモリを含む。
ロボットの知能は、NAOQIの異名をもつ真のオペレーティングおよびロボットインターフェース管理システム120を構成する特定のソフトウェアアーキテクチャに従ってインストールされる。このアーキテクチャは、特には2009年10月15日公開の国際公開第2009/124955号パンフレットに開示されている。このアーキテクチャを構成するソフトウエアモジュールは、ロボットとPCまたは遠隔場所との間の通信を管理するためのシステム機能と、本発明を実施するために必要なソフトウェアインフラストラクチャを提供するソフトウェアを交換するためのシステム機能とを含む。このアーキテクチャは、移動、一肢を動かす、センサの信号を解釈する、アクチュエータを介し信号を送るなどのロボットの基本機能を管理するために必要な機能を含む。このアーキテクチャはまた、ロボットのユーザが、ダンスステップ、スピーチ、または感情などの複雑な連携された身振り(これらは通常、身振り、スピーチ、LEDなどのアクチュエータによる信号の発射の組合せである)を含む行動(身振りでもよい)130、1310、1320のロボットによる実行を制御するためのソフトウエアプログラムを後者の内蔵メモリ内にインストールできるようにする。これらの行動の実行に関し、ロボットは資源140、1410、1420を呼び出さなければならなくなる。本発明は、複数の行動の葛藤の無い実行を可能にするように資源を管理するための方式に関係する。それは、実質的に、資源を管理するためのモジュールすなわち「資源管理プログラムサーバ(Resource manager server)」1210において実施される。このモジュールの詳細な動作については本明細書において以降説明する。
その目的言語がC、C++、Python、またはUrbiである任意のソフトウェアを使用することにより、ワークステーション150などの遠隔端末装置上でロボットにより実行される行動をプログラムすることが可能である。しかし、本発明を実施するためには、ヒューマノイドロボットの行動を編集およびプログラムするための特定の機能アーキテクチャが有利には使用されることになる。このようなアーキテクチャについては、2010年5月25日出願の欧州特許出願第2010/057111号明細書により説明されている。上記アーキテクチャを実装できるようにするヒューマノイドロボット160の行動を編集しプログラムするためのソフトウェアワークショップは商標Choregraphe(商標)を有しており、上記特許文献の一般性を損なうことなくその総称または商標のいずれかで呼ぶことがある。このアーキテクチャは、その時間次元を有する事象によりトリガされる指令の表現を容易に実現できるようにするので、ロボット行動を生成するのに特に有効である。事象によりトリガされる指令は、Choregrapheでは「ボックス」または「制御ボックス」により表される。ボックスは、この後定義される以下の要素の1つまたは複数を含むことができるツリー状のプログラミング構造である。
−フレームの「タイムライン」または時間軸、
−「図表」または流れ図、
−スクリプト。
制御ボックスは通常、事象情報項目を1つのボックスから別のボックスへ通常は送信する接続部により相互にリンクされる。いかなるボックスも、ロボットの行動/動きのシナリオを初期化する「ルートボックス」またはルートへ直接または間接的にリンクされる。
フレームの時間軸は、フレームの時間軸すなわちタイムラインが挿入されるボックス内に定義されたロボットの行動と動きとが受ける時間的制約を表す。したがってタイムラインはボックスの行動と動きの同期を行う。タイムラインは、毎秒当たりのフレームの数すなわち毎秒フレーム数(FPS:Frames Per Second)として定義される進捗速度に関連付けられたフレームに細切れにされる。各タイムラインのFPSはユーザによりパラメタータ化可能である。デフォルト設定では、FPSは任意の値(例えば、15FPS)で固定することができる。
タイムラインは次のものを含むことができる。i)それぞれが1つまたは複数の行動キーフレーム(Behavior Key Frames)または「主行動フレーム(main behavior Frame)」を含む1つまたは複数の行動レイヤ(Behavior Layer)であって、上記行動キーフレーム自体が、行動レイヤまたはタイムラインを通過することなく、実際はより高いレベルのボックスにも直接取り付けることができるボックスの組である1つまたは複数の図表または「流れ図」を含むことができる、行動レイヤ、ii)それぞれが、1つまたは複数の運動画面(Motion Screen)を含むことができる、1つまたは複数の運動キーフレームまたは「主運動フレーム」。
流れ図は後で詳述されるように相互に接続された一組のボックスである。ボックスのそれぞれは次に、新しい行動または運動レイヤが取り付けられる他のタイムラインを含むことができる。
スクリプトはロボットにより直接実行可能なプログラムである。本発明の枠組み内では、スクリプトは好ましいやり方でC++言語で書かれる。スクリプトを含むボックスはいかなる他の要素も含まない。
ソフトウェアは、Windows(商標)、Mac(商標)、またはLinux(商標)オペレーティングシステムを使用するPC上またはパーソナルコンピュータ型の別のプラットホーム上にインストールすることができる。
本発明の枠組み内では、「資源管理クライアント」の異名をもつChoregrapheモジュールであると考えられ得る特定のChoregraphe画面1610が、資源管理プログラムサーバモジュール1210上に埋め込まれるスクリプトを生成することによりNAOなどのヒューマノイドロボットの資源を管理するための規則のプログラミングを可能にする。互いの中に含むことができるChoregrapheボックスの設計は、本発明の実施に特に有利である。実際、親行動として記載することができる図1のより高いレベルの行動130は、親行動のボックス内に含まれるボックスによりグラフィック的(予めプログラムされたボックスと相互接続部のドラッグアンドドロップ)に符号化することが可能な例えば2つの子行動1310、1320を含み得る。例えば左脚資源と右脚資源を示す基本資源1410、1420は下肢単一資源140にグループ化することができる。左脚と右脚自体は、それぞれが腿、膝、下肢脚、足首、足を含む複合資源であり、これらのサブセットのそれぞれ自体が1つまたは複数のモータ、1つまたは複数のセンサ、1つまたは複数のアクチュエータを含むことができる。Choregrapheは、行動が必要とするものが利用可能であると仮定することにより、タイムラインを手段として資源の同期を管理する。Choregrapheは、本発明の資源管理プログラムサーバが無ければ、資源を利用可能にすることを管理しない。
モータなどの低レベル資源を利用可能にすることに関する競合は、「相互排除」すなわちミューテックス(mutex)タイプの在来型アルゴリズムにより解決することができる。このようなアルゴリズムは、2つの同時処理により、このようにして管理される資源の獲得を排除する一般的な特徴を有する。このタイプのアルゴリズムは、特に優先度と待機を管理する機構によって異なる。しかし、このようなアルゴリズムは、処理が複合資源にアクセスしなければならないとき、より高いレベルの競合の簡単な解決を可能にしない。さらに、この問題に対する解決策は、ロボットが人間の外観を有するためにロボットの行動の必然的に非常に短い時定数と、アルゴリズムのCPU消費電力と、ロボット上に埋め込まれた計算資源の弱さとを考慮した資源間割り当て最適化アルゴリズムの行使によっては考えられ得ない。
本発明の枠組み内で解決される資源管理問題に関する別の困難さは、何人かのユーザが互いに独立して行動をプログラムし、それぞれが同一のロボット(当然、そうする権利を与えられているという条件で)上にその行動をインストールできるということである。
本明細書を通して説明されるように、行動および資源のアーキテクチャとこれらのエンティティ間の関係を管理するための機能とは、特に本発明の枠組み内で、以下のことを可能にする:資源競合を回避すること(2つの行動が同じモータを同時に使用できない、同一のボールを操作する2つの行動は同時に実行できない);異なる資源の使用を同期すること(こんにちはと言う、腕とオーディオが使用される;これらの2つの資源は一貫性のある行動を得るために同時に利用可能でなければならない);様々なロボットモデル(例えば、腕を持たなく、脚と車輪等を有するロボット)と欠陥があるまたは低下(省エネ)モードで動作中の四肢を有するロボットを管理すること;マルチスレッドシステム(いくつかの処理が並行して実行される)における資源の割り当てに関するデッドロックまたはロックアップの状況を回避すること;競合解決機構を有すること;クリティカル行動のための資源の可用性を保証すること;どんな行動でもロボットを保護すること(例えば転倒しないこと)。
資源管理プログラムサーバ1210は資源の可用性を保証する。資源管理プログラムサーバ1210は、オブジェクト開発のフレームワーク内に階層的データ構造を有し、親オブジェクトまたは行動は資源を予約することができ、次に子行動は資源を得ることを保証される。資源管理プログラムサーバ1210はまた、競合を速やかに解決できるようにする。この解決策は非集中的/局所的であり、これにより制約解決エンジンの数学的およびアルゴリズム的複雑さ(計算時間)を回避できるようにする。競合を発生するものがその競合を解決し、資源管理クライアントはいかなる計算も行わない。
資源管理プログラムサーバは、マルチスレッドシステムにおけるロックアップ/デッドロックを回避できるようにする機構を含む(例えば、一群の資源の共同管理−すなわちすべてのモータを単一資源すなわち1つのモータとして共同管理)。システムはまた包括的であり、機能性と資源がネスト化される他のシステムと対照的に、資源管理プログラムは任意のタイプの資源を管理することができ、機能性に拘束されない。従来の手法と、本発明の資源管理プログラムがそうであるように追加の抽出レベル(これらの様々な資源の同期)を許容することなく機能性内のデータの正確な項目を保護するセマフォ/ミューテックスと、を比較することが可能である。
図2aと図2bは、その実施形態のうちのいくつかにおいて本発明の実施を可能にするコンピュータプログラムの画面図である。
図2aでは、Choregraphe画面が表される。Choregrapheモジュール160はロボット上に行動130,1310,1320および行動により使用される資源140、1410、1420をロードし、資源を予約するための規則は、本明細書の後で詳述される方式に従って資源管理プログラムクライアント1610において予め定義される。資源管理プログラムサーバ1210は資源管理プログラムクライアントに対応するロボット上の相手方である。
Choregrapheが資源を参照するとき、Choregrapheはロボットのサーバ(またはPC上に模擬されたロボットから)からの資源を要求する。実行毎に、Choregrapheコードがロボットに転送される。
図2bに表された初期設定ファイルは、ロボットの一組の資源を列挙する。ロボットは有利には、クライアント1610の要求があるとステーション150へ資源のリストを戻すウェブサーバ1220を含む。上記リストは資源管理プログラムクライアント1610において閲覧することができる。上記リストはChoregraphe(ロボットのクライアントChoregraphe)またはウエブブラウザ(ロボットのクライアントウェブページ)により閲覧することができる。しかし、本発明はChoregrapheまたは資源管理プログラムクライアントモジュール1610に頼ることなく完全に実施することができるということに留意されたい。この場合、サーバステーション150はNAOQIモジュール120により解釈される行動をロボットへ送り、サーバ1220上の資源のリストを獲得し、行動の階層化と併せて資源のグループ化は資源管理プログラムサーバ1210において行われる。
したがって、資源管理プログラムサーバ1210は利用可能な一組の資源を定義するロボットのモジュール(NAOQIのサブセット)である。行動は行為(運動、オーディオ、映像)を含む。行動は、C++またはPythonで符号化される、またはグラフィック的に実行される(PythonまたはC++隠蔽(encapsulation))。ロボットのウェブサーバは、ブラウザ内に、資源のリストと、資源を使用する行動と、資源の可用性を待つ行動と、を戻すことができる。資源は階層的であるので、ユーザは、ロボットの最上部、最下部、脚を、これらのパーツのそれぞれに位置するモータの詳細を知ることなしに容易に占有することができる。
API(アプリケーションプログラミングインターフェース:Application Programming Interface)は、C++、python(ラップC++(wrapped C++))、またはグラフィック言語(C++またはpythonの隠蔽)で資源管理プログラム1210を使用できるようにし、また以下の指令を発生できるようにする。
−単一資源を獲得するまたは待つ、すなわち空(void)waitForResource(const string& resourceName、const string& ownerName、const string& callbackName、const int& timeoutSeconds);
−行動間の階層的情報を与える一方で単一資源を獲得するまたは待つ(以降の本明細書では、資源を予約する行動は「オーナ(Owner)」と呼ばれる)、すなわちvoidwaitForLocalResourcesTree(const vector<string>& resourceName、const class AL::ALPtr<class AL::ALHierarchyOwner>& treeOwnerPtr、const string& callbackName、const int& timeoutSeconds);
−資源を解放する、すなわちvoidreleaseResource(const string& resourceName、const string& ownerName)。
図3aと図3bは、本発明のいくつかの実施形態における、利用可能資源のリストの形式とボックスに基づくグラフィックプログラミングの形式の資源管理方式をそれぞれ表す。
これらの図は、単一資源上の競合の管理に適用される処理動作の原理を示す。
単一資源(例えばモータ)の場合、これはいかなるデッドロックも回避するようにする。資源のリストだけがミューテックスタイプのアルゴリズムの助けを借りて保護され、このミューテックスは資源追加または削除に使用される。(資源の解放を待つ)競合自体はスレッドセーフであるが保護されない。ミューテックスはアプリケーションをスレッドセーフ(いくつかのスレッドを有する並列システム上でアクセス可能)にするために標準ライブラリを保護するシステムである。一方、これらはデッドロックを防止しない。したがって、我々は資源のリストを保護するためにミューテックスだけを使用する。競合解決策はロックアップシステム(すなわちミューテックス)を呼び出さないが、スレッドセーフである。
資源の予約の際の競合解決策は以下の原理を適用することにより行われる。i)マルチスレッドシステムでは、2人のオーナが同時に同じ資源を獲得することができない。したがって、我々は、ミューテックスによりロックされた資源を取得する非無効化試み(non−disabling attempt)であるトライロック(try−lock)を有する要求を保護する。ii)2人のオーナが(OSのスケジューラにより定義された)全く同時に同じ資源を要求すると、すべてのオーナは競合を解決しなければならないが、資源が自由になった時にその資源を最初のオーナが取得する(早い者勝ち)。
このタイプの例は、図3aの資源のリストと、図3bのボックスと、Choregraphe依存関係を定義するための画面の図とにより示される。
この例では、MoveHead1が資源を保有する。MoveHead2は資源を待つ。MoveHead3もまた資源を待つであろうが、MoveHead2はそれを最初に取得するだろう(早い者勝ち)。
資源の割り当てはスマートポインタにより行われる(インテリジェントポインタは、指示された資源上で実行されこれによりミューテックスの使用を回避するカプセル化コード(encapsulated code)を含む(割り当てはOSにとってアトミックでなければならない))。
2つのスレッドがA=B(または示されたアプリケーションの場合にはOwnerResourceA=new_Owner)を実行している場合、コードラインA=Bはミューテックスにより保護されなければならなく、そうでなければアプリケーションは2つのスレッドがそれを実行した瞬間に妨げられる。今や、我々はこの競合を解決するためにミューテックスを使用したくない。しかし、ある特定の状況では、A=Bは、特にはAとBが別のスレッドによるA=Bの遮断を決して引き起こす(およびアプリケーションをクラッシュさせる)ことができないアトミックタイプ(整数、浮動型等の)であれば、保護される必要はない。これが、OwnerResourceA=new_OwnerにおいてownerResourceAとnew_Ownerが整数(ポインタ)である理由である。したがって、いかなるミューテックスも存在しない状況では、我々のアプリケーションはロックアップ(デッドロック)することができない。
このときアルゴリズムは以下のタイプである。
資源ヘッド(Resource−head)を待つ
トライロックによる同時要求の検出
競合の解決(待つまたはタイムアウト)
自分がトライロックによる最初の入力者ならば、
point−to−my−old−owner=point−to−my−new−owner
そうでなければさらに競合を解決する。
Choregrapheでは、MoveHeadボックスが使用される。2つの頭移動は並列であり、それらのそれぞれは同じモータを参照する。ここで、ロックオプションは、他の要求者が、それらのタイムアウトの限界を待つスタンバイ状態に置かれることになることを意味する。
図4aと図4bは、本発明のいくつかの実施形態における、機能流れ図の形式とポップアップグラフィックメニュー形式で様々なタイプの資源を同期させるための機構をそれぞれ表す。
これらの図は、同一のオーナ(行動、オブジェクト)が、実行できるように利用可能でなければならないいくつかの資源を要求する場合を示す。オーナはChoregrapheボックスであり得るが、階層的特性も保有するC++オブジェクト(オブジェクト指向の意味内で)でもよい。
オブジェクトまたは行動は待機して待つまたは既に資源を予約している。オーナがいくつかの資源を要求すると、サブ資源を参照する新しい一意的資源が生成される。この新しい資源は、各資源(例えばモータ)と資源群を同じ様に処理できるようにする(同じタイムアウト)。図4aの機能流れ図により示されたこの機構は、特に、単一の資源が利用可能でなければすべての資源を待つことを停止できるようにする。本発明の方法はこうしてロックアップ(デッドロック)を回避する。
一方、次のアルゴリズムはうまくいかないであろう。
seize(List_resources)
For each resource
request_and_seize the resource
図4bに示すように、Choregrapheでは、いくつかの資源の選択が引き受けられ、これによりwaitResources方法(資源のリスト、オーナ、コールバック、タイムアウト)の呼出しと当初選択された資源のリストを参照する新しい一意的資源の生成とにつながる。
さらに、資源のリストはいくつかの不必要なタイムアウトを回避するように順序付けられると有利である。資源Aがオーディオ信号処理(Audio−TTS)であり資源Bが左腕のピッチング運動(Arm−Left arm−ShoulderPitch)である図4bに示す例では、
オーナ1(スレッド1)はA+Bを要求する。
オーナ1はAを獲得し、Bを待つ。
オーナ2(スレッド2)はB+Aを要求する。
オーナ2はBを獲得し、Aを待つ。
資源のソーティング無しでは、いかなる制御もロボットへ送られない。ソーティングにより、
オーナ1(スレッド1)はA+Bを要求する。
オーナ1はAを獲得し、オーナ1はBを獲得し、こうして指令の実行を可能にする。
オーナ2(スレッド2)はA+Bを要求する。
オーナ2は、タイムアウトまで、またはオーナ1による資源A+Bの解放までAを待つ。
図5aと図5bは、本発明のいくつかの実施形態における、機能流れ図の形式とポップアップグラフィックメニュー形式でクリティカル資源を予約するための機構をそれぞれ表す。
クリティカル行動(例えば電池の充電)のためにいくつかの資源が利用可能でなければならない。この可用性は資源のオブジェクト継承により保証される。親オブジェクトまたは行動は資源を予約することができる。次に、これらの資源は子達に利用可能となり、一方、子達はこれらの資源について争うことになる。
図5aの機能流れ図に示したように、オーナ1は資源を必ずしも使用しなく、子オブジェクトまたは行動のためにそれらを占有する。資源管理プログラムのアルゴリズムは、すべての子に、すべての子自身がその資源を解放するとその資源を放棄ようにさせる。特にことわらない限り、子との競合を解決することは、子がこれらの資源を解放すれば、親との競合も解決させる。
図5bに示すように、Choregrapheでは、流れ図型の親ボックス(資源管理プログラムサーバまたはボックス群を含むボックスの階層的オブジェクト)が生成される。
図6aと図6bは、本発明のいくつかの実施形態における、ポップアップグラフィックメニュー形式とボックスに基づくグラフィックプログラミングの形式の資源の予約の継承機構をそれぞれ表す。
これら2つの図により示されるような本発明の実施の場合、親オーナ1は資源A+B(A=TTSとB=Arms−LeftArm−ShoulderPitch)を予約する。
この複合資源は親オーナ1内にカプセル化されたボックス群(行動オーナ2、オーナ3)に利用可能であり、この複合資源を要求する最初のものがそれを直ちに使用することができる。
図7a、7b、7cは、本発明のいくつかの実施形態における、完全なロボット、胴ロボット、利用可能/利用不能資源のリストを表すことにより、存在しない資源の管理の問題事項をそれぞれ示す。
資源管理プログラムは存在しない資源を凍結することによりロボットモデルを管理することができる。したがって、本発明の有利なモードでは、ロボットモデルに関係無く行動を実行することが可能である。企業は実際には、ロボットが変わればそのクライアントの一組の行動を改修することができない。
完全なロボットのすべてのパーツ(特には、図7aに示すようなそのすべての肢)を有するロボットモデルの場合、資源管理プログラムは、ロボットモデルが完全であることを認識し、資源凍結機構を実施しない。
図7bに示すような脚の無い胴ロボットモデルの場合、アプリケーションの初期化後、我々は、図7cに表される、胴ロボットモデルから失われた脚に対応する資源が凍結された(すなわち、いかなるオーナにも利用可能でない)資源のリストを取得する。それらはLHipYawPitch−>ALFrameManager_0x9425af8_root_RobotModel_3eStrong0(図7cの資源のリストの脚サブセットの第1番目の行)などの行動により予約される。この行動は、実行されることを目的としない限りでは、アーティファクトまたは仮想行動として説明することができる。
資源の完全または部分凍結の同じ機構は、ロボットのいくつかのパーツの故障を管理するまたはそれらを防止するために適用することができる。特に頭のモータが熱くなったと仮定すると、hotEngine行動は、モータが冷却するまで、送られるエネルギーを削減することによりモータを占有することになる。同様に、腕が壊れれば、他の行動が壊れたモータを使用しないようにbrokenArm行動が壊れたモータを占有することになる。
存在しないまたは不足資源の管理のこの概念の拡張により、行動については必須/非必須資源を定義することが可能である。行動に関し必須であると宣言された資源の可用性は、この行動の実行には極めて重要である。一方、この行動は、非必須であると宣言された資源の非可用性にもかかわらず実行することできるようになる。例えば、行動が、音声メッセージ「こんにちは」(資源A=オーディオ)と右腕(資源B=右腕)と2歩前に(資源C=左脚;資源D=右脚)の身振りとの組合せを通常は含む挨拶であれば、そして資源AとBが必須と宣言され資源CとDが非必須と宣言されれば、挨拶行動は、資源CとDが利用可能でなくても、例えばロボットが歩行中であるので、実行できることになる。
必須/非必須資源の概念が使用されれば、いくつかの資源が非必須と定義され、存在しないまたは不足であるいくつかの資源の行動は、実行できるようになるが、同じ資源が必須と宣言された行動は、実行できなくなる。行動が必須資源と非必須資源の両方を呼び出せば、行動は、可用性またはそうでなければ非必須資源の関数として、異なるやり方で実行することになる。
しかし、同じ機能を取得して実施するためには、すべての資源を必須として定義し、行動をサブ行動に分割することもまた可能である。デフォルト設定では、サブ行動は、資源が利用不能であれば実行しない。また、デフォルト設定では、グローバル(親)行動は常に実行することになる。しかし、上に説明したように、親行動のレベルとサブ行動(すなわち子行動)のレベルにおいてデフォルト選択を修正することが可能である。
図8a〜eは、本発明のいくつかの実施形態における、機能流れ図形式(図8a)で、競合の様々な終了オプションに対応するポップアップグラフィックメニューの形式(図8e〜b)で、競合を解決するためのいくつかの方式をそれぞれ示す。
図8aに示すように、マルチエージェント/分散型アプローチ手法が、実時間との相性が悪い複雑なアルゴリズムを回避できるようにする。オブジェクトまたは行動自体は局所的やり方で競合を解決する。オブジェクトまたは行動自体は、資源を要求する他の行動または行動群により資源の要求を拒否する(図8bに示す場合)か、または、オブジェクトまたは行動自体は、資源を要求する別の行動によりそれらを使用することができるように、直ちに資源を解放する(図8cに示す場合)。または、オブジェクトまたは行動自体は、上記資源を解放する前に安定性の位置を採用できるようにする行動部分を予め実行する(図8dに示す場合;例えば、動作が進行中であるときは、オブジェクトまたは行動自体は安定性の次の位置までにこの動きを終了する)。または、資源を所有する行動自体は休止し、要求された資源を解放し、休止は、資源を獲得する他の行動が資源を解放するまで続く(図8eに示す場合)。資源が直ちに解放されないすべての場合、要求者行動は、その持続時間を予め定義することができるタイムアウトまで資源を待つスタンバイ位置を採る。すべての場合において、デッドロックが回避される。
通知はコールバックシステムにより行われる。C++またはpythonでは、オーナが資源を保有すれば、オーナはコールバックで要求について通知される。Choregrapheでは、行動は、このコールバック手順(ユーザはその存在について知る必要はない)において解決策を提案することによりユーザに支援を与えることによりコールバック手順において要求について通知される。
*通知は、資源を保有した行動の停止を引き起こす。
*通知は何もしなく、資源を保有した行動はそれを維持する。
*通知は資源を保有した行動を休止させる。
*通知は、ユーザが望むものを行うユーザの機能を呼び出す(例えば、資源を解放する前に安定した位置を採る)。
より正確には、Choregrapheでは、以下のオプションがユーザによりプログラム可能である。
−ロック:資源が別の行動により要求されればそれらを解放することなく獲得する(図8b)。
−要求に応じて停止する:資源を獲得し、その資源が要求されればそれらを解放する(図8c)。
−要求に応じたコールバック:資源競合の場合は任意のユーザコードを行えるようにする。例えば、ダンスの場合、ダンスを停止して資源を解放する前にロボットを安定した位置に置く。
−要求に応じて休止する:資源競合の場合は行動を休止できるようにし、資源が再び自由になれば、行動が休止した場所で行動を再開できるようにする。
デフォルト設定では、行動は資源を維持する。したがって、資源を待つものは行動の終了を待つことになる。
図9は、本発明のいくつかの実施形態における、ポップアップグラフィックメニュー形式の状態資源の利用を示す。
この図は、状態資源の異名をもつ特定タイプの資源の本発明のいくつかの実施形態における使用を示す。
モータ、オーディオ、映像の使用の競合を回避することは、ヒューマノイドロボットを特には故障または破損となり得る転倒の危険性に対して保護するためには不十分である。本出願人により申請された仏国特許出願第1056798号明細書により開示された転倒管理方法などの下位レベルの保護メカニズムが存在する。しかし、転倒を防止することができると有利である。例えば、ロボットの歩行中にモータを切ることはロボットを転倒させる。このタイプの状況を防止するためには、本発明によると、その可用性(状態資源の活性状態により定義される)がいくつかの行動の実行に必要である状態資源を定義することが可能である。状態資源は共有される(いくつかのオブジェクトまたは行動は状態資源を占有することができる)。資源の単一状態(活性状態)が利用可能である。状態が利用可能でなければ、資源は先に説明された同じ機構に応答する(資源を占有するもののタイムアウトと通知まで、資源を待つスタンバイ)。図9に示す場合、状態資源は「座る」である、すなわち、ロボットは、いくつかの行動(特にすべてのモータを切る)が実行されるように、「座る」(または着座)位置でなければならない。この資源が利用可能でない限り、「すべてのモータを切る」行動は実行され得ない(この行動に固定されたタイムアウト時に非活性化される)。
Choregrapheでは、したがって、状態資源を選択することが可能である。図9の例を、以下の他の状態へ一般化することが可能である。主電源に接続された/接続されないカメラ1/カメラ2(ロボットは、その使用がいくつかの位置においてだけ関連する異なる視野を有するいくつかのカメラを備えることができる)(いくつかの機能はロボットの自律資源と相容れないエネルギーの使用を必要とする)等。
図10は、本発明のいくつかの実施形態における、共有累積資源の利用の機能流れ図を表す。
この図は、累積資源の異名をもつ特定タイプの資源の本発明の実施形態における使用を示す。
このタイプの資源は、特にロボットのCPUの管理を最適化するための用途を見出す。様々なユーザはすべての行動を起動することができなく、ネットワーク(累積資源)のCPU(累積資源)のロボットの位置の資源(状態資源)(モータなどの単一資源)の可用性の関数としてそうすることができる。
各行動は、占有するCPUの共有を宣言する。このCPUは状態資源タイプの資源のような共有資源である。しかし、その使用は100%に限られる。図10に示す場合では、オーナ1は累積資源Aの10%を使用することを宣言し、オーナ2は同じ累積資源Aの90%を使用することを宣言する。オーナ3はそのタイムアウトまで累積資源Aの可用性を待つ。オーナ1とオーナ2はオーナ3の要求について通知され、上に示されたオプションのうちの1つにより要求に応答することができる。
本発明は、図面に表され、明細書内で独立に説明された様々な例示的な実施形態を組み合わせることにより実施することができる。したがって、いくつかの現実的または仮想的行動またはサブ行動を定義することができ、必須資源または非必須資源である可能性がある単一資源、状態資源、累積資源を組合せて呼び出すことができる。
本発明の実施形態は単一ロボットの場合において説明された。しかし、互いに通信するいくつかのロボットが資源を共有するようにされる場合に用途を一般化することが可能である。したがって、
−我々が1台のロボットの資源を使用すれば、システムの任意のロボット(クライアント)は資源を獲得するために他のロボット(サーバ)の資源管理プログラムに問い合わせることができる。
−ロボットはまた、仮想資源例えばボールを使用することができる。この場合、単一サーバロボットはボール資源を参照しなければならない。次に、他のロボット(クライアント)は、サーバロボットからこの資源を獲得することができる。
第2のケースの具体的例が以下に示される。
−ロボット1はボールを獲得したい(サーバロボットに要求する)。
−ロボット1は、別のロボットがボール資源を保有するので、ボールを獲得することができない(タイムアウト)。
−したがって、このように、同じチームの2台のロボットは同じボールについて言い争おうとしない。
上に述べた例は本発明の実施形態の例示として与えられた。これは決して本発明の分野を限定するものではなく、本発明の分野は以下の特許請求範囲により規定される。

Claims (18)

  1. 複数の行動(130,1310,1320)の実行に割り当てることができる複数の資源(140,1410,1420)を管理するためのサブモジュール(1210)を含む搭載管理モジュール(120)の制御下で前記複数の行動(130,1310,1320)を実行することができるヒューマノイドロボットであって、
    前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、
    前記資源を管理するための前記サブモジュールは、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行のための複数の資源の少なくとも1つのサブセットに属する少なくとも1つの資源を予約するようにプログラムされることができ、
    前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とするヒューマノイドロボット。
  2. 前記複数の資源を管理するための前記サブモジュールは、第1の行動を実行中に、以下の行為、すなわち、
    前記資源を前記第2の行動に利用可能にすることに対する拒絶、
    前記第2の行動に対し前記資源を直ちに利用可能にすること、
    前記第2の行動に対し前記資源を利用可能にすることに続く少なくとも1つの追加の行為の実行、
    前記第2の行動に対し前記資源を利用可能にすることに続く現在実行中の第1の行動の休止の、少なくとも1つを有する第2の行動による資源要求に応答するようにプログラムされる、ことを特徴とする請求項1に記載のヒューマノイドロボット。
  3. 前記複数の資源を管理するための前記サブモジュールは、前記第2の行動により要求された前記資源を利用可能にすることに対する前記拒絶の行為が実行されると、前記第2の行動が再び、同様に所定の終了期限の終了まで所定の頻度に従って利用可能にする要求を実行する、ことを特徴とする請求項2に記載のヒューマノイドロボット。
  4. 前記複数の資源を管理するため前記サブモジュールは、少なくとも2つの行動が、同一の資源を利用可能にする要求を実行すると、前記少なくとも2つの行動の第1の行動は後者が解放されると前記同じ資源の予約の優先度を有するようにプログラムされる、ことを特徴とする請求項1乃至3のいずれか一項に記載のヒューマノイドロボット。
  5. 前記複数の資源を管理するため前記サブモジュールは、少なくとも1つの行動が、少なくとも2つの資源を利用可能にする要求を実行すると、前記少なくとも2つの資源は単一資源として処理される新しい資源にグループ化され、前記グループ化は、同一の資源要求を実行するすべての行動に対して一意的やり方で順序付けられるようにプログラムされる、ことを特徴とする請求項1乃至4のいずれか一項に記載のヒューマノイドロボット。
  6. 前記複数の資源を管理するため前記サブモジュールは、親行動がそれを使用することなく少なくとも1つの資源を予約すると、前記少なくとも1つの資源は前記親行動の子行動により使用されることができるようにプログラムされる、ことを特徴とする請求項1乃至5のいずれか一項に記載のヒューマノイドロボット。
  7. 前記複数の資源を管理するため前記サブモジュールは、第1の子行動が前記親行動により予約された資源を使用すると、同じ親の第2の子行動は、前記資源を使用することができるように前記第1の子行動により前記資源を利用可能にする要求を行わなければならないように、プログラムされる、ことを特徴とする請求項6に記載のヒューマノイドロボット。
  8. 前記複数の資源を管理するため前記サブモジュールは、親行動がその予約された資源を解放すると、前記資源は前記親の任意の子行動により解放されなければならないようにプログラムされる、ことを特徴とする請求項6乃至7のいずれか一項に記載のヒューマノイドロボット。
  9. 前記複数の資源を管理するための前記サブモジュールは、資源のサブセットが可用性を下げたとき、可用性の前記低下の関数として定義された仮想行動のための前記資源の予約を実行するようにプログラムされる、ことを特徴とする請求項1乃至8のいずれか一項に記載のヒューマノイドロボット。
  10. 前記複数の資源を管理するための前記サブモジュールは、可用性の前記低下の状態の進展の関数として前記予約を解放するようにプログラムされる、ことを特徴とする請求項9に記載のヒューマノイドロボット。
  11. 前記複数の資源は、少なくとも1つの行動の実行に必要な予約が行われるように所定の状態でなければならない少なくとも1つの状態変数を含む、ことを特徴とする請求項1乃至10のいずれか一項に記載のヒューマノイドロボット。
  12. 前記複数の資源は少なくとも1つの累積資源を含み、後者の使用率は、前記少なくとも1つの資源を使用するようにプログラムされた行動に割り当てられる、ことを特徴とする請求項1乃至11のいずれか一項に記載のヒューマノイドロボット。
  13. 前記複数の資源は少なくとも1つの必須資源と1つの非必須資源を含み、任意の行動は、前記必須資源が利用可能でなければ実行できない少なくとも1つの必須資源であって、前記少なくとも1つの非必須資源を呼び出さなければならなければたとえ後者が利用可能でなくても実行することができる少なくとも1つの必須資源を呼び出さなければならない、ことを特徴とする請求項1乃至12のいずれか一項に記載のヒューマノイドロボット。
  14. 搭載管理モジュール(120)の制御下で複数の行動(130,1310,1320)を実行することができるヒューマノイドロボットの資源を管理するための方法であって、前記行動の実行に割り当てることができる複数の資源(140,1410,1420)を予約する工程を含む、方法において、
    前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、
    前記予約工程は、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、
    前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする方法。
  15. コンピュータプログラムがコンピュータ上で実行されると請求項14に記載の方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムであって、
    前記プログラムは、搭載管理サブルーチン(120)の制御下で複数の行動(130,1310,1320を実行することができるヒューマノイドロボットの資源の管理を可能にするように適合化され、
    前記サブルーチンは、前記行動の実行に割り当てることができる複数の資源(140,1410,1420)の予約のための機能を実行することができるモジュール(1210)を含み、前記コンピュータプログラムは、
    前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、
    前記予約機能が、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、
    前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とするコンピュータプログラム。
  16. 行動と資源の前記サブセットはオブジェクトのクラスとして定義される、ことを特徴とする請求項15に記載のコンピュータプログラム。
  17. 搭載管理サブルーティン(120)の制御下で複数の行動(130,1310,1320)を実行することができるヒューマノイドロボットの資源を管理するためのモジュール(1610)を開発するための方法であって、
    前記サブルーチンは、前記行動の実行に割り当てることができる複数の資源(140,1410,1420)の予約のための機能を実行することができ、前記方法は、
    前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、
    前記予約機能が、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、
    前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする方法。
  18. コンピュータプログラムがコンピュータ上で実行されると請求項17に記載の方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムであって、
    前記プログラムは、複数の行動(130、1310、1320)を実行することができるヒューマノイドロボットの資源を管理するための遠隔モジュール(1610)との相互作用により、前記ロボット上の搭載管理サブルーチン(120)のパラメタータ化を可能にすることように適合化され、
    前記サブルーチンは、前記行動の実行に割り当てることができる複数の資源(140,1410,1420)の予約のための機能を実行することができるモジュール(1210)を含み、
    前記プログラムは、前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、
    前記予約機能が、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、を特徴とするプログラム。
JP2013543610A 2010-12-17 2011-11-22 物理的および仮想的資源の管理プログラムを備えるヒューマノイドロボット、使用方法、およびプログラミング方法 Expired - Fee Related JP6144628B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1060755A FR2969026B1 (fr) 2010-12-17 2010-12-17 Robot humanoide dote d'un gestionnaire de ses ressources physiques et virtuelles, procedes d'utilisation et de programmation
FR1060755 2010-12-17
PCT/EP2011/070684 WO2012079926A1 (fr) 2010-12-17 2011-11-22 Robot humanoide dote d'un gestionnaire de ses ressources physiques et virtuelles, procedes d'utilisation et de programmation

Publications (2)

Publication Number Publication Date
JP2014504958A true JP2014504958A (ja) 2014-02-27
JP6144628B2 JP6144628B2 (ja) 2017-06-07

Family

ID=44359864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013543610A Expired - Fee Related JP6144628B2 (ja) 2010-12-17 2011-11-22 物理的および仮想的資源の管理プログラムを備えるヒューマノイドロボット、使用方法、およびプログラミング方法

Country Status (9)

Country Link
US (1) US9975246B2 (ja)
EP (1) EP2651607B1 (ja)
JP (1) JP6144628B2 (ja)
KR (1) KR101867640B1 (ja)
CN (1) CN103354775B (ja)
BR (1) BR112013015177A2 (ja)
ES (1) ES2535273T3 (ja)
FR (1) FR2969026B1 (ja)
WO (1) WO2012079926A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9956687B2 (en) * 2013-03-04 2018-05-01 Microsoft Technology Licensing, Llc Adapting robot behavior based upon human-robot interaction
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
EP2933065A1 (en) 2014-04-17 2015-10-21 Aldebaran Robotics Humanoid robot with an autonomous life capability
FR3021572B1 (fr) * 2014-06-03 2016-07-01 Aldebaran Robotics Securite d'un robot a caractere humanoide
KR101678383B1 (ko) * 2015-05-27 2016-12-06 주식회사 유진로봇 이기종 로봇 및 기기를 이용한 동적 서비스 제공 시스템 및 방법
US10254744B2 (en) * 2015-09-25 2019-04-09 Intel Corporation Telerobotic controller
JP6726388B2 (ja) * 2016-03-16 2020-07-22 富士ゼロックス株式会社 ロボット制御システム
CN106126342A (zh) * 2016-06-23 2016-11-16 北京光年无限科技有限公司 面向智能机器人的多程序运行方法及操作系统
US10239205B2 (en) 2016-06-29 2019-03-26 International Business Machines Corporation System, method, and recording medium for corpus curation for action manifestation for cognitive robots
CN111164522B (zh) * 2017-09-30 2023-05-16 西门子股份公司 设计具有可重复使用技能的自主系统
WO2019104189A1 (en) 2017-11-27 2019-05-31 Intuition Robotics, Ltd System and method for optimizing resource usage of a robot
US10792813B1 (en) 2018-04-26 2020-10-06 X Development Llc Managing robot resources
US11526823B1 (en) 2019-12-27 2022-12-13 Intrinsic Innovation Llc Scheduling resource-constrained actions

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950380A (ja) * 1995-08-04 1997-02-18 Toshiba Corp 通信システム
JP2000076088A (ja) * 1998-08-28 2000-03-14 Internatl Business Mach Corp <Ibm> デ―タ処理装置、方法、及びネットワ―ク
JP2001014178A (ja) * 1999-06-29 2001-01-19 Fujitsu Ltd データ入出力処理方法およびそのプログラム記録媒体
JP2001236221A (ja) * 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US20030171846A1 (en) * 2001-11-28 2003-09-11 Murray Thomas J. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot
JP2004298976A (ja) * 2003-03-28 2004-10-28 Sony Corp ロボット装置及びロボット装置の認識制御方法
JP2004362425A (ja) * 2003-06-06 2004-12-24 Nec Corp 資源競合制御システム及び制御方法並びにプログラム
JP2005144612A (ja) * 2003-11-17 2005-06-09 Sony Corp ロボットシステム、遠隔操作装置、ロボット装置及びその制御方法
JP2010094799A (ja) * 2008-10-17 2010-04-30 Littleisland Inc 人型ロボット
US7853357B2 (en) * 2003-03-11 2010-12-14 Sony Corporation Robot behavior control based on current and predictive internal, external condition and states with levels of activations

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6337552B1 (en) * 1999-01-20 2002-01-08 Sony Corporation Robot apparatus
FR1056798A (fr) 1951-09-17 1954-03-02 Procédé pour la fabrication et chaussures conformes à celles obtenues par ce procédé
JP2001179666A (ja) * 1999-12-28 2001-07-03 Namco Ltd ペット型ロボット及びプログラムが記録されたコンピュータ読み取り可能な記録媒体
CN1372506A (zh) * 2000-03-24 2002-10-02 索尼公司 机器人设备行为决定方法和机器人设备
US6975970B2 (en) * 2000-12-15 2005-12-13 Soliloquy, Inc. Method for designing an interactive system
CN100509308C (zh) * 2002-03-15 2009-07-08 索尼公司 用于机器人的行为控制系统和行为控制方法及机器人装置
JP2003266352A (ja) 2002-03-18 2003-09-24 Sony Corp ロボット装置及びロボット装置の制御方法
JP4661074B2 (ja) * 2004-04-07 2011-03-30 ソニー株式会社 情報処理システム、情報処理方法、並びにロボット装置
US8843244B2 (en) * 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
EP2266077A1 (en) * 2008-04-02 2010-12-29 iRobot Corporation Robotics systems
US8571745B2 (en) * 2008-04-10 2013-10-29 Robert Todd Pack Advanced behavior engine
FR2929873B1 (fr) 2008-04-09 2010-09-03 Aldebaran Robotics Architecture de controle-commande d'un robot mobile utilisant des membres articules
FR2930108B1 (fr) 2008-04-09 2010-07-30 Aldebaran Robotics Systeme et procede de communication distribue comprenant au moins un serveur, au moins un terminal distant, et au moins un terminal mobile capable de communiquer avec le terminal distant relie en reseau audit serveur
KR101248802B1 (ko) * 2008-10-31 2013-03-29 한국전자통신연구원 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법
FR2946160B1 (fr) 2009-05-26 2014-05-09 Aldebaran Robotics Systeme et procede pour editer et commander des comportements d'un robot mobile.
FR2964055B1 (fr) 2010-08-27 2012-08-17 Aldebaran Robotics S A Robot humanoide dote de capacites de gestion de chutes et methode de gestion desdites chutes

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950380A (ja) * 1995-08-04 1997-02-18 Toshiba Corp 通信システム
JP2000076088A (ja) * 1998-08-28 2000-03-14 Internatl Business Mach Corp <Ibm> デ―タ処理装置、方法、及びネットワ―ク
JP2001014178A (ja) * 1999-06-29 2001-01-19 Fujitsu Ltd データ入出力処理方法およびそのプログラム記録媒体
JP2001236221A (ja) * 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US20030171846A1 (en) * 2001-11-28 2003-09-11 Murray Thomas J. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot
JP2005515903A (ja) * 2001-11-28 2005-06-02 エヴォリューション ロボティクス インコーポレイテッド ロボット用センサおよびアクチュエータのハードウェア抽象化層内における抽象化および集合化
US7853357B2 (en) * 2003-03-11 2010-12-14 Sony Corporation Robot behavior control based on current and predictive internal, external condition and states with levels of activations
JP2004298976A (ja) * 2003-03-28 2004-10-28 Sony Corp ロボット装置及びロボット装置の認識制御方法
JP2004362425A (ja) * 2003-06-06 2004-12-24 Nec Corp 資源競合制御システム及び制御方法並びにプログラム
JP2005144612A (ja) * 2003-11-17 2005-06-09 Sony Corp ロボットシステム、遠隔操作装置、ロボット装置及びその制御方法
JP2010094799A (ja) * 2008-10-17 2010-04-30 Littleisland Inc 人型ロボット

Also Published As

Publication number Publication date
EP2651607A1 (fr) 2013-10-23
EP2651607B1 (fr) 2015-01-21
WO2012079926A1 (fr) 2012-06-21
KR101867640B1 (ko) 2018-06-15
CN103354775A (zh) 2013-10-16
US9975246B2 (en) 2018-05-22
FR2969026B1 (fr) 2013-02-01
JP6144628B2 (ja) 2017-06-07
FR2969026A1 (fr) 2012-06-22
US20140316566A1 (en) 2014-10-23
KR20140040091A (ko) 2014-04-02
CN103354775B (zh) 2016-08-31
ES2535273T3 (es) 2015-05-07
BR112013015177A2 (pt) 2020-08-11

Similar Documents

Publication Publication Date Title
JP6144628B2 (ja) 物理的および仮想的資源の管理プログラムを備えるヒューマノイドロボット、使用方法、およびプログラミング方法
Brugali et al. Component-based robotic engineering (part ii)
US8571745B2 (en) Advanced behavior engine
Buonocunto et al. ARTE: arduino real-time extension for programming multitasking applications
Nain et al. Integrating iot and ios with a component-based approach
WO2016196083A2 (en) Integration of whole body controllers with robots
Phan et al. Towards a compositional multi-modal framework for adaptive cyber-physical systems
Arbab et al. An object model for multimedia programming
Martínez et al. Design of component-based real-time applications
Katz Guarded deep learning using scenario-based modeling
Shin et al. Self-reconfiguration in self-healing systems
Kim Synthesizing multithreaded code from real-time object-oriented models via schedulability-aware thread derivation
Sinha et al. Competitors or Cousins? Studying the parallels between distributed programming languages SystemJ and IEC61499
Rinner et al. Embedded Middleware for Smart Camera Networks and Sensor Fusion.
Ivin et al. Software platform for development of multimodular robotic systems with asynchronous multithreaded control
Kim et al. Adaptive smart vehicle middleware platform for aspect oriented software engineering
Wang Get real: Real time software design for safety-and mission-critical systems with high dependability
Cruz et al. Nerve: a lightweight middleware for quality-of-service networked robotics
Graff Programming and managing swarms of mobile robots: a systemic approach
Eck et al. Tint: Towards a pure python augmented reality framework
Alshabani et al. A framework for desktop grid applications: Ccadaj
Colmenaresy et al. A Component Framework for Real-time Java
Jang et al. A development of software component framework for robotic services
Raj et al. CREAM: A Generic Build-time Component Framework for Distributed Embedded Systems
Rouxel et al. PReGO: a Generative Methodology for Satisfying Real-Time Requirements on COTS-based Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160324

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170217

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170511

R150 Certificate of patent or registration of utility model

Ref document number: 6144628

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees