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

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

Info

Publication number
JP2001353678A
JP2001353678A JP2000175159A JP2000175159A JP2001353678A JP 2001353678 A JP2001353678 A JP 2001353678A JP 2000175159 A JP2000175159 A JP 2000175159A JP 2000175159 A JP2000175159 A JP 2000175159A JP 2001353678 A JP2001353678 A JP 2001353678A
Authority
JP
Japan
Prior art keywords
robot
editing
posture
program code
authoring
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.)
Pending
Application number
JP2000175159A
Other languages
English (en)
Inventor
Tomoaki Kasuga
知昭 春日
Fumiko Okita
文子 沖田
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 JP2000175159A priority Critical patent/JP2001353678A/ja
Priority to US09/878,648 priority patent/US6470235B2/en
Publication of JP2001353678A publication Critical patent/JP2001353678A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36243Convert source, high level code to machine, object code
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40393Learn natural high level command, associate its template with a plan, sequence

Abstract

(57)【要約】 【課題】 ロボットの動作状態や処理ルーチンを規定す
る部品の集合を用いて動作パターンを作成する。 【解決手段】 ユーザは、GUI画面を用いてマウス操
作によりロボット1の規定のシナリオを作成・編集す
る。オーサリング・ツールは、作成・編集したシナリオ
をRCODEと呼ばれるニーモニック・コードに変換す
る。RCODE動作制御プログラムのデバッグ時には、
RCODEプログラムを1行ごとに取り出して、暗号化
し無線通信手段を利用してロボット側に逐次転送する。
ロボット側ではRCODEをインタープリタが逐次解釈
・実行してデバッグ処理する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、所定のシナリオに
従ったデータを作成するためのオーサリング・システム
及び方法に係り、特に、ロボットの所定の動作パターン
を記述する一連のコマンド/データを作成するオーサリ
ング・システム及び方法に関する。
【0002】更に詳しくは、本発明は、ロボットの動作
状態を規定する部品の集合を用いて動作パターンを作成
するオーサリング・システム及び方法に係り、特に、各
部品をコンピュータ・ディスプレイ上に配置して動作パ
ターンを作成するオーサリング・システム及び方法に関
する。
【0003】
【従来の技術】電気的若しくは磁気的な作用を用いて人
間の動作に似せた運動を行う機械装置のことを「ロボッ
ト」という。ロボットの語源は、スラブ語のROBOT
A(奴隷機械)に由来すると言われている。わが国では、
ロボットが普及し始めたのは1960年代末からである
が、その多くは、工場における生産作業の自動化・無人
化などを目的としたマニピュレータや搬送ロボットなど
の産業用ロボット(industrial robot)であった。
【0004】最近では、イヌやネコのように4足歩行の
動物の身体メカニズムやその動作を模したペット型ロボ
ット、あるいは、ヒトやサルなどの2足直立歩行を行う
動物の身体メカニズムや動作を模した「人間形」若しく
は「人間型」のロボット(humanoid robot)など、脚式
移動ロボットやその安定歩行制御に関する研究開発が進
展し、実用化への期待も高まってきている。これら脚式
移動ロボットは、クローラ式ロボットに比し不安定で姿
勢制御や歩行制御が難しくなるが、階段の昇降や障害物
の乗り越え等、柔軟な歩行・走行動作を実現できるとい
う点で優れている。
【0005】アーム式ロボットのように、ある特定の場
所に植設して用いるような据置きタイプのロボットは、
部品の組立・選別作業など固定的・局所的な作業空間で
のみ活動する。これに対し、移動式のロボットは、作業
空間は非限定的であり、所定の経路上または無経路上を
自在に移動して、所定の若しくは任意の人的作業を代行
したり、ヒトやイヌあるいはその他の生命体に置き換わ
る種々のサービスを提供することができる。
【0006】脚式移動ロボットの用途の1つとして、産
業活動・生産活動等における各種の難作業の代行が挙げ
られる。例えば、原子力発電プラントや火力発電プラン
ト、石油化学プラントにおけるメンテナンス作業、製造
工場における部品の搬送・組立作業、高層ビルにおける
清掃、火災現場その他における救助といったような危険
作業・難作業の代行などである。
【0007】また、脚式移動ロボットの他の用途とし
て、上述の作業支援というよりも、生活密着型、すなわ
ち人間との「共生」あるいは「エンターティンメント」
という用途が挙げられる。この種のロボットは、ヒトあ
るいはイヌ(ペット)などの比較的知性の高い脚式歩行
動物の動作メカニズムや四肢を利用した豊かな感情表現
をエミュレートする。また、予め入力された動作パター
ンを単に忠実に実行するだけではなく、相手の言葉や態
度(「褒める」とか「叱る」、「叩く」など)に呼応し
た、生き生きとした応答表現を実現することも要求され
る。
【0008】従来の玩具機械は、ユーザ操作と応答動作
との関係が固定的であり、玩具の動作をユーザの好みに
合わせて変更することはできない。この結果、ユーザは
同じ動作しか繰り返さない玩具をやがては飽きてしまう
ことになる。
【0009】これに対し、知的なロボットは、動作に起
因するモデルを備えており、外部からの音声や画像、触
覚などの入力情報に基づいてモデルを変化させて動作を
決定することにより、自律的な思考及び動作制御を実現
する。ロボットが感情モデルや本能モデルを用意するこ
とにより、ロボット自身の感情や本能に従った自律的な
行動を表出することができる。また、ロボットが画像入
力装置や音声入出力装置を装備し、画像認識処理や音声
認識処理を行うことにより、より高度な知的レベルで人
間とのリアリスティックなコミュニケーションを実現す
ることも可能となる。
【0010】また、ユーザ操作などの外部からの刺激を
検出したことに応答してこのモデルを変更する、すなわ
ち「学習効果」を付与することによって、ユーザにとっ
て飽きない又は好みに適応した動作パターンを提供する
ことができる。
【0011】昨今の脚式移動ロボットは高い情報処理能
力を備えており、一種の計算機システムとして捉えるこ
とができる。したがって、ロボット上で実現される動作
パターン、あるいは、複数の基本的な動作パターンの組
合せによって構成される高度且つ複雑な一連の動作シー
ケンスは、コンピュータ・プログラミングと同様の作業
によって構築される。
【0012】また、今後ますますロボットの普及率が高
まり、産業界のみならず一般家庭や日常生活にも深く浸
透していくことが予想される。とりわけ、エンターティ
ンメント性を追求する製品に関しては、コンピュータや
コンピュータ・プログラミングに関する高度な知識を持
たない一般消費者層がロボットを購入して使用するケー
スが多いと予想される。このような一般ユーザにとって
も、ロボットの動作シーケンスを対話的な処理により比
較的容易且つ効率的に作成・編集するためのことを支援
するツール、すなわちオーサリング・システムを提供す
ることが好ましいと考えられる。
【0013】
【発明が解決しようとする課題】本発明の目的は、ロボ
ットの所定の動作パターンを記述する一連のコマンド/
データを作成することができる、優れたオーサリング・
システム及び方法を提供することにある。
【0014】本発明の更なる目的は、ロボットの動作状
態を規定する部品の集合を用いて動作パターンを作成す
ることができる、優れたオーサリング・システム及び方
法を提供することにある。
【0015】本発明の更なる目的は、各部品をコンピュ
ータ・ディスプレイ上に配置して動作パターンを作成す
ることができる、優れたオーサリング・システム及び方
法を提供することにある。
【0016】
【課題を解決するための手段】本発明は、上記課題を参
酌してなされたものであり、その第1の側面は、ロボッ
トの動作制御プログラムを作成・編集するためのオーサ
リング・システム又は方法であって、ユーザに対して該
ロボットの動作シナリオを作成・編集するための作業場
を提供する編集部又は編集ステップと、前記編集部を介
して作成・編集されたシナリオを前記ロボット上で解釈
可能なプログラム・コードに変換する変換部又は変換ス
テップと、を具備することを特徴とするオーサリング・
システム又は方法である。
【0017】前記編集部又は編集ステップは、頻繁に使
用する動作状態や処理ルーチン又はその雛型を部品化し
て用意する部品群と、座標指示装置を介した指示操作に
より前記部品群の各部品を取捨選択して配置する操作画
面とをユーザに提供するようにしてもよい。
【0018】あるいは、前記編集部又は編集ステップ
は、所定のプログラム言語形式のスクリプトを作成・編
集する環境をユーザに提供するようにしてもよい。
【0019】また、前記変換部又は変換部は、部品の配
置により表現された動作シナリオ及び/又はスクリプト
形式で記述された動作シナリオを、前記ロボットにおい
て解釈可能なニーモニック・コードに変換するようにし
てもよい。ここで言うニーモニック・コードの一例はR
CODEである。RCODEの詳細については後述に譲
る。
【0020】また、前記変換部又は変換ステップにおい
て変換されたプログラム・コードを前記ロボットに転送
するための通信手段又は通信ステップをさらに備えても
よい。通信手段又は通信ステップでは、例えば、blu
etoothや.11Bなどのような近距離無線データ
通信を適用することができる。
【0021】ここで言う通信手段又は通信ステップは、
前記変換部又は変換ステップにおいて変換されたプログ
ラム・コードを1ステップずつ取り出して前記ロボット
に転送するようにしてもよい。これに対し、ロボット側
では、インタープリタを用いて受信したプログラム・コ
ードを逐次解釈して実行及び/又はデバッグすることが
できる。
【0022】また、通信データのセキュリティを保つた
め、前記通信手段又は通信ステップは、前記変換部又は
変換ステップにおいて変換されたプログラム・コードを
暗号化して前記ロボットに転送するようにしてもよい。
【0023】また、前記通信手段又は通信ステップを介
して受信したプログラム・コードを解釈する解釈部又は
解釈ステップと、前記解釈部又は解釈ステップによる解
釈結果に従って前記ロボットを駆動する駆動制御部又は
駆動制御ステップとを前記ロボット上に備えてもよい。
【0024】このような場合、前記解釈部又は解釈ステ
ップは、受信したプログラム・コードを1ステップ単位
で解釈して実行するようにしてもよい。
【0025】脚式ロボットは一般に、現在の姿勢から直
接遷移可能な動作や姿勢と、ある動作や姿勢を経由して
なら遷移可能となる姿勢とを持つ。本発明に係るロボッ
トは、現在の姿勢から直接遷移可能な動作や姿勢並びに
ある動作や姿勢を経由してなら遷移可能となる姿勢など
に関する姿勢遷移制限情報をあらかじめ備えていてもよ
い。
【0026】このような場合、前記駆動制御部又は駆動
制御ステップは、該姿勢遷移制限情報を基に、プログラ
ム・コードの指示内容を姿勢遷移可能な形式に変換する
ことができる。
【0027】また、かかる姿勢遷移制限情報は、前記ロ
ボットがとり得る姿勢を示すノードと、遷移可能な2つ
のノード間を結ぶ動作アークで構成される有向グラフ形
式で保持することができる。したがって、前記駆動制御
部又は駆動制御ステップは、該有向グラフを探索するこ
とによって、プログラム・コードの指示内容を姿勢遷移
可能な形式に容易に変換することができる。
【0028】また、本発明の第2の側面は、ロボットの
動作制御プログラムを作成・編集するためのオーサリン
グ処理をコンピュータ・システム上で実行するように記
述されたコンピュータ・ソフトウェアをコンピュータ可
読形式で物理的に格納した記憶媒体であって、前記コン
ピュータ・ソフトウェアは、ユーザに対して該ロボット
の動作シナリオを作成・編集するための作業場を提供す
る編集ステップと、前記編集ステップを介して作成・編
集されたシナリオを前記ロボット上で解釈可能なプログ
ラム・コードに変換する変換ステップと、を具備するこ
とを特徴とする記憶媒体である。
【0029】本発明の第2の側面に係る記憶媒体は、例
えば、様々なプログラム・コードを実行可能な汎用コン
ピュータ・システムに対して、コンピュータ・ソフトウ
ェアをコンピュータ可読な形式で物理的に提供する媒体
である。このような媒体は、例えば、CD(Compact Di
sc)やFD(Floppy Disc)、MO(Magneto-Opticaldi
sc)などの着脱自在で可搬性の記憶媒体である。あるい
は、ネットワーク(ネットワークは無線、有線の区別を
問わない)などの伝送媒体などを経由してコンピュータ
・ソフトウェアを特定のコンピュータ・システムにコン
ピュータ可読形式で提供することも技術的に可能であ
る。
【0030】このような記憶媒体は、コンピュータ・シ
ステム上で所定のコンピュータ・ソフトウェアの機能を
実現するための、コンピュータ・ソフトウェアと記憶媒
体との構造上又は機能上の協働的関係を定義したもので
ある。換言すれば、本発明の第2の側面に係る記憶媒体
を介して所定のコンピュータ・ソフトウェアをコンピュ
ータ・システムにインストールすることによって、コン
ピュータ・システム上では協働的作用が発揮され、本発
明の第1の側面に係るオーサリング・システム又は方法
と同様の作用効果を得ることができる。
【0031】
【作用】ユーザは、本発明を実現したオーサリング・ツ
ールが提供するGUI画面を用いてマウス操作によりロ
ボットの規定のシナリオを作成・編集する。あるいは、
ユーザは、テキスト・エディタなどを用いて、スクリプ
ト形式でロボットの動作制御プログラムを作成・編集し
てもよい。
【0032】オーサリング・ツールは、作成・編集した
シナリオやスクリプト形式の動作制御プログラムをRC
ODEと呼ばれるニーモニック・コードに変換する。R
CODE動作制御プログラムのデバッグ時には、RCO
DEプログラムを1行ごとに取り出して、暗号化して、
bluetoothや.11Bなどの無線通信手段を利
用してロボット側に逐次転送する。
【0033】他方のロボット側では、RCODEなどで
記述された動作制御プログラムの実行及びデバッグ環境
として、インタープリタ/デバッガと、ミドルウェア
と、ドライバなどを備えている。
【0034】インタープリタは、RCODE形式で記述
されたプログラムを1行ずつ読み込んで解釈して実行す
る高水準言語プログラムである。デバッガは、RCOD
Eプログラム中の誤り(バグ)を発見して、修正する作
業を支援するプログラムである。ミドルウェアは、ロボ
ットにおける歩行その他の脚式動作などの制御や、カメ
ラからの入力画像の認識処理や、マイクからの音声入力
の認識処理などを行う処理エンジンである。
【0035】ミドルウェアは、ロボット1が遷移可能な
姿勢及び遷移する際の動作を、例えば有向グラフの形式
であらかじめ登録しており、有向グラフに従って上位プ
ログラムからの行動指令を姿勢遷移情報に変換して、ド
ライバに対する具体的な動作指示を発行するようになっ
ている。
【0036】したがって、一般ユーザは、オーサリング
・ツールを用いてGUI画面上でロボット1の動作シナ
リオを編集したり、あるいはスクリプト形式で動作制御
プログラムを記述する限りにおいて、現実のロボットに
おける姿勢・動作遷移特性のような詳細なハードウェア
情報を気にしなくて済む。また、ミドルウェア・レベル
においてRCODEコマンド・レベルでの論理的な姿勢・
動作指示とハードウェア上の姿勢・動作遷移特性との差
異を吸収するので、ロボットの姿勢・動作遷移特性に反
していることはRCODEプログラムのデバッグの対象
とはならない。
【0037】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0038】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施例を詳解する。
【0039】A.オーサリング・システムの構成 図1には、本発明を実施に供される、四肢による脚式歩
行を行う移動ロボット1の外観構成を示している。図示
の通り、該ロボット1は、四肢を有する動物の形状や構
造をモデルにして構成された多関節型の移動ロボットで
ある。とりわけ本実施例の移動ロボット1は、愛玩動物
の代表例であるイヌの形状及び構造を模してデザインさ
れたペット型ロボットという側面を有し、例えば人間の
住環境において人間と共存するとともに、ユーザ操作に
応答した動作表現することができる。
【0040】移動ロボット1は、胴体部ユニット2と、
頭部ユニット3と、尻尾4と、四肢すなわち脚部ユニッ
ト6A〜6Dで構成される。
【0041】頭部ユニット3は、ロール、ピッチ及びヨ
ーの各軸方向(図示)の自由度を持つ首関節7を介し
て、胴体部ユニット2の略前上端に配設されている。ま
た、頭部ユニット3には、イヌの「目」に相当するCC
D(Charge Coupled Device:電荷結合素子)カメラ1
5と、「耳」に相当するマイクロフォン16と、「口」
に相当するスピーカ17と、触感に相当するタッチセン
サ18が搭載されている。これら以外にも、生体の五感
を構成するセンサを含んでいても構わない。
【0042】尻尾4は、ロール及びピッチ軸の自由度を
持つ尻尾関節8を介して、胴体部ユニット2の略後上端
に湾曲若しくは揺動自在に取り付けられている。
【0043】脚部ユニット6A及び6Bは前足を構成
し、脚部ユニット6C及び6Dは後足を構成する。各脚
部ユニット6A〜6Dは、それぞれ、大腿部ユニット9
A〜9D及び脛部ユニット10A〜10Dの組み合わせ
で構成され、胴体部ユニット2底面の前後左右の各隅部
に取り付けられている。大腿部ユニット9A〜9Dは、
ロール、ピッチ、ヨーの各軸の自由度を持つ股関節11
A〜11Dによって、胴体部ユニット2の各々の所定部
位に連結されている。また、大腿部ユニット9A〜9D
と脛部ユニット10A〜10Dの間は、ロール及びピッ
チ軸の自由度を持つ膝関節12A〜12Dによって連結
されている。
【0044】図示のように構成された移動ロボット1
は、後述する制御部からの指令により各関節アクチュエ
ータを駆動することによって、例えば、頭部ユニット3
を上下左右に振らせたり、尻尾4を振らせたり、各足部
ユニット6A〜6Dを協調的に駆動させて歩行や走行な
どの動作を実現することができる。
【0045】なお、移動ロボット1の関節自由度は、実
際には各軸毎に配備され関節アクチュエータ(図示しな
い)の回転駆動によって提供される。また、移動ロボッ
ト1が持つ関節自由度の個数は任意であり、本発明の要
旨を限定するものではない。
【0046】図2には、移動ロボット1の電気・制御系
統の構成図を模式的に示している。同図に示すように、
移動ロボット1は、全体の動作の統括的制御やその他の
データ処理を行う制御部20と、入出力部40と、駆動
部50と、電源部60とで構成される。以下、各部につ
いて説明する。
【0047】入出力部40は、入力部として移動ロボッ
ト1の目に相当するCCDカメラ15や、耳に相当する
マイクロフォン16、触感に相当するタッチセンサ18
など、五感に相当する各種のセンサを含む。また、出力
部として、口に相当するスピーカ17などを装備してい
る。これら出力部は、脚などによる機械運動パターン以
外の形式でロボット1からのユーザ・フィードバックを
表現することができる。
【0048】移動ロボット1は、カメラ15を含むこと
で、作業空間上に存在する任意の物体の形状や色彩を認
識することができる。また、移動ロボット1は、カメラ
のような視覚手段の他に、赤外線、音波、超音波、電波
などの発信波を受信する受信装置をさらに備えていても
よい。この場合、各伝送波を検知するセンサ出力に基づ
いて発信源からの位置や向きを計測することができる。
【0049】駆動部50は、制御部20が指令する所定
の運動パターンに従って移動ロボット1の機械運動を実
現する機能ブロックであり、首関節7、尻尾関節8、股
関節11A〜11D、膝関節12A〜12Dなどのそれ
ぞれの関節におけるロール、ピッチ、ヨーなど各軸毎に
設けられた駆動ユニットで構成される。図示の例では、
移動ロボット1はn個の関節自由度を有し、したがって
駆動部50はn個の駆動ユニットで構成される。各駆動
ユニットは、所定軸回りの回転動作を行うモータ51
と、モータ51の回転位置を検出するエンコーダ52
と、エンコーダ52の出力に基づいてモータ51の回転
位置や回転速度を適応的に制御するドライバ53の組み
合わせで構成される。
【0050】電源部60は、その字義通り、移動ロボッ
ト1内の各電気回路等に対して給電を行う機能モジュー
ルである。本実施例に係る移動ロボット1は、バッテリ
を用いた自律駆動式であり、電源部60は、充電バッテ
リ61と、充電バッテリ61の充放電状態を管理する充
放電制御部62とで構成される。
【0051】充電バッテリ61は、例えば、複数本のニ
ッケル・カドミウム電池セルをカートリッジ式にパッケ
ージ化した「バッテリ・パック」の形態で構成される。
【0052】また、充放電制御部62は、バッテリ61
の端子電圧や充電/放電電流量、バッテリ61の周囲温
度などを測定することでバッテリ61の残存容量を把握
し、充電の開始時期や終了時期などを決定するようにな
っている。充放電制御部62が決定する充電の開始及び
終了時期は制御部20に通知され、移動ロボット1が充
電オペレーションを開始及び終了するためのトリガとな
る。充電オペレーションの詳細については後述に譲る。
【0053】制御部20は、「頭脳」に相当し、例えば
移動ロボット1の頭部ユニット3あるいは胴体部ユニッ
ト2に搭載される。
【0054】図3には、制御部20の構成をさらに詳細
に図解している。同図に示すように、制御部20は、メ
イン・コントローラとしてのCPU(Central Processi
ng Unit)21が、メモリその他の各回路コンポーネン
トや周辺機器とバス接続された構成となっている。バス
27上の各装置にはそれぞれに固有のアドレス(メモリ
・アドレス又はI/Oアドレス)が割り当てられてお
り、CPU21はアドレス指定することでバス28上の
特定の装置と通信することができる。
【0055】RAM(Random Access Memory)22は、
DRAM(Dynamic RAM)などの揮発性メモリで構成さ
れた書き込み可能メモリであり、CPU21が実行する
プログラム・コードをロードしたり、作業データの一時
的な保存のために使用される。
【0056】ROM(Read Only Memory)23は、プロ
グラムやデータを恒久的に格納する読み出し専用メモリ
である。ROM23に格納されるプログラム・コードに
は、移動ロボット1の電源投入時に実行する自己診断テ
スト・プログラムや、移動ロボット1の動作を規定する
制御プログラムなどが挙げられる。
【0057】ロボット1の制御プログラムには、カメラ
15やマイクロフォン16などのセンサ入力を処理する
「センサ入力処理プログラム」、センサ入力と所定の動
作モデルとに基づいて移動ロボット1の行動すなわち運
動パターンを生成する「行動命令プログラム」、生成さ
れた運動パターンに従って各モータの駆動やスピーカ1
7の音声出力などを制御する「駆動制御プログラム」な
どが含まれる。生成される運動パターンには、通常の歩
行運動や走行運動以外に、「お手」、「お預け」、「お
座り」や、「ワンワン」などの動物の鳴き声の発声など
エンターティンメント性の高い動作を含んでいてもよ
い。
【0058】また、ロボット1のその他の制御プログラ
ムとして、オーサリング・ツールを用いて作成・編集さ
れた各種の動作シーケンス・プログラムが含まれる。オ
ーサリング・ツールは、例えば外部のコンピュータ・シ
ステム上で所定のソフトウェア実行環境下で起動する
が、オーサリング・ツール並びに該ツール上で作成・編
集されるプログラムついては後に詳解する。
【0059】不揮発性メモリ24は、例えばEEPRO
M(Electrically Erasable and Programmable ROM)の
ように、電気的に消去再書き込みが可能なメモリ素子で
構成され、逐次更新すべきデータを不揮発的に保持する
ために使用される。逐次更新すべきデータには、例え
ば、移動ロボット1の行動パターンを規定するモデルな
どが挙げられる。
【0060】インターフェース25は、制御部20外の
機器と相互接続し、データ交換を可能にするための装置
である。インターフェース25は、例えば、カメラ15
やマイクロフォン16、スピーカ17との間でデータ入
出力を行う。また、インターフェース25は、駆動部5
0内の各ドライバ53−1…との間でデータやコマンド
の入出力を行う。また、インターフェース25は、電源
部60との間で充電開始及び充電終了信号の授受を行う
こともできる。
【0061】インターフェース25は、RS(Recommen
ded Standard)−232Cなどのシリアル・インターフ
ェース、IEEE(Institute of Electrical and elec
tronics Engineers)1284などのパラレル・インタ
ーフェース、USB(Universal Serial Bus)インター
フェース、i−Link(IEEE1394)インター
フェース、SCSI(Small Computer System Interfac
e)インターフェースなどのような、コンピュータの周
辺機器接続用の汎用インターフェースを備え、ローカル
接続された外部機器との間でプログラムやデータの移動
を行うようにしてもよい。
【0062】また、インターフェース25の1つとして
赤外線通信(IrDA)インターフェースを備え、外部
機器と無線通信を行うようにしてもよい。赤外線通信の
ための送受信部は、例えば頭部ユニット2や尻尾3な
ど、移動ロボット1本体の先端部に設置されることが受
信感度の観点から好ましい。
【0063】さらに、制御部20は、無線通信インター
フェース26ネットワーク・インターフェース・カード
(NIC)27を含み、"bluetooth"や".1
1B"のような近接無線通信、あるいはLAN(Local A
rea Network:例えばEthernet(登録商標))
やインターネットを経由して、外部のホスト・コンピュ
ータ100とデータ通信を行うことができる。
【0064】このようなロボットとホストコンピュータ
間のデータ通信の目的は、遠隔のコンピュータ資源を用
いて移動ロボット1の動作をリモート・コントロールす
ることである。また、該データ通信の他の目的は、動作
モデルやその他のプログラム・コードなどロボット1の
動作制御に必要なデータやプログラムをネットワーク経
由で移動ロボット1に供給することにある。また、該デ
ータ通信の他の目的は、ホスト・コンピュータ100上
でオーサリング・ツールを用いて作成・編集したロボッ
ト動作制御用プログラムのダウンロードや、このような
動作制御用プログラムのホスト・コンピュータ100と
ロボット1との協働的動作によるリアルタイムのデバッ
グ処理である。但し、オーサリング・ツールやデバッグ
処理については後に後述する。
【0065】また、制御部20は、テンキー及び/又は
アルファベット・キーからなるキーボード29を備えて
おいてもよい。キーボード29は、作業現場での直接的
なコマンド入力のために使用する他、パスワードなどの
所有者認証情報の入力に用いられる。
【0066】本実施例に係るロボット1は、制御部20
が所定の制御プログラムを実行することによって自律的
な動作を行うことができる。また、画像入力(すなわち
カメラ15)、音声入力(すなわちマイク16)、タッ
チセンサ18などの人間や動物の五感に相当する入力装
置を備えるとともに、これら外部入力に応答した理性的
又は感情的な動作を実行するインテリジェンスを備えて
いる。
【0067】図1〜図3に示すように構成された移動ロ
ボット1は、以下のような特徴がある。すなわち、
【0068】(1)ある姿勢から他の姿勢へ遷移するよ
うに指示されたとき、各姿勢間を直接に遷移せず、あら
かじめ用意された無理のない中間的な姿勢を経由して遷
移する。 (2)姿勢遷移で任意の姿勢に到達したときに通知を受
け取ることができる。 (3)頭部、足部、尻尾部などの各ユニット単位で姿勢
を独立して管理し姿勢制御することができる。すなわ
ち、ロボット1の全体の姿勢とは別に各ユニット毎に姿
勢を管理することができる。 (4)動作命令の動作の詳細を示すためのパラメータを
渡すことができる。
【0069】図3に示すように、本実施例に係る移動ロ
ボット1は、ネットワーク経由で外部のホスト・コンピ
ュータ100と相互接続されている。あるいは、ホスト
・コンピュータ100とは、無線通信(例えば、blu
etoothや.11B近距離無線データ通信)やその
他の通信手段によって接続されていてもよい。
【0070】ホスト・コンピュータ100上では、所定
のソフトウェア実行環境が構築され、該環境下では、オ
ーサリング・ツールを起動して、対話的な処理によりロ
ボット1の動作シーケンスを比較的容易且つ効率的に作
成することができる。オーサリング・ツールの詳細につ
いては後述する。
【0071】図4には、ホスト・コンピュータ100の
ハードウェア構成例を模式的に図解している。以下、コ
ンピュータ100内の各部について説明する。
【0072】システム100のメイン・コントローラで
あるCPU(Central Processing Unit)101は、オ
ペレーティング・システムOSの制御下で、各種のアプ
リケーションを実行するようになっている。OSは、よ
り好ましくはGUI(Graphical User Interface)環境
を提供するが、例えば、UNIX(登録商標)、又は、
米Microsoft社のWindows98/NTで
よい。
【0073】図示の通り、CPU101は、バス107
によって他の機器類(後述)と相互接続されている。バ
ス107上の各機器にはそれぞれ固有のメモリ・アドレ
ス又はI/Oアドレスが付与されており、CPU101
はこれらアドレスによって機器アクセスが可能となって
いる。バス107の一例はPCI(Peripheral Compone
nt Interconnect)バスである。
【0074】メモリ102は、プロセッサ101におい
て実行されるプログラム・コードを格納したり、実行中
の作業データを一時保管するために使用される記憶装置
である。同図に示すメモリ102は、不揮発及び揮発メ
モリ双方を含むものと理解されたい。
【0075】ディスプレイ・コントローラ103は、プ
ロセッサ101が発行する描画命令を実際に処理するた
めの専用コントローラであり、例えばSVGA(Super
Video Graphic Array)又はXGA(eXtended Graphic
Array)相当のビットマップ描画機能をサポートする。
ディスプレイ・コントローラ103において処理された
描画データは、例えばフレーム・バッファ(図示しな
い)に一旦書き込まれた後、表示装置111に画面出力
される。表示装置111は、例えば、CRT(Cathode
Ray Tube)ディスプレイや、液晶表示ディスプレイ(Li
quid Crystal Display)などである。
【0076】入力機器インターフェース104は、キー
ボード112やマウス113などのユーザ入力機器をシ
ステム100に接続するための装置である。入力機器イ
ンターフェース104は、キーボード112によるキー
入力又はマウス113を介した座標指示入力に応答し
て、プロセッサ101に対して割り込みを発生する。
【0077】ネットワーク・インターフェース105
は、Ethernetなどの所定の通信プロトコルに従
って、システム100をLAN(Local Area Network)
などのネットワークに接続したり、あるいはbluet
oothや.11Bのような近距離無線データ通信に接
続することができる。ネットワーク・インターフェース
105は、一般に、LANアダプタ・カードの形態で提
供され、マザーボード(図示しない)上のPCIバス・
スロットの装着して用いられる。
【0078】図3に示す例では、ホスト・コンピュータ
100は、無線データ通信やネットワーク経由でロボッ
ト1と相互接続されているが、勿論、他の通信手段によ
って両者が接続されていてもよい。
【0079】またネットワーク上では、複数のホスト・
コンピュータ(図示しない)がトランスペアレントな状
態で接続され、分散コンピューティング環境が構築され
ている。ネットワーク上では、ソフトウェア・プログラ
ムやデータ・コンテンツなどの配信が行われる。例え
ば、本実施例に係るオーサリング・ツールや、該オーサ
リング・ツールで作成・編集したロボット用動作シーケ
ンス・プログラムなどを、ネットワーク経由で配信する
ことができる。また、このようなプログラム/データの
配信サービスを有料又は無料で行ってもよい。
【0080】外部機器インターフェース106は、ハー
ド・ディスク・ドライブ(HDD)114やメディア・ド
ライブ115などの外部装置をシステム100に接続す
るための装置である。外部機器インターフェース106
は、例えば、IDE(Integrated Drive Electronics)
やSCSI(Small Computer System Interface)など
のインターフェース規格に準拠する。
【0081】HDD114は、記憶担体としての磁気デ
ィスクを固定的に搭載した外部記憶装置であり(周
知)、記憶容量やデータ転送速度などの点で他の外部記
憶装置よりも優れている。ソフトウェア・プログラムを
実行可能な状態でHDD116上に置くことをプログラ
ムのシステムへの「インストール」と呼ぶ。通常、HD
D114には、プロセッサ511が実行すべきオペレー
ティング・システムのプログラム・コードや、アプリケー
ション・プログラム、デバイス・ドライバなどが不揮発的
に格納されている。例えば、本実施例に係るオーサリン
グ・ツールや、該オーサリング・ツールを用いて作成・
編集したロボット用動作シーケンス・プログラムを、H
DD114上にインストールすることができる。
【0082】また、メディア・ドライブ115は、CD
(Compact Disc)やMO(Magneto-Optical disc)、D
VD(Digital Versatile Disc)などの可搬型メディア
を装填して、データ記録面にアクセスするための装置で
ある。可搬型メディアは、主として、ソフトウェア・プ
ログラムやデータ・ファイルなどをコンピュータ可読形
式のデータとしてバックアップすることや、これらをシ
ステム間で移動(販売・流通・配布を含む)する目的で使
用される。例えば、本実施例に係るオーサリング・ツー
ルや、該オーサリング・ツールを用いて作成したロボッ
ト用動作シーケンス・プログラムなどを、これら可搬型
メディアを利用して機器間で物理的に流通・配布するこ
とができる。
【0083】なお、図4に示すようなホスト・コンピュ
ータ100の一例は、米IBM社のパーソナル・コンピ
ュータPC/AT(Personal Computer/Advanced Techn
ology)の互換機又は後継機である。勿論、他のアーキ
テクチャを備えた計算機システムを本実施例に係るホス
ト・コンピュータ100に適用することも可能である。
【0084】本実施例では、ロボット1の所定の動作パ
ターンを記述する一連のコマンド/データからなる動作
制御プログラムを、ホスト・コンピュータ100上で起
動したオーサリング・ツールを用いて作成・編集する。
また、このオーサリング・ツールを用いて作成・編集し
た動作制御プログラムを、例えばbluetooth
や.11Bなどの無線通信手段を用いてロボット1側に
転送して、ホスト・コンピュータ100とロボット1と
の協働的動作によりデバッグ処理を行うようになってい
る。すなわち、ホスト・コンピュータ100とロボット
1の誘起的な結合により、ロボット1の動作制御プログ
ラムのためのオーサリング・システムが構築される。
【0085】図5には、オーサリング・システムの全体
構成を模式的に図解している。
【0086】ホスト・コンピュータ100側では、ユー
ザは、オーサリング・ツールが提供するGUI(Graphi
cal User Interface)画面を用いてマウス操作によりロ
ボット1の規定のシナリオを作成・編集することができ
る。シナリオ作成用のGUI画面並びに該画面上の操作
については後述する。あるいは、ユーザは、テキスト・
エディタなどを用いて、スクリプト形式(例えばC言語
などの高級言語形式)でロボット1の動作制御プログラ
ムを作成・編集することができる。
【0087】オーサリング・ツールは、ユーザがGUI
画面上で作成・編集したシナリオや、テキスト・エディ
タ上で作成・編集したスクリプト形式の動作制御プログ
ラムを、"RCODE"と呼ばれるアセンブラのようなニ
ーモニック・コードに変換する。
【0088】RCODEとは、簡単なコマンドでロボッ
ト1を制御するために策定されたプログラム言語であ
り、IFやGOなどの基本的な制御構造も備えているの
で、ロボット制御用最低水準スクリプト言語としても使
用することができる。但し、RCODEの詳細について
は後に詳解する。
【0089】ホスト・コンピュータ100上で作成・編
集されたRCODE動作制御プログラムは、例えば、メ
モリ・スティックなどのメディアを利用してロボット1
側に移動することができる。また、RCODE動作制御
プログラムのデバッグ時には、RCODEプログラムを
1行ごとに取り出して、暗号化して、bluetoot
hや.11Bなどの無線通信手段を利用してロボット1
側に逐次転送するようになっている。
【0090】他方、ロボット1側では、RCODEなど
で記述された動作制御プログラムの実行及びデバッグ環
境として、インタープリタ/デバッガと、ミドルウェア
と、ドライバと、オペレーティング・システム(OS)
とを備えている。
【0091】インタープリタは、RCODE形式で記述
されたプログラムを1行ずつ読み込んで解釈して実行す
る高水準言語プログラムである。但し、デバッグ時など
において、ホスト・コンピュータ100側から暗号化さ
れた形式でRCODEプログラムが送信される場合に
は、インタープリタは、これを一旦復号化してから解釈
・実行を行う。
【0092】デバッガは、RCODEプログラム中の誤
り(バグ)を発見して、修正する作業を支援するプログ
ラムである。すなわち、プログラムを指定した行で実行
を止めたり、そのときのメモリや変数の内容を参照する
ことができる。
【0093】ミドルウェアは、ロボット1における歩行
その他の脚式動作などの制御や、カメラ15からの入力
画像の認識処理や、マイク16からの音声入力の認識処
理などを行う処理エンジンである。
【0094】ドライバは、各関節アクチュエータやその
他のハードウェアの操作を行うためのプログラム・コー
ドである。
【0095】本実施例では、ミドルウェア並びにドライ
バは、オブジェクト指向プログラムによって実装されて
いる。オブジェクト指向に基づくソフトウェアは、基本
的に、データとそのデータに対する処理手続きとを一体
化させた「オブジェクト」というモジュール単位で扱わ
れる。また、必要に応じて複数のオブジェクトを作成し
たり組み合わせることで1つのソフトウェアが完成す
る。一般に、オブジェクト指向によれば、ソフトウェア
の開発と保守が効率化されると考えられている。
【0096】オペレーティング・システム(OS)は、
これらオブジェクト間のデータ通信の管理や、その他の
プログラム実行に関する制御を行う。OSもオブジェク
ト指向プログラムにより実装される。
【0097】B.オーサリング・ツールを用いたロボッ
ト用動作プログラムの作成・編集 次いで、本実施例に係るオーサリング・ツールが提供す
る、ユーザがロボット1の動作シナリオを作成・編集す
るためのGUI画面について説明する。図6には、該G
UI画面の構成を図解している。
【0098】同図に示すように、該GUI画面は、マウ
スによるクリック、ドラッグ&ドロップ操作を基調とし
て編集作業を行う編集ウィンドウと、編集作業において
頻繁に使用される動作手順を部品化して提供する部品ウ
ィンドウを含んでいる。
【0099】編集ウィンドウは、最上段より順に、タイ
トル・バー、メニュー・バー、ツール・バー、編集領域
が配設されている。
【0100】メニュー・バーは、ユーザがクリック操作
により選択可能な処理の一覧を横方向に配列した領域で
あり、この例では、「ファイル(F)」、「編集
(E)」、「表示(V)」、「挿入(I)」、「グルー
プ(G)」という各メニュー項目が用意されている。あ
るメニュー項目を選択すると、さらに該当するプルダウ
ン・メニューが出現する。
【0101】図7には、メニュー項目「ファイル」に関
するプルダウン・メニューを図解している。同図に示す
ように、該プルダウン・メニュー中には、「新規作
成」、「開く」、「上書き保存」、「名前を付けて保
存」、「メモリスティックイメージの作成」、「メモリ
スティックイメージの転送」、「終了」という各サブメ
ニューが配列されている。
【0102】「新規作成」を選択すると、ロボットの一
連の動作を記述するシナリオ(以下、「プロジェクト」
とも言う)を新規に作成する。既に編集中のプロジェク
トが編集ウィンドウ上に存在する場合には、その保存を
促すダイアログが出現する。図6に示す編集ウィンドウ
は新規プロジェクトを作成したときの初期画面であり、
プロジェクトの先頭と最後尾にそれぞれ該当する"ST
ART"ボックス及び"END"ボックスのみからなるメ
イン・グループが編集領域に表示されている。
【0103】サブメニュー「開く」を選択すると、ファ
イルとして保存されたプロジェクトを編集ウィンドウ上
に開く。既に編集中のプロジェクトが編集ウィンドウ上
に存在する場合には、その保存を促すダイアログが表示
される。本実施例では、プロジェクトは、拡張子"ap
k"を持つファイルとして扱われるものとする。
【0104】サブメニュー「上書き保存」を選択する
と、同名のファイルに編集中のプロジェクトを保存す
る。このとき、ファイル名を尋ねるダイアログは出現し
ないものとする。
【0105】サブメニュー「名前を付けて保存」を選択
すると、ファイル名を尋ねるダイアログが表示される。
該ダイアログ上で、ユーザは保存先のディレクトリ名と
ファイル名を指定することができ、指定されたディレク
トリにそのファイル名でプロジェクトが保存される。
【0106】サブメニュー「メモリスティックイメージ
の作成」を選択すると、メモリ・スティック(又はこれ
と等価な記憶メディア)に書き込むためのイメージ・フ
ァイルを作成する。本実施例では、イメージ・ファイル
は、元のapk形式のファイルと同じディレクトリに"
aim"という拡張子で保存されるものとする。
【0107】サブメニュー「メモリスティックイメージ
の転送」を選択すると、メモリ・スティック上のイメー
ジ・ファイルを指定されたフルパスに生成する。
【0108】サブメニュー「終了」を選択すると、実行
中のオーサリング・ツールを終了する。
【0109】また、図8には、メニュー項目「グルー
プ」に関するプルダウン・メニューを図解している。同
図に示すように、該プルダウン・メニュー中には、「新
規グループ作成」、「このグループの削除」、「グルー
プ一覧」、「グループ階層構造」、「全てのグループを
開く」、「全てのグループを閉じる」という各サブメニ
ューが配列されている。
【0110】サブメニュー「新規グループ作成」を選択
すると、新規グループの作成を行う。
【0111】サブメニュー「このグループの削除」を選
択すると、現在表示されているグループの削除を行う。
但し、グループを削除しても、そのグループを呼び出し
ているグループ・ボックスは削除されない。
【0112】サブメニュー「グループ一覧」を選択する
と、グループの一覧を表示する。表示されたグループの
名前をダブルクリックすることで、そのグループを開く
ことができる。
【0113】サブメニュー「グループ階層構造」を選択
すると、グループの階層構造(呼び出し構造)を表示す
る。表示されたグループの名前をダブルクリックするこ
とで、そのグループを開くことができる。
【0114】サブメニュー「全てのグループを開く」を
選択すると、すべてのグループのウィンドウを開く。
【0115】サブメニュー「全てのグループを閉じる」
を選択すると、すべてのグループのウィンドウを閉じる
(但し、メイン・グループは除く)。
【0116】また、図6に示す例では、ツール・バー内
には、「通常モード」、「接続モード」、「動作ボック
ス」、「分岐ボックス」、「グループ・ボックス」とい
う各ツール・ボタンが配設されている。
【0117】ボタン「通常モード」を選択すると、マウ
ス操作が通常モードに遷移する。例えば、ボックスに対
するドラッグ動作は、ボックスの移動として機能する。
【0118】ボタン「接続モード」を選択すると、マウ
ス操作が接続モードに遷移する。すなわち、ボックスに
対するドラッグ動作は、ボックス間の接続として機能す
る。接続元から接続先のボックスに対してドラッグ動作
を行えばよい。また、分岐ボックスからの接続である場
合、分岐条件を指定するダイアログが表示される。
【0119】ボタン「動作ボックス」を選択すると、動
作(Action)ボックスが下方の編集領域に挿入さ
れる。
【0120】ボタン「分岐ボックス」を選択すると、分
岐(Branch)ボックスが下方の編集領域に挿入さ
れる。
【0121】ボタン「グループ・ボックス」を選択する
と、グループ・ボックスが下方の編集領域に挿入され
る。
【0122】ユーザは、図6に示す編集領域上で、クリ
ック、ドラッグなどのマウス操作や、マウス操作とキー
入力の組合せにより、処理を指定することができる。
【0123】例えば、マウスの左ボタンのクリックによ
りボックスを選択することができる。
【0124】また、マウスの左ボタンをダブル・クリッ
クしたときは、プロパティを表示し、及び/又は、グル
ープを開く。
【0125】また、通常モード下でマウスの左ボタンを
押下してドラッグしたとき、マウス・カーソルがボック
ス上にあったときには、ボックスの移動を行い、マウス
・カーソルがボックス外にあったときには範囲選択を行
う。また、接続モード下でマウスの左ボタンを押下して
ドラッグしたときには、マウス・カーソルがボックス上
にあるときにはボックスどうしの接続を行う。
【0126】また、通常モード下で[Ctrl]キー押
下とマウスの左ボタンの押下/ドラッグの組合せを行う
と、マウス・カーソルがボックス上にあったときにはボ
ックスの接続を行い、マウス・カーソルがボックス外に
あったときには範囲指定を行う。また、接続モード下で
[Ctrl]キー押下とマウスの左ボタンの押下/ドラ
ッグの組合せを行うと、マウス・カーソルがボックス上
にあるときにはボックスの移動を行う。
【0127】また、[Shift]キー押下とマウスの
左ボタン押下/ドラッグの組合せを行うと、編集ウィン
ドウのリサイズを行う。
【0128】また、マウスの右ボタンをクリックする
と、コンテキスト・メニューが表示される。
【0129】なお、マウスのドラッグ操作は、[Es
c]キーの押下でキャンセルされる。
【0130】次いで、図6に示すような、オーサリング
・ツールが提供するGUI画面上における基本操作手順
について説明する。
【0131】まず、メニュー[ファイル]のサブメニュ
ー[新規作成]を選択することにより、新規プロジェク
トを作成する。新規プロジェクトの画面は、図6に示す
ように、プロジェクトの先頭と最後尾にそれぞれ該当す
る"START"ボックス及び"END"ボックスのみから
なるメイン・グループが編集領域に表示されている。
【0132】次いで、メニュー[挿入]又はツール・バ
ー内のボタン[A]、[B]、[G]を選択することに
より、編集ウィンドウ上に該当するボックスを配置する
ことができる。一旦編集ウィンドウ上に配置されたボッ
クスは、マウス操作により設置位置を移動することがで
きる。
【0133】図9には、編集ウィンドウ上に動作ボック
ス[A]及び分岐ボックス[B]が各1個配置されてい
る様子を図解している。各ボックスには、デフォルトの
名前"Box001"並びに"Box002"が付されてい
るが、これはユーザが後で変更することができる。
【0134】次いで、メニュー[編集]のサブメニュー
[マウス:接続モード]を選択するか、又は、ツール・
バー内の[接続モード]ボタンを選択することにより、
マウス操作を接続モードに切り換える。そして、マウス
操作により、シナリオ進行上の前後関係にあるボックス
どうしを接続する。
【0135】図10には、図9に示す編集ウィンドウ上
で、[START]ボックスと動作ボックス[A]、並び
に、動作ボックス[A]と分岐ボックス[B]を接続し
た様子を図解している。
【0136】ボックスどうしを接続する際、分岐ボック
ス[B]からの接続に関しては、分岐上辺を指定するた
めのダイアログ(図示しない)が自動的に開くようにな
っているので、ユーザは、ダイアログ内の指示に従って
条件を指定していけばよい。但し、分岐ボックスの条件
指定は、次のボックスへの接続時よりも後回しにはでき
ないものとし、また、条件を完全に指定しないと接続が
行われない。
【0137】また、ユーザは、あるボックス上でマウス
の左ボタンをダブルクリックすることで、当該ボックス
の処理動作の詳細を指定するためのダイアログが開くよ
うになっている。また、グループ・ボックスをダブルク
リックした場合には、そのグループが別の編集ウィンド
ウとして開くようになっている(後述)。
【0138】本実施例では、各ボックスの処理動作は、
RCODEと呼ばれる、アセンブラのようなニーモニッ
ク・コードによって記述される。RCODEとは、簡単
なコマンドでロボット1を制御するために策定されたプ
ログラム言語であるが、RCODEの詳細については後
に詳解する。
【0139】図11には、動作ボックスの詳細を指定す
るためのダイアログを図解している。このダイアログ
は、例えば図9又は図10に示すような編集ウィンドウ
上で、所望の動作ボックス[A]をダブルクリックする
ことによって呼び出すことができる。
【0140】ユーザは、図11に示すようなダイアログ
上で、名前フィールドに文字列を入力することによって
動作ボックスの名前を指定することができる。また、コ
メント・フィールド上に、該動作ボックスに関するコメ
ントを記入することができる。
【0141】さらに、Action、Part、Sou
nd、Volume#などのコンボボックス内に、RC
ODEのコマンド名やコマンド・パラメータを直接入力
するか、又は、該ボックスの右端の▼ボタンを押して出
現するリスト・ボックス(図示しない)から所望のコマ
ンド又はコマンド・パラメータを選択することによっ
て、1行すなわち1ステップ分のRCODEコマンドを
設定することができる。
【0142】これらAction、Part、Soun
d、Volume#などのコンボボックスを利用して1
ステップ分のRCODEコマンドを設定し、さらに[追
加(A)]ボタンをクリックすると、コマンド・リスト
上に順次登録される。
【0143】また、このコマンド・リスト上で所定の行
を選択してから、[変更(M)]ボタンをクリックする
ことによって、当該行は変更対象となり、その設定内容
がAction、Part、Sound、Volume
#などの各コンボボックスに表示される。また、このコ
マンド・リスト上で所定の行を選択してから、[削除
(D)]ボタンをクリックすることによって、当該行を
コマンド・リストから削除することができる。
【0144】そして、このダイアログ上で動作ボックス
の詳細の指定を完了すると、[閉じる(C)]ボタンを
クリックすることによって、画面を介した指定内容がR
CODEで記述された処理ルーチンとして登録されると
ともに、ダイアログは閉じる。
【0145】また、図12には、分岐ボックスの詳細を
指定するためのダイアログを図解している。このダイア
ログは、例えば図9又は図10に示すような編集ウィン
ドウ上で、所望の分岐ボックス[B]をダブルクリック
することによって呼び出すことができる。
【0146】ユーザは、図12に示すようなダイアログ
上で、名前フィールドに文字列を入力することによって
分岐ボックスの名前を指定することができる。図示の例
では、当該分岐ボックスの名前として「モード分岐」が
記入されている。また、コメント・フィールド上に、該
分岐ボックスに関するコメントを記入することができ
る。
【0147】さらに、Type、Variableなど
のコンボボックス内に、RCODEのコマンド名やコマ
ンド・パラメータを直接入力するか、又は、該ボックス
の右端の▼ボタンを押して出現するリスト・ボックス
(図示しない)から所望のコマンド又はコマンド・パラ
メータを選択することによって、当該分岐ボックスの条
件判断を記述するRCODEコマンドを設定することが
できる。
【0148】これらType、Variableなどの
コンボボックスを利用して分岐条件ののRCODEコマ
ンドを設定し、さらに[追加(A)]ボタンをクリック
すると、コマンド・リスト上に順次登録される。
【0149】また、このコマンド・リスト上で所定の行
を選択してから、[変更(M)]ボタンをクリックする
ことによって、当該行は変更対象となり、その設定内容
がType、Variableなどの各コンボボックス
に表示される。また、このコマンド・リスト上で所定の
行を選択してから、[削除(D)]ボタンをクリックす
ることによって、当該行をコマンド・リストから削除す
ることができる。
【0150】そして、このダイアログ上で分岐ボックス
の詳細の指定を完了すると、[閉じる(C)]ボタンを
クリックすることによって、指定内容がRCODEで記
述された処理ルーチンとして登録されるとともに、ダイ
アログは閉じる。
【0151】なお、ユーザは、図11や図12に示すよ
うなダイアログを使用して各ボックスの詳細を自ら設定
する必要は必ずしもない。オーサリング・ツールが用意
するGUI画面上の部品ウィンドウ(例えば図6を参照
のこと)には、あらかじめ詳細な指定を完了した動作ボ
ックスや分岐ボックスなどが部品化して用意されている
ので、ユーザは、所望の部品ボックスを部品ウィンドウ
から編集ウィンドウにドラッグ・アンド・ドロップするこ
とにより、そのまま当該部品をプログラムの一部として
そのまま使用することができる。
【0152】また、オーサリング・ツールが提供するG
UI画面(図6を参照のこと)で、あるボックス上でマ
ウスの右ボタンをクリックすると「コンテクスト・メニ
ュー」(図示しない)が出現する。このコンテクスト・
メニューからは、[ボックスの削除]や[接続の削除]
を行うことができる。
【0153】但し、GUI画面上で、ボックス間を接続
する特定の線を指定して、その削除を直接指示すること
はできず、線の削除には必ずコンテクスト・メニューを
使用しなければならない。分岐ボックスの場合、どの接
続を削除するのかを選択するためのリスト・ボックスを
含んだダイアログ(図示しない)が出現するようになっ
ている。ユーザは、該リスト中から削除したい接続を選
んだ[削除]ボタンをクリックすればよい。
【0154】上述したようなオーサリング・ツールのG
UI画面を用いて、ユーザは、例えばロボット1がサッ
カー・ゲームを行うようなシナリオすなわち動作手順を
記述したプログラムを作成することができる。このよう
なシナリオは、例えば、図13に示すようなボックス構
成で記述される。
【0155】図13に示す例では、動作ボックス[初期
設定]において指定された内容でロボット1の初期設定
を行った後、分岐ボックス[モード分岐]で指定された
条件との比較結果に応じて、ロボット1は[転倒回
復]、[探索モード]、[追跡モード]のうち1つの動
作モードを実行するようになっている。
【0156】ここで、[転倒回復]、[探索モード]、
[追跡モード]の各々はグループ・ボックスとして記述
されている。前述したように、編集ウィンドウ上でグル
ープ・ボックスをダブルクリックした場合には、そのグ
ループが別の編集ウィンドウとして開くようになってい
る。図14には、このうち[探索モード]をダブルクリ
ックして出現する、探索モードの編集ウィンドウを図解
している。また、図15には、[追跡モード]をダブル
クリックして出現する、追跡モードの編集ウィンドウを
図解している。
【0157】本実施例では、ロボット1の処理動作は、
RCODEと呼ばれる、アセンブラのようなニーモニッ
ク・コードによって記述されるということは既に述べ
た。ここで、RCODEの詳細について説明しておく。
【0158】RCODEとは、簡単なコマンドでロボッ
ト1を制御するために策定されたプログラム言語であ
り、IFやGOなどの基本的な制御構造も備えているの
で、ロボット制御用最低水準スクリプト言語としても使
用することができる。
【0159】RCODEでは、すべての大文字の単語は
定数名などのために予約されており、ユーザが用意する
変数名などに使用することができない。
【0160】RCODEは、制御、ジャンプ、分岐、代
入、同期、関数など、実行すべき行動を指定するための
演算子(operator)を備えている。以下に、RCODE
演算子の一覧を示しておく。
【0161】
【数1】 《制御》 EDIT 編集モードに移行する(シリアル・ラインを通してのコードの転送)。 RUN 実行を開始する。 END 編集モードを終了する/実行を終了する。 LOAD:<filename> メモリ・スティック上のコードをメモリ上に読み出す SAVE:<filename> メモリ上のコードをメモリ・スティック上に書き込む 《ジャンプ》 :<label> ラベル定義。<label>は1以上の数値(0は次の行を表す)。 GO:<lebel> ラベルにジャンプする。 《分岐》 IF:<op>:<var1>:<const>|<var2>:<then_label>[:<else_label>] 変数1<var1>と定数<const>若しくは変数2<var2>を比較し、分岐する。 <op> は、"=","<>","<","<=",">"、">="の6種類がある。 SWITCH:<var> 変数の値をコンテクスト値として設定する。 CSET:<op>:<var1>|<const1>:<var2>|<const2>:<var3>|<const3> 値1と値2を<op>演算子で比較して、その結果が真ならば、値3をコンテクス ト値として設定する。 CSET命令が連続して現れた場合、真になったCSET命令以降のCSET命令はNo Ope ration扱いとなる(縦積み命令)。 CASE:<const>:<RCODE command> コンテクスト値が<const>と等しければ<RCODE command>を実行する。 《代入》 LET:<var1>:<const>|<var2> <var1> ← <const>|<var2> 変数への値の代入 SET:<var1>:<const>|<var2> <var1> ← <const>|<var2> 変数によっては特殊機能が働く。(単なる代入ではない) GET:<var1> <var1>の内容をコンソールに表示(デバッグ用) 《演算》 ADD:<var1>:<const>|<var2> <var1>←<var1>+<const>|<var2> 加算 SUB:<var1>:<const>|<var2> <var1>←<var1>-<const>|<var2> 減算 MUL:<var1>:<const>|<var2> <var1>←<var1>*<const>|<var2> 乗算 DIV:<var1>:<const>|<var2> <var1>←<var1>/<const>|<var2> 除算 MOD:<var1>:<const>|<var2> <var1>←<var1>%<const>|<var2> 剰余 AND:<var1>:<const>|<var2> <var1>←<var1>&<const>|<var2> 論理積 IOR:<var1>:<const>|<var2> <var1>←<var1>|<const>|<var2> 論理和 XOR:<var1>:<const>|<var2> <var1>←<var1>^<const>|<var2> 排他的論理和 RND:<var1>:<from>:<to> <var1>←範囲 <from>〜<to> の一様乱数値 《同期》 WAIT 直前に実行した動作の終了(再生の終了)を待つ。 WAIT:<ms> 引数にしたミリ秒だけ待つ。<ms> = 1〜30000。 (注:分解能は 32[ms]) WAIT:SOUND 音再生の終了を待つ(単独で音再生中の判定にも使える)。 WAIT:LIGHT 光再生の終了を待つ(単独で光再生中の判定にも使える)。 《関数》 CALL:<label> <label> のサブルーチンをコールする。 ※ネストは最大16個。パラメータ渡しは変数で代用することとする。 RETURN サブルーチンからのリターン 。 ※スタック・ポインタは無チェックなので、ネストの整合性に注意する必要が ある。
【0162】RCODEのコマンドのうち、ロボット1
の「動き」を制御するコマンドは以下の5つの基本形に
大別される。すなわち、
【0163】(1)POSE ある姿勢(モーションの開始
姿勢)をとらせる。 (2)MOVE あるモーションをさせる。OMNE/OMTE/OMLE
2_S/OMSE に対応。 (3)PLAY あるモーションを再生させる。OAllReplay
/OHeadReplay/OLegsReplay/OTailReplay に相当する。 (4)STOP 動作の停止(現在行っているモーションを
終了してから)。 (5)QUIT 動作の緊急停止(直ちに)。
【0164】MOVEとPLAYは、組み込み動作を行うか、又
は、メモリ・スティック上の"*.mtn"ファイルに定義され
ている動作を行うかの違いだけで、「ある動作をさせ
る」という点では同じ機能であると言える。MOVE の動
作は組み込みなので、カスタマイズできないが、細かい
パラメータ指定等を行うことができる。これに対し、PL
AYの動作は"*.mtn"ファイルの再生なので、パラメータ
指定はできないが、差し替え可能である。
【0165】以下に、RCODEコマンドの一覧を示し
ておく。
【0166】
【数2】 SET:ROBOT:POWER:1 電源ON SET:ROBOT:POWER:0 電源OFF GET:ROBOT 全変数ダンプ GET:ROBOT:<var> 変数 取得 SET:ROBOT:<var>:<value> 変数 設定 POSE:ROBOT:<motion_name> motionの開始ポーズへ POSE:LEGS:<motion_name> motionの開始ポーズへ POSE:HEAD:<motion_name> motionの開始ポーズへ POSE:TAIL:<motion_name> motionの開始ポーズへ PLAY:ROBOT:<motion_name> motion再生 PLAY:LEGS:<motion_name> motion再生 PLAY:HEAD:<motion_name> motion再生 PLAY:TAIL:<motion_name> motion再生 PLAY:SOUND:<sound_name>:<volume> 音再生 volume = 0〜100 PLAY:LIGHT:<pattern_name>:<times> 光再生(LEDパターン) times = 0〜16 (0:Default 16:Loop) MOVE:ROBOT:<motion_name> OMLE組み込み動作再生(転倒復帰など) MOVE:LEGS:WALK:<style1>:<dir>:<times> 歩行 MOVE:LEGS:STEP:<style1>:<dir>:<times> 歩行(StepWalk) MOVE:LEGS:KICK:<style2>:<deg> 蹴り style1 = 0〜10,12(R-Turn),13(L-Turn) style2 = 14(R-Kick),15(L-Kick) dir = 1〜6 times = 0〜9999 deg = -90〜90 MOVE:HEAD:HOME 頭部ホーム・ポジション MOVE:HEAD:ABS:<tilt>:<pan>:<roll>:<time> 頭部 絶対位置移動 MOVE:HEAD:REL:<tilt>:<pan>:<roll>:<time> 頭部 相対位置移動 MOVE:HEAD:C-TRACKING 頭部カラー・トラッキング MOVE:HEAD:C-TRACKING:<time> 頭部カラー・トラッキング tilt = -180〜180 pan = -180〜180 roll = -180〜180 time = 0〜99999 [ms] MOVE:TAIL:HOME 尾部ホーム・ポジション MOVE:TAIL:ABS:<tilt>:<pan>:<time> 尾部絶対位置移動 MOVE:TAIL:SWING:<tilt>:<pan>:<time> 尾部スイング tilt = -90〜90 pan = -90〜90 time = 0〜99999 [ms] STOP:ROBOT 全体通常停止 STOP:LEGS 四肢通常停止 STOP:HEAD 頭部通常停止 STOP:TAIL 尾部通常停止 STOP:SOUND 音再生停止 STOP:LIGHT 光再生停止 QUIT:ROBOT 全体緊急停止 QUIT:LEGS 四肢緊急停止 QUIT:HEAD 頭部緊急停止 QUIT:TAIL 尾部緊急停止 QUIT:SOUND (STOP:SOUNDと等価) 音再生停止 QUIT:LIGHT (STOP:LIGHTと等価) 光再生停止
【0167】また、RCODEは、ロボット1の各部に
対して動作・制御値を指示したり、各部の状態を取得す
る(センサ出力値の読み出しなど)ために、システム変
数を定義している。以下に、RCODEのシステム変数
の一覧を示しておく。
【0168】
【数3】 Power 電源 0:OFF 1:ON Head_tilt 頭部第1関節角度[°] Head_pan 頭部第2関節角度[°] Head_roll 頭部第3関節角度[°] Head_mouth 頭部顎関節角度[°] Tail_1 尾部第1関節角度[°] Tail_2 尾部第2関節角度[°] Leg_RF_1 右前脚第1関節角度[°] Leg_RF_2 右前脚第2関節角度[°] Leg_RF_3 右前脚第3関節角度[°] Leg_LF_1 左前脚第1関節角度[°] Leg_LF_2 左前脚第2関節角度[°] Leg_LF_3 左前脚第3関節角度[°] Leg_RR_1 右後脚第1関節角度[°] Leg_RR_2 右後脚第2関節角度[°] Leg_RR_3 右後脚第3関節角度[°] Leg_LR_1 左後脚第1関節角度[°] Leg_LR_2 左後脚第2関節角度[°] Leg_LR_3 左後脚第3関節角度[°] Head_sw 頭部圧力センサ[10^-3Pa] Distance 頭部障害物センサ[mm] Leg_RF_sw 右前脚肉球センサ[On:-1 Off:0] Leg_LF_sw 左前脚肉球センサ[On:-1 Off:0] Leg_RR_sw 右後脚肉球センサ[On:-1 Off:0] Leg_LR_sw 左後脚肉球センサ[On:-1 Off:0] Gsensor_status Gセンサ・ステータス 16ビット・フラグ Gsensor_roll Gセンサ・ロール角[°] Gsensor_pitch Gセンサ・ピッチ角[°] Gsensor_yaw Gセンサ・ヨー角[°] Cdt_npixel 色センサ画素数[Pixels] Psd_status 障害物センサ状況 Psd_range 障害物までの距離 Touch_head 頭部タッチ・センサ Touch_head_time 頭部タッチ・センサ押下時間 Touch_head_press 頭部タッチ・センサ平均圧力 [単位不明] Touch_RF 右前脚肉球センサ ON→OFF/OFF→ON検出 Touch_LF 左前脚肉球センサ ON→OFF/OFF→ON検出 Touch_RR 右後脚肉球センサ ON→OFF/OFF→ON検出 Touch_LR 左後脚肉球センサ ON→OFF/OFF→ON検出 Tone_num トーン検出 音番号 Tone_level 音の大きさ Tone_dir 検出方向 Melody_id メロディ検出 メロディID Melody_num トーン数(1〜3) Tone1_num Tone1音番号 Tone1_level Tone1音の大きさ Tone1_dir Tone1検出方向 Tone2_num Tone2音番号 Tone2_level Tone2音の大きさ Tone2_dir Tone2検出方向 Tone3_num Tone3音番号 Tone3_level Tone3音の大きさ Tone3_dir Tone3検出方向 Sound_status サウンド検出 ステータス Sound_num 音番号 Sound_level 音の大きさ Sound_dir 検出方向 Sound_busy 1:サウンド再生中 0:サウンド無し Light_busy 1:Light再生中 0:Light無し
【0169】上記のシステム変数のうちGsensor_status
は16ビットのフラグで構成されるが、各ビットの意味
は以下の通りである。
【0170】
【表1】
【0171】また、システム変数Sound_statusは、以下
のような値によってロボット1への音声入力状態を表す
ようになっている。
【0172】
【表2】
【0173】また、RCODEは、ロボット1上の各部
位に配備されたセンサの出力データのログをとる(メモ
リ上の所定領域に一時記憶する)サービスを提供する。
すなわち、RCODEコマンド"LOG:START"でロギング
の開始を指示するとともに、RCODEコマンド"LOG:E
ND"でロギングの終了を指示することができる。また、
変数"Log_n"によって記憶したログ件数を表す。
【0174】さらに、RCODEコマンド"LOG:PCFILE:
<file>"によって、指定したファイル名でホスト・システ
ム100上のファイルにログを保存することができる。
同様に、RCODEコマンド"LOG:MSFILE:<file>"によ
って、指定したファイル名でメモリ・スティック上のフ
ァイルにログを保存することができる。
【0175】また、各センサの出力データを、メモリや
ファイルに保存することなく、逐次、プリンタで直接印
刷出力するようにしてもよい。この場合、RCODEコ
マンド"LOG:PRINT: <s>:<t>:<i>"で出力形式を指定する
ことができる。但し、sはセンサ番号を([表3]を参
照のこと)、tは値の種類を([表4]を参照のこ
と)、iはインデックス(0〜Log_n-1)を、それぞれ
示すものとする。また、RCODEコマンド"LOG:PRIN
T:CRLF"で改行を、RCODEコマンド"LOG:PRINT:EOF"
でファイル・クローズを、それぞれ指示することができ
る。
【0176】
【表3】
【0177】
【表4】
【0178】既に説明したように、本実施例に係るオー
サリング・ツールを用いてロボット1の動作制御用のシ
ナリオを作成・編集すると、編集したシナリオを実現す
るためのRCODEに自動変換するようになっている。
例えば、図13に示すようなGUI画面上で生成された
メイン・ルーチンを持つサッカー・ゲーム用シナリオの動
作制御プログラムは、以下に示すようなRCODEを用
いて以下のように記述される。
【0179】
【数4】 SETV:ROBOT:POWER:1 SET:Trace:1 SET:mode:0 // 0:サーチモート゛ 1:追っ掛けモート゛ SET:head:0 // サーチモート゛で頭をク゛ルク゛ルするためのカウンタ SET:lost:0 // ホ゛ールを見失った回数 :100 // MainLoop SET:stat:Gsensor_status AND:stat:1 IF:=:stat:1:9000 //ずっこけた? IF:=:mode:0:1000 //サーチモードへ IF:=:mode:1:2000 //追っ掛けモードへ GO:100 :1000 // mode:0 サーチモート゛ SET:mode:0 MOVE:LEGS:STEP:RIGHT_TURN:0:4 //右回りしながらホ゛ール
を捜す SWITCH:head //頭をク゛ルク゛ルまわす処理 CASE:0:MOVE:HEAD:ABS:-15:0:0:500 CASE:1:MOVE:HEAD:ABS:-15:-40:0:500 CASE:2:MOVE:HEAD:ABS:-15:-80:0:500 CASE:3:MOVE:HEAD:ABS:-45:-40:0:500 CASE:4:MOVE:HEAD:ABS:-45:0:0:500 CASE:5:MOVE:HEAD:ABS:-45:40:0:500 CASE:6:MOVE:HEAD:ABS:-45:80:0:500 CASE:7:MOVE:HEAD:ABS:-15:40:0:500 CASE:8:MOVE:HEAD:ABS:-15:0:0:500 ADD:head:1 // head の インクリメント MOD:head:9 WAIT IF:<:Cdt_npixel:32:100 // ホ゛ール見えていれば 追っ掛
けモート゛ へ :2000 // 追っ掛けモート゛ SET:mode:1 IF:<:Cdt_npixel:32:1000 //ホ゛ール見えているか? MOVE:HEAD:C-TRACKING:100 // 色追跡開始 IF:>:Head_tilt:-58:2300 // 頭の角度で距離推定 IF:>:Head_pan:0:2210:2220 // 近ければキック! :2210 MOVE:HEAD:HOME // 自分のアゴを蹴らないように (^^;)
ちょと不自然 MOVE:LEGS:KICK:LEFT_KICK:0 MOVE:LEGS:STEP:SLOW:FORWARD:1 GO:2900 :2220 MOVE:HEAD:HOME // 自分のアゴを蹴らないように (^^;)
ちょと不自然 MOVE:LEGS:KICK:RIGHT_KICK:0 MOVE:LEGS:STEP:SLOW:FORWARD:1 GO:2900 :2300 // 頭の角度により、ボールに近づく CSET:>:Head_pan:60:1 CSET:>:Head_pan:45:2 CSET:>:Head_pan:15:3 CSET:<:Head_pan:-60:4 CSET:<:Head_pan:-45:5 CSET:<:Head_pan:-15:6 CSET:=:0:0:0 CASE:0:MOVE:LEGS:STEP:SLOW:FORWARD:4 CASE:1:MOVE:LEGS:STEP:SLOW:FORWARD:4 CASE:2:MOVE:LEGS:STEP:LEFT_TURN:0:4 CASE:3:MOVE:LEGS:STEP:SLOW:LEFT:4 CASE:4:MOVE:LEGS:STEP:SLOW:LEFTFORWARD:4 CASE:5:MOVE:LEGS:STEP:RIGHT_TURN:0:4 CASE:6:MOVE:LEGS:STEP:SLOW:RIGHT:4 CASE:7:MOVE:LEGS:STEP:SLOW:RIGHTFORWARD:4 :2900 WAITGO:100 :9000 // 転倒回復 QUIT:ROBOT MOVE:ROBOT:ReactiveGU WAIT GO:100
【0180】また、図5を参照しながら説明したよう
に、本実施例に係るオーサリング・システムでは、例え
ばC言語のような高級言語を用いてスクリプト形式で動
作制御プログラムを作成・編集することができる。上記
の[数4]で示したRCODEプログラムと等価な機能
及び動作手順を実現するスクリプトを以下に示してお
く。但し、スクリプトはC言語の文法に則って記述され
ているものとする。
【0181】
【数5】 // // スクリプト形式で記述されたサッカー・ゲーム // //#define ROBOT_NEUTRAL ( 0 ) // ニュートラル //#define ROBOT_FOUND ( 1 ) // ボール見つかった //#define ROBOT_LOST ( 2 ) // ボール見つからない //#define ROBOT_FALL ( 99 ) // ROBOT転倒 // ピンク //#define PinkBall ( 32 ) // システム変数 extern int Head_tilt, Head_roll; extern int Head_pan; extern int Cdt_npixel; extern int Gsensor_status; // ボールを見つけたか見失ったか int bBall = 0, bBoil; // 現在の状態 int nSoccer = 0; int nLost = 0; // ボールを見失った時のステップ数 // 関数の前方宣言 int SoccerDog(int); void NeutralROBOT(); void FindBall(); void SearchBall(); void RecoveryGU(); void NearBall(); void KickBall(); // メイン void main( void ){ // Soccerフラグ int bSoccerFlag; int dummy = 0, true = 1; bSoccerFlag = dummy = true; // 電源ON PowerOn(); // メインループ while( bSoccerFlag ){ // サッカードッグ bSoccerFlag = SoccerDog(1); } // 電源OFF PowerOff(); } // サッカー開始 int SoccerDog(int dummy ){ // 現在の状態で処理を分ける switch( nSoccer ){ case 0: //ROBOT_NEUTRAL: // ニュートラル状態 NeutralROBOT(); break; case 1: //ROBOT_FOUND: // ボールを見つけた FindBall(); break; case 2: //ROBOT_LOST: // ボールを見失った SearchBall(); break; case 99: //ROBOT_FALL: // アイボ転倒 RecoveryGU(); // 転倒復帰処理 } // 続行 return 1; //FALSE; } // ボールを見つけ、近づく処理 void FindBall( void ){ int nHead; nHead = Head_tilt; // カラートラッキング RcodeColorTracking(100); // 頭の角度でボールの距離を測定 if( nHead > -58 ){ // ボールを検出 if (Cdt_npixel < 32){ // ボールを見失った nSoccer = 2; //ROBOT_LOST; } else{ // ボールに近づく NearBall(); } } else{ // ボールを蹴る KickBall(); } } // ボールに近づく void NearBall( void ){ // 首の角度でボールの位置を設定する if( Head_pan == 0 ){ RcodeStepWalk(0, 1, 4); //StepWalk(FORWARD, 4); RcodeWait(); return; } if( Head_pan > 60 ){ RcodeStepWalk(0, 1, 4); // StepWalk(FORWARD, 4); RcodeWait(); return; } if( Head_pan > 45 ){ RcodeStepWalk(0, 13, 4); // StepWalk(LEFT_TURN, 4); RcodeWait(); return; } if( Head_pan > 15 ){ RcodeStepWalk(0, 5, 4); // StepWalk(LEFT, 4); RcodeWait(); return; } if( Head_pan < -60 ){ RcodeStepWalk(0, 3, 4); // StepWalk(LEFTFORWARD, 4); RcodeWait(); return; } if( Head_pan < -45 ){ RcodeStepWalk(0, 1, 4); // StepWalk(RIGHT_TURN, 4); RcodeWait(); return; } if( Head_pan < -15 ){ RcodeStepWalk(0, 4, 4); // StepWalk(RIGHT, 4); RcodeWait(); return; } // ボールを検出する if (Cdt_npixel < 32){ nSoccer = 2; //ROBOT_LOST: return; } } // ボールを蹴る void KickBall( void ){ // 頭の位置調整 RcodeHead(0, 0, 0, 0); // ボールが頭の左右どちら側にあるかで蹴る足を決める if( Head_pan > 0 ){ RcodeKick(15, 0 ); // 左足 }else{ RcodeKick(14, 0 ); // 右足 } // 歩行に移行するために1ステップ踏む RcodeStepWalk(0, 0, 1); // StepWalk(FORWARD, 1); } // ボールを探す処理 void SearcBall( void ){ // 頭を動かす switch( nLost ){ case 0: RcodeHead(-15, 0, 0, 500 ); break; case 1: RcodeHead(-15, -40, 0, 500 ); break; case 2: RcodeHead(-15, -80, 0, 500 ); break; case 3: RcodeHead(-45, -40, 0, 500 ); break; case 4: RcodeHead(-45, 0, 0, 500 ); break; case 5: RcodeHead(-45, 40, 0, 500 ); break; case 6: RcodeHead(-45, 80, 0, 500 ); break; case 7: RcodeHead(-15, 40, 0, 500 ); break; case 8: RcodeHead(-15, 0, 0, 500 ); break; } // ステップ数の設定 nLost = (nLost + 1) % 9; // 右側に歩く RcodeStepWalk(12, 1, 4); //StepWalk(RIGHT_TURN, 4); // 色検出 if (Cdt_npixel < 32){ nSoccer = 2; //ROBOT_LOST; } else{ // nLostの初期化 nLost = 0; // ROBOTに近づく処理 nSoccer = 1; //ROBOT_FOUND; } } // // ニュートラル時の処理 void NeutralROBOT( void ){ // 転倒検出 if (Gsensor_status & 1){ // 転倒 nSoccer = 99; //ROBOT_FALL; return; } // 転倒はしていない。ボール検出 if (Cdt_npixel < 32){ // ボールを見失った nSoccer = 2; //ROBOT_LOST; } else{ // ボールを見つけた nSoccer = 1; //ROBOT_FOUND; } } // 転倒復帰 void RecoveryGU( void ){ // 転倒復帰成功? RcodePlay("ReactiveGU"); RcodeWait(); // 現在の状態をニュートラルにする nSoccer = 0; //ROBOT_NEUTRAL; }
【0182】本実施例に係るオーサリング・システム
は、ユーザがテキスト・エディタなどを用いて作成・編集
したスクリプトを、RCODE形式のプログラムに自動
変換することができる(前述)。したがって、[数5]
に示したスクリプトは、本実施例に係るオーサリング・
ツールを用いて、[数4]に示したようなRCODE形
式のプログラム・コードに自動変換される。
【0183】例えば、RCODEを用いて動作処理プロ
グラムを編集するホスト・システム100と、動作処理
プログラムを実行するロボット1とが、bluetoo
thや.11Bのような無線データ通信(あるいは、そ
の他の無線又は有線の通信手段)を介して接続されてい
る場合、ホスト・システム1は1行すなわち1ステップ
単位でRCODEプログラムを送信し、ロボット1側で
はインタープリタがこれを逐次解釈し実行することがで
きる。また、コマンド転送時に、ホスト・システム1側
は送信データを暗号化してもよい。
【0184】本実施例に係るオーサリング・ツールは、
RCODE形式で記述されたスクリプトの編集作業、並
びに、ロボット1側との協働的動作によるリアルタイム
のデバッグ作業のために、編集ウィンドウを用意してい
る。図6に示した編集ウィンドウと区別するために、こ
の編集ウィンドウのことを、以下では、「スクリプト編
集ウィンドウ」と呼ぶことにする。
【0185】図16には、スクリプト編集ウィンドウの
構成を図解している。
【0186】スクリプト編集ウィンドウは、7個のコン
ボ・ボックスを備えており、階層メニュー形式でコマン
ドを指定することができる。同図に示す例では、編集領
域の第1行目のコマンドを指定する様子が示されてい
る。
【0187】コンボ・ボックスの下にある[Comma
nd]ボタンをクリックすると、指定したコマンドをロ
ボット1側に転送するようになっている。転送方式は、
bluetoothや.11Bなどの無線データ通信を
基本とするが、その他の通信方式であってもよい。ま
た、ここで行われるコマンド転送は、後述の[Exec
ute]とは非同期に動作する。
【0188】また、[Command]ボタンの左横に
ある[↓]ボタンをクリックすると、指定したコマンド
文字列が、下方の編集領域に貼り付けられる。
【0189】[Command]ボタンの下方に配設さ
れた編集領域上では、キー入力によりスクリプトを直接
編集することができる。
【0190】また、編集領域のさらに下方には、[Op
en]、[Save]、[Send]、[Execut
e]、及び、[Stop]という各ボタンが配設されて
いる。
【0191】[Open]ボタンのマウス操作により、
ホスト・システム100のローカル・ディスクなどから所
望のスクリプト・ファイルを選択して、編集領域に表示
することができる。
【0192】[Save]ボタンのマウス操作により、
編集領域に表示されているスクリプトを、ファイルに保
存することができる。
【0193】[Send]ボタンをクリックすることに
より、編集領域に表示されているスクリプトをロボット
1側に転送することができる。転送方式は、bluet
oothや.11Bなどの無線データ通信を基本とする
が、その他の通信方式であってもよい。但し、スクリプ
トは、転送されるだけで、ロボット1上でそのまま実行
される訳ではない。なお、[Send]処理の終了時に
は、コンソール・ウィンドウ(図示しない)で"END"
という行が表示される。
【0194】[Execute]ボタンをクリックする
ことによって、ロボット1側に送信したスクリプトの実
行開始を指示することができる。
【0195】[Stop]ボタンをクリックすることに
よって、ロボット1において実行中のスクリプトの強制
停止を指示することができる。
【0196】C.ロボットによる動作プログラムの実行
/デバッグ 上述したように、スクリプト編集ウィンドウ上で[Co
mmand]ボタンをクリックすることによって、該当
する1行のコマンドをロボット1側に転送することがで
きる。また、[Send]ボタンを押すことによって、
編集領域に開かれているスクリプトをロボット1側に転
送することができる。このようなコマンド転送時には、
コマンド・データを一旦暗号化してから送出することが
好ましい。
【0197】他方のロボット1側では、RCODEなど
で記述された動作制御プログラムの実行及びデバッグ環
境として、インタープリタ/デバッガと、ミドルウェア
と、ドライバと、オペレーティング・システム(OS)
とを備えている(図5を参照のこと)。
【0198】インタープリタは、RCODE形式で記述
されたプログラムを1行ずつ読み込んで解釈して実行す
る高水準言語プログラムである。また、デバッグ時など
において、ホスト・コンピュータ100側から暗号化さ
れた形式でRCODEプログラムが送信される場合に
は、インタープリタは、これを一旦復号化してから解釈
・実行を行う。
【0199】デバッガは、RCODEプログラム中の誤
り(バグ)を発見して、修正する作業を支援するプログ
ラムである。すなわち、プログラムを指定した行で実行
を止めたり、そのときのメモリや変数の内容を参照する
ことができる。
【0200】ミドルウェアは、ロボット1における歩行
その他の脚式動作などの制御や、カメラ15からの入力
画像の認識処理や、マイク16からの音声入力の認識処
理などを行う処理エンジンである。ミドルウェアは、ド
ライバを介して各関節アクチュエータやその他のハード
ウェアの操作を行うことができる。
【0201】ミドルウェアは、ロボット1の脚式動作制
御において、目標とされる姿勢や目標とされる動作に遷
移するための情報(ここでは、仮に「姿勢遷移情報」と
呼ぶことにする)を生成する。すなわち、インタープリ
タなど上位プログラムから供給される行動指令情報に基
づいて、ロボット1の現在の姿勢又は動作から次の姿勢
又は動作(目標とされる姿勢又は目標とされる動作)に
遷移させるための姿勢遷移情報を生成する。現在の姿勢
から次に遷移可能な姿勢は、胴体や手や脚の形状、重
量、各部の結合状態のようなロボット1の物理的形状
や、各関節の曲がる方向や角度などの装置構成によって
決定される。ミドルウェアは、このような装置構成を考
慮して姿勢遷移情報を生成する。
【0202】本実施例では、ミドルウェアは、ロボット
1が遷移可能な姿勢及び遷移する際の動作を、例えば有
向グラフの形式であらかじめ登録しており、有向グラフ
に従って上位プログラムからの行動指令を姿勢遷移情報
に変換して、ドライバに対する具体的な動作指示を発行
するようになっている。
【0203】一般に、ロボット1は、現在の姿勢によっ
ては、RCODEで記述された指令内容に従って直接遷
移できない場合がある。すなわち、ロボット1の姿勢
は、現在の姿勢から直接遷移可能な姿勢と、直接には遷
移できなくてある動作や姿勢を経由してなら可能となる
姿勢とに分類される。
【0204】例えば、ロボット1が図1に示すように4
足歩行型のロボット装置である場合、手足を大きく投げ
出して寝転んでいる状態から伏せた状態へ直接移動する
ことはできるが、立った姿勢へ直接遷移することはでき
ず、一旦手足を胴体近くに引き寄せて伏せた姿勢を経由
して、それから立ち上がるという少なくとも2段階の動
作が必要である。
【0205】また、このように2段階の動作を経由しな
ければ安全に(すなわちロボット1が転倒することな
く)実行できないような姿勢遷移も存在する。例えば、
図1に示すような4足歩行型のロボット1は、立ってい
る姿勢で両前足を挙げて「万歳」をしようとすると転倒
してしまう場合がある。あるいは、現在の姿勢が寝転び
姿勢(寝姿勢)にあるときに、指令の内容として座り姿
勢しかできないような「足をバタバタさせる」といった
内容が送られてきたとき、そのまま足をバタバタさせる
命令を各関節駆動部に発行してしまうと、寝姿勢から座
り姿勢への遷移と足をバタバタさせる動作とが実行され
てしまうことになる。この結果、ロボット1はバランス
を崩して転倒してしまうであろう。
【0206】本実施例では、ミドルウェアは、ロボット
1がとり得る姿勢及び動作が登録されるとともに、各姿
勢を遷移させる動作で結んだ有向グラフを保持してい
る。そして、現在の姿勢から目標とされる(すなわち指
示された)姿勢又は動作までの経路を、この有向グラフ
上で探索して、その探索結果に基づいて、現在の姿勢か
ら目標とされる姿勢又は動作へと遷移させるような命令
を生成するようになっている。
【0207】図17には、本実施例において使用される
有向グラフの具体例を図解している。有向グラフは、ロ
ボット1がとり得る姿勢を示すノードと、遷移可能な2
つのノード(姿勢)間を結ぶ有向アーク(動作アーク)
とで構成される。図17に示す例では、ノードすなわち
姿勢として、「ねそべる」、「ふせる」、「すわる」、
「たつ」、「あるく」という5種類が含まれる。また、
有向アークは、ある姿勢から他の姿勢へ遷移する動作ア
ークと、他の姿勢からある姿勢へ戻る動作アークと、1
つのノード内で動作が完結する自己動作アークとがあ
る。また、ある姿勢から他の姿勢へ遷移する動作アーク
が複数あることや、ある姿勢について複数の自己動作ア
ークがあることもある。
【0208】例えば、ロボット1の現在の姿勢が「ふせ
る」であるときに、インタープリタに対して「すわる」
ことを指示するRCODEコマンドが投入された場合、
図17に示すように、「ふせる」と「すわる」の各ノー
ド間には有向アークが存在するので直接遷移が可能であ
る。したがって、ミドルウェアは、インタープリタから
渡される指示に従って、ドライバに対して駆動指令を発
行すればよい。
【0209】これに対し、現在の姿勢が「ふせる」であ
るときに、インタープリタに対して「あるく」ことを指
示するRCODEコマンドが投入された場合、図17に
示すように、「ふせる」というノードから「あるく」と
いうノードへ直接結ぶ有向アークは存在しない。したが
って、ミドルウェアは、有向グラフ上でノード「ふせ
る」からノード「あるく」へ向かう経路探索して、ノー
ド「たつ」を経由してノード「ふせる」からノード「あ
るく」に遷移するという姿勢遷移計画を立て、該計画に
基づいてドライバに対して駆動指示を発行する。
【0210】以上を略言すれば、本実施例によれば、ミ
ドルウェアがロボット1の姿勢・動作遷移特性を管理し
ており、RCODEコマンド・レベルでの論理的な姿勢・
動作指示とハードウェア上の姿勢・動作遷移特性との差
異を吸収できるメカニズムを提供している。
【0211】したがって、一般ユーザは、オーサリング
・ツールを用いてGUI画面上でロボット1の動作シナ
リオを編集したり、あるいはスクリプト形式で動作制御
プログラムを記述するような場合に、現実のロボット1
における姿勢・動作遷移特性のような詳細なハードウェ
ア情報を気にしなくて済む。また、ミドルウェア・レベ
ルにおいてRCODEコマンド・レベルでの論理的な姿
勢・動作指示とハードウェア上の姿勢・動作遷移特性との
差異を吸収するので、ロボットの姿勢・動作遷移特性に
反していることはRCODEプログラムのデバッグの対
象とはならない。
【0212】[追補]以上、特定の実施例を参照しなが
ら、本発明について詳解してきた。しかしながら、本発
明の要旨を逸脱しない範囲で当業者が該実施例の修正や
代用を成し得ることは自明である。
【0213】本実施例では、イヌを模した4足歩行を行
うペット型ロボットを例に挙げて本発明に係るオーサリ
ング・システムについて詳解したが、本発明の要旨はこ
れに限定されない。例えば、ヒューマノイド・ロボット
のような2足の脚式移動ロボットや、あるいは脚式以外
の移動型ロボットに対しても、同様に本発明を適用する
ことができることを充分理解されたい。
【0214】あるいは、ロボットのような物理的な機械
装置ではなく、コンピュータ・グラフィックスにより生
成されるキャラクタを用いたアニメーションの動作シー
ケンスの作成・編集のために、本発明に係るオーサリン
グ・システムを適用することも可能である。
【0215】要するに、例示という形態で本発明を開示
してきたのであり、限定的に解釈されるべきではない。
本発明の要旨を判断するためには、冒頭に記載した特許
請求の範囲の欄を参酌すべきである。
【0216】
【発明の効果】以上詳記したように、本発明によれば、
ロボットの所定の動作パターンを記述する一連のコマン
ド/データを作成することができる、優れたオーサリン
グ・システム及び方法を提供することができる。
【0217】また、本発明によれば、ロボットの動作状
態を規定する部品の集合を用いて動作パターンを作成す
ることができる、優れたオーサリング・システム及び方
法を提供することができる。
【0218】また、本発明によれば、各部品をコンピュ
ータ・ディスプレイ上に配置して動作パターンを作成す
ることができる、優れたオーサリング・システム及び方
法を提供することができる。
【図面の簡単な説明】
【図1】本発明を実施に供される四肢による脚式歩行を
行う移動ロボット1の外観構成を示した図である。
【図2】移動ロボット1の電気・制御系統の構成図を模
式的に示した図である。
【図3】制御部20の構成をさらに詳細に示した図であ
る。
【図4】ホスト・コンピュータ100のハードウェア構
成例を模式的に示した図である。
【図5】本実施例に係るオーサリング・システムの全体
構成を模式的に示した図である。
【図6】本実施例に係るオーサリング・ツールが提供す
る、ユーザがロボット1の動作シナリオを作成・編集す
るためのGUI画面の構成を示した図である。
【図7】メニュー項目「ファイル」に関するプルダウン
・メニューを示した図である。
【図8】メニュー項目「グループ」に関するプルダウン
・メニューを示した図である。
【図9】編集ウィンドウ上に動作ボックス[A]及び分
岐ボックス[B]が各1個配置されている様子を示した
図である。
【図10】図9に示す編集ウィンドウ上で、[STAR
T]ボックスと動作ボックス[A]、並びに、動作ボッ
クス[A]と分岐ボックス[B]を接続した様子を示し
た図である。
【図11】動作ボックスの詳細を指定するためのダイア
ログを示した図である。
【図12】分岐ボックスの詳細を指定するためのダイア
ログを示した図である。
【図13】ロボット1がサッカー・ゲームを行うための
シナリオを、オーサリング・ツールのGUI画面上で作
成した様子を示した図である。
【図14】図13に示すサッカー・ゲームのシナリオ中
のグループ・ボックス[探索モード]を別の編集ウィン
ドウとして開いた様子を示した図である。
【図15】図13に示すサッカー・ゲームのシナリオ中
のグループ・ボックス[追跡モード]を別の編集ウィン
ドウとして開いた様子を示した図である。
【図16】本実施例に係るオーサリング・ツールが用意
するスクリプト編集ウィンドウの構成を示した図であ
る。
【図17】ロボット1側のRCODEプログラム実行環
境において保持される、ロボット1の姿勢及び動作の遷
移を規定する有向グラフを示した図である。
【符号の説明】
1…移動ロボット 2…胴体部ユニット 3…頭部ユニット 4…尻尾 6A〜6D…脚部ユニット 7…首関節 8…尻尾関節 9A〜9D…大腿部ユニット 10A〜10D…脛部ユニット 11A〜11D…股関節 12A〜12D…膝関節 15…CCDカメラ 16…マイクロフォン 17…スピーカ 18…タッチセンサ 20…制御部 21…CPU 22…RAM 23…ROM 24…不揮発メモリ 25…インターフェース 26…無線通信インターフェース 27…ネットワーク・インターフェース・カード 28…バス 29…キーボード 40…入出力部 50…駆動部 51…モータ 52…エンコーダ 53…ドライバ
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 3F059 AA00 BA02 BB06 BC07 BC09 CA05 CA06 DA02 DA05 DA08 DB04 DB08 DB09 DC01 DC04 DD01 DD04 DD08 DD11 DD18 DE05 FA03 FA05 FB01 FB05 FC02 FC07 FC13 FC14 3F060 AA00 CA14 CA26 GA05 GA13 GB25 GD13 GD15 HA02 HA32 HA35

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】ロボットの動作制御プログラムを作成・編
    集するためのオーサリング・システムであって、 ユーザに対して該ロボットの動作シナリオを作成・編集
    するための作業場を提供する編集部と、 前記編集部を介して作成・編集されたシナリオを前記ロ
    ボット上で解釈可能なプログラム・コードに変換する変
    換部と、を具備することを特徴とするオーサリング・シ
    ステム。
  2. 【請求項2】前記編集部は、頻繁に使用する動作状態や
    処理ルーチン又はその雛型を部品化して用意する部品群
    と、座標指示装置を介した指示操作により前記部品群の
    各部品を取捨選択して配置する操作画面とをユーザに提
    供することを特徴とする請求項1に記載のオーサリング
    ・システム。
  3. 【請求項3】前記編集部は、所定のプログラム言語形式
    のスクリプトを作成・編集する環境をユーザに提供する
    ことを特徴とする請求項1に記載のオーサリング・シス
    テム。
  4. 【請求項4】前記変換部は、部品の配置により表現され
    た動作シナリオ及び/又はスクリプト形式で記述された
    動作シナリオを、前記ロボットにおいて解釈可能なニー
    モニック・コードに変換することを特徴とする請求項1
    に記載のオーサリング・システム。
  5. 【請求項5】さらに、前記変換部において変換されたプ
    ログラム・コードを前記ロボットに転送するための通信
    手段を備えることを特徴とする請求項1に記載のオーサ
    リング・システム。
  6. 【請求項6】前記通信手段は前記ロボットと無線データ
    通信を行うことを特徴とする請求項5に記載のオーサリ
    ング・システム。
  7. 【請求項7】前記通信手段は、前記変換部において変換
    されたプログラム・コードを1ステップずつ取り出して
    前記ロボットに転送することを特徴とする請求項5に記
    載のオーサリング・システム。
  8. 【請求項8】前記通信手段は、前記変換部において変換
    されたプログラム・コードを暗号化して前記ロボットに
    転送することを特徴とする請求項5に記載のオーサリン
    グ・システム。
  9. 【請求項9】さらに、 前記通信手段を介して受信したプログラム・コードを解
    釈する解釈部と、 前記解釈部による解釈結果に従って前記ロボットを駆動
    する駆動制御部と、を前記ロボット上に備えることを特
    徴とする請求項5に記載のオーサリング・システム。
  10. 【請求項10】前記解釈部は、受信したプログラム・コ
    ードを1ステップ単位で解釈して実行することを特徴と
    する請求項9に記載のオーサリング・システム。
  11. 【請求項11】前記ロボットは、現在の姿勢から直接遷
    移可能な動作や姿勢並びにある動作や姿勢を経由してな
    ら遷移可能となる姿勢などに関する姿勢遷移制限情報を
    有し、 前記駆動制御部は、該姿勢遷移制限情報を基に、プログ
    ラム・コードの指示内容を姿勢遷移可能な形式に変換す
    る、ことを特徴とする請求項9に記載のオーサリング・
    システム。
  12. 【請求項12】前記姿勢遷移制限情報は、前記ロボット
    がとり得る姿勢を示すノードと、遷移可能な2つのノー
    ド間を結ぶ動作アークで構成される有向グラフ形式で保
    持され、 前記駆動制御部は、該有向グラフを探索してプログラム
    ・コードの指示内容を姿勢遷移可能な形式に変換する、
    ことを特徴とする請求項11に記載のオーサリング・シ
    ステム。
  13. 【請求項13】ロボットの動作制御プログラムを作成・
    編集するためのオーサリング方法であって、 ユーザに対して該ロボットの動作シナリオを作成・編集
    するための作業場を提供する編集ステップと、 前記編集ステップを介して作成・編集されたシナリオを
    前記ロボット上で解釈可能なプログラム・コードに変換
    する変換ステップと、を具備することを特徴とするオー
    サリング方法。
  14. 【請求項14】前記編集ステップでは、頻繁に使用する
    動作状態や処理ルーチン又はその雛型を部品化して用意
    する部品群と、座標指示装置を介した指示操作により前
    記部品群の各部品を取捨選択して配置する操作画面とを
    ユーザに提供することを特徴とする請求項13に記載の
    オーサリング方法。
  15. 【請求項15】前記編集ステップでは、所定のプログラ
    ム言語形式のスクリプトを作成・編集する環境をユーザ
    に提供することを特徴とする請求項13に記載のオーサ
    リング方法。
  16. 【請求項16】前記変換ステップでは、部品の配置によ
    り表現された動作シナリオ及び/又はスクリプト形式で
    記述された動作シナリオを、前記ロボットにおいて解釈
    可能なニーモニック・コードに変換することを特徴とす
    る請求項13に記載のオーサリング方法。
  17. 【請求項17】さらに、前記変換ステップにおいて変換
    されたプログラム・コードを前記ロボットに転送するた
    めの通信ステップを備えることを特徴とする請求項13
    に記載のオーサリング方法。
  18. 【請求項18】前記通信ステップでは前記ロボットと無
    線データ通信を行うことを特徴とする請求項17に記載
    のオーサリング方法。
  19. 【請求項19】前記通信ステップは、前記変換ステップ
    において変換されたプログラム・コードを1ステップず
    つ取り出して前記ロボットに転送することを特徴とする
    請求項17に記載のオーサリング方法。
  20. 【請求項20】前記通信ステップでは、前記変換部にお
    いて変換されたプログラム・コードを暗号化して前記ロ
    ボットに転送することを特徴とする請求項17に記載の
    オーサリング方法。
  21. 【請求項21】さらに、 前記通信ステップを介して受信したプログラム・コード
    を解釈する解釈ステップと、 前記解釈ステップによる解釈結果に従って前記ロボット
    を駆動する駆動制御ステップと、を前記ロボット上で実
    行することを特徴とする請求項17に記載のオーサリン
    グ方法。
  22. 【請求項22】前記解釈ステップでは、受信したプログ
    ラム・コードを1ステップ単位で解釈して実行すること
    を特徴とする請求項21に記載のオーサリング方法。
  23. 【請求項23】前記ロボットは、現在の姿勢から直接遷
    移可能な動作や姿勢並びにある動作や姿勢を経由してな
    ら遷移可能となる姿勢などに関する姿勢遷移制限情報を
    有し、 前記駆動制御ステップでは、該姿勢遷移制限情報を基
    に、プログラム・コードの指示内容を姿勢遷移可能な形
    式に変換する、ことを特徴とする請求項21に記載のオ
    ーサリング方法。
  24. 【請求項24】前記姿勢遷移制限情報は、前記ロボット
    がとり得る姿勢を示すノードと、遷移可能な2つのノー
    ド間を結ぶ動作アークで構成される有向グラフ形式で保
    持され、 前記駆動制御ステップでは、該有向グラフを探索してプ
    ログラム・コードの指示内容を姿勢遷移可能な形式に変
    換する、ことを特徴とする請求項23に記載のオーサリ
    ング方法。
  25. 【請求項25】ロボットの動作制御プログラムを作成・
    編集するためのオーサリング処理をコンピュータ・シス
    テム上で実行するように記述されたコンピュータ・ソフ
    トウェアをコンピュータ可読形式で物理的に格納した記
    憶媒体であって、前記コンピュータ・ソフトウェアは、 ユーザに対して該ロボットの動作シナリオを作成・編集
    するための作業場を提供する編集ステップと、 前記編集ステップを介して作成・編集されたシナリオを
    前記ロボット上で解釈可能なプログラム・コードに変換
    する変換ステップと、を具備することを特徴とする記憶
    媒体。
  26. 【請求項26】前記編集ステップでは、頻繁に使用する
    動作状態や処理ルーチン又はその雛型を部品化して用意
    する部品群と、座標指示装置を介した指示操作により前
    記部品群の各部品を取捨選択して配置する操作画面とを
    ユーザに提供することを特徴とする請求項25に記載の
    記憶媒体。
  27. 【請求項27】前記編集ステップでは、所定のプログラ
    ム言語形式のスクリプトを作成・編集する環境をユーザ
    に提供することを特徴とする請求項25に記載の記憶媒
    体。
  28. 【請求項28】前記変換ステップでは、部品の配置によ
    り表現された動作シナリオ及び/又はスクリプト形式で
    記述された動作シナリオを、前記ロボットにおいて解釈
    可能なニーモニック・コードに変換することを特徴とす
    る請求項25に記載の記憶媒体。
  29. 【請求項29】さらに、前記変換ステップにおいて変換
    されたプログラム・コードを前記ロボットに転送するた
    めの通信ステップを備えることを特徴とする請求項25
    に記載の記憶媒体。
JP2000175159A 2000-06-12 2000-06-12 オーサリング・システム及びオーサリング方法、並びに記憶媒体 Pending JP2001353678A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000175159A JP2001353678A (ja) 2000-06-12 2000-06-12 オーサリング・システム及びオーサリング方法、並びに記憶媒体
US09/878,648 US6470235B2 (en) 2000-06-12 2001-06-11 Authoring system and method, and storage medium used therewith

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JP2001353678A true JP2001353678A (ja) 2001-12-25

Family

ID=18677078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000175159A Pending JP2001353678A (ja) 2000-06-12 2000-06-12 オーサリング・システム及びオーサリング方法、並びに記憶媒体

Country Status (2)

Country Link
US (1) US6470235B2 (ja)
JP (1) JP2001353678A (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006510496A (ja) * 2002-12-19 2006-03-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ロボットを制御するためのシステム及び方法
JPWO2005014242A1 (ja) * 2003-08-12 2006-09-28 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット用制御システム
JP2008545207A (ja) * 2005-06-29 2008-12-11 クゥアルコム・インコーポレイテッド 3dユーザーインタフェースプログラムに関するビジュアルデバッギングシステム
JP2010142940A (ja) * 2008-12-22 2010-07-01 Korea Electronics Telecommun ロボットのタスクモデルの生成及び実行方法と装置
JP2010253565A (ja) * 2009-04-21 2010-11-11 Advanced Telecommunication Research Institute International コミュニケーションロボット開発支援装置
JP2011067943A (ja) * 2009-09-22 2011-04-07 Gm Global Technology Operations Inc インターアクティブロボット制御システム及び使用方法
JP2012232363A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボット制御システム、ロボットシステム及びプログラム
JP2013527529A (ja) * 2010-05-14 2013-06-27 ザ・ボーイング・カンパニー 実時間ミッションプランニング
WO2016103307A1 (ja) * 2014-12-26 2016-06-30 川崎重工業株式会社 ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置
JP2017170607A (ja) * 2016-03-22 2017-09-28 ペキン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science And Technology Co., Ltd. 人工知能に基づくロボットデバッグシステム
CN107848109A (zh) * 2015-07-08 2018-03-27 优傲机器人公司 用于利用第三方贡献包扩展工业机器人的最终用户编程的方法
JP2019118992A (ja) * 2017-12-28 2019-07-22 株式会社日立ビルシステム ロボット装置制御システム
WO2020105156A1 (ja) * 2018-11-21 2020-05-28 三菱電機株式会社 シナリオ生成装置、シナリオ生成方法およびシナリオ生成プログラム
CN112405623A (zh) * 2020-12-02 2021-02-26 用友网络科技股份有限公司 机器人的开发方法、开发装置和可读存储介质
JP2021030397A (ja) * 2019-08-28 2021-03-01 ファナック株式会社 ロボットプログラミング装置及びロボットプログラミング方法
JPWO2021245746A1 (ja) * 2020-06-01 2021-12-09
WO2022153938A1 (ja) * 2021-01-14 2022-07-21 ファナック株式会社 ロボット教示装置及びロボットプログラムの生成用プログラム
JP2023505631A (ja) * 2019-12-30 2023-02-10 イントリンジック イノベーション エルエルシー ロボット制御システム用の構成可能性フレームワーク

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010032278A1 (en) 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US20020059386A1 (en) * 2000-08-18 2002-05-16 Lg Electronics Inc. Apparatus and method for operating toys through computer communication
JP2002127059A (ja) * 2000-10-20 2002-05-08 Sony Corp 行動制御装置および方法、ペットロボットおよび制御方法、ロボット制御システム、並びに記録媒体
DE50111786D1 (de) * 2000-12-15 2007-02-15 Siemens Ag Verschlüsselung von Steuerungsprogrammen
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
JP4689107B2 (ja) * 2001-08-22 2011-05-25 本田技研工業株式会社 自律行動ロボット
US7426717B1 (en) * 2001-11-27 2008-09-16 Adobe Systems Incorporated System and method for debugging files in a runtime environment
AU2002357040A1 (en) * 2001-11-28 2003-06-10 Evolution Robotics, Inc. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot
US20030122872A1 (en) * 2001-12-31 2003-07-03 Kuo-Chang Chiang Graphics computer programming language for the creation of interactive virtual world
FR2837966B1 (fr) * 2002-03-28 2008-03-28 Somfy Dispositif de commande a distance d'un actionneur dans une installation de protection et/ou de confort avec moyens de transfert de programme executable et procede de mise en oeuvre
US6925357B2 (en) * 2002-07-25 2005-08-02 Intouch Health, Inc. Medical tele-robotic system
US20040162637A1 (en) 2002-07-25 2004-08-19 Yulun Wang Medical tele-robotic system with a master remote station with an arbitrator
US20040216036A1 (en) * 2002-09-13 2004-10-28 Yahoo! Inc. Browser user interface
WO2004044837A1 (de) * 2002-11-11 2004-05-27 Alfred Schurmann Determination und kontrolle der aktivitäten eines emotionalen systems
AU2003900861A0 (en) * 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods,systems and apparatus (NPS042)
US20050060578A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Method of and system for authentication downloading
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
US7813836B2 (en) 2003-12-09 2010-10-12 Intouch Technologies, Inc. Protocol for a remotely controlled videoconferencing robot
JP4244812B2 (ja) * 2004-01-16 2009-03-25 ソニー株式会社 行動制御システム及びロボット装置の行動制御方法
JP4516344B2 (ja) * 2004-04-12 2010-08-04 本田技研工業株式会社 脚式移動ロボット
US8077963B2 (en) 2004-07-13 2011-12-13 Yulun Wang Mobile robot with a head-based movement mapping scheme
EP1672572A1 (en) * 2004-12-15 2006-06-21 Agilent Technologies, Inc. Presentation engine
JP2006344076A (ja) * 2005-06-09 2006-12-21 Nec Electronics Corp プログラム生成装置、プログラム生成方法及びプログラム
US9198728B2 (en) 2005-09-30 2015-12-01 Intouch Technologies, Inc. Multi-camera mobile teleconferencing platform
US20070168975A1 (en) * 2005-12-13 2007-07-19 Thomas Kessler Debugger and test tool
US8849679B2 (en) 2006-06-15 2014-09-30 Intouch Technologies, Inc. Remote controlled robot system that provides medical images
WO2008097252A2 (en) * 2006-06-22 2008-08-14 Roy Sandberg Method and apparatus for robotic path planning, selection, and visualization
US8429613B2 (en) * 2006-10-31 2013-04-23 Microsoft Corporation Stepping and application state viewing between points
EP2123336A4 (en) * 2007-01-23 2010-07-28 Robo Catcher Partners Co Ltd PREMIUM SLOW-MAKING AUTOMAT AND HUMANOIDER TWO-DIFFERENT SCRIPTURES
WO2008137953A1 (en) 2007-05-07 2008-11-13 Raytheon Sarcos, Llc Method for manufacturing a complex structure
WO2008150630A2 (en) * 2007-05-08 2008-12-11 Raytheon Sarcos, Llc Variable primitive mapping for a robotic crawler
US9160783B2 (en) 2007-05-09 2015-10-13 Intouch Technologies, Inc. Robot system that operates through a network firewall
CN101784435B (zh) * 2007-07-10 2013-08-28 雷神萨科斯公司 模块化机器人履带车
US20090248200A1 (en) * 2007-10-22 2009-10-01 North End Technologies Method & apparatus for remotely operating a robotic device linked to a communications network
TW200922659A (en) * 2007-11-22 2009-06-01 Univ Nat Central Carrier device of guide toy with automatic positioning functions
TW200922660A (en) * 2007-11-22 2009-06-01 Univ Nat Central Interactive guide toy vehicle apparatus
US10875182B2 (en) 2008-03-20 2020-12-29 Teladoc Health, Inc. Remote presence system mounted to operating room hardware
US8179418B2 (en) 2008-04-14 2012-05-15 Intouch Technologies, Inc. Robotic based health care system
US8170241B2 (en) 2008-04-17 2012-05-01 Intouch Technologies, Inc. Mobile tele-presence system with a microphone system
US9193065B2 (en) 2008-07-10 2015-11-24 Intouch Technologies, Inc. Docking system for a tele-presence robot
US9842192B2 (en) 2008-07-11 2017-12-12 Intouch Technologies, Inc. Tele-presence robot system with multi-cast features
WO2010018486A1 (en) * 2008-08-11 2010-02-18 Nxp B.V. Programmable device and programming method
US8340819B2 (en) 2008-09-18 2012-12-25 Intouch Technologies, Inc. Mobile videoconferencing robot system with network adaptive driving
US8996165B2 (en) 2008-10-21 2015-03-31 Intouch Technologies, Inc. Telepresence robot with a camera boom
US9138891B2 (en) 2008-11-25 2015-09-22 Intouch Technologies, Inc. Server connectivity control for tele-presence robot
US8463435B2 (en) 2008-11-25 2013-06-11 Intouch Technologies, Inc. Server connectivity control for tele-presence robot
US8392036B2 (en) * 2009-01-08 2013-03-05 Raytheon Company Point and go navigation system and method
US20100181943A1 (en) * 2009-01-22 2010-07-22 Phan Charlie D Sensor-model synchronized action system
US8849680B2 (en) 2009-01-29 2014-09-30 Intouch Technologies, Inc. Documentation through a remote presence robot
US8897920B2 (en) 2009-04-17 2014-11-25 Intouch Technologies, Inc. Tele-presence robot system with software modularity, projector and laser pointer
FR2946160B1 (fr) * 2009-05-26 2014-05-09 Aldebaran Robotics Systeme et procede pour editer et commander des comportements d'un robot mobile.
WO2010144813A1 (en) * 2009-06-11 2010-12-16 Raytheon Sarcos, Llc Method and system for deploying a surveillance network
FR2947923B1 (fr) * 2009-07-10 2016-02-05 Aldebaran Robotics Systeme et procede pour generer des comportements contextuels d'un robot mobile
US11399153B2 (en) 2009-08-26 2022-07-26 Teladoc Health, Inc. Portable telepresence apparatus
US8384755B2 (en) 2009-08-26 2013-02-26 Intouch Technologies, Inc. Portable remote presence robot
TWI410818B (zh) * 2009-12-30 2013-10-01 Fiitotech Company Ltd 網路數位創作系統及其方法
US11154981B2 (en) 2010-02-04 2021-10-26 Teladoc Health, Inc. Robot user interface for telepresence robot system
US8670017B2 (en) 2010-03-04 2014-03-11 Intouch Technologies, Inc. Remote presence system including a cart that supports a robot face and an overhead camera
KR101119030B1 (ko) * 2010-05-12 2012-03-13 (주) 퓨처로봇 지능형 로봇 장치의 서비스 시나리오 편집 방법, 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능한 기록매체, 지능형 로봇 장치 및 지능형 로봇의 서비스 방법
US10343283B2 (en) 2010-05-24 2019-07-09 Intouch Technologies, Inc. Telepresence robot system that can be accessed by a cellular phone
US10808882B2 (en) 2010-05-26 2020-10-20 Intouch Technologies, Inc. Tele-robotic system with a robot face placed on a chair
US9264664B2 (en) 2010-12-03 2016-02-16 Intouch Technologies, Inc. Systems and methods for dynamic bandwidth allocation
US9323250B2 (en) 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
CN104898652B (zh) 2011-01-28 2018-03-13 英塔茨科技公司 与一个可移动的远程机器人相互交流
US10769739B2 (en) 2011-04-25 2020-09-08 Intouch Technologies, Inc. Systems and methods for management of information among medical providers and facilities
US20140139616A1 (en) 2012-01-27 2014-05-22 Intouch Technologies, Inc. Enhanced Diagnostics for a Telepresence Robot
US9098611B2 (en) 2012-11-26 2015-08-04 Intouch Technologies, Inc. Enhanced video interaction for a user interface of a telepresence network
US8836751B2 (en) 2011-11-08 2014-09-16 Intouch Technologies, Inc. Tele-presence system with a user interface that displays different communication links
US9573276B2 (en) * 2012-02-15 2017-02-21 Kenneth Dean Stephens, Jr. Space exploration with human proxy robots
US8902278B2 (en) 2012-04-11 2014-12-02 Intouch Technologies, Inc. Systems and methods for visualizing and managing telepresence devices in healthcare networks
US9251313B2 (en) 2012-04-11 2016-02-02 Intouch Technologies, Inc. Systems and methods for visualizing and managing telepresence devices in healthcare networks
US9361021B2 (en) 2012-05-22 2016-06-07 Irobot Corporation Graphical user interfaces including touchpad driving interfaces for telemedicine devices
EP2852475A4 (en) 2012-05-22 2016-01-20 Intouch Technologies Inc SOCIAL BEHAVIOR OF A MEDICAL TELEPRESCENT ROBOT
US8393422B1 (en) 2012-05-25 2013-03-12 Raytheon Company Serpentine robotic crawler
US9031698B2 (en) 2012-10-31 2015-05-12 Sarcos Lc Serpentine robotic crawler
JP5582427B2 (ja) * 2012-12-18 2014-09-03 株式会社安川電機 教示データ作成装置、ロボットシステム、及び教示データ作成方法
US9409292B2 (en) 2013-09-13 2016-08-09 Sarcos Lc Serpentine robotic crawler for performing dexterous operations
US9604361B2 (en) * 2014-02-05 2017-03-28 Abb Schweiz Ag System and method for defining motions of a plurality of robots cooperatively performing a show
JP6545472B2 (ja) * 2015-01-27 2019-07-17 蛇の目ミシン工業株式会社 ロボット
WO2016206647A1 (zh) * 2015-06-26 2016-12-29 北京贝虎机器人技术有限公司 用于控制机器装置产生动作的系统
WO2018188001A1 (zh) * 2017-04-12 2018-10-18 曾华均 无人机的飞行动作编辑及编队控制系统和控制方法
US11862302B2 (en) 2017-04-24 2024-01-02 Teladoc Health, Inc. Automated transcription and documentation of tele-health encounters
US10214933B2 (en) 2017-05-11 2019-02-26 Hayward Industries, Inc. Pool cleaner power supply
US10483007B2 (en) 2017-07-25 2019-11-19 Intouch Technologies, Inc. Modular telehealth cart with thermal imaging and touch screen user interface
US11636944B2 (en) 2017-08-25 2023-04-25 Teladoc Health, Inc. Connectivity infrastructure for a telehealth platform
WO2019183568A1 (en) * 2018-03-23 2019-09-26 Google Llc Controlling a robot based on free-form natural language input
JP7069971B2 (ja) * 2018-03-30 2022-05-18 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
US10617299B2 (en) 2018-04-27 2020-04-14 Intouch Technologies, Inc. Telehealth cart that supports a removable tablet with seamless audio/video switching

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8716313D0 (en) * 1987-07-10 1987-08-19 Janssen Pharmaceutica Nv 2-(heterocyclylalkyl)imidazopyridines
US5875108A (en) * 1991-12-23 1999-02-23 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US5901246A (en) * 1995-06-06 1999-05-04 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6081750A (en) * 1991-12-23 2000-06-27 Hoffberg; Steven Mark Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US5644686A (en) * 1994-04-29 1997-07-01 International Business Machines Corporation Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications
US6366933B1 (en) * 1995-10-27 2002-04-02 At&T Corp. Method and apparatus for tracking and viewing changes on the web
US6167426A (en) * 1996-11-15 2000-12-26 Wireless Internet, Inc. Contact alerts for unconnected users
US6259969B1 (en) * 1997-06-04 2001-07-10 Nativeminds, Inc. System and method for automatically verifying the performance of a virtual robot
US6363301B1 (en) * 1997-06-04 2002-03-26 Nativeminds, Inc. System and method for automatically focusing the attention of a virtual robot interacting with users

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006510496A (ja) * 2002-12-19 2006-03-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ロボットを制御するためのシステム及び方法
JPWO2005014242A1 (ja) * 2003-08-12 2006-09-28 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット用制御システム
US7689319B2 (en) 2003-08-12 2010-03-30 Advanced Telecommunications Research Institute International Communication robot control system
JP2008545207A (ja) * 2005-06-29 2008-12-11 クゥアルコム・インコーポレイテッド 3dユーザーインタフェースプログラムに関するビジュアルデバッギングシステム
US8589142B2 (en) 2005-06-29 2013-11-19 Qualcomm Incorporated Visual debugging system for 3D user interface program
JP2010142940A (ja) * 2008-12-22 2010-07-01 Korea Electronics Telecommun ロボットのタスクモデルの生成及び実行方法と装置
JP2010253565A (ja) * 2009-04-21 2010-11-11 Advanced Telecommunication Research Institute International コミュニケーションロボット開発支援装置
JP2011067943A (ja) * 2009-09-22 2011-04-07 Gm Global Technology Operations Inc インターアクティブロボット制御システム及び使用方法
JP2013527529A (ja) * 2010-05-14 2013-06-27 ザ・ボーイング・カンパニー 実時間ミッションプランニング
US9064222B2 (en) 2010-05-14 2015-06-23 The Boeing Company Real time mission planning
JP2012232363A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボット制御システム、ロボットシステム及びプログラム
JPWO2016103307A1 (ja) * 2014-12-26 2017-07-13 川崎重工業株式会社 ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置
WO2016103307A1 (ja) * 2014-12-26 2016-06-30 川崎重工業株式会社 ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置
CN107848109A (zh) * 2015-07-08 2018-03-27 优傲机器人公司 用于利用第三方贡献包扩展工业机器人的最终用户编程的方法
US10850393B2 (en) 2015-07-08 2020-12-01 Universal Robots A/S Method for extending end user programming of an industrial robot with third party contributions
JP2017170607A (ja) * 2016-03-22 2017-09-28 ペキン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science And Technology Co., Ltd. 人工知能に基づくロボットデバッグシステム
JP2019118992A (ja) * 2017-12-28 2019-07-22 株式会社日立ビルシステム ロボット装置制御システム
WO2020105156A1 (ja) * 2018-11-21 2020-05-28 三菱電機株式会社 シナリオ生成装置、シナリオ生成方法およびシナリオ生成プログラム
JPWO2020105156A1 (ja) * 2018-11-21 2021-04-01 三菱電機株式会社 シナリオ生成装置、シナリオ生成方法およびシナリオ生成プログラム
JP7440227B2 (ja) 2019-08-28 2024-02-28 ファナック株式会社 ロボットプログラミング装置及びロボットプログラミング方法
JP2021030397A (ja) * 2019-08-28 2021-03-01 ファナック株式会社 ロボットプログラミング装置及びロボットプログラミング方法
JP2023505631A (ja) * 2019-12-30 2023-02-10 イントリンジック イノベーション エルエルシー ロボット制御システム用の構成可能性フレームワーク
JPWO2021245746A1 (ja) * 2020-06-01 2021-12-09
CN112405623B (zh) * 2020-12-02 2022-07-12 用友网络科技股份有限公司 机器人的开发方法、开发装置和可读存储介质
CN112405623A (zh) * 2020-12-02 2021-02-26 用友网络科技股份有限公司 机器人的开发方法、开发装置和可读存储介质
WO2022153938A1 (ja) * 2021-01-14 2022-07-21 ファナック株式会社 ロボット教示装置及びロボットプログラムの生成用プログラム

Also Published As

Publication number Publication date
US6470235B2 (en) 2002-10-22
US20020038168A1 (en) 2002-03-28

Similar Documents

Publication Publication Date Title
JP2001353678A (ja) オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP4765155B2 (ja) オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP4670136B2 (ja) オーサリング・システム及びオーサリング方法、並びに記憶媒体
US6816753B2 (en) Robot control system and robot control method
EP1610221A1 (en) Information providing device, method, and information providing system
US6760648B2 (en) Robot control system and method for introducing robot control software
Pot et al. Choregraphe: a graphical tool for humanoid robot programming
US20040036437A1 (en) Legged mobile robot and its motion teaching method, and storage medium
EP1136193A2 (en) Humanoid robot communicating with body language
KR20010052699A (ko) 로봇 장치, 로봇 장치의 제어방법 및 프로그램 기록 매체
JP2001322079A (ja) 脚式移動ロボット及びその動作教示方法
WO2004080665A1 (ja) ロボット装置、その行動制御方法及びプログラム
WO2002034478A1 (fr) Robot pourvu de jambes, procede de commande du comportement d&#34;un tel robot, et support de donnees
WO2000066239A1 (fr) Systeme d&#39;animal de compagnie electronique, systeme de reseau, robot et support de donnees
JP2001038663A (ja) マシンの制御システム
JP3925140B2 (ja) 情報提供方法及び情報提供装置、並びにコンピュータ・プログラム
Thai Exploring robotics with ROBOTIS Systems
JP2002086378A (ja) 脚式ロボットに対する動作教示システム及び動作教示方法
JP2004298975A (ja) ロボット装置、障害物探索方法
Wang et al. Walkingbot: Modular interactive legged robot with automated structure sensing and motion planning
JP2004318862A (ja) 情報提供装置及び方法、並びに情報提供システム
JP2002059384A (ja) ロボットのための学習システム及び学習方法
CN110370280B (zh) 机器人行为的反馈控制方法、系统和计算机可读存储介质
JP2002187082A (ja) ロボット制御システム及びロボット制御方法
JP2001191274A (ja) データ保持装置、ロボット装置、変更装置及び変更方法