JP4670136B2 - オーサリング・システム及びオーサリング方法、並びに記憶媒体 - Google Patents

オーサリング・システム及びオーサリング方法、並びに記憶媒体 Download PDF

Info

Publication number
JP4670136B2
JP4670136B2 JP2000311126A JP2000311126A JP4670136B2 JP 4670136 B2 JP4670136 B2 JP 4670136B2 JP 2000311126 A JP2000311126 A JP 2000311126A JP 2000311126 A JP2000311126 A JP 2000311126A JP 4670136 B2 JP4670136 B2 JP 4670136B2
Authority
JP
Japan
Prior art keywords
user
action
box
behavior
actions
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.)
Expired - Fee Related
Application number
JP2000311126A
Other languages
English (en)
Other versions
JP2002120174A (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
Original Assignee
Sony 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 filed Critical Sony Corp
Priority to JP2000311126A priority Critical patent/JP4670136B2/ja
Publication of JP2002120174A publication Critical patent/JP2002120174A/ja
Application granted granted Critical
Publication of JP4670136B2 publication Critical patent/JP4670136B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Toys (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、所定のシナリオに従ったデータの作成・編集を支援するためのオーサリング・システム及びオーサリング方法に係り、特に、ロボットの所定の動作パターンを記述する一連のコマンド/データの作成・編集を支援するオーサリング・システム及びオーサリング方法に関する。
【0002】
更に詳しくは、本発明は、ロボットの動作状態を規定する部品の集合を用いて動作パターンの作成・編集を支援するオーサリング・システム及びオーサリング方法に係り、特に、各関節アクチュエータの動作など1以上の時系列データの組み合わせからなるロボットのアクションを部品化してコンピュータ・ディスプレイ上に配置するとともに、各アクションの結合関係をディスプレイ上のGUI操作により規定することでロボットのビヘイビアの作成・編集を行うことができるオーサリング・システム及びオーサリング方法に関する。
【0003】
【従来の技術】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語のROBOTA(奴隷機械)に由来すると言われている。わが国では、ロボットが普及し始めたのは1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット(industrial robot)であった。
【0004】
最近では、イヌやネコのように4足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトやサルなどの2足直立歩行を行う動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット(humanoid robot)など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越え等、柔軟な歩行・走行動作を実現できるという点で優れている。
【0005】
アーム式ロボットのように、ある特定の場所に植設して用いるような据置きタイプのロボットは、部品の組立・選別作業など固定的・局所的な作業空間でのみ活動する。これに対し、移動式のロボットは、作業空間は非限定的であり、所定の経路上または無経路上を自在に移動して、所定の若しくは任意の人的作業を代行したり、ヒトやイヌあるいはその他の生命体に置き換わる種々のサービスを提供することができる。
【0006】
脚式移動ロボットの用途の1つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。
【0007】
また、脚式移動ロボットの他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」あるいは「エンターティンメント」という用途が挙げられる。この種のロボットは、ヒトあるいはイヌ(ペット)などの比較的知性の高い脚式歩行動物の動作メカニズムや四肢を利用した豊かな感情表現をエミュレートする。また、予め入力された動作パターンを単に忠実に実行するだけではなく、相手の言葉や態度(「褒める」とか「叱る」、「叩く」など)に対して動的に対応した、生き生きとした応答表現を実現することも要求される。
【0008】
従来の玩具機械は、ユーザ操作と応答動作との関係が固定的であり、玩具の動作をユーザの好みに合わせて変更することはできない。この結果、ユーザは同じ動作しか繰り返さない玩具をやがては飽きてしまうことになる。
【0009】
これに対し、インテリジェントなロボットは、動作に起因する行動モデルや学習モデルを備えており、外部からの音声や画像、触覚などの入力情報に基づいてモデルを変化させて動作を決定することにより、自律的な思考及び動作制御を実現する。ロボットが感情モデルや本能モデルを用意することにより、ロボット自身の感情や本能に従った自律的な行動を表出することができる。また、ロボットが画像入力装置や音声入出力装置を装備し、画像認識処理や音声認識処理を行うことにより、より高度な知的レベルで人間とのリアリスティックなコミュニケーションを実現することも可能となる。
【0010】
また、ユーザ操作などの外部からの刺激を検出したことに応答してこのモデルを変更する、すなわち「学習効果」を付与することによって、ユーザにとって飽きない又は好みに適応した動作パターンを提供することができる。
【0011】
昨今の脚式移動ロボットは高い情報処理能力を備えており、ロボットそのものを一種の計算機システムとして捉えることができる。したがって、ロボット上で実現される動作パターン、あるいは、複数の基本的な動作パターンの組合せによって構成される高度且つ複雑な一連の動作シーケンスは、コンピュータ・プログラミングと同様の作業によって構築される。
【0012】
また、今後ますますロボットの普及率が高まり、産業界のみならず一般家庭や日常生活にもロボットが深く浸透していくことが予想される。とりわけ、エンターティンメント性を追求する製品に関しては、コンピュータやコンピュータ・プログラミングに関する高度な知識を持たない一般消費者層がロボットを購入して使用するケースが多いと予想される。
【0013】
したがって、このような一般ユーザにとっても、ロボットの動作シーケンスを対話的な処理により比較的容易且つ効率的に作成・編集することを支援するためのツール、すなわちオーサリング・システムを提供することが好ましいと考えられる。
【0014】
【発明が解決しようとする課題】
本発明の目的は、所定のシナリオに従ったデータの作成・編集を支援することができる、優れたオーサリング・システム及びオーサリング方法を提供することにある。
【0015】
本発明の更なる目的は、ロボットなどの多関節構造体の所定の動作パターンを記述する一連のコマンド/データの作成・編集を支援することができる、優れたオーサリング・システム及びオーサリング方法を提供することにある。
【0016】
本発明の更なる目的は、ロボットの動作状態を規定する部品の集合を用いて動作パターンの作成・編集を支援することができる、優れたオーサリング・システム及びオーサリング方法を提供することにある。
【0017】
本発明の更なる目的は、各関節アクチュエータの動作など1以上の時系列データの組み合わせからなるロボットのアクションを部品化してコンピュータ・ディスプレイ上に配置するとともに、各アクションの結合関係をディスプレイ上のGUI操作により規定することでロボットのビヘイビアの作成・編集を行うことができる、優れたオーサリング・システム及びオーサリング方法を提供することにある。
【0018】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、多関節構造体のビヘイビアの作成・編集を支援するためのオーサリング・システム又は方法であって、
ユーザから操作画面を介して入力されるコマンドやデータを受容するユーザ入力部又はステップと、
ユーザに対して前記他関節構造体のビヘイビアを作成・編集するための作業場を操作画面上で提供するユーザ提示部又はステップと、
操作画面上におけるユーザ入力に基づいてビヘイビアの構成要素どうしの接続関係を形成して、ビヘイビアを規定するプログラムを生成するプログラム生成部又はステップと、
を具備することを特徴とするオーサリング・システム又は方法である。
【0019】
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【0020】
また、ビヘイビアの構成要素には、アクション、複数のアクションを組み合わせたグループ、分岐、終端を含めることができる。
【0021】
また、アクションは、多関節構造体の各関節の時系列的な動作を記述したモーション・データと、アクションの再生と時間的に同期して音声出力されるサウンド・データと、アクションの再生と時間的に同期して表示出力される表示インジケータの点灯/消滅動作を記述したインジケータ表示データとを、時間軸上で同期的に組み合わせることによって構成される。
【0022】
本発明の第1の側面に係るオーサリング・システム又は方法によれば、アクションを部品化してコンピュータ・ディスプレイ上に配置するとともに、各アクションの結合関係をディスプレイ上のGUI操作により規定することで、フローチャート・エディタの感覚でロボットのビヘイビアの作成・編集を行うことができる。また、ビヘイビアは、アクションの再生順序や、条件分岐、ループを含めることができる。
【0023】
前記ユーザ提示部又はステップは、ビヘイビアの各構成要素間の接続関係をフローチャート編集形式で提示することにより、プログラムに関する知識が深くない一般しょうひ社葬のユーザであっても、GUI画面操作に従って比較的容易にビヘイビアを作成・編集することができる。
【0024】
前記ユーザ提示部又はステップは、ビヘイビアの各構成要素の詳細な属性情報を設定する属性設定画面をユーザに提供するようにしてもよい。
【0025】
また、本発明の第2の側面は、多関節構造体のビヘイビアの作成・編集を支援するための処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
ユーザから操作画面を介して入力されるコマンドやデータを受容するユーザ入力ステップと、
ユーザに対して前記他関節構造体のビヘイビアを作成・編集するための作業場を操作画面上で提供するユーザ提示ステップと、
操作画面上におけるユーザ入力に基づいてビヘイビアの構成要素どうしの接続関係を形成して、ビヘイビアを規定するプログラムを生成するプログラム生成ステップと、
を具備することを特徴とする記憶媒体である。
【0026】
本発明の第2の側面に係る記憶媒体は、例えば、様々なプログラム・コードを実行可能な汎用性のコンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で物理的に提供する媒体である。このような媒体は、例えば、CD(Compact Disc)やFD(Floppy Disc)、MO(Magneto-Optical disc)などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク(ネットワークは無線、有線の区別を問わない)などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムにコンピュータ可読形式で提供することも技術的に可能である。
【0027】
このような記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第2の側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係るオーサリング・システム及びオーサリング方法と同様の作用効果を得ることができる。
【0028】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0029】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【0030】
A.ロボットの構成
図1には、本発明を実施に供される、四肢による脚式歩行を行う移動ロボット1の外観構成を示している。図示の通り、該ロボット1は、四肢を有する動物の形状や構造をモデルにして構成された多関節型の移動ロボットである。とりわけ本実施例の移動ロボット1は、愛玩動物の代表例であるイヌの形状及び構造を模してデザインされたペット型ロボットという側面を有し、例えば人間の住環境において人間と共存するとともに、ユーザ操作に応答した動作表現することができる。
【0031】
移動ロボット1は、胴体部ユニット2と、頭部ユニット3と、尻尾4と、四肢すなわち脚部ユニット6A〜6Dで構成される。
【0032】
頭部ユニット3は、ロール、ピッチ及びヨーの各軸方向(図示)の自由度を持つ首関節7を介して、胴体部ユニット2の略前上端に配設されている。また、頭部ユニット3には、イヌの「目」に相当するCCD(Charge Coupled Device:電荷結合素子)カメラ15と、「耳」に相当するマイクロフォン16と、「口」に相当するスピーカ17と、触感に相当するタッチセンサ18と、複数のLEDインジケータ19が搭載されている。これら以外にも、生体の五感を構成するセンサを含んでいても構わない。
【0033】
尻尾4は、ロール及びピッチ軸の自由度を持つ尻尾関節8を介して、胴体部ユニット2の略後上端に湾曲若しくは揺動自在に取り付けられている。
【0034】
脚部ユニット6A及び6Bは前足を構成し、脚部ユニット6C及び6Dは後足を構成する。各脚部ユニット6A〜6Dは、それぞれ、大腿部ユニット9A〜9D及び脛部ユニット10A〜10Dの組み合わせで構成され、胴体部ユニット2の底面の前後左右の各隅部に取り付けられている。大腿部ユニット9A〜9Dは、ロール、ピッチ、ヨーの各軸の自由度を持つ股関節11A〜11Dによって、胴体部ユニット2の各々の所定部位に連結されている。また、大腿部ユニット9A〜9Dと脛部ユニット10A〜10Dの間は、ロール及びピッチ軸の自由度を持つ膝関節12A〜12Dによって連結されている。
【0035】
図示のように構成された脚式移動ロボット1は、後述する制御部からの指令により各関節アクチュエータを駆動することによって、例えば、頭部ユニット3を上下左右に振らせたり、尻尾4を振らせたり、各足部ユニット6A〜6Dを同期協調的に駆動させて歩行や走行などの動作を実現することができる。
【0036】
なお、移動ロボット1の関節自由度は、実際には各軸毎に配備され関節アクチュエータ(図示しない)の回転駆動によって提供される。また、脚式移動ロボット1が持つ関節自由度の個数は任意であり、本発明の要旨を限定するものではない。
【0037】
図2には、移動ロボット1の電気・制御系統の構成図を模式的に示している。
同図に示すように、移動ロボット1は、全体の動作の統括的制御やその他のデータ処理を行う制御部20と、入出力部40と、駆動部50と、電源部60とで構成される。以下、各部について説明する。
【0038】
入出力部40は、入力部として移動ロボット1の目に相当するCCDカメラ15や、耳に相当するマイクロフォン16、触感に相当するタッチセンサ18、あるいは五感に相当するその他の各種のセンサを含む。また、出力部として、口に相当するスピーカ17、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するLEDインジケータ19などを装備している。これら出力部は、脚などによる機械運動パターン以外の形式で移動ロボット1からのユーザ・フィードバックを表現することができる。
【0039】
移動ロボット1は、カメラ15を含むことで、作業空間上に存在する任意の物体の形状や色彩を認識することができる。また、移動ロボット1は、カメラのような視覚手段の他に、赤外線、音波、超音波、電波などの発信波を受信する受信装置をさらに備えていてもよい。この場合、各伝送波を検知するセンサ出力に基づいて発信源からの位置や向きを計測することができる。
【0040】
駆動部50は、制御部20が指令する所定の運動パターンに従って移動ロボット1の機械運動を実現する機能ブロックであり、首関節7、尻尾関節8、股関節11A〜11D、膝関節12A〜12Dなどのそれぞれの関節におけるロール、ピッチ、ヨーなど各軸毎に設けられた駆動ユニットで構成される。図示の例では、移動ロボット1はn個の関節自由度を有し、したがって駆動部50はn個の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行うモータ51と、モータ51の回転位置を検出するエンコーダ52と、エンコーダ52の出力に基づいてモータ51の回転位置や回転速度を適応的に制御するドライバ53の組み合わせで構成される。
【0041】
電源部60は、その字義通り、移動ロボット1内の各電気回路等に対して給電を行う機能モジュールである。本実施例に係る移動ロボット1は、バッテリを用いた自律駆動式であり、電源部60は、充電バッテリ61と、充電バッテリ61の充放電状態を管理する充放電制御部62とで構成される。
【0042】
充電バッテリ61は、例えば、複数本のニッケル・カドミウム電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【0043】
また、充放電制御部62は、バッテリ61の端子電圧や充電/放電電流量、バッテリ61の周囲温度などを測定することでバッテリ61の残存容量を把握し、充電の開始時期や終了時期などを決定するようになっている。充放電制御部62が決定する充電の開始及び終了時期は制御部20に通知され、移動ロボット1が充電オペレーションを開始及び終了するためのトリガとなる。
【0044】
制御部20は、「頭脳」に相当し、例えば移動ロボット1の頭部ユニット3あるいは胴体部ユニット2に搭載される。
【0045】
図3には、制御部20の構成をさらに詳細に図解している。同図に示すように、制御部20は、メイン・コントローラとしてのCPU(Central Processing Unit)21が、メモリその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス27は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。バス27上の各装置にはそれぞれに固有のアドレス(メモリ・アドレス又はI/Oアドレス)が割り当てられている。CPU21は、アドレス指定することによってバス28上の特定の装置と通信することができる。
【0046】
RAM(Random Access Memory)22は、DRAM(Dynamic RAM)などの揮発性メモリで構成された書き込み可能メモリであり、CPU21が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的な保存のために使用される。
【0047】
ROM(Read Only Memory)23は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ROM23に格納されるプログラム・コードには、移動ロボット1の電源投入時に実行する自己診断テスト・プログラムや、移動ロボット1の動作を規定する動作制御プログラムなどが挙げられる。
【0048】
ロボット1の制御プログラムには、カメラ15やマイクロフォン16などのセンサ入力を処理する「センサ入力処理プログラム」、センサ入力と所定の動作モデルとに基づいて移動ロボット1の行動すなわち運動パターンを生成する「行動命令プログラム」、生成された運動パターンに従って各モータの駆動やスピーカ17の音声出力などを制御する「駆動制御プログラム」などが含まれる。生成される運動パターンには、通常の歩行運動や走行運動以外に、「お手」、「お預け」、「お座り」や、「ワンワン」などの動物の鳴き声の発声などエンターティンメント性の高い動作を含んでいてもよい。
【0049】
また、ロボット1のその他の制御プログラムとして、オーサリング・ツールを用いて作成・編集された各種の行動シーケンス・プログラムが含まれる。オーサリング・ツールは、例えばロボット1外部に設置されたコンピュータ・システム上で所定のソフトウェア実行環境下で起動する。但し、オーサリング・ツール並びに該ツール上で作成・編集されるプログラムついては後に詳解する。
【0050】
不揮発性メモリ24は、例えばEEPROM(Electrically Erasable and Programmable ROM)のように、電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、例えば、製造番号や暗号鍵などのセキュリティ情報や、移動ロボット1の行動パターンを規定する各種モデルなどが挙げられる。
【0051】
インターフェース25は、制御部20外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース25は、例えば、カメラ15やマイクロフォン16、スピーカ17との間でデータ入出力を行う。また、インターフェース25は、駆動部50内の各ドライバ53−1…との間でデータやコマンドの入出力を行う。
【0052】
また、インターフェース25は、RS(Recommended Standard)−232Cなどのシリアル・インターフェース、IEEE(Institute of Electrical and electronics Engineers)1284などのパラレル・インターフェース、USB(Universal Serial Bus)インターフェース、i−Link(IEEE1394)インターフェース、SCSI(Small Computer System Interface)インターフェース、メモリ・カード・インターフェースなどのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行うようにしてもよい。
【0053】
また、インターフェース25の他の例として、赤外線通信(IrDA)インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
【0054】
さらに、制御部20は、無線通信インターフェース26やネットワーク・インターフェース・カード(NIC)27などを含み、"bluetooth"や".11B"のような近接無線通信、あるいはLAN(Local Area Network:例えばEthernet)やインターネットを経由して、外部のホスト・コンピュータ100とデータ通信を行うことができる。
【0055】
このような移動ロボット1とホストコンピュータ100間におけるデータ通信の1つの目的は、ロボット1外部(すなわち遠隔)のコンピュータ資源を用いて、移動ロボット1の複雑な動作制御を演算したり、リモート・コントロールすることである。
【0056】
また、該データ通信の他の目的は、動作モデルやその他のプログラム・コードなどロボット1の動作制御に必要なデータやプログラムを、ネットワーク経由で遠隔の装置から移動ロボット1に供給することにある。
【0057】
また、該データ通信の他の目的は、ホスト・コンピュータ100上でオーサリング・ツール(後述)を用いて作成・編集したロボット動作制御用プログラムのダウンロードや、このような動作制御用プログラムのホスト・コンピュータ100とロボット1との協働的動作によるリアルタイムのデバッグ処理である。
【0058】
制御部20は、テンキー及び/又はアルファベット・キーからなるキーボード29を備えておいてもよい。キーボード29は、ロボット1の作業現場においてユーザが直接的なコマンド入力のために使用する他、パスワードなどの所有者認証情報の入力に用いられる。
【0059】
本実施例に係る移動ロボット1は、制御部20が所定の動作制御プログラムを実行することによって、自律的(すなわち人手が介在しない)な動作を行うことができる。また、画像入力(すなわちカメラ15)、音声入力(すなわちマイク16)、タッチセンサ18などの人間や動物の五感に相当する入力装置を備えるとともに、これら外部入力に応答した理性的又は感情的な行動を実行するインテリジェンスを備えている。
【0060】
図1〜図3に示すように構成された移動ロボット1は、以下のような特徴がある。すなわち、
【0061】
(1)ある姿勢から他の姿勢へ遷移するように指示されたとき、各姿勢間を直接に遷移せず、あらかじめ用意された無理のない中間的な姿勢を経由して遷移することができる。
(2)姿勢遷移で任意の姿勢に到達したときに通知を受け取ることができる。
(3)頭部、足部、尻尾部などの各ユニット単位で姿勢を独立して管理しながら姿勢制御することができる。すなわち、ロボット1の全体の姿勢とは別に各ユニット毎に姿勢を管理することができる。
(4)動作命令の動作の詳細を示すためのパラメータを渡すことができる。
【0062】
図3に示すように、本実施例に係る移動ロボット1は、ネットワーク経由で外部のホスト・コンピュータ100と相互接続されている。あるいは、ホスト・コンピュータ100とは、無線通信(例えば、bluetoothや.11B近距離無線データ通信)やその他の通信手段によって接続されていてもよい。
【0063】
ホスト・コンピュータ100上では、所定のソフトウェア実行環境が構築され、該環境下では、オーサリング・ツールを起動して、ロボット1の動作シーケンスを対話的な処理により比較的容易且つ効率的に作成・編集することができる。但し、オーサリング・ツールの詳細については後述する。
【0064】
図4には、ホスト・コンピュータ100のハードウェア構成例を模式的に図解している。以下、コンピュータ100内の各部について説明する。
【0065】
システム100のメイン・コントローラであるCPU(Central Processing Unit)101は、オペレーティング・システム(OS)の制御下で、各種のアプリケーションを実行するようになっている。OSは、より好ましくはGUI(Graphical User Interface)環境を提供するが、例えば、UNIX、又は、米Microsoft社のWindows98/NTでよい。
【0066】
図示の通り、CPU101は、バス107によって他の機器類(後述)と相互接続されている。バス107上の各機器にはそれぞれ固有のメモリ・アドレス又はI/Oアドレスが付与されており、CPU101はこれらアドレスによって特定の機器へのアクセスが可能となっている。バス107は、データ・バス、アドレス・バス、コントロール・バスを含んだ共通信号伝送路であるが、その一例はPCI(Peripheral Component Interconnect)バスである。
【0067】
メモリ102は、プロセッサ101において実行されるプログラム・コードを格納したり、実行中の作業データを一時保管するために使用される記憶装置である。同図に示すメモリ102は、不揮発及び揮発メモリ双方を含むものと理解されたい。
【0068】
ディスプレイ・コントローラ103は、CPU101が発行する描画命令を実際に処理するための専用コントローラであり、例えばSVGA(Super Video Graphic Array)又はXGA(eXtended Graphic Array)相当のビットマップ描画機能をサポートする。ディスプレイ・コントローラ103において処理された描画データは、例えばフレーム・バッファ(図示しない)に一旦書き込まれた後、表示装置111に画面出力される。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイや、液晶表示ディスプレイ(Liquid Crystal Display)などである。
【0069】
入力機器インターフェース104は、キーボード112やマウス113などのユーザ入力機器をシステム100に接続するための装置である。入力機器インターフェース104は、キーボード112によるキー入力又はマウス113を介した座標指示入力に応答して、CPU101に対して割り込みを発生する。
【0070】
ネットワーク・インターフェース105は、Ethernetなどの所定の通信プロトコルに従って、システム100をLAN(Local Area Network)などのネットワークに接続したり、あるいはbluetoothや.11Bのような近距離無線データ通信に接続することができる。ネットワーク・インターフェース105は、一般に、LANアダプタ・カードの形態で提供され、マザーボード(図示しない)上のPCIバス・スロットの装着して用いられる。
【0071】
図3に示す例では、ホスト・コンピュータ100は、無線データ通信やネットワーク経由でロボット1と相互接続されているが、勿論、他の通信手段やデータ移動手段によって両者が接続されていてもよい。例えば、メモリ・カード(メモリ・スティック)のような記録メディアを介してデータの交換や移動を行うようにしてもよい。
【0072】
またネットワーク上では、複数のホスト・コンピュータ(図示しない)がトランスペアレントな状態で接続され、分散コンピューティング環境が構築されている。ネットワーク上では、ソフトウェア・プログラムやデータ・コンテンツなどの配信が行われる。例えば、本実施例に係るオーサリング・ツールや、該オーサリング・ツールで作成・編集したロボット用行動シーケンス・プログラム(さらには、行動シーケンスの素となるアクション・ファイル、モーション・ファイル、サウンド・ファイル、LED動作ファイル)などを、ネットワーク経由で配信することができる。また、このようなプログラム/データのネットワーク配信サービスを有料又は無料で行ってもよい。
【0073】
外部機器インターフェース106は、ハード・ディスク・ドライブ(HDD)114やメディア・ドライブ115などの外部装置をシステム100に接続するための装置である。外部機器インターフェース106は、例えば、IDE(Integrated Drive Electronics)やSCSI(Small Computer System Interface)などのインターフェース規格に準拠する。
【0074】
HDD114は、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり(周知)、記憶容量やデータ転送速度などの点で他の外部記憶装置よりも優れている。ソフトウェア・プログラムを実行可能な状態でHDD116上に置くことをプログラムのシステムへの「インストール」と呼ぶ。通常、HDD114には、プロセッサ511が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。例えば、本実施例に係るオーサリング・ツールや、該オーサリング・ツールを用いて作成・編集したロボット用行動シーケンス・プログラム(さらには、行動シーケンスの素となるアクション・ファイル、モーション・ファイル、サウンド・ファイル、LED動作ファイルなど)を、HDD114上にインストールすることができる。
【0075】
また、メディア・ドライブ115は、CD(Compact Disc)やMO(Magneto-Optical disc)、DVD(Digital Versatile Disc)などの可搬型メディアを装填して、データ記録面にアクセスするための装置である。
【0076】
可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式のデータとしてバックアップすることや、これらをシステム間で移動(すなわち販売・流通・配布を含む)する目的で使用される。例えば、本実施例に係るオーサリング・ツールや、該オーサリング・ツールを用いて作成したロボット用行動シーケンス・プログラム(さらには、行動シーケンスとなるアクション・ファイル、モーション・ファイル、サウンド・ファイル、LED動作ファイル)などを、これら可搬型メディアを利用して機器間で物理的に流通・配布することができる。
【0077】
なお、図4に示すようなホスト・コンピュータ100の一例は、米IBM社のパーソナル・コンピュータ"PC/AT(Personal Computer/Advanced Technology)"の互換機又は後継機である。勿論、他のアーキテクチャを備えた計算機システムを、本実施形態に係るホスト・コンピュータ100として適用することも可能である。
【0078】
B.オーサリング システムの構成
本実施例では、ロボット1の所定の動作パターンを記述する一連のコマンド/データからなる動作制御プログラムを、ホスト・コンピュータ100上で起動したオーサリング・ツールを用いて作成・編集することができる。また、このオーサリング・ツールを用いて作成・編集した動作制御プログラムを、例えばbluetoothや.11Bなどの無線通信手段を用いてロボット1側に転送して、ホスト・コンピュータ100とロボット1との協働的動作によりデバッグ処理を行うようになっている。すなわち、ホスト・コンピュータ100とロボット1間の有機的な結合により、移動ロボット1の動作制御プログラムの作成・編集を支援するためのオーサリング・システムが構築されている訳である。
【0079】
図5には、オーサリング・システムの全体構成を模式的に図解している。
【0080】
ホスト・コンピュータ100側では、ユーザは、オーサリング・ツールが提供するGUI(Graphical User Interface)画面を用いてマウス操作により移動ロボット1の規定の行動シーケンスを作成・編集することができる(但し、行動シーケンス作成用のGUI画面並びに該GUI画面上での編集操作の詳細については後述に譲る)。あるいは、ユーザは、通常のテキスト・エディタなどを用いて、スクリプト形式(例えばC言語などの高級言語形式)でロボット1の動作制御プログラムを作成・編集することができる。
【0081】
オーサリング・ツールは、ユーザがGUI画面上で作成・編集した行動シーケンスや、テキスト・エディタ上で作成・編集したスクリプト形式の動作制御プログラムを、"RCODE"と呼ばれるアセンブラに類似する形式のニーモニック・コードに変換する。
【0082】
ここで言うRCODEとは、簡単なコマンドを用いてロボット1を制御するように策定されたプログラム言語である。RCODEは、"IF"や"GO"などの基本的な制御構造も備えているので、ロボット制御用最低水準スクリプト言語としても使用することができる。
【0083】
ホスト・コンピュータ100上で作成・編集されたRCODE動作制御プログラムは、例えば、メモリ・スティックなどのメディアを利用してロボット1側に移動することができる。また、RCODE動作制御プログラムのデバッグ時には、RCODEプログラムを1行ごとに取り出して、暗号化して、bluetoothや.11Bなどの無線通信手段を利用してロボット1側に逐次転送するようになっている。
【0084】
他方、ロボット1側では、RCODEなどで記述された動作制御プログラムの実行及びデバッグ環境として、インタープリタ/デバッガと、ミドルウェアと、ドライバと、オペレーティング・システム(OS)とを備えている。
【0085】
インタープリタは、RCODE形式で記述されたプログラムを1行ずつ読み込んで解釈して実行する高水準言語プログラムである。但し、デバッグ時などにおいて、ホスト・コンピュータ100側から暗号化された形式でRCODEプログラムが送信される場合には、インタープリタは、これを一旦復号化してから解釈・実行を行う必要がある。
【0086】
デバッガは、RCODEプログラム中の誤り(バグ)を発見して、修正する作業を支援するプログラムである。すなわち、デバッガによれば、プログラムを指定した行で実行を止めたり、そのときのメモリや変数の内容を参照することができる。
【0087】
ミドルウェアは、ロボット1の基本的な機能を提供するソフトウェア・モジュールの集まりであり、各モジュールの構成はロボット1の機械的・電気的な特性や仕様、形状などハードウェア属性の影響を受ける。ミドルウェアは、機能的に、認識系のミドルウェアと出力系のミドルウェアに大別される。
【0088】
認識系のミドルウェアは、画像データや音声データ、その他のセンサから得られる検出データなど、ハードウェアからの生データを仮想ロボット経由で受け取ってこれらを処理するエンジンである。すなわち、各種入力情報に基づき、音声認識、距離検出、姿勢検出、接触、動き検出、色認識などの処理を行い、認識結果を得る。認識結果は、上位のアプリケーション層(行動シーケンス・プログラム)に通知される。
【0089】
一方、出力系のミドルウェアでは、歩行、動きの再生、出力音の合成、LEDインジケータの点滅制御などの機能を提供する。すなわち、アプリケーション層において立案された行動計画を受け取って、ロボット1の各機能毎にロボットの各ジョイントのサーボ指令値や出力音、出力光(LED)、出力音声などを生成して、ロボット1上で実演する。
【0090】
ドライバは、各関節アクチュエータやその他のハードウェアの操作を行うためのプログラム・コードである。
【0091】
本実施例では、ミドルウェア並びにドライバは、オブジェクト指向プログラムによって実装されている。オブジェクト指向に基づくソフトウェアは、基本的に、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、必要に応じて複数のオブジェクトを作成したり組み合わせることで1つのソフトウェアが完成する。一般に、オブジェクト指向プログラミングによれば、ソフトウェアの開発と保守が効率化されると考えられている。
【0092】
オペレーティング・システム(OS)は、これらオブジェクト間のデータ通信の管理や、その他のプログラム実行に関する制御を行う。OSもオブジェクト指向プログラムにより実装される。
【0093】
C.オーサリング ツールを用いたロボット用動作プログラムの作成 編集
本実施例に係るオーサリング・ツールを用いて作成された動作シナリオは、「ビヘイビア」の作成・編集と、「アクション」の作成・編集とで成り立つ。ビヘイビアやアクションを制作するために必要となる情報は、「プロジェクト」と呼ばれるファイルにまとめて管理される。
【0094】
アクションは、時間軸上で同期がとられたモーション・ファイルとサウンド・ファイルとLED動作ファイルという各コンテンツを統合することによって構成される。1つのアクション・ファイルは、概ね10秒程度で再生されるコマンド(「セマンティックス」とも呼ぶ)である。
【0095】
モーション・ファイルは、移動ロボット1の各関節アクチュエータの動作を規定するファイルである。本実施例では、GUI編集画面上で、移動ロボット1に所望のポーズをとらせた様子を描写した2以上のキーフレームを時系列的に配置することによって、モーションを規定することができる(後述)。
【0096】
サウンド・ファイルは、スピーカ17を介して音声出力するための音響データであり、例えばMIDI(Musical Instrumental Digital Interface)やWAVE形式のファイルとして構成される。例えば、MIDI形式で記述された音響ファイルは、音そのものの情報としてではなく、大きさ、長さ、音色や効果といった演奏情報を数値データに変換して音楽を表現することができる。本実施例では、GUI編集画面を介して、音響を構成するMIDI形式の各数値データを操作することによって演奏情報を編集することができる(後述)。
【0097】
LED動作ファイルは、複数のLEDインジケータ19の点灯動作の組み合わせや点滅のタイミングを規定するためのデータであり、顔の表情を形成することを目的として利用される。本実施例では、LED動作ファイルはMIDI形式で記述され、GUI編集画面を介してLED動作ファイルを自在に編集することができる(後述)。
【0098】
本実施例では、後述するように、GUI形式のアクション編集画面上でタイムラインを利用することによって、モーション、サウンド、LED動作などの各コンテンツ間の同期を容易にとることができるアクション編集のための作業環境が提供される。また、各コンテンツを個々のデータとして処理することができる他、他のコンテンツと統合した形式すなわちアクションの形式としても取り扱うことができる。
【0099】
「ビヘイビア」とは、2以上のコマンドすなわちアクションを並べていくことにより構成される、移動ロボット1の振る舞いを規定するファイルである(図6を参照のこと)。アクションはスタートからエンドまで一方向で再生される。これに対して、ビヘイビアは、アクションを再生する順序を規定することができる。さらに、条件や確率に基づいた分岐や(図7を参照のこと)、複数のコマンドすなわちアクションをボックス化してサブルーチンを定義することができる(図8を参照のこと)。したがって、ビヘイビアは、アクションに比し、移動ロボット1のより高度で複雑な行動シーケンスを記述することができる。
【0100】
プロジェクトは、移動ロボット1のコンフィギュレーション(CPC:Configured Peripheral Component)と、オーサリング・システム上で制作されるビヘイビア・ファイル及びアクション・ファイルの参照リストを保持する。また、プロジェクトは、アクション・ファイルを制作するために必要な素材(コンテンツ)・ファイル(すなわち、モーション、サウンド、LED動作)の参照リストも保持する。ここで言うコンフィギュレーションとは、胴体、頭部、脚部などのロボット1の物理コンポーネントの組み合わせからなるハードウェア構成情報が設定されている。
【0101】
プロジェクト編集時には、図34に示すような「プロジェクト・ウィンドウ」が表示される。図示の通り、プロジェクト・ウィンドウ内には、ビヘイビアの編集並びにアクションの編集に使用される、ビヘイビア・ファイル、アクション・ファイル、モーション・ファイル、サウンド・ファイル、LED動作ファイルなどの各ファイルのリストがツリー形式で表示されるようになっている。
【0102】
本実施例に係るオーサリング・システムは、機能的には、モーション、サウンド、LED動作などの各コンテンツからなるコマンドすなわちアクションを編集する「アクション編集サブシステム」と、2以上のコマンドすなわちアクションを並べていくことによりロボットのビヘイビアを編集する「ビヘイビア編集サブシステム」とで構成される。
【0103】
C−1.アクション編集サブシステム
アクション編集サブシステムは、ロボットの行動シーケンスすなわちビヘイビアで使用される個々のアクションを作成・編集するためのサブシステムである。
【0104】
アクションは、アクションを実行するための時間的な長さを持ち、初期ポーズと最終ポーズを規定する。実行時間内でのロボットの動き(モーション)と、サウンドと、LED動作などを設定により、アクションが構成される。アクションを規定するファイルのことを「アクション・ファイル」と呼ぶ。アクションが使用するモーション、サウンド、LED動作などのコンテンツはファイル外からの読み込みでもよい。
【0105】
後述するように、本実施例におけるアクション編集は時間軸上に従った編集を中心としたグラフィカルなユーザ・インターフェース、すなわち「アクション・エディタ」を採用する。アクション編集の中で、モーションを規定するポーズの3D編集、サウンド、LED動作など各コンテンツの編集を行う。これらのコンテンツは時系列データであり、アクション編集サブシステムは、各コンテンツを表示するチャンネルを2次元的なタイムライン形式のタイム・テーブル上で時間軸に沿って配置して表示するようにしているので、各時系列データ間での同期を視覚的に確認しながら作成・編集することができる。
【0106】
図9には、アクション編集サブシステムの機能構成を模式的に示している。同図に示すように、本実施例に係るアクション編集サブシステムは、特にアクションの編集向けにデザインされたものであり、アクション編集部と、キーフレーム編集部と、モーション編集部と、サウンド編集部と、LED動作編集部と、これら各機能モジュールによるユーザの編集作業をGUI画面による対話形式で実現するユーザ・インターフェース制御部とで構成される。
【0107】
アクション編集部は、モーション・ファイルとサウンド・ファイルとLED動作ファイルとを時間軸上で同期がとられる形式で編集を行うための機能モジュールである。アクション編集部は、ユーザ・インターフェース制御部を介して、移動ロボット1の時間軸に沿った関節動作(モーション)と、サウンド及びLED動作のタイミングを設定するためのアクション編集ウィンドウをユーザに提示する。アクション編集ウィンドウは、各種のファイルを時間軸上で設定するためのタイムライン形式のテーブルからなる編集領域を備えている。
【0108】
キーフレーム編集部は、キーフレーム、すなわちモーションを実行する移動ロボットの該当する時刻におけるポーズを描写した画像フレームを編集するための機能モジュールである。キーフレーム編集部は、アクション編集部に対するユーザ操作に応答して呼び出され、アクション編集ウィンドウ上で開かれるキーフレーム・チャンネルを介してユーザによる編集作業を受容する。キーフレーム・チャンネルでは、時間軸上の該当する各場所にキーフレームを表すサムネイルが置かれる。
【0109】
モーション編集部は、モーションすなわち移動ロボットを構成する各関節アクチュエータの時系列的な動作を編集するための機能モジュールである。モーション編集部は、アクション編集部に対するユーザ操作に応答して呼び出され、アクション編集ウィンドウ上で開かれるモーション・チャンネルを介してユーザによる編集作業を受容する。モーション・チャンネルでは、各関節アクチュエータの時系列的な動作を記述する各タイミングチャートが、生体モデルに従ってツリー状にリストアップ(ツリー・ビュー)される。
【0110】
サウンド編集部は、アクションの構成要素の1つであるサウンドの詳細を設定するための機能モジュールである。本実施例では、サウンドは、MIDI形式又はWAVE形式で扱われる。サウンド編集部は、ユーザ・インターフェース制御部を介して、時間軸上に沿ってサウンドの詳細を設定するためのサウンド詳細ウィンドウをユーザに提示する。サウンド詳細ウィンドウは、横方向の時間軸と、縦方向のチャンネルで構成される2次元のタイムライン形式のテーブルからなる編集領域を備えている(後述)。
【0111】
LED動作編集部は、アクションの構成要素の1つであるLED動作の詳細を設定するための機能モジュールである。本実施例では、LED動作は、MIDI形式で扱われる。LED動作編集部は、ユーザ・インターフェース制御部を介して、時間軸上に沿ってLED動作の詳細を設定するためのLED詳細ウィンドウをユーザに提示する。LED詳細ウィンドウは、横方向の時間軸と、縦方向のチャンネルで構成される2次元のタイムライン形式のテーブルからなる編集領域を備えている(後述)。
【0112】
ユーザ・インターフェース制御部は、プロジェクト編集時にはプロジェクト・ウィンドウ(前述)をユーザに提示するようになっている。
【0113】
また、ユーザ・インターフェース制御部は、各編集ウィンドウを介したユーザ指示に応答して、ビヘイビア・ファイル、アクション・ファイル、モーション・ファイル,サウンド・ファイル、LED動作ファイルを管理する各ファイル・システム(又はデータベース)にアクセスできるようになっている。
【0114】
図10には、アクション編集ウィンドウの構成を概略的に示している。このアクション編集ウィンドウ上では、移動ロボット1の時間軸に沿った関節動作(モーション)と、サウンド及びLED動作のタイミングを設定することができる。
該編集ウィンドウでの編集結果は、拡張子"act"を持つアクション・ファイルとして保存される。
【0115】
図示の通り、アクション編集ウィンドウの編集領域は、横方向の時間軸と、縦方向のチャンネルで構成される2次元のタイムライン形式のテーブルである。タイムライン・テーブル内には、時間ルーラと、キーフレーム・チャンネルと、モーション・チャンネルと、サウンド・チャンネルと、LED動作チャンネルで構成される。
【0116】
時間ルーラは、単位切り替えラジオ・ボタンを利用して、実時間表示とのフレーム数表示とを切り替えることができる(図10に示す例では実時間表示が選択されている)。実時間表示の目盛の単位は、秒:ミリ秒(各2桁)表示とする。
【0117】
時間ルーラは、単位切り替えラジオ・ボタンの他に、終了時刻フィールドとカレント時刻表示フィールドを含んでいる。
【0118】
終了時刻フィールドには、編集中のアクションの終了時刻(すなわち動作時間)を示す時刻数値が表示される(図示の例では"09:40"(=9秒40)が表示されている)。また、カレント時刻表示フィールドには、カレント位置の時刻数値が表示される(図示の例では"04:60"(=4秒60)が表示されている)。これらのフィールドは編集可能なテキスト・フィールドであり、意味のある時刻数字が入力されると、それが終了時刻になって最終キーフレームが移動したり、あるいはその位置にカレント時刻が移動する。
【0119】
編集領域内では、時刻表示ラインとして、「キーフレーム・ライン」と、「最終時刻表示ライン」と、「カレント時刻ライン」がそれぞれ表示される。
【0120】
各キーフレームの時刻を示すキーフレーム・ラインが、各チャンネル上を交差する形で表示されるようにしている。したがって、ユーザは、モーション、サウンド、LED動作という各コンテンツの間での同期を目視で確認しながら編集作業を行うことができる。
【0121】
また、編集中のアクションの終了時刻を示す終了時刻ラインが各チャンネル上を交差する形で表示するようにしているので、ユーザは編集対象となる時間の範囲を視覚的に理解することができる。終了時刻ラインを最終ポーズ・キーフレーム・ラインととらえることもできる。
【0122】
また、現在時刻を示すカレント時刻ラインが各チャンネル上を交差する形で表示するようにしている。基本的に、いずれかのチャンネルの上をクリックすると、その位置にカレント時刻が移動する。
【0123】
キーフレーム・チャンネルは、時間ルーラが規定する時間軸に従ってキーフレームを表示するための領域である。
【0124】
図10に示す例では、キーフレーム・チャンネルは、開閉操作可能である。図11には、キーフレーム・チャンネルを開いた状態(キーフレーム詳細チャンネル)のアクション編集ウィンドウを示している。キーフレーム・チャンネルでは、時間軸上の該当する各場所にキーフレームを表すサムネイルが置かれる。ここで言う「キーフレーム」とは、モーションを実行する移動ロボットの該当する時刻におけるポーズを描写した画像フレームのことである。
【0125】
初期ポーズと最終ポーズは、それぞれキーフレーム・チャンネルの初めと終わりに位置する特別なキーフレームである。最初と最後のキーフレームはあらかじめ置かれている。
【0126】
キーフレーム・チャンネル上で、キーフレームが配置されていない時間では、この時間を挟む両端のキーフレームによって補間されるフレーム(以下では、「補間フレーム」とも言う)が再生されることになる。補間フレームはキーフレーム上では表示されない。本実施例に係るオーサリング・システムでは、キーフレーム・チャンネル上に各キーフレームを配置すると、各キーフレームで記述されたポーズを円滑につなぎ合わせるようなモーションが、コンピュータ処理により自動生成される。また、3Dモデルの重心を各キーフレームで設定して、3Dモデルの見た目上の動きを実機に近いものにすることができる。
【0127】
各キーフレームは、サムネイルの左端がキーフレームの時刻となるように、キーフレーム・チャンネル上に配置される。また、サムネイルを時間軸に沿って左右にドラッグすることで、キーフレームラインが追従して移動し、該当するキーフレームの時刻を変更することができる。また、最終ポーズのキーフレームの伸縮は、アクションの全体時間の伸縮となる。
【0128】
サムネイルをダブル・クリックすると、該当するポーズのポーズ編集ウィンドウが開いて、ポーズを編集することができる。但し、初期ポーズと最終ポーズは編集対象外であり、これらをダブルクリックしてもポーズ編集ウィンドウは開かない。
【0129】
モーション・チャンネルは、時間ルーラが規定する時間軸に沿ってモーションの内容を編集・表示するための領域である。
【0130】
本実施例では、モーション・チャンネルは、開閉操作可能である。図12には、モーション・チャンネルを開いた状態(モーション詳細チャンネル)のアクション編集ウィンドウを示している。モーションは、移動ロボット1を構成する各関節アクチュエータの動作によって定義される。モーション・チャンネルでは、各関節アクチュエータの時系列的な動作を記述する各タイミングチャートが、生体モデルに従ってツリー状にリストアップ(ツリー・ビュー)される。
【0131】
それぞれのタイミングチャート上の折れ線グラフは、該当する関節アクチュエータの動きすなわち回転角度の時間的変化を示している。キーフレーム・ラインと折れ線との交差するポイントを上下にドラッグすることによって、該当する関節アクチュエータの当該時間における設定値を変更することができる。また、このようなドラッグ操作の結果、キーフレーム・ラインに該当するポーズも変化し、キーフレームの内容も自動更新される。
【0132】
サウンド・チャンネルは、時間ルーラが規定する時間軸に沿ってサウンド・データを表示するための領域である。本実施例では、アクション編集ウィンドウからは独立した「サウンド詳細ウィンドウ」を開いて、該ウィンドウ上でMIDI形式のサウンド・データをGUI操作によって編集することができる。
【0133】
LED動作チャンネルは、時間ルーラが規定する時間軸に沿ってLED動作データを表示するための領域である。本実施例では、アクション編集ウィンドウからは独立した「LED詳細ウィンドウ」を開いて、該ウィンドウ上でMIDI形式のLED動作データをGUI操作で編集することができる。
【0134】
図13には、MIDI形式のサウンド・ファイルを編集するためのサウンド詳細ウィンドウの構成を概略的に示している。図示の通り、このサウンド詳細ウィンドウの編集領域は、横方向の時間軸と、縦方向のチャンネルで構成される2次元のタイムライン形式のテーブルである。タイムライン・テーブル内は、時間ルーラと、キーフレーム・チャンネルと、スコア・チャンネルと、ベロシティ・チャンネルとで構成される。
【0135】
時間ルーラは、単位切り替えラジオ・ボタンを利用して、実時間表示とのフレーム数表示とを切り替えることができる(図13に示す例では実時間表示が選択されている)。時間ルーラには、単位切り替えラジオ・ボタンの他に、終了時刻フィールドとカレント時刻表示フィールドを含んでいる。終了時刻フィールドには、編集中のアクションの終了時刻を示す時刻数値が表示され、カレント時刻表示フィールドには、カレント位置の時刻数値が表示される。これらのフィールドに意味のある時刻数字が入力されると、それが終了時刻になって最終キーフレームが移動したり、あるいはその位置にカレント時刻が移動する。
【0136】
編集領域内では、時刻表示ラインとして、「キーフレーム・ライン」と、「最終時刻表示ライン」と、「カレント時刻ライン」がそれぞれ表示される。各キーフレーム(後述)の時刻を示すキーフレーム・ラインが、各チャンネル上を交差する形で表示されており、ユーザは、キーフレームとの同期を目視で確認しながらMIDIサウンドの編集作業を行うことができる。また、編集中のアクションの終了時刻を示す終了時刻ラインが各チャンネル上を交差する形で表示するようにしているので、ユーザは編集対象となる時間の範囲を視覚的に理解することができる。また、現在時刻を示すカレント時刻ラインが各チャンネル上を交差する形で表示するようにしている。基本的に、いずれかのチャンネルの上をクリックすると、その位置にカレント時刻が移動する。
【0137】
キーフレーム・チャンネルでは、時間ルーラが規定する時間軸に沿ってアクション編集ウィンドウから取得したキーフレーム位置が表示される。
【0138】
スコア・チャンネルは、GUI操作によってMIDIサウンドを編集するための領域であり、ピアノ鍵盤(但し、移動ロボット1のモデルによってその有効音域は相違する)と、時間軸方向の基本グリッドによって構成される。
【0139】
ピアノ鍵盤では、ピアノ鍵盤のイメージ表示により移動ロボット1のハードウェア仕様などで許容される最大音域を表示するようになっている(あるいは、再生可能な音域を明るく表示し、それ以外をグレー表示するようにしてもよい)。
基本となるCキー部分には、C3、C4などの絶対音の高さを表示する
【0140】
スコア部分には、設定された四分音符の時間幅のグリッドが表示される。また、拍子で設定された値(前述)によって、2グリッド(すなわち2拍子)、3グリッド(3拍子)、4グリッド(4拍子)のラインが強調される。
【0141】
スコア・チャンネル上には、時間軸の基準となる音長と、ピアノ・キーの高さによってスコアが構成される。1つの桝目を「セル」と呼ぶ。音のあるセルには色が付く。但し、一音のみの再生モデルの場合、同じ時間軸上の異なる音階には音は置けない。また、空の(すなわち色が付いていない)セルをクリックすると、選択されている音符マークの長さの音が置かれる。同一時間上の他の高さに音が存在するとき、音はクリックされた高さに置き換わる。既に音が存在するセルがクリックされると、その音が除かれる。
【0142】
ピアノ鍵盤の左側の領域に、16分音符、八分音符、四分音符、二分音符、全音符、付点八分音符、付点四分音符、付点二分音符などの音符マークを表示しておく。これら音符マークは互いに排他的な選択状態を持ち、常にいずれか1つのみが選択されるものとする。また、マウス・クリック操作により選択アイテムが変化する。
【0143】
ベロシティ・チャンネルは、各音毎のベロシティの強さを表示する領域である。図13に示す例では、音の強さは棒グラフで表示されるが、折れ線グラフで表示してもよい。各節点での音の強さは、棒グラフの最上端をドラッグすることによった調整することができる。デフォルトでは最大音量が設定されている。
【0144】
また、図14には、WAVE形式のサウンド・ファイルを表示するためのサウンド詳細ウィンドウの構成を概略的に示している。図示の通り、サウンド詳細ウィンドウは、タイトル・バーと、メニュー・バーと、WAVE形式サウンド・ファイルの編集領域は、横方向の時間軸と、縦方向のチャンネルで構成される2次元のタイムライン形式のテーブルである。タイムライン・テーブル内は、時間ルーラと、キーフレーム・チャンネルと、WAVEチャンネルとで構成される。
【0145】
時間ルーラは、単位切り替えラジオ・ボタンを利用して、実時間表示とのフレーム数表示とを切り替えることができる。
【0146】
終了時刻フィールドには、編集中のアクションの終了時刻(すなわち動作時間)を示す時刻数値が表示される。また、カレント時刻表示フィールドには、カレント位置の時刻数値が表示される。これらのフィールドに意味のある時刻数字が入力されるとそれが終了時刻になって最終キーフレームが移動したり、あるいはその位置にカレント時刻が移動する。
【0147】
編集領域内では、時刻表示ラインとして、「キーフレーム・ライン」と、「最終時刻表示ライン」と、「カレント時刻ライン」がそれぞれ表示される。各キーフレームの時刻を示すキーフレーム・ラインが、各チャンネル上を交差する形で表示されており、ユーザは、キーフレームとの同期を目視で確認しながらWAVEサウンドの編集作業を行うことができる。また、編集中のアクションの終了時刻を示す終了時刻ラインが各チャンネル上を交差する形で表示するようにしているので、ユーザは編集対象となる時間の範囲を視覚的に理解することができる。また、現在時刻を示すカレント時刻ラインが各チャンネル上を交差する形で表示するようにしている。基本的に、いずれかのチャンネルの上をクリックすると、その位置にカレント時刻が移動する。
【0148】
キーフレーム・チャンネルでは、時間ルーラが規定する時間軸に沿ってアクション編集ウィンドウから取得したキーフレーム位置が表示される。
【0149】
WAVEチャンネルでは、図14に示すように、WAVE形式のサウンド・ファイルの中身が波形として表示される。
【0150】
また、図15には、MIDI形式で記述されたLED動作ファイルを表示して編集するためのLED詳細ウィンドウの構成を概略的に示している。図示の通り、サウンド詳細ウィンドウの編集領域は、横方向の時間軸と、縦方向のチャンネルで構成される2次元のタイムライン形式のテーブルである。タイムライン・テーブル内は、時間ルーラと、キーフレーム・チャンネルと、スコア・チャンネルとで構成される。
【0151】
時間ルーラは、単位切り替えラジオ・ボタンを利用して、実時間表示とのフレーム数表示とを切り替えることができる。時間ルーラは、単位切り替えラジオ・ボタンの他に、終了時刻フィールドとカレント時刻表示フィールドを含んでいる。終了時刻フィールドには、編集中のアクションの終了時刻を示す時刻数値が表示される。また、カレント時刻表示フィールドには、カレント位置の時刻数値が表示される。これらのフィールドに意味のある時刻数字が入力されると、それが終了時刻になって最終キーフレームが移動したり、あるいはその位置にカレント時刻が移動する。
【0152】
編集領域内では、時刻表示ラインとして、「キーフレーム・ライン」と、「最終時刻表示ライン」と、「カレント時刻ライン」がそれぞれ表示される。各キーフレームの時刻を示すキーフレーム・ラインが、各チャンネル上を交差する形で表示されており、ユーザは、キーフレームとの同期を目視で確認しながらMIDI形式で記述されたLED動作の編集作業を行うことができる。また、編集中のアクションの終了時刻を示す終了時刻ラインが各チャンネル上を交差する形で表示するようにしているので、ユーザは編集対象となる時間の範囲を視覚的に理解することができる。また、現在時刻を示すカレント時刻ラインが各チャンネル上を交差する形で表示するようにしている。基本的に、いずれかのチャンネルの上をクリックすると、その位置にカレント時刻が移動する。
【0153】
キーフレーム・チャンネルでは、時間ルーラが規定する時間軸に沿ってアクション編集ウィンドウから取得したキーフレーム位置が表示される。
【0154】
スコア・チャンネルは、GUI操作によってMIDI形式で記述されるLED動作を編集するための領域であり、移動ロボット1本体上でLEDを配置した部位のリストと、時間軸方向の基本グリッドによって構成される。本実施例では、でこ(でこぴん)と、右目αと、左目αと、右目βと、左目βと、右目γと、左目γと、しっぽαと、しっぽβの各部位にLEDが配置されている。
【0155】
スコア・チャンネル上には、時間軸上に各部位のLEDの点灯状況を表示することによって各部位リスト毎のスコアが構成される。1つの桝目を「セル」と呼ぶ。時間軸上でLEDが点灯する部位に相当する位置のセルには、その色や点灯強度に応じた色が付く。
【0156】
スコア・チャンネルの左横には、LED部位ビジュアルが表示されている。これは、変更可能なLEDの各部位をグラフィック表現したものである。
【0157】
また、LED部位ビジュアルの下方にはベロシティ・マークが表示されている。ベロシティ・マークは、上昇、最高位キープ、下降などの種類を表示したマークである。これらのマークは、互いに排他的な選択状態を持ち、常にどれか1つが選ばれている。また、マウス・クリックによって、選択アイテムが変化する。
【0158】
本実施例に係るアクション編集サブシステムは、上述のアクション編集ウィンドウ(図10を参照のこと)上で編集したアクションの内容を視覚的に確認するために、プレビュー・ウィンドウを用意している。
【0159】
図16には、プレビュー・ウィンドウの構成を概略的に示している。同図に示すように、プレビュー・ウィンドウは、「3Dビュー」と、「3D表示切り替えボタン群」と、「カレント時刻フィールド」と、「再生ボタン群」とで構成される。
【0160】
3Dビューには、コンピュータ・グラフィックス処理により生成された3次元移動ロボット1の映像が常に表示される。このビュー上でドラッグすることにより、視線方向を移動させて、ビューの見え方を変えることができる。また、図示しないが、2以上の視点から3Dモデルを同時にプレビューできるように構成してもよい。また、ビューの動きは、3D表示切り替えボタン群上でのユーザ入力操作と連動する。
【0161】
モーションの3D表示を作成処理する際に、3Dモデルにより各部位どうしの衝突(collision)や各関節の駆動速度のチェック機能を備えていてもよい。また、3Dモデルの重心を各キーフレームで設定して、3Dモデルの見た目上の動きを実機に近いものにすることができる。
【0162】
また、3Dビューの右側には、LED動作を表示するためのLED動作プレビュー領域が配設されている。このプレビュー領域では、上述した3Dビュー上の移動ロボット1の動きと同期させて、移動ロボット1のLEDが点滅する様子を表示するようになっている。
【0163】
3D表示切り替えボタン群には、「回転」、「ズームイン/アウト」、「パン」、「ホーム位置」という各ボタンが配設されている。ユーザは、これらのボタンをクリック操作することにより、3Dビュー内におけるロボットに対する視線方向を変更することができる。
【0164】
例えば、回転ボタンをクリックすると、回転モードになり、以降3Dビューをドラッグすると、3Dビュー内の移動ロボット1が回転する。また、ズームイン/アウト・ボタンをクリックすると、ズーム・モードになり、以降3Dビューを上下にドラッグすると、3Dビュー内の移動ロボット1がズームイン/アウトする。また、パン・ボタンをクリックすると、3Dビューはパン・モードになり、以降3Dビューを上下左右にドラッグすると3Dビューがパンすなわち高速移動する。また、ホーム位置ボタンをクリックすると、移動ロボット1の3次元表示がデフォルトのビューすなわちデフォルトの視線方向から見た状態に戻る。
【0165】
カレント時刻フィールドには、3Dビューに表示されている描画内容のカレント時刻が表示される。このフィールドに時刻として意味のある文字が入力されると、3Dビューの表示は該当する時刻のフレームに切り替わる。また、カレントの時刻位置を相対的にビジュアル表示するようになっている。
【0166】
再生ボタン群には、「フレームの巻き戻し」、「前のキーフレーム」、「プレイ/ストップ」、「フレームのコマ送り」、「フレーム送り」、「ループ再生」という各ボタンが配設されている。
【0167】
「フレームの巻き戻し」をクリックすると、3Dビューの表示が最初のフレームに戻る。「前のキーフレーム」をクリックすると、3Dビューの表示がカレント位置から直前のキーフレームに飛ぶ。また、「プレイ/ストップ」をクリックすると、3Dビュー表示の再生を開始又は停止する(プレイ中は、プレイ/ストップ・ボタンはストップとなり、ストップ中はプレイとして作用する)。また、「フレームのコマ送り」は、3Dビュー表示の再生中のみ有効であり、クリックされると1フレーム分がコマ送りされる。また、「フレーム送り」をクリックすると、3Dビューの表示が最後のフレームに進む。また、「ループ再生」をクリックすると、3Dビューの表示がループ再生される。
【0168】
また、本実施例に係るアクション編集サブシステムは、移動ロボット1の3次元的なポーズを、ドラッグを基調とするGUI操作により編集するためにポーズ・ウィンドウを用意している。ポーズ・ウィンドウ上で編集されるポーズは、例えば、モーションを構成するキーフレームとして利用することができる。
【0169】
図17には、ポーズ・ウィンドウの構成を概略的に示している。このポーズ・ウィンドウ上では、移動ロボット1を構成する各関節アクチュエータの回転角度をGUI操作により直接指示して、所望のポーズを簡易に指定することができる。ポーズ・ウィンドウは、実体表示領域と、リスト指定領域と、設定値領域と、3D表示領域と、3D表示切替ボタン群と、表示切り替えポップアップとで構成される。
【0170】
実体指定領域では、移動ロボット1の展開平面図を表示され編集可能部位をユーザに選択させる。選択された部位は、リスト指定の項目が選択されて、3D表示上で強調表示又はブリンクされ、設定値エリアの内容が切り替わる。
【0171】
リスト指定領域では、移動ロボット1の編集可能部位とその設定値がリストとして表示される。ユーザはこのリストの中から特定の部位を選択すると、実体指定領域では該当する部位が強調表示され、3D表示領域では強調表示又はブリンクされ、設定値領域の内容が切り替わる。
【0172】
設定値領域では、各編集可能部位の設定部位名称、設定値、設定可能最小値並びに最大値が一覧表示されている。ユーザがある特定の部位を選択するとその内容が切り替わる。設定値は、入力可能フィールドで直接キー入力することができる。角度の表現は円弧表現とし、指定用のラインをドラッグすることによって設定値を変更することができる。
【0173】
3D表示領域では、3Dグラフィックスにより生成された移動ロボット1の全身画像が地面とともに描画される。ユーザは、この3D表示から該当する部位をクリックすることにより、その部位を選択することができ、選択部位は強調表示される。さらに、選択部位をドラッグすることにより、設定値を直接切り替えることができる。
【0174】
3D表示領域における表示内容は3D表示切り替えボタンと連動しており、この3D表示領域のビュー上をドラッグすることによりビューの見え方すなわち視線方向を変えることができる。
【0175】
3D表示切り替えボタン群には、「回転」、「ズームイン/アウト」、「パン」、「ホーム位置」という各ボタンが配設されている。ユーザは、これらのボタンをクリック操作することにより、3D表示領域内の視線方向を変更することができる。
【0176】
例えば、回転ボタンをクリックすると、回転モードになり、以降3D表示領域をドラッグすると3D表示領域内の移動ロボット1が回転する。また、ズームイン/アウト・ボタンをクリックすると、ズーム・モードになり、以降3D表示領域を上下にドラッグすると3D表示領域内で移動ロボット1がズームイン/アウトする。また、パン・ボタンをクリックするとパン・モードになり、以降3D表示領域を上下左右にドラッグすると3D表示領域内で移動ロボット1がパンすなわち高速移動する。また、ホーム位置ボタンをクリックすると、移動ロボット1の3次元表示がデフォルトの視線方向から見た状態に戻る。
【0177】
ポーズ・ウィンドウには、「OK」ボタンと「キャンセル」ボタンが用意されている。OKボタンをクリックすると、該ウィンドウ内におけるすべての編集項目を有効にして、このウィンドウを閉じる。他方、キャンセル・ボタンをクリックするとすべての編集項目を無効にしてこのウィンドウを閉じる(周知)。
【0178】
また、本実施例に係るアクション編集サブシステムは、モーション・チャンネルで編集されたモーション、あるいはポーヴ・ウィンドウにより編集された各ポーズをキーフレームとしたモーションをプレビューするためのモーション・プレビューワを用意している。図18には、モーション・プレビューワの構成を概略的に示している。
【0179】
モーション・プレビューワ上では、モーションをプレビューするとともに、アクション編集ウィンドウにペーストするために、ポーズをコピーすることが許容される。
【0180】
モーション・プレビューワ上では、モーションを構成する1以上のキーフレームすなわちポーズのサムネイルを表示するようになっている。キーフレームの配列は、例えば、モーション再生時の時系列に従う。
【0181】
C−2.ビヘイビア編集サブシステム
ビヘイビア編集サブシステムは、ロボットの行動シーケンスすなわちビヘイビアを作成・編集するためのサブシステムである。
【0182】
図6〜図8を参照しながら既に説明したように、ロボットの行動シーケンスすなわちビヘイビアは、2以上のコマンドすなわちアクションを並べていくことによって構成される。アクションはスタートからエンドまで一方向で再生される。これに対して、ビヘイビアは、アクションを再生する順序を規定することができる。さらに、センサからの入力などに基づいて条件判断を実行し、アクション起動の流れを分岐させることができる。また、複数のアクションやブランチをグループ化してサブルーチンとして機能させることにより、複雑なビヘイビアの作成・編集作業を容易で効率的にすることができる。
【0183】
ビヘイビアを規定するファイルのことを「ビヘイビア・ファイル」と呼ぶ。ビヘイビアにおいて使用するアクションの内容を、ファイル参照しても、あるいは読み込むようにしてもよい。
【0184】
本実施例におけるビヘイビア編集サブシステムは、使用するアクションを部品化してマウス操作により取り扱うことができるグラフィカルなユーザ・インターフェース、すなわち「ビヘイビア・エディタ」を採用する。ビヘイビアはその部品である2以上のアクションを配列することにって構成されることから、ビヘイビア・エディタは、外見的にはフローチャート・エディタの形式を採用する。ビヘイビア・エディタ画面上では、アクション間の連結に条件判断を形成したり、ループを形成したり、複数のアクションの配列をグループ化し部品として定義することができる。但し、ビヘイビア・エディタが提供するビヘイビア編集画面の詳細については、後述に譲る。
【0185】
図19には、ビヘイビア編集サブシステムの機能構成を模式的に示している。
同図に示すように、本実施例に係るビヘイビア編集サブシステムは、特にビヘイビアの編集向けにデザインされたものであり、ビヘイビア編集部と、これら各機能モジュールによるユーザの編集作業をGUI画面による対話形式で実現するユーザ・インターフェース制御部とで構成される。
【0186】
ビヘイビア編集部は、アクション編集サブシステムにおいて作成されたアクションを部品として、複数のアクションを配列することにより(図6〜8を参照のこと)、1つのビヘイビアを完成させる。
【0187】
ビヘイビア編集部は、意図する動作すなわちアクションを表すボックスをライブラリから選択することができる。ライブラリからのアクションの選択はアクション選択部を介して行われる。アクション選択部の起動により、画面上にはアクション設定ウィンドウがポップアップ表示される。アクション設定ウィンドウ(後述)上では、アクションの詳細を対話形式で指定することができる。指定されたアクションは、編集画面上ではボックスとして配置される。
【0188】
複数のアクションの配列をグループ化して、部品として定義する場合には、グループ登録部を呼び出すことによって行われる。グループ登録部の起動により、画面上にはグループ設定ウィンドウがポップアップ表示され、グループの詳細を対話形式で指定することができる。グループは、グループ登録部を介してライブラリ内に登録され、以後はアクションと同様に、ビヘイビアを構成する部品として取り扱うことができ、編集画面上ではボックスとして表示される。
【0189】
ビヘイビアは、アクションどうしの単なる連結の他、後続の複数のアクションへの分岐並びに分岐のための条件判断を含んだり、アクションのループを形成することができる。
【0190】
アクションを接続する場合、接続側並びに被接続側それぞれのアクションに対して接続用の端子を形成する。端子の形成は、端子設定部によって行われる。端子設定部を起動することにより、編集画面上では端子設定ウィンドウがポップアップ表示され、端子の詳細を指定することができる。また、ビヘイビア編集画面上では、ボックスの端子どうしをドラッグすることにより該当するアクションどうしを連結することができる。
【0191】
あるアクションが複数のアクションへの分岐を設定する場合、分岐設定部を呼び出す。分岐設定部の起動により、編集画面上には分岐設定ウィンドウがポップアップ表示され、分岐の詳細を指定することができる。
【0192】
あるアクションが後続のアクションへ進むための条件を設定する場合、条件設定部を呼び出す。条件設定部の起動により、編集画面上には条件設定ウィンドウがポップアップ表示され、条件判断の詳細を指定することができる。
【0193】
ユーザ・インターフェース制御部によって、ビヘイビア編集ウィンドウがコンピュータ画面上に提示される。このビヘイビア編集ウィンドウ上では、基本的には、ビヘイビアの構成要素であるアクションを表すボックスを、分岐端子を用いて接続していくことにより、全体としてある所定の機能を実現するプログラムを組むことができる。接続関係が形成された複数のアクションをグループとして登録し、グループを表すボックスを、アクション・ボックスと同様に部品化して、ビヘイビア編集ウィンドウ上で取り扱うことができる。ビヘイビア編集ウィンドウは、外見上はフローチャート・エディタの形式を採用する。
【0194】
図20には、ビヘイビア編集ウィンドウの構成を概略的に示している。
【0195】
図示の通り、ビヘイビア編集ウィンドウは、タイトル・バーと、メニュー・バーと、ツール・バーと、アクションやグループを分岐端子によって接続してフローチャート編集様式でプログラムを編集することができる編集領域とで構成される。
【0196】
メニュー・バーには「ファイル」、「編集」、「オブジェクト」、「ツール」、「表示倍率」、「ヘルプ」という各メニューが用意されている。
【0197】
メニュー「ファイル」を選択すると、さらに「新規ビヘイビア」、「ビヘイビアを開く」、「ビヘイビア保存」、「ビヘイビア新規保存」、並びに、「閉じる」という各サブ・メニューからなるプルダウン・メニューが出現する(図21を参照のこと)。
【0198】
サブメニュー「新規ビヘイビア」を選択すると、新規のビヘイビアを生成する。既に未保存のアクションが開かれている場合、そのビヘイビアを保存するかどうかの確認をユーザにプロンプトするダイアログ(図示しない)が出現する。
【0199】
サブメニュー「ビヘイビアを開く」を選択すると、既存のビヘイビア・ファイルを開く。既に未保存のビヘイビアが開かれている場合、そのビヘイビアを保存するかどうかの確認をユーザにプロンプトするダイアログが出現する(同上)。
【0200】
サブメニュー「ビヘイビア保存」を選択すると、該当するビヘイビア・ファイルを上書き保存する。未保存ファイルの場合、ビヘイビア新規保存(後述)と同様、ファイル設定ダイアログが出現して、ファイル名の入力をユーザにプロンプトする。
【0201】
サブメニュー「ビヘイビア新規保存」を選択すると、ファイル設定ダイアログ(図示しない)が出現して、ファイル名の入力をユーザにプロンプトする。
【0202】
サブメニュー「閉じる」を選択すると、起動中のビヘイビア編集ウィンドウを閉じる。該ウィンドウ内のビヘイビア・ファイルが未保存の場合には、ダイアログが出現して、これを保存するかどうかの確認をユーザにプロンプトする(同上)。
【0203】
また、メニュー「編集」を選択すると、さらに「元に戻す」、「切り取り」、「コピー」、「上書き貼り付け」、「挿入貼り付け」、並びに、「削除」という各サブ・メニューからなるプルダウン・メニューが出現する(図22を参照のこと)。
【0204】
サブメニュー「元に戻す」を選択すると、直近の操作から順にアンドゥー処理が行われる。
【0205】
サブメニュー「切り取り」を選択すると、選択されたオブジェクトがカットされる。カットされたデータは、実際にはクリップボード内に一時的に保管される。
【0206】
サブメニュー「コピー」を選択すると、選択されたオブジェクトがコピーされる。コピーされたデータは、実際にはクリップボード内に一時的に保管される。
【0207】
サブメニュー「上書き貼り付け」を選択すると、クリップボードに保管されているオブジェクトがビヘイビア編集領域上にペーストされる。
【0208】
サブメニュー「削除」を選択すると、選択されたオブジェクトが削除される。
【0209】
メニュー「オブジェクト」は、ビヘイビア編集領域上に、プログラム編集用の部品となるオブジェクトを置いたり、設置したオブジェクトに対する操作を行うための機能を提供する。プログラム編集用の部品とは、ボックス化されたアクション、ブランチ、グループ、あるいはこれらボックス間を接続するためのターミナル(分岐端子)である。これらオブジェクトは、フローチャートの構成要素となる。
【0210】
メニュー「オブジェクト」を選択すると、さらに「アクションを置く」、「新規ブランチを置く」、「新規グループを置く」、「新規ターミナルを置く」、並びに、「プロパティ」という各サブ・メニューからなるプルダウン・メニューが出現する(図23を参照のこと)。
【0211】
サブメニュー「アクションを置く」を選択すると、ファイル選択ダイアログ(図示しない)が出現して、アクション・ファイルの選択をユーザにプロンプトする。選択されたアクションは、オブジェクトすなわち「アクション・ボックス」として、ビヘイビア編集領域上に置かれる。そのアクションは、同時に自動的にプロジェクト・ウィンドウ(前述)に登録される。
【0212】
サブメニュー「新規ブランチを置く」を選択すると、新規のブランチを生成して、これに対応するオブジェクトすなわち「ブランチ・ボックス」をビヘイビア編集領域上に置く。新規のブランチにはデフォルトの名前が付けられ、ユーザはこれを適当な名前に変更することができる。
【0213】
サブメニュー「新規グループを置く」を選択すると、新規のグループを生成して、これに対応するオブジェクトすなわち「グループ・ボックス」をビヘイビア編集領域上に置く。新規のグループにはデフォルトの名前が付けられ、ユーザはこれを適当な名前に変更することができる。
【0214】
サブメニュー「新規ターミナルを置く」を選択すると、新規のターミナルを生成して、これをビヘイビア編集領域上に置く。新規のターミナルにはデフォルトの名前が付けられ、ユーザはこれを適当な名前に変更することができる。
【0215】
サブメニュー「プロパティ」を選択すると、選択されているオブジェクトのプロパティ・ダイアログが出現する。ユーザは、このダイアログ内で該当するオブジェクトのプロパティを設定することができる。但し、プロパティ・ダイアログに関しては後述する。
【0216】
なお、オブジェクト・メニューの各サブメニュー項目と同様の機能は、ツール・バー(後述)上でも提供される。
【0217】
メニュー「ツール」は、「アローツール」、「結線ツール」、「線切りツール」などのサブメニューを用意する。各サブメニューを用意すると、該当する機能が呼び出される。これらサブメニューと同じ機能は、ツール・バー上のツール・ボックスとして配設されている(後述)。
【0218】
また、メニュー「表示倍率」は、ビヘイビア編集領域の表示倍率を選択するためのメニュー項目である。本実施例では、1/4,1/2,等倍,2倍,4倍,8倍を選択肢として用意している。
【0219】
また、メニュー「ヘルプ」には、トピックやサポート・ウェブ、バージョン情報などのサブメニューが含まれている(周知)。
【0220】
ツール・バー内には、「アローツール」、「結線ツール」、「線切りツール」、「ルーペ」、「ごみ箱」などの頻繁に使用する機能を瞬時に呼び出すためのツール・ボックスと、「アクション」、「グループ」、「ブランチ」、「ターミナル」などのビヘイビア編集領域に置くべき部品すなわちオブジェクトを呼び出すためのオブジェクト・ボックスが配設されている。
【0221】
ツール・ボックス「アローツール」を指定すると、ビヘイビア編集領域内におけるマウス操作が、通常モード、すなわちオブジェクトを移動させるモードになる。
【0222】
ツール・ボックス「結線ツール」を指定すると、ビヘイビア編集領域内におけるマウス操作が、結線モード、すなわちオブジェクトどうしを結線するモードになる。
【0223】
ツール・ボックス「線切りツール」を指定すると、ビヘイビア編集領域以内におけるマウス操作が、線切りモード、すなわちオブジェクト間の結線を切断するモードになる。
【0224】
ツール・ボックス「ルーペ」を指定すると、マウスがクリックされた時点を一段階ずつ拡大表示する。また、コントロール・キーを押下しながらルーペをクリックすると、一段階ずつ縮小表示する。表示倍率範囲は、メニュー「表示倍率」内で用意されるサブメニュー項目(前述)に従う。
【0225】
ツール・ボックス「ごみ箱」を指定すると、マウスがクリックされたオブジェクトをビヘイビア編集領域から削除することができる。
【0226】
各ツール・ボックス「アローツール」、「結線ツール」、「線切りツール」、「ルーペ」は、排他的に選択される。
【0227】
ボックス「アクション」をツール・バーからビヘイビア編集領域内にドラッグすることにより、ドラッグ先には新規のアクション・ボックスが置かれる。これと同時に、この新規アクションの詳細を設定するためのプロパティ・ダイアログが画面上に出現する。
【0228】
図24には、アクション・ボックスの詳細を指定するためのプロパティ・ダイアログを図解している。このアクション設定用のプロパティ・ダイアログは、ツール・バー内のアクション・ボックスをビヘイビア編集領域にドラッグすることによって呼び出される他、メニュー「オブジェクト」のサブメニュー項目「プロパティ」を経由して起動することができる。
【0229】
ユーザは、図示のダイアログ上で、名前フィールドに文字列を入力することによってアクション・ボックスの名前を指定することができる。また、コメント・フィールド上に、このアクション・ボックスに関するコメントを記入することができる。
【0230】
さらに、Action、Part、Sound、Volume#などのコンボボックス内に、RCODEのコマンド名やコマンド・パラメータを直接入力するか、又は、該ボックスの右端の▼ボタンを押して出現するリスト・ボックス(図示しない)から所望のコマンド又はコマンド・パラメータを選択することによって、1行すなわち1ステップ分のRCODEコマンドを設定することができる。
【0231】
これらAction、Part、Sound、Volume#などのコンボボックスを利用して1ステップ分のRCODEコマンドを設定し、さらに[追加(A)]ボタンをクリックすると、コマンド・リスト上に順次登録される。
【0232】
また、このコマンド・リスト上で所定の行を選択してから、[変更(M)]ボタンをクリックすることによって、当該行は変更対象となり、その設定内容がAction、Part、Sound、Volume#などの各コンボボックスに表示される。また、このコマンド・リスト上で所定の行を選択してから、[削除(D)]ボタンをクリックすることによって、当該行をコマンド・リストから削除することができる。
【0233】
そして、このダイアログ上で動作ボックスの詳細の指定を完了すると、[閉じる(C)]ボタンをクリックすることによって、画面を介した指定内容がRCODEで記述された処理ルーチンとして登録されるとともに、このダイアログは閉じる。
【0234】
また、ボックス「ブランチ」をツール・バーからビヘイビア編集領域内にドラッグすることにより、ドラッグ先には新規のブランチ・ボックスが置かれる。これと同時に、この新規ブランチの詳細を設定するためのプロパティ・ダイアログが画面上に出現する。
【0235】
図25には、ブランチ・ボックスの詳細を指定するためのプロパティ・ダイアログを図解している。このブランチ設定用のプロパティ・ダイアログは、ツール・バー内のブランチ・ボックスをビヘイビア編集領域にドラッグすることによって呼び出される他、メニュー「オブジェクト」のサブメニュー項目「プロパティ」を経由して起動することができる。
【0236】
ユーザは、図示のダイアログ上で、名前フィールドに文字列を入力することによってブランチ・ボックスの名前を指定することができる。図示の例では、当該分岐ボックスの名前として「モード分岐」が記入されている。また、コメント・フィールド上に、該ブランチ・ボックスに関するコメントを記入することができる。
【0237】
さらに、Type、Variableなどのコンボボックス内に、RCODEのコマンド名やコマンド・パラメータを直接入力するか、又は、該ボックスの右端の▼ボタンを押して出現するリスト・ボックス(図示しない)から所望のコマンド又はコマンド・パラメータを選択することによって、当該分岐ボックスの条件判断を記述するRCODEコマンドを設定することができる。
【0238】
これらType、Variableなどのコンボボックスを利用して分岐条件のRCODEコマンドを設定し、さらに[追加(A)]ボタンをクリックすると、コマンド・リスト上に順次登録される。
【0239】
また、このコマンド・リスト上で所定の行を選択してから、[変更(M)]ボタンをクリックすることによって、当該行は変更対象となり、その設定内容がType、Variableなどの各コンボボックスに表示される。また、このコマンド・リスト上で所定の行を選択してから、[削除(D)]ボタンをクリックすることによって、当該行をコマンド・リストから削除することができる。
【0240】
そして、このダイアログ上でブランチ・ボックスの詳細の指定を完了すると、[閉じる(C)]ボタンをクリックすることによって、指定内容がRCODEで記述された処理ルーチンとして登録されるとともに、ダイアログは閉じる。
【0241】
ブランチ・ボックスを利用することにより、センサ入力やユーザ変数値に応じて処理を分岐させることができる。
【0242】
また、ボックス「グループ」をツール・バーからビヘイビア編集領域内にドラッグすることにより、ドラッグ先には新規のグループ・ボックスが置かれる。これと同時に、この新規グループの詳細を設定するためのプロパティ・ダイアログが画面上に出現する。
【0243】
図26には、グループ・ボックスの詳細を指定するためのプロパティ・ダイアログを図解している。このグループ設定用のプロパティ・ダイアログは、ツール・バー内のアクション・ボックスをビヘイビア編集領域にドラッグすることによって呼び出される他、メニュー「オブジェクト」のサブメニュー項目「プロパティ」を経由して起動することができる。
【0244】
同図に示すダイアログ上では、グループ名と、ビヘイビア編集領域内でグループ・ボックスに与えられる(表示される)名前を設定することができる。
【0245】
また、ボックス「ターミナル」をツール・バーからビヘイビア編集領域内にドラッグすることにより、ドラッグ先には新規のターミナル・ボックスが置かれる。これと同時に、この新規ターミナルの詳細を設定するためのプロパティ・ダイアログが画面上に出現する。
【0246】
図27には、ターミナル・ボックスの詳細を指定するためのプロパティ・ダイアログを図解している。このターミナル設定用のプロパティ・ダイアログは、ツール・バー内のターミナル・ボックスをビヘイビア編集領域にドラッグすることによって呼び出される他、メニュー「オブジェクト」のサブメニュー項目「プロパティ」を経由して起動することができる。同図に示すダイアログ上では、ターミナルに与えられる(表示される)名前を設定することができる。
【0247】
ツール・バー内の結線ツールをクリックすることにより、ビヘイビア編集領域内の各ボックス間を接続することができることは既に述べた通りである。ボックス間を接続する際には接続の許可/不許可を判断するための条件を設定することができる。判断条件を設定したい場合には、条件(Condition)を設定するためのダイアログを呼び出せばよい。
【0248】
図28には、接続条件の詳細を指定するためのプロパティ・ダイアログを図解している。この条件設定用のプロパティ・ダイアログは、例えば、メニュー「オブジェクト」のサブメニュー項目「プロパティ」を経由して起動することができる。このダイアログ内では、論理積(AND)、論理和(OR)などを用いた複数の条件(図示の例では最大4個の条件)の組み合わせを接続条件として設定することができる。
【0249】
次いで、ビヘイビア編集領域内でのプログラム編集処理について説明する。
【0250】
該編集領域内では、各オブジェクトのドラッグ・アンド・ドロップ操作が許容されている。アクションやグループ、ブランチなどの各オブジェクトは「ボックス」という形式で部品化されており、ユーザは、各ボックスやボックス間のドラッグ・アンド・ドロップ操作により、ボックス間の接続や切断を繰り返す作業を通じて、ボックスの連結関係により記述される、全体としてある機能を実現するプログラムを組むことができる。編集作業は、外見上はフローチャート・エディタの形式を採用する。
【0251】
図20に示したような新規ビヘイビア編集ウィンドウ上で、ターミナル・ボックスのドラッグ・アンド・ドロップ操作により、プログラムやルーチンの開始を示す端子"START"、並びに、プログラムやルーチンの終了を示す端子"RETURN"を置くことができる(図29)。
【0252】
ターミナル・ボックスをビヘイビア編集領域上にドロップすることに連動して、図27に示したようなプロパティ・ダイアログが起動して、端子の詳細を設定することができる。
【0253】
RETURNは、プログラムやルーチンの出力端子を意味し、図示の通り、1つのプログラムやルーチンが複数の出力端子を備えていてもよい。
【0254】
アクション・ボックスやブランチ・ボックスを、ツール・バーからビヘイビア編集領域にドラッグ・アンド・ドロップすることによって、ビヘイビア編集領域上にアクション・ボックス並びにブランチ・ボックスを置くことができる。この際、アクションやブランチの詳細を設定するためのプロパティ・ダイアログ(図24及び図25を参照のこと)がポップアップ表示される。各プロパティ・ダイアログ上で、アクション・ボックスに割り当てるアクションの名前を指定したり、グループ・ボックスに割り当てるグループの名前を指定したり、新規ブランチ・ボックスに名前を与えたりすることができる。図30には、ビヘイビア編集領域上に、アクション・ボックスやグループ・ボックスブランチ・ボックスを配置した様子を示している。
【0255】
図30に示すように各ボックスは、ボックス名が表示されたボックス本体と、このボックス本体の上端に隣接するボックスの入力端子部と、ボックス本体の下端に隣接する出力端子部とで構成される。
【0256】
さらに、ツール・バー内の結線ツールをクリックすることにより、ビヘイビア編集領域は結線モードとなる。この動作モード下では、あるボックスの出力端子部と他のボックスの入力端子部の間をドラッグ操作することによって、ボックス間の接続関係を形成することができる。
【0257】
ボックス間を接続する際には接続の許可/不許可を判断するための条件を設定することができる。判断条件を設定したい場合には、条件(Condition)を設定するためのダイアログ(図28を参照のこと)を呼び出せばよい。
【0258】
図31には、ビヘイビア編集領域上に配置されたアクション・ボックスやグループ・ボックスブランチ・ボックスなどの各ボックス間に接続関係を形成した様子を示している。
【0259】
使用するボックスの配置並びに各ボックス間の接続関係を設定することによって、ビヘイビア編集領域上では、ある所定の機能を実現するプログラム又はプログラムの一部を構成するルーチンが組まれたことになる。ビヘイビア編集領域上では、プログラムやルーチンはフローチャートに類似した形式で表示されるので、ユーザは、フローチャートを編集する形式で、所望のプログラムやルーチンを比較的容易且つ直感的に編集することができる訳である。
【0260】
ビヘイビア編集領域上でフローチャート状に組まれたルーチンをグループとして登録することにより、これをアクションや既存のグループなどと同様に部品すなわちオブジェクトとして扱うことが可能となる。例えば他の(上位の)プログラムやルーチンを構築する際に、新たに登録したグループを使用することができる。
【0261】
例えば、図31に示したようなビヘイビア編集領域上で形成されたプログラム又はルーチンをグループ化することもできる。
【0262】
図32には、図31に示したビヘイビア編集領域上で形成されたプログラム又はルーチンをグループ化したグループ・ボックスをビヘイビア編集領域に配置した様子を示している。例えば、このグループに対して"Group_012"なるグループ名を与えたとする。図31からも分かるように、Group_012は、1個の入力端子と3個の出力端子を備えている。
【0263】
ビヘイビア編集領域上にアクションやグループ、ブランチなど他のオブジェクト・ボックスを配置して、これらボックスとGroup_012とを端子で接続することにより、Group_012を部品の一部すなわちルーチンとして利用したプログラム(図示しない)を組むことができる。
【0264】
また、一旦編集・登録したグループの詳細をビヘイビア編集領域に開いて、さらに編集作業を行うことができる。図33には、図32に示したグループ・ボックスを開いた様子を図解している。
【0265】
[追補]
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【0266】
本実施例では、イヌを模した4足歩行を行うペット型ロボットを例に挙げて本発明に係るオーサリング・システムについて詳解したが、本発明の要旨はこれに限定されない。例えば、ヒューマノイド・ロボットのような2足の脚式移動ロボットや、あるいは脚式以外の移動型ロボットに対しても、同様に本発明を適用することができることを充分理解されたい。
【0267】
また、本明細書の[特許請求の範囲]の欄に記載される「多関節構造体」は、脚式ロボットを始めとする多関節型ロボットのような物理的な機械装置には限定されない。例えば、コンピュータ・グラフィックスにより生成されるキャラクタを用いたアニメーションの動作シーケンスの作成・編集のために、本発明に係るオーサリング・システムを適用することも可能である。
【0268】
要するに、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0269】
【発明の効果】
以上詳記したように、本発明によれば、所定のシナリオに従ったデータの作成・編集を支援することができる、優れたオーサリング・システム及びオーサリング方法を提供することができる。
【0270】
また、本発明によれば、ロボットの所定の動作パターンを記述する一連のコマンド/データの作成・編集を支援することができる、優れたオーサリング・システム及びオーサリング方法を提供することができる。
【0271】
また、本発明によれば、ロボットの動作状態を規定する部品の集合を用いて動作パターンの作成・編集を支援することができる、優れたオーサリング・システム及びオーサリング方法を提供することができる。
【0272】
また、本発明によれば、各関節アクチュエータの動作など1以上の時系列データの組み合わせからなるロボットのアクションを部品化してコンピュータ・ディスプレイ上に配置するとともに、各アクションの結合関係をディスプレイ上のGUI操作により規定することでロボットのビヘイビアの作成・編集を行うことができる、優れたオーサリング・システム及びオーサリング方法を提供することができる。
【0273】
本発明に係るオーサリング・システム及びオーサリング方法によれば、ロボットを始めとする多関節構造体を新しい遊びとして扱うことができるツールを提供することができる。本発明によれば、コンピュータ・プログラミングに関する高度な知識がなくとも、ロボットを始めとする多関節構造体の行動をプログラムすることができ、簡単にコンテンツを作成することができる。例えば、ユーザは、多関節構造体を表現するためのツールとして使用することができ、言い換えれば、ロボットが提供するワールドを拡張することができる。
【0274】
本発明に係るオーサリング・システム及びオーサリング方法によれば、ユーザは、GUI操作を介して、フローチャート・エディタ形式で多関節構造体の行動シーケンスに関するプログラミングを行うことができる。さらに、ライブラリを豊富に取り揃えることによって、GUI画面上でのプログラミング作業をさらに簡単で効率的なものにすることができる。
【図面の簡単な説明】
【図1】本発明を実施に供される四肢による脚式歩行を行う移動ロボット1の外観構成を示した図である。
【図2】移動ロボット1の電気・制御系統の構成図を模式的に示した図である。
【図3】制御部20の構成をさらに詳細に示した図である。
【図4】ホスト・コンピュータ100のハードウェア構成例を模式的に示した図である。
【図5】本実施例に係るオーサリング・システムの全体構成を模式的に示した図である。
【図6】2以上のコマンドすなわちアクションを並べていくことによりロボットのビヘイビアを構成する様子を示した図である。
【図7】条件や確率に基づいた分岐をビヘイビアの中に含めた様子を示した図である。
【図8】複数のコマンドすなわちアクションをボックス化してサブルーチンを定義した様子を示した図である。
【図9】アクション編集サブシステムの機能構成を模式的に示したブロック図である。
【図10】アクション編集ウィンドウの構成を概略的に示した図である。
【図11】キーフレーム・チャンネルを開いた状態(キーフレーム詳細チャンネル)のアクション編集ウィンドウを示した図である。
【図12】モーション・チャンネルを開いた状態(モーション詳細チャンネル)のアクション編集ウィンドウを示した図である。
【図13】MIDI形式のサウンド・ファイルを編集するためのサウンド詳細ウィンドウの構成を概略的に示した図である。
【図14】WAVE形式のサウンド・ファイルを表示するためのサウンド詳細ウィンドウの構成を概略的に示した図である。
【図15】MIDI形式で記述されたLED動作ファイルを表示して編集するためのLED詳細ウィンドウの構成を概略的に示した図である。
【図16】プレビュー・ウィンドウの構成を概略的に示した図である。
【図17】ポーズ・ウィンドウの構成を概略的に示した図である。
【図18】モーション・プレビューワの構成を概略的に示した図である。
【図19】ビヘイビア編集サブシステムの機能構成を模式的に示した図である。
【図20】ビヘイビア編集ウィンドウの構成を概略的に示した図である。
【図21】ビヘイビア編集ウィンドウ内のメニュー「ファイル」のサブメニュー項目を示した図である。
【図22】ビヘイビア編集ウィンドウ内のメニュー「編集」のサブメニュー項目を示した図である。
【図23】ビヘイビア編集ウィンドウ内のメニュー「オブジェクト」のサブメニュー項目を示した図である。
【図24】アクション・ボックスの詳細を指定するためのプロパティ・ダイアログを示した図である。
【図25】ブランチ・ボックスの詳細を指定するためのプロパティ・ダイアログを示した図である。
【図26】グループ・ボックスの詳細を指定するためのプロパティ・ダイアログを示した図である。
【図27】ターミナル・ボックスの詳細を指定するためのプロパティ・ダイアログを示した図である。
【図28】条件判断の詳細を指定するためのプロパティ・ダイアログを示した図である。
【図29】ビヘイビア編集領域上にターミナルを置いた様子を示した図である。
【図30】ビヘイビア編集領域上にアクション・ボックスやブランチ・ボックスを配置した様子を示した図である。
【図31】ビヘイビア編集領域上に配置されたアクション・ボックスやグループ・ボックスブランチ・ボックスなどの各ボックス間に接続関係を形成した様子を示した図である。
【図32】図31に示したビヘイビア編集領域上で形成されたプログラム又はルーチンをグループ化したグループ・ボックスをビヘイビア編集領域に配置した様子を示した図である。
【図33】図32に示したグループ・ボックスを開いた様子を示した図である。
【図34】プロジェクト・ウィンドウを示した図である。
【符号の説明】
1…移動ロボット
2…胴体部ユニット
3…頭部ユニット
4…尻尾
6A〜6D…脚部ユニット
7…首関節
8…尻尾関節
9A〜9D…大腿部ユニット
10A〜10D…脛部ユニット
11A〜11D…股関節
12A〜12D…膝関節
15…CCDカメラ
16…マイクロフォン
17…スピーカ
18…タッチセンサ
19…LEDインジケータ
20…制御部
21…CPU
22…RAM
23…ROM
24…不揮発メモリ
25…インターフェース
26…無線通信インターフェース
27…ネットワーク・インターフェース・カード
28…バス
29…キーボード
40…入出力部
50…駆動部
51…モータ
52…エンコーダ
53…ドライバ

Claims (9)

  1. 多関節構造体のビヘイビアの作成・編集を支援するためのオーサリング・システムであって、
    多関節構造体のビヘイビアの作成・編集を支援するためのオーサリング・システムであって、
    ユーザから操作画面を介して入力されるコマンドやデータを受容するユーザ入力部と、
    ユーザに対して前記関節構造体のビヘイビアを作成・編集するための作業場を操作画面上で提供するユーザ提示部と、
    ビヘイビアの構成要素となる、多関節構造体の各関節の時系列的な動作を記述したモーション・データを含むアクション、又は、複数のアクションの配列からなるアクションのグループを有するライブラリと、
    前記操作画面上におけるユーザ入力に基づいてビヘイビアを規定するプログラムを生成するプログラム生成部と、
    を具備
    前記プログラム生成部は、
    前記ユーザ入力操作を介したユーザ操作に応じて、ビヘイビアを開始又は終了するターミナルを表すターミナル・ボックスを前記操作画面上に配置し、該ターミナル・ボックスのプロパティ・ダイアログを通じて、ターミナルの名前をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクション又はアクションのグループから後続の複数のアクション又はアクションのグループへの分岐を表すブランチ・ボックスを前記操作画面上に配置し、該ブランチ・ボックスのプロパティ・ダイアログを通じて、アクション又はアクションのグループから後続の複数のアクション又はアクションのグループの各々へ分岐する条件をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクションを表すアクション・ボックスを前記操作画面上に配置し、該アクション・ボックスのプロパティ・ダイアログを通じて、該アクションを実現するコマンドをユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクションのグループを表すグループ・ボックスを前記操作画面上に配置し、該グループ・ボックスのプロパティ・ダイアログを通じて、ターミナルの名前をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、前記操作画面上で接続側のボックスの出力端子と被接続側のボックスの入力端子を結線するとともに、接続側のボックスに非接続側のボックスが後続する接続関係を形成し、該結線のプロパティ・ダイアログを通じて、該ボックス間の接続を許可又は不許可する条件をユーザに設定させる、
    ことを特徴とするオーサリング・システム。
  2. アクションはアクションの再生と時間的に同期して音声出力されるサウンド・データをさらに含む、
    ことを特徴とする請求項1に記載のオーサリング・システム。
  3. アクションはアクションの再生と時間的に同期して表示出力される表示インジケータの点灯動作並びに消滅動作を記述したインジケータ表示データをさらに含む、
    ことを特徴とする請求項に記載のオーサリング・システム。
  4. 前記ユーザ提示部はビヘイビアの各構成要素間の接続関係をフローチャート編集形式で提示する、
    ことを特徴とする請求項に記載のオーサリング・システム。
  5. 多関節構造体のビヘイビアの作成・編集を支援するためのオーサリング方法であって、
    ユーザから操作画面を介して入力されるコマンドやデータを受容するユーザ入力ステップと、
    ユーザに対して前記多関節構造体のビヘイビアを作成・編集するための作業場を操作画面上で提供するユーザ提示ステップと、
    ビヘイビアの構成要素となる、多関節構造体の各関節の時系列的な動作を記述したモーション・データを含むアクション、又は、複数のアクションの配列からなるアクションのグループをライブラリに登録するステップと、
    前記操作画面上におけるユーザ入力に基づいてビヘイビアの構成要素どうしの接続関係を形成して、ビヘイビアを規定するプログラムを生成するプログラム生成ステップと、
    を有し、
    前記プログラム生成ステップでは、
    前記ユーザ入力操作を介したユーザ操作に応じて、ビヘイビアを開始又は終了するターミナルを表すターミナル・ボックスを前記操作画面上に配置し、該ターミナル・ボックスのプロパティ・ダイアログを通じて、ターミナルの名前をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクション又はアクションのグループから後続の複数のアクション又はアクションのグループへの分岐を表すブランチ・ボックスを前記操作画面上に配置し、該ブランチ・ボックスのプロパティ・ダイアログを通じて、アクション又はアクションのグループから後続の複数のアクション又はアクションのグループの各々へ分岐する条件をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクションを表すアクション・ボックスを前記操作画面上に配置し、該アクション・ボックスのプロパティ・ダイアログを通じて、該アクションを実現するコマンドをユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクションのグループを表すグループ・ボックスを前記操作画面上に配置し、該グループ・ボックスのプロパティ・ダイアログを通じて、ターミナルの名前をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、前記操作画面上で接続側のボックスの出力端子と被接続側のボックスの入力端子を結線するとともに、接続側のボックスに非接続側のボックスが後続する接続関係を形成し、該結線のプロパティ・ダイアログを通じて、該ボックス間の接続を許可又は不許可する条件をユーザに設定させる、
    ことを特徴とするオーサリング方法。
  6. アクションはアクションの再生と時間的に同期して音声出力されるサウンド・データをさらに含む、
    ことを特徴とする請求項5に記載のオーサリング方法。
  7. アクションはアクションの再生と時間的に同期して表示出力される表示インジケータの点灯動作並びに消滅動作を記述したインジケータ表示データをさらに含む、
    ことを特徴とする請求項5に記載のオーサリング方法。
  8. 前記ユーザ提示ステップではビヘイビアの各構成要素間の接続関係をフローチャート編集形式で提示する、
    ことを特徴とする請求項5に記載のオーサリング方法。
  9. 多関節構造体のビヘイビアの作成・編集を支援するための処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、前記コンピュータを、
    ユーザから操作画面を介して入力されるコマンドやデータを受容するユーザ入力部、
    ユーザに対して前記多関節構造体のビヘイビアを作成・編集するための作業場を操作画面上で提供するユーザ提示部、
    ビヘイビアの構成要素となる、多関節構造体の各関節の時系列的な動作を記述したモーション・データを含むアクション、又は、複数のアクションの配列からなるアクションのグループを有するライブラリ、
    前記操作画面上におけるユーザ入力に基づいてビヘイビアを規定するプログラムを生成するプログラム生成部、
    として機能させ、
    前記プログラム生成部は、
    前記ユーザ入力操作を介したユーザ操作に応じて、ビヘイビアを開始又は終了するターミナルを表すターミナル・ボックスを前記操作画面上に配置し、該ターミナル・ボックスのプロパティ・ダイアログを通じて、ターミナルの名前をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクション又はアクションのグループから後続の複数のアクション又はアクションのグループへの分岐を表すブランチ・ボックスを前記操作画面上に配置し、該ブランチ・ボックスのプロパティ・ダイアログを通じて、アクション又はアクションのグループから後続の複数のアクション又はアクションのグループの各々へ分岐する条件をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクションを表すアクション・ボックスを前記操作画面上に配置し、該アクション・ボックスのプロパティ・ダイアログを通じて、該アクションを実現するコマンドをユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、アクションのグループを表すグループ・ボックスを前記操作画面上に配置し、該グループ・ボックスのプロパティ・ダイアログを通じて、ターミナルの名前をユーザに設定させ、
    前記ユーザ入力操作を介したユーザ操作に応じて、前記操作画面上で接続側のボックスの出力端子と被接続側のボックスの入力端子を結線するとともに、接続側のボックスに非接続側のボックスが後続する接続関係を形成し、該結線のプロパティ・ダイアログを通じて、該ボックス間の接続を許可又は不許可する条件をユーザに設定させる、
    ことを特徴とする記憶媒体。
JP2000311126A 2000-10-11 2000-10-11 オーサリング・システム及びオーサリング方法、並びに記憶媒体 Expired - Fee Related JP4670136B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000311126A JP4670136B2 (ja) 2000-10-11 2000-10-11 オーサリング・システム及びオーサリング方法、並びに記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000311126A JP4670136B2 (ja) 2000-10-11 2000-10-11 オーサリング・システム及びオーサリング方法、並びに記憶媒体

Publications (2)

Publication Number Publication Date
JP2002120174A JP2002120174A (ja) 2002-04-23
JP4670136B2 true JP4670136B2 (ja) 2011-04-13

Family

ID=18790948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000311126A Expired - Fee Related JP4670136B2 (ja) 2000-10-11 2000-10-11 オーサリング・システム及びオーサリング方法、並びに記憶媒体

Country Status (1)

Country Link
JP (1) JP4670136B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106471572A (zh) * 2016-07-07 2017-03-01 深圳狗尾草智能科技有限公司 一种同步语音及虚拟动作的方法、系统及机器人

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050035970A1 (en) * 1999-08-03 2005-02-17 Wirtschafter Jenny Dana Methods and apparatuses for authoring declarative content for a remote platform
US7310784B1 (en) 2002-01-02 2007-12-18 The Jellyvision Lab, Inc. Methods for identifying cells in a path in a flowchart and for synchronizing graphical and textual views of a flowchart
WO2005014242A1 (ja) * 2003-08-12 2005-02-17 Advanced Telecommunications Research Institute International コミュニケーションロボット用制御システム
JP4213049B2 (ja) * 2004-01-09 2009-01-21 日野自動車株式会社 エンジンの過渡試験装置および方法
JP4235116B2 (ja) * 2004-01-09 2009-03-11 日野自動車株式会社 内燃機関の過渡特性試験装置および方法
US8521709B2 (en) 2006-10-31 2013-08-27 The Jellyvision Lab, Inc. Methods for preloading media assets
WO2008076907A2 (en) * 2006-12-14 2008-06-26 The Jellyvision Lab, Inc. System and method for controlling actions within a programming environment
US8127238B2 (en) 2006-12-14 2012-02-28 The Jellyvision Lab, Inc. System and method for controlling actions within a programming environment
US8276058B2 (en) 2007-02-08 2012-09-25 The Jellyvision Lab, Inc. Method of automatically populating and generating flowerchart cells
JP5181541B2 (ja) * 2007-06-15 2013-04-10 富士通株式会社 ロボットシステム、エディタ端末、およびエディタプログラム
WO2010007336A1 (en) * 2008-07-18 2010-01-21 Steven Lipman Interacting toys
US8175749B2 (en) 2008-02-28 2012-05-08 Panasonic Corporation Control apparatus and control method for robot arm, robot, control program for robot arm, and integrated electronic circuit for controlling robot arm
TWI373361B (en) * 2008-10-09 2012-10-01 Univ Nat Chiao Tung Glove puppet manipulation system
FR2946160B1 (fr) 2009-05-26 2014-05-09 Aldebaran Robotics Systeme et procede pour editer et commander des comportements d'un robot mobile.
JP5429461B2 (ja) * 2009-06-17 2014-02-26 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット開発支援装置
WO2011036865A1 (ja) * 2009-09-28 2011-03-31 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
KR100968944B1 (ko) * 2009-12-14 2010-07-14 (주) 아이알로봇 로봇 동기화 장치 및 그 방법
US8731714B2 (en) * 2010-09-22 2014-05-20 GM Global Technology Operations LLC Concurrent path planning with one or more humanoid robots
EP2453325A1 (en) 2010-11-16 2012-05-16 Universal Robots ApS Method and means for controlling a robot
JP2012232363A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボット制御システム、ロボットシステム及びプログラム
WO2013045314A1 (en) 2011-09-28 2013-04-04 Universal Robots A/S Calibration and programming of robots
JP5910249B2 (ja) * 2012-03-30 2016-04-27 富士通株式会社 インタラクション装置およびインタラクション制御プログラム
FR2991222B1 (fr) * 2012-06-01 2015-02-27 Aldebaran Robotics Systeme et procede pour generer des comportements contextuels d'un robot mobile executes en temps reel
JP5582427B2 (ja) 2012-12-18 2014-09-03 株式会社安川電機 教示データ作成装置、ロボットシステム、及び教示データ作成方法
JP5702811B2 (ja) * 2013-01-30 2015-04-15 ファナック株式会社 動作プログラム作成装置
CA2940490C (en) 2014-03-04 2022-07-12 Universal Robots A/S Safety system for industrial robot
CN112518790A (zh) 2014-09-26 2021-03-19 泰瑞达公司 手爪和自动测试设备
KR102603939B1 (ko) 2015-07-08 2023-11-20 유니버셜 로보츠 에이/에스 제3자 기여를 가진 산업용 로봇의 최종 사용자 프로그래밍 확장 방법
JP6067905B1 (ja) * 2016-03-18 2017-01-25 M−Solutions株式会社 ロボット制御プログラム生成システム
CN105666526A (zh) * 2016-03-22 2016-06-15 北京百度网讯科技有限公司 基于人工智能的机器人调试系统
KR102306624B1 (ko) * 2016-03-31 2021-09-28 엔티티 디스럽션 유에스 지속적 컴패니언 디바이스 구성 및 전개 플랫폼
TWI805545B (zh) 2016-04-12 2023-06-21 丹麥商環球機器人公司 用於藉由示範來程式化機器人之方法和電腦程式產品
WO2020021818A1 (ja) 2018-07-27 2020-01-30 シチズン時計株式会社 プログラム作成システム、プログラム、及び、作成端末機器
WO2020118730A1 (zh) * 2018-12-14 2020-06-18 中国科学院深圳先进技术研究院 机器人柔顺性控制方法、装置、设备及存储介质
JP6717401B1 (ja) * 2019-04-01 2020-07-01 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラミング支援方法
US20230278211A1 (en) 2020-06-25 2023-09-07 Hitachi High-Tech Corporation Robot Teaching Device and Work Teaching Method
JP7444407B2 (ja) * 2020-12-24 2024-03-06 株式会社Avad プログラム実行システム、制御装置及び制御プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000153478A (ja) * 1998-09-03 2000-06-06 Ricoh Elemex Corp ロボットシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820639B2 (ja) * 1995-05-22 1998-11-05 中小企業事業団 ロボットの制御方法及びロボットシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000153478A (ja) * 1998-09-03 2000-06-06 Ricoh Elemex Corp ロボットシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106471572A (zh) * 2016-07-07 2017-03-01 深圳狗尾草智能科技有限公司 一种同步语音及虚拟动作的方法、系统及机器人
CN106471572B (zh) * 2016-07-07 2019-09-03 深圳狗尾草智能科技有限公司 一种同步语音及虚拟动作的方法、系统及机器人

Also Published As

Publication number Publication date
JP2002120174A (ja) 2002-04-23

Similar Documents

Publication Publication Date Title
JP4670136B2 (ja) オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP4765155B2 (ja) オーサリング・システム及びオーサリング方法、並びに記憶媒体
US6470235B2 (en) Authoring system and method, and storage medium used therewith
Pot et al. Choregraphe: a graphical tool for humanoid robot programming
JP6549815B2 (ja) 移動ロボットの挙動を編集及び制御するためのシステムと方法
US7219064B2 (en) Legged robot, legged robot behavior control method, and storage medium
Biggs et al. A survey of robot programming systems
KR101106002B1 (ko) 객체에서의 행동을 생성하는 장치 및 방법
US6141019A (en) Creature animation and simulation technique
EP1072365A1 (en) Control system for a modular machine
US20060195598A1 (en) Information providing device,method, and information providing system
US20030066050A1 (en) Method and system for programming devices using finite state machine descriptions
JP2005193331A (ja) ロボット装置及びその情動表出方法
EP1183655A1 (en) Object modeling for computer simulation and animation
JP6319772B2 (ja) リアルタイムで行われる移動ロボットの脈絡ある挙動を生成する方法およびシステム
WO1997001803A1 (en) Installation and method for controlling a movable apparatus
Blumberg et al. Multi-level control for animated autonomous agents: Do the right thing... Oh, not that...
JPH0668063A (ja) 仮想生物システム
JP2001191274A (ja) データ保持装置、ロボット装置、変更装置及び変更方法
Redondo Verdú et al. Mixed reality for industrial robot programming
Kronfeld et al. An electro mechanical input device for the manipulation of virtual human motion
Barnes Visual programming agents for virtual environments
Breazeal et al. Public anemone: an organic robot creature
Saldien Development of the huggable social robot Probo: on the conceptual design and software architecture
KR100556151B1 (ko) 원격에서 로봇 장치를 제어하는 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110103

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees