JP2000153479A - ロボットシステム - Google Patents

ロボットシステム

Info

Publication number
JP2000153479A
JP2000153479A JP10250141A JP25014198A JP2000153479A JP 2000153479 A JP2000153479 A JP 2000153479A JP 10250141 A JP10250141 A JP 10250141A JP 25014198 A JP25014198 A JP 25014198A JP 2000153479 A JP2000153479 A JP 2000153479A
Authority
JP
Japan
Prior art keywords
routine
command
module
program
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10250141A
Other languages
English (en)
Other versions
JP3995348B2 (ja
Inventor
Yuichiro Ichioka
祐一朗 市岡
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.)
Ricoh Elemex Corp
Original Assignee
Ricoh Elemex 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 Ricoh Elemex Corp filed Critical Ricoh Elemex Corp
Priority to JP25014198A priority Critical patent/JP3995348B2/ja
Publication of JP2000153479A publication Critical patent/JP2000153479A/ja
Application granted granted Critical
Publication of JP3995348B2 publication Critical patent/JP3995348B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Control By Computers (AREA)

Abstract

(57)【要約】 【課題】 新たな基本動作の追加や、既存の基本動作の
部分的な変更に対応するための、中位動作ルーチンの新
規作成あるいは書換え等を簡単に行うことができるロボ
ットシステムを提供する。 【解決手段】 ロボットシステム200においては、中
位動作ルーチンを、ロボット部位毎の動作を規定するル
ーチン、すなわち部位動作モジュール(以下、部位動作
モジュールという)の寄せ集めとして構成する。また、
予め定められた標準的な基本動作(以下、標準動作とい
う)を規定する標準動作ルーチンを、部位動作モジュー
ル及び/又は部位動作モジュール特定情報を複数組み合
わせることにより用意しておく。そして、適当な標準動
作ルーチンを選択して、これに対し、特定の部位動作モ
ジュールの削除、入替え、及び新たな部位動作モジュー
ルの追加の少なくともいずれかを行うことにより中位動
作ルーチンを作成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はロボットシステムに
関する。
【0002】
【従来の技術】人間の動きを模写するロボット等、各種
多関節ロボットに所定の動作を行わせる場合、その動作
をプログラミングするために、従来はロボットを駆動す
る各アクチュエータの駆動量を、動作の時系列に従って
個別に設定する方法がとられている。この場合、あるロ
ボットの動作において、複数のロボット部位の動きが同
時にあるいは連係して起こる場合、それらロボット部位
毎にアクチュエータの駆動量を指定しなければならな
い。例えば、「歩く」という動作を例にとれば、これに
は両足の動きの他に、腕の振りや肩の上下といった動作
が付随しており、それら各部の動作のプログラムが個別
に組み立てられる。そして、「1歩前に進み出て礼を
し、そのまま下がってもとの場所に帰る」というよう
な、より複雑な上位動作をプログラミングする場合は、
その上位動作を、「1歩前に進み出る」、「礼をす
る」、「1歩下がる」という下位動作に分解してプログ
ラミング作業が行われる。
【0003】上記従来の方法は、ロボット部位毎に多数
のアクチュエータの駆動量やその作動順序をいちいち設
定しなければならないので、プログラミング作業に時間
がかかり、複雑な上位動作のプログラムを効率よく作成
するのに適しているとは言い難い。また、上位動作の内
容を変更したい場合には、各アクチュエータの駆動量レ
ベルでプログラムないしデータを書き換えなければなら
ず、その作業に時間がかかる。すなわち、ロボットの動
作内容の変更がそれほど容易でないため、ロボットの各
種動作への融通性に欠ける難点がある。
【0004】そこで、これを解決するために、特開平8
−314524号公報には、次のような階層型制御プロ
グラムを用いる制御方式が提案されている。この制御プ
ログラムにおいては、複数のロボット部位に設けられた
アクチュエータの駆動に関する駆動データを単位として
下位動作データを形成し、その下位動作データを複数統
合してロボットの基本動作を規定する中位動作ルーチン
を構築する。また、それら各中位動作ルーチンに中位動
作コマンドを対応させ、その中位動作コマンドの組み合
わせにより上位動作プログラムを規定する。そして、そ
の上位動作プログラムを前記中位動作コマンドの単位で
読み出しつつ、その読み出された各中位動作コマンドに
対応する中位動作ルーチンの組み合わせに基づいて、各
アクチュエータの駆動を制御する。
【0005】
【発明が解決しようとする課題】ところで、上記方式に
おいては、ロボットの基本動作を規定する中位動作プロ
グラムの種類を増やしたい場合、新たに追加したい基本
動作の中位動作プログラムを、その都度下位動作データ
の単位に遡って作成しなければならない。この中位動作
プログラムの作成作業は、直感的には把握しにくい下位
動作データレベルでしか行うことができないから、専門
的な知識とプログラミング作業への高度の熟練とを要
し、一般のユーザには甚だ扱いにくい内容となる。従っ
て、中位動作コマンドの使用により簡単なプログラミン
グが実現されている点についてはよいが、上記事情によ
り、専門家以外の者は予め用意された中位動作コマンド
(基本動作)の枠を一歩も超えることができず、融通性
に乏しい欠点がある。
【0006】また、別の例を挙げれば、ロボットの動作
を所望のものにより近付けるために、ある中位動作コマ
ンドが指定する基本動作において、特定の部位の動作の
みを別の動作に変更したい、あるいは該部位の動作を行
わせないようにしたい、さらには新たな部位動作を追加
したい、といった要望が生ずることがある。このような
要望に応ずるためには、当然のことながら対応する中位
動作ルーチンの書換えが必要となる。しかしながら、上
記公報の技術においては、上位動作プログラムの書換え
として許されているのは、中位動作コマンド単位の組替
え、追加、削除のみであり、結局のところわずかな動作
変更でも新たな中位動作ルーチンの作成が必要となって
非常に面倒である。
【0007】本発明の課題は、新たな基本動作の追加
や、既存の基本動作の部分的な変更に対応するための、
中位動作ルーチンの作成あるいは書換え等を簡単に行う
ことができ、ひいては直感的かつ柔軟性に富む動作プロ
グラミングを可能としたロボットシステムを提供するこ
とにある。
【0008】
【課題を解決するための手段及び作用・効果】上記課題
を解決するために本発明のロボットシステムは、上位の
ロボット動作をいくつかの基本動作の組み合わせとして
把握し、基本動作に必要な各ロボット部位(以下、単に
部位ともいう)の動作を規定する部位動作プログラムモ
ジュール(以下、部位動作モジュールという)が、その
ロボット部位に設けられたアクチュエータの駆動に関す
る駆動データを単位として形成され、その部位動作モジ
ュールを複数組み合わせることにより基本動作を規定す
る中位動作ルーチンが形成され、その中位動作ルーチン
の組み合わせにより上位のロボット動作を規定する上位
動作プログラムが形成される階層型プログラムとして、
ロボット動作プログラムが記述されており、必要な部位
毎の部位動作モジュール及び/又は部位動作モジュール
を特定するための部位動作モジュール特定情報を複数組
み合わせることにより記述され、予め定められた標準的
な基本動作(以下、標準動作という)を規定する標準動
作ルーチンを複数記憶した標準動作ルーチン記憶部と、
複数の中位動作ルーチンを記憶するとともに、それら中
位動作ルーチンの少なくとも一部のものを、複数の標準
動作ルーチンのうちの所定のものを選択する標準動作ル
ーチン選択コマンドと、その選択された標準動作ルーチ
ンに対し、特定の部位動作モジュールの削除、入替え、
及び新たな部位動作モジュールの追加の少なくともいず
れかを指示する動作変更コマンドとを含む標準変更型中
位動作ルーチンとして記憶している中位動作ルーチン記
憶部と、各中位動作ルーチンと対応付けられた中位動作
コマンドを用い、これら中位動作コマンドの組み合わせ
により規定される上位動作プログラムを記憶する上位動
作プログラム記憶部と、その上位動作プログラム記憶部
に記憶された上位動作プログラムを、中位動作コマンド
の単位で読み出すプログラム読出手段と、その読み出さ
れた中位動作コマンドに対応する中位動作ルーチンが標
準変更型中位動作ルーチンであった場合には、それに含
まれる標準動作ルーチン選択コマンドが指示する標準動
作ルーチンと、同じく動作変更コマンドが指示する変更
内容とに基づき、当該標準変更型中位動作ルーチンを実
行すべき部位動作モジュールの組み合わせの形に展開す
るプログラム展開手段と、読み出された各中位動作コマ
ンドに対応する中位動作ルーチンの組み合わせに基づい
て、アクチュエータの駆動を制御するアクチュエータ動
作制御部とを含むことを特徴とする。
【0009】まず、このロボットシステムにおいては、
中位動作ルーチンを、ロボット部位毎の動作を規定する
ルーチン、すなわち部位動作モジュールの寄せ集めとし
て構成する。また、予め定められた標準動作を規定する
標準動作ルーチンを、部位動作モジュール及び/又は部
位動作モジュール特定情報を複数組み合わせることによ
り用意しておく。そして、適当な標準動作ルーチンを選
択して、これに対し、特定の部位動作モジュールの削
除、入替え、及び新たな部位動作モジュールの追加の少
なくともいずれかを行うことにより、上記中位動作ルー
チンを作成する。このように作成される中位動作ルーチ
ンを標準変更型中位動作ルーチンと呼び、そのプログラ
ムの記述単位は、所望の標準動作ルーチンを選択するた
めの標準動作ルーチン選択コマンドと、部位動作モジュ
ールの削除、入替え、及び新たな部位動作モジュールの
追加の少なくともいずれかを指示する動作変更コマンド
である。
【0010】このようなプログラミング方式の採用によ
り、次のような効果を享受できる。すなわち、中位動作
プログラムの種類を増やしたい場合は、例えば増やした
い基本動作に最も近い標準動作のルーチンを選択し、こ
れに動作変更したい部位別に部位動作モジュールの削
除、入替え、あるいは新たな部位動作モジュールの追加
を行うのみで新しい中位動作ルーチンが作成でき、従来
のようにこれを下位動作データの単位に遡って作成する
必要がなくなる。その結果、新たな中位動作プログラム
の作成作業が直感的に把握しやすくなるので、専門的な
知識とプログラミング作業への高度の熟練とを有さない
一般のユーザでも、簡単に扱うことができるようにな
り、またプログラミングの幅も拡げることができる。ま
た、中位動作ルーチンが部位別の動作モジュール単位で
構成されているから、特定の部位の動作のみを別の動作
に変更したい、あるいは該部位の動作を行わせないよう
にしたい、さらには新たな部位動作を追加したい、とい
った要望にも、部位動作モジュールの入替え、削除、追
加により簡単に対応できる。
【0011】上記ロボットシステムにおいては、ロボッ
トを、複数のロボット部位のうちの少なくとも一部のも
のが、複数の骨格単位とそれら骨格単位の間に配置され
たアクチュエータとを有する骨格を備えるものとして構
成できる。この場合、複数の部位動作モジュールのう
ち、少なくとも一部のものを、下記の要件を備えた駆動
データ作成装置、すなわち、ロボット動作に対応するモ
デルの動作を経時的に記録した一連のモデル画像と、骨
格の画像を表示する画像表示手段と、その表示手段にお
いて骨格画像を、モデル画像に対して位置合わせする骨
格位置決め手段と、時間軸上において互いに前後するモ
デル画像に対しそれぞれ位置合わせされた骨格画像の変
位に基づいて、駆動データを算出するデータ演算手段と
を含む駆動データ作成装置により、動作のコマ送り単位
で作成された駆動データを、ロボットの部位別に編集す
ることにより作成された教示動作ルーチン部分とするこ
とができる。
【0012】この方式によれば、例えば、ある基本動作
を人間のモデルに実際に行わせてこれをコマ単位の一連
の画像として記録し、それら各画像にロボットの骨格画
像をそれぞれ位置合わせすることによって、経時的に変
化するモデル動作の特定の時刻毎に、骨格画像のモデル
画像に対する位置決めが行われ、隣り合う画像間での骨
格の変位に基づいて駆動データが演算される。いわば、
モデルの動きを直接ロボットに教示するイメージによ
り、直感的な駆動データ生成が可能となるのである。こ
のようにすれば、その中位動作に含まれる各部位毎の下
位動作データを一括して得ることができ、中位動作コマ
ンドを付与して記憶部に保存すればそのまま中位動作ル
ーチンとしての使用が可能となる。そして、その駆動デ
ータを作成するための作業は、画像表示手段の画面上で
モデル画像に骨格画像を位置合わせする操作が中心とな
るので内容が理解しやすく、また、ロボットの部位毎に
アクチュエータの駆動量をいちいち設定する必要がなく
なるので、上位動作プログラム作成に必要な多量の駆動
データを合理的かつ簡便に得ることができる。
【0013】この場合、下位動作データを部位別に編集
することで部位動作モジュールを教示動作ルーチン部分
として簡単に作成することができる。そして、この方式
を本発明に適用することにより、次の利点が生ずる。す
なわち、モデルによる動作教示は、基本動作の種類が変
わればモデルが新たに動作を行ってこれをビデオ撮影
し、データ作成を行う形とすることもできるが、類似し
た基本動作で特定部位の動作のみが若干異なるもののデ
ータを作成する場合は、その都度モデル動作の撮影及び
データ作成(すなわち中位動作ルーチンの作成)を繰り
返すのはいささか非能率である。そこで、いくつかの基
本動作についてデータ作成が終わっていれば、特定の基
本動作のある部位の動作を変更する際に、別の基本動作
のデータから適当な部位動作モジュールを探し出し、こ
れを変更に係る基本動作(すなわち、これを標準動作と
みることもできる)の部位のモジュールと置き換えるこ
とにより、簡単にその基本動作のデータすなわち中位動
作ルーチンを得ることが可能となる。
【0014】上記ロボットシステムには、複数の部位動
作モジュールを記憶する部位動作モジュール記憶手段
と、標準変更型中位動作ルーチンを部位動作モジュール
に展開するための中位動作ルーチン展開メモリ領域が形
成された展開記憶手段とを設けることができる。この場
合、プログラム展開手段は、動作変更コマンドが、特定
の部位動作モジュールの削除を指示するものであった場
合には、その指示された部位動作モジュールを削除しつ
つ、また入替えを指示するものであった場合にはその指
示された部位動作モジュールを指定された部位動作モジ
ュールと入れ替えつつ、さらに新たな部位動作モジュー
ルの追加を指示するものであった場合には、その部位動
作モジュールを追加しつつ、指定された標準動作ルーチ
ンを構成する部位動作モジュールを部位動作モジュール
記憶手段から読み出して、中位動作ルーチン展開メモリ
領域にロードするものとすることができる。上記構成で
は、例えば、必要な部位動作モジュールのみを中位動作
ルーチン展開メモリ領域にロードする形となるから、展
開処理をスムーズかつ迅速に行うことができ、例えば中
位動作ルーチンのデータ量が非常に多い場合でもロボッ
ト制御の速度を高めることができる。
【0015】この場合、部位動作モジュール記憶手段に
は、複数の部位動作モジュールを、部位を特定するため
の部位特定情報(例えば部位名)及び動作内容を特定す
るための動作特定情報(例えばモジュール名)と対応付
けた形で記憶しておくことができる。また、動作変更コ
マンドは、動作変更に係る部位を特定するための部位特
定情報と、変更後の動作内容を規定する部位動作モジュ
ールを特定するための動作特定情報とを含むものとする
ことができる。これにより、標準動作ルーチンに対する
入替え、削除あるいは追加に係る部位動作モジュールの
指定を、部位の種類あるいは動作内容により簡単に特定
でき、ひいては動作変更コマンドを用いた標準変更型中
位動作ルーチンのプログラミングがより簡単になる。
【0016】プログラム展開手段は、動作変更コマンド
中の部位特定情報により特定される部位が、標準動作ル
ーチン中の各部位動作モジュールに対応する部位のいず
れかと同一であった場合に、その部位に係る部位動作モ
ジュールを、動作特定情報により特定される部位動作モ
ジュールと入れ替えるものとすることができる。例え
ば、基本動作の設定においては、同一部位に対する2種
以上の動作がその基本動作中に含まれないようにしてお
くことが、動作把握を容易にする上で都合がよい。この
場合、上記のような処理方式とすることにより、部位の
種別を特定するのみで、標準動作ルーチンにおいて対応
する部位動作モジュールの入替えが自動的に行われるの
で、標準変更型中位動作ルーチンの作成が一層簡単とな
る。
【0017】また、プログラム展開手段は、動作変更コ
マンド中の部位特定情報により特定される部位が、標準
動作ルーチン中の各部位動作モジュールに対応する部位
のいずれとも異なる場合に、動作特定情報が特定する部
位動作モジュールを標準動作ルーチンに追加するものと
することができる。他方、プログラム展開手段は、動作
変更コマンド中の部位特定情報により特定される部位
が、標準動作ルーチン中の各部位動作モジュールに対応
する部位のいずれかと同一であった場合に、その部位に
係る部位動作モジュールを削除するものとすることもで
きる。いずれの場合も、プログラミングに際しては、部
位の種別特定のみで部位動作モジュールの追加あるいは
削除を指示することができるので、標準変更型中位動作
ルーチンの作成が一層簡単となる。
【0018】なお、標準動作ルーチンは、中位動作ルー
チン記憶部に記憶されている中位動作ルーチンとはファ
イル上区別して、これを専用の標準動作ルーチン記憶部
に記憶しておいてもよいし、特に他の中位動作ルーチン
とのファイル上の区別は行わず、同じ中位動作ルーチン
記憶部に記憶しておいてもよい。後者の場合は、中位動
作ルーチン記憶部が標準動作ルーチン記憶部を兼ねる形
となる。いずれの場合も、標準動作ルーチンは、動作変
更コマンドによる変更を加えない形で中位動作ルーチン
として使用することが可能である。なお、標準動作ルー
チンと中位動作ルーチンとをファイル上区別しない場合
は、動作変更コマンドと対をなす標準動作ルーチン指定
コマンドにより、どの中位動作ルーチンを標準動作ルー
チンとして用いるかを指定するようにすればよい。
【0019】次に、中位動作ルーチン記憶部に記憶され
ている複数の中位動作ルーチンのうち一部のものを、別
の複数の中位動作ルーチン同士の組み合わせ、又は1な
いし複数の別の中位動作ルーチンと1ないし複数の部位
動作モジュールとの組み合わせとして、各々対応する基
本動作及び/又は部位動作を指定するための動作指定コ
マンドを用いて記述された複合型中位動作ルーチンとす
ることができる。この場合、プログラム展開手段は、読
み出された中位動作コマンドに対応する中位動作ルーチ
ンが複合型中位動作ルーチンであった場合には、それに
含まれる動作指定コマンドの内容を解析して、当該複合
型中位動作ルーチンを実行すべき部位動作モジュールの
組み合わせの形に展開するものとして構成することがで
きる。
【0020】上記のような複合型中位動作ルーチンを用
いることにより、いくつかの基本動作を組み合わせ、あ
るいは基本動作と部位動作との組み合わせにより、より
大きな単位の基本動作を指定することが簡単にできるよ
うになる。例えば頻繁に使用するひとまとまりの基本動
作及び/又は部位動作を、上記複合型中位動作ルーチン
として予め定義しておけば、上位動作プログラムの大幅
な簡略化を図ることができる。この場合も、動作指定コ
マンドのうち部位動作を指定するための部位動作コマン
ドは、部位を特定するための部位特定情報と、動作内容
を規定する部位動作モジュールを特定するための動作特
定情報とを含むものとすることができる。
【0021】上記複合型中位動作ルーチンは、組み合わ
されるべき中位動作ルーチン及び/又は部位動作モジュ
ールに係る基本動作及び/又は部位動作が、時系列的な
重なりを生じないよう逐次的に実行される重ね合わせ型
中位動作ルーチンとして構築することができる。これ
は、ひとまとまりの基本動作及び/又は部位動作を指定
された順序で逐次的に行わせたい場合に便利である。他
方、複合型中位動作ルーチンは、組み合わされるべき中
位動作ルーチン及び/又は部位動作モジュールに係る基
本動作及び/又は部位動作が、時系列的に少なくとも部
分的な重なりを生じた状態で実行される組合わせ型中位
動作ルーチンとして構築することができる。これは、ひ
とまとまりの基本動作及び/又は部位動作を同時的に行
わせたい場合に便利であり、複雑な連係動作も簡単にプ
ログラミングすることができる。
【0022】標準変更型中位動作ルーチン及び/又は複
合型中位動作ルーチンにおいては、対応する中位動作ル
ーチン又は部位動作モジュールに基づく基本動作又は部
位動作の動作条件を規定する動作条件規定コマンドを含
ませておくことができる。また、部位動作モジュールの
みを含む通常の中位動作ルーチンに対しても、部位動作
の動作条件を規定する動作条件規定コマンドを含ませて
おくことができる。この場合、アクチュエータ動作制御
部は、動作条件規定コマンドが規定する動作条件に従
い、基本動作又は部位動作に係るアクチュエータの駆動
を制御するものとすることができる。
【0023】すなわち、前記した特開平8−31452
4号公報のロボットシステムにおいては、中位動作ルー
チンの新規作成や内容変更には専門的な知識と熟練が必
要であり、一般のユーザには扱いにくいことは既に述べ
たが、とりわけ互いに異なる動作が連係した複合動作と
なる場合等において、タイミング等の動作条件設定が特
に面倒である。この場合、プログラミングに時間がかか
るばかりでなく、プログラムの見通しや全体把握が困難
になるため、所期のロボット動作を思い通りに実現しに
くくなるといった問題も生ずる。
【0024】そこで、上記のように、部位動作あるいは
基本動作の単位でロボット動作を把握し、動作条件規定
コマンドにより各部位動作あるいは基本動作毎に条件規
定を行うようにすれば、ロボットに複雑な動作を行わせ
る場合でも、プログラム作成あるいは変更が極めて簡単
となる。また、プログラムの見通しや全体把握も容易に
なるから、所期のロボット動作を思い通りに実現するこ
とができる。
【0025】例えば、動作条件規定コマンドは、基本動
作又は部位動作の動作開始タイミングを規定する動作開
始タイミング規定コマンドを含むものとすることができ
る。例えば、複数の部位動作を同時連係的に組み合わせ
る場合、動作開始タイミング規定コマンドにより動作毎
の開始タイミングを規定することで、ある部位の動作を
他の部位よりも遅れて開始させたり、あるいはある動作
が終了した後に特定部位の動作を開始させたり、さらに
は特定部位同士の動作を同時に開始させたりといった複
雑な動作指定を簡単に行うことが可能となる。
【0026】この場合、動作開始タイミング規定コマン
ドは、予め定められた時刻原点からの経過時間に基づい
て動作開始タイミングを与えるものとすることができ
る。この場合は、例えばタイマー計測等による時間把握
により動作タイミングを簡単に規定することができる。
他方、前記教示動作ルーチン部分により規定されるある
部位の動作を基準として用い、動作開始タイミング規定
コマンドを、その部位動作の開始時刻、終了時刻又は特
定のコマ位置通過時刻のいずれかに基づいて動作開始タ
イミングを与えるものとしておけば、特定部位の動作を
基準にタイミングを設定したい場合に便利である。
【0027】なお、動作開始タイミング規定コマンドが
特に与えられていないない場合に、対応する基本動作又
は部位動作の動作開始タイミングを予め定められたデフ
ォルト開始時刻に設定する動作開始タイミング設定手段
を設けておくことができる。例えば前記した組合わせ型
中位動作ルーチン等において、デフォルト開始時刻(例
えばプログラム実行開始)において、いくつかの部位の
動作を同時にスタートさせたい場合、上記のような手段
を設けておくことで、特にそれら部位へのタイミング指
定を行わなくとも所期の動作が実行されるので、プログ
ラムを簡略化することが可能となる。
【0028】次に、前記した駆動データ作成装置により
教示動作ルーチン部分を作成する場合、例えば、モデル
画像に位置合わせされた骨格画像からは駆動データの演
算が困難あるいは不可能なロボット部位が存在する場合
がある(例えば手首、指、眼、口等の動き、ランプの点
灯など)。そして、標準変更型中位動作ルーチン及び複
合型中位動作ルーチンに、上記のような要因により、駆
動データ作成装置による教示動作ルーチン部分の作成が
なされないロボット部位(非教示部位)の部位動作モジ
ュールが含まれる場合は、その部位動作モジュールに対
応する非教示部位の位置決め命令ルーチン部分をプログ
ラム中に組み込んでおくことができる。また、その位置
決め命令ルーチン部分の内容に基づいて、対応する非教
示部位のアクチュエータの駆動データを生成する非教示
部位駆動データ生成手段を設けることができる。
【0029】上記構成では、駆動データ作成装置による
データ作成の不能な非教示部位の動作を組み込む場合
に、位置決め命令ルーチン部分の内容に基づいて、対応
する非教示部位のアクチュエータの駆動データが、プロ
グラム実行中に自動生成されることとなる。これによ
り、各種非教示部位に対する駆動データを予め用意する
必要がなくなり、また非教示部位の部位動作の組込みも
非常に簡単になるので、プログラミングの手間を省くこ
とができる。この場合、位置決め命令ルーチン部分は、
対応する非教示部位の移動開始位置、移動終了位置及び
移動速度の少なくともいずれかを指定する位置決め情報
を含むものとすることができる。例えば、非教示部位
が、眼の回転や口の開閉あるいは舌の出し入れのよう
に、ロボットの特定部位に対して予め定められた2位置
間でのみ移動するような場合、あるいは単純な回転移動
しか行わない場合等においては、このような簡略な位置
決め情報により駆動データの生成を問題なく行わせるこ
とができる。
【0030】上位動作プログラムは、中位動作コマンド
と部位動作コマンドとを混在させた形で記述できるよう
にしておけば、部位動作単位でのよりきめ細かいプログ
ラミングが可能となる。この場合、プログラム読出手段
は、その部位動作コマンドを中位動作コマンドと等価な
ものとして認識し、これに対応する部位動作モジュール
を読み出すものとしておけばよい。
【0031】また、上位動作プログラムは、中位動作コ
マンドを含む動作命令文が、その実行順を反映した所定
の配列により記述された動作ルーチンと、変更型中位動
作ルーチン及び複合型中位動作ルーチンの少なくともい
ずれかの内容を規定する定義ルーチンとを含む形式を採
用することができる。変更型中位動作ルーチンあるいは
複合型中位動作ルーチンを、定義ルーチンの形で上位動
作プログラムの中に組み込めるようにしておくことで、
これら形式の中位動作ルーチンを上位動作プログラムの
枠内で作成できるようになり、プログラミングがより簡
単でわかりやすくなる。この場合、プログラム展開手段
による標準変更型中位動作ルーチンあるいは複合型中位
動作ルーチンの展開処理は、それら中位動作ルーチンに
含まれるべき部位動作モジュールの読出しに先立って、
定義ルーチンの内容に従い実行されるようにしておく。
【0032】
【発明の実施の形態】以下、本発明の一実施例を図面を
用いて説明する。図1は、本発明の一実施例たるロボッ
トシステム200の全体構成を示しており、ロボット2
01、ロボット制御部202、駆動データ作成装置1を
備えており、これらがそれぞれ通信インターフェース2
03、152を介して通信回線150により互いに接続
されている。
【0033】ロボット制御部202は、CPU204と
これに接続されるRAM205、ROM206、ハード
ディスク装置等で構成される記憶装置207、キーボー
ド等の入力装置208、表示制御部210等を備える。
そして、表示制御部210にはCRT等の表示装置21
1が接続され、また、CPU204には通信インターフ
ェース203が接続される。
【0034】なお、記憶装置207は、標準動作ルーチ
ン記憶部、中位動作ルーチン記憶部、、部位動作モジュ
ール記憶手段として機能する。また、CPU204は、
プログラム読出手段、プログラム展開手段、非教示部位
駆動データ生成手段として機能する。さらに、RAM2
05はCPU204のワークエリア及び展開記憶手段と
して機能する。
【0035】ロボット201は、例えば人間の動きを模
写するロボットとして構成され、図2に示すように、骨
格単位20〜30が関節機構31〜37で互いに接続さ
れる骨格19を備える。そして、この骨格は、例えば下
記のようなロボット部位(以下、部位A、B、C・・・
等という)に区分されている。 ・頭部(20):眼部20aと口部20cを備える。図
3に示すように、口部20cは、図示しないアクチュエ
ータにより開閉駆動可能とされている。さらに、口部2
0cの内部には、舌部20dが図示しないアクチュエー
タにより出入り可能に設けられている。また、図4に示
すように、眼部20aは図示しないアクチュエータによ
り左右に回転駆動可能に設けられている。また、この眼
部20aを覆ったり開いたりする瞼部20eが、図示し
ないアクチュエータにより駆動可能に設けられている。
さらに、図1に示すスピーカ192(音声出力部)も内
蔵されていおり、CPU204からの指令により、音声
合成部191により合成された声等の音声を出力できる
ようになっている。なお、本明細書では、音声出力部も
部位の一つとみなし、それによる音声出力も動作の一つ
とみなす。 ・胴体:肩21、背骨22、腰骨23を含む。 ・左右の腕部:それぞれ上腕骨24、下腕骨25、手部
29を備える。また、手部29の各指は、それぞれ独立
に曲げ伸ばし駆動可能とされ、例えばジャンケンの「グ
ー」、「チョキ」、「パー」など、各種の手形状を作る
ことができるようになっている。 ・左右の脚部:それぞれ上肢骨26、下肢骨27、足部
30を備える。
【0036】そして、図1に示すようにロボット201
には、上記各部位(図面では、A、B、C等で簡略に表
記している)のそれぞれに対応して算出・駆動制御部
(算出・駆動制御手段)212が設けられ、ロボット制
御部202のCPU204にそれぞれ接続されている。
そして、これら算出・駆動制御部212に対し、各部位
に含まれるアクチュエータ213が接続されている。な
お、図2の各関節機構31〜37に設けられるアクチュ
エータの種類(パルスモータ、サーボモータ、ピストン
シリンダ等)と軸の本数、軸の回転の自由度、及び軸の
回転ないしピストンのスライドの範囲等は各骨格単位毎
に個別に設定されている。
【0037】次に、図5に示すように、ロボット制御部
202(図1)の記憶装置207には、上位動作プログ
ラム記憶部300、中位動作ルーチン記憶部302、部
位動作モジュール記憶部304、中位動作コマンド解析
プログラム記憶部306、非教示部位駆動データ生成プ
ログラム記憶部308、システムプログラム記憶部31
2が形成されており、それぞれ対応するプログラムない
しルーチン(あるいはデータ)を記憶している。
【0038】各プログラムの作用は以下の通りである。 (1)上位動作プログラム:予め用意された中位動作コ
マンドから適当なものを選んで配列することにより、所
望の上位動作を記述する。例えばロボット201に「右
を向いて4歩歩き、回れ右して1歩半踏み出し、空手チ
ョップのポーズをとる」という一連の上位動作を行わせ
たい場合には、これを「右を向く」、「右脚部半歩」、
「左脚部1歩」等、いくつかの基本動作の組み合わせと
して把握する。そして、該上位動作プログラムでは、そ
の上位動作を構成する基本動作をそれぞれ規定する中位
動作コマンドを含んだ動作命令文300aが、その実行
順を反映した所定の順序、例えばその実行順に配列され
る。本実施例では、動作命令文に含まれる中位動作コマ
ンドは、基本動作の定義名を含んだ形で記述される。
【0039】(2)中位動作ルーチン:対応する基本動
作に必要な各ロボット部位の動作を規定する部位動作プ
ログラムモジュール(部位動作モジュール)のモジュー
ル名(動作特定情報)PM11,PM12‥‥の組み合
わせとして、基本動作の定義名1,2,3,‥‥と対応
付けた形で記憶されている。 (3)部位動作モジュール:図6に示すように、図1の
ロボット201の部位A、B、C・・・に含まれるアク
チュエータの駆動データ群を含んで構成されており、部
位名(部位特定情報)1,2,‥‥、及びモジュール名
(動作特定情報)PM11,PM12‥‥と対応付けた
形で記憶されている。なお、各駆動データは、各アクチ
ュエータにより駆動される骨格単位の両端の各時間毎の
変位データを含むものとされるが、骨格単位間の角度デ
ータとすることもできる。他方、駆動データは、各アク
チュエータの各時間毎の駆動量とすることもできる。
【0040】(4)中位動作コマンド解析プログラム:
中位動作コマンドの単位で上位動作プログラムを読み出
し、対応する中位動作ルーチンを順次起動させる。 (5)システムプログラム:CPU204上における上
位動作プログラムの作動環境、及び上位動作プログラム
の書換えないし新規作成のための環境を与える。具体的
には、表示装置211(図1)にプログラム作成画面を
開き、入力装置208を用いて上位動作コマンドを図1
8に示すような形式(後述)で入力し、その入力内容に
上位動作プログラム名を付与して、記憶装置207の上
位動作プログラム記憶部300に記憶させる。また、記
憶された上位動作プログラムをプログラム作成画面に表
示させ、入力装置208からの入力に基づいて上位動作
コマンドの追加、削除、挿入等を行い、プログラムの修
正・編集を実行する。他方、後述する標準変更型中位動
作ルーチンあるいは複合型中位動作ルーチンの部位動作
モジュールへの展開処理も、このシステムプログラムが
行う。なお、これらタイプの中位動作ルーチンは定義ル
ーチン300bの形で、上位動作プログラム内に組み込
まれた形で上位動作プログラム記憶部300内に記憶さ
れる。すなわち、該記憶部300の一部も、中位動作ル
ーチン記憶部として機能している。 (6)非教示部位駆動データ生成プログラム:後述す
る。
【0041】一方、図7に示すように、RAM205に
は、上位動作プログラム格納部205a、中位動作コマ
ンド解析プログラム格納部205b、中位動作ルーチン
格納部(I)205c、中位動作ルーチン格納部(I
I)205d等が形成され、それぞれ記憶装置207か
ら読み出された対応するプログラム、データ等を格納す
るようになっている。なお、格納部205c,205d
には、実行に係る中位動作ルーチンに含まれる各部位動
作モジュールがロードされる(標準変更型中位動作ルー
チンあるいは複合型中位動作ルーチンについては、中位
動作ルーチン展開メモリ領域205gにて部位動作モジ
ュールの形に展開された後、ロードされる)なお、中位
動作ルーチン格納部が(I)と(II)の2つ(3つ以
上でもよい)設けられているのは、次に実行する中位動
作ルーチンを予め読み込んで蓄積しておくことにより、
ロボット201が次の動作に移る際の、記憶装置207
からのデータ読込みに基づく応答の遅れを低減するため
である。
【0042】また、算出・駆動制御部212は、図8に
示すように、それぞれCPU214、RAM215、R
OM216等を備え、ROM216には駆動量算出プロ
グラム216aが格納されている。そして、算出・駆動
制御部212は中位動作ルーチンの実行に伴い、ロボッ
ト制御部202側から受信した駆動データDA1、DA
2、・・・等に基づいて、CPU214に接続された各
アクチュエータ213(図1)の駆動量を時系列順に算
出し、その算出結果に基づいて各アクチュエータ213
を駆動する。その算出方法については後述する。
【0043】図9は、駆動データ作成装置1の構成例を
示すブロック図である。駆動データ作成装置1は、駆動
データ演算手段を構成するCPU2、ROM3、RAM
4を含む装置制御部5を備え、これに画像取込制御部
6、表示制御部7、入力装置インターフェース8、装置
全体の制御を司る制御プログラムを格納したプログラム
記憶装置9、駆動データ記憶装置10、動画データ記憶
装置11が接続されている。そして、入力装置インター
フェース8にはクリックボタン12a(入力部)を備え
た骨格位置決め手段として、マウス12、キーボード1
3が接続されている。表示制御部7には画像表示手段と
してのCRT14が接続されている。一方、画像取込制
御部6は、ビデオ再生装置(VTR)15が接続される
とともに、VRAM16とデータ転送用プロセッサ17
とを備え、VRAM16に格納された画像表示データ
が、バス18を介して表示制御部7に直接転送可能とさ
れている。
【0044】次に、図2に示すロボット201の骨格1
9を形成する骨格単位のうち、いくつかのものは組を形
成し、その組に含まれる各骨格単位同士の相対的な位置
関係には予め定められた拘束条件が設定される。例え
ば、両脚部を構成する骨格単位を例にとれば、図10に
示すようにその下肢骨27は、上肢骨26に沿う直線と
腰骨23に直角な直線とが作る平面P内のみを動くとい
う拘束条件が設定されている(なお、図10において
は、関節機構35及び36(図2)は描いていない)。
従って、上肢骨26の上端位置と下肢骨27の下端位置
とを指定すれば、両者の結合点(膝に相当する部分)の
位置は、上記拘束条件に従って自動的に定まることとな
る。
【0045】次に、本実施例のロボットシステム1の作
動について詳しく説明する。図1の入力装置208等に
より上位動作プログラム名を指定してこれを起動させる
と、中位動作コマンド解析プログラムが起動し、図11
のフローチャートに示すように、M1において上位動作
プログラムの最初の中位動作コマンドが読み込まれ、M
2で対応する中位動作ルーチンがRAM205の中位動
作ルーチン格納部(I)205cに格納される。次に、
その格納された中位動作ルーチンに対し信号を発してこ
れを起動させる(M3)。また、その中位動作ルーチン
の実行中に、M4で次の中位動作コマンドを読み込み、
M5で対応する中位動作ルーチンをRAM205の空い
ている中位動作ルーチン格納部(この場合、格納部(I
I))に格納する。さらに、M6において起動・実行中
の中位動作ルーチン(格納部(I)側)から中位側処理
完了信号が送信されてきていれば、格納部(II)20
5dに格納された中位動作ルーチンに起動信号を送信す
る(M7)。そして、M8において次の中位動作コマン
ドが存在すればM4へ返り、次のコマンドを読み込んで
対応する中位動作ルーチンを空いている格納部(この場
合、格納部(I))に格納し、以下同様の処理を繰り返
すことにより、上位動作プログラムが中位動作コマンド
単位で実行されてゆく。なお、次の中位動作コマンドが
存在しないか、終了コマンドである場合には処理を終了
する(M9)。
【0046】次に、中位動作ルーチン側での処理である
が、図12のフローチャートに示すように、上位動作プ
ログラム側から起動信号を受けることにより、各部位の
アクチュエータの駆動データを読み込み(B1、B
2)、アクチュエータの各時間毎の変位データとして記
述された駆動データを、各部位の算出・駆動制御部21
2へ時系列順に送信する(B3)。そして、算出・駆動
制御部212側では、駆動量算出プログラム216a
(図8)に基づいて、その変位データに基づいて各アク
チュエータの駆動量を算出し、その算出結果に基づいて
それらアクチュエータを駆動する。
【0047】駆動量の算出方法としては、一例として、
以下のような原理に基づく方法を採用することができ
る。まず、図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。そして、変位データは、各骨格
単位の両端の変位として算出される。
【0048】例えば図13の、左側の脚部に対しては、
図14(a)に模式的に示すように、点Gの位置が不変
で、ある時刻T1におけるL1、Lk1の位置が次の時
刻T2におけるL1’、Lk1’に移った場合、線分G
L1及び線分L1Lk1に回転移動を施し、(b)に示
すように、線分GL1を線分GL1’に重ね合わせる。
そして、回転移動後の各点の空間座標から、時刻T1の
線分L1Lk1と、時刻T2の線分L1’Lk1’との
なす角度θを算出することにより、両骨格単位(すなわ
ち、上腕部26及び下脚部27)の間に配置されたアク
チュエータの各軸の回転角度を求めることができる。こ
のような骨格単位の回転移動と第二骨格単位の回転角度
を求める処理を、骨格の末端へ向かう方向に順次施して
ゆけば、各関節機構に含まれるアクチュエータの駆動量
が順次算出されることとなる。なお、以上の説明では、
アクチュエータはモータで構成されており、第一及び第
二の骨格単位同士はそのモータ軸の回転により、相対的
な回転運動のみを行うものとしたが、ピストンロッド等
をアクチュエータとした場合は、そのピストンの伸縮に
より骨格単位間で相対的な並進運動が行われる場合もあ
る。そのような場合は、第二骨格単位の回転角度の他、
並進移動距離も算出するようにする。
【0049】このようにしてアクチュエータの駆動量が
算出され、その中位動作ルーチンの駆動データに基づく
アクチュエータの一連の駆動が終了すると、駆動量算出
プログラム216aからは下位側処理完了信号が中位動
作ルーチン側へ送信される。中位動作ルーチン側では、
図12のB4でこれを受け、中位側処理完了信号を上位
動作プログラムへ送信する(B5)。なお、アクチュエ
ータの駆動量そのものを駆動データとして送信する場合
には、算出・駆動制御部側での上記算出処理は不要とな
る。
【0050】図15は、上述の流れに基づくロボット2
01の上位動作の具体的な実行例を示している。すなわ
ち、「4歩歩く」という上位動作は、図16及び図17
に示すように、「右脚部半歩」(定義名「WALK
2」)、「左脚部1歩」(定義名「WALK3」)、
「右脚部1歩」(定義名「WALK4」)、「左脚部半
歩」(定義名「WALK5」)の4つの基本動作を含
み、その上位動作プログラムは、各基本動作の中位動作
コマンド(それぞれ対応する上記定義名を含む)を用い
た動作命令文を用いて組まれることとなる。そして、例
えば最初の「右脚部半歩」の基本動作を構成する部位動
作は、右脚部及び左腕部の各部位に対するそれぞれ「半
歩踏出し」及び「前降り」であり、対応する部位動作モ
ジュールに含まれる関連アクチュエータの駆動データを
時系列順に算出・駆動制御部212へ送信する(送信制
御は前述のシステムプログラムが行う)。算出・駆動制
御部212では送信されてきた駆動データに基づいて駆
動量を算出し、対応するアクチュエータを駆動して、次
の中位動作コマンド内容である「左脚部1歩」の実行へ
移る。
【0051】以下、具体的なプログラム例を参照してさ
らに詳しく説明する。図18は「右を向いて4歩歩き、
礼をした後回れ右して1歩半踏み出し、空手チョップの
ポーズをとる」という上位動作を行わせるためのプログ
ラム例である。プログラムは、前記した通り、動作命令
ルーチンと定義ルーチンとから成り立っている。
【0052】本実施例では、動作命令ルーチンは、1又
は複数の動作命令文を実行順に配列したものであり、あ
る動作命令文において、それが定義済基本動作の中位動
作ルーチンであることを示すコマンドは「motio
n」コマンドであり、 motion <do:=”定義名”> により、該定義名で示された中位動作ルーチンの実行を
命令する中位動作コマンドが規定される。そして、この
ような中位動作コマンドによる動作命令文が実行順に配
列される(なお、各文には行番号を付与していないが、
行番号を付与して実行順を指定してもよい)。なお、各
中位動作コマンド内の定義名が、どのような基本動作の
定義名であるかについて、各文の末尾に括弧書きにて示
している。
【0053】ここで、中位動作ルーチンのうち、組合わ
せ型中位動作ルーチンあるいは標準変更型中位動作ルー
チンについては対応する形式の定義名を採用することに
より、本実施例においては、定義名の先頭に特定の文字
情報、例えば「@」を付与することにより、他の形式の
中位動作ルーチンと区別するようにしている。そして、
このような定義名の中位動作ルーチンについては、その
中位動作ルーチンの内容を規定するための定義ルーチン
がプログラム中に書き込まれる(書き込まれていなけれ
ばエラーと判断するようにしておく)。なお、基本動作
の定義名は、所定の表示形式(本実施例では、コーテー
ション(””)で定義名を囲む形式)にて、それが基本
動作の定義名であることを識別するようにしている。
【0054】本実施例では、「右脚部を半歩前に出しな
がら空手チョップする」という基本動作(定義名”@K
ARATE”)が、「右脚部半歩前」という単純歩行の
基本動作(定義名”WALK2”)を標準動作とする標
準変更型中位動作ルーチンとして組まれている。図19
は、その定義ルーチンの一例を示している。まず、定義
ルーチンの先頭にある 「joint motion to @KARATE」 は、中位動作ルーチンの種別と定義名を規定するための
文であり、「jointmotion to」は標準変
更型中位動作ルーチン(組合わせ型中位動作ルーチンの
場合も同じ)であることを示している。次いで、2行目
の 「base <do:=”WALK2”>」 は、”WALK2”の定義名を有する中位動作ルーチン
を標準動作ルーチンとして選択することを命令する文で
ある。
【0055】次いで、3行目の item RIGHTARM <do:=CHOP> は、ロボットの右腕部に空手チョップを行わせる部位動
作を指示するための動作命令文である。「item ○
○○」は部位特定情報であり、「部位として○○○を指
定せよ」との意味をもつ。そして、「item RIG
HTARM」により、空手チョップを行う右腕部が動作
部位として指定される。また、「<do:=CHOP
>」は動作特定情報であり、「モジュール名「CHO
P」で指定される部位動作を行え」との意味である。な
お、部位動作のモジュール名は、本実施例では、コーテ
ーションを付与しないことで、中位動作ルーチンの定義
名と区別できるようにしている。なお、最終行の「EN
D」は、定義ルーチンの終了を示す。
【0056】さて、このような定義ルーチンを含んだ上
位動作プログラムを実行するときのシステムプログラム
の処理の流れは、以下の通りとなる。まず、図18のプ
ログラムを図5の記憶装置207の記憶部300から読
み出して、図7のRAM205の格納部205aにロー
ドする。プログラムは、行(すなわち中位動作コマン
ド)の単位で読み出され、これが通常の中位動作コマン
ド(定義名の先頭に「@」が付与されていないもの)で
ある場合には、対応する中位動作ルーチンを図5の中位
動作ルーチン記憶部302から読み出す。そして、これ
に含まれるモジュール名を参照して、対応する部位動作
モジュールを図6の部位動作モジュール記憶部304か
ら読み出し、RAM205の中位動作ルーチン格納部
(I)205cにロードする。ロードされた中位動作ル
ーチンは、これに含まれる各部位動作モジュールのアク
チュエータの駆動データが、対応する部位の算出・駆動
制御部212(図1)へ送信され、各部位のアクチュエ
ータを駆動させて基本動作が実行される。なお、この実
行処理間に、同様の処理が次のプログラム行について実
行され、その中位動作ルーチンが中位動作ルーチン格納
部(II)205d(図7)にロードされる。
【0057】ここで、中位動作コマンドが、標準変更型
中位動作ルーチンを指定するもの(すなわち、定義名の
先頭に「@」が付与されているもの)であった場合に
は、対応する定義ルーチンを読み込み、以下の展開処理
に移る。まず、「base <do:=”WALK2”
>」では、「base」コマンドの認識により、これに
続く定義名(この場合”WALK2”)に対応する中位
動作ルーチンを標準動作ルーチンとして読み出し、これ
を図7の中位動作ルーチン展開メモリ領域205gに格
納する。次いで、item RIGHTARM <d
o:=CHOP>では、その部位特定情報(item
RIGHTARM)を認識することにより、標準動作ル
ーチン中にこれと同じ部位の動作が存在するかどうか確
認する。もし存在していれば、動作特定情報(<do:
=CHOP>)により特定される部位動作モジュール
を、展開メモリ領域205g内に格納されている標準動
作ルーチン中の対応する部位のモジュールと置き換え
る。この場合、”WALK2”は、「右脚部半歩」の歩
行動作であり、右腕の振りの動作が部位動作として含ま
れているから、これが空手チョップの右腕動作と置き換
えられるわけである。
【0058】なお、上記定義ルーチンの例には現われて
いないが、図20に示す動作命令文を用いいることによ
り、次のような処理が行われるようになっている。ま
ず、特定の定義名として「FAULT」(すなわち、<
do:=FAULT>)を記述しておくと、展開メモリ
領域205g内の標準動作ルーチンからは、対応する部
位のモジュールが削除される処理がなされる(すなわ
ち、その部位の動作が禁止される)。また、標準動作ル
ーチン内に存在しない部位の動作を指定した場合は、対
応する部位動作モジュールが標準動作ルーチンに追加さ
れる。図に示した動作命令文では、 item RIGHTWRIST <do:=turn
> となっているが、これは右手首部(RIGHTWRIS
T)をねじる(turn)部位動作を示すものである。
【0059】また、部位動作の置換えないし追加を指定
する動作命令文では、部位動作モジュールのモジュール
名による動作指定の他、中位動作ルーチンを援用した動
作指定も可能となっている。この場合、定義名により中
位動作ルーチンを指定し、部位名により部位を指定す
る。これにより、その中位動作ルーチンの、指定された
部位のモジュールが、展開メモリ領域205g内の標準
動作ルーチンに対し置き換えないし追加されることとな
る。図に示した動作命令文では、item RIGHT
ARM <do:=”WALK3”>となっているが、
これは「左脚部一歩前」という基本動作の、右腕の振り
動作のみを組み込むことを示すものである。
【0060】このようにして、定義ルーチン内の動作命
令文の実行が全て終了すると、展開メモリ領域205g
内には、モジュールの入替え、追加及び削除処理が終了
した状態の標準動作ルーチン、すなわち展開済の標準変
更型中位動作ルーチンが格納された形となっている。な
お、モジュールの入替え等の展開処理は、モジュール名
のみを用いて行えば、図6の記憶部304からその都度
モジュールを読み出す必要がなくなるので高速処理が可
能となる。この場合は、展開処理が終了後に、展開メモ
リ領域205g内のモジュール名を参照して、対応する
モジュールを記憶部304から読み出し、これを中位動
作ルーチン格納部205cあるいは205dに格納する
ようにする。
【0061】ところで、図18のプログラムが示す上位
動作では、右を向いた後、4歩歩く形となっているが、
この4歩歩くルーチン部分を、以下に説明する重ね合わ
せ型中位動作ルーチンとして統合することも可能であ
る。その例を図21に示している。このプログラムと図
18のプログラムとの違いは、図18の「4歩歩く」動
作を記述する部分に相当する2〜5行の動作命令文群
が、1つの命令文 motion <do:=”@@××××1”> で置き換えられており、さらにその定義名”@@×××
×1”に対応する定義ルーチンが追加されている点にあ
る。すなわち、「4歩歩く」という動作を、時系列的に
重なりを生じない4つの歩行動作を重ね合わせた重ね合
わせ型中位動作ルーチン(定義名”@@××××1”)
として組まれている。なお、本実施例では、定義名の先
頭に特定の文字情報、例えば「@@」を付与することに
より、重ね合わせ型のルーチンを他の形式の中位動作ル
ーチンと区別するようにしている。
【0062】図22は、その定義ルーチンの一例を示し
ている。まず、定義ルーチンの先頭にある 「pileup motion to @@××××
1」 は、中位動作ルーチンの種別と定義名を規定するための
文であり、「pileup motion to」は重
ね合わせ型中位動作ルーチンであることを示している。
以降は、重ね合わせを行いたい基本動作の命令文を実行
順に配列し、最終行に「end」を付与することによ
り、定義ルーチンを閉じる。なお、本実施例では、特定
の基本動作列を繰返し実行させるためのコマンドが用意
されている。本実施例では、「repeat whil
e ○」‥‥「end」がこれに相当し、これらの間に
挟まれた動作列を「○」回繰り返すことを意味する。図
22では、「左脚部1歩」と「右脚部1歩」とを交互に
行う動作を2回繰り返すことにより、都合4歩連続歩行
する内容を記述するプログラムとなっている。
【0063】次に、組合わせ型中位動作ルーチンのプロ
グラム例と、その処理の流れについて説明する。組合わ
せ型中位動作ルーチンは、組み合わされるべき中位動作
ルーチン及び/又は部位動作モジュールに係る基本動作
及び/又は部位動作が、時系列的に少なくとも部分的な
重なりを生じた状態で実行される上位の中位動作をい
う。一例を図23を用いて説明する。ここでは、ロボッ
トのジャンケン動作を例にとる。
【0064】例えば、「ジャンケンポン」と発声しなが
ら、パーを出すという動作を考えてみる。これは次のよ
うな部位動作に分解して考えることができる。まず、
(1)のように、右手を「グー」の状態にして右腕を振
り上げ、その振上げの途中で「ジャン」と発音する。な
お、発音に合わせて口を短時間開いて閉じる動作(以
下、口パクパク動作という)を1回行う。次いで、
(2)では、振り上げた右腕を静止させて「ケン」と発
音する。(3)では、その右腕を振り下ろしながら、右
手は途中まで「グー」の状態を維持し、さらに(4)
で、右手を「パー」状態としながら「ポン」と発音しつ
つ、右腕の振下ろしを完了させる。なお、この例では
(5)で、腕の振下ろし完了後に、ロボットが口を開い
て舌をペロリと出す動作が付け加えてある。
【0065】上記動作においては、右腕、右手、口、舌
及び音声の5つの部位が、しかるべきタイミングで連係
動作を行う形となっている。その動作タイミングの例が
図24である。図中の矢印は動作継続期間を表す。この
例では、右腕の振上げ、静止、振下ろしをそれぞれ1秒
で実行するようになっており、デフォルトで口は閉、右
手はグーとなっている。また、右腕の振上げ動作は、大
げさなロボットの身振りを示すために、腰の前後移動や
肩の上下動あるいは頭の動き等の部位動作を伴う基本動
作に組み込まれており、後述する駆動データ作成装置に
よりデータ作成された例えば10コマ(コマ送り速度:
0.1秒/コマ)の教示動作である。なお、その中位動
作ルーチンの定義名は”RLIFTUP”である。他
方、右腕の振下ろしも同様に基本動作に組み込まれてお
り、その中位動作ルーチンの定義名は”RSHAKED
N”である。そして、右腕振上げサイクルの中間にて
「ジャン」の発声を、右腕静止サイクルの中間にて「ケ
ン」の発声をそれぞれ行い、右腕振下ろし時には、その
7コマ目から右手を「パー」に移行させ、同時に「ポ
ン」の発声を行う。そして、右腕の振下ろしが完了する
と同時に舌をペロリと出す。
【0066】図25は、上記のような動作を規定する組
合わせ型中位動作ルーチンの定義ルーチンの一例であ
る。まず、定義ルーチンの先頭にあるのは、標準変更型
中位動作ルーチンと同様の「joint motion
to @JANKEN」である。以降の(a)〜
(l)は、組み合せるべき部位動作あるいは基本動作を
指定する動作命令文群であり、それぞれ、図24のタイ
ミングチャートの(a)〜(l)の各動作を命令するも
のである。このうち(a)〜(e)は、図23の(1)
の動作過程に、(f)、(g)は(2)の動作過程に、
(h)は(3)の動作過程に、(i)〜(k)は4の動
作過程に、(l)は(5)の動作過程にそれぞれ対応し
ている。
【0067】組合わせ型中位動作ルーチンにおいては、
例えばその中位動作ルーチンの実行開始時刻が時刻原点
として設定され、後述のコマンドにより特に実行開始タ
イミング指定がなされない限り、その時刻原点をデフォ
ルト開始時刻として、各部位動作あるいは組み込まれた
基本動作が一斉同時にスタートする(なお、時刻計測
は、図1のタイマー190が行う)。すなわち、(a)
〜(c)は、開始タイミングの指定がないので、ルーチ
ンの実行開始とともに、右腕の振上げ動作((a))、
右手の「グー」動作((b))、及び口の閉動作が同時
に実行スタートとなる。なお、「RIGHTFINGE
R」は右手(の指)、「MOUTH」は口の各部位を表
す部位指定情報であり、<do:=31>は「グー」を
作るための指曲げを、<do:=close>は口閉じ
をそれぞれ指定する動作指定情報である。
【0068】次の(d)は、「ジャン」の発声を指示す
る動作命令文である。本実施例では、声に対応する部位
名すなわち「VOICE」を指定し、それに続く<d
o:=”◇◇◇◇”>の◇◇◇◇に、発声内容を直接文
字(あるいは文字コード)にて書き込むことにより発声
内容が指定される。そして、それに続く<from:=
○○○>は、動作条件規定コマンドの一つであり、動作
の開始タイミングを指定する動作開始タイミング規定コ
マンドである。<from:=timer △△>は、
「時刻原点からタイマーの計測単位(本実施例では0.
1秒)の△△倍だけ経過した後に動作を開始せよ」との
意味である。すなわち、(d)全体の意味は、「時刻原
点から(すなわち、右腕の振上げ開始から)0.5秒経
過後に、「ジャン」と発声せよ」となる。
【0069】また、(e)では、部位として口が選択さ
れ、<do:=parrot> により口パクパクの動
作が指定される。その動作開始タイミングは、<fro
m:=timer 5>となっているから、上記「ジャ
ン」の発声タイミングと同じである。さらに、<til
l:(条件名)>は、動作の終了条件を規定するコマン
ドであり、例えば <till:=repeat △>
は、その部位動作が△回繰り返されれば動作終了させ
ることを意味する。例えば、<till:=repea
t 1> により、口パクパクが1回のみ行われること
になる。なお、<till:=repeat △>が省
略された場合には、自動的にデフォルト繰返し回数(例
えば1回)が指定されるようにしてもよい。こうして、
上記(a)〜(e)の動作命令文により、図24のタイ
ミングチャートの(a)〜(e)の動作が組合せて実行
され、図23の(1)の動作が実現されることがわか
る。
【0070】次に、腕の振下ろし時の動作について説明
する。まず、右腕の振下ろしが開始されるのは時刻原点
から2秒経過後であり、対応する(h)の動作命令文に
おいて、<from:=timer 20>によりその
開始タイミングが与えられる。図24に示す通り、腕の
振下ろし開始から終了までは時間で表せば1秒であり、
コマ送り数で表せば10コマである。そして、その7コ
マ目(時刻原点からの時間でいえば2.7秒目)におい
て、右手の「グー」動作、「グー」の発声動作、及び口
パクパク動作が一斉に開始する。
【0071】これに対応するのは、図25の(i)〜
(k)の3つの動作命令文である。ここでは、動作開始
タイミングを右腕の動作のコマ送り数にて規定してい
る。各動作命令文に書き込まれている動作開始タイミン
グ規定コマンドの、<from:=item(部位名)
[△]>の形式は、「item(部位名)にて指定され
た部位動作の△コマ目に動作を開始せよ」という内容を
指示するものである。従って、<from:=item
RIGHTARM[7]>により、右腕の振下ろし開
始から7コマ目に各動作の開始時刻が設定される。
【0072】最後は舌を出す動作であるが、図25にて
対応する動作命令文は(l)である。上述のような駆動
データは駆動データ作成装置1により作成することがで
きる。item TONGUSは舌を部位名として指定
するものであり、<do:=out>は「出す」動作を
指定するものである。そして、その動作開始タイミング
規定コマンド<from:=item RIGHTAR
M[back]>は、前記した<from:=item
RIGHTARM[7]>と同様に、右腕の部位動作
をタイミング設定の基準部位として指定しているが、
[back]は、「その部位(右腕)の動作が完了する
とともに動作開始せよ」を意味している。従って、右腕
の振下ろしが完了するとともに、ロボットは舌を出す動
作を行うこととなる。
【0073】上記のようなロボットの駆動データは、主
要部分が図9の駆動データ作成装置1により教示作成さ
れ、各部位動作モジュールもそれに基づく教示動作ルー
チン部分として作成される。以下、駆動データ作成装置
1の作動の流れをフローチャートを用いて説明する。図
26は処理全体の大まかな流れを示すものであって、ま
ずS1100の入力処理では、モデル画像に対する骨格
画像の重ね合わせ処理を行い、駆動データを作成(換言
すれば、ロボット201への動作の教示)する。この処
理は、基本動作の単位で行われる。ここで、入力に先立
ってその基本動作を人間のモデルに行わせ、そのモデル
画像38(図16、図17)を所定のコマ時間間隔でビ
デオカメラにより動画撮影しておく。そして、図9のV
TR15により再生されたその動画が、画像取込制御部
6を介して動画データとして取り込まれ、動画データ記
憶装置11に記憶されている。ここで、動画データ記憶
装置11に記憶されている動画データは、図35に示す
ように、モデルが比較的複雑な動きを行っている場合に
は、そのコマ80の間隔が密になるように、逆に動きが
比較的単調な場合にはコマ80の間隔が粗となるよう
に、その動画のコマが、動画データ取り込み時あるいは
取り込み後のデータ編集時に適宜間引かれる。
【0074】図27は、S1100の入力処理の詳細を
示すフローチャートであって、まず駆動データの演算が
不要な部位の設定を行なった後(S1101)、図13
に示すようなウィンドウW1及びW2をそれぞれ表示す
る(S1102、S1103)。このうち、一方のウィ
ンドウW1にはモデル画像38が表示され、他方のウィ
ンドウW2には骨格画像39が表示される。なお、骨格
画像39は、図2に示すロボット骨格19を簡略化した
線図として表示される。
【0075】図27に戻って、S1104において、ビ
デオカメラにモデルを正対させて撮影したモデル画像3
8(図13)に、骨格画像39の寸法を合わせ込む処理
を行う。その処理の詳細を図28及び図29に示す。す
なわち、図13において、正対ポーズのモデル画像38
をウィンドウW1に、骨格画像39をウィンドウW2に
表示し(C101〜103)、各骨格単位の長さをモデ
ル画像の対応部位に合わせ込む(C104)。ここで骨
格画像39の各骨格単位に対しては、予め標準寸法が設
定されている。その合わせ込みの処理であるが、図29
に示すように、まず基準点Gの位置を合わせ込み(C2
01)、続いてその基準点Gから次第に遠ざかるよう
に、各骨格単位の端点を順次合わせ込んでゆく。
【0076】ここで、モデル画像38に対し、骨格画像
39の端点を合わせ込むための入力方法であるが、図1
3に示すように、ウィンドウW2上には各端点が目印点
として表示され、また、ウィンドウW1上にはマウス1
2(図9)の移動に伴い画面上を移動するポインタ40
が表示される。目印点の合わせ込みは、G点から始まっ
て次第に骨格の末端へ向かう方向に、予め設定された順
序で行われるようになっており、ウィンドウW2に表示
された骨格画像39上において、次に合わせ込みを行う
べき端点が点滅してこれを知らせるようになっている。
そして、ウィンドウW1上のモデル画像38上の指定す
るべき位置にポインタ40を合わせ、マウス12のクリ
ックボタンを操作することにより、ウィンドウW2上で
点滅表示された端点の、モデル画像38上での重ね位置
が確定され、それとすでに確定されている端点の位置に
基づいて、各骨格単位の長さが順次計算されてゆく(C
202〜C209)。また、長さが定められた骨格単位
は、ウィンドウW1のモデル画像38に対し順次重ね描
画されてゆく。
【0077】ここで、正対ポーズにおけるモデル画像3
8はほぼ左右対称であることから、上腕骨24と下腕骨
25、ならびに上肢骨26と下肢骨27(図2)の各端
点は、左右いずれか一方のものが位置決めされれば、他
方のものも自動的に位置決めされるように処理が行われ
る。また、頭部20の寸法(H及びf1間の距離、図1
3)は、頭部20以外の骨格単位の標準寸法と算出され
た寸法とを比較し、その寸法比率と頭部20の標準寸法
とに基づいて定められる(C210)。なお、ウィンド
ウW1に予め設定された標準寸法の骨格画像を、モデル
画像38とともに表示し、そのウィンドウW1上で骨格
画像の各骨格単位の端点をモデル画像38に合わせ込む
処理を行ってもよい。この場合、ウィンドウW2は省略
することも可能である。次に、図28に戻り、算出され
た骨格単位の寸法に合わせて、正対ポーズの骨格画像3
9をウィンドウW1に再描画した後(C105)、図2
7のS1105に進む。ここで、正対ポーズに対応する
骨格画像39に対しては、各アクチュエータの駆動位置
が基準データとして予め設定されており、その設定内容
がプログラム記憶装置9内に作成された基準データ記憶
部に格納されている。
【0078】続いて、S1105〜S1109におい
て、骨格画像39の位置合わせを行う動画のコマ番号を
指定することにより、そのコマのモデル画像のデータが
取り込まれ、骨格画像の位置合わせ処理(骨格画像入
力)に移る。図30及び図31は、その位置合わせ処理
(S1109)の内容の詳細を示すフローチャートであ
る。すなわち、図30のC301〜C305に示すよう
に、取り込んだコマのモデル画像38に対し、G点から
始めて次第に遠ざかる方向に、骨格画像39の各端点の
位置をモデル画像38に対し合わせ込んでゆく。その入
力例を図36に示しているが、手順は前述の寸法合わせ
処理の場合とほぼ同様であり、ウィンドウW2上で点滅
表示される端点のウィンドウW1での合わせ位置をマウ
ス12で指定しながら、モデル画像38に対する位置合
わせ入力を行ってゆく。この場合も、ウィンドウW1上
のモデル画像38に対し、位置合わせの終わった部分か
ら順に骨格画像39が重ね描画されてゆく。ここで、左
右の脚部及び腕部については、前述の寸法合わせ処理と
は異なり、個々に入力処理が行われることとなる。な
お、S1101(図27)において設定された教示不要
部位については、位置合わせ入力がスキップされる。
【0079】図31は、両脚部に相当する部位の位置合
わせ処理の流れを一例として示しており、右脚部及び左
脚部のそれぞれについて、上肢骨26の上端点L1(L
2)の位置合わせを行った後、下肢骨27の下端点Lf
1(Lf2)の位置合わせが行われるようになっている
(C401〜C403)。ここで、図10に示す拘束条
件により、L1(L2)及びLf1(Lf2)が指定さ
れれば、膝に相当するLk1(Lk2)の位置は自動的
に定まるので入力は行われない。このようにして、各端
点の画面上の座標が算出され、その画面座標と、予め記
憶されている各骨格単位の標準体寸法データに基づいて
実際の空間における端点の3次元座標が算出される。
【0080】次に、図27に戻ってS1110に進み、
上記位置合わせ処理では駆動データの生成が困難ないし
不可能な骨格単位ないし部位に対し、それらの空間位置
の補助入力処理を、マウス12ないしキーボード13を
使用することにより行う。この入力処理は、上記位置合
わせ処理とは別のウィンドウを開き、そのウィンドウ上
に該当する骨格単位ないし部位の画像を表示して、位置
設定のために予め用意された各種処理コマンド(例えば
骨格単位の平行移動、あるいは回転など)を、マウス1
2あるいはキーボード13からの入力により選択・実行
しながら、骨格単位や部位毎に個別に入力を行ってゆ
く。
【0081】以上で、1つのコマに対する入力処理が終
了するが、次のコマの処理に移る場合はコマ番号を更新
し、直前のコマの骨格画像39及びモデル画像38を描
画しなおすとともに(S1111〜S1113)、S1
107に返って処理を繰り返す。一方、コマへの入力作
業を終了する場合は(S1114〜S1116)、ウィ
ンドウW1とW2を閉じて図26のS1200に進む。
【0082】ここで、上述のようにして得られた各端点
の変位データが、そのまま駆動データとして使用される
場合にはS1300に進むが、その変位データから各ア
クチュエータの駆動量の算出まで行う場合には、S12
00の処理、すなわち上記入力により得られた、各コマ
毎の骨格単位の端点の空間位置座標に基づいて、骨格単
位を駆動するアクチュエータの駆動量を算出する処理が
挿入される。すなわち、図32に示すように、隣り合う
2枚のコマの番号を指定して、その各骨格単位の端点の
空間位置座標を読み込み、その空間位置座標に基づいて
各骨格単位間に設けられたアクチュエータの駆動量が算
出される(C501〜C503)。その算出処理の内容
は、前述の駆動量算出プログラム216aにより各アク
チュエータの駆動量を算出する処理とほぼ同様であるの
で詳しい説明は省略する。なお、最初のコマの骨格画像
が正対ポーズのものでない場合は、予め記憶されている
アクチュエータの基準位置をもとに、その最初のコマに
対する各アクチュエータの駆動位置を算出しておけばよ
い。
【0083】次に、図26のS1300に進み、入力が
終わった各コマに対しロボット動作の実時間軸上の時間
を設定する。その処理の詳細を図33のフローチャート
に示す。すなわち、時間設定用のウィンドウを開いて骨
格画像データをコマ番号順に読み出し、ウィンドウ内に
骨格画像を順次表示しながら時間入力を行ってゆく(C
601〜C605)。そして、C6051において、直
前のコマとの時間間隔から各アクチュエータの駆動速度
を算出し、C606において、その時間間隔で全てのア
クチュエータが駆動完了できるかどうかを判定する。完
了できるようであれば、C607でその入力された時間
及びアクチュエータ駆動速度を格納し、C608でコマ
番号をインクリメントしてC603に戻り、処理を繰り
返す。また、駆動完了できないようであればC605に
戻って時間入力をやり直す。そして、時間の入力処理が
終わるとC612でウィンドウを閉じて図26のS14
00に進む。
【0084】S1400では、最終的に得られた駆動デ
ータを駆動データ記憶装置10に記憶・保存する。その
処理の流れは図34に示す通りであって、まず、C70
1で中位動作コマンド名を入力する。そして、駆動デー
タはその部位別に分割され(C702)、下位動作デー
タのサブファイル、すなわち部位動作モジュールが形成
される(C702)。そして、それら部位動作モジュー
ルが、入力された中位動作コマンド名で統合されて、中
位動作ルーチンとして記憶装置10に保存される(C7
03)。なお、各部位動作モジュールは、互いに異なる
中位動作ルーチン間での交換や差替えが可能とされてい
る。
【0085】以上のようにして各部位の部位動作モジュ
ールは、駆動データ作成装置1により教示作成される
が、モデル画像に位置合わせされた骨格画像からは駆動
データの演算が困難あるいは不可能なロボット部位、す
なわち非教示部位が存在する。一例としては、手首、
指、眼、口、舌等である。この場合は、上記動作プログ
ラムにおいて、そのような非教示部位の位置決め命令ル
ーチン部分を、例えば定義ルーチンの一角をなすものと
して組み込むことができる。本実施例では、 set (部位名) <設定因子:=設定条件値> という形式にて位置決め命令ルーチン部分を記述するよ
うになっている。
【0086】具体的には、対応する非教示部位の移動開
始位置、移動終了位置及び移動速度を設定因子として選
び、数値入力するかあるいは予め用意された候補値から
選択する等により、所期の設定条件値を設定する。これ
を受けて図5の記憶部308に記憶されている非教示部
位駆動データ生成プログラムに基づき、図1のCPU2
04は、対応する部位のアクチュエータの駆動データを
算出する。例えば、アクチュエータがサーボモータやス
テッピングモータである場合には、移動開始位置及び移
動終了位置の値を受けてモータの回転開始位置と回転終
了位置を算出し、移動速度の値を受けてモータの回転数
を算出する。以下、本実施例のロボットにて使用れる非
教示部位とその動作種別、及び位置決め命令ルーチン部
分の形式等について、いくつかの例を示す。
【0087】 部位名:右眼(左眼)(部位指定情報:RIGHTEYE(LEFTEYE)) 。アクチュエータ:モータにより左右に回転駆動される。 書式:RIGHTEYE<do:=実行コマンド><till:=条件式> LEFTEYE<do:=実行コマンド><till:=条件式> 実行コマンド: straight :眼を正面に向ける right :右端位置(右眼差し) left :左端位置(左眼差し) goggle :キョロキョロする 動作終了条件句:実行コマンドがgoggleの時、眼の往復回数指示が可能。 (例:RIGHTEYE<do:=goggle><till:=repeat △>) 位置決め命令:set EYE<speed:=(速度指定情報)><righ t:=(右眼差し位置座標)><left:=(左眼差し位置座標)>(部位名 は、例えば左右眼共通であるが、左右別々に設定するようにしてもよい) speed :眼の移動スピードを指示 right :右眼差し位置を指示 left :左眼差し位置を指示 ・「右眼差し」は位置決め命令のrightで設定され
る位置まで移動 ・「左眼差し」は位置決め命令leftで設定される位
置まで移動 ・「キョロキョロ」は位置決め命令のrightとle
ftで設定される座標間を、往復回数指定(<til
l:=repeat n>)。往復回数が指定されてい
ない時は一往復のみとなる。そして最終の眼の位置は左
設定位置で停止する。なお眼は最初右側へ動かす。
【0088】 部位名:右瞼(左瞼)(部位指定情報:RIGHTEYELID(LEFTEY ELID) アクチュエータ:モータにより上下に駆動される。 書式:RIGHTEYELID<do:=実行コマンド><till:=条件式 > LEFTEYELID<do:=実行コマンド><till:=条件式> 実行コマンド open :「瞼を開ける」を命令 close :「瞼を閉じる」を命令 blink :「瞬きをする」を命令 動作終了条件句 実行コマンドがblinkの時、瞬き回数指示が可能。( 例:RIGHTEYELID<do:=blink><till:=repea t n>) 位置決め命令 set EYELID<open:=(時間設定情報)> (左右瞼共通) open :瞼を開けている時間を指定
【0089】 部位名:口(部位指定情報:MOUTH) アクチュエータ:モータにより開閉駆動される。 書式:MOUTH<do:=実行コマンド><till:=条件式> 実行コマンド open :「口を開ける」を命令 close :「口を閉じる」を命令 parrot :「口パクパクする」を命令 動作終了条件句 実行コマンドがparrotの時、回数指示が可能。(例 :MOUTH<do:=parrot><till:=repeat n>) 位置決め命令 set MOUTH<open:=(時間設定情報)>< close:=(時間設定情報)> open :口を開けている時間を指示 close :口を閉じている時間を指示
【0090】 部位名:舌(部位指定情報:TONGUS) アクチュエータ:モータにより出入れ駆動される。 書式:TONGUS<do:=実行コマンド><till:=条件式> 実行コマンド out :「舌を出す」を命令 in :「舌を入れる」を命令 lick :「ベロベロする」を命令 動作終了条件句 実行コマンドがlickの時、回数指示が可能。(例:T ONGUS<do:=lick><till:=repeat n>) 位置決め命令 set TONGUS<out:=(時間設定情報)>< in:=(時間設定情報)> out :舌を出している時間を指示 in :舌を入れている時間を指示
【0091】 部位名:手(部位指定情報:RIGHTFINGER(LEFTFINGER) ) アクチュエータ:シリンダにより、各指が独立に曲げ伸ばし駆動される。 書式 RIGHTFINGER<do:=実行コマンド> LEFTFINGER<do:=実行コマンド> 実行コマンド 指パターン指示(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 中位動作コマンド解析プログラム記憶部
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 3F059 AA00 BB06 FA05 FA06 FA07 FB12 5H215 AA07 BB10 CC07 CC09 CX01 CX04 GG02 GG04 GG09 HH03 KK03 5H269 AB33 BB08 CC09 EE13 EE27 EE30 GG08 GG09 KK03 NN08 NN16 NN18 QB03 QB04 QB14 QB17 QC01 QC03 QC05 QC06 QC10 QD03 QD05 QE18 SA07 SA08

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 上位のロボット動作をいくつかの基本動
    作の組み合わせとして把握し、前記基本動作に必要な各
    ロボット部位(以下、単に部位ともいう)の動作を規定
    する部位動作プログラムモジュール(以下、部位動作モ
    ジュールという)が、そのロボット部位に設けられたア
    クチュエータの駆動に関する駆動データを単位として形
    成され、その部位動作モジュールを複数組み合わせるこ
    とにより前記基本動作を規定する中位動作ルーチンが形
    成され、その前記中位動作ルーチンの組み合わせにより
    前記上位のロボット動作を規定する上位動作プログラム
    が形成される階層型プログラムとして、ロボット動作プ
    ログラムが記述されており、 必要な部位毎の部位動作モジュール及び/又は部位動作
    モジュールを特定するための部位動作モジュール特定情
    報を複数組み合わせることにより記述され、予め定めら
    れた標準的な基本動作(以下、標準動作という)を規定
    する標準動作ルーチンを複数記憶した標準動作ルーチン
    記憶部と、 複数の中位動作ルーチンを記憶するとともに、それら中
    位動作ルーチンの少なくとも一部のものを、前記複数の
    標準動作ルーチンのうちの所定のものを選択する標準動
    作ルーチン選択コマンドと、その選択された標準動作ル
    ーチンに対し、特定の部位動作モジュールの削除、入替
    え、及び新たな部位動作モジュールの追加の少なくとも
    いずれかを指示する動作変更コマンドとを含む標準変更
    型中位動作ルーチンとして記憶している中位動作ルーチ
    ン記憶部と、 各中位動作ルーチンと対応付けられた中位動作コマンド
    を用い、これら中位動作コマンドの組み合わせにより規
    定される上位動作プログラムを記憶する上位動作プログ
    ラム記憶部と、 その上位動作プログラム記憶部に記憶された前記上位動
    作プログラムを、前記中位動作コマンドの単位で読み出
    すプログラム読出手段と、 その読み出された中位動作コマンドに対応する中位動作
    ルーチンが前記標準変更型中位動作ルーチンであった場
    合には、それに含まれる標準動作ルーチン選択コマンド
    が指示する標準動作ルーチンと、同じく動作変更コマン
    ドが指示する変更内容とに基づき、当該標準変更型中位
    動作ルーチンを実行すべき部位動作モジュールの組み合
    わせの形に展開するプログラム展開手段と、 読み出された各中位動作コマンドに対応する中位動作ル
    ーチンの組み合わせに基づいて、前記アクチュエータの
    駆動を制御するアクチュエータ動作制御部とを含むこと
    を特徴とするロボットシステム。
  2. 【請求項2】 前記複数のロボット部位のうちの少なく
    とも一部のものが、複数の骨格単位とそれら骨格単位の
    間に配置された前記アクチュエータとを有する骨格を備
    えるものとされるとともに、 前記複数の部位動作モジュールのうち、少なくとも一部
    のものは、下記の要件を備えた駆動データ作成装置、す
    なわち、 ロボット動作に対応するモデルの動作を経時的に記録し
    た一連のモデル画像と、前記骨格の画像(以下、骨格画
    像という)を表示する画像表示手段と、 その表示手段において前記骨格画像を、前記モデル画像
    に対して位置合わせする骨格位置決め手段と、 時間軸上において互いに前後するモデル画像に対しそれ
    ぞれ位置合わせされた前記骨格画像の変位に基づいて、
    前記駆動データを算出するデータ演算手段とを含む駆動
    データ作成装置により、動作のコマ送り単位で作成され
    た駆動データを、ロボットの部位別に編集することによ
    り作成された教示動作ルーチン部分である請求項1記載
    のロボットシステム。
  3. 【請求項3】 複数の部位動作モジュールを記憶する部
    位動作モジュール記憶手段と、 前記標準変更型中位動作ルーチンを前記部位動作モジュ
    ールに展開するための中位動作ルーチン展開メモリ領域
    が形成された展開記憶手段とを備え、 前記プログラム展開手段は、前記動作変更コマンドが、
    特定の部位動作モジュールの削除を指示するものであっ
    た場合には、その指示された部位動作モジュールを削除
    しつつ、また入替えを指示するものであった場合にはそ
    の指示された部位動作モジュールを指定された部位動作
    モジュールと入れ替えつつ、さらに新たな部位動作モジ
    ュールの追加を指示するものであった場合には、その部
    位動作モジュールを追加しつつ、指定された前記標準動
    作ルーチンを構成する部位動作モジュールを前記部位動
    作モジュール記憶手段から読み出して、前記中位動作ル
    ーチン展開メモリ領域にロードするものである請求項1
    又は2に記載のロボットシステム。
  4. 【請求項4】 前記部位動作モジュール記憶手段には、
    前記複数の部位動作モジュールが、部位を特定するため
    の部位特定情報及び動作内容を特定するための動作特定
    情報と対応付けた形で記憶されており、 前記動作変更コマンドは、動作変更に係る部位を特定す
    るための部位特定情報と、変更後の動作内容を規定する
    部位動作モジュールを特定するための動作特定情報とを
    含むものである請求項3記載のロボットシステム。
  5. 【請求項5】 前記プログラム展開手段は、前記動作変
    更コマンド中の部位特定情報により特定される部位が、
    前記標準動作ルーチン中の各部位動作モジュールに対応
    する部位のいずれかと同一であった場合に、その部位に
    係る部位動作モジュールを、前記動作特定情報により特
    定される部位動作モジュールと入れ替えるものである請
    求項4記載のロボットシステム。
  6. 【請求項6】 前記プログラム展開手段は、前記動作変
    更コマンド中の部位特定情報により特定される部位が、
    前記標準動作ルーチン中の各部位動作モジュールに対応
    する部位のいずれとも異なる場合に、前記動作特定情報
    が特定する部位動作モジュールを前記標準動作ルーチン
    に追加するものである請求項4又は5に記載のロボット
    システム。
  7. 【請求項7】 前記プログラム展開手段は、前記動作変
    更コマンド中の部位特定情報により特定される部位が、
    前記標準動作ルーチン中の各部位動作モジュールに対応
    する部位のいずれかと同一であった場合に、その部位に
    係る部位動作モジュールを削除するものである請求項4
    ないし6のいずれかに記載のロボットシステム。
  8. 【請求項8】 前記中位動作ルーチン記憶部に記憶され
    ている複数の中位動作ルーチンのうち一部のものが、別
    の複数の中位動作ルーチン同士の組み合わせ、又は1な
    いし複数の別の中位動作ルーチンと1ないし複数の部位
    動作モジュールとの組み合わせとして、各々対応する基
    本動作及び/又は部位動作を指定するための動作指定コ
    マンドを用いて記述された複合型中位動作ルーチンとさ
    れており、 前記プログラム展開手段は、読み出された中位動作コマ
    ンドに対応する中位動作ルーチンが前記複合型中位動作
    ルーチンであった場合には、それに含まれる動作指定コ
    マンドの内容を解析して、当該複合型中位動作ルーチン
    を実行すべき部位動作モジュールの組み合わせの形に展
    開するものである請求項1ないし7のいずれかに記載の
    ロボットシステム。
  9. 【請求項9】 前記動作指定コマンドのうち部位動作を
    指定するための部位動作コマンドは、部位を特定するた
    めの部位特定情報と、動作内容を規定する部位動作モジ
    ュールを特定するための動作特定情報とを含むものであ
    る請求項8記載のロボットシステム。
  10. 【請求項10】 前記複合型中位動作ルーチンは、組み
    合わされるべき中位動作ルーチン及び/又は部位動作モ
    ジュールに係る基本動作及び/又は部位動作が、時系列
    的な重なりを生じないよう逐次的に実行される重ね合わ
    せ型中位動作ルーチンとして構築される請求項8又は9
    に記載のロボットシステム。
  11. 【請求項11】 前記複合型中位動作ルーチンは、組み
    合わされるべき中位動作ルーチン及び/又は部位動作モ
    ジュールに係る基本動作及び/又は部位動作が、時系列
    的に少なくとも部分的な重なりを生じた状態で実行され
    る組合わせ型中位動作ルーチンとして構築される請求項
    8又は9に記載のロボットシステム。
  12. 【請求項12】 前記標準変更型中位動作ルーチン及び
    /又は前記複合型中位動作ルーチンにおいては、対応す
    る中位動作ルーチン又は部位動作モジュールに基づく基
    本動作又は部位動作の動作条件を規定する動作条件規定
    コマンドが含まれており、 前記アクチュエータ動作制御部は、前記動作条件規定コ
    マンドが規定する動作条件に従い、前記基本動作又は部
    位動作に係るアクチュエータの駆動を制御するものであ
    る請求項1ないし11のいずれかに記載のロボットシス
    テム。
  13. 【請求項13】 前記動作条件規定コマンドは、基本動
    作又は部位動作の動作開始タイミングを規定する動作開
    始タイミング規定コマンドを含む請求項12記載のロボ
    ットシステム。
  14. 【請求項14】 前記動作開始タイミング規定コマンド
    は、予め定められた時刻原点からの経過時間に基づいて
    前記動作開始タイミングを与えるものである請求項13
    記載のロボットシステム。
  15. 【請求項15】 前記動作開始タイミング規定コマンド
    は、前記教示動作ルーチン部分により規定されるある部
    位の動作を基準として用いたときの、その部位動作の開
    始時刻、終了時刻又は特定のコマ位置通過時刻のいずれ
    かに基づいて前記動作開始タイミングを与えるものであ
    る請求項12ないし14のいずれかに記載のロボットシ
    ステム。
  16. 【請求項16】 前記動作開始タイミング規定コマンド
    が特に与えられていないない場合に、対応する基本動作
    又は部位動作の動作開始タイミングを予め定められたデ
    フォルト開始時刻に設定する動作開始タイミング設定手
    段が設けられている請求項13ないし15のいずれかに
    記載のロボットシステム。
  17. 【請求項17】 前記標準変更型中位動作ルーチン及び
    前記複合型中位動作ルーチンには、前記駆動データ作成
    装置による教示動作ルーチン部分の作成がなされないロ
    ボット部位(以下、非教示部位と称する)の部位動作モ
    ジュールが含まれる場合に、その部位動作モジュールに
    対応する非教示部位の位置決め命令ルーチン部分が組み
    込まれており、 その位置決め命令ルーチン部分の内容に基づいて、対応
    する非教示部位のアクチュエータの駆動データを生成す
    る非教示部位駆動データ生成手段が設けられている請求
    項2ないし16のいずれかに記載のロボットシステム。
  18. 【請求項18】 前記位置決め命令ルーチン部分は、対
    応する非教示部位の移動開始位置、移動終了位置及び移
    動速度の少なくともいずれかを指定する位置決め情報が
    含まれている請求項17記載のロボットシステム。
  19. 【請求項19】 前記上位動作プログラムは、前記中位
    動作コマンドと前記部位動作コマンドとを混在させた形
    で記述することが許されており、 前記プログラム読出手段は、その部位動作コマンドを前
    記中位動作コマンドと等価なものとして認識し、これに
    対応する部位動作モジュールを読み出すものとされる請
    求項1ないし18のいずれかに記載のロボットシステ
    ム。
  20. 【請求項20】 前記上位動作プログラムは、前記中位
    動作コマンドを含む動作命令文が、その実行順を反映し
    た所定の配列に従い記述された動作ルーチンと、前記変
    更型中位動作ルーチン及び前記複合型中位動作ルーチン
    の少なくともいずれかの内容を規定する定義ルーチンと
    を含み、 前記プログラム展開手段による前記変更型中位動作ルー
    チンあるいは前記複合型中位動作ルーチンの展開処理
    は、それら中位動作ルーチンに含まれるべき部位動作モ
    ジュールの読出しに先立って、前記定義ルーチンの内容
    に従い実行される請求項1ないし19のいずれかに記載
    のロボットシステム。
JP25014198A 1998-09-03 1998-09-03 ロボットシステム Expired - Fee Related JP3995348B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25014198A JP3995348B2 (ja) 1998-09-03 1998-09-03 ロボットシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25014198A JP3995348B2 (ja) 1998-09-03 1998-09-03 ロボットシステム

Publications (2)

Publication Number Publication Date
JP2000153479A true JP2000153479A (ja) 2000-06-06
JP3995348B2 JP3995348B2 (ja) 2007-10-24

Family

ID=17203438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25014198A Expired - Fee Related JP3995348B2 (ja) 1998-09-03 1998-09-03 ロボットシステム

Country Status (1)

Country Link
JP (1) JP3995348B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010088723A (ko) * 2001-08-25 2001-09-28 장희남 로봇 제어 장치 및 방법
WO2002076686A1 (fr) * 2001-03-27 2002-10-03 Sony Corporation Appareil d'apprentissage d'actions et procede d'apprentissage d'actions pour systeme robotique, et support de memoire
JP2005031158A (ja) * 2003-07-07 2005-02-03 Univ Waseda 弾性体形状をモデル化する方法及びその装置、並びにそのモデル化する方法を用いた音響シミュレーション方法及びその装置。
JP2011121167A (ja) * 2009-12-09 2011-06-23 Korea Electronics Telecommun ロボットシステムの行為に基づくタスク実現方法
JP2018015843A (ja) * 2016-07-28 2018-02-01 日本電信電話株式会社 コミュニケーション装置および方法
CN116214528A (zh) * 2023-05-10 2023-06-06 深圳市安信达存储技术有限公司 一种人形机器人存储控制方法及控制系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002076686A1 (fr) * 2001-03-27 2002-10-03 Sony Corporation Appareil d'apprentissage d'actions et procede d'apprentissage d'actions pour systeme robotique, et support de memoire
US7216082B2 (en) 2001-03-27 2007-05-08 Sony Corporation Action teaching apparatus and action teaching method for robot system, and storage medium
KR20010088723A (ko) * 2001-08-25 2001-09-28 장희남 로봇 제어 장치 및 방법
JP2005031158A (ja) * 2003-07-07 2005-02-03 Univ Waseda 弾性体形状をモデル化する方法及びその装置、並びにそのモデル化する方法を用いた音響シミュレーション方法及びその装置。
JP2011121167A (ja) * 2009-12-09 2011-06-23 Korea Electronics Telecommun ロボットシステムの行為に基づくタスク実現方法
JP2018015843A (ja) * 2016-07-28 2018-02-01 日本電信電話株式会社 コミュニケーション装置および方法
CN116214528A (zh) * 2023-05-10 2023-06-06 深圳市安信达存储技术有限公司 一种人形机器人存储控制方法及控制系统
CN116214528B (zh) * 2023-05-10 2023-10-03 深圳市安信达存储技术有限公司 一种人形机器人存储控制方法及控制系统

Also Published As

Publication number Publication date
JP3995348B2 (ja) 2007-10-24

Similar Documents

Publication Publication Date Title
US5990878A (en) Sign language editing apparatus
Kopp et al. Synthesizing multimodal utterances for conversational agents
JP5468047B2 (ja) デジタル顔モデルのアニメーション化のためのシステム及び方法
US6011562A (en) Method and system employing an NLE to create and modify 3D animations by mixing and compositing animation data
US5731821A (en) Computer user interface for step-driven character animation
Simko et al. Embodied task dynamics.
EP1748391A2 (en) Three-dimensional animation of soft tissue of characters using controls associated with a surface mesh
JP4039595B2 (ja) ロボットシステム
JP3004666B2 (ja) コンピュータによるアニメーション方法及びその装置
JP2001344612A (ja) アニメーション作成方法及びアニメーション作成装置並びにアニメーション作成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP6424050B2 (ja) 多関節骨格モデル処理装置及びプログラム
JP3995348B2 (ja) ロボットシステム
US11948240B2 (en) Systems and methods for computer animation using an order of operations deformation engine
Nakaoka et al. Creating facial motions of Cybernetic Human HRP-4C
JP2000155606A (ja) 動作制御システム
JP3668289B2 (ja) ロボットの動作教示システム
JP2998663B2 (ja) アニメーション作成装置
JP2820639B2 (ja) ロボットの制御方法及びロボットシステム
JPH02216588A (ja) 対話型スクリプト・アニメーション生成方法
Kalra et al. 3d interactive free form deformations for facial expressions
Vasconcelos Blender 2.5 Character Animation Cookbook: 50 Great Recipes for Giving Soul to Your Characters by Building High-quality Rigs and Understanding the Principles of Movement
JP3672723B2 (ja) 人物cg制作方法
JP2003346181A (ja) アニメーション画像の生成プログラム
JP2024536942A (ja) 制御可能オブジェクトの少なくとも1つの特性を制御するための方法、関係するシステム及び関係するデバイス
Magnenat-Thalmann et al. A model for creating and visualizing speech and emotion

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070731

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees