"複数の行動130,1310,1320の実行に割り当てることができる複数の資源140,1410,1420を管理するためのサブモジュール1210を含む搭載管理モジュール120の制御下で前記複数の行動130,1310,1320を実行することができるヒューマノイドロボットであって、前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、前記資源を管理するための前記サブモジュールは、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行のための複数の資源の少なくとも1つのサブセットに属する少なくとも1つの資源を予約するようにプログラムされることができ、前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とするヒューマノイドロボット。前記複数の資源を管理するための前記サブモジュールは、第1の行動を実行中に、以下の行為、すなわち、前記資源を前記第2の行動に利用可能にすることに対する拒絶、前記第2の行動に対し前記資源を直ちに利用可能にすること、前記第2の行動に対し前記資源を利用可能にすることに続く少なくとも1つの追加の行為の実行、前記第2の行動に対し前記資源を利用可能にすることに続く現在実行中の第1の行動の休止の、少なくとも1つを有する第2の行動による資源要求に応答するようにプログラムされる、ことを特徴とする請求項1に記載のヒューマノイドロボット。前記複数の資源を管理するための前記サブモジュールは、前記第2の行動により要求された前記資源を利用可能にすることに対する前記拒絶の行為が実行されると、前記第2の行動が再び、同様に所定の終了期限の終了まで所定の頻度に従って利用可能にする要求を実行する、ことを特徴とする請求項2に記載のヒューマノイドロボット。前記複数の資源を管理するため前記サブモジュールは、少なくとも2つの行動が、同一の資源を利用可能にする要求を実行すると、前記少なくとも2つの行動の第1の行動は後者が解放されると前記同じ資源の予約の優先度を有するようにプログラムされる、ことを特徴とする請求項1乃至3のいずれか一項に記載のヒューマノイドロボット。前記複数の資源を管理するため前記サブモジュールは、少なくとも1つの行動が、少なくとも2つの資源を利用可能にする要求を実行すると、前記少なくとも2つの資源は単一資源として処理される新しい資源にグループ化され、前記グループ化は、同一の資源要求を実行するすべての行動に対して一意的やり方で順序付けられるようにプログラムされる、ことを特徴とする請求項1乃至4のいずれか一項に記載のヒューマノイドロボット。前記複数の資源を管理するため前記サブモジュールは、親行動がそれを使用することなく少なくとも1つの資源を予約すると、前記少なくとも1つの資源は前記親行動の子行動により使用されることができるようにプログラムされる、ことを特徴とする請求項1乃至5のいずれか一項に記載のヒューマノイドロボット。前記複数の資源を管理するため前記サブモジュールは、第1の子行動が前記親行動により予約された資源を使用すると、同じ親の第2の子行動は、前記資源を使用することができるように前記第1の子行動により前記資源を利用可能にする要求を行わなければならないように、プログラムされる、ことを特徴とする請求項6に記載のヒューマノイドロボット。前記複数の資源を管理するため前記サブモジュールは、親行動がその予約された資源を解放すると、前記資源は前記親の任意の子行動により解放されなければならないようにプログラムされる、ことを特徴とする請求項6乃至7のいずれか一項に記載のヒューマノイドロボット。前記複数の資源を管理するための前記サブモジュールは、資源のサブセットが可用性を下げたとき、可用性の前記低下の関数として定義された仮想行動のための前記資源の予約を実行するようにプログラムされる、ことを特徴とする請求項1乃至8のいずれか一項に記載のヒューマノイドロボット。前記複数の資源を管理するための前記サブモジュールは、可用性の前記低下の状態の進展の関数として前記予約を解放するようにプログラムされる、ことを特徴とする請求項9に記載のヒューマノイドロボット。前記複数の資源は、少なくとも1つの行動の実行に必要な予約が行われるように所定の状態でなければならない少なくとも1つの状態変数を含む、ことを特徴とする請求項1乃至10のいずれか一項に記載のヒューマノイドロボット。前記複数の資源は少なくとも1つの累積資源を含み、後者の使用率は、前記少なくとも1つの資源を使用するようにプログラムされた行動に割り当てられる、ことを特徴とする請求項1乃至11のいずれか一項に記載のヒューマノイドロボット。前記複数の資源は少なくとも1つの必須資源と1つの非必須資源を含み、任意の行動は、前記必須資源が利用可能でなければ実行できない少なくとも1つの必須資源であって、前記少なくとも1つの非必須資源を呼び出さなければならなければたとえ後者が利用可能でなくても実行することができる少なくとも1つの必須資源を呼び出さなければならない、ことを特徴とする請求項1乃至12のいずれか一項に記載のヒューマノイドロボット。搭載管理モジュール120の制御下で複数の行動130,1310,1320を実行することができるヒューマノイドロボットの資源を管理するための方法であって、前記行動の実行に割り当てることができる複数の資源140,1410,1420を予約する工程を含む、方法において、前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、前記予約工程は、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする方法。コンピュータプログラムがコンピュータ上で実行されると請求項14に記載の方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムであって、前記プログラムは、搭載管理サブルーチン120の制御下で複数の行動130,1310,1320を実行することができるヒューマノイドロボットの資源の管理を可能にするように適合化され、前記サブルーチンは、前記行動の実行に割り当てることができる複数の資源140,1410,1420の予約のための機能を実行することができるモジュール1210を含み、前記コンピュータプログラムは、前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、前記予約機能が、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とするコンピュータプログラム。行動と資源の前記サブセットはオブジェクトのクラスとして定義される、ことを特徴とする請求項15に記載のコンピュータプログラム。搭載管理サブルーティン120の制御下で複数の行動130,1310,1320を実行することができるヒューマノイドロボットの資源を管理するためのモジュール1610を開発するための方法であって、前記サブルーチンは、前記行動の実行に割り当てることができる複数の資源140,1410,1420の予約のための機能を実行することができ、前記方法は、前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、前記予約機能が、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、前記予約が前記行動のサブセットにより継承されるおよび/または前記資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする方法。コンピュータプログラムがコンピュータ上で実行されると請求項17に記載の方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムであって、前記プログラムは、複数の行動130、1310、1320を実行することができるヒューマノイドロボットの資源を管理するための遠隔モジュール1610との相互作用により、前記ロボット上の搭載管理サブルーチン120のパラメタータ化を可能にすることように適合化され、前記サブルーチンは、前記行動の実行に割り当てることができる複数の資源140,1410,1420の予約のための機能を実行することができるモジュール1210を含み、前記プログラムは、前記複数の行動と前記複数の資源がそれぞれ階層的サブセットに組織化され、前記予約機能が、行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも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つの累積資源accumulativeresourceを含み、複数の資源は、後者の使用率が少なくとも1つの資源を使用するようにプログラムされた行動に割り当てられることを特徴とする。有利には、複数の資源は少なくとも1つの必須資源と1つの非必須資源を含み、任意の行動は、必須資源が利用可能でなければ実行することができない少なくとも1つの必須資源であって、少なくとも1つの非必須資源を呼び出さなければならなければたとえ後者が利用可能でなくても実行することができる少なくとも1つの必須資源を呼び出さなければならない。本発明はまた、搭載管理モジュールの制御下で複数の行動を実行することができるヒューマノイドロボットの資源を管理する方法を開示する。本方法は、行動の実行に割り当てることができる複数の資源を予約する工程を含み、複数の行動と複数の資源はそれぞれ階層的サブセットに組織化され、予約工程は、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、予約は複数の行動のサブセットにより継承されるおよび/または複数の資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする。本発明はまた、コンピュータ上で実行されると本方法の実行を可能にするプログラムコード命令を含むコンピュータプログラムを開示する。上記プログラムは、搭載管理サブルーチンの制御下で複数の行動を実行することができるヒューマノイドロボットの資源の管理を可能にするように適合化され、上記サブルーチンは、複数の行動の実行に割り当てることができる複数の資源の予約のための機能を実行することができるモジュールを含む。本プログラムは、複数の行動と複数の資源がそれぞれ階層的サブセットに組織化され、予約機能が、複数の行動の少なくとも1つのサブセットに属する少なくとも1つの行動の実行に複数の資源の少なくとも1つのサブセットに属する少なくとも1つの資源を割り当て、予約は複数の行動のサブセットにより継承されるおよび/または複数の資源のサブセットに適用されるようにプログラムされることができる、ことを特徴とする。有利には、複数の行動と複数の資源のサブセットはオブジェクトのクラスとして定義される。本発明はまた、ヒューマノイドロボットの資源を管理するためのモジュールを開発する方法とこの方法を実施するためのコンピュータプログラムとを開示する。本発明はさらに、同一のプロセッサ上で並行して実行する処理を有するコンピュータシステムにおいて頻繁であるロックアップ状況を回避するという利点を提供する。本発明はまた、状態に対応する仮想資源を含む多種多様の資源を管理できるようにし、その凍結は、ロボットのロックアップまたは危険な状況を生じる傾向があるであろう行動の起動を回避できるようにする。本発明は、いくつかの例示的実施形態の以下の説明とその添付図面からより良く理解され、その様々な特性と利点が浮かび上がることになる。図1は、本発明がその実施形態のうちのいくつかにおいて実施される機能アーキテクチャの線図である。根底にある物理的アーキテクチャは、その例示的実施形態が以下に与えられるヒューマノイドロボット110と、任意選択的に行動160を生成するためのソフトウェアワークショップを備えた遠隔ワークステーション150と、からなる。商標NAO商標を有するヒューマノイドロボットが知られている。このようなロボットは、特に2009年10月15日公開の国際公開第2009/124951号パンフレットに開示されている。このプラットホームは、本発明に至る改良のためのベースとして役立った。以下の説明では、このヒューマノイドロボットはこの総称用語またはその商標NAO商標のいずれかで示され得るが、これにより参照の一般性が変更されることはない。このロボットは、センサと関節を駆動するアクチュエータとを制御するための約2ダースの電子カードを含む。関節は通常、少なくとも2つの自由度したがって2つのモータを有する。各モータは角度の意味で駆動される。関節はまた、いくつかの位置センサ、特にMRE磁気回転符合器:MagneticRotaryEncoderを含む。電子制御カードは市販のマイクロコントローラを含む。これは例えばMicrochip社のDSPIC商標である可能性がある。これはDSPに結合された16ビットMCUである。このMCUは1ミリ秒のループ連動化サイクルloopedslavingcycleを有する。ロボットはまた、他のタイプのアクチュエータ、特にその色と強度がロボットの感情を伝えることができる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を呼び出さなければならなくなる。本発明は、複数の行動の葛藤の無い実行を可能にするように資源を管理するための方式に関係する。それは、実質的に、資源を管理するためのモジュールすなわち資源管理プログラムサーバResourcemanagerserver1210において実施される。このモジュールの詳細な動作については本明細書において以降説明する。その目的言語がC、C、Python、またはUrbiである任意のソフトウェアを使用することにより、ワークステーション150などの遠隔端末装置上でロボットにより実行される行動をプログラムすることが可能である。しかし、本発明を実施するためには、ヒューマノイドロボットの行動を編集およびプログラムするための特定の機能アーキテクチャが有利には使用されることになる。このようなアーキテクチャについては、2010年5月25日出願の欧州特許出願第2010/057111号明細書により説明されている。上記アーキテクチャを実装できるようにするヒューマノイドロボット160の行動を編集しプログラムするためのソフトウェアワークショップは商標Choregraphe商標を有しており、上記特許文献の一般性を損なうことなくその総称または商標のいずれかで呼ぶことがある。このアーキテクチャは、その時間次元を有する事象によりトリガされる指令の表現を容易に実現できるようにするので、ロボット行動を生成するのに特に有効である。事象によりトリガされる指令は、Choregrapheではボックスまたは制御ボックスにより表される。ボックスは、この後定義される以下の要素の1つまたは複数を含むことができるツリー状のプログラミング構造である。-フレームのタイムラインまたは時間軸、-図表または流れ図、-スクリプト。制御ボックスは通常、事象情報項目を1つのボックスから別のボックスへ通常は送信する接続部により相互にリンクされる。いかなるボックスも、ロボットの行動/動きのシナリオを初期化するルートボックスまたはルートへ直接または間接的にリンクされる。フレームの時間軸は、フレームの時間軸すなわちタイムラインが挿入されるボックス内に定義されたロボットの行動と動きとが受ける時間的制約を表す。したがってタイムラインはボックスの行動と動きの同期を行う。タイムラインは、毎秒当たりのフレームの数すなわち毎秒フレーム数FPS:FramesPerSecondとして定義される進捗速度に関連付けられたフレームに細切れにされる。各タイムラインのFPSはユーザによりパラメタータ化可能である。デフォルト設定では、FPSは任意の値例えば、15FPSで固定することができる。タイムラインは次のものを含むことができる。iそれぞれが1つまたは複数の行動キーフレームBehaviorKeyFramesまたは主行動フレームmainbehaviorFrameを含む1つまたは複数の行動レイヤBehaviorLayerであって、上記行動キーフレーム自体が、行動レイヤまたはタイムラインを通過することなく、実際はより高いレベルのボックスにも直接取り付けることができるボックスの組である1つまたは複数の図表または流れ図を含むことができる、行動レイヤ、iiそれぞれが、1つまたは複数の運動画面MotionScreenを含むことができる、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アプリケーションプログラミングインターフェース:ApplicationProgrammingInterfaceは、C、pythonラップCwrappedC、またはグラフィック言語Cまたはpythonの隠蔽で資源管理プログラム1210を使用できるようにし、また以下の指令を発生できるようにする。-単一資源を獲得するまたは待つ、すなわち空voidwaitForResourceconststringresourceName、conststringownerName、conststringcallbackName、constinttimeoutSeconds;-行動間の階層的情報を与える一方で単一資源を獲得するまたは待つ以降の本明細書では、資源を予約する行動はオーナOwnerと呼ばれる、すなわちvoidwaitForLocalResourcesTreeconstvectorresourceName、constclassAL::ALPtrtreeOwnerPtr、conststringcallbackName、constinttimeoutSeconds;-資源を解放する、すなわちvoidreleaseResourceconststringresourceName、conststringownerName。図3aと図3bは、本発明のいくつかの実施形態における、利用可能資源のリストの形式とボックスに基づくグラフィックプログラミングの形式の資源管理方式をそれぞれ表す。これらの図は、単一資源上の競合の管理に適用される処理動作の原理を示す。単一資源例えばモータの場合、これはいかなるデッドロックも回避するようにする。資源のリストだけがミューテックスタイプのアルゴリズムの助けを借りて保護され、このミューテックスは資源追加または削除に使用される。資源の解放を待つ競合自体はスレッドセーフであるが保護されない。ミューテックスはアプリケーションをスレッドセーフいくつかのスレッドを有する並列システム上でアクセス可能にするために標準ライブラリを保護するシステムである。一方、これらはデッドロックを防止しない。したがって、我々は資源のリストを保護するためにミューテックスだけを使用する。競合解決策はロックアップシステムすなわちミューテックスを呼び出さないが、スレッドセーフである。資源の予約の際の競合解決策は以下の原理を適用することにより行われる。iマルチスレッドシステムでは、2人のオーナが同時に同じ資源を獲得することができない。したがって、我々は、ミューテックスによりロックされた資源を取得する非無効化試みnon-disablingattemptであるトライロックtry-lockを有する要求を保護する。ii2人のオーナがOSのスケジューラにより定義された全く同時に同じ資源を要求すると、すべてのオーナは競合を解決しなければならないが、資源が自由になった時にその資源を最初のオーナが取得する早い者勝ち。このタイプの例は、図3aの資源のリストと、図3bのボックスと、Choregraphe依存関係を定義するための画面の図とにより示される。この例では、MoveHead1が資源を保有する。MoveHead2は資源を待つ。MoveHead3もまた資源を待つであろうが、MoveHead2はそれを最初に取得するだろう早い者勝ち。資源の割り当てはスマートポインタにより行われるインテリジェントポインタは、指示された資源上で実行されこれによりミューテックスの使用を回避するカプセル化コードencapsulatedcodeを含む割り当ては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の機能流れ図により示されたこの機構は、特に、単一の資源が利用可能でなければすべての資源を待つことを停止できるようにする。本発明の方法はこうしてロックアップデッドロックを回避する。一方、次のアルゴリズムはうまくいかないであろう。seizeList_resourcesForeachresourcerequest_and_seizetheresource図4bに示すように、Choregrapheでは、いくつかの資源の選択が引き受けられ、これによりwaitResources方法資源のリスト、オーナ、コールバック、タイムアウトの呼出しと当初選択された資源のリストを参照する新しい一意的資源の生成とにつながる。さらに、資源のリストはいくつかの不必要なタイムアウトを回避するように順序付けられると有利である。資源Aがオーディオ信号処理Audio-TTSであり資源Bが左腕のピッチング運動Arm-Leftarm-ShoulderPitchである図4bに示す例では、オーナ1スレッド1はABを要求する。オーナ1はAを獲得し、Bを待つ。オーナ2スレッド2はBAを要求する。オーナ2はBを獲得し、Aを待つ。資源のソーティング無しでは、いかなる制御もロボットへ送られない。ソーティングにより、オーナ1スレッド1はABを要求する。オーナ1はAを獲得し、オーナ1はBを獲得し、こうして指令の実行を可能にする。オーナ2スレッド2はABを要求する。オーナ2は、タイムアウトまで、またはオーナ1による資源ABの解放までAを待つ。図5aと図5bは、本発明のいくつかの実施形態における、機能流れ図の形式とポップアップグラフィックメニュー形式でクリティカル資源を予約するための機構をそれぞれ表す。クリティカル行動例えば電池の充電のためにいくつかの資源が利用可能でなければならない。この可用性は資源のオブジェクト継承により保証される。親オブジェクトまたは行動は資源を予約することができる。次に、これらの資源は子達に利用可能となり、一方、子達はこれらの資源について争うことになる。図5aの機能流れ図に示したように、オーナ1は資源を必ずしも使用しなく、子オブジェクトまたは行動のためにそれらを占有する。資源管理プログラムのアルゴリズムは、すべての子に、すべての子自身がその資源を解放するとその資源を放棄ようにさせる。特にことわらない限り、子との競合を解決することは、子がこれらの資源を解放すれば、親との競合も解決させる。図5bに示すように、Choregrapheでは、流れ図型の親ボックス資源管理プログラムサーバまたはボックス群を含むボックスの階層的オブジェクトが生成される。図6aと図6bは、本発明のいくつかの実施形態における、ポップアップグラフィックメニュー形式とボックスに基づくグラフィックプログラミングの形式の資源の予約の継承機構をそれぞれ表す。これら2つの図により示されるような本発明の実施の場合、親オーナ1は資源ABA=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台のロボットは同じボールについて言い争おうとしない。上に述べた例は本発明の実施形態の例示として与えられた。これは決して本発明の分野を限定するものではなく、本発明の分野は以下の特許請求範囲により規定される。"