JP4039595B2 - ロボットシステム - Google Patents
ロボットシステム Download PDFInfo
- Publication number
- JP4039595B2 JP4039595B2 JP25014098A JP25014098A JP4039595B2 JP 4039595 B2 JP4039595 B2 JP 4039595B2 JP 25014098 A JP25014098 A JP 25014098A JP 25014098 A JP25014098 A JP 25014098A JP 4039595 B2 JP4039595 B2 JP 4039595B2
- Authority
- JP
- Japan
- Prior art keywords
- routine
- robot
- command
- program
- motion
- 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
Links
- 230000033001 locomotion Effects 0.000 claims description 128
- 230000009471 action Effects 0.000 claims description 63
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 description 54
- 230000008569 process Effects 0.000 description 46
- 230000000875 corresponding effect Effects 0.000 description 43
- 238000012545 processing Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 27
- 210000002414 leg Anatomy 0.000 description 23
- 210000001508 eye Anatomy 0.000 description 20
- 210000000988 bone and bone Anatomy 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 210000003811 finger Anatomy 0.000 description 11
- 238000013500 data storage Methods 0.000 description 7
- 210000003128 head Anatomy 0.000 description 7
- 235000005156 Brassica carinata Nutrition 0.000 description 6
- 244000257790 Brassica carinata Species 0.000 description 6
- 210000002758 humerus Anatomy 0.000 description 6
- 210000003141 lower extremity Anatomy 0.000 description 6
- 210000001364 upper extremity Anatomy 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 241000287531 Psittacidae Species 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 210000000744 eyelid Anatomy 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 210000000707 wrist Anatomy 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 230000004397 blinking Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 210000001981 hip bone Anatomy 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 210000000214 mouth Anatomy 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 210000001624 hip Anatomy 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 210000002105 tongue Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
- Control By Computers (AREA)
Description
【発明の属する技術分野】
本発明はロボットシステムに関する。
【0002】
【従来の技術】
人間の動きを模写するロボット等、各種多関節ロボットに所定の動作を行わせる場合、その動作をプログラミングするために、従来はロボットを駆動する各アクチュエータの駆動量を、動作の時系列に従って個別に設定する方法がとられている。この場合、あるロボットの動作において、複数のロボット部位の動きが同時にあるいは連係して起こる場合、それらロボット部位毎にアクチュエータの駆動量を指定しなければならない。例えば、「歩く」という動作を例にとれば、これには両足の動きの他に、腕の振りや肩の上下といった動作が付随しており、それら各部の動作のプログラムが個別に組み立てられる。そして、「1歩前に進み出て礼をし、そのまま下がってもとの場所に帰る」というような、より複雑な上位動作をプログラミングする場合は、その上位動作を、「1歩前に進み出る」、「礼をする」、「1歩下がる」という下位動作に分解してプログラミング作業が行われる。
【0003】
上記従来の方法は、ロボット部位毎に多数のアクチュエータの駆動量やその作動順序をいちいち設定しなければならないので、プログラミング作業に時間がかかり、複雑な上位動作のプログラムを効率よく作成するのに適しているとは言い難い。また、上位動作の内容を変更したい場合には、各アクチュエータの駆動量レベルでプログラムないしデータを書き換えなければならず、その作業に時間がかかる。すなわち、ロボットの動作内容の変更がそれほど容易でないため、ロボットの各種動作への融通性に欠ける難点がある。
【0004】
そこで、これを解決するために、特開平8−314524号公報には、次のような階層型制御プログラムを用いる制御方式が提案されている。この制御プログラムにおいては、複数のロボット部位に設けられたアクチュエータの駆動に関する駆動データを単位として下位動作データを形成し、その下位動作データを複数統合してロボットの基本動作を規定する中位動作ルーチンを構築する。また、それら各中位動作ルーチンに中位動作コマンドを対応させ、その中位動作コマンドの組み合わせにより上位動作プログラムを規定する。そして、その上位動作プログラムを前記中位動作コマンドの単位で読み出しつつ、その読み出された各中位動作コマンドに対応する中位動作ルーチンの組み合わせに基づいて、各アクチュエータの駆動を制御する。
【0005】
【発明が解決しようとする課題】
ところで、上記方式においては、ロボットの基本動作を規定する中位動作ルーチンの種類を増やしたい場合、新たに追加したい基本動作の中位動作ルーチンを、その都度下位動作データの単位に遡って作成しなければならない。この中位動作ルーチンの作成作業は、直感的には把握しにくい下位動作データレベルでしか行うことができないから、専門的な知識とプログラミング作業への高度の熟練とを要し、一般のユーザには甚だ扱いにくい内容となる。とりわけ互いに異なる部位動作が連係した複合動作となる場合等において、タイミング等の動作条件設定が特に面倒である。この場合、プログラミングに時間がかかるばかりでなく、プログラムの見通しや全体把握も容易でないため、所期のロボット動作実現には一層の困難を伴う。従って、中位動作コマンドの使用により簡単なプログラミングが実現されている点についてはよいが、上記事情により、専門家以外の者は予め用意された中位動作コマンド(基本動作)の枠を一歩も超えることができず、融通性に乏しい欠点がある。
【0006】
本発明の課題は、ロボットに複数の部位動作が連係した複雑な動作を行わせる場合においてもプログラム作成あるいは変更が極めて簡単であり、ひいては所期のロボット動作を思い通りに実現することができるロボットシステムを提供することにある。
【0007】
【課題を解決するための手段及び作用・効果】
上記課題を解決するために本発明のロボットシステムは、
上位のロボット動作をいくつかの基本動作の組み合わせとして把握し、基本動作に必要な各ロボット部位(以下、単に部位ともいう)の動作を規定する部位動作プログラムモジュール(以下、部位動作モジュールという)が形成され、その部位動作モジュールを複数組み合わせることにより基本動作を規定する中位動作ルーチンが形成され、その中位動作ルーチンの組み合わせにより上位のロボット動作を規定する上位動作プログラムが階層型プログラムとして記述されており、
中位動作ルーチンは中位動作コマンドと対応付け、上位動作プログラムはその中位動作コマンドを用い、これら中位動作コマンドの組み合わせにより上位のロボット動作を規定し、
中位動作ルーチンを記憶する中位動作ルーチン記憶部と、
中位動作コマンドの組み合わせである上位動作プログラムを記憶する上位動作プログラム記憶部と、
その上位動作プログラム記憶部に記憶された上位動作プログラムを、中位動作コマンドの単位で読み出すプログラム読出手段と、を備え、
そのプログラム読出手段によって読み出された中位動作コマンドに対応する中位動作ルーチンの組み合わせに基づいて、
部位動作モジュールは、ロボット部位に設けられたアクチュエータの駆動に関する駆動データを単位として形成され、アクチュエータをその駆動データによって駆動を制御するためのアクチュエータ動作制御部と、対応するロボット部位の動作開始タイミングを規定する動作開始タイミング規定コマンドを含んだ動作条件規定コマンドとで構成され、アクチュエータ動作制御部は、その動作条件規定コマンドが規定する動作条件に従い、基本動作又は部位動作に係るアクチュエータの駆動を制御するとともに、
部位動作モジュールの動作条件規定コマンドに含まれる動作開始タイミング規定コマンドは、ロボット動作に対応するモデルの動作を経時的に記録した各コマの一連のモデル画像により規定される当該ロボット部位の動作を基準として用いたときの、当該ロボット部位の動作の開始時刻、終了時刻又は特定のコマ位置通過時刻のいずれかに基づいて動作開始タイミングを与えるものであることを特徴とする。
【0008】
このロボットシステムにおいては、中位動作ルーチンを、ロボット部位毎の動作を規定するルーチン、すなわち部位動作モジュールの寄せ集めとして構成し、さらに、動作条件規定コマンドにより各部位動作毎に条件規定を行うようにしている。この動作条件規定コマンドは、基本動作又は部位動作の動作開始タイミングを規定する動作開始タイミング規定コマンドを含むので、複数の部位動作を同時連係的に組み合わせる場合、動作開始タイミング規定コマンドにより動作毎の開始タイミングを規定することで、ある部位の動作を他の部位よりも遅れて開始させたり、あるいはある動作が終了した後に特定部位の動作を開始させたり、さらには特定部位同士の動作を同時に開始させたりといった複雑な動作指定を簡単に行うことが可能となる。
【0009】
その結果、中位動作ルーチンの作成作業が直感的に把握しやすくなるので、専門的な知識とプログラミング作業への高度の熟練とを有さない一般のユーザでも、簡単に扱うことができるようになり、またプログラミングの幅も拡げることができる。他方、中位動作ルーチンが部位別の動作モジュール単位で構成されているから、特定の部位の動作のみを別の動作に変更したい、あるいは該部位の動作を行わせないようにしたい、さらには新たな部位動作を追加したい、といった要望にも、部位動作モジュールの入替え、削除、追加により簡単に対応できる。いずれにせよ、ロボットに複数の部位動作が組み合わさった複雑な動作を行わせる場合でも、プログラム作成あるいは変更が極めて簡単となり、プログラムの見通しや全体把握も容易になるから、所期のロボット動作を思い通りに実現することができる。
【0010】
動作開始タイミング規定コマンドは、予め定められた時刻原点からの経過時間に基づいて動作開始タイミングを与えるものとすることができる。この場合は、例えばタイマー計測等による時間把握により動作タイミングを簡単に規定することができる。
【0011】
上記ロボットシステムにおいては、ロボットを、複数のロボット部位のうちの少なくとも一部のものが、複数の骨格単位とそれら骨格単位の間に配置されたアクチュエータとを有する骨格を備えるものとして構成できる。この場合、複数の部位動作モジュールのうち、少なくとも一部のものを、下記の要件を備えた駆動データ作成装置、すなわち、
ロボット動作に対応するモデルの動作を経時的に記録した一連のモデル画像と、骨格の画像を表示する画像表示手段と、
その表示手段において骨格画像を、モデル画像に対して位置合わせする骨格位置決め手段と、
時間軸上において互いに前後するモデル画像に対しそれぞれ位置合わせされた骨格画像の変位に基づいて、駆動データを算出するデータ演算手段とを含む駆動データ作成装置により、動作のコマ送り単位で作成された駆動データを、ロボットの部位別に編集することにより作成された教示動作ルーチン部分とすることができる。
【0012】
この方式によれば、例えば、ある基本動作を人間のモデルに実際に行わせてこれをコマ単位の一連の画像として記録し、それら各画像にロボットの骨格画像をそれぞれ位置合わせすることによって、経時的に変化するモデル動作の特定の時刻毎に、骨格画像のモデル画像に対する位置決めが行われ、隣り合う画像間での骨格の変位に基づいて駆動データが演算される。いわば、モデルの動きを直接ロボットに教示するイメージにより、直感的な駆動データ生成が可能となるのである。従って、その中位動作に含まれる各部位毎の下位動作データを一括して得ることができ、中位動作コマンドを付与して記憶部に保存すればそのまま中位動作ルーチンとしての使用が可能となる。そして、その駆動データを作成するための作業は、画像表示手段の画面上でモデル画像に骨格画像を位置合わせする操作が中心となるので内容が理解しやすく、また、ロボットの部位毎にアクチュエータの駆動量をいちいち設定する必要がなくなるので、上位動作プログラム作成に必要な多量の駆動データを合理的かつ簡便に得ることができる。
【0013】
この場合は、教示動作ルーチン部分により規定されるある部位の動作を基準として用い、動作開始タイミング規定コマンドを、その部位動作の開始時刻、終了時刻又は特定のコマ位置通過時刻のいずれかに基づいて動作開始タイミングを与えるものとすることができる。これは、特定部位の動作を基準にタイミングを設定したい場合に便利であり、特に部位間の連係動作タイミング設定が容易になるので、複雑な動作のプログラミングを一層簡単に行うことができる。
【0014】
次に、前記した駆動データ作成装置により教示動作ルーチン部分を作成する場合、例えば、モデル画像に位置合わせされた骨格画像からは駆動データの演算が困難あるいは不可能なロボット部位が存在する場合がある(例えば手首、指、眼、口等の動き、ランプの点灯など)。そして、中位動作ルーチンに、上記のような要因により、駆動データ作成装置による教示動作ルーチン部分の作成がなされないロボット部位(非教示部位)の部位動作モジュールが含まれる場合は、その部位動作モジュールに対応する非教示部位の位置決め命令ルーチン部分をプログラム中に組み込んでおくことができる。また、その位置決め命令ルーチン部分の内容に基づいて、対応する非教示部位のアクチュエータの駆動データを生成する非教示部位駆動データ生成手段を設けることができる。
【0015】
上記構成では、駆動データ作成装置によるデータ作成の不能な非教示部位の動作を組み込む場合に、位置決め命令ルーチン部分の内容に基づいて、対応する非教示部位のアクチュエータの駆動データが、プログラム実行中に自動生成されることとなる。これにより、各種非教示部位に対する駆動データを予め用意する必要がなくなり、また非教示部位の部位動作の組込みも非常に簡単になるので、プログラミングの手間を省くことができる。この場合、位置決め命令ルーチン部分は、対応する非教示部位の移動開始位置、移動終了位置及び移動速度の少なくともいずれかを指定する位置決め情報を含むものとすることができる。例えば、非教示部位が、眼の回転や口の開閉あるいは舌の出し入れのように、ロボットの特定部位に対して予め定められた2位置間でのみ移動するような場合、あるいは単純な回転移動しか行わない場合等においては、このような簡略な位置決め情報により駆動データの生成を問題なく行わせることができる。
【0016】
なお、動作開始タイミング規定コマンドが中位動作ルーチンを構成する部位動作モジュールの動作条件規定コマンドの中に与えられていない場合に、対応する基本動作又は部位動作の動作開始タイミングは中位動作ルーチンの実行開始時刻に設定することができる。例えば前記した組合わせ型中位動作ルーチン等において、デフォルト開始時刻(例えば中位動作ルーチンのプログラム実行開始)において、いくつかの部位の動作を同時にスタートさせたい場合、上記のような手段を設けておくことで、特にそれら部位へのタイミング指定を行わなくとも所期の動作が実行されるので、プログラムを簡略化することが可能となる。
【0017】
【発明の実施の形態】
以下、本発明の一実施例を図面を用いて説明する。
図1は、本発明の一実施例たるロボットシステム200の全体構成を示しており、ロボット201、ロボット制御部202、駆動データ作成装置1を備えており、これらがそれぞれ通信インターフェース203、152を介して通信回線150により互いに接続されている。
【0018】
ロボット制御部202は、CPU204とこれに接続されるRAM205、ROM206、ハードディスク装置等で構成される記憶装置207、キーボード等の入力装置208、表示制御部210等を備える。そして、表示制御部210にはCRT等の表示装置211が接続され、また、CPU204には通信インターフェース203が接続される。
【0019】
なお、記憶装置207は、標準動作ルーチン記憶部、中位動作ルーチン記憶部、、部位動作モジュール記憶手段として機能する。また、CPU204は、プログラム読出手段、プログラム展開手段、非教示部位駆動データ生成手段として機能する。さらに、RAM205はCPU204のワークエリア及び展開記憶手段として機能する。
【0020】
ロボット201は、例えば人間の動きを模写するロボットとして構成され、図2に示すように、骨格単位20〜30が関節機構31〜37で互いに接続される骨格19を備える。そして、この骨格は、例えば下記のようなロボット部位(以下、部位A、B、C・・・等という)に区分されている。
・頭部(20):眼部20aと口部20cを備える。図3に示すように、口部20cは、図示しないアクチュエータにより開閉駆動可能とされている。さらに、口部20cの内部には、舌部20dが図示しないアクチュエータにより出入り可能に設けられている。また、図4に示すように、眼部20aは図示しないアクチュエータにより左右に回転駆動可能に設けられている。また、この眼部20aを覆ったり開いたりする瞼部20eが、図示しないアクチュエータにより駆動可能に設けられている。さらに、図1に示すスピーカ192(音声出力部)も内蔵されていおり、CPU204からの指令により、音声合成部191により合成された声等の音声を出力できるようになっている。なお、本明細書では、音声出力部も部位の一つとみなし、それによる音声出力も動作の一つとみなす。
・胴体:肩21、背骨22、腰骨23を含む。
・左右の腕部:それぞれ上腕骨24、下腕骨25、手部29を備える。また、手部29の各指は、それぞれ独立に曲げ伸ばし駆動可能とされ、例えばジャンケンの「グー」、「チョキ」、「パー」など、各種の手形状を作ることができるようになっている。
・左右の脚部:それぞれ上肢骨26、下肢骨27、足部30を備える。
【0021】
そして、図1に示すようにロボット201には、上記各部位(図面では、A、B、C等で簡略に表記している)のそれぞれに対応して算出・駆動制御部(算出・駆動制御手段)212が設けられ、ロボット制御部202のCPU204にそれぞれ接続されている。そして、これら算出・駆動制御部212に対し、各部位に含まれるアクチュエータ213が接続されている。なお、図2の各関節機構31〜37に設けられるアクチュエータの種類(パルスモータ、サーボモータ、ピストンシリンダ等)と軸の本数、軸の回転の自由度、及び軸の回転ないしピストンのスライドの範囲等は各骨格単位毎に個別に設定されている。
【0022】
次に、図5に示すように、ロボット制御部202(図1)の記憶装置207には、上位動作プログラム記憶部300、中位動作ルーチン記憶部302、部位動作モジュール記憶部304、中位動作コマンド解析プログラム記憶部306、非教示部位駆動データ生成プログラム記憶部308、システムプログラム記憶部312が形成されており、それぞれ対応するプログラムないしルーチン(あるいはデータ)を記憶している。
【0023】
各プログラムの作用は以下の通りである。
(1)上位動作プログラム:予め用意された中位動作コマンドから適当なものを選んで配列することにより、所望の上位動作を記述する。例えばロボット201に「右を向いて4歩歩き、回れ右して1歩半踏み出し、空手チョップのポーズをとる」という一連の上位動作を行わせたい場合には、これを「右を向く」、「右脚部半歩」、「左脚部1歩」等、いくつかの基本動作の組み合わせとして把握する。そして、該上位動作プログラムでは、その上位動作を構成する基本動作をそれぞれ規定する中位動作コマンドを含んだ動作命令文300aが、その実行順を反映した所定の順序、例えばその実行順に配列される。本実施例では、動作命令文に含まれる中位動作コマンドは、基本動作の定義名を含んだ形で記述される。
【0024】
(2)中位動作ルーチン:対応する基本動作に必要な各ロボット部位の動作を規定する部位動作プログラムモジュール(部位動作モジュール)のモジュール名(動作特定情報)PM11,PM12‥‥の組み合わせとして、基本動作の定義名1,2,3,‥‥と対応付けた形で記憶されている。
(3)部位動作モジュール:図6に示すように、図1のロボット201の部位A、B、C・・・に含まれるアクチュエータの駆動データ群を含んで構成されており、部位名(部位特定情報)1,2,‥‥、及びモジュール名(動作特定情報)PM11,PM12‥‥と対応付けた形で記憶されている。なお、各駆動データは、各アクチュエータにより駆動される骨格単位の両端の各時間毎の変位データを含むものとされるが、骨格単位間の角度データとすることもできる。他方、駆動データは、各アクチュエータの各時間毎の駆動量とすることもできる。
【0025】
(4)中位動作コマンド解析プログラム:中位動作コマンドの単位で上位動作プログラムを読み出し、対応する中位動作ルーチンを順次起動させる。
(5)システムプログラム:CPU204上における上位動作プログラムの作動環境、及び上位動作プログラムの書換えないし新規作成のための環境を与える。具体的には、表示装置211(図1)にプログラム作成画面を開き、入力装置208を用いて上位動作コマンドを図18に示すような形式(後述)で入力し、その入力内容に上位動作プログラム名を付与して、記憶装置207の上位動作プログラム記憶部300に記憶させる。また、記憶された上位動作プログラムをプログラム作成画面に表示させ、入力装置208からの入力に基づいて上位動作コマンドの追加、削除、挿入等を行い、プログラムの修正・編集を実行する。他方、後述する標準変更型中位動作ルーチンあるいは複合型中位動作ルーチンの部位動作モジュールへの展開処理も、このシステムプログラムが行う。なお、これらタイプの中位動作ルーチンは定義ルーチン300bの形で、上位動作プログラム内に組み込まれた形で上位動作プログラム記憶部300内に記憶される。すなわち、該記憶部300の一部も、中位動作ルーチン記憶部として機能している。
(6)非教示部位駆動データ生成プログラム:後述する。
【0026】
一方、図7に示すように、RAM205には、上位動作プログラム格納部205a、中位動作コマンド解析プログラム格納部205b、中位動作ルーチン格納部(I)205c、中位動作ルーチン格納部(II)205d等が形成され、それぞれ記憶装置207から読み出された対応するプログラム、データ等を格納するようになっている。なお、格納部205c,205dには、実行に係る中位動作ルーチンに含まれる各部位動作モジュールがロードされる(標準変更型中位動作ルーチンあるいは複合型中位動作ルーチンについては、中位動作ルーチン展開メモリ領域205gにて部位動作モジュールの形に展開された後、ロードされる)。なお、中位動作ルーチン格納部が(I)と(II)の2つ(3つ以上でもよい)設けられているのは、次に実行する中位動作ルーチンを予め読み込んで蓄積しておくことにより、ロボット201が次の動作に移る際の、記憶装置207からのデータ読込みに基づく応答の遅れを低減するためである。
【0027】
また、算出・駆動制御部212は、図8に示すように、それぞれCPU214、RAM215、ROM216等を備え、ROM216には駆動量算出プログラム216aが格納されている。そして、算出・駆動制御部212は中位動作ルーチンの実行に伴い、ロボット制御部202側から受信した駆動データDA1、DA2、・・・等に基づいて、CPU214に接続された各アクチュエータ213(図1)の駆動量を時系列順に算出し、その算出結果に基づいて各アクチュエータ213を駆動する。その算出方法については後述する。
【0028】
図9は、駆動データ作成装置1の構成例を示すブロック図である。駆動データ作成装置1は、駆動データ演算手段を構成するCPU2、ROM3、RAM4を含む装置制御部5を備え、これに画像取込制御部6、表示制御部7、入力装置インターフェース8、装置全体の制御を司る制御プログラムを格納したプログラム記憶装置9、駆動データ記憶装置10、動画データ記憶装置11が接続されている。そして、入力装置インターフェース8にはクリックボタン12a(入力部)を備えた骨格位置決め手段として、マウス12、キーボード13が接続されている。表示制御部7には画像表示手段としてのCRT14が接続されている。一方、画像取込制御部6は、ビデオ再生装置(VTR)15が接続されるとともに、VRAM16とデータ転送用プロセッサ17とを備え、VRAM16に格納された画像表示データが、バス18を介して表示制御部7に直接転送可能とされている。
【0029】
次に、図2に示すロボット201の骨格19を形成する骨格単位のうち、いくつかのものは組を形成し、その組に含まれる各骨格単位同士の相対的な位置関係には予め定められた拘束条件が設定される。例えば、両脚部を構成する骨格単位を例にとれば、図10に示すようにその下肢骨27は、上肢骨26に沿う直線と腰骨23に直角な直線とが作る平面P内のみを動くという拘束条件が設定されている(なお、図10においては、関節機構35及び36(図2)は描いていない)。従って、上肢骨26の上端位置と下肢骨27の下端位置とを指定すれば、両者の結合点(膝に相当する部分)の位置は、上記拘束条件に従って自動的に定まることとなる。
【0030】
次に、本実施例のロボットシステム1の作動について詳しく説明する。
図1の入力装置208等により上位動作プログラム名を指定してこれを起動させると、中位動作コマンド解析プログラムが起動し、図11のフローチャートに示すように、M1において上位動作プログラムの最初の中位動作コマンドが読み込まれ、M2で対応する中位動作ルーチンがRAM205の中位動作ルーチン格納部(I)205cに格納される。次に、その格納された中位動作ルーチンに対し信号を発してこれを起動させる(M3)。また、その中位動作ルーチンの実行中に、M4で次の中位動作コマンドを読み込み、M5で対応する中位動作ルーチンをRAM205の空いている中位動作ルーチン格納部(この場合、格納部(II))に格納する。さらに、M6において起動・実行中の中位動作ルーチン(格納部(I)側)から中位側処理完了信号が送信されてきていれば、格納部(II)205dに格納された中位動作ルーチンに起動信号を送信する(M7)。そして、M8において次の中位動作コマンドが存在すればM4へ返り、次のコマンドを読み込んで対応する中位動作ルーチンを空いている格納部(この場合、格納部(I))に格納し、以下同様の処理を繰り返すことにより、上位動作プログラムが中位動作コマンド単位で実行されてゆく。なお、次の中位動作コマンドが存在しないか、終了コマンドである場合には処理を終了する(M9)。
【0031】
次に、中位動作ルーチン側での処理であるが、図12のフローチャートに示すように、上位動作プログラム側から起動信号を受けることにより、各部位のアクチュエータの駆動データを読み込み(B1、B2)、アクチュエータの各時間毎の変位データとして記述された駆動データを、各部位の算出・駆動制御部212へ時系列順に送信する(B3)。そして、算出・駆動制御部212側では、駆動量算出プログラム216a(図8)に基づいて、その変位データに基づいて各アクチュエータの駆動量を算出し、その算出結果に基づいてそれらアクチュエータを駆動する。
【0032】
駆動量の算出方法としては、一例として、以下のような原理に基づく方法を採用することができる。
まず、図2に示した骨格19において、各骨格単位の両端位置に例えば図13(W1)のようにインデックスを付与する。
・頭部20:H、f1。
・肩21:A1、H及びH、A2。
・背骨22:G及びH。ここで、Gは各骨格単位の変位からアクチュエータの駆動量を算出する際の基準位置として使用される。
・腰骨23:L1及びL2。GがL1とL2を結ぶ線分の中点に位置付けられている。
・上腕骨24、下腕骨25:A1、Ae1、Ah1及びA2、Ae2、Ah2。
・上肢骨26、下肢骨27:L1、Lk1、Lf1及びL2、Lk2、Lf2。
そして、変位データは、各骨格単位の両端の変位として算出される。
【0033】
例えば図13の、左側の脚部に対しては、図14(a)に模式的に示すように、点Gの位置が不変で、ある時刻T1におけるL1、Lk1の位置が次の時刻T2におけるL1’、Lk1’に移った場合、線分GL1及び線分L1Lk1に回転移動を施し、(b)に示すように、線分GL1を線分GL1’に重ね合わせる。そして、回転移動後の各点の空間座標から、時刻T1の線分L1Lk1と、時刻T2の線分L1’Lk1’とのなす角度θを算出することにより、両骨格単位(すなわち、上腕部26及び下脚部27)の間に配置されたアクチュエータの各軸の回転角度を求めることができる。このような骨格単位の回転移動と第二骨格単位の回転角度を求める処理を、骨格の末端へ向かう方向に順次施してゆけば、各関節機構に含まれるアクチュエータの駆動量が順次算出されることとなる。なお、以上の説明では、アクチュエータはモータで構成されており、第一及び第二の骨格単位同士はそのモータ軸の回転により、相対的な回転運動のみを行うものとしたが、ピストンロッド等をアクチュエータとした場合は、そのピストンの伸縮により骨格単位間で相対的な並進運動が行われる場合もある。そのような場合は、第二骨格単位の回転角度の他、並進移動距離も算出するようにする。
【0034】
このようにしてアクチュエータの駆動量が算出され、その中位動作ルーチンの駆動データに基づくアクチュエータの一連の駆動が終了すると、駆動量算出プログラム216aからは下位側処理完了信号が中位動作ルーチン側へ送信される。中位動作ルーチン側では、図12のB4でこれを受け、中位側処理完了信号を上位動作プログラムへ送信する(B5)。なお、アクチュエータの駆動量そのものを駆動データとして送信する場合には、算出・駆動制御部側での上記算出処理は不要となる。
【0035】
図15は、上述の流れに基づくロボット201の上位動作の具体的な実行例を示している。すなわち、「4歩歩く」という上位動作は、図16及び図17に示すように、「右脚部半歩」(定義名「WALK2」)、「左脚部1歩」(定義名「WALK3」)、「右脚部1歩」(定義名「WALK4」)、「左脚部半歩」(定義名「WALK5」)の4つの基本動作を含み、その上位動作プログラムは、各基本動作の中位動作コマンド(それぞれ対応する上記定義名を含む)を用いた動作命令文を用いて組まれることとなる。そして、例えば最初の「右脚部半歩」の基本動作を構成する部位動作は、右脚部及び左腕部の各部位に対するそれぞれ「半歩踏出し」及び「前降り」であり、対応する部位動作モジュールに含まれる関連アクチュエータの駆動データを時系列順に算出・駆動制御部212へ送信する(送信制御は前述のシステムプログラムが行う)。算出・駆動制御部212では送信されてきた駆動データに基づいて駆動量を算出し、対応するアクチュエータを駆動して、次の中位動作コマンド内容である「左脚部1歩」の実行へ移る。
【0036】
以下、具体的なプログラム例を参照してさらに詳しく説明する。図18は「右を向いて4歩歩き、礼をした後、回れ右して1歩半踏み出し、空手チョップのポーズをとる」という上位動作を行わせるためのプログラム例である。プログラムは、前記した通り、動作命令ルーチンと定義ルーチンとから成り立っている。
【0037】
本実施例では、動作命令ルーチンは、1又は複数の動作命令文を実行順に配列したものであり、ある動作命令文において、それが定義済基本動作の中位動作ルーチンであることを示すコマンドは「motion」コマンドであり、
motion <do:=”定義名”>
により、該定義名で示された中位動作ルーチンの実行を命令する中位動作コマンドが規定される。そして、このような中位動作コマンドによる動作命令文が実行順に配列される(なお、各文には行番号を付与していないが、行番号を付与して実行順を指定してもよい)。なお、各中位動作コマンド内の定義名が、どのような基本動作の定義名であるかについて、各文の末尾に括弧書きにて示している。
【0038】
ここで、中位動作ルーチンのうち、組合わせ型中位動作ルーチンあるいは標準変更型中位動作ルーチンについては対応する形式の定義名を採用することにより、本実施例においては、定義名の先頭に特定の文字情報、例えば「@」を付与することにより、他の形式の中位動作ルーチンと区別するようにしている。そして、このような定義名の中位動作ルーチンについては、その中位動作ルーチンの内容を規定するための定義ルーチンがプログラム中に書き込まれる(書き込まれていなければエラーと判断するようにしておく)。なお、基本動作の定義名は、所定の表示形式(本実施例では、コーテーション(””)で定義名を囲む形式)にて、それが基本動作の定義名であることを識別するようにしている。
【0039】
本実施例では、「右脚部を半歩前に出しながら空手チョップする」という基本動作(定義名”@KARATE”)が、「右脚部半歩前」という単純歩行の基本動作(定義名”WALK2”)を標準動作とする標準変更型中位動作ルーチンとして組まれている。図19は、その定義ルーチンの一例を示している。まず、定義ルーチンの先頭にある
「joint motion to @KARATE」
は、中位動作ルーチンの種別と定義名を規定するための文であり、「jointmotion to」は標準変更型中位動作ルーチン(組合わせ型中位動作ルーチンの場合も同じ)であることを示している。次いで、2行目の
「base <do:=”WALK2”>」
は、”WALK2”の定義名を有する中位動作ルーチンを標準動作ルーチンとして選択することを命令する文である。
【0040】
次いで、3行目の
item RIGHTARM <do:=CHOP>
は、ロボットの右腕部に空手チョップを行わせる部位動作を指示するための動作命令文である。「item ○○○」は部位特定情報であり、「部位として○○○を指定せよ」との意味をもつ。そして、「item RIGHTARM」により、空手チョップを行う右腕部が動作部位として指定される。また、「<do:=CHOP>」は動作特定情報であり、「モジュール名「CHOP」で指定される部位動作を行え」との意味である。なお、部位動作のモジュール名は、本実施例では、コーテーションを付与しないことで、中位動作ルーチンの定義名と区別できるようにしている。なお、最終行の「END」は、定義ルーチンの終了を示す。
【0041】
さて、このような定義ルーチンを含んだ上位動作プログラムを実行するときのシステムプログラムの処理の流れは、以下の通りとなる。まず、図18のプログラムを図5の記憶装置207の記憶部300から読み出して、図7のRAM205の格納部205aにロードする。プログラムは、行(すなわち中位動作コマンド)の単位で読み出され、これが通常の中位動作コマンド(定義名の先頭に「@」が付与されていないもの)である場合には、対応する中位動作ルーチンを図5の中位動作ルーチン記憶部302から読み出す。そして、これに含まれるモジュール名を参照して、対応する部位動作モジュールを図6の部位動作モジュール記憶部304から読み出し、RAM205の中位動作ルーチン格納部(I)205cにロードする。ロードされた中位動作ルーチンは、これに含まれる各部位動作モジュールのアクチュエータの駆動データが、対応する部位の算出・駆動制御部212(図1)へ送信され、各部位のアクチュエータを駆動させて基本動作が実行される。なお、この実行処理間に、同様の処理が次のプログラム行について実行され、その中位動作ルーチンが中位動作ルーチン格納部(II)205d(図7)にロードされる。
【0042】
ここで、中位動作コマンドが、標準変更型中位動作ルーチンを指定するもの(すなわち、定義名の先頭に「@」が付与されているもの)であった場合には、対応する定義ルーチンを読み込み、以下の展開処理に移る。まず、「base <do:=”WALK2”>」では、「base」コマンドの認識により、これに続く定義名(この場合”WALK2”)に対応する中位動作ルーチンを標準動作ルーチンとして読み出し、これを図7の中位動作ルーチン展開メモリ領域205gに格納する。次いで、item RIGHTARM <do:=CHOP>では、その部位特定情報(item RIGHTARM)を認識することにより、標準動作ルーチン中にこれと同じ部位の動作が存在するかどうか確認する。もし存在していれば、動作特定情報(<do:=CHOP>)により特定される部位動作モジュールを、展開メモリ領域205g内に格納されている標準動作ルーチン中の対応する部位のモジュールと置き換える。この場合、”WALK2”は、「右脚部半歩」の歩行動作であり、右腕の振りの動作が部位動作として含まれているから、これが空手チョップの右腕動作と置き換えられるわけである。
【0043】
なお、上記定義ルーチンの例には現われていないが、図20に示す動作命令文を用いいることにより、次のような処理が行われるようになっている。まず、特定の定義名として「FAULT」(すなわち、<do:=FAULT>)を記述しておくと、展開メモリ領域205g内の標準動作ルーチンからは、対応する部位のモジュールが削除される処理がなされる(すなわち、その部位の動作が禁止される)。また、標準動作ルーチン内に存在しない部位の動作を指定した場合は、対応する部位動作モジュールが標準動作ルーチンに追加される。図に示した動作命令文では、
item RIGHTWRIST <do:=turn>
となっているが、これは右手首部(RIGHTWRIST)をねじる(turn)部位動作を示すものである。
【0044】
また、部位動作の置換えないし追加を指定する動作命令文では、部位動作モジュールのモジュール名による動作指定の他、中位動作ルーチンを援用した動作指定も可能となっている。この場合、定義名により中位動作ルーチンを指定し、部位名により部位を指定する。これにより、その中位動作ルーチンの、指定された部位のモジュールが、展開メモリ領域205g内の標準動作ルーチンに対し置き換えないし追加されることとなる。図に示した動作命令文では、
item RIGHTARM <do:=”WALK3”>
となっているが、これは「左脚部一歩前」という基本動作の、右腕の振り動作のみを組み込むことを示すものである。
【0045】
このようにして、定義ルーチン内の動作命令文の実行が全て終了すると、展開メモリ領域205g内には、モジュールの入替え、追加及び削除処理が終了した状態の標準動作ルーチン、すなわち展開済の標準変更型中位動作ルーチンが格納された形となっている。なお、モジュールの入替え等の展開処理は、モジュール名のみを用いて行えば、図6の記憶部304からその都度モジュールを読み出す必要がなくなるので高速処理が可能となる。この場合は、展開処理が終了後に、展開メモリ領域205g内のモジュール名を参照して、対応するモジュールを記憶部304から読み出し、これを中位動作ルーチン格納部205cあるいは205dに格納するようにする。
【0046】
ところで、図18のプログラムが示す上位動作では、右を向いた後、4歩歩く形となっているが、この4歩歩くルーチン部分を、以下に説明する重ね合わせ型中位動作ルーチンとして統合することも可能である。その例を図21に示している。このプログラムと図18のプログラムとの違いは、図18の「4歩歩く」動作を記述する部分に相当する2〜5行の動作命令文群が、1つの命令文
motion <do:=”@@××××1”>
で置き換えられており、さらにその定義名”@@××××1”に対応する定義ルーチンが追加されている点にある。すなわち、「4歩歩く」という動作を、時系列的に重なりを生じない4つの歩行動作を重ね合わせた重ね合わせ型中位動作ルーチン(定義名”@@××××1”)として組まれている。なお、本実施例では、定義名の先頭に特定の文字情報、例えば「@@」を付与することにより、重ね合わせ型のルーチンを他の形式の中位動作ルーチンと区別するようにしている。
【0047】
図22は、その定義ルーチンの一例を示している。まず、定義ルーチンの先頭にある
「pileup motion to @@××××1」
は、中位動作ルーチンの種別と定義名を規定するための文であり、「pileup motion to」は重ね合わせ型中位動作ルーチンであることを示している。以降は、重ね合わせを行いたい基本動作の命令文を実行順に配列し、最終行に「end」を付与することにより、定義ルーチンを閉じる。なお、本実施例では、特定の基本動作列を繰返し実行させるためのコマンドが用意されている。本実施例では、「repeat while ○」‥‥「end」がこれに相当し、これらの間に挟まれた動作列を「○」回繰り返すことを意味する。図22では、「左脚部1歩」と「右脚部1歩」とを交互に行う動作を2回繰り返すことにより、都合4歩連続歩行する内容を記述するプログラムとなっている。
【0048】
次に、組合わせ型中位動作ルーチンのプログラム例と、その処理の流れについて説明する。組合わせ型中位動作ルーチンは、組み合わされるべき中位動作ルーチン及び/又は部位動作モジュールに係る基本動作及び/又は部位動作が、時系列的に少なくとも部分的な重なりを生じた状態で実行される上位の中位動作をいう。一例を図23を用いて説明する。ここでは、ロボットのジャンケン動作を例にとる。
【0049】
例えば、「ジャンケンポン」と発声しながら、パーを出すという動作を考えてみる。これは次のような部位動作に分解して考えることができる。まず、(1)のように、右手を「グー」の状態にして右腕を振り上げ、その振上げの途中で「ジャン」と発音する。なお、発音に合わせて口を短時間開いて閉じる動作(以下、口パクパク動作という)を1回行う。次いで、(2)では、振り上げた右腕を静止させて「ケン」と発音する。(3)では、その右腕を振り下ろしながら、右手は途中まで「グー」の状態を維持し、さらに(4)で、右手を「パー」状態としながら「ポン」と発音しつつ、右腕の振下ろしを完了させる。なお、この例では(5)で、腕の振下ろし完了後に、ロボットが口を開いて舌をペロリと出す動作が付け加えてある。
【0050】
上記動作においては、右腕、右手、口、舌及び音声の5つの部位が、しかるべきタイミングで連係動作を行う形となっている。その動作タイミングの例が図24である。図中の矢印は動作継続期間を表す。この例では、右腕の振上げ、静止、振下ろしをそれぞれ1秒で実行するようになっており、デフォルトで口は閉、右手はグーとなっている。また、右腕の振上げ動作は、大げさなロボットの身振りを示すために、腰の前後移動や肩の上下動あるいは頭の動き等の部位動作を伴う基本動作に組み込まれており、後述する駆動データ作成装置によりデータ作成された例えば10コマ(コマ送り速度:0.1秒/コマ)の教示動作である。なお、その中位動作ルーチンの定義名は”RLIFTUP”である。他方、右腕の振下ろしも同様に基本動作に組み込まれており、その中位動作ルーチンの定義名は”RSHAKEDN”である。そして、右腕振上げサイクルの中間にて「ジャン」の発声を、右腕静止サイクルの中間にて「ケン」の発声をそれぞれ行い、右腕振下ろし時には、その7コマ目から右手を「パー」に移行させ、同時に「ポン」の発声を行う。そして、右腕の振下ろしが完了すると同時に舌をペロリと出す。
【0051】
図25は、上記のような動作を規定する組合わせ型中位動作ルーチンの定義ルーチンの一例である。まず、定義ルーチンの先頭にあるのは、標準変更型中位動作ルーチンと同様の「joint motion to @JANKEN」である。以降の(a)〜(l)は、組み合せるべき部位動作あるいは基本動作を指定する動作命令文群であり、それぞれ、図24のタイミングチャートの(a)〜(l)の各動作を命令するものである。このうち(a)〜(e)は、図23の(1)の動作過程に、(f)、(g)は(2)の動作過程に、(h)は(3)の動作過程に、(i)〜(k)は4の動作過程に、(l)は(5)の動作過程にそれぞれ対応している。
【0052】
組合わせ型中位動作ルーチンにおいては、例えばその中位動作ルーチンの実行開始時刻が時刻原点として設定され、後述のコマンドにより特に実行開始タイミング指定がなされない限り、その時刻原点をデフォルト開始時刻として、各部位動作あるいは組み込まれた基本動作が一斉同時にスタートする(なお、時刻計測は、図1のタイマー190が行う)。すなわち、(a)〜(c)は、開始タイミングの指定がないので、ルーチンの実行開始とともに、右腕の振上げ動作((a))、右手の「グー」動作((b))、及び口の閉動作が同時に実行スタートとなる。なお、「RIGHTFINGER」は右手(の指)、「MOUTH」は口の各部位を表す部位指定情報であり、<do:=31>は「グー」を作るための指曲げを、<do:=close>は口閉じをそれぞれ指定する動作指定情報である。
【0053】
次の(d)は、「ジャン」の発声を指示する動作命令文である。本実施例では、声に対応する部位名すなわち「VOICE」を指定し、それに続く<do:=”◇◇◇◇”>の◇◇◇◇に、発声内容を直接文字(あるいは文字コード)にて書き込むことにより発声内容が指定される。そして、それに続く<from:=○○○>は、動作条件規定コマンドの一つであり、動作の開始タイミングを指定する動作開始タイミング規定コマンドである。<from:=timer △△>は、「時刻原点からタイマーの計測単位(本実施例では0.1秒)の△△倍だけ経過した後に動作を開始せよ」との意味である。すなわち、(d)全体の意味は、「時刻原点から(すなわち、右腕の振上げ開始から)0.5秒経過後に、「ジャン」と発声せよ」となる。
【0054】
また、(e)では、部位として口が選択され、<do:=parrot> により口パクパクの動作が指定される。その動作開始タイミングは、<from:=timer 5>となっているから、上記「ジャン」の発声タイミングと同じである。さらに、<till:(条件名)>は、動作の終了条件を規定するコマンドであり、例えば <till:=repeat △> は、その部位動作が△回繰り返されれば動作終了させることを意味する。例えば、<till:=repeat 1> により、口パクパクが1回のみ行われることになる。なお、<till:=repeat △>が省略された場合には、自動的にデフォルト繰返し回数(例えば1回)が指定されるようにしてもよい。こうして、上記(a)〜(e)の動作命令文により、図24のタイミングチャートの(a)〜(e)の動作が組合せて実行され、図23の(1)の動作が実現されることがわかる。
【0055】
次に、腕の振下ろし時の動作について説明する。まず、右腕の振下ろしが開始されるのは時刻原点から2秒経過後であり、対応する(h)の動作命令文において、<from:=timer 20>によりその開始タイミングが与えられる。図24に示す通り、腕の振下ろし開始から終了までは時間で表せば1秒であり、コマ送り数で表せば10コマである。そして、その7コマ目(時刻原点からの時間でいえば2.7秒目)において、右手の「グー」動作、「グー」の発声動作、及び口パクパク動作が一斉に開始する。
【0056】
これに対応するのは、図25の(i)〜(k)の3つの動作命令文である。ここでは、動作開始タイミングを右腕の動作のコマ送り数にて規定している。各動作命令文に書き込まれている動作開始タイミング規定コマンドの、<from:=item(部位名)[△]>の形式は、「item(部位名)にて指定された部位動作の△コマ目に動作を開始せよ」という内容を指示するものである。従って、<from:=item RIGHTARM[7]>により、右腕の振下ろし開始から7コマ目に各動作の開始時刻が設定される。
【0057】
最後は舌を出す動作であるが、図25にて対応する動作命令文は(l)である。
上述のような駆動データは駆動データ作成装置1により作成することができる。item TONGUSは舌を部位名として指定するものであり、<do:=out>は「出す」動作を指定するものである。そして、その動作開始タイミング規定コマンド<from:=item RIGHTARM[back]>は、前記した<from:=item RIGHTARM[7]>と同様に、右腕の部位動作をタイミング設定の基準部位として指定しているが、[back]は、「その部位(右腕)の動作が完了するとともに動作開始せよ」を意味している。従って、右腕の振下ろしが完了するとともに、ロボットは舌を出す動作を行うこととなる。
【0058】
上記のようなロボットの駆動データは、主要部分が図9の駆動データ作成装置1により教示作成され、各部位動作モジュールもそれに基づく教示動作ルーチン部分として作成される。以下、駆動データ作成装置1の作動の流れをフローチャートを用いて説明する。図26は処理全体の大まかな流れを示すものであって、まずS1100の入力処理では、モデル画像に対する骨格画像の重ね合わせ処理を行い、駆動データを作成(換言すれば、ロボット201への動作の教示)する。この処理は、基本動作の単位で行われる。ここで、入力に先立ってその基本動作を人間のモデルに行わせ、そのモデル画像38(図16、図17)を所定のコマ時間間隔でビデオカメラにより動画撮影しておく。そして、図9のVTR15により再生されたその動画が、画像取込制御部6を介して動画データとして取り込まれ、動画データ記憶装置11に記憶されている。ここで、動画データ記憶装置11に記憶されている動画データは、図35に示すように、モデルが比較的複雑な動きを行っている場合には、そのコマ80の間隔が密になるように、逆に動きが比較的単調な場合にはコマ80の間隔が粗となるように、その動画のコマが、動画データ取り込み時あるいは取り込み後のデータ編集時に適宜間引かれる。
【0059】
図27は、S1100の入力処理の詳細を示すフローチャートであって、まず駆動データの演算が不要な部位の設定を行なった後(S1101)、図13に示すようなウィンドウW1及びW2をそれぞれ表示する(S1102、S1103)。このうち、一方のウィンドウW1にはモデル画像38が表示され、他方のウィンドウW2には骨格画像39が表示される。なお、骨格画像39は、図2に示すロボット骨格19を簡略化した線図として表示される。
【0060】
図27に戻って、S1104において、ビデオカメラにモデルを正対させて撮影したモデル画像38(図13)に、骨格画像39の寸法を合わせ込む処理を行う。その処理の詳細を図28及び図29に示す。すなわち、図13において、正対ポーズのモデル画像38をウィンドウW1に、骨格画像39をウィンドウW2に表示し(C101〜103)、各骨格単位の長さをモデル画像の対応部位に合わせ込む(C104)。ここで骨格画像39の各骨格単位に対しては、予め標準寸法が設定されている。その合わせ込みの処理であるが、図29に示すように、まず基準点Gの位置を合わせ込み(C201)、続いてその基準点Gから次第に遠ざかるように、各骨格単位の端点を順次合わせ込んでゆく。
【0061】
ここで、モデル画像38に対し、骨格画像39の端点を合わせ込むための入力方法であるが、図13に示すように、ウィンドウW2上には各端点が目印点として表示され、また、ウィンドウW1上にはマウス12(図9)の移動に伴い画面上を移動するポインタ40が表示される。目印点の合わせ込みは、G点から始まって次第に骨格の末端へ向かう方向に、予め設定された順序で行われるようになっており、ウィンドウW2に表示された骨格画像39上において、次に合わせ込みを行うべき端点が点滅してこれを知らせるようになっている。そして、ウィンドウW1上のモデル画像38上の指定するべき位置にポインタ40を合わせ、マウス12のクリックボタンを操作することにより、ウィンドウW2上で点滅表示された端点の、モデル画像38上での重ね位置が確定され、それとすでに確定されている端点の位置に基づいて、各骨格単位の長さが順次計算されてゆく(C202〜C209)。また、長さが定められた骨格単位は、ウィンドウW1のモデル画像38に対し順次重ね描画されてゆく。
【0062】
ここで、正対ポーズにおけるモデル画像38はほぼ左右対称であることから、上腕骨24と下腕骨25、ならびに上肢骨26と下肢骨27(図2)の各端点は、左右いずれか一方のものが位置決めされれば、他方のものも自動的に位置決めされるように処理が行われる。また、頭部20の寸法(H及びf1間の距離、図13)は、頭部20以外の骨格単位の標準寸法と算出された寸法とを比較し、その寸法比率と頭部20の標準寸法とに基づいて定められる(C210)。なお、ウィンドウW1に予め設定された標準寸法の骨格画像を、モデル画像38とともに表示し、そのウィンドウW1上で骨格画像の各骨格単位の端点をモデル画像38に合わせ込む処理を行ってもよい。この場合、ウィンドウW2は省略することも可能である。次に、図28に戻り、算出された骨格単位の寸法に合わせて、正対ポーズの骨格画像39をウィンドウW1に再描画した後(C105)、図27のS1105に進む。ここで、正対ポーズに対応する骨格画像39に対しては、各アクチュエータの駆動位置が基準データとして予め設定されており、その設定内容がプログラム記憶装置9内に作成された基準データ記憶部に格納されている。
【0063】
続いて、S1105〜S1109において、骨格画像39の位置合わせを行う動画のコマ番号を指定することにより、そのコマのモデル画像のデータが取り込まれ、骨格画像の位置合わせ処理(骨格画像入力)に移る。図30及び図31は、その位置合わせ処理(S1109)の内容の詳細を示すフローチャートである。すなわち、図30のC301〜C305に示すように、取り込んだコマのモデル画像38に対し、G点から始めて次第に遠ざかる方向に、骨格画像39の各端点の位置をモデル画像38に対し合わせ込んでゆく。その入力例を図36に示しているが、手順は前述の寸法合わせ処理の場合とほぼ同様であり、ウィンドウW2上で点滅表示される端点のウィンドウW1での合わせ位置をマウス12で指定しながら、モデル画像38に対する位置合わせ入力を行ってゆく。この場合も、ウィンドウW1上のモデル画像38に対し、位置合わせの終わった部分から順に骨格画像39が重ね描画されてゆく。ここで、左右の脚部及び腕部については、前述の寸法合わせ処理とは異なり、個々に入力処理が行われることとなる。なお、S1101(図27)において設定された教示不要部位については、位置合わせ入力がスキップされる。
【0064】
図31は、両脚部に相当する部位の位置合わせ処理の流れを一例として示しており、右脚部及び左脚部のそれぞれについて、上肢骨26の上端点L1(L2)の位置合わせを行った後、下肢骨27の下端点Lf1(Lf2)の位置合わせが行われるようになっている(C401〜C403)。ここで、図10に示す拘束条件により、L1(L2)及びLf1(Lf2)が指定されれば、膝に相当するLk1(Lk2)の位置は自動的に定まるので入力は行われない。このようにして、各端点の画面上の座標が算出され、その画面座標と、予め記憶されている各骨格単位の標準体寸法データに基づいて実際の空間における端点の3次元座標が算出される。
【0065】
次に、図27に戻ってS1110に進み、上記位置合わせ処理では駆動データの生成が困難ないし不可能な骨格単位ないし部位に対し、それらの空間位置の補助入力処理を、マウス12ないしキーボード13を使用することにより行う。この入力処理は、上記位置合わせ処理とは別のウィンドウを開き、そのウィンドウ上に該当する骨格単位ないし部位の画像を表示して、位置設定のために予め用意された各種処理コマンド(例えば骨格単位の平行移動、あるいは回転など)を、マウス12あるいはキーボード13からの入力により選択・実行しながら、骨格単位や部位毎に個別に入力を行ってゆく。
【0066】
以上で、1つのコマに対する入力処理が終了するが、次のコマの処理に移る場合はコマ番号を更新し、直前のコマの骨格画像39及びモデル画像38を描画しなおすとともに(S1111〜S1113)、S1107に返って処理を繰り返す。一方、コマへの入力作業を終了する場合は(S1114〜S1116)、ウィンドウW1とW2を閉じて図26のS1200に進む。
【0067】
ここで、上述のようにして得られた各端点の変位データが、そのまま駆動データとして使用される場合にはS1300に進むが、その変位データから各アクチュエータの駆動量の算出まで行う場合には、S1200の処理、すなわち上記入力により得られた、各コマ毎の骨格単位の端点の空間位置座標に基づいて、骨格単位を駆動するアクチュエータの駆動量を算出する処理が挿入される。すなわち、図32に示すように、隣り合う2枚のコマの番号を指定して、その各骨格単位の端点の空間位置座標を読み込み、その空間位置座標に基づいて各骨格単位間に設けられたアクチュエータの駆動量が算出される(C501〜C503)。その算出処理の内容は、前述の駆動量算出プログラム216aにより各アクチュエータの駆動量を算出する処理とほぼ同様であるので詳しい説明は省略する。なお、最初のコマの骨格画像が正対ポーズのものでない場合は、予め記憶されているアクチュエータの基準位置をもとに、その最初のコマに対する各アクチュエータの駆動位置を算出しておけばよい。
【0068】
次に、図26のS1300に進み、入力が終わった各コマに対しロボット動作の実時間軸上の時間を設定する。その処理の詳細を図33のフローチャートに示す。すなわち、時間設定用のウィンドウを開いて骨格画像データをコマ番号順に読み出し、ウィンドウ内に骨格画像を順次表示しながら時間入力を行ってゆく(C601〜C605)。そして、C6051において、直前のコマとの時間間隔から各アクチュエータの駆動速度を算出し、C606において、その時間間隔で全てのアクチュエータが駆動完了できるかどうかを判定する。完了できるようであれば、C607でその入力された時間及びアクチュエータ駆動速度を格納し、C608でコマ番号をインクリメントしてC603に戻り、処理を繰り返す。また、駆動完了できないようであればC605に戻って時間入力をやり直す。そして、時間の入力処理が終わるとC612でウィンドウを閉じて図26のS1400に進む。
【0069】
S1400では、最終的に得られた駆動データを駆動データ記憶装置10に記憶・保存する。その処理の流れは図34に示す通りであって、まず、C701で中位動作コマンド名を入力する。そして、駆動データはその部位別に分割され(C702)、下位動作データのサブファイル、すなわち部位動作モジュールが形成される(C702)。そして、それら部位動作モジュールが、入力された中位動作コマンド名で統合されて、中位動作ルーチンとして記憶装置10に保存される(C703)。なお、各部位動作モジュールは、互いに異なる中位動作ルーチン間での交換や差替えが可能とされている。
【0070】
以上のようにして各部位の部位動作モジュールは、駆動データ作成装置1により教示作成されるが、モデル画像に位置合わせされた骨格画像からは駆動データの演算が困難あるいは不可能なロボット部位、すなわち非教示部位が存在する。一例としては、手首、指、眼、口、舌等である。この場合は、上記動作プログラムにおいて、そのような非教示部位の位置決め命令ルーチン部分を、例えば定義ルーチンの一角をなすものとして組み込むことができる。本実施例では、
set (部位名) <設定因子:=設定条件値>
という形式にて位置決め命令ルーチン部分を記述するようになっている。
【0071】
具体的には、対応する非教示部位の移動開始位置、移動終了位置及び移動速度を設定因子として選び、数値入力するかあるいは予め用意された候補値から選択する等により、所期の設定条件値を設定する。これを受けて図5の記憶部308に記憶されている非教示部位駆動データ生成プログラムに基づき、図1のCPU204は、対応する部位のアクチュエータの駆動データを算出する。例えば、アクチュエータがサーボモータやステッピングモータである場合には、移動開始位置及び移動終了位置の値を受けてモータの回転開始位置と回転終了位置を算出し、移動速度の値を受けてモータの回転数を算出する。以下、本実施例のロボットにて使用れる非教示部位とその動作種別、及び位置決め命令ルーチン部分の形式等について、いくつかの例を示す。
【0072】
部位名:右眼(左眼)(部位指定情報:RIGHTEYE(LEFTEYE))。アクチュエータ:モータにより左右に回転駆動される。
書式:RIGHTEYE<do:=実行コマンド><till:=条件式>
LEFTEYE<do:=実行コマンド><till:=条件式>
動作終了条件句:実行コマンドがgoggleの時、眼の往復回数指示が可能。(例:RIGHTEYE<do:=goggle><till:=repeat△>)
位置決め命令:set EYE<speed:=(速度指定情報)><right:=(右眼差し位置座標)><left:=(左眼差し位置座標)>(部位名は、例えば左右眼共通であるが、左右別々に設定するようにしてもよい)
speed :眼の移動スピードを指示
right :右眼差し位置を指示
left :左眼差し位置を指示
・「右眼差し」は位置決め命令のrightで設定される位置まで移動
・「左眼差し」は位置決め命令leftで設定される位置まで移動
・「キョロキョロ」は位置決め命令のrightとleftで設定される座標間を、往復回数指定(<till:=repeat n>)。往復回数が指定されていない時は一往復のみとなる。そして最終の眼の位置は左設定位置で停止する。
なお眼は最初右側へ動かす。
【0073】
部位名:右瞼(左瞼)(部位指定情報:RIGHTEYELID(LEFTEYELID)
アクチュエータ:モータにより上下に駆動される。
書式:RIGHTEYELID<do:=実行コマンド><till:=条件式>
LEFTEYELID<do:=実行コマンド><till:=条件式>
動作終了条件句 実行コマンドがblinkの時、瞬き回数指示が可能。(例:RIGHTEYELID<do:=blink><till:=repeat n>)
位置決め命令 set EYELID<open:=(時間設定情報)>(左右瞼共通)
open :瞼を開けている時間を指定
【0074】
部位名:口(部位指定情報:MOUTH)
アクチュエータ:モータにより開閉駆動される。
書式:MOUTH<do:=実行コマンド><till:=条件式>
動作終了条件句 実行コマンドがparrotの時、回数指示が可能。(例:MOUTH<do:=parrot><till:=repeat n>)
位置決め命令 set MOUTH<open:=(時間設定情報)><close:=(時間設定情報)>
open :口を開けている時間を指示
close :口を閉じている時間を指示
【0075】
部位名:舌(部位指定情報:TONGUS)
アクチュエータ:モータにより出入れ駆動される。
書式:TONGUS<do:=実行コマンド><till:=条件式>
動作終了条件句 実行コマンドがlickの時、回数指示が可能。
(例:TONGUS<do:=lick><till:=repeat n>)位置決め命令 set TONGUS<out:=(時間設定情報)><in:=(時間設定情報)>
out :舌を出している時間を指示
in :舌を入れている時間を指示
【0076】
部位名:手(部位指定情報:RIGHTFINGER(LEFTFINGER))
アクチュエータ:シリンダにより、各指が独立に曲げ伸ばし駆動される。
実行コマンド 指パターン指示(0〜32のいずれかを選択することにより、各種指曲げ状態を設定する。例えば、0:パー/1:親指曲/2:人差指曲/4:中指曲/8:薬指曲/16:小指曲/31:グー)
位置決め命令 なし
【図面の簡単な説明】
【図1】本発明のロボットシステムの全体構成を示すブロック図。
【図2】ロボット骨格の模式図。
【図3】ロボット頭部に設けられた口及び舌の動作説明図。
【図4】同じく眼及び瞼の動作説明図。
【図5】ロボット制御部の記憶装置の内容を示す説明図。
【図6】その部位動作モジュール記憶部の内容を示す説明図。
【図7】ロボット制御部のRAMの内容を示す説明図。
【図8】算出・駆動制御部の構成を示すブロック図。
【図9】駆動データ作成装置の一構成例を示すブロック図。
【図10】 脚部骨格に対する拘束条件の説明図。
【図11】上位動作プログラムによる処理の流れを示すフローチャート。
【図12】中位動作ルーチンの処理の流れを示すフローチャート。
【図13】正対モデルに対する骨格画像の寸法合わせ処理の説明図。
【図14】アクチュエータの駆動量を算出する方法の説明図。
【図15】ロボットの動作の流れをプログラム階層と対応付けて説明する図。
【図16】歩行に関する基本動作の例を示す説明図。
【図17】図16に続く説明図。
【図18】上位動作プログラムの記述例を示す説明図。
【図19】その標準変更型中位動作ルーチンの定義ルーチンの一例を示す説明図。
【図20】部位動作モジュールの削除、追加を行う場合の動作命令文の記述例を示す説明図。
【図21】重ね合わせ型中位動作ルーチンを用いた上位動作プログラムの記述例を示す説明図。
【図22】その重ね合わせ型中位動作ルーチンの定義ルーチンの記述例を示す説明図。
【図23】組合わせ型中位動作ルーチンの適用に好適なロボット動作例を示す説明図。
【図24】図23の動作のタイミングチャートの一例を示す図。
【図25】それに使用する組合わせ型中位動作ルーチンの定義ルーチンの記述例を示す説明図。
【図26】駆動データ作成装置の全体の処理の流れを示すフローチャート。
【図27】その入力処理のフローチャート。
【図28】その入力処理において、骨格単位長さを定める処理の流れを示すフローチャート。
【図29】各骨格単位の長さをモデル画像の対応部位に合わせ込む処理の流れを示すフローチャート。
【図30】同じく、各骨格単位の端点の位置合わせ処理の流れを示すフローチャート。
【図31】同じく、骨格の端点の座標を算出する処理の流れを示すフローチャート。
【図32】同じく、駆動データ算出の流れを示すフローチャート。
【図33】同じく、時間入力処理の流れを示すフローチャート。
【図34】同じく、駆動データ保存処理の流れを示すフローチャート。
【図35】コマの時間軸上における配列の一例を示す模式図。
【図36】骨格画像のモデル画像に対する位置合わせ処理の説明図
【符号の説明】
1 駆動データ作成装置
5 装置制御部(駆動データ演算手段)
200 ロボットシステム
201 ロボット
202 ロボット制御部
204 CPU(プログラム読出手段、プログラム展開手段、非教示部位駆動データ生成手段)
205 RAM
205a 上位動作プログラム格納部
205b 中位動作コマンド解析プログラム格納部
205c 中位動作ルーチン格納部(I)
205d 中位動作ルーチン格納部(II)
205g 中位動作ルーチン展開メモリ領域
207 記憶装置
212 算出・駆動制御部
213 アクチュエータ
300 上位動作プログラム記憶部
302 中位動作ルーチン記憶部
304 部位動作モジュール記憶部
306 中位動作コマンド解析プログラム記憶部
Claims (6)
- 上位のロボット動作をいくつかの基本動作の組み合わせとして把握し、前記基本動作に必要な各ロボット部位(以下、単に部位ともいう)の動作を規定する部位動作プログラムモジュール(以下、部位動作モジュールという)が形成され、その部位動作モジュールを複数組み合わせることにより前記基本動作を規定する中位動作ルーチンが形成され、その中位動作ルーチンの組み合わせにより前記上位のロボット動作を規定する上位動作プログラムが階層型プログラムとして記述されており、
前記中位動作ルーチンは中位動作コマンドと対応付け、前記上位動作プログラムはその中位動作コマンドの組み合わせにより前記上位のロボット動作を規定し、
前記中位動作ルーチンを記憶する中位動作ルーチン記憶部と、
前記中位動作コマンドの組み合わせである前記上位動作プログラムを記憶する上位動作プログラム記憶部と、
その上位動作プログラム記憶部に記憶された前記上位動作プログラムを、前記中位動作コマンドの単位で読み出すプログラム読出手段と、を備え、
そのプログラム読出手段によって読み出された中位動作コマンドに対応する前記中位動作ルーチンの組み合わせに基づいて、
前記部位動作モジュールは、前記ロボット部位に設けられたアクチュエータの駆動に関する駆動データを単位として形成され、前記アクチュエータをその駆動データによって駆動を制御するためのアクチュエータ動作制御部と、対応するロボット部位の動作開始タイミングを規定する動作開始タイミング規定コマンドを含んだ動作条件規定コマンドとで構成され、
前記アクチュエータ動作制御部は、その動作条件規定コマンドが規定する動作条件に従い、前記基本動作又は部位動作に係るアクチュエータの駆動を制御するとともに、
前記部位動作モジュールの前記動作条件規定コマンドに含まれる前記動作開始タイミング規定コマンドは、ロボット動作に対応するモデルの動作を経時的に記録した各コマの一連のモデル画像により規定される当該ロボット部位の動作を基準として用いたときの、当該ロボット部位の動作の開始時刻、終了時刻又は特定のコマ位置通過時刻のいずれかに基づいて前記動作開始タイミングを与えるものであることを特徴とするロボットシステム。 - 請求項1に記載された前記動作開始タイミング規定コマンドが前記中位動作ルーチンを構成する前記部位動作モジュールの前記動作条件規定コマンドの中に与えられていない場合に、対応する基本動作又は部位動作の動作開始タイミングは前記中位動作ルーチンの実行開始時刻に設定することを特徴とする請求項1に記載のロボットシステム。
- 前記動作開始タイミング規定コマンドは、予め定められた時刻原点からの経過時間に基づいて前記動作開始タイミングを与えるものである請求項1記載のロボットシステム。
- 前記複数のロボット部位のうちの少なくとも一部のものが、複数の骨格単位とそれら骨格単位の間に配置された前記アクチュエータとを有する骨格を備えるものとされ、
前記複数の部位動作モジュールのうち、少なくとも一部のものは、ロボット動作に対応するモデルの動作を経時的に記録した一連のモデル画像に基づいて、ロボット動作のコマ送り単位で作成された駆動データを、ロボットの部位別に編集する駆動データ作成装置により作成された教示動作ルーチン部分が組み込まれており、
その駆動データ作成装置は、
前記モデル画像と、複数の骨格単位からなる骨格画像とを表示する画像表示手段と、
その画像表示手段において前記骨格画像を、前記モデル画像に対して位置合わせする骨格位置決め手段と、
時間軸上において互いに前後するモデル画像に対しそれぞれ位置合わせされた前記骨格画像の変位に基づいて、前記駆動データを算出するデータ演算手段と、
を含んでいる請求項1ないし3のいずれかに記載のロボットシステム。 - 前記中位動作ルーチンに、前記駆動データ作成装置による教示動作ルーチン部分の作成がなされないロボット部位(以下、非教示部位と称する)の部位動作モジュールが含まれる場合に、その部位動作モジュールに対応する非教示部位の位置決め命令ルーチン部分が組み込まれており、
その位置決め命令ルーチン部分の内容に基づいて、対応する非教示部位のアクチュエータの駆動データを生成する非教示部位駆動データ生成手段が設けられている請求項4に記載のロボットシステム。 - 前記位置決め命令ルーチン部分は、対応する非教示部位の移動開始位置、移動終了位置及び移動速度の少なくともいずれかを指定する位置決め情報が含まれている請求項5記載のロボットシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25014098A JP4039595B2 (ja) | 1998-09-03 | 1998-09-03 | ロボットシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25014098A JP4039595B2 (ja) | 1998-09-03 | 1998-09-03 | ロボットシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000153478A JP2000153478A (ja) | 2000-06-06 |
| JP4039595B2 true JP4039595B2 (ja) | 2008-01-30 |
Family
ID=17203423
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25014098A Expired - Fee Related JP4039595B2 (ja) | 1998-09-03 | 1998-09-03 | ロボットシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4039595B2 (ja) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4670136B2 (ja) * | 2000-10-11 | 2011-04-13 | ソニー株式会社 | オーサリング・システム及びオーサリング方法、並びに記憶媒体 |
| JP2002144263A (ja) * | 2000-11-09 | 2002-05-21 | Nippon Telegr & Teleph Corp <Ntt> | ロボットの動作教示・再生装置及び方法並びにロボットの動作教示・再生プログラムを記録した記録媒体 |
| JP2002283259A (ja) | 2001-03-27 | 2002-10-03 | Sony Corp | ロボット装置のための動作教示装置及び動作教示方法、並びに記憶媒体 |
| KR101277275B1 (ko) * | 2009-12-09 | 2013-06-20 | 한국전자통신연구원 | 로봇 시스템의 행위 기반 태스크 구현 방법 |
| JP6486678B2 (ja) * | 2014-12-25 | 2019-03-20 | 株式会社キーエンス | 画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラム |
| WO2021153544A1 (ja) * | 2020-01-28 | 2021-08-05 | 株式会社オプトン | 制御プログラム生成装置、制御プログラム生成方法、プログラム |
| JP6787616B1 (ja) * | 2020-01-28 | 2020-11-18 | 株式会社オプトン | 制御プログラム生成装置、制御プログラム生成方法、プログラム |
| TWI859399B (zh) * | 2020-01-28 | 2024-10-21 | 日商歐普同股份有限公司 | 動作控制裝置、動作控制方法、程式 |
| CN115023671B (zh) * | 2020-01-28 | 2026-04-17 | 株式会社欧普同 | 控制程序生成装置、控制程序生成方法、程序 |
-
1998
- 1998-09-03 JP JP25014098A patent/JP4039595B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000153478A (ja) | 2000-06-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5990878A (en) | Sign language editing apparatus | |
| US5731821A (en) | Computer user interface for step-driven character animation | |
| US6144385A (en) | Step-driven character animation derived from animation data without footstep information | |
| US6088042A (en) | Interactive motion data animation system | |
| JP4039595B2 (ja) | ロボットシステム | |
| KR102438488B1 (ko) | 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법 | |
| AU700204B2 (en) | Installation and method for controlling a movable apparatus | |
| KR20170083091A (ko) | 통합된 사용자 환경 | |
| Shapiro et al. | Interactive motion correction and object manipulation | |
| JP3995348B2 (ja) | ロボットシステム | |
| JP6424050B2 (ja) | 多関節骨格モデル処理装置及びプログラム | |
| Morimoto et al. | Surgeon design interface for patient-specific concentric tube robots | |
| US20250229433A1 (en) | Systems and methods to control an entertainment figure | |
| Wachsmuth et al. | Lifelike gesture synthesis and timing for conversational agents | |
| Zeltzer | Representation of complex animated figures | |
| JP3668289B2 (ja) | ロボットの動作教示システム | |
| JP2000155606A (ja) | 動作制御システム | |
| JPH10302085A (ja) | Cgモデルの動作記録システム | |
| JP2998663B2 (ja) | アニメーション作成装置 | |
| JPH10340354A (ja) | 動作生成装置、動作制御方法、および、これを実行するためのプログラムを記憶した記憶媒体 | |
| JP3169727B2 (ja) | 手話生成装置 | |
| Kopp et al. | Planning and motion control in lifelike gesture: a refined approach | |
| JP7756525B2 (ja) | モーション作成装置、モーション作成方法及びモーション作成プログラム | |
| Magnenat-Thalmann et al. | Construction and Animation of a Synthetic Actress. | |
| Kalra et al. | 3d interactive free form deformations for facial expressions |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050823 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070305 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070309 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070426 |
|
| 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: 20071101 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071102 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |