JP2000153478A - Robot system - Google Patents

Robot system

Info

Publication number
JP2000153478A
JP2000153478A JP10250140A JP25014098A JP2000153478A JP 2000153478 A JP2000153478 A JP 2000153478A JP 10250140 A JP10250140 A JP 10250140A JP 25014098 A JP25014098 A JP 25014098A JP 2000153478 A JP2000153478 A JP 2000153478A
Authority
JP
Japan
Prior art keywords
routine
program
robot
command
level
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
JP10250140A
Other languages
Japanese (ja)
Other versions
JP4039595B2 (en
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 JP25014098A priority Critical patent/JP4039595B2/en
Publication of JP2000153478A publication Critical patent/JP2000153478A/en
Application granted granted Critical
Publication of JP4039595B2 publication Critical patent/JP4039595B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To easily generate or change a program into complicated operation interconnected with plural part operations by constituting a middle operation routine as aggregation of routines for regulating operation with respective robot parts, and regulating a condition with respective part operations by an operation condition regulating command. SOLUTION: An upper operation program describes desired upper motion by selecting/arranging proper one from a preprepared middle operation command. A program generation screen is opened in a display unit 211, a upper operation command is inputted by using an input device 208, and a upper operation program name is imparted to the input content to be stored in upper operation program storage part of a storage device 207. A stored upper operation program is displayed on the program generation screen, and a upper operation command is added, eliminated and inserted on the basis of input from the input device 208 to correct/edit a program.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はロボットシステムに
関する。
[0001] The present invention relates to a robot system.

【0002】[0002]

【従来の技術】人間の動きを模写するロボット等、各種
多関節ロボットに所定の動作を行わせる場合、その動作
をプログラミングするために、従来はロボットを駆動す
る各アクチュエータの駆動量を、動作の時系列に従って
個別に設定する方法がとられている。この場合、あるロ
ボットの動作において、複数のロボット部位の動きが同
時にあるいは連係して起こる場合、それらロボット部位
毎にアクチュエータの駆動量を指定しなければならな
い。例えば、「歩く」という動作を例にとれば、これに
は両足の動きの他に、腕の振りや肩の上下といった動作
が付随しており、それら各部の動作のプログラムが個別
に組み立てられる。そして、「1歩前に進み出て礼を
し、そのまま下がってもとの場所に帰る」というよう
な、より複雑な上位動作をプログラミングする場合は、
その上位動作を、「1歩前に進み出る」、「礼をす
る」、「1歩下がる」という下位動作に分解してプログ
ラミング作業が行われる。
2. Description of the Related Art When various articulated robots, such as a robot that imitates a human motion, perform a predetermined operation, the driving amount of each actuator for driving the robot is conventionally determined by programming the operation. A method of individually setting the time series is adopted. In this case, in the operation of a certain robot, when the movements of a plurality of robot parts occur simultaneously or in cooperation, the drive amount of the actuator must be specified for each of the robot parts. For example, taking the action of "walking" as an example, this involves, in addition to the movement of both feet, the movement of swinging the arm and raising and lowering the shoulder, and a program of the operation of each part is individually assembled. And if you want to program a more complex higher-level action, such as "go one step forward and thank and go down and return to the original place"
The programming operation is performed by disassembling the higher-order operation into lower-order operations such as “go one step forward”, “grate”, and “one step down”.

【0003】上記従来の方法は、ロボット部位毎に多数
のアクチュエータの駆動量やその作動順序をいちいち設
定しなければならないので、プログラミング作業に時間
がかかり、複雑な上位動作のプログラムを効率よく作成
するのに適しているとは言い難い。また、上位動作の内
容を変更したい場合には、各アクチュエータの駆動量レ
ベルでプログラムないしデータを書き換えなければなら
ず、その作業に時間がかかる。すなわち、ロボットの動
作内容の変更がそれほど容易でないため、ロボットの各
種動作への融通性に欠ける難点がある。
In the above-described conventional method, since the drive amounts of a large number of actuators and the operation order of the actuators must be set for each robot part, it takes a long time to perform a programming operation, and efficiently creates a complicated program for a higher-order operation. It is hard to say that it is suitable for. Further, when it is desired to change the contents of the higher-order operation, it is necessary to rewrite the program or data at the drive amount level of each actuator, and this operation takes time. That is, since it is not so easy to change the contents of the operation of the robot, there is a difficulty in lacking flexibility in various operations of the robot.

【0004】そこで、これを解決するために、特開平8
−314524号公報には、次のような階層型制御プロ
グラムを用いる制御方式が提案されている。この制御プ
ログラムにおいては、複数のロボット部位に設けられた
アクチュエータの駆動に関する駆動データを単位として
下位動作データを形成し、その下位動作データを複数統
合してロボットの基本動作を規定する中位動作ルーチン
を構築する。また、それら各中位動作ルーチンに中位動
作コマンドを対応させ、その中位動作コマンドの組み合
わせにより上位動作プログラムを規定する。そして、そ
の上位動作プログラムを前記中位動作コマンドの単位で
読み出しつつ、その読み出された各中位動作コマンドに
対応する中位動作ルーチンの組み合わせに基づいて、各
アクチュエータの駆動を制御する。
To solve this problem, Japanese Patent Laid-Open Publication No.
Japanese Patent Application Publication No. 314524 proposes a control method using the following hierarchical control program. In this control program, lower-level operation data is formed in units of drive data relating to driving of actuators provided in a plurality of robot parts, and a plurality of lower-level operation data are integrated to define a basic operation routine of the robot. To build. In addition, a middle-level operation command is made to correspond to each of the middle-level operation routines, and a higher-level operation program is defined by a combination of the middle-level operation commands. Then, while reading the higher-order operation program in units of the above-mentioned middle-level operation commands, the driving of each actuator is controlled based on a combination of the middle-level operation routines corresponding to the read-out middle-level operation commands.

【0005】[0005]

【発明が解決しようとする課題】ところで、上記方式に
おいては、ロボットの基本動作を規定する中位動作ルー
チンの種類を増やしたい場合、新たに追加したい基本動
作の中位動作ルーチンを、その都度下位動作データの単
位に遡って作成しなければならない。この中位動作ルー
チンの作成作業は、直感的には把握しにくい下位動作デ
ータレベルでしか行うことができないから、専門的な知
識とプログラミング作業への高度の熟練とを要し、一般
のユーザには甚だ扱いにくい内容となる。とりわけ互い
に異なる部位動作が連係した複合動作となる場合等にお
いて、タイミング等の動作条件設定が特に面倒である。
この場合、プログラミングに時間がかかるばかりでな
く、プログラムの見通しや全体把握も容易でないため、
所期のロボット動作実現には一層の困難を伴う。従っ
て、中位動作コマンドの使用により簡単なプログラミン
グが実現されている点についてはよいが、上記事情によ
り、専門家以外の者は予め用意された中位動作コマンド
(基本動作)の枠を一歩も超えることができず、融通性
に乏しい欠点がある。
In the above method, when it is desired to increase the number of intermediate operation routines that define the basic operation of the robot, the intermediate operation routine to be newly added is replaced by a lower one each time. It must be created back to the unit of motion data. Since the work of creating this medium-level operation routine can be performed only at the lower-level operation data level that is difficult to intuitively understand, it requires specialized knowledge and a high degree of skill in programming work, and it is difficult for ordinary users. Is extremely difficult to handle. In particular, in the case of a composite operation in which different part operations are linked to each other, setting operation conditions such as timing is particularly troublesome.
In this case, not only is programming time consuming, but it is also not easy to grasp
The realization of the intended robot operation involves even more difficulties. Therefore, it is good that simple programming is realized by using the middle operation command. However, in view of the above circumstances, a person other than an expert can step up the frame of the middle operation command (basic operation) prepared in advance by one step. There is a disadvantage that it cannot be exceeded, and the flexibility is poor.

【0006】本発明の課題は、ロボットに複数の部位動
作が連係した複雑な動作を行わせる場合においてもプロ
グラム作成あるいは変更が極めて簡単であり、ひいては
所期のロボット動作を思い通りに実現することができる
ロボットシステムを提供することにある。
An object of the present invention is to make it easy to create or change a program even when a robot performs a complicated operation in which a plurality of parts are linked, and to realize the intended robot operation as desired. It is to provide a robot system which can be used.

【0007】[0007]

【課題を解決するための手段及び作用・効果】上記課題
を解決するために本発明のロボットシステムは、上位の
ロボット動作をいくつかの基本動作の組み合わせとして
把握し、基本動作に必要な各ロボット部位(以下、単に
部位ともいう)の動作を規定する部位動作プログラムモ
ジュール(以下、部位動作モジュールという)が、その
ロボット部位に設けられたアクチュエータの駆動に関す
る駆動データを単位として形成され、その部位動作モジ
ュールを複数組み合わせることにより基本動作を規定す
る中位動作ルーチンが形成され、その中位動作ルーチン
の組み合わせにより上位のロボット動作を規定する上位
動作プログラムが形成される階層型プログラムとして、
ロボット動作プログラムが記述されており、中位動作ル
ーチンを記憶する中位動作ルーチン記憶部と、各中位動
作ルーチンと対応付けられた中位動作コマンドを用い、
これら中位動作コマンドの組み合わせにより規定される
上位動作プログラムを記憶する上位動作プログラム記憶
部と、その上位動作プログラム記憶部に記憶された上位
動作プログラムを、中位動作コマンドの単位で読み出す
プログラム読出手段と、読み出された各中位動作コマン
ドに対応する中位動作ルーチンの組み合わせに基づい
て、アクチュエータの駆動を制御するアクチュエータ動
作制御部とを含み、中位動作ルーチンを構成する部位動
作モジュールには、対応する部位動作の動作開始タイミ
ングを規定する動作開始タイミング規定コマンドを含ん
だ動作条件規定コマンドが含まれており、アクチュエー
タ動作制御部は、動作条件規定コマンドが規定する動作
条件に従い、基本動作又は部位動作に係るアクチュエー
タの駆動を制御することを特徴とする。
Means for Solving the Problems and Action / Effects To solve the above problems, a robot system of the present invention grasps a higher-order robot operation as a combination of several basic operations, and controls each robot required for the basic operation. A part operation program module (hereinafter, referred to as a part operation module) that defines an operation of a part (hereinafter, also simply referred to as a part) is formed in units of drive data relating to driving of an actuator provided in the robot part, and the part operation is performed. As a hierarchical program in which a middle-level operation routine that defines a basic operation is formed by combining a plurality of modules, and a higher-level operation program that defines a higher-order robot operation is formed by a combination of the middle-level operation routines.
A robot operation program is described, a medium operation routine storage unit that stores a medium operation routine, and a medium operation command associated with each medium operation routine,
A higher-order operation program storage unit that stores a higher-order operation program defined by a combination of these middle-order operation commands; and a program reading unit that reads the higher-order operation program stored in the higher-order operation program storage unit in units of a middle-order operation command. And, based on a combination of the middle operation routine corresponding to each read middle operation command, based on the combination of the actuator operation control unit that controls the drive of the actuator, the part operation module constituting the middle operation routine An operation condition definition command including an operation start timing definition command that defines an operation start timing of a corresponding part operation is included.The actuator operation control unit performs the basic operation or the operation according to the operation condition defined by the operation condition definition command. Controls driving of actuators related to part movement And wherein the door.

【0008】このロボットシステムにおいては、中位動
作ルーチンを、ロボット部位毎の動作を規定するルーチ
ン、すなわち部位動作モジュールの寄せ集めとして構成
し、さらに、動作条件規定コマンドにより各部位動作毎
に条件規定を行うようにしている。この動作条件規定コ
マンドは、基本動作又は部位動作の動作開始タイミング
を規定する動作開始タイミング規定コマンドを含むの
で、複数の部位動作を同時連係的に組み合わせる場合、
動作開始タイミング規定コマンドにより動作毎の開始タ
イミングを規定することで、ある部位の動作を他の部位
よりも遅れて開始させたり、あるいはある動作が終了し
た後に特定部位の動作を開始させたり、さらには特定部
位同士の動作を同時に開始させたりといった複雑な動作
指定を簡単に行うことが可能となる。
In this robot system, the middle-level operation routine is configured as a routine for defining the operation of each robot part, that is, a collection of part operation modules, and furthermore, a condition definition command is used to define conditions for each part operation. To do. Since this operation condition defining command includes an operation start timing defining command that defines the operation start timing of the basic operation or the part operation, when a plurality of part operations are simultaneously and cooperatively combined,
By defining the start timing for each operation by the operation start timing defining command, the operation of a certain part can be started later than the other parts, or the operation of a specific part can be started after the completion of a certain operation, and Makes it possible to easily specify complicated operations such as starting operations of specific parts at the same time.

【0009】その結果、中位動作ルーチンの作成作業が
直感的に把握しやすくなるので、専門的な知識とプログ
ラミング作業への高度の熟練とを有さない一般のユーザ
でも、簡単に扱うことができるようになり、またプログ
ラミングの幅も拡げることができる。他方、中位動作ル
ーチンが部位別の動作モジュール単位で構成されている
から、特定の部位の動作のみを別の動作に変更したい、
あるいは該部位の動作を行わせないようにしたい、さら
には新たな部位動作を追加したい、といった要望にも、
部位動作モジュールの入替え、削除、追加により簡単に
対応できる。いずれにせよ、ロボットに複数の部位動作
が組み合わさった複雑な動作を行わせる場合でも、プロ
グラム作成あるいは変更が極めて簡単となり、プログラ
ムの見通しや全体把握も容易になるから、所期のロボッ
ト動作を思い通りに実現することができる。
As a result, the task of creating the middle-level operation routine can be intuitively grasped easily, so that even a general user who does not have specialized knowledge and a high level of skill in programming can easily handle the task. Can be done, and the range of programming can be expanded. On the other hand, since the middle-level operation routine is configured in units of operation modules for each part, we want to change only the operation of a specific part to another operation,
Or even if there is a request to not perform the operation of the part, or to add a new part operation,
It can be easily dealt with by replacing, deleting and adding the part operation module. In any case, even when making the robot perform complex movements combining multiple part movements, it is extremely easy to create or change the program, and it is easy to see the program and understand the entire program. It can be realized as desired.

【0010】動作開始タイミング規定コマンドは、予め
定められた時刻原点からの経過時間に基づいて動作開始
タイミングを与えるものとすることができる。この場合
は、例えばタイマー計測等による時間把握により動作タ
イミングを簡単に規定することができる。
[0010] The operation start timing defining command may give an operation start timing based on a time elapsed from a predetermined time origin. In this case, the operation timing can be easily defined by grasping the time by, for example, timer measurement.

【0011】上記ロボットシステムにおいては、ロボッ
トを、複数のロボット部位のうちの少なくとも一部のも
のが、複数の骨格単位とそれら骨格単位の間に配置され
たアクチュエータとを有する骨格を備えるものとして構
成できる。この場合、複数の部位動作モジュールのう
ち、少なくとも一部のものを、下記の要件を備えた駆動
データ作成装置、すなわち、ロボット動作に対応するモ
デルの動作を経時的に記録した一連のモデル画像と、骨
格の画像を表示する画像表示手段と、その表示手段にお
いて骨格画像を、モデル画像に対して位置合わせする骨
格位置決め手段と、時間軸上において互いに前後するモ
デル画像に対しそれぞれ位置合わせされた骨格画像の変
位に基づいて、駆動データを算出するデータ演算手段と
を含む駆動データ作成装置により、動作のコマ送り単位
で作成された駆動データを、ロボットの部位別に編集す
ることにより作成された教示動作ルーチン部分とするこ
とができる。
In the above-mentioned robot system, the robot is configured such that at least a part of the plurality of robot parts has a skeleton having a plurality of skeleton units and an actuator disposed between the skeleton units. it can. In this case, at least a part of the plurality of part operation modules is a driving data creation device having the following requirements, that is, a series of model images in which the operation of the model corresponding to the robot operation is recorded over time. Image display means for displaying an image of a skeleton, skeleton positioning means for aligning the skeleton image with respect to the model image on the display means, and skeletons which are respectively aligned with the model images preceding and succeeding each other on the time axis A teaching operation created by editing drive data created in units of frame-by-frame operation for each part of the robot by a drive data creation device including data calculation means for calculating drive data based on the displacement of the image. It can be a routine part.

【0012】この方式によれば、例えば、ある基本動作
を人間のモデルに実際に行わせてこれをコマ単位の一連
の画像として記録し、それら各画像にロボットの骨格画
像をそれぞれ位置合わせすることによって、経時的に変
化するモデル動作の特定の時刻毎に、骨格画像のモデル
画像に対する位置決めが行われ、隣り合う画像間での骨
格の変位に基づいて駆動データが演算される。いわば、
モデルの動きを直接ロボットに教示するイメージによ
り、直感的な駆動データ生成が可能となるのである。従
って、その中位動作に含まれる各部位毎の下位動作デー
タを一括して得ることができ、中位動作コマンドを付与
して記憶部に保存すればそのまま中位動作ルーチンとし
ての使用が可能となる。そして、その駆動データを作成
するための作業は、画像表示手段の画面上でモデル画像
に骨格画像を位置合わせする操作が中心となるので内容
が理解しやすく、また、ロボットの部位毎にアクチュエ
ータの駆動量をいちいち設定する必要がなくなるので、
上位動作プログラム作成に必要な多量の駆動データを合
理的かつ簡便に得ることができる。
According to this method, for example, a certain basic operation is actually performed by a human model, and this is recorded as a series of images in frame units, and a skeleton image of the robot is aligned with each image. Accordingly, the skeleton image is positioned with respect to the model image at each specific time of the model operation that changes over time, and drive data is calculated based on the skeleton displacement between adjacent images. In other words,
Intuitive drive data generation is possible with the image of directly teaching the movement of the model to the robot. Therefore, lower operation data for each part included in the intermediate operation can be collectively obtained, and if the intermediate operation command is added and stored in the storage unit, it can be used as it is as the intermediate operation routine. Become. The operation for creating the drive data is mainly performed by the operation of aligning the skeleton image with the model image on the screen of the image display means, so that the contents are easy to understand. Since there is no need to set the drive amount one by one,
A large amount of drive data required for creating a higher-level operation program can be obtained rationally and easily.

【0013】この場合は、教示動作ルーチン部分により
規定されるある部位の動作を基準として用い、動作開始
タイミング規定コマンドを、その部位動作の開始時刻、
終了時刻又は特定のコマ位置通過時刻のいずれかに基づ
いて動作開始タイミングを与えるものとすることができ
る。これは、特定部位の動作を基準にタイミングを設定
したい場合に便利であり、特に部位間の連係動作タイミ
ング設定が容易になるので、複雑な動作のプログラミン
グを一層簡単に行うことができる。
In this case, an operation start timing defining command is used as a reference, based on the operation of a part defined by the teaching operation routine, and the start time of the part operation,
The operation start timing can be given based on either the end time or the specific frame position passing time. This is convenient when it is desired to set the timing based on the operation of a specific part. In particular, since the setting of the linked operation timing between the parts becomes easy, the programming of a complicated operation can be performed more easily.

【0014】次に、前記した駆動データ作成装置により
教示動作ルーチン部分を作成する場合、例えば、モデル
画像に位置合わせされた骨格画像からは駆動データの演
算が困難あるいは不可能なロボット部位が存在する場合
がある(例えば手首、指、眼、口等の動き、ランプの点
灯など)。そして、中位動作ルーチンに、上記のような
要因により、駆動データ作成装置による教示動作ルーチ
ン部分の作成がなされないロボット部位(非教示部位)
の部位動作モジュールが含まれる場合は、その部位動作
モジュールに対応する非教示部位の位置決め命令ルーチ
ン部分をプログラム中に組み込んでおくことができる。
また、その位置決め命令ルーチン部分の内容に基づい
て、対応する非教示部位のアクチュエータの駆動データ
を生成する非教示部位駆動データ生成手段を設けること
ができる。
Next, when a teaching operation routine is created by the above-described drive data creation device, for example, there is a robot part where it is difficult or impossible to calculate drive data from a skeleton image aligned with a model image. There are cases (for example, movement of a wrist, finger, eyes, mouth, etc., lighting of a lamp, etc.). The robot part (non-teaching part) in which the driving data creation device does not create the teaching operation routine part due to the above factors in the middle-level operation routine.
When the part operation module is included, the positioning instruction routine portion of the non-teaching part corresponding to the part operation module can be incorporated in the program.
Further, a non-taught portion drive data generating means for generating drive data of the actuator of the corresponding non-taught portion based on the contents of the positioning command routine can be provided.

【0015】上記構成では、駆動データ作成装置による
データ作成の不能な非教示部位の動作を組み込む場合
に、位置決め命令ルーチン部分の内容に基づいて、対応
する非教示部位のアクチュエータの駆動データが、プロ
グラム実行中に自動生成されることとなる。これによ
り、各種非教示部位に対する駆動データを予め用意する
必要がなくなり、また非教示部位の部位動作の組込みも
非常に簡単になるので、プログラミングの手間を省くこ
とができる。この場合、位置決め命令ルーチン部分は、
対応する非教示部位の移動開始位置、移動終了位置及び
移動速度の少なくともいずれかを指定する位置決め情報
を含むものとすることができる。例えば、非教示部位
が、眼の回転や口の開閉あるいは舌の出し入れのよう
に、ロボットの特定部位に対して予め定められた2位置
間でのみ移動するような場合、あるいは単純な回転移動
しか行わない場合等においては、このような簡略な位置
決め情報により駆動データの生成を問題なく行わせるこ
とができる。
In the above configuration, when the operation of the non-taught portion where data cannot be created by the drive data creating device is incorporated, the drive data of the actuator of the corresponding non-taught portion is stored in the program based on the contents of the positioning instruction routine. It will be automatically generated during execution. As a result, it is not necessary to prepare drive data for various non-taught parts in advance, and the incorporation of the part operation of the non-taught parts becomes very simple, so that the trouble of programming can be saved. In this case, the positioning instruction routine
The information may include positioning information for designating at least one of the movement start position, the movement end position, and the movement speed of the corresponding non-teaching region. For example, when the non-teaching part moves only between two predetermined positions with respect to a specific part of the robot, such as rotation of an eye, opening and closing of a mouth, and insertion and removal of a tongue, or only a simple rotational movement. In a case where the driving data is not performed, the drive data can be generated without any problem using such simple positioning information.

【0016】なお、動作開始タイミング規定コマンドが
特に与えられていない場合に、対応する基本動作又は部
位動作の動作開始タイミングを予め定められたデフォル
ト開始時刻に設定する動作開始タイミング設定手段を設
けておくことができる。例えば前記した組合わせ型中位
動作ルーチン等において、デフォルト開始時刻(例えば
プログラム実行開始)において、いくつかの部位の動作
を同時にスタートさせたい場合、上記のような手段を設
けておくことで、特にそれら部位へのタイミング指定を
行わなくとも所期の動作が実行されるので、プログラム
を簡略化することが可能となる。
An operation start timing setting means is provided for setting the operation start timing of a corresponding basic operation or a part operation to a predetermined default start time when no operation start timing defining command is given. be able to. For example, in the above-described combination-type middle operation routine or the like, when it is desired to start operations of several parts at the same time at the default start time (for example, the start of program execution), the above-described means is particularly provided. Since the intended operation is performed without specifying the timing for those parts, the program can be simplified.

【0017】[0017]

【発明の実施の形態】以下、本発明の一実施例を図面を
用いて説明する。図1は、本発明の一実施例たるロボッ
トシステム200の全体構成を示しており、ロボット2
01、ロボット制御部202、駆動データ作成装置1を
備えており、これらがそれぞれ通信インターフェース2
03、152を介して通信回線150により互いに接続
されている。
DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below with reference to the drawings. FIG. 1 shows the overall configuration of a robot system 200 according to an embodiment of the present invention.
01, a robot control unit 202, and a drive data creation device 1, which are respectively a communication interface 2
03 and 152 via a communication line 150.

【0018】ロボット制御部202は、CPU204と
これに接続されるRAM205、ROM206、ハード
ディスク装置等で構成される記憶装置207、キーボー
ド等の入力装置208、表示制御部210等を備える。
そして、表示制御部210にはCRT等の表示装置21
1が接続され、また、CPU204には通信インターフ
ェース203が接続される。
The robot control unit 202 includes a CPU 204, a RAM 205 and a ROM 206 connected thereto, a storage device 207 including a hard disk device, an input device 208 such as a keyboard, a display control unit 210, and the like.
The display control unit 210 includes a display device 21 such as a CRT.
1 is connected, and a communication interface 203 is connected to the CPU 204.

【0019】なお、記憶装置207は、標準動作ルーチ
ン記憶部、中位動作ルーチン記憶部、、部位動作モジュ
ール記憶手段として機能する。また、CPU204は、
プログラム読出手段、プログラム展開手段、非教示部位
駆動データ生成手段として機能する。さらに、RAM2
05はCPU204のワークエリア及び展開記憶手段と
して機能する。
The storage device 207 functions as a standard operation routine storage unit, a middle operation routine storage unit, and a part operation module storage unit. Also, the CPU 204
It functions as a program reading unit, a program expanding unit, and a non-taught area driving data generating unit. Furthermore, RAM2
Reference numeral 05 functions as a work area of the CPU 204 and a development storage unit.

【0020】ロボット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を備える。
The robot 201 is configured as, for example, a robot that mimics the movement of a human, and includes a skeleton 19 in which skeleton units 20 to 30 are connected to each other by joint mechanisms 31 to 37 as shown in FIG. This skeleton is composed of, for example, the following robot parts (hereinafter, parts A, B, C,...)
Etc.). -Head (20): Equipped with eyes 20a and mouth 20c. As shown in FIG. 3, the opening 20c can be opened and closed by an actuator (not shown). In addition, mouth 2
A tongue 20d is provided inside 0c so that it can be moved in and out by an actuator (not shown). As shown in FIG. 4, the eye part 20a is provided so as to be rotatable left and right by an actuator (not shown). An eyelid portion 20e that covers or opens the eye portion 20a is provided so as to be drivable by an actuator (not shown).
Further, a speaker 192 (sound output unit) shown in FIG. 1 is also built in, and can output a voice such as a voice synthesized by the voice synthesis unit 191 according to a command from the CPU 204. In this specification, the audio output unit is also regarded as one of the parts, and the audio output thereby is also regarded as one of the operations. -Torso: includes shoulder 21, spine 22, and hip 23. Left and right arms: provided with a humerus 24, a lower humerus 25, and a hand 29, respectively. Each finger of the hand portion 29 can be bent and stretched independently to be driven, so that various hand shapes such as “Goo”, “Joki”, and “Par” of Janken can be made. . Left and right legs: provided with upper limb bone 26, lower limb bone 27, and foot 30, respectively.

【0021】そして、図1に示すようにロボット201
には、上記各部位(図面では、A、B、C等で簡略に表
記している)のそれぞれに対応して算出・駆動制御部
(算出・駆動制御手段)212が設けられ、ロボット制
御部202のCPU204にそれぞれ接続されている。
そして、これら算出・駆動制御部212に対し、各部位
に含まれるアクチュエータ213が接続されている。な
お、図2の各関節機構31〜37に設けられるアクチュ
エータの種類(パルスモータ、サーボモータ、ピストン
シリンダ等)と軸の本数、軸の回転の自由度、及び軸の
回転ないしピストンのスライドの範囲等は各骨格単位毎
に個別に設定されている。
Then, as shown in FIG.
Is provided with a calculation / drive control unit (calculation / drive control means) 212 corresponding to each of the above-mentioned parts (in the drawings, simply represented by A, B, C, etc.), and a robot control unit. 202 are connected to the CPU 204.
An actuator 213 included in each part is connected to the calculation / drive control unit 212. The types of actuators (pulse motors, servomotors, piston cylinders, etc.) and the number of shafts, the degree of freedom of shaft rotation, and the range of shaft rotation or piston sliding provided in each of the joint mechanisms 31 to 37 in FIG. Are set individually for each skeleton unit.

【0022】次に、図5に示すように、ロボット制御部
202(図1)の記憶装置207には、上位動作プログ
ラム記憶部300、中位動作ルーチン記憶部302、部
位動作モジュール記憶部304、中位動作コマンド解析
プログラム記憶部306、非教示部位駆動データ生成プ
ログラム記憶部308、システムプログラム記憶部31
2が形成されており、それぞれ対応するプログラムない
しルーチン(あるいはデータ)を記憶している。
Next, as shown in FIG. 5, the storage device 207 of the robot control unit 202 (FIG. 1) stores a higher-order operation program storage unit 300, a middle-order operation routine storage unit 302, a part operation module storage unit 304, Medium-level operation command analysis program storage unit 306, non-taught portion drive data generation program storage unit 308, system program storage unit 31
2 are formed, and each store a corresponding program or routine (or data).

【0023】各プログラムの作用は以下の通りである。 (1)上位動作プログラム:予め用意された中位動作コ
マンドから適当なものを選んで配列することにより、所
望の上位動作を記述する。例えばロボット201に「右
を向いて4歩歩き、回れ右して1歩半踏み出し、空手チ
ョップのポーズをとる」という一連の上位動作を行わせ
たい場合には、これを「右を向く」、「右脚部半歩」、
「左脚部1歩」等、いくつかの基本動作の組み合わせと
して把握する。そして、該上位動作プログラムでは、そ
の上位動作を構成する基本動作をそれぞれ規定する中位
動作コマンドを含んだ動作命令文300aが、その実行
順を反映した所定の順序、例えばその実行順に配列され
る。本実施例では、動作命令文に含まれる中位動作コマ
ンドは、基本動作の定義名を含んだ形で記述される。
The operation of each program is as follows. (1) Upper-level operation program: A desired higher-level operation is described by selecting and arranging an appropriate command from among middle-level operation commands prepared in advance. For example, if the robot 201 wants to perform a series of high-order actions such as "turn right, walk four steps, turn right, take one and a half steps, and take a karate chop pose", this is called "turn right". "Right leg half step",
It is grasped as a combination of several basic motions such as “one step of the left leg”. In the higher-level operation program, the operation command statements 300a each including a middle-level operation command that defines a basic operation constituting the higher-level operation are arranged in a predetermined order reflecting the execution order, for example, the execution order. . In the present embodiment, the middle-level operation command included in the operation statement is described in a form including the definition name of the basic operation.

【0024】(2)中位動作ルーチン:対応する基本動
作に必要な各ロボット部位の動作を規定する部位動作プ
ログラムモジュール(部位動作モジュール)のモジュー
ル名(動作特定情報)PM11,PM12‥‥の組み合
わせとして、基本動作の定義名1,2,3,‥‥と対応
付けた形で記憶されている。 (3)部位動作モジュール:図6に示すように、図1の
ロボット201の部位A、B、C・・・に含まれるアク
チュエータの駆動データ群を含んで構成されており、部
位名(部位特定情報)1,2,‥‥、及びモジュール名
(動作特定情報)PM11,PM12‥‥と対応付けた
形で記憶されている。なお、各駆動データは、各アクチ
ュエータにより駆動される骨格単位の両端の各時間毎の
変位データを含むものとされるが、骨格単位間の角度デ
ータとすることもできる。他方、駆動データは、各アク
チュエータの各時間毎の駆動量とすることもできる。
(2) Intermediate operation routine: Combination of module names (operation specifying information) PM11, PM12} of a part operation program module (part operation module) that defines the operation of each robot part required for the corresponding basic operation Are stored in association with the definition names 1, 2, 3,. (3) Part operation module: As shown in FIG. 6, the module includes drive data groups of actuators included in parts A, B, C,... Of the robot 201 in FIG. Information) 1, 2, {} and module names (operation specifying information) PM11, PM12}. Each drive data includes displacement data of both ends of the skeleton unit driven by each actuator at each time, but may be angle data between skeleton units. On the other hand, the drive data may be a drive amount of each actuator for each time.

【0025】(4)中位動作コマンド解析プログラム:
中位動作コマンドの単位で上位動作プログラムを読み出
し、対応する中位動作ルーチンを順次起動させる。 (5)システムプログラム:CPU204上における上
位動作プログラムの作動環境、及び上位動作プログラム
の書換えないし新規作成のための環境を与える。具体的
には、表示装置211(図1)にプログラム作成画面を
開き、入力装置208を用いて上位動作コマンドを図1
8に示すような形式(後述)で入力し、その入力内容に
上位動作プログラム名を付与して、記憶装置207の上
位動作プログラム記憶部300に記憶させる。また、記
憶された上位動作プログラムをプログラム作成画面に表
示させ、入力装置208からの入力に基づいて上位動作
コマンドの追加、削除、挿入等を行い、プログラムの修
正・編集を実行する。他方、後述する標準変更型中位動
作ルーチンあるいは複合型中位動作ルーチンの部位動作
モジュールへの展開処理も、このシステムプログラムが
行う。なお、これらタイプの中位動作ルーチンは定義ル
ーチン300bの形で、上位動作プログラム内に組み込
まれた形で上位動作プログラム記憶部300内に記憶さ
れる。すなわち、該記憶部300の一部も、中位動作ル
ーチン記憶部として機能している。 (6)非教示部位駆動データ生成プログラム:後述す
る。
(4) Medium-level operation command analysis program:
The higher-level operation program is read in units of the medium-level operation command, and the corresponding medium-level operation routine is sequentially activated. (5) System program: Provides an operating environment of the upper operation program on the CPU 204 and an environment for rewriting or newly creating the upper operation program. Specifically, a program creation screen is opened on the display device 211 (FIG. 1), and the higher-level operation command is input using the input device 208 in FIG.
8 (described later), a name of a higher-level operation program is given to the input content, and stored in the higher-level operation program storage unit 300 of the storage device 207. Also, the stored higher-level operation program is displayed on a program creation screen, and upper-level operation commands are added, deleted, inserted, and the like based on an input from the input device 208, and the program is corrected and edited. On the other hand, this system program also performs a process of expanding a later-described standard-change-type middle operation routine or a complex-type middle operation routine into a part operation module. Note that these types of middle-level operation routines are stored in the higher-level operation program storage unit 300 in the form of a definition routine 300b and incorporated in the higher-level operation program. That is, a part of the storage unit 300 also functions as a middle operation routine storage unit. (6) Non-taught area drive data generation program: described later.

【0026】一方、図7に示すように、RAM205に
は、上位動作プログラム格納部205a、中位動作コマ
ンド解析プログラム格納部205b、中位動作ルーチン
格納部(I)205c、中位動作ルーチン格納部(I
I)205d等が形成され、それぞれ記憶装置207か
ら読み出された対応するプログラム、データ等を格納す
るようになっている。なお、格納部205c,205d
には、実行に係る中位動作ルーチンに含まれる各部位動
作モジュールがロードされる(標準変更型中位動作ルー
チンあるいは複合型中位動作ルーチンについては、中位
動作ルーチン展開メモリ領域205gにて部位動作モジ
ュールの形に展開された後、ロードされる)。なお、中
位動作ルーチン格納部が(I)と(II)の2つ(3つ
以上でもよい)設けられているのは、次に実行する中位
動作ルーチンを予め読み込んで蓄積しておくことによ
り、ロボット201が次の動作に移る際の、記憶装置2
07からのデータ読込みに基づく応答の遅れを低減する
ためである。
On the other hand, as shown in FIG. 7, in the RAM 205, a higher-order operation program storage section 205a, a middle-level operation command analysis program storage section 205b, a middle-level operation routine storage section (I) 205c, and a middle-level operation routine storage section (I
I) 205d and the like are formed and store the corresponding programs, data, etc. read from the storage device 207, respectively. The storage units 205c and 205d
Is loaded with each part operation module included in the middle operation routine related to execution (for the standard modified middle operation routine or the complex middle operation routine, the part operation module is stored in the middle operation routine development memory area 205g). It is loaded after being expanded into the form of operation module). The reason why two (or three or more) intermediate operation routine storage sections are provided for (I) and (II) is that the intermediate operation routine to be executed next is read in advance and stored. Storage device 2 when the robot 201 moves to the next operation.
This is to reduce the delay of the response based on the data reading from 07.

【0027】また、算出・駆動制御部212は、図8に
示すように、それぞれCPU214、RAM215、R
OM216等を備え、ROM216には駆動量算出プロ
グラム216aが格納されている。そして、算出・駆動
制御部212は中位動作ルーチンの実行に伴い、ロボッ
ト制御部202側から受信した駆動データDA1、DA
2、・・・等に基づいて、CPU214に接続された各
アクチュエータ213(図1)の駆動量を時系列順に算
出し、その算出結果に基づいて各アクチュエータ213
を駆動する。その算出方法については後述する。
As shown in FIG. 8, the calculation / drive control unit 212 includes a CPU 214, a RAM 215, and an R
The ROM 216 stores a drive amount calculation program 216a. Then, the calculation / drive control unit 212 drives the drive data DA1, DA received from the robot control unit 202 with the execution of the middle operation routine.
, Etc., the drive amount of each actuator 213 (FIG. 1) connected to the CPU 214 is calculated in chronological order, and based on the calculation result, each actuator 213
Drive. The calculation method will be described later.

【0028】図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に直接転送可能とさ
れている。
FIG. 9 is a block diagram showing an example of the configuration of the drive data creation device 1. The drive data creation device 1 includes a CPU 2, a ROM 3, and a RAM that constitute drive data calculation means.
And an image capture control unit 6, a display control unit 7, an input device interface 8, a program storage device 9 storing a control program for controlling the entire device, and a drive data storage device 10. , A moving image data storage device 11. The input device interface 8 includes a mouse 12 and a keyboard 1 as skeleton positioning means having a click button 12a (input unit).
3 are connected. The display controller 7 is connected to a CRT 14 as image display means. On the other hand, the image capture control unit 6 is connected to a video playback device (VTR) 15 and has a VRAM 16 and a data transfer processor 17.
And the image display data stored in the VRAM 16 can be directly transferred to the display control unit 7 via the bus 18.

【0029】次に、図2に示すロボット201の骨格1
9を形成する骨格単位のうち、いくつかのものは組を形
成し、その組に含まれる各骨格単位同士の相対的な位置
関係には予め定められた拘束条件が設定される。例え
ば、両脚部を構成する骨格単位を例にとれば、図10に
示すようにその下肢骨27は、上肢骨26に沿う直線と
腰骨23に直角な直線とが作る平面P内のみを動くとい
う拘束条件が設定されている(なお、図10において
は、関節機構35及び36(図2)は描いていない)。
従って、上肢骨26の上端位置と下肢骨27の下端位置
とを指定すれば、両者の結合点(膝に相当する部分)の
位置は、上記拘束条件に従って自動的に定まることとな
る。
Next, the skeleton 1 of the robot 201 shown in FIG.
Some of the skeletal units forming 9 form a set, and a predetermined constraint condition is set for the relative positional relationship between the skeletal units included in the set. For example, taking the skeletal unit constituting both legs as an example, as shown in FIG. 10, the lower limb bone 27 moves only in a plane P formed by a straight line along the upper limb bone 26 and a straight line perpendicular to the hip bone 23. The constraint conditions are set (note that the joint mechanisms 35 and 36 (FIG. 2) are not shown in FIG. 10).
Therefore, if the upper end position of the upper limb bone 26 and the lower end position of the lower limb bone 27 are designated, the position of the connection point (portion corresponding to the knee) between them is automatically determined according to the above-described constraint condition.

【0030】次に、本実施例のロボットシステム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)。
Next, the operation of the robot system 1 of this embodiment will be described in detail. When a higher-level operation program name is designated and activated by the input device 208 or the like in FIG.
As shown in the flowchart of FIG. 5, the first middle operation command of the upper operation program is read in M1, and M1 is read.
In step 2, the corresponding middle-level operation routine is stored in the middle-level operation routine storage (I) 205c of the RAM 205. next,
A signal is issued to the stored middle-level operation routine to activate it (M3). Further, during execution of the middle operation routine, the next middle operation command is read in M4,
In M5, the corresponding middle-level operation routine is stored in the vacant middle-level operation routine storage unit (in this case, the storage unit (I
I)). Further, if a middle-level processing completion signal has been transmitted from the middle-level operation routine (storage section (I) side) that is being started and executed in M6, the storage section (II) 20
A start signal is transmitted to the middle-level operation routine stored in 5d (M7). If the next middle operation command is present in M8, the process returns to M4, the next command is read, and the corresponding middle operation routine is stored in an empty storage unit (in this case, the storage unit (I)). Thereafter, by repeating the same processing, the higher-level operation program is executed in units of middle-level operation commands. If the next middle operation command does not exist or is the end command, the process ends (M9).

【0031】次に、中位動作ルーチン側での処理である
が、図12のフローチャートに示すように、上位動作プ
ログラム側から起動信号を受けることにより、各部位の
アクチュエータの駆動データを読み込み(B1、B
2)、アクチュエータの各時間毎の変位データとして記
述された駆動データを、各部位の算出・駆動制御部21
2へ時系列順に送信する(B3)。そして、算出・駆動
制御部212側では、駆動量算出プログラム216a
(図8)に基づいて、その変位データに基づいて各アク
チュエータの駆動量を算出し、その算出結果に基づいて
それらアクチュエータを駆動する。
Next, regarding the processing on the middle-level operation routine side, as shown in the flowchart of FIG. 12, upon receiving a start signal from the higher-level operation program side, drive data of the actuator of each part is read (B1). , B
2) The drive data described as displacement data for each time of the actuator is calculated by the calculation / drive control unit 21 of each part.
2 are transmitted in chronological order (B3). Then, on the calculation / drive control unit 212 side, the drive amount calculation program 216a
Based on (FIG. 8), the drive amount of each actuator is calculated based on the displacement data, and the actuators are driven based on the calculation result.

【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。そして、変位データは、各骨格
単位の両端の変位として算出される。
As a method of calculating the driving amount, for example,
A method based on the following principle can be adopted. First, in the skeleton 19 shown in FIG. 2, an index is given to both end positions of each skeleton unit, for example, as shown in FIG. 13 (W1). -Head 20: H, f1. -Shoulder 21: A1, H and H, A2. -Spine 22: G and H. Here, G is used as a reference position when calculating the drive amount of the actuator from the displacement of each skeleton unit. -Hip 23: L1 and L2. G is positioned at the midpoint of the line connecting L1 and L2. Humerus 24, lower humerus 25: A1, Ae1, Ah1 and A2, Ae2, Ah2. Upper limb bone 26, lower limb bone 27: L1, Lk1, Lf1 and L2, Lk2, Lf2. Then, the displacement data is calculated as the displacement at both ends of each skeleton unit.

【0033】例えば図13の、左側の脚部に対しては、
図14(a)に模式的に示すように、点Gの位置が不変
で、ある時刻T1におけるL1、Lk1の位置が次の時
刻T2におけるL1’、Lk1’に移った場合、線分G
L1及び線分L1Lk1に回転移動を施し、(b)に示
すように、線分GL1を線分GL1’に重ね合わせる。
そして、回転移動後の各点の空間座標から、時刻T1の
線分L1Lk1と、時刻T2の線分L1’Lk1’との
なす角度θを算出することにより、両骨格単位(すなわ
ち、上腕部26及び下脚部27)の間に配置されたアク
チュエータの各軸の回転角度を求めることができる。こ
のような骨格単位の回転移動と第二骨格単位の回転角度
を求める処理を、骨格の末端へ向かう方向に順次施して
ゆけば、各関節機構に含まれるアクチュエータの駆動量
が順次算出されることとなる。なお、以上の説明では、
アクチュエータはモータで構成されており、第一及び第
二の骨格単位同士はそのモータ軸の回転により、相対的
な回転運動のみを行うものとしたが、ピストンロッド等
をアクチュエータとした場合は、そのピストンの伸縮に
より骨格単位間で相対的な並進運動が行われる場合もあ
る。そのような場合は、第二骨格単位の回転角度の他、
並進移動距離も算出するようにする。
For example, for the left leg in FIG.
As schematically shown in FIG. 14A, when the position of the point G is unchanged and the positions of L1 and Lk1 at a certain time T1 move to L1 ′ and Lk1 ′ at the next time T2, a line segment G
Rotational movement is performed on L1 and the line segment L1Lk1, and the line segment GL1 is superimposed on the line segment GL1 'as shown in FIG.
Then, by calculating the angle θ between the line segment L1Lk1 at the time T1 and the line segment L1′Lk1 ′ at the time T2 from the spatial coordinates of each point after the rotational movement, both skeleton units (that is, the upper arm portion 26) are calculated. And the rotation angle of each axis of the actuator disposed between the lower leg 27). By sequentially performing the processing for obtaining the rotational movement of the skeleton unit and the rotation angle of the second skeleton unit in the direction toward the end of the skeleton, the drive amount of the actuator included in each joint mechanism is sequentially calculated. Becomes In the above explanation,
The actuator is configured by a motor, and the first and second skeleton units perform only relative rotational movement by rotation of the motor shaft.However, when a piston rod or the like is used as an actuator, the In some cases, relative translation between the skeletal units is performed by expansion and contraction of the piston. In such a case, in addition to the rotation angle of the second skeleton unit,
The translation distance is also calculated.

【0034】このようにしてアクチュエータの駆動量が
算出され、その中位動作ルーチンの駆動データに基づく
アクチュエータの一連の駆動が終了すると、駆動量算出
プログラム216aからは下位側処理完了信号が中位動
作ルーチン側へ送信される。中位動作ルーチン側では、
図12のB4でこれを受け、中位側処理完了信号を上位
動作プログラムへ送信する(B5)。なお、アクチュエ
ータの駆動量そのものを駆動データとして送信する場合
には、算出・駆動制御部側での上記算出処理は不要とな
る。
In this way, the drive amount of the actuator is calculated, and when a series of drive of the actuator based on the drive data of the middle operation routine is completed, the drive amount calculation program 216a outputs a lower processing completion signal to the middle operation routine. Sent to the routine side. On the middle operation routine side,
In response to this in B4 of FIG. 12, a middle-level processing completion signal is transmitted to the higher-level operation program (B5). When the drive amount of the actuator itself is transmitted as drive data, the above-described calculation processing on the calculation / drive control unit side becomes unnecessary.

【0035】図15は、上述の流れに基づくロボット2
01の上位動作の具体的な実行例を示している。すなわ
ち、「4歩歩く」という上位動作は、図16及び図17
に示すように、「右脚部半歩」(定義名「WALK
2」)、「左脚部1歩」(定義名「WALK3」)、
「右脚部1歩」(定義名「WALK4」)、「左脚部半
歩」(定義名「WALK5」)の4つの基本動作を含
み、その上位動作プログラムは、各基本動作の中位動作
コマンド(それぞれ対応する上記定義名を含む)を用い
た動作命令文を用いて組まれることとなる。そして、例
えば最初の「右脚部半歩」の基本動作を構成する部位動
作は、右脚部及び左腕部の各部位に対するそれぞれ「半
歩踏出し」及び「前降り」であり、対応する部位動作モ
ジュールに含まれる関連アクチュエータの駆動データを
時系列順に算出・駆動制御部212へ送信する(送信制
御は前述のシステムプログラムが行う)。算出・駆動制
御部212では送信されてきた駆動データに基づいて駆
動量を算出し、対応するアクチュエータを駆動して、次
の中位動作コマンド内容である「左脚部1歩」の実行へ
移る。
FIG. 15 shows a robot 2 based on the above flow.
13 shows a specific execution example of the higher-order operation of No. 01. That is, the high-order operation of “walking four steps” is described in FIGS.
As shown in the figure, "Right leg half step" (definition name "WALK
2 ")," one step left leg "(definition name" WALK3 "),
The program includes four basic operations, “one step on the right leg” (definition name “WALK4”) and “half step on the left leg” (definition name “WALK5”). It is formed using an operation command sentence using a command (including the corresponding definition name). For example, the part motions constituting the basic motion of the first “right leg half step” are “half stepping” and “down front” for the respective parts of the right leg and the left arm, and the corresponding part The drive data of the related actuator included in the operation module is transmitted to the calculation / drive control unit 212 in chronological order (transmission control is performed by the above-described system program). The calculation / drive control unit 212 calculates the drive amount based on the transmitted drive data, drives the corresponding actuator, and shifts to the execution of the next middle operation command content “left leg one step”. .

【0036】以下、具体的なプログラム例を参照してさ
らに詳しく説明する。図18は「右を向いて4歩歩き、
礼をした後、回れ右して1歩半踏み出し、空手チョップ
のポーズをとる」という上位動作を行わせるためのプロ
グラム例である。プログラムは、前記した通り、動作命
令ルーチンと定義ルーチンとから成り立っている。
The following is a more detailed description with reference to specific program examples. FIG. 18 shows that "turn right and walk four steps,
This is an example of a program for performing a high-order operation such as "turn right, take a step and a half, and take a karate chop pose." As described above, the program is composed of the operation instruction routine and the definition routine.

【0037】本実施例では、動作命令ルーチンは、1又
は複数の動作命令文を実行順に配列したものであり、あ
る動作命令文において、それが定義済基本動作の中位動
作ルーチンであることを示すコマンドは「motio
n」コマンドであり、 motion <do:=”定義名”> により、該定義名で示された中位動作ルーチンの実行を
命令する中位動作コマンドが規定される。そして、この
ような中位動作コマンドによる動作命令文が実行順に配
列される(なお、各文には行番号を付与していないが、
行番号を付与して実行順を指定してもよい)。なお、各
中位動作コマンド内の定義名が、どのような基本動作の
定義名であるかについて、各文の末尾に括弧書きにて示
している。
In this embodiment, the operation instruction routine is obtained by arranging one or a plurality of operation instruction statements in the order of execution. In an operation instruction statement, it is determined that the operation instruction routine is an intermediate operation routine of a defined basic operation. The command shown is “motion
n "command, and the motion <do: =""definitionname"> defines a middle operation command for instructing execution of the middle operation routine indicated by the definition name. Then, the operation command statements by such a middle-level operation command are arranged in the execution order (note that each statement is not given a line number,
The execution order may be specified by giving a line number.) Note that the definition name of the basic operation in each middle-level operation command is shown in parentheses at the end of each sentence.

【0038】ここで、中位動作ルーチンのうち、組合わ
せ型中位動作ルーチンあるいは標準変更型中位動作ルー
チンについては対応する形式の定義名を採用することに
より、本実施例においては、定義名の先頭に特定の文字
情報、例えば「@」を付与することにより、他の形式の
中位動作ルーチンと区別するようにしている。そして、
このような定義名の中位動作ルーチンについては、その
中位動作ルーチンの内容を規定するための定義ルーチン
がプログラム中に書き込まれる(書き込まれていなけれ
ばエラーと判断するようにしておく)。なお、基本動作
の定義名は、所定の表示形式(本実施例では、コーテー
ション(””)で定義名を囲む形式)にて、それが基本
動作の定義名であることを識別するようにしている。
Here, among the middle-level operation routines, for the combination-type middle-level operation routine or the standard-change-type middle-level operation routine, the definition name of the corresponding format is adopted. Is prefixed with specific character information, for example, "@", to distinguish it from other types of middle-level operation routines. And
With respect to the middle-level operation routine having such a definition name, a definition routine for defining the contents of the middle-level operation routine is written in the program (if it is not written, an error is determined). Note that the definition name of the basic operation is identified in a predetermined display format (in this embodiment, a format surrounding the definition name with quotes ("")) so as to identify that it is the definition name of the basic operation. I have.

【0039】本実施例では、「右脚部を半歩前に出しな
がら空手チョップする」という基本動作(定義名”@K
ARATE”)が、「右脚部半歩前」という単純歩行の
基本動作(定義名”WALK2”)を標準動作とする標
準変更型中位動作ルーチンとして組まれている。図19
は、その定義ルーチンの一例を示している。まず、定義
ルーチンの先頭にある 「joint motion to @KARATE」 は、中位動作ルーチンの種別と定義名を規定するための
文であり、「jointmotion to」は標準変
更型中位動作ルーチン(組合わせ型中位動作ルーチンの
場合も同じ)であることを示している。次いで、2行目
の 「base <do:=”WALK2”>」 は、”WALK2”の定義名を有する中位動作ルーチン
を標準動作ルーチンとして選択することを命令する文で
ある。
In this embodiment, a basic operation (definition name "@K
ARATE ”) is set as a standard modified middle action routine that uses the basic motion (defined name“ WALK2 ”) of the basic motion of simple walking“ definition of the right leg half step ”as a standard motion. FIG.
Shows an example of the definition routine. First, "joint motion to $ KARATE" at the beginning of the definition routine is a statement for defining the type and definition name of the middle-level operation routine, and "jointmotion to" is a standard-change-type middle-level operation routine (combination). The same applies to the case of the mold middle operation routine). Next, “base <do: =“ WALK2 ”>” on the second line is a statement instructing that a middle-level operation routine having a defined name of “WALK2” be selected as a standard operation routine.

【0040】次いで、3行目の item RIGHTARM <do:=CHOP> は、ロボットの右腕部に空手チョップを行わせる部位動
作を指示するための動作命令文である。「item ○
○○」は部位特定情報であり、「部位として○○○を指
定せよ」との意味をもつ。そして、「item RIG
HTARM」により、空手チョップを行う右腕部が動作
部位として指定される。また、「<do:=CHOP
>」は動作特定情報であり、「モジュール名「CHO
P」で指定される部位動作を行え」との意味である。な
お、部位動作のモジュール名は、本実施例では、コーテ
ーションを付与しないことで、中位動作ルーチンの定義
名と区別できるようにしている。なお、最終行の「EN
D」は、定義ルーチンの終了を示す。
Next, item RIGHTARM <do: = CHOP> in the third line is an operation command sentence for instructing a part operation to cause the right arm of the robot to perform karate chop. "Item ○
"OO" is the part specifying information, and has a meaning of "designate OO as the part". And "item RIG
The right arm for performing karate chop is designated as an operation part by “HTARM”. Also, “<do: = CHOP
“>” Is operation identification information, and “module name“ CHO ”
P means to perform the part operation specified by "P". In this embodiment, the module name of the part operation is not quoted so that it can be distinguished from the definition name of the middle operation routine. Note that the last line "EN
"D" indicates the end of the definition routine.

【0041】さて、このような定義ルーチンを含んだ上
位動作プログラムを実行するときのシステムプログラム
の処理の流れは、以下の通りとなる。まず、図18のプ
ログラムを図5の記憶装置207の記憶部300から読
み出して、図7のRAM205の格納部205aにロー
ドする。プログラムは、行(すなわち中位動作コマン
ド)の単位で読み出され、これが通常の中位動作コマン
ド(定義名の先頭に「@」が付与されていないもの)で
ある場合には、対応する中位動作ルーチンを図5の中位
動作ルーチン記憶部302から読み出す。そして、これ
に含まれるモジュール名を参照して、対応する部位動作
モジュールを図6の部位動作モジュール記憶部304か
ら読み出し、RAM205の中位動作ルーチン格納部
(I)205cにロードする。ロードされた中位動作ル
ーチンは、これに含まれる各部位動作モジュールのアク
チュエータの駆動データが、対応する部位の算出・駆動
制御部212(図1)へ送信され、各部位のアクチュエ
ータを駆動させて基本動作が実行される。なお、この実
行処理間に、同様の処理が次のプログラム行について実
行され、その中位動作ルーチンが中位動作ルーチン格納
部(II)205d(図7)にロードされる。
The processing flow of the system program when executing the higher-level operation program including such a definition routine is as follows. First, the program of FIG. 18 is read from the storage unit 300 of the storage device 207 of FIG. 5, and loaded into the storage unit 205a of the RAM 205 of FIG. The program is read out in units of lines (that is, middle operation commands). If this is a normal middle operation command (definition name without "@" at the beginning), the corresponding medium operation command is read. The position operation routine is read from the middle operation routine storage unit 302 in FIG. Then, by referring to the module name included in this, the corresponding part operation module is read from the part operation module storage unit 304 in FIG. 6 and loaded into the middle-level operation routine storage unit (I) 205c of the RAM 205. In the loaded middle-level operation routine, the drive data of the actuators of the respective part operation modules included in the loaded middle-level operation routine is transmitted to the corresponding part calculation / drive control unit 212 (FIG. 1), and the actuators of the respective parts are driven. The basic operation is performed. During this execution process, the same process is executed for the next program line, and the middle operation routine is loaded into the middle operation routine storage unit (II) 205d (FIG. 7).

【0042】ここで、中位動作コマンドが、標準変更型
中位動作ルーチンを指定するもの(すなわち、定義名の
先頭に「@」が付与されているもの)であった場合に
は、対応する定義ルーチンを読み込み、以下の展開処理
に移る。まず、「base <do:=”WALK2”
>」では、「base」コマンドの認識により、これに
続く定義名(この場合”WALK2”)に対応する中位
動作ルーチンを標準動作ルーチンとして読み出し、これ
を図7の中位動作ルーチン展開メモリ領域205gに格
納する。次いで、item RIGHTARM <d
o:=CHOP>では、その部位特定情報(item
RIGHTARM)を認識することにより、標準動作ル
ーチン中にこれと同じ部位の動作が存在するかどうか確
認する。もし存在していれば、動作特定情報(<do:
=CHOP>)により特定される部位動作モジュール
を、展開メモリ領域205g内に格納されている標準動
作ルーチン中の対応する部位のモジュールと置き換え
る。この場合、”WALK2”は、「右脚部半歩」の歩
行動作であり、右腕の振りの動作が部位動作として含ま
れているから、これが空手チョップの右腕動作と置き換
えられるわけである。
Here, if the middle-level operation command specifies a standard-change-type middle-level operation routine (that is, a command in which "@" is added to the head of the definition name), it corresponds. The definition routine is read, and the process proceeds to the following expansion processing. First, “base <do: =“ WALK2 ”
In the case of ">", the middle operation routine corresponding to the definition name (in this case, "WALK2") subsequent to the recognition of the "base" command is read as the standard operation routine, and this is read as the middle operation routine expanded memory area in FIG. 205 g. Then, item RIGHTARM <d
In o: = CHOP>, the site specifying information (item
By recognizing (RIGHTARM), it is checked whether or not an operation of the same part exists in the standard operation routine. If it exists, the operation specifying information (<do:
= CHOP>) is replaced with the module of the corresponding part in the standard operation routine stored in the expanded memory area 205g. In this case, “WALK2” is a walking motion of “right leg half step”, and the motion of swinging the right arm is included as a part motion, and this is replaced with the right arm motion of the karate chop.

【0043】なお、上記定義ルーチンの例には現われて
いないが、図20に示す動作命令文を用いいることによ
り、次のような処理が行われるようになっている。ま
ず、特定の定義名として「FAULT」(すなわち、<
do:=FAULT>)を記述しておくと、展開メモリ
領域205g内の標準動作ルーチンからは、対応する部
位のモジュールが削除される処理がなされる(すなわ
ち、その部位の動作が禁止される)。また、標準動作ル
ーチン内に存在しない部位の動作を指定した場合は、対
応する部位動作モジュールが標準動作ルーチンに追加さ
れる。図に示した動作命令文では、 item RIGHTWRIST <do:=turn
> となっているが、これは右手首部(RIGHTWRIS
T)をねじる(turn)部位動作を示すものである。
Although not shown in the example of the definition routine, the following processing is performed by using the operation instruction statement shown in FIG. First, "FAULT" (ie, <
If do: = FAULT>) is described, the standard operation routine in the expanded memory area 205g performs a process of deleting the module of the corresponding part (that is, the operation of the part is prohibited). . If an operation of a part that does not exist in the standard operation routine is specified, a corresponding part operation module is added to the standard operation routine. In the operation statement shown in the figure, item RIGHWRIST <do: = turn
>, But this is the right wrist (RIGHTWRIS
FIG. 14 shows a part operation of turning a T).

【0044】また、部位動作の置換えないし追加を指定
する動作命令文では、部位動作モジュールのモジュール
名による動作指定の他、中位動作ルーチンを援用した動
作指定も可能となっている。この場合、定義名により中
位動作ルーチンを指定し、部位名により部位を指定す
る。これにより、その中位動作ルーチンの、指定された
部位のモジュールが、展開メモリ領域205g内の標準
動作ルーチンに対し置き換えないし追加されることとな
る。図に示した動作命令文では、 item RIGHTARM <do:=”WALK
3”> となっているが、これは「左脚部一歩前」という基本動
作の、右腕の振り動作のみを組み込むことを示すもので
ある。
Further, in the operation command for designating replacement or addition of a part operation, an operation specification utilizing a middle operation routine is possible in addition to the operation specification by the module name of the part operation module. In this case, the middle-level operation routine is specified by the definition name, and the part is specified by the part name. As a result, the module of the designated part of the middle operation routine is replaced or added to the standard operation routine in the expanded memory area 205g. In the operation statement shown in the figure, item RIGHTARM <do: = “WALK
3 ″>, which indicates that only the swing motion of the right arm of the basic motion “one step before the left leg” is incorporated.

【0045】このようにして、定義ルーチン内の動作命
令文の実行が全て終了すると、展開メモリ領域205g
内には、モジュールの入替え、追加及び削除処理が終了
した状態の標準動作ルーチン、すなわち展開済の標準変
更型中位動作ルーチンが格納された形となっている。な
お、モジュールの入替え等の展開処理は、モジュール名
のみを用いて行えば、図6の記憶部304からその都度
モジュールを読み出す必要がなくなるので高速処理が可
能となる。この場合は、展開処理が終了後に、展開メモ
リ領域205g内のモジュール名を参照して、対応する
モジュールを記憶部304から読み出し、これを中位動
作ルーチン格納部205cあるいは205dに格納する
ようにする。
As described above, when the execution of all the operation statements in the definition routine is completed, the expanded memory area 205g
In the figure, a standard operation routine in which module replacement, addition, and deletion processing has been completed, that is, an expanded standard change type middle operation routine is stored. Note that if the expansion processing such as module replacement is performed using only the module name, it is not necessary to read out the module from the storage unit 304 in FIG. 6 each time, so that high-speed processing can be performed. In this case, after the expansion processing is completed, the corresponding module is read from the storage unit 304 with reference to the module name in the expansion memory area 205g, and is stored in the middle-level operation routine storage unit 205c or 205d. .

【0046】ところで、図18のプログラムが示す上位
動作では、右を向いた後、4歩歩く形となっているが、
この4歩歩くルーチン部分を、以下に説明する重ね合わ
せ型中位動作ルーチンとして統合することも可能であ
る。その例を図21に示している。このプログラムと図
18のプログラムとの違いは、図18の「4歩歩く」動
作を記述する部分に相当する2〜5行の動作命令文群
が、1つの命令文 motion <do:=”@@××××1”> で置き換えられており、さらにその定義名”@@×××
×1”に対応する定義ルーチンが追加されている点にあ
る。すなわち、「4歩歩く」という動作を、時系列的に
重なりを生じない4つの歩行動作を重ね合わせた重ね合
わせ型中位動作ルーチン(定義名”@@××××1”)
として組まれている。なお、本実施例では、定義名の先
頭に特定の文字情報、例えば「@@」を付与することに
より、重ね合わせ型のルーチンを他の形式の中位動作ル
ーチンと区別するようにしている。
By the way, in the high-order operation shown in the program of FIG. 18, the user turns right and walks four steps.
This four-step walking routine can be integrated as a superimposition-type middle operation routine described below. An example is shown in FIG. The difference between this program and the program in FIG. 18 is that a group of operation instruction statements in 2 to 5 lines corresponding to a portion describing the “walk four steps” operation in FIG. @ xxxx1 ">, and its definition name" @@ xxx "
X1 ”is added. That is, a superimposition-type middle motion in which a motion of“ walk four steps ”is superimposed on four walking motions that do not overlap in time series is performed. Routine (definition name "@ xxxx1")
It is organized as. In this embodiment, by adding specific character information, for example, "@" to the head of the definition name, the superposition type routine is distinguished from the middle-level operation routine of another format.

【0047】図22は、その定義ルーチンの一例を示し
ている。まず、定義ルーチンの先頭にある 「pileup motion to @@××××
1」 は、中位動作ルーチンの種別と定義名を規定するための
文であり、「pileup motion to」は重
ね合わせ型中位動作ルーチンであることを示している。
以降は、重ね合わせを行いたい基本動作の命令文を実行
順に配列し、最終行に「end」を付与することによ
り、定義ルーチンを閉じる。なお、本実施例では、特定
の基本動作列を繰返し実行させるためのコマンドが用意
されている。本実施例では、「repeat whil
e ○」‥‥「end」がこれに相当し、これらの間に
挟まれた動作列を「○」回繰り返すことを意味する。図
22では、「左脚部1歩」と「右脚部1歩」とを交互に
行う動作を2回繰り返すことにより、都合4歩連続歩行
する内容を記述するプログラムとなっている。
FIG. 22 shows an example of the definition routine. First, at the top of the definition routine, "pileup motion to @xxxx"
“1” is a sentence for defining the type and definition name of the middle operation routine, and “pileup motion to” indicates that it is a superposition type middle operation routine.
Thereafter, the definition routine is closed by arranging the commands of the basic operations to be superimposed in the order of execution and adding “end” to the last line. In this embodiment, a command for repeatedly executing a specific basic operation sequence is prepared. In this embodiment, “repeat while
e ○ ”‥‥“ end ”corresponds to this, and means that the operation sequence sandwiched between them is repeated“ ○ ”times. In FIG. 22, the program describes the contents of walking continuously for four steps by repeating the operation of alternately performing “one step of the left leg” and “one step of the right leg” twice.

【0048】次に、組合わせ型中位動作ルーチンのプロ
グラム例と、その処理の流れについて説明する。組合わ
せ型中位動作ルーチンは、組み合わされるべき中位動作
ルーチン及び/又は部位動作モジュールに係る基本動作
及び/又は部位動作が、時系列的に少なくとも部分的な
重なりを生じた状態で実行される上位の中位動作をい
う。一例を図23を用いて説明する。ここでは、ロボッ
トのジャンケン動作を例にとる。
Next, a description will be given of an example of a program of the combination type middle operation routine and the flow of the processing. The combination-type middle operation routine is executed in a state in which the basic operation and / or the part operation related to the middle operation routine and / or the part operation module to be combined have at least partially overlapped in time series. Refers to the upper middle-level operation. An example will be described with reference to FIG. Here, a Janken operation of the robot is taken as an example.

【0049】例えば、「ジャンケンポン」と発声しなが
ら、パーを出すという動作を考えてみる。これは次のよ
うな部位動作に分解して考えることができる。まず、
(1)のように、右手を「グー」の状態にして右腕を振
り上げ、その振上げの途中で「ジャン」と発音する。な
お、発音に合わせて口を短時間開いて閉じる動作(以
下、口パクパク動作という)を1回行う。次いで、
(2)では、振り上げた右腕を静止させて「ケン」と発
音する。(3)では、その右腕を振り下ろしながら、右
手は途中まで「グー」の状態を維持し、さらに(4)
で、右手を「パー」状態としながら「ポン」と発音しつ
つ、右腕の振下ろしを完了させる。なお、この例では
(5)で、腕の振下ろし完了後に、ロボットが口を開い
て舌をペロリと出す動作が付け加えてある。
For example, consider an operation of putting out a par while uttering “Jankenpon”. This can be decomposed into the following part operations. First,
As in (1), with the right hand in the “Goo” state, the right arm is swung up, and “Jean” is pronounced during the swing. In addition, the operation of opening and closing the mouth for a short time in accordance with the pronunciation (hereinafter, referred to as a mouth pacing operation) is performed once. Then
In (2), the raised right arm is stopped and pronounced "ken". In (3), while the right arm is swinging down, the right hand maintains the state of “Goo” halfway, and (4)
Then, while the right hand is in the "par" state, the sound of "pon" is pronounced, and the lowering of the right arm is completed. In this example, in (5), an operation is added in which the robot opens the mouth and squeezes the tongue after the arm has been lowered.

【0050】上記動作においては、右腕、右手、口、舌
及び音声の5つの部位が、しかるべきタイミングで連係
動作を行う形となっている。その動作タイミングの例が
図24である。図中の矢印は動作継続期間を表す。この
例では、右腕の振上げ、静止、振下ろしをそれぞれ1秒
で実行するようになっており、デフォルトで口は閉、右
手はグーとなっている。また、右腕の振上げ動作は、大
げさなロボットの身振りを示すために、腰の前後移動や
肩の上下動あるいは頭の動き等の部位動作を伴う基本動
作に組み込まれており、後述する駆動データ作成装置に
よりデータ作成された例えば10コマ(コマ送り速度:
0.1秒/コマ)の教示動作である。なお、その中位動
作ルーチンの定義名は”RLIFTUP”である。他
方、右腕の振下ろしも同様に基本動作に組み込まれてお
り、その中位動作ルーチンの定義名は”RSHAKED
N”である。そして、右腕振上げサイクルの中間にて
「ジャン」の発声を、右腕静止サイクルの中間にて「ケ
ン」の発声をそれぞれ行い、右腕振下ろし時には、その
7コマ目から右手を「パー」に移行させ、同時に「ポ
ン」の発声を行う。そして、右腕の振下ろしが完了する
と同時に舌をペロリと出す。
In the above operation, the right arm, the right hand, the mouth, the tongue, and the voice perform the linked operation at appropriate timing. FIG. 24 shows an example of the operation timing. Arrows in the figure represent operation continuation periods. In this example, the right arm swings up, stops, and swings down in one second, and the mouth is closed and the right hand is goo by default. In addition, the right arm swing-up operation is incorporated into a basic operation involving a part movement such as a back and forth movement of a waist, a vertical movement of a shoulder, or a movement of a head in order to show an exaggerated gesture of a robot. For example, 10 frames (frame feed speed:
(0.1 second / frame). The definition name of the middle-level operation routine is “RLIFTUP”. On the other hand, the lowering of the right arm is also incorporated in the basic operation, and the definition name of the middle operation routine is “RSHAKED
N ”. Then,“ Jean ”is uttered in the middle of the right arm swing cycle, and“ Ken ”is uttered in the middle of the right arm stationary cycle. When lowering the right arm, the right hand is started from the seventh frame. Shift to “Par” and simultaneously utter “Pong”. Then, at the same time that the lowering of the right arm is completed, the tongue is pulled out.

【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)の動作過程にそれぞれ対応し
ている。
FIG. 25 is an example of a routine for defining a combination-type middle-level operation routine that defines the above operation. First, at the top of the definition routine, "joint motion", which is the same as in the standard change type middle operation routine, is described.
to @JANKEN ". Subsequent (a) ~
(L) is an operation command sentence group for designating a part operation or a basic operation to be combined, and instructs each of the operations (a) to (l) in the timing chart of FIG. Among them, (a) to (e) correspond to (1) in FIG.
In the operation process of (f) and (g), in the operation process of (2),
(H) corresponds to the operation process of (3), (i) to (k) correspond to the operation process of 4, and (l) corresponds to the operation process of (5).

【0052】組合わせ型中位動作ルーチンにおいては、
例えばその中位動作ルーチンの実行開始時刻が時刻原点
として設定され、後述のコマンドにより特に実行開始タ
イミング指定がなされない限り、その時刻原点をデフォ
ルト開始時刻として、各部位動作あるいは組み込まれた
基本動作が一斉同時にスタートする(なお、時刻計測
は、図1のタイマー190が行う)。すなわち、(a)
〜(c)は、開始タイミングの指定がないので、ルーチ
ンの実行開始とともに、右腕の振上げ動作((a))、
右手の「グー」動作((b))、及び口の閉動作が同時
に実行スタートとなる。なお、「RIGHTFINGE
R」は右手(の指)、「MOUTH」は口の各部位を表
す部位指定情報であり、<do:=31>は「グー」を
作るための指曲げを、<do:=close>は口閉じ
をそれぞれ指定する動作指定情報である。
In the combination type middle operation routine,
For example, the execution start time of the intermediate operation routine is set as the time origin, and unless the execution start timing is specified by a command described later, the time origin is used as the default start time, and each part operation or the incorporated basic operation is performed. Simultaneous start starts (time measurement is performed by the timer 190 in FIG. 1). That is, (a)
Since (c) does not specify the start timing, the right arm swinging operation ((a)),
The execution of the "goo" operation ((b)) of the right hand and the closing operation of the mouth are simultaneously started. In addition, "RIGHTFINGE
“R” is the right hand (finger), “MOUTH” is site designation information representing each portion of the mouth, <do: = 31> is finger bending for making “goo”, and <do: = close> is This is operation specification information for specifying the closing of the mouth.

【0053】次の(d)は、「ジャン」の発声を指示す
る動作命令文である。本実施例では、声に対応する部位
名すなわち「VOICE」を指定し、それに続く<d
o:=”◇◇◇◇”>の◇◇◇◇に、発声内容を直接文
字(あるいは文字コード)にて書き込むことにより発声
内容が指定される。そして、それに続く<from:=
○○○>は、動作条件規定コマンドの一つであり、動作
の開始タイミングを指定する動作開始タイミング規定コ
マンドである。<from:=timer △△>は、
「時刻原点からタイマーの計測単位(本実施例では0.
1秒)の△△倍だけ経過した後に動作を開始せよ」との
意味である。すなわち、(d)全体の意味は、「時刻原
点から(すなわち、右腕の振上げ開始から)0.5秒経
過後に、「ジャン」と発声せよ」となる。
The following (d) is an operation command sentence instructing the utterance of "Jean". In the present embodiment, a part name corresponding to the voice, that is, “VOICE” is specified, and the following <d
The content of the utterance is designated by directly writing the content of the utterance into characters (or character codes) in o: = “{”>. And the following <from: =
○> is one of the operation condition specifying commands, and is an operation start timing specifying command for specifying the operation start timing. <From: = timer △△>
“Timer measurement unit from time origin (0. 0 in this embodiment)
Start the operation after elapse of △△ times (1 second) ”. That is, the meaning of (d) as a whole is "speak" Jean "after 0.5 seconds have elapsed from the time origin (that is, from the start of raising the right arm)."

【0054】また、(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)の動作が実現されることがわか
る。
In (e), the mouth is selected as the part, and the operation of the mouth squeeze is specified by <do: = parrot>. The operation start timing is <fro
Since m: = timer 5>, the timing is the same as the above-mentioned “Jean” utterance timing. In addition, <til
l: (condition name)> is a command for defining an operation end condition, for example, <til: = repeatre>
Means that the operation is terminated if the part operation is repeated △ times. For example, <til: = repea
Due to t 1>, the palpitation is performed only once. If <til: = repeat Δ> is omitted, the default number of repetitions (for example, one) may be automatically specified. Thus,
According to the operation command statements (a) to (e), the operations (a) to (e) in the timing chart of FIG. 24 are executed in combination, and the operation of (1) in FIG. 23 is realized. .

【0055】次に、腕の振下ろし時の動作について説明
する。まず、右腕の振下ろしが開始されるのは時刻原点
から2秒経過後であり、対応する(h)の動作命令文に
おいて、<from:=timer 20>によりその
開始タイミングが与えられる。図24に示す通り、腕の
振下ろし開始から終了までは時間で表せば1秒であり、
コマ送り数で表せば10コマである。そして、その7コ
マ目(時刻原点からの時間でいえば2.7秒目)におい
て、右手の「グー」動作、「グー」の発声動作、及び口
パクパク動作が一斉に開始する。
Next, the operation when the arm is lowered will be described. First, the lowering of the right arm is started two seconds after the time origin, and the start timing is given by <from: = timer 20> in the corresponding operation instruction statement (h). As shown in FIG. 24, the time from the start to the end of swinging down the arm is 1 second in terms of time,
The number of frames is 10 frames. Then, in the seventh frame (2.7 seconds in terms of the time from the time origin), the “goo” operation, the “goo” utterance operation, and the lip-and-mouth operation of the right hand start all at once.

【0056】これに対応するのは、図25の(i)〜
(k)の3つの動作命令文である。ここでは、動作開始
タイミングを右腕の動作のコマ送り数にて規定してい
る。各動作命令文に書き込まれている動作開始タイミン
グ規定コマンドの、<from:=item(部位名)
[△]>の形式は、「item(部位名)にて指定され
た部位動作の△コマ目に動作を開始せよ」という内容を
指示するものである。従って、<from:=item
RIGHTARM[7]>により、右腕の振下ろし開
始から7コマ目に各動作の開始時刻が設定される。
FIG. 25 (i) to FIG.
These are the three operation command statements (k). Here, the operation start timing is defined by the frame feed number of the right arm operation. <From: = item (part name) of the operation start timing defining command written in each operation command statement
The format [△]> indicates the content of “start the operation at the #th frame of the part operation specified by the item (part name)”. Therefore, <from: = item
RIGHTARM [7]> sets the start time of each operation at the seventh frame from the start of the lowering of the right arm.

【0057】最後は舌を出す動作であるが、図25にて
対応する動作命令文は(l)である。上述のような駆動
データは駆動データ作成装置1により作成することがで
きる。item TONGUSは舌を部位名として指定
するものであり、<do:=out>は「出す」動作を
指定するものである。そして、その動作開始タイミング
規定コマンド<from:=item RIGHTAR
M[back]>は、前記した<from:=item
RIGHTARM[7]>と同様に、右腕の部位動作
をタイミング設定の基準部位として指定しているが、
[back]は、「その部位(右腕)の動作が完了する
とともに動作開始せよ」を意味している。従って、右腕
の振下ろしが完了するとともに、ロボットは舌を出す動
作を行うこととなる。
The last operation is the operation of sticking out the tongue. The corresponding operation instruction in FIG. 25 is (l). The drive data as described above can be created by the drive data creation device 1. The item TONGUS specifies a tongue as a site name, and <do: = out> specifies an “out” operation. Then, the operation start timing defining command <from: = item RIGHTAR
M [back]> is the <from: = item described above.
Similarly to RIGHTARM [7]>, the part operation of the right arm is specified as a reference part for timing setting.
[Back] means "start the operation as soon as the operation of the part (right arm) is completed". Accordingly, the lowering of the right arm is completed, and the robot performs an operation of sticking out the tongue.

【0058】上記のようなロボットの駆動データは、主
要部分が図9の駆動データ作成装置1により教示作成さ
れ、各部位動作モジュールもそれに基づく教示動作ルー
チン部分として作成される。以下、駆動データ作成装置
1の作動の流れをフローチャートを用いて説明する。図
26は処理全体の大まかな流れを示すものであって、ま
ずS1100の入力処理では、モデル画像に対する骨格
画像の重ね合わせ処理を行い、駆動データを作成(換言
すれば、ロボット201への動作の教示)する。この処
理は、基本動作の単位で行われる。ここで、入力に先立
ってその基本動作を人間のモデルに行わせ、そのモデル
画像38(図16、図17)を所定のコマ時間間隔でビ
デオカメラにより動画撮影しておく。そして、図9のV
TR15により再生されたその動画が、画像取込制御部
6を介して動画データとして取り込まれ、動画データ記
憶装置11に記憶されている。ここで、動画データ記憶
装置11に記憶されている動画データは、図35に示す
ように、モデルが比較的複雑な動きを行っている場合に
は、そのコマ80の間隔が密になるように、逆に動きが
比較的単調な場合にはコマ80の間隔が粗となるよう
に、その動画のコマが、動画データ取り込み時あるいは
取り込み後のデータ編集時に適宜間引かれる。
The main parts of the drive data of the robot as described above are taught and generated by the drive data generating apparatus 1 shown in FIG. 9, and each part operation module is also generated as a teaching operation routine based thereon. Hereinafter, the operation flow of the drive data creation device 1 will be described with reference to a flowchart. FIG. 26 shows a general flow of the entire processing. First, in the input processing of S1100, a skeleton image is superimposed on a model image to generate drive data (in other words, the operation of the robot 201 is described). Teaching). This processing is performed in units of the basic operation. Here, prior to the input, the basic operation is performed by a human model, and the model image 38 (FIGS. 16 and 17) is shot with a video camera at predetermined frame time intervals. And V in FIG.
The moving image reproduced by the TR 15 is captured as moving image data via the image capturing control unit 6 and stored in the moving image data storage device 11. Here, as shown in FIG. 35, the moving image data stored in the moving image data storage device 11 may be arranged such that when the model moves relatively complicatedly, the interval between the frames 80 becomes small. On the other hand, when the movement is relatively monotonous, the frames of the moving image are appropriately thinned out at the time of capturing moving image data or at the time of data editing after the capturing so that the interval between the frames 80 becomes coarse.

【0059】図27は、S1100の入力処理の詳細を
示すフローチャートであって、まず駆動データの演算が
不要な部位の設定を行なった後(S1101)、図13
に示すようなウィンドウW1及びW2をそれぞれ表示す
る(S1102、S1103)。このうち、一方のウィ
ンドウW1にはモデル画像38が表示され、他方のウィ
ンドウW2には骨格画像39が表示される。なお、骨格
画像39は、図2に示すロボット骨格19を簡略化した
線図として表示される。
FIG. 27 is a flow chart showing the details of the input processing in S1100. First, a part which does not require calculation of drive data is set (S1101), and FIG.
Are displayed (S1102, S1103). Among them, the model image 38 is displayed in one window W1, and the skeleton image 39 is displayed in the other window W2. The skeleton image 39 is displayed as a simplified diagram of the robot skeleton 19 shown in FIG.

【0060】図27に戻って、S1104において、ビ
デオカメラにモデルを正対させて撮影したモデル画像3
8(図13)に、骨格画像39の寸法を合わせ込む処理
を行う。その処理の詳細を図28及び図29に示す。す
なわち、図13において、正対ポーズのモデル画像38
をウィンドウW1に、骨格画像39をウィンドウW2に
表示し(C101〜103)、各骨格単位の長さをモデ
ル画像の対応部位に合わせ込む(C104)。ここで骨
格画像39の各骨格単位に対しては、予め標準寸法が設
定されている。その合わせ込みの処理であるが、図29
に示すように、まず基準点Gの位置を合わせ込み(C2
01)、続いてその基準点Gから次第に遠ざかるよう
に、各骨格単位の端点を順次合わせ込んでゆく。
Returning to FIG. 27, in S1104, a model image 3 photographed with the model directly facing the video camera.
8 (FIG. 13) is performed to adjust the size of the skeleton image 39. Details of the processing are shown in FIGS. That is, in FIG. 13, the model image 38 of the facing pose is shown.
Is displayed in the window W1 and the skeleton image 39 is displayed in the window W2 (C101 to 103), and the length of each skeleton unit is matched with the corresponding portion of the model image (C104). Here, a standard dimension is set in advance for each skeleton unit of the skeleton image 39. FIG. 29 shows an example of the adjustment process.
As shown in the figure, first, the position of the reference point G is adjusted (C2
01) Then, end points of each skeleton unit are sequentially adjusted so as to gradually move away from the reference point G.

【0061】ここで、モデル画像38に対し、骨格画像
39の端点を合わせ込むための入力方法であるが、図1
3に示すように、ウィンドウW2上には各端点が目印点
として表示され、また、ウィンドウW1上にはマウス1
2(図9)の移動に伴い画面上を移動するポインタ40
が表示される。目印点の合わせ込みは、G点から始まっ
て次第に骨格の末端へ向かう方向に、予め設定された順
序で行われるようになっており、ウィンドウW2に表示
された骨格画像39上において、次に合わせ込みを行う
べき端点が点滅してこれを知らせるようになっている。
そして、ウィンドウW1上のモデル画像38上の指定す
るべき位置にポインタ40を合わせ、マウス12のクリ
ックボタンを操作することにより、ウィンドウW2上で
点滅表示された端点の、モデル画像38上での重ね位置
が確定され、それとすでに確定されている端点の位置に
基づいて、各骨格単位の長さが順次計算されてゆく(C
202〜C209)。また、長さが定められた骨格単位
は、ウィンドウW1のモデル画像38に対し順次重ね描
画されてゆく。
Here, an input method for aligning the end point of the skeleton image 39 with the model image 38 is shown in FIG.
As shown in FIG. 3, each end point is displayed as a mark on the window W2, and the mouse 1 is displayed on the window W1.
Pointer 40 that moves on the screen in accordance with the movement of 2 (FIG. 9)
Is displayed. The alignment of the mark points is performed in a preset order in the direction starting from the point G and gradually toward the end of the skeleton, and the next alignment is performed on the skeleton image 39 displayed in the window W2. The end point at which the embedding is to be performed flashes to indicate this.
Then, the pointer 40 is moved to the position to be designated on the model image 38 on the window W1 and the click button of the mouse 12 is operated, so that the end point blinking and displayed on the window W2 is overlaid on the model image 38. The position is determined, and the length of each skeleton unit is sequentially calculated based on the determined position of the end point (C
202-C209). Further, the skeleton unit whose length is determined is sequentially drawn on the model image 38 of the window W1.

【0062】ここで、正対ポーズにおけるモデル画像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内に作成された基準データ記憶
部に格納されている。
Here, the model image 3 in the facing pose
8 is substantially bilaterally symmetric, the respective end points of the humerus 24 and the lower humerus 25, and the upper limb bone 26 and the lower limb bone 27 (FIG. 2) can be determined if one of the right and left ends is positioned. Is also performed so that the position is automatically determined. Also, the dimensions of the head 20 (the distance between H and f1, FIG.
3) is to compare the standard size of the skeleton unit other than the head 20 with the calculated size, and is determined based on the size ratio and the standard size of the head 20 (C210). Note that a process may be performed in which a skeleton image having a standard size set in advance in the window W1 is displayed together with the model image 38, and the endpoints of each skeleton unit of the skeleton image are matched with the model image 38 on the window W1. In this case, the window W2 can be omitted. Next, returning to FIG. 28, the skeleton image 3 of the directly-facing pose is adjusted to the calculated size of the skeleton unit.
9 is redrawn in the window W1 (C105).
It proceeds to S1105 of No. 7. Here, for the skeleton image 39 corresponding to the facing pose, the drive position of each actuator is set in advance as reference data, and the set contents are stored in a reference data storage unit created in the program storage device 9. Is stored.

【0063】続いて、S1105〜S1109におい
て、骨格画像39の位置合わせを行う動画のコマ番号を
指定することにより、そのコマのモデル画像のデータが
取り込まれ、骨格画像の位置合わせ処理(骨格画像入
力)に移る。図30及び図31は、その位置合わせ処理
(S1109)の内容の詳細を示すフローチャートであ
る。すなわち、図30のC301〜C305に示すよう
に、取り込んだコマのモデル画像38に対し、G点から
始めて次第に遠ざかる方向に、骨格画像39の各端点の
位置をモデル画像38に対し合わせ込んでゆく。その入
力例を図36に示しているが、手順は前述の寸法合わせ
処理の場合とほぼ同様であり、ウィンドウW2上で点滅
表示される端点のウィンドウW1での合わせ位置をマウ
ス12で指定しながら、モデル画像38に対する位置合
わせ入力を行ってゆく。この場合も、ウィンドウW1上
のモデル画像38に対し、位置合わせの終わった部分か
ら順に骨格画像39が重ね描画されてゆく。ここで、左
右の脚部及び腕部については、前述の寸法合わせ処理と
は異なり、個々に入力処理が行われることとなる。な
お、S1101(図27)において設定された教示不要
部位については、位置合わせ入力がスキップされる。
Subsequently, in steps S1105 to S1109, by designating the frame number of the moving image to be aligned with the skeleton image 39, the model image data of the frame is fetched, and the skeleton image alignment processing (skeleton image input) Move to). FIG. 30 and FIG. 31 are flowcharts showing details of the contents of the positioning process (S1109). That is, as shown in C301 to C305 in FIG. 30, the positions of the respective end points of the skeleton image 39 are aligned with the model image 38 in a direction starting from the point G and gradually moving away from the captured frame model image 38. . An example of the input is shown in FIG. 36. The procedure is almost the same as that of the above-described dimension matching processing. The mouse 12 is used to specify the position of the end point blinking and displayed on the window W2 in the window W1. , The position of the model image 38 is input. Also in this case, the skeletal image 39 is sequentially drawn on the model image 38 on the window W1 from the position where the alignment is completed. Here, input processing is performed individually for the left and right legs and arms, unlike the above-described dimension matching processing. Note that the position input is skipped for the unnecessary part set in S1101 (FIG. 27).

【0064】図31は、両脚部に相当する部位の位置合
わせ処理の流れを一例として示しており、右脚部及び左
脚部のそれぞれについて、上肢骨26の上端点L1(L
2)の位置合わせを行った後、下肢骨27の下端点Lf
1(Lf2)の位置合わせが行われるようになっている
(C401〜C403)。ここで、図10に示す拘束条
件により、L1(L2)及びLf1(Lf2)が指定さ
れれば、膝に相当するLk1(Lk2)の位置は自動的
に定まるので入力は行われない。このようにして、各端
点の画面上の座標が算出され、その画面座標と、予め記
憶されている各骨格単位の標準体寸法データに基づいて
実際の空間における端点の3次元座標が算出される。
FIG. 31 shows, by way of example, the flow of the positioning process of the parts corresponding to the two legs. For each of the right leg and the left leg, the upper end point L1 (L
After the alignment of 2), the lower end point Lf of the lower limb bone 27
1 (Lf2) is performed (C401 to C403). Here, if L1 (L2) and Lf1 (Lf2) are designated by the constraint conditions shown in FIG. 10, no input is made because the position of Lk1 (Lk2) corresponding to the knee is automatically determined. In this way, the coordinates of each end point on the screen are calculated, and the three-dimensional coordinates of the end point in the actual space are calculated based on the screen coordinates and the standard body size data of each skeleton unit stored in advance. .

【0065】次に、図27に戻ってS1110に進み、
上記位置合わせ処理では駆動データの生成が困難ないし
不可能な骨格単位ないし部位に対し、それらの空間位置
の補助入力処理を、マウス12ないしキーボード13を
使用することにより行う。この入力処理は、上記位置合
わせ処理とは別のウィンドウを開き、そのウィンドウ上
に該当する骨格単位ないし部位の画像を表示して、位置
設定のために予め用意された各種処理コマンド(例えば
骨格単位の平行移動、あるいは回転など)を、マウス1
2あるいはキーボード13からの入力により選択・実行
しながら、骨格単位や部位毎に個別に入力を行ってゆ
く。
Next, returning to FIG. 27, the process proceeds to S1110,
In the above-described alignment processing, auxiliary input processing of the spatial positions of skeleton units or parts for which it is difficult or impossible to generate drive data is performed by using the mouse 12 or the keyboard 13. In this input processing, a window different from the above-described alignment processing is opened, an image of the corresponding skeleton unit or site is displayed on the window, and various processing commands (for example, skeleton unit) prepared in advance for position setting are set. Mouse translation or rotation)
While selecting / executing by the input from the keyboard 2 or the keyboard 13, the input is individually performed for each skeleton unit or each site.

【0066】以上で、1つのコマに対する入力処理が終
了するが、次のコマの処理に移る場合はコマ番号を更新
し、直前のコマの骨格画像39及びモデル画像38を描
画しなおすとともに(S1111〜S1113)、S1
107に返って処理を繰り返す。一方、コマへの入力作
業を終了する場合は(S1114〜S1116)、ウィ
ンドウW1とW2を閉じて図26のS1200に進む。
The input processing for one frame is completed as described above. However, when the processing moves to the next frame, the frame number is updated, and the skeleton image 39 and the model image 38 of the immediately preceding frame are redrawn (S1111). ~ S1113), S1
Returning to step 107, the processing is repeated. On the other hand, when the input operation to the frame is completed (S1114 to S1116), the windows W1 and W2 are closed, and the process proceeds to S1200 in FIG.

【0067】ここで、上述のようにして得られた各端点
の変位データが、そのまま駆動データとして使用される
場合にはS1300に進むが、その変位データから各ア
クチュエータの駆動量の算出まで行う場合には、S12
00の処理、すなわち上記入力により得られた、各コマ
毎の骨格単位の端点の空間位置座標に基づいて、骨格単
位を駆動するアクチュエータの駆動量を算出する処理が
挿入される。すなわち、図32に示すように、隣り合う
2枚のコマの番号を指定して、その各骨格単位の端点の
空間位置座標を読み込み、その空間位置座標に基づいて
各骨格単位間に設けられたアクチュエータの駆動量が算
出される(C501〜C503)。その算出処理の内容
は、前述の駆動量算出プログラム216aにより各アク
チュエータの駆動量を算出する処理とほぼ同様であるの
で詳しい説明は省略する。なお、最初のコマの骨格画像
が正対ポーズのものでない場合は、予め記憶されている
アクチュエータの基準位置をもとに、その最初のコマに
対する各アクチュエータの駆動位置を算出しておけばよ
い。
Here, when the displacement data of each end point obtained as described above is used as drive data as it is, the process proceeds to S1300. However, when the drive data of each actuator is calculated from the displacement data. Contains S12
The process of step 00, that is, the process of calculating the drive amount of the actuator that drives the skeleton unit based on the spatial position coordinates of the end points of the skeleton unit for each frame obtained by the above input is inserted. That is, as shown in FIG. 32, the numbers of two adjacent frames are designated, the spatial position coordinates of the end points of the respective skeleton units are read, and the frames are provided between the respective skeleton units based on the spatial position coordinates. The drive amount of the actuator is calculated (C501 to C503). The content of the calculation process is substantially the same as the process of calculating the drive amount of each actuator by the above-described drive amount calculation program 216a, and a detailed description thereof will be omitted. If the skeletal image of the first frame is not a directly facing pose, the drive position of each actuator with respect to the first frame may be calculated based on the reference position of the actuator stored in advance.

【0068】次に、図26のS1300に進み、入力が
終わった各コマに対しロボット動作の実時間軸上の時間
を設定する。その処理の詳細を図33のフローチャート
に示す。すなわち、時間設定用のウィンドウを開いて骨
格画像データをコマ番号順に読み出し、ウィンドウ内に
骨格画像を順次表示しながら時間入力を行ってゆく(C
601〜C605)。そして、C6051において、直
前のコマとの時間間隔から各アクチュエータの駆動速度
を算出し、C606において、その時間間隔で全てのア
クチュエータが駆動完了できるかどうかを判定する。完
了できるようであれば、C607でその入力された時間
及びアクチュエータ駆動速度を格納し、C608でコマ
番号をインクリメントしてC603に戻り、処理を繰り
返す。また、駆動完了できないようであればC605に
戻って時間入力をやり直す。そして、時間の入力処理が
終わるとC612でウィンドウを閉じて図26のS14
00に進む。
Next, the flow advances to S1300 in FIG. 26, where the time on the real time axis of the robot operation is set for each frame for which input has been completed. Details of the processing are shown in the flowchart of FIG. That is, a time setting window is opened, skeleton image data is read out in the order of frame numbers, and time is input while sequentially displaying skeleton images in the window (C).
601 to C605). Then, in C6051, the driving speed of each actuator is calculated from the time interval with the immediately preceding frame, and in C606, it is determined whether the driving of all the actuators can be completed in the time interval. If it can be completed, the input time and the actuator drive speed are stored in C607, the frame number is incremented in C608, the process returns to C603, and the process is repeated. If the driving cannot be completed, the process returns to C605 and the time input is performed again. Then, when the time input process is completed, the window is closed in C612 and S14 in FIG.
Go to 00.

【0069】S1400では、最終的に得られた駆動デ
ータを駆動データ記憶装置10に記憶・保存する。その
処理の流れは図34に示す通りであって、まず、C70
1で中位動作コマンド名を入力する。そして、駆動デー
タはその部位別に分割され(C702)、下位動作デー
タのサブファイル、すなわち部位動作モジュールが形成
される(C702)。そして、それら部位動作モジュー
ルが、入力された中位動作コマンド名で統合されて、中
位動作ルーチンとして記憶装置10に保存される(C7
03)。なお、各部位動作モジュールは、互いに異なる
中位動作ルーチン間での交換や差替えが可能とされてい
る。
In S1400, the finally obtained drive data is stored and stored in the drive data storage device 10. The flow of the process is as shown in FIG.
Enter the middle operation command name with 1. Then, the drive data is divided for each part (C702), and a sub-file of lower-order operation data, that is, a part operation module is formed (C702). Then, these part operation modules are integrated under the input middle operation command name and stored in the storage device 10 as a middle operation routine (C7).
03). In addition, each part operation module can be exchanged or replaced between different middle operation routines.

【0070】以上のようにして各部位の部位動作モジュ
ールは、駆動データ作成装置1により教示作成される
が、モデル画像に位置合わせされた骨格画像からは駆動
データの演算が困難あるいは不可能なロボット部位、す
なわち非教示部位が存在する。一例としては、手首、
指、眼、口、舌等である。この場合は、上記動作プログ
ラムにおいて、そのような非教示部位の位置決め命令ル
ーチン部分を、例えば定義ルーチンの一角をなすものと
して組み込むことができる。本実施例では、 set (部位名) <設定因子:=設定条件値> という形式にて位置決め命令ルーチン部分を記述するよ
うになっている。
As described above, the part operation module of each part is taught and created by the drive data creating apparatus 1. However, it is difficult or impossible to calculate drive data from the skeleton image aligned with the model image. There is a site, that is, a non-teaching site. Examples include wrists,
Fingers, eyes, mouth, tongue, etc. In this case, in the operation program, such a positioning instruction routine portion of a non-taught portion can be incorporated as, for example, a part of a definition routine. In the present embodiment, the positioning command routine is described in the format of set (part name) <setting factor: = setting condition value>.

【0071】具体的には、対応する非教示部位の移動開
始位置、移動終了位置及び移動速度を設定因子として選
び、数値入力するかあるいは予め用意された候補値から
選択する等により、所期の設定条件値を設定する。これ
を受けて図5の記憶部308に記憶されている非教示部
位駆動データ生成プログラムに基づき、図1のCPU2
04は、対応する部位のアクチュエータの駆動データを
算出する。例えば、アクチュエータがサーボモータやス
テッピングモータである場合には、移動開始位置及び移
動終了位置の値を受けてモータの回転開始位置と回転終
了位置を算出し、移動速度の値を受けてモータの回転数
を算出する。以下、本実施例のロボットにて使用れる非
教示部位とその動作種別、及び位置決め命令ルーチン部
分の形式等について、いくつかの例を示す。
Specifically, the movement start position, movement end position, and movement speed of the corresponding non-taught part are selected as setting factors, and the desired values are entered by inputting numerical values or selecting from candidate values prepared in advance. Set the setting condition value. In response to this, the CPU 2 of FIG. 1 is operated based on the non-taught area driving data generation program stored in the storage unit 308 of FIG.
04 calculates drive data of the actuator of the corresponding part. For example, when the actuator is a servo motor or a stepping motor, the rotation start position and the rotation end position of the motor are calculated based on the values of the movement start position and the movement end position, and the rotation speed of the motor is determined based on the movement speed value. Calculate the number. In the following, some examples are shown for the non-taught portion used in the robot of the present embodiment, its operation type, the format of the positioning command routine, and the like.

【0072】 部位名:右眼(左眼)(部位指定情報: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とleftで設定される座標間 を、往復回数指定(<till:=repeat n>)。往復回数が指定され ていない時は一往復のみとなる。そして最終の眼の位置は左設定位置で停止する 。 なお眼は最初右側へ動かす。Part name: right eye (left eye) (part designation information: RIGHTEEYE (LEFTEYE)). Actuator: Rotated left and right by a motor. Format: RIGHTEYE <do: = execution command> <til: = conditional expression> LEFTEYE <do: = execution command> <til: = conditional expression> Execution command: straight: the eye is turned to the front right: the right end position (right eye) left: Left end position (left-pointing gaze) gogle: screaming Operation end condition phrase: When the execution command is "goggle", the number of reciprocation of the eyes can be specified. (Example: RIGHTEEYE <do: = goggle> <til: = repeat △>) Positioning instruction: set EYE <speed: = (speed designation information)> <right t: = (right eye position coordinate)> <left: = ( Left gaze position coordinates)> (part name is common to the left and right eyes, for example, but may be set separately for the left and right eyes) speed: indicates the eye movement speed right: indicates the right gaze position left: left gaze position -"Right gaze" moves to the position set by the positioning command right-"Left gaze" moves to the position set by the positioning command left-"Kyoro Kyoro" is set by the positioning command right and left Specify the number of reciprocations between coordinates (<til: = repeat n>). If the number of round trips is not specified, only one round trip is made. Then, the final eye position stops at the left set position. The eyes first move to the right.

【0073】 部位名:右瞼(左瞼)(部位指定情報:RIGHTEYELID(LEFTEY ELID) アクチュエータ:モータにより上下に駆動される。 書式:RIGHTEYELID<do:=実行コマンド><till:=条件式 > LEFTEYELID<do:=実行コマンド><till:=条件式> 実行コマンド open :「瞼を開ける」を命令 close :「瞼を閉じる」を命令 blink :「瞬きをする」を命令 動作終了条件句 実行コマンドがblinkの時、瞬き回数指示が可能。( 例:RIGHTEYELID<do:=blink><till:=repea t n>) 位置決め命令 set EYELID<open:=(時間設定情報)> (左右瞼共通) open :瞼を開けている時間を指定Part Name: Right Eyelid (Left Eyelid) (Part Designation Information: RIGHTEYELID (LEFTEYELID) Actuator: Driven Up and Down by Motor Format: RIGHTEYELID <do: = Execution Command> <till: = Conditional Expression> LEFTEYELID <Do: = Execution command> <til: = Conditional expression> Execution command open: Command to open eyelids close: Command to close eyelids blink: Command to "blink" Operation end condition phrase Execution command is In the case of blink, the number of blinks can be indicated (eg, RIGHTEYELID <do: = blink> <til: = repeat n>) Positioning command set EYELID <open: = (time setting information)> (common to left and right eyelids) open: Specify the time for opening the eyelids

【0074】 部位名:口(部位指定情報:MOUTH) アクチュエータ:モータにより開閉駆動される。 書式:MOUTH<do:=実行コマンド><till:=条件式> 実行コマンド open :「口を開ける」を命令 close :「口を閉じる」を命令 parrot :「口パクパクする」を命令 動作終了条件句 実行コマンドがparrotの時、回数指示が可能。(例 :MOUTH<do:=parrot><till:=repeat n>) 位置決め命令 set MOUTH<open:=(時間設定情報)>< close:=(時間設定情報)> open :口を開けている時間を指示 close :口を閉じている時間を指示Part name: Mouth (part designation information: MOUTH) Actuator: Open / closed by a motor. Format: MOUTH <do: = execution command> <til: = conditional expression> execution command open: command "open mouth" close: command "close mouth" parrot: command "close mouth" operation end condition phrase When the execution command is parrot, the number of times can be specified. (Example: MOUTH <do: = parrot> <til: = repeat n>) Positioning instruction set MOUTH <open: = (time setting information)> <close: = (time setting information)> open: Time during which the mouth is open Instruct close: Indicate the time that the mouth is closed

【0075】 部位名:舌(部位指定情報:TONGUS) アクチュエータ:モータにより出入れ駆動される。 書式:TONGUS<do:=実行コマンド><till:=条件式> 実行コマンド out :「舌を出す」を命令 in :「舌を入れる」を命令 lick :「ベロベロする」を命令 動作終了条件句 実行コマンドがlickの時、回数指示が可能。 (例:TONGUS<do:=lick><till:=repeat n>) 位置決め命令 set TONGUS<out:=(時間設定情報)>< in:=(時間設定情報)> out :舌を出している時間を指示 in :舌を入れている時間を指示Part name: tongue (part designation information: TONGUS) Actuator: driven in and out by motor. Format: TONGUS <do: = execution command> <til: = conditional expression> Execution command out: command "put out tongue" in: command "put in tongue" lick: command "bevel" When the command is lick, the number of times can be specified. (Example: TONGUS <do: = lick> <til: = repeat n>) Positioning instruction set TONGUS <out: = (time setting information)> <in: = (time setting information)> out: Time for sticking out tongue Instruct in: Indicate the time to put your tongue

【0076】 部位名:手(部位指定情報:RIGHTFINGER(LEFTFINGER) ) アクチュエータ:シリンダにより、各指が独立に曲げ伸ばし駆動される。 書式 RIGHTFINGER<do:=実行コマンド> LEFTFINGER<do:=実行コマンド> 実行コマンド 指パターン指示(0〜32のいずれかを選択することによ り、各種指曲げ状態を設定する。例えば、0:パー/1:親指曲/2:人差指曲 /4:中指曲/8:薬指曲/16:小指曲/31:グー) 位置決め命令 なしPart Name: Hand (Part Designation Information: RIGHTFINGER (LEFTFINGER)) Actuator: Each finger is independently bent and extended by a cylinder and driven. Format RIGHTFINGER <do: = execution command> LEFTTFINGER <do: = execution command> Execution command Finger pattern indication (sets various finger bending states by selecting any one of 0 to 32. For example, 0: par / 1: Thumb song / 2: Index finger song / 4: Middle finger song / 8: Ring finger song / 16: Little finger song / 31: Goo) No positioning command

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明のロボットシステムの全体構成を示すブ
ロック図。
FIG. 1 is a block diagram showing the overall configuration of a robot system according to the present invention.

【図2】ロボット骨格の模式図。FIG. 2 is a schematic diagram of a robot skeleton.

【図3】ロボット頭部に設けられた口及び舌の動作説明
図。
FIG. 3 is an explanatory diagram of an operation of a mouth and a tongue provided on a robot head.

【図4】同じく眼及び瞼の動作説明図。FIG. 4 is an explanatory view of the operation of the eyes and eyelids.

【図5】ロボット制御部の記憶装置の内容を示す説明
図。
FIG. 5 is an explanatory diagram showing contents of a storage device of the robot control unit.

【図6】その部位動作モジュール記憶部の内容を示す説
明図。
FIG. 6 is an explanatory diagram showing the contents of a part operation module storage unit.

【図7】ロボット制御部のRAMの内容を示す説明図。FIG. 7 is an explanatory diagram showing the contents of a RAM of the robot control unit.

【図8】算出・駆動制御部の構成を示すブロック図。FIG. 8 is a block diagram illustrating a configuration of a calculation / drive control unit.

【図9】駆動データ作成装置の一構成例を示すブロック
図。
FIG. 9 is a block diagram illustrating a configuration example of a driving data creation device.

【図10】脚部骨格に対する拘束条件の説明図。FIG. 10 is an explanatory diagram of a constraint condition for a leg skeleton.

【図11】上位動作プログラムによる処理の流れを示す
フローチャート。
FIG. 11 is a flowchart showing the flow of processing by a higher-level operation program.

【図12】中位動作ルーチンの処理の流れを示すフロー
チャート。
FIG. 12 is a flowchart showing the flow of processing of a middle-level operation routine.

【図13】正対モデルに対する骨格画像の寸法合わせ処
理の説明図。
FIG. 13 is an explanatory diagram of a skeleton image size matching process for a directly facing model.

【図14】アクチュエータの駆動量を算出する方法の説
明図。
FIG. 14 is an explanatory diagram of a method of calculating a drive amount of an actuator.

【図15】ロボットの動作の流れをプログラム階層と対
応付けて説明する図。
FIG. 15 is a view for explaining the flow of the operation of the robot in association with the program hierarchy.

【図16】歩行に関する基本動作の例を示す説明図。FIG. 16 is an explanatory diagram showing an example of a basic operation related to walking.

【図17】図16に続く説明図。FIG. 17 is an explanatory view following FIG. 16;

【図18】上位動作プログラムの記述例を示す説明図。FIG. 18 is an explanatory diagram showing a description example of a higher-level operation program.

【図19】その標準変更型中位動作ルーチンの定義ルー
チンの一例を示す説明図。
FIG. 19 is an explanatory view showing an example of a definition routine of the standard change type middle operation routine.

【図20】部位動作モジュールの削除、追加を行う場合
の動作命令文の記述例を示す説明図。
FIG. 20 is an explanatory diagram showing an example of a description of an operation command statement when deleting and adding a part operation module.

【図21】重ね合わせ型中位動作ルーチンを用いた上位
動作プログラムの記述例を示す説明図。
FIG. 21 is an explanatory diagram showing a description example of a higher-level operation program using a superimposition-type middle-level operation routine.

【図22】その重ね合わせ型中位動作ルーチンの定義ル
ーチンの記述例を示す説明図。
FIG. 22 is an explanatory diagram showing a description example of a definition routine of the superposition type middle operation routine.

【図23】組合わせ型中位動作ルーチンの適用に好適な
ロボット動作例を示す説明図。
FIG. 23 is an explanatory diagram showing a robot operation example suitable for application of a combination-type middle-level operation routine.

【図24】図23の動作のタイミングチャートの一例を
示す図。
24 is a diagram showing an example of a timing chart of the operation in FIG.

【図25】それに使用する組合わせ型中位動作ルーチン
の定義ルーチンの記述例を示す説明図。
FIG. 25 is an explanatory diagram showing a description example of a definition routine of a combination-type middle-level operation routine used in the routine;

【図26】駆動データ作成装置の全体の処理の流れを示
すフローチャート。
FIG. 26 is a flowchart showing the overall processing flow of the drive data creation device.

【図27】その入力処理のフローチャート。FIG. 27 is a flowchart of the input process.

【図28】その入力処理において、骨格単位長さを定め
る処理の流れを示すフローチャート。
FIG. 28 is a flowchart showing a flow of processing for determining a skeleton unit length in the input processing.

【図29】各骨格単位の長さをモデル画像の対応部位に
合わせ込む処理の流れを示すフローチャート。
FIG. 29 is a flowchart showing the flow of processing for adjusting the length of each skeleton unit to a corresponding part of a model image.

【図30】同じく、各骨格単位の端点の位置合わせ処理
の流れを示すフローチャート。
FIG. 30 is a flowchart showing the flow of the alignment process of the end point of each skeleton unit.

【図31】同じく、骨格の端点の座標を算出する処理の
流れを示すフローチャート。
FIG. 31 is a flowchart showing the flow of processing for calculating the coordinates of the end points of the skeleton.

【図32】同じく、駆動データ算出の流れを示すフロー
チャート。
FIG. 32 is a flowchart showing the flow of drive data calculation.

【図33】同じく、時間入力処理の流れを示すフローチ
ャート。
FIG. 33 is a flowchart showing the flow of a time input process.

【図34】同じく、駆動データ保存処理の流れを示すフ
ローチャート。
FIG. 34 is a flowchart showing the flow of a drive data storage process.

【図35】コマの時間軸上における配列の一例を示す模
式図。
FIG. 35 is a schematic diagram showing an example of an array of frames on a time axis.

【図36】骨格画像のモデル画像に対する位置合わせ処
理の説明図
FIG. 36 is an explanatory diagram of a registration process of a skeleton image with respect to a model image;

【符号の説明】[Explanation of symbols]

1 駆動データ作成装置 5 装置制御部(駆動データ演算手段) 200 ロボットシステム 201 ロボット 202 ロボット制御部 204 CPU(プログラム読出手段、プログラム展開
手段、非教示部位駆動データ生成手段) 205 RAM 205a 上位動作プログラム格納部 205b 中位動作コマンド解析プログラム格納部 205c 中位動作ルーチン格納部(I) 205d 中位動作ルーチン格納部(II) 205g 中位動作ルーチン展開メモリ領域 207 記憶装置 212 算出・駆動制御部 213 アクチュエータ 300 上位動作プログラム記憶部 302 中位動作ルーチン記憶部 304 部位動作モジュール記憶部 306 中位動作コマンド解析プログラム記憶部
REFERENCE SIGNS LIST 1 drive data creation device 5 device control unit (drive data calculation unit) 200 robot system 201 robot 202 robot control unit 204 CPU (program read unit, program development unit, non-taught part drive data generation unit) 205 RAM 205 a Higher-order operation program storage Unit 205b Medium operation command analysis program storage unit 205c Medium operation routine storage unit (I) 205d Medium operation routine storage unit (II) 205g Medium operation routine expansion memory area 207 Storage device 212 Calculation / drive control unit 213 Actuator 300 Upper-level operation program storage unit 302 Middle-level operation routine storage unit 304 Local operation module storage unit 306 Medium-level operation command analysis program storage unit

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 3F059 BA02 BB06 BC09 FA05 5H215 AA07 BB10 CC05 CX01 CX04 GG02 HH03 JJ14 JJ15 5H269 AB33 BB08 CC09 EE13 EE27 GG08 KK03 NN08 NN16 NN18 QB14 QC01 QC03 QC06 QC10 QD03 QD05  ──────────────────────────────────────────────────続 き Continued on the front page F term (reference)

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 上位のロボット動作をいくつかの基本動
作の組み合わせとして把握し、前記基本動作に必要な各
ロボット部位(以下、単に部位ともいう)の動作を規定
する部位動作プログラムモジュール(以下、部位動作モ
ジュールという)が、そのロボット部位に設けられたア
クチュエータの駆動に関する駆動データを単位として形
成され、その部位動作モジュールを複数組み合わせるこ
とにより前記基本動作を規定する中位動作ルーチンが形
成され、その前記中位動作ルーチンの組み合わせにより
前記上位のロボット動作を規定する上位動作プログラム
が形成される階層型プログラムとして、ロボット動作プ
ログラムが記述されており、 前記中位動作ルーチンを記憶する中位動作ルーチン記憶
部と、 各中位動作ルーチンと対応付けられた中位動作コマンド
を用い、これら中位動作コマンドの組み合わせにより規
定される上位動作プログラムを記憶する上位動作プログ
ラム記憶部と、 その上位動作プログラム記憶部に記憶された前記上位動
作プログラムを、前記中位動作コマンドの単位で読み出
すプログラム読出手段と、 読み出された各中位動作コマンドに対応する中位動作ル
ーチンの組み合わせに基づいて、前記アクチュエータの
駆動を制御するアクチュエータ動作制御部とを含み、 前記中位動作ルーチンを構成する部位動作モジュールに
は、対応する部位動作の動作開始タイミングを規定する
動作開始タイミング規定コマンドを含んだ動作条件規定
コマンドが含まれており、前記アクチュエータ動作制御
部は、前記動作条件規定コマンドが規定する動作条件に
従い、前記基本動作又は部位動作に係るアクチュエータ
の駆動を制御することを特徴とするロボットシステム。
1. A part operation program module (hereinafter, referred to simply as a part) that grasps a higher-order robot operation as a combination of several basic operations and defines the operation of each robot part (hereinafter, also simply referred to as a part) required for the basic operation. A part operation module) is formed in units of drive data relating to driving of an actuator provided in the robot part, and a medium-level operation routine that defines the basic operation is formed by combining a plurality of the part operation modules. A robot operation program is described as a hierarchical program in which a higher-level operation program that defines the higher-level robot operation is formed by a combination of the middle-level operation routines. And each middle-level operation routine A higher-level operation program storage unit that stores a higher-level operation program defined by a combination of these middle-level operation commands using the higher-level operation command; A program reading means for reading in a command unit; and an actuator operation control unit for controlling the driving of the actuator based on a combination of a medium operation routine corresponding to each of the read medium operation commands. The part operation module constituting the operation routine includes an operation condition specifying command including an operation start timing specifying command for specifying an operation start timing of the corresponding part operation, and the actuator operation control unit includes the operation condition According to the operating conditions specified by the specified command, Robot system and controls the drive of the actuator according to the operation or site operation.
【請求項2】 前記動作開始タイミング規定コマンド
は、予め定められた時刻原点からの経過時間に基づいて
前記動作開始タイミングを与えるものである請求項1記
載のロボットシステム。
2. The robot system according to claim 1, wherein the operation start timing defining command gives the operation start timing based on an elapsed time from a predetermined time origin.
【請求項3】 前記複数のロボット部位のうちの少なく
とも一部のものが、複数の骨格単位とそれら骨格単位の
間に配置された前記アクチュエータとを有する骨格を備
えるものとされるとともに、 前記複数の部位動作モジュールのうち、少なくとも一部
のものは、下記の要件を備えた駆動データ作成装置、す
なわち、 ロボット動作に対応するモデルの動作を経時的に記録し
た一連のモデル画像と、前記骨格の画像を表示する画像
表示手段と、 その表示手段において前記骨格画像を、前記モデル画像
に対して位置合わせする骨格位置決め手段と、 時間軸上において互いに前後するモデル画像に対しそれ
ぞれ位置合わせされた前記骨格画像の変位に基づいて、
前記駆動データを算出するデータ演算手段とを含む駆動
データ作成装置により、動作のコマ送り単位で作成され
た駆動データを、ロボットの部位別に編集することによ
り作成された教示動作ルーチン部分である請求項1又は
2に記載のロボットシステム。
3. At least a part of the plurality of robot parts includes a skeleton having a plurality of skeleton units and the actuator disposed between the skeleton units. At least a part of the part operation modules is a drive data creation device having the following requirements, that is, a series of model images that record the operation of the model corresponding to the robot operation over time, Image display means for displaying an image, skeleton positioning means for positioning the skeleton image with respect to the model image on the display means, and skeleton positioned respectively with respect to the model images preceding and following each other on a time axis Based on the displacement of the image,
A teaching operation routine portion created by editing the drive data created in units of frame-by-frame movement for each part of the robot by the drive data creation device including the data operation means for calculating the drive data. 3. The robot system according to 1 or 2.
【請求項4】 前記動作開始タイミング規定コマンド
は、前記教示動作ルーチン部分により規定されるある部
位の動作を基準として用いたときの、その部位動作の開
始時刻、終了時刻又は特定のコマ位置通過時刻のいずれ
かに基づいて前記動作開始タイミングを与えるものであ
る請求項3記載のロボットシステム。
4. The operation start timing defining command is a start time, an end time, or a specific frame position passing time of a part operation when the operation of a part specified by the teaching operation routine is used as a reference. 4. The robot system according to claim 3, wherein the operation start timing is given based on one of the following.
【請求項5】 前記中位動作ルーチンに、前記駆動デー
タ作成装置による教示動作ルーチン部分の作成がなされ
ないロボット部位(以下、非教示部位と称する)の部位
動作モジュールが含まれる場合に、その部位動作モジュ
ールに対応する非教示部位の位置決め命令ルーチン部分
が組み込まれており、 その位置決め命令ルーチン部分の内容に基づいて、対応
する非教示部位のアクチュエータの駆動データを生成す
る非教示部位駆動データ生成手段が設けられている請求
項3又は4に記載のロボットシステム。
5. When the middle operation routine includes a part operation module of a robot part (hereinafter, referred to as a non-teaching part) for which a part of a teaching operation routine is not created by the drive data creation device, the part is referred to as a non-teaching part. Non-taught portion drive data generating means for incorporating a non-taught portion positioning instruction routine portion corresponding to the operation module and generating drive data of the corresponding non-taught portion actuator based on the contents of the positioning instruction routine portion The robot system according to claim 3, wherein a robot is provided.
【請求項6】 前記位置決め命令ルーチン部分は、対応
する非教示部位の移動開始位置、移動終了位置及び移動
速度の少なくともいずれかを指定する位置決め情報が含
まれている請求項5記載のロボットシステム。
6. The robot system according to claim 5, wherein the positioning instruction routine portion includes positioning information for designating at least one of a movement start position, a movement end position, and a movement speed of a corresponding non-teaching portion.
【請求項7】 前記動作開始タイミング規定コマンドが
特に与えられていない場合に、対応する基本動作又は部
位動作の動作開始タイミングを予め定められたデフォル
ト開始時刻に設定する動作開始タイミング設定手段が設
けられている請求項1ないし6のいずれかに記載のロボ
ットシステム。
7. An operation start timing setting means for setting an operation start timing of a corresponding basic operation or a part operation to a predetermined default start time when the operation start timing definition command is not particularly given. The robot system according to any one of claims 1 to 6, wherein:
JP25014098A 1998-09-03 1998-09-03 Robot system Expired - Fee Related JP4039595B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25014098A JP4039595B2 (en) 1998-09-03 1998-09-03 Robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25014098A JP4039595B2 (en) 1998-09-03 1998-09-03 Robot system

Publications (2)

Publication Number Publication Date
JP2000153478A true JP2000153478A (en) 2000-06-06
JP4039595B2 JP4039595B2 (en) 2008-01-30

Family

ID=17203423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25014098A Expired - Fee Related JP4039595B2 (en) 1998-09-03 1998-09-03 Robot system

Country Status (1)

Country Link
JP (1) JP4039595B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002120174A (en) * 2000-10-11 2002-04-23 Sony Corp Authoring system, authoring method and storage medium
JP2002144263A (en) * 2000-11-09 2002-05-21 Nippon Telegr & Teleph Corp <Ntt> Motion teaching and playback device of robot, its method and recording medium recording motion teaching and playback program of robot
WO2002076686A1 (en) * 2001-03-27 2002-10-03 Sony Corporation Action teaching apparatus and action teaching method for robot system, and storage medium
JP2011121167A (en) * 2009-12-09 2011-06-23 Korea Electronics Telecommun Method of achieving task based on action of robot system
JP2016120565A (en) * 2014-12-25 2016-07-07 株式会社キーエンス Image processing apparatus, image processing system, image processing method, and computer program
KR20220062141A (en) * 2020-01-28 2022-05-13 가부시키가이샤 옵톤 Control program generating device, control program generating method, program
KR20220062315A (en) * 2020-01-28 2022-05-16 가부시키가이샤 옵톤 Control program generating device, control program generating method, program
KR20220062676A (en) * 2020-01-28 2022-05-17 가부시키가이샤 옵톤 Motion control device, motion control method, program
KR20220062544A (en) * 2020-01-28 2022-05-17 가부시키가이샤 옵톤 Control program generating device, control program generating method, program

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002120174A (en) * 2000-10-11 2002-04-23 Sony Corp Authoring system, authoring method and storage medium
JP4670136B2 (en) * 2000-10-11 2011-04-13 ソニー株式会社 Authoring system, authoring method, and storage medium
JP2002144263A (en) * 2000-11-09 2002-05-21 Nippon Telegr & Teleph Corp <Ntt> Motion teaching and playback device of robot, its method and recording medium recording motion teaching and playback program of robot
WO2002076686A1 (en) * 2001-03-27 2002-10-03 Sony Corporation Action teaching apparatus and action teaching method for robot system, and storage medium
US7216082B2 (en) 2001-03-27 2007-05-08 Sony Corporation Action teaching apparatus and action teaching method for robot system, and storage medium
JP2011121167A (en) * 2009-12-09 2011-06-23 Korea Electronics Telecommun Method of achieving task based on action of robot system
JP2016120565A (en) * 2014-12-25 2016-07-07 株式会社キーエンス Image processing apparatus, image processing system, image processing method, and computer program
KR20220062141A (en) * 2020-01-28 2022-05-13 가부시키가이샤 옵톤 Control program generating device, control program generating method, program
KR20220062315A (en) * 2020-01-28 2022-05-16 가부시키가이샤 옵톤 Control program generating device, control program generating method, program
KR20220062676A (en) * 2020-01-28 2022-05-17 가부시키가이샤 옵톤 Motion control device, motion control method, program
KR20220062544A (en) * 2020-01-28 2022-05-17 가부시키가이샤 옵톤 Control program generating device, control program generating method, program
KR102476171B1 (en) * 2020-01-28 2022-12-08 가부시키가이샤 옵톤 Motion control device, motion control method, program
KR102476173B1 (en) * 2020-01-28 2022-12-08 가부시키가이샤 옵톤 Control program generation device, control program generation method, program
KR102476170B1 (en) * 2020-01-28 2022-12-08 가부시키가이샤 옵톤 Control program generation device, control program generation method, program
KR102476169B1 (en) * 2020-01-28 2022-12-08 가부시키가이샤 옵톤 Control program generation device, control program generation method, program

Also Published As

Publication number Publication date
JP4039595B2 (en) 2008-01-30

Similar Documents

Publication Publication Date Title
US5990878A (en) Sign language editing apparatus
JP5468047B2 (en) System and method for animating a digital face model
Shapiro Building a character animation system
Kalra et al. Smile: A multilayered facial animation system
JP4039595B2 (en) Robot system
AU700204B2 (en) Installation and method for controlling a movable apparatus
Shapiro et al. Interactive motion correction and object manipulation
JP2010531743A (en) Method for editing robot motion
JP3995348B2 (en) Robot system
JP2016062528A (en) Articulated skeleton model processing device and program
Wachsmuth et al. Lifelike gesture synthesis and timing for conversational agents
Nakaoka et al. Creating facial motions of Cybernetic Human HRP-4C
JP2000155606A (en) Operation control system
Dauriac et al. Example-based multilinear sign language generation from a hierarchical representation
JP3668289B2 (en) Robot motion teaching system
JP2820639B2 (en) Robot control method and robot system
JP2998663B2 (en) Animation creation equipment
JPH10302085A (en) Operation recording system for cg model
US20220028150A1 (en) Systems and methods for computer animation using an order of operations deformation engine
JPH02216588A (en) Interactive script animation generating method
KR20190131188A (en) Medical VR simulation program that can simulate virtual surgery and create surgical guide
Victor et al. Pose Metrics: a New Paradigm for Character Motion Edition
JP3672723B2 (en) Person CG production method
Zhuang et al. A modern approach to intelligent animation: theory and practice
Morawetz A high-level approach to the animation of human secondary movement

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