JP2008254074A - Motion editing device, and its program - Google Patents
Motion editing device, and its program Download PDFInfo
- Publication number
- JP2008254074A JP2008254074A JP2007095291A JP2007095291A JP2008254074A JP 2008254074 A JP2008254074 A JP 2008254074A JP 2007095291 A JP2007095291 A JP 2007095291A JP 2007095291 A JP2007095291 A JP 2007095291A JP 2008254074 A JP2008254074 A JP 2008254074A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- data
- motion
- key frame
- display unit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Abstract
Description
本発明は、多関節型ロボットの動作パターンを規定するロボットのモーション編集処理を行うロボットのモーション編集装置及びそのプログラムに関し、特に、多数の関節を有する多関節型ロボットの動作パターンを、擬似空間でのCGモデルの操作により作成するロボットのモーション編集装置及びそのプログラムに関する。 The present invention relates to a robot motion editing apparatus that performs motion editing processing of a robot that defines an operation pattern of an articulated robot, and a program thereof, and more particularly to an operation pattern of an articulated robot having many joints in a pseudo space. The present invention relates to a robot motion editing apparatus and its program created by operating the CG model.
近年のロボット技術の発展により、歩行可能なロボットが出現している。このようなロボットでは、一般に多関節型ロボットが利用されており、関節数が多い程、多彩な動作(モーション)ができる。又、産業界のみならず、一般家庭や日常生活にも、ロボットが浸透している。 With the recent development of robot technology, robots that can be walked have appeared. In such a robot, an articulated robot is generally used, and as the number of joints increases, various operations (motions) can be performed. Moreover, robots have permeated not only in the industrial world but also in general households and daily life.
関節数が多いロボットでは、多種多彩の動作(モーション)が可能であるが、そのモーションを規定する位置や速度(関節角や角速度)を入力し、モーションデータを作成する必要がある。 A robot with a large number of joints can perform a wide variety of motions (motions). However, it is necessary to create a motion data by inputting the position and speed (joint angle and angular velocity) that define the motion.
この方法として、従来、画面の擬似空間に、ロボットのCG(Computer Graphics)モデルを表示し、マウス等の入力により、CGモデルを操作し、モーションデータを編集するシステムが提案されている(例えば、特許文献1,2参照)。
As this method, there has been proposed a system that displays a CG (Computer Graphics) model of a robot in a pseudo space of a screen, and manipulates the CG model by inputting with a mouse or the like to edit motion data (for example, (See
この従来技術では、3次元擬似空間に、ロボットのCGモデルを表示し、ロボットに、所望のモーションを行わせるため、マウスやキー操作で、CGモデルを、所望のポーズに動作させる。そして、そのポーズの位置から、実ロボットの関節角データを得て、モーションデータを編集するものであった。 In this prior art, a CG model of a robot is displayed in a three-dimensional pseudo space, and the CG model is moved to a desired pose by a mouse or key operation in order to cause the robot to perform a desired motion. Then, the joint angle data of the actual robot is obtained from the position of the pose, and the motion data is edited.
更に、このモーションデータを再生して、擬似空間のCGモデルを動作させ、モーションデータによって、ロボットが所望のモーションを実行するかを確認する。確認後は、モーションデータは、ロボットに転送され、ロボットのメモリに格納される。
近年のロボットのエンターティメント分野での利用に伴い、ロボットに多種、多様の操作形態や、多種、多様の動作を行わせたいとの要望がある。特に、個人がロボットを所有した場合には、その個人の趣向や使用方法により、予め決められた動作以外の動作を、自身で、プログラムしたいとの要望がある。 With recent use in the entertainment field of robots, there is a demand for the robot to perform various and various operation forms and various and various operations. In particular, when an individual owns a robot, there is a desire to program an operation other than a predetermined operation according to his / her preference and usage.
このためには、あるモーションデータを格納したロボットは、そのモーションデータに従う動作しかできないが、他の動作を所望する場合には、前述の擬似空間で、CGモデルを操作して、新たにモーションデータを作成する必要があった。 For this purpose, a robot that stores certain motion data can only operate according to the motion data. However, when other operations are desired, the CG model is manipulated in the above-described pseudo space to newly generate motion data. There was a need to create.
又、モーションデータは、複数のポーズからなり、このポーズ間の変化の時間を設定することにより、ポーズを連続するモーションを実現できる。しかしながら、従来技術では、ポーズの作成は可能であるが、この時間の設定が困難であった。 The motion data is composed of a plurality of poses, and by setting the change time between the poses, a motion in which the poses are continuous can be realized. However, in the prior art, it is possible to create a pose, but it is difficult to set this time.
更に、作成したモーションデータで、実ロボットを、擬似空間のCGモデルの動作や表示画像と同期して、動作させたいとの要望もある。従来技術では、このような使用形態には、対応するのが、困難である。 In addition, there is a demand to operate the real robot in synchronization with the operation of the CG model in the pseudo space and the display image using the created motion data. In the prior art, it is difficult to cope with such usage patterns.
従って、本発明の目的は、ロボットの多種のモーションデータを、より容易に作成するためのロボットのモーション編集装置及びそのプログラムを提供することにある。 Therefore, an object of the present invention is to provide a robot motion editing apparatus and a program thereof for more easily creating various kinds of robot motion data.
又、本発明の他の目的は、作成したモーションデータで、実ロボットを、擬似空間のCGモデルの動作や表示画像と同期して、動作するためのロボットのモーション編集装置及びそのプログラムを提供することにある。 Another object of the present invention is to provide a robot motion editing apparatus and its program for operating a real robot in synchronization with the operation and display image of a CG model in a pseudo space using the created motion data. There is.
更に、本発明の他の目的は、既存のロボットのモーションデータを利用して、他のモーションのモーションデータを作成するためのロボットのモーション編集装置及びそのプログラムを提供することにある。 Furthermore, another object of the present invention is to provide a robot motion editing apparatus and its program for creating motion data of other motions using existing robot motion data.
更に、本発明の他の目的は、処理装置の能力に関わらず、作成したモーションデータで、実ロボットを、擬似空間のCGモデルの動作や表示画像と同期して、動作するためのロボットのモーション編集装置及びそのプログラムを提供することにある。 Furthermore, another object of the present invention is to provide a motion of the robot for operating the real robot in synchronization with the operation of the CG model in the pseudo space and the display image with the created motion data regardless of the capability of the processing apparatus. To provide an editing apparatus and a program thereof.
この目的の達成のため、本発明のモーション編集装置は、実空間で関節を駆動する多関節型ロボットのモーションデータを編集するモーション編集装置において、擬似空間内における前記ロボットのモデルを3次元表示する3次元表示部を有する表示ユニットと、前記表示ユニットで表示された前記ロボットのモデルの各部位の位置、傾きを指示するための操作ユニットと、前記操作ユニットの操作に応じて、前記ロボットのモデルの各部位の位置、傾きを変更して、前記3次元表示部に表示するとともに、前記操作ユニットのデータ作成指示に応じて、前記変更されたロボットのモデルの各部位を位置、傾きから、各関節の角度を計算し、キーフレームデータを作成する処理ユニットとを有し、前記処理ユニットは、前記キーフレームデータに前記3次元表示のための前記擬似空間内におけるロボットの状態データを付して、前記多関節型ロボットに送信する。 In order to achieve this object, the motion editing apparatus of the present invention is a motion editing apparatus for editing motion data of an articulated robot that drives a joint in real space, and three-dimensionally displays the model of the robot in a pseudo space. A display unit having a three-dimensional display, an operation unit for instructing the position and inclination of each part of the model of the robot displayed on the display unit, and the robot model according to the operation of the operation unit The position and inclination of each part are changed and displayed on the three-dimensional display unit, and each part of the changed robot model is changed from the position and inclination according to the data creation instruction of the operation unit. A processing unit that calculates joint angles and generates key frame data, and the processing unit includes the key frame data. It assigned the status data of the robot in the pseudo space for the three-dimensional display to be transmitted to the articulated robot.
又、本発明のプログラムは、実空間で関節を駆動する多関節型ロボットのモーションデータを編集するためのプログラムにおいて、擬似空間内における前記ロボットのモデルを表示ユニットに3次元表示するステップと、前記表示ユニットで表示された前記ロボットのモデルの各部位の位置、傾きを指示するための操作ユニットの操作に応じて、前記ロボットのモデルの各部位の位置、傾きを変更して、前記3次元表示部に表示するステップと、前記操作ユニットのデータ作成指示に応じて、前記変更されたロボットのモデルの各部位の位置、傾きから、各関節の角度を計算し、キーフレームデータを作成し、前記キーフレームデータに前記3次元表示のための前記擬似空間内におけるロボットの状態データを付して、前記多関節型ロボットのためのモーションデータを作成するステップとを、コンピュータに実行させる。 The program of the present invention is a program for editing motion data of an articulated robot that drives a joint in a real space, wherein the robot model in a pseudo space is displayed on a display unit in three dimensions, The three-dimensional display is performed by changing the position and inclination of each part of the robot model according to the operation of the operation unit for instructing the position and inclination of each part of the robot model displayed on the display unit. In accordance with the data creation instruction of the operation unit and the position and inclination of each part of the changed model of the robot, calculate the angle of each joint, create key frame data, The state of the robot in the pseudo space for the three-dimensional display is attached to the key frame data, and the articulated robot And creating motion data for, to be executed by a computer.
又、本発明では、好ましくは、前記処理ユニットは、前記操作ユニットで指示された前記ロボットのモデルの部位を、前記3次元表示空間の基準面に接するように、前記ロボットのモデルの座標を変換し、前記キーフレームデータを作成する。 In the present invention, it is preferable that the processing unit converts coordinates of the robot model so that a part of the robot model indicated by the operation unit is in contact with a reference plane of the three-dimensional display space. Then, the key frame data is created.
又、本発明では、好ましくは、前記処理ユニットは、前記操作ユニットの指示により、前記作成されたキーフレームデータから、前記ロボットのモデルの部位間の衝突の有無を判定し、前記3次元表示空間の前記ロボットのモデルの前記衝突した部位の表示色を変更する。 In the present invention, it is preferable that the processing unit determines whether or not there is a collision between parts of the robot model from the generated key frame data according to an instruction from the operation unit, and the three-dimensional display space. The display color of the collided part of the robot model is changed.
又、本発明では、好ましくは、前記処理ユニットは、前記表示ユニットに、前記操作ユニットで操作し、前記ロボットのモデルの前記キーフレーム間の時間を指定するためのタイムライン表示部を表示し、前記処理ユニットは、前記タイムライン表示部で指定された時間により、前記キーフレームデータの時間情報を作成する。 In the present invention, it is preferable that the processing unit displays on the display unit a timeline display unit that is operated by the operation unit to designate a time between the key frames of the robot model, The processing unit creates time information of the key frame data based on a time specified by the timeline display unit.
又、本発明では、好ましくは、前記処理ユニットは、前記キーフレームデータを前記多関節型ロボットに送信するとともに、送信処理の遅延を検出し、前記キーフレームデータの時間情報を変更して、次のキーフレームデータを送信する。 In the present invention, it is preferable that the processing unit transmits the key frame data to the articulated robot, detects a delay in transmission processing, changes time information of the key frame data, and Send keyframe data.
又、本発明では、好ましくは、前記処理ユニットは、ビデオデータに含まれる再生時間情報から、前記タイムライン表示部で指定された時間と同期させたビデオ画像を表示する。 In the present invention, it is preferable that the processing unit displays a video image synchronized with a time designated by the timeline display unit from reproduction time information included in the video data.
又、本発明では、好ましくは、前記処理ユニットは、ビデオデータに含まれる再生時間情報から、前記タイムライン表示部で指定された時間と同期させて、前記表示ユニットに、ビデオ画像を表示し、且つ前記多関節型ロボットに前記作成したキーフレームデータを送信し、前記ビデオ画像と前記多関節型ロボットの動作を同期する。 In the present invention, it is preferable that the processing unit displays a video image on the display unit in synchronization with the time specified by the timeline display unit from the reproduction time information included in the video data, The generated key frame data is transmitted to the articulated robot, and the video image and the operation of the articulated robot are synchronized.
又、本発明では、好ましくは、前記処理ユニットは、前記多関節型ロボットのメモリに記憶されたモーションデータを読み込み、前記キーフレームデータの形式に変更し、前記表示ユニットの前記ロボットのモデルのポーズを表示し、前記操作ユニットの操作に応じて、表示された前記ロボットのモデルの各部位を位置、傾きを変更して、前記操作ユニットのデータ作成指示に応じて、前記変更されたロボットのモデルの各部位を位置、傾きから、各関節の角度を計算し、キーフレームデータを作成する。 In the present invention, it is preferable that the processing unit reads motion data stored in a memory of the articulated robot, changes the format to the key frame data format, and poses the robot model of the display unit. In accordance with the operation of the operation unit, the position and the inclination of each part of the displayed robot model are changed, and the changed robot model according to the data generation instruction of the operation unit The angle of each joint is calculated from the position and inclination of each part of and the key frame data is created.
又、本発明では、好ましくは、前記処理ユニットは、前記モーションデータに含まれる制御コードを解析し、前記キーフレームデータに変換する。 In the present invention, it is preferable that the processing unit analyzes a control code included in the motion data and converts it into the key frame data.
操作ユニットの操作に応じて、3次元擬似空間でのロボットのモデルの各部位を位置、傾きを変更して、操作ユニットのデータ作成指示に応じて、変更されたロボットのモデルの各部位を位置、傾きから、各関節の角度を計算し、キーフレームデータを作成し、3次元表示のための擬似空間内におけるロボットの状態データを付して、多関節型ロボットに送信するので、3次元擬似空間で作成されたデータを再利用して、他のモーションデータを3次元擬似空間で作成できる。 Change the position and inclination of each part of the robot model in the three-dimensional pseudo space according to the operation of the operation unit, and position each part of the changed robot model according to the data creation instruction of the operation unit The angle of each joint is calculated from the tilt, key frame data is created, the robot state data in the pseudo space for 3D display is attached, and transmitted to the articulated robot. By reusing data created in space, other motion data can be created in a three-dimensional pseudo space.
以下、本発明の実施の形態を、ロボットのモーション編集装置、モーション編集処理機能、モーション編集処理、ロボットとの通信処理、ロボットとの同期処理、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。 Hereinafter, embodiments of the present invention will be described in the order of a robot motion editing device, motion editing processing function, motion editing processing, communication processing with a robot, synchronization processing with a robot, and other embodiments. The invention is not limited to this embodiment.
(ロボットのモーション編集装置)
図1は、本発明のロボットのモーション編集装置の一実施の形態の構成図、図2は、図1の構成のブロック図であり、ロボットとして、人型の多関節ロボットを例に示す。
(Robot motion editing device)
FIG. 1 is a block diagram of an embodiment of a motion editing apparatus for a robot according to the present invention, and FIG. 2 is a block diagram of the configuration of FIG. 1, showing a humanoid articulated robot as an example of the robot.
図1に示すように、ロボット1は、胴体10と、顔28と、4関節の右腕12,13−1,15,17と、右手19と、4関節の左腕11,13−2,14,16と、左手18、4関節の右足21,23,25,27と、4関節の左足20,22,24,26とを有する。
As shown in FIG. 1, the
顔28は、関節軸r5を中心に、胴体10に対し、回転できる。右腕は、関節12、右上腕13−1、関節15、右下腕17、右手19を持ち、4つの関節軸r1〜r4を中心に、回転する。同様に、左腕は、関節11、左上腕13−2、関節14、左下腕16、左手18を持ち、4つの関節軸r6〜r9を中心に、回転する。
The face 28 can rotate with respect to the
右足は、関節21、右大腿23、右下腿25、右足部27を持ち、4つの関節軸r10、r12〜r14を中心に、回転する。左足は、関節20、左大腿22、左下腿24、左足部26を持ち、4つの関節軸r11、r15〜r17を中心に、回転する。従って、このロボット1は、胴体10に対し、17関節の自由度がある人型ロボットである。
The right foot has a joint 21, a
一方、モーション編集装置3は、パーソナルコンピュータで構成されており、ロボット1と、図示しないケーブル、無線で通信する。この装置3は、CPU,メモリ、ハードデイスクドライブを搭載したベース30と、ベース30に設けられたキーボード32と、ベース30に折りたたみ可能な表示部34と、外部マウス36とを有する。
On the other hand, the
この装置3に、図2以下で説明するモーション編集プログラムをロードすることにより、モーション編集装置として、動作する。図2に示すように、モーション編集プログラム50は、カーネル(例えば、WINDOWS(登録商標))の制御の元に動作する表示制御を行うとともに、ロボット通信制御処理を行う。
The
表示制御処理は、I/Oドライバ66を介するキーボード32、マウス36からの入力により、表示部34の表示を制御するとともに、モーションデータを編集する。ロボット通信制御処理は、キーフレームメモリ52、通信ドライバ54を使用して、ロボット1との通信制御を行う。
In the display control process, the display on the
ロボット1は、モーションデータを格納するモーションメモリ40と、編集装置1と通信するための通信ドライバ44と、ロボット1の各関節のモータを駆動するモータドライバ46と、CPUを有する。CPUは、実ロボット制御プログラム42を実行し、ロボット1の動作を制御する。
The
表示部34は、タイムラインウインドウ(以下、タイムライン表示部)58、3DViewウインドウ(以下、3DView表示部)60、オプションウインドウ(以下、オプション表示部)64、Videoウインドウ(以下、Video表示部)62からなる。これらの表示部は、プログラム50の制御により、ビデオドライバ56を介し、駆動される。
The
図3は、表示部34の表示画面、図4は、表示部34のタイムライン表示部の説明図を示す。タイムライン表示部58は、ウインドウズ(登録商標)のプルダウンメニュー(ファイル、表示等)と、2つのタイムラインとから構成され、上部を広域タイムライン、下部を作業用タイムラインと言う。
FIG. 3 is a display screen of the
図4(B)の拡大図に示すように、図4(A)の上部の広域タイムライン58−1は、横軸に時間軸スケール(例えば、図では0秒から18,000秒付近)を表示し、その上に、例えば、黄色のバーで、後述の作業用タイムライン58−2の幅(時間)を示す。また、後述の作業用タイムライン58−2の再生範囲を、広域タイムライン58−1の下に、小さな横バーで示す。 As shown in the enlarged view of FIG. 4B, the wide area timeline 58-1 in the upper part of FIG. 4A has a time axis scale on the horizontal axis (for example, around 0 to 18,000 seconds in the figure). The width (time) of a work timeline 58-2 described later is indicated by, for example, a yellow bar. In addition, a reproduction range of a work timeline 58-2 described later is indicated by a small horizontal bar below the wide area timeline 58-1.
図4(C)の拡大図に示すように、作業用タイムライン58−2は、横軸に、時間軸スケール(例えば、図では0秒から2,010秒付近まで)を表示し、時間軸スケールの1つの枠は、15ミリ秒刻みに設定している。この15ミリ秒時間単位で、ポーズを作成する事が出来る。この時間軸に、作業用タイムライン58−2の再生範囲を、例えば、緑色でバー表示する。 As shown in the enlarged view of FIG. 4C, the work timeline 58-2 displays a time axis scale (for example, from 0 second to around 2,010 seconds in the figure) on the horizontal axis. One frame of the scale is set in steps of 15 milliseconds. Pauses can be created in units of 15 milliseconds. On this time axis, the reproduction range of the work timeline 58-2 is displayed as a bar, for example, in green.
又、広域タイムライン58−1、作業用タイムライン58−2の両方の時間軸スケールに、太い縦のマーク(例えば、赤色のマーク)で、キーフレームが設定されている事を表示する。 In addition, a thick vertical mark (for example, a red mark) indicates that a key frame is set on the time axis scales of both the wide timeline 58-1 and the work timeline 58-2.
作業用タイムライン58−2の時間軸スケールの下には、例えば、オレンジマークで、現在の作業点を示し、この時点(フレーム)のロボットのポーズは、図3の3DView表示部60に表示される。同様に、図3の右部のVideo表示部62には、この時点での、動画映像が映し出される。
Below the time axis scale of the work timeline 58-2, for example, an orange mark indicates the current work point, and the robot pose at this time (frame) is displayed on the 3D
更に、図4(C)に示すように、再生制御ボタンが、再生範囲を示すバーの上部に表示され、左から「頭だし」、「再生・停止」、「最後部へ」の3つのボタンからなる。 Further, as shown in FIG. 4C, a playback control button is displayed at the top of the bar indicating the playback range, and three buttons from the left are “head start”, “play / stop”, and “to the end”. Consists of.
次に、図5により、3DView表示部60を説明する。図5に示すように、3DView表示部60は、ロボットの形状が直感的に分るように、ロボットを3次元的に表示する。3面図的に、正面、側面、上面の方向から見ることも出来るし、カメラの向きを切り替えることも出来る。又、3DView表示部60は、同時に複数の表示を行う事が出来る。
Next, the 3D
3DView表示部60の下段には、以下のボタンが設けられている。即ち、左から、表示されたロボットの現ポーズを、キーフレームとして登録するキーフレームキー60−1、ロボットのポーズを、インバースキネマティクスにて、動かすインバースキネマティクス(IK)キー60−2、ロボットのポーズを、フォワードキネマティク(FK)にて動かすフォワードキネマテイクスキー60−3、マウスの動作を、ポーズ付けモードか、モーション付けモードかを切り替えるポーズモード/モーションモード切替ボタン60−4、過去の動作を取消すアンドゥボタン60−5、アンドゥで取消した動作を再度設定するリドゥボタン60−6を設けている。
The following buttons are provided in the lower part of the 3D
更に、その右に、画面を俯瞰で見た3D(3次元)表示とするカメラボタン60−7、画面を正面から見た表示状態にする(表裏を順次切り替える)正面ボタン60−8、画面を側面から見た表示状態にする(左右を順次切り替える)側面ボタン60−9、画面を上面から見た表示状態にする(上下を順次切り替える)上面ボタン60−10、ロボットを初期姿勢に設定するホームポジションボタン60−11、ロボットを垂直移動し、地面へ着ける(接地)ボタン60−12、ロボットの重心点を地面上に表示するボタン60−13、前後のキーフレームの画像を重ねて半透明に表示するゴースト表示ボタン60−14、地面の表示をON/OFFするボタン60−15とを設けている。 Furthermore, on the right side, a camera button 60-7 for 3D (three-dimensional) display when the screen is viewed from above, a front button 60-8 for displaying the screen from the front (to switch the front and back sequentially), and the screen A side button 60-9 for switching to a display state viewed from the side (switching left and right sequentially), a top button 60-10 for switching the screen to a display state viewed from the top (sequentially switching up and down), and a home for setting the robot to the initial posture Position button 60-11, button 60-12 for vertically moving the robot to the ground (grounding), button 60-13 for displaying the center of gravity of the robot on the ground, and images of key frames before and after being overlapped to be translucent A ghost display button 60-14 to be displayed and a button 60-15 to turn on / off the display of the ground are provided.
これらのボタンを、マウス36の操作で、クリックすることにより、前述のロボットに対する表示処理を行う。
When these buttons are clicked by the operation of the
また、ロボットの手足各部には、「ここから先を対称にする」、「この部分を固定させる」や、足先には、それ以外に「足を着地させる」等の機能を指定するプルダウンメニュー60−16を表示する。 In addition, pull-down menus for specifying functions such as “Make the tip symmetrical from here” and “Fix this part” for each part of the robot's limbs and “Land the foot” for the other part of the foot. 60-16 is displayed.
次に、図3のVideo表示部62は、ロボット動作と同期して再生する(場合の)映像を表示する。この映像は、ロボット動作再生中でも、ロボット動作作成中でも、タイムライン58−2上のオレンジ色のマークの現在時刻(カレントフレーム)に同期し、その時刻の映像を再現する。画面サイズは、マウス36で任意の大きさに出来、フルスクリーン表示も可能である。
Next, the
図6は、ロボット通信制御機能の説明図である。ロボット通信制御機能は、実際のロボット1と通信を行い、実動作等を行うための制御機能であり、図6のような表示で確認できる。通信制御の為の表示は、オプション表示部64中のロボット通信タブ64−1のクリックにより実行される。
FIG. 6 is an explanatory diagram of the robot communication control function. The robot communication control function is a control function for communicating with the
ロボット通信タブ64−1にチェックを入れると、キーフレームメモリ52から、各モータの角度データが、通信制御(ドライバ)54を介して、実際のロボット1に送信され、3DView60上のロボットの動作と,実際のロボット1の動作は同期する。実際には、これに先立ち、通信ポート64−2を、実際のロボット1の接続されているポートを合わせる。
When the robot communication tab 64-1 is checked, the angle data of each motor is transmitted from the
また、ロボット1は、モーション用メモリ40(図2参照)を有しており、ロボット1独自のモーションデータを持っている。図6では、そのメモリのモーションデータM1からM10を表示している。たとえば、M1のモーションデータを、ロボット1から読み込むために、図6のM1をクリックした後、モーションモードキー64−3の読み込みボタンをクリックする。これにより、ロボット1からモーションデータを読み込み、キーフレームメモリ52に格納し、図4(A)のタイムライン58上に、モーションを展開する。
The
同様に、タイムライン58上のモーション(図2のキーフレームメモリ52のモーションデータ)を、ロボット1のモーション用メモリ40へ送る場合には、モーションモードキ−64−3の書き込みボタンをクリックする。
Similarly, when the motion on the timeline 58 (motion data in the
更に、ロボット1の内蔵するモーション用メモリ40の内容に従って、そのモーションを実行(再生)することを指示する場合には、たとえば、M1のモーションデータ枠をクリックした後、モーションモードキー64−3の選択モーション再生ボタンを押す。これにより、ロボット1は、モーションデータM1で、実動作をする。
Further, when instructing to execute (reproduce) the motion according to the content of the
教示機能モードキー64−4は、ロボット1からポーズのデータ(関節角)を取得するためのキーである。
The teaching function mode key 64-4 is a key for acquiring pose data (joint angle) from the
(モーション編集処理機能)
図7は、ロボット編集処理(操作)と、キー、マウス操作の関係図、図8乃至図9は、その衝突判定処理の説明図、図10乃至図15は、その接地処理の説明図、図16乃至図18は、その部分位置合わせ処理の説明図である。
(Motion editing processing function)
FIG. 7 is a diagram showing the relationship between the robot editing process (operation) and the key and mouse operations, FIGS. 8 to 9 are explanatory diagrams of the collision determination process, and FIGS. 10 to 15 are explanatory diagrams of the grounding process. 16 to 18 are explanatory diagrams of the partial alignment process.
図7により、基本操作を説明する。図4(B)の広域タイムライン表示部58−1の作業用タイムライン(黄色表示)の選択位置を変更するには、マウス36により、ポインタを作業用タイムラインに位置付け、マウス36を押して、左右にドラッグする。図4(C)の作業用タイムライン58−2の再生範囲(緑色表示)を移動するには、マウス36により、ポインタを再生範囲に位置付け、マウス36を押して、左右にドラッグする。図4(C)の作業用タイムライン58−2の再生範囲(緑色表示)を変更するには、マウス36により、ポインタを再生範囲の端部に位置付け、マウス36を押して、左右にドラッグする。
The basic operation will be described with reference to FIG. In order to change the selection position of the work timeline (yellow display) of the wide area timeline display unit 58-1 in FIG. 4B, the pointer is positioned on the work timeline with the
図4(C)の作業用タイムライン58−2のキーフレーム全体を再生範囲として、選択するには、マウス36により、ポインタを再生範囲に位置付け、キーボード32のCtrlキーと「A」キーを押す。図4(C)の作業用タイムライン58−2の再生範囲の任意の範囲を選択するには、マウス36により、ポインタを再生範囲に位置付け、マウス36の中心を押し(始点指示)、終点としたい位置までドラッグして離す(終点指示)。
To select the entire key frame of the work timeline 58-2 in FIG. 4C as the playback range, the
図4(C)の作業用タイムライン58−2の再生範囲のキーフレームを移動するには、マウス36により、ポインタをそのキーフレームに位置付け、マウス36を押して、左右にドラッグする。図4(C)の作業用タイムライン58−2の再生範囲のキーフレームを削除するには、マウス36により、ポインタをそのキーフレームに位置付け、マウス36を押して、上のごみ箱へドラッグする。
To move the key frame in the reproduction range of the work timeline 58-2 in FIG. 4C, the pointer is positioned at the key frame with the
このようにして、以下で説明するように、3DVIEW表示部60に表示されたロボットのポーズの時間情報を設定し、且つ確認のため、再生する。
Thus, as described below, the robot pose time information displayed on the 3D
次に、ロボットのポーズを設定する機能を説明する。胴体10を除くロボット各部位の位置の変更を行うには、3DVIEW表示部60に表示されたロボットの対象部位に、マウス36により、ポインタを位置付け、マウス36を押して、上下左右にドラッグする。これにより、IK時には、ロボットの関節単位でなく、部位(例えば、下腿部や足部)単位に、FK時には、ロボットの関節単位に、位置、姿勢を変更できる。
Next, a function for setting a robot pose will be described. In order to change the position of each part of the robot excluding the
ロボットの全体の位置の変更を行うには、IK時に、3DVIEW表示部60に表示されたロボットの胴体部位に、マウス36により、ポインタを位置付け、マウス36を押して、上下左右にドラッグする。ロボットの全体の傾きの変更を行うには、FK時に、3DVIEW表示部60に表示されたロボットの胴体部位に、マウス36により、ポインタを位置付け、キーボード32のCtrlキーとマウス36の中心を押して、上下左右にドラッグする。キーボード32のCtrlキーを押さずに、マウス36の中心を押して、上下左右にドラッグすると、それに合わせて、ロボットの表示位置が移動する。
To change the overall position of the robot, at the time of IK, the pointer is positioned with the
カメラアングルで、ロボットの表示角を変更するには、3DVIEW表示部60に、マウス36により、ポインタを位置付け、マウス36の右を押して、上下左右にドラッグする。ロボット各部位に対する機能の一覧(手足を対称にする場合や、手足を固定する場合、足先を着地させる場合)を表示するには、3DVIEW表示部60のロボット対称部位に、マウス36により、ポインタを位置付け、キーボード32のShiftキーを押し、マウス36の右を押す。ロボットを最適サイズを表示するには、3DVIEW表示部60に、マウス36により、ポインタを位置付け、マウス36の左をダブルクリックする。
In order to change the display angle of the robot at the camera angle, a pointer is positioned on the 3D
このように、3DVIEW表示部60のロボットに対するマウスの操作で、ポーズを任意に設定する。従って、3DVIEW部60で、ロボットのポーズを設定し、タイムライン表示部58で、ポーズ間の時間を設定して、実ロボットの関節角度と、関節速度を指定できる。そして、設定されたポーズの間の時間のポーズは、自動で補完される。又、マウス操作で設定できるため、極めて、簡単に、時間間隔とポーズを設定できる。このため、ポーズの連続動作であるモーションを、容易に作成できる。更に、再生指定により、3DVIEW表示部60で、そのモーションを確認できる。
As described above, the pose is arbitrarily set by operating the mouse on the robot of the 3D
次に、衝突判定処理を説明する。図6のオプションタブ64−1にある衝突判定メニューを選択すると、3DView上でロボットの衝突判定をする事が出来る。衝突判定は、メニューをオンにする(図示せず)と、リアルタイムに、ロボットの部位間の衝突部位を、ロボット以外の色(例えば、オレンジ色)に変える。これにより、衝突が確認できる。 Next, the collision determination process will be described. When the collision determination menu on the option tab 64-1 of FIG. 6 is selected, it is possible to determine the collision of the robot on 3D View. In the collision determination, when the menu is turned on (not shown), the collision part between the robot parts is changed to a color other than the robot (for example, orange) in real time. Thereby, a collision can be confirmed.
図9を参照して、図8の衝突判定処理を説明する。 The collision determination process in FIG. 8 will be described with reference to FIG.
(S10)衝突判定をオンとすると、処理を開始する。 (S10) When the collision determination is turned on, the process is started.
(S12)ロボットの各部分ごとの空間データを2つずつ順番に対比し、重なるかどうかを判定する。即ち、ロボットの各関節(モータ)の角度を設定する。次に、この角度から、ロボットの各部分をバウンディングボックス(最小包含箱)で被い、そのボックスの値(位置座標)を取得する。尚、バウンディングボックスとは、物体(オブジェクト)をすっぽりと包み込む最小の箱を言う。バウンディングボックスを2つずつ比較する。 (S12) The spatial data for each part of the robot is compared in turn, and it is determined whether or not they overlap. That is, the angle of each joint (motor) of the robot is set. Next, from this angle, each part of the robot is covered with a bounding box (minimum inclusion box), and the value (positional coordinates) of the box is obtained. The bounding box is the smallest box that completely wraps an object. Compare two bounding boxes.
(S14)予め、重なる可能性がないものや、最初から常につながっている部分は判定の対象としない。即ち、2つのバウンディングボックスが、最初から常に接している場合には、ステップS16に進む。ここで、最初から常に接して場合とは、例えば、ロボットでは、胴体と首など、直接連結し、関節を形成している部分である。又、2つのバウンディングボックスが接する可能性がない場合にも、ステップS16に進む。ここで、接する可能性がない場合とは、例えば、左右の肩などは、ロボットの自由度を考えると、接する可能性がない。 (S14) A part that does not overlap in advance or a part that is always connected from the beginning is not determined. That is, if the two bounding boxes are always in contact from the beginning, the process proceeds to step S16. Here, the case of always touching from the beginning is, for example, a part that is directly connected to form a joint such as a body and a neck in a robot. Also, if there is no possibility that the two bounding boxes touch each other, the process proceeds to step S16. Here, when there is no possibility of touching, for example, the left and right shoulders are not likely to touch when considering the degree of freedom of the robot.
(S16)比較するバウンディングボックスが残っているかを判定する。残っていれば、ステップS12の比較処理に進む。一方、比較するバウンディングボックスが残っていなければ、終了する。 (S16) It is determined whether a bounding box to be compared remains. If it remains, the process proceeds to the comparison process in step S12. On the other hand, if no bounding box to be compared remains, the process ends.
(S18)ステップS14で、判定対象とされた2つのバウンディングボックスの値(位置座標)を比較して、接しているかを判定する。接していれば、接している(衝突している)部分の表示の色を変更し、ステップS16に進む。図9に示すように、ロボットの左手と、左大腿部とが、この判定により、接しているため、その部位の表示色を、変更する。逆に、接していないと、ステップS16に進む。 (S18) In step S14, the values (positional coordinates) of the two bounding boxes to be determined are compared to determine whether they are in contact. If they are in contact, the display color of the contacted (collision) portion is changed, and the process proceeds to step S16. As shown in FIG. 9, since the left hand of the robot and the left thigh are in contact by this determination, the display color of the part is changed. Conversely, if it is not in contact, the process proceeds to step S16.
ここでは、計算を簡略化するために、各部分は、近似の直方体(バウンディングボックス)に置き換えている。又、球(バウンディングスフィア)などに置き換えて計算する方法もある。尚、バウンディングスフィア(最小包含球)とは、物体(オブジェクト)をすっぽりと包み込む最小の球を意味する。 Here, in order to simplify the calculation, each part is replaced with an approximate rectangular parallelepiped (bounding box). There is also a method of calculating by replacing with a sphere (bounding sphere). The bounding sphere (minimum inclusion sphere) means the smallest sphere that completely envelops an object (object).
このように、実在のロボットを正しく動作させるために、3DView上に表示されるロボットの各部分の衝突判定を行い、衝突した場合には、その部分の色を変えることで、ユーザーに知らせる。ユーザーは、その情報を元に、ポーズやモーション(動作)の修正を行う。 As described above, in order to correctly operate the actual robot, the collision determination of each part of the robot displayed on the 3D View is performed, and when the collision occurs, the user is notified by changing the color of the part. The user corrects the pose and motion (motion) based on the information.
このような技術は、従来のコンピュータゲームなどでも実用されているが、このロボットのモーション編集での目的は、実在のロボットを正しく動作させること、そして正しくない動作による故障などからロボットを守ることである。 Such technology is also practically used in conventional computer games, but the purpose of this robot's motion editing is to operate the actual robot correctly and to protect the robot from malfunctions caused by incorrect operation. is there.
また、衝突判定を行う各部分の設定(例えば、バウンディングボックスのサイズなど)を調整することで、ロボットの個体差(機体ごとの誤差)や、より余裕を持たせた判定(ある程度の距離に近づいたら知らせる、など)を行うことができる。 In addition, by adjusting the settings of each part that performs collision detection (for example, the size of the bounding box), individual differences of robots (errors for each machine) and determination with more margin (approaching a certain distance) You can let them know.
次に、図5の接地ボタンをクリックした場合の接地処理を、図10乃至図15で説明する。この処理は、ロボットや動物・人体モデルなどのCGモデルの任意に指定した足の裏を、地面と接地するように補正する処理である。 Next, the grounding process when the ground button in FIG. 5 is clicked will be described with reference to FIGS. This process is a process of correcting an arbitrarily designated sole of a CG model such as a robot or an animal / human body model so as to be in contact with the ground.
図13乃至図15を用いて、図10の処理フローを説明する。 The processing flow of FIG. 10 will be described with reference to FIGS.
(S20)マウスで足裏を指定し、図11で後述する指定部位を基準とした、モデルデータの傾き補正処理により、足の裏が地面と平行になるようにCGモデル全体の傾きを補正する。図13のように、ロボットの接地すべき足を指定する(図13の丸印)と、図14のように、ロボットを回転し、足の裏が地面と平行になるようにCGモデル全体の傾きを補正する。 (S20) The sole is designated with the mouse, and the inclination of the entire CG model is corrected so that the sole of the foot is parallel to the ground by the model data inclination correction process based on the designated portion described later in FIG. . As shown in FIG. 13, when the robot's foot to be grounded is specified (circled in FIG. 13), the robot is rotated as shown in FIG. 14, and the entire CG model is placed so that the sole of the foot is parallel to the ground. Correct the tilt.
(S22)次に、図12で後述するモデルデータの接地処理を行う。即ち、図14のように、足の裏が地面と平行になるようにCGモデルを、図15のように、地面に、ロボットの足裏を接地させる。 (S22) Next, model data grounding processing, which will be described later with reference to FIG. 12, is performed. That is, as shown in FIG. 14, the CG model is grounded so that the sole of the foot is parallel to the ground, and the sole of the robot is grounded to the ground as shown in FIG.
次に、図11により、指定部位を基準とした、モデルデータの傾き補正処理を説明する。 Next, with reference to FIG. 11, model data inclination correction processing based on the designated part will be described.
(S30)指定される可能性のある部位(「足裏接地処理」では、足裏を含む部位)に関しては、基準となる傾き(足裏の場合は、地面と平行になる傾き)r0(例えば、傾き「0」)を予め設定しておく。 (S30) With respect to a portion that may be specified (in the “foot contact processing”, the portion including the sole), a reference inclination (in the case of the sole, an inclination parallel to the ground) r0 (for example, , Inclination “0”) is set in advance.
(S32)CGモデル全体の基準点(ここでは、胴体)を「A」、基準とする部位(足裏)を「b」と指定する。 (S32) The reference point (here, the body) of the entire CG model is designated as “A”, and the reference portion (the sole) is designated as “b”.
(S34)「b」の傾きr1を計算する。 (S34) The slope r1 of “b” is calculated.
(S36)「b」に関して、傾きの差rd=r1−r0を計算する。 (S36) With respect to “b”, the difference in slope rd = r1−r0 is calculated.
(S38)モデル全体の基準点Aの傾きを、Aの傾き−rdに変更する。傾き補正を行い、基準点Aの座標データを保存する。 (S38) The inclination of the reference point A of the entire model is changed to the inclination of A-rd. Tilt correction is performed and the coordinate data of the reference point A is saved.
次に、図12により、モデルデータの接地処理を説明する。 Next, the model data grounding process will be described with reference to FIG.
(S40)対象モデルデータ全体で、一番低い部分の高さ座標Y(地面からの)を求める。 (S40) The height coordinate Y (from the ground) of the lowest part of the entire target model data is obtained.
(S42)モデルデータの基準点Aの高さ座標をAyとし、(Ay−Y)を計算する。これにより、図15のように、接地する。 (S42) The height coordinate of the reference point A of the model data is Ay, and (Ay-Y) is calculated. Thereby, it grounds as shown in FIG.
(S44)このAの座標データを保存する。 (S44) The coordinate data A is stored.
傾き補正した結果で、指定した「足裏」より低い位置に、他の部位「C」が存在する場合は、その部位「C」が接地し、「足裏」は宙に浮いてしまう。強制的に「足裏」を接地させることも可能ではあるが、その場合、「C」が地面より低い位置になってしまい不自然である。このような場合に、「足裏」が接地しないことで、ポーズの不都合を確認させ、ポーズの修正を促すことができる。 As a result of the inclination correction, when another part “C” exists at a position lower than the designated “foot sole”, the part “C” is grounded and the “foot sole” floats in the air. Although it is possible to forcibly ground the “sole”, in that case, “C” is positioned lower than the ground, which is unnatural. In such a case, since the “foot sole” does not touch the ground, it is possible to confirm the inconvenience of the pose and prompt the user to correct the pose.
又、足裏接地処理では、足の裏が地面と平行になるように、モデルデータ全体の傾きを補正するが、基準となる傾きが設定されていれば、足裏でなくて頭・手・背中などの部分でもかまわない。 In addition, in the foot contact processing, the inclination of the entire model data is corrected so that the sole of the foot is parallel to the ground. However, if the reference inclination is set, the head, hand, It does not matter even on the back.
次に、図16、図17、図18により、部分位置合わせ処理を説明する。部分位置合わせ処理は、予め作成されたポーズやモーションを組み合わせて、新しいモーションを作成する場合に、自然な(連続した)モーションにする処理である。従来は、目測による手作業などで行っていたが、この処理により、基準とする部分(図17、図18では、右足)を指定することにより、自動で行うことができる。 Next, the partial alignment process will be described with reference to FIGS. 16, 17, and 18. The partial alignment process is a process for creating a natural (continuous) motion when a new motion is created by combining previously created poses and motions. Conventionally, it has been performed manually by eye measurement or the like, but by this process, it can be automatically performed by designating a reference portion (right foot in FIGS. 17 and 18).
図17、図18の例で説明すると、図17(A)のロボットの両足が揃ったポーズから、図17(B)の右足を1歩踏み出すモーションと、図18(A)の左足を1歩踏み出すモーションをつなげて、2歩歩くモーションを作成する場合に、そのまま、つなげても、同じ位置で踏み出す足が左右入れ替わるだけで、歩くモーションにはならない。即ち、移動しない。 17 and 18, the motion of stepping on the right foot in FIG. 17B from the pose where both feet of the robot in FIG. 17A are aligned, and one step on the left foot in FIG. When creating a motion that walks two steps by connecting the stepping motions, even if they are connected as they are, the foot that steps in the same position is simply swapped, and it does not become a walking motion. That is, it does not move.
そこで、歩くモーションにするため、図17(B)の右足を1歩踏み出すモーションで踏み出した位置や向きに、図18(A)の左足を一歩踏み出すモーションの軸足(右足)の位置や向きを合わせ、図18(A)を、図18(B)のように、座標変換する。この処理は、図5と同様に、プルダウンメニュー60−16により、指定する。 Therefore, in order to make a walking motion, the position and orientation of the axial foot (right foot) of the motion of stepping on the left foot in FIG. 18 (A) to the position and orientation of stepping on the right foot of FIG. In addition, FIG. 18A is coordinate-transformed as shown in FIG. This process is designated by the pull-down menu 60-16, as in FIG.
図16により、部分位置合わせ処理を説明する。 The partial alignment process will be described with reference to FIG.
(S50)先ず、部分位置合わせを行うモーションL(図18(A))を選択する。 (S50) First, the motion L (FIG. 18A) for partial alignment is selected.
(S52)合わせる基準とする部分(図17、図18では、右軸足)Aを、マウスで選択する。 (S52) A portion (a right axis foot in FIGS. 17 and 18) A to be used as a reference is selected with the mouse.
(S54)モーションLの直前のポーズP1(図17(B))における基準部分A(右軸足)の位置、向きデータD1を取得する。 (S54) The position and orientation data D1 of the reference portion A (right axis foot) in the pose P1 immediately before the motion L (FIG. 17B) are acquired.
(S56)モーションLのポーズP2(図18(A))において、基準部分A(右軸足)の位置と、向きデータが、ステップS54のデータD1と同じとなるように、ロボット全体の位置、向きを動かし、その時の位置、向きの変更を、モーションLのデータに対し、行う。モーションがポーズの連続の場合には、モーションLに含まれる全てのポーズに対して、同じ変化量を与える。 (S56) In the pose P2 of the motion L (FIG. 18A), the position of the entire robot so that the position of the reference portion A (right axis foot) and the orientation data are the same as the data D1 in step S54. The direction is moved, and the position and direction at that time are changed for the data of the motion L. When the motion is a continuous pose, the same amount of change is given to all the poses included in the motion L.
このようにして、最初のモーションの最後のポーズ(図17(B))と、2つ目のモーションの最初のポーズ(図18(A))の基準となる部分の位置や向きを合わせることができる。 In this way, the position and orientation of the reference portion of the last pose of the first motion (FIG. 17B) and the first pose of the second motion (FIG. 18A) can be matched. it can.
(モーション編集処理)
次に、前述のモーション編集機能を使用したモーション編集処理動作を説明する。
(Motion editing process)
Next, a motion editing processing operation using the above-described motion editing function will be described.
(1)モーション編集ソフトウエアを起動すると、表示部34に、タイムライン表示部58と、3DView表示部60が表示される。
(1) When the motion editing software is activated, a
(2)新たにモーションを作る場合には、マウス36の操作で、作業用タイムライン58−2の現在時刻オレンジマークを0.000秒(左端)に合わる。3DViewのホームポジションボタン60−11(図5参照)を押し、ロボットを初期姿勢(ポーズ)にする。
(2) When creating a new motion, the current time orange mark on the work timeline 58-2 is set to 0.000 seconds (left end) by operating the
(3)3DView表示部60のキーフレーム設定ボタン60−1を押し、第一番目のキーフレームを登録します。次に、第二番目のキーフレームを置きたい時間(例えば、0.555秒)に、マウス36の操作で、作業用タイムライン58−2のオレンジマークを移動する。
(3) Press the key frame setting button 60-1 on the 3D
(4)3Dview表示部60内のロボットの部位を,マウス36の操作で、掴み、ドラックすると、その部位は移動する。部位を任意の位置に移動し、ポーズを作成する。このとき、インバースキネマティクス(IK)を選ぶか、フォワードキネマティクス(FK)を選ぶかは、キー60−2,60−3で設定でき、任意である。ポーズが完成すると、3DView表示部60のキーフレーム設定ボタン60−1を押し、第二番目のキーフレームを登録する。第三番目のキーフレーム以降は、二番目と同様に作業する。
(4) When the robot part in the 3D
(5)必要なキーフレーム(ポーズ)数が完成すると、1つのモーションは完成する。作業用タイムライン58−2の再生範囲指定の緑帯を、第一番目のキーフレームから最終キーフレームまで設定し、再生ボタン(図4(C)参照)を押すと、一連のモーションが、3DView表示部60上で再現される。
(5) When the required number of key frames (pauses) is completed, one motion is completed. When the green band for specifying the playback range of the work timeline 58-2 is set from the first key frame to the last key frame and the playback button (see FIG. 4C) is pressed, a series of motions are displayed in 3DView. Reproduced on the
(6)実際のロボット1が通信ポートに接続されている場合には、オプション表示部64中のロボット通信タブ64−1内のロボット通信にチェックを入れておけば、実際のロボット1と、3DView60のロボットは、完全に同期して動く。
(6) When the
(7)更に、Video表示部62をONにし、ハードデイスクドライブから動画ファイルを読込んで、この動画に合わせて、上述の「キーフレームを置きたい時間(例えば、0.555秒)」等を選定することにより、動画と同期したロボットモーションを簡単に作成できる。
(7) Further, by turning on the
(8)完成したモーション(タイムシート)は、ファイルの保存機能で、キーフレームメモリ60に保存する。
(8) The completed motion (time sheet) is saved in the
(9)又、既存のモーションを修正して、新しいモーションを作る場合には、ファイルの保存機能で保存したモーション(タイムシート)を開き、タイムライン58−1,58−2に乗せる。別のモーションを追加したい時は、アイコン「モーションを追加で開く」で、追加出来る。 (9) When a new motion is created by modifying an existing motion, the motion (time sheet) saved by the file saving function is opened and placed on the time lines 58-1 and 58-2. If you want to add another motion, you can add it with the icon "Open with additional motion".
(10)アイコン「開く」「モーションを追加で開く」代わりに、実際のロボット1内のモーションメモリ40上にあるモーションデータを使うことも出来る。この場合は、図6で説明したように、オプション表示部64中のロボット通信タブ64−3の「読み込み」「追加読み込み」をクリックする。
(10) Instead of the icons “Open” and “Open additional motion”, the motion data in the
(11)タイムライン上に乗ったモーションデータは、ポーズの変更や、キーフレームを、前述の(4)、(5)により、変更できる。Videoとの、同期も同様である。 (11) The motion data on the timeline can be changed in pose and key frame by (4) and (5) described above. The same applies to synchronization with Video.
(12)変更が終わったら、完成したモーション(タイムシート)を、ファイルの保存機能で保存する。同様に、実際のロボット1内のモーション用メモリ40上に保存したい場合は、オプション表示部64中のロボット通信タブ64−3の「書き込み」が対応し、ロボット通信にチェックを入れ、「書き込み」ボタンをクリックして、保存する。
(12) When the change is completed, the completed motion (time sheet) is saved by the file saving function. Similarly, when the user wants to save in the
(ロボットとの通信処理)
次に、ロボットとの通信処理を説明する。モーション編集装置3と、実ロボット1の間では、データを変換して相互に通信を行う。図19は、編集装置3から実ロボット1への通信動作の説明図である。図20は、実ロボット1から編集装置3への通信動作の説明図である。
(Communication with robot)
Next, communication processing with the robot will be described. Between the
図19において、編集装置3のキーフレームメモリ52のキーフレームデータを、制御プログラム50が読み込み、全てのポーズ(モーション)を一括で変換し、通信ドライバ54より、ロボット1へ通信する。この場合に、ロボット1は、通信ドライバ44を介し受けたモーションデータを、モーション用メモリ40に記憶し、ロボット1が、後で実行する方法と、図19のように、時間経過に合わせて、リアルタイムに、キーフレームごとに、変換し、通信し、ロボット1が実行する方法がある。
In FIG. 19, the
又、図20に示すように、実ロボット1のモーション用メモリ40の全てのポーズ(モーション)を、一括して変換し、通信し、編集装置3のキーフレームメモリ52に格納し、タイムラインにデータを展開する。
In addition, as shown in FIG. 20, all poses (motions) in the
以下、ポーズとは、ある時刻における、ロボットの全関節の状態(角度)またはそのデータを言い、モーションとは、一定時間範囲における複数の連続したポーズまたはそのデータを言う。 Hereinafter, the pose refers to the state (angle) of all joints of the robot at a certain time or data thereof, and the motion refers to a plurality of consecutive poses or data thereof within a certain time range.
又、編集装置は、図4で説明したように、時間表示に、「フレーム」という単位(基本設定では「1フレーム=15ミリ秒」)を使用しており、その時間ごとのポーズデータを「フレームデータ」と呼ぶ。 Further, as described with reference to FIG. 4, the editing apparatus uses a unit of “frame” for the time display (“1 frame = 15 milliseconds” in the basic setting), and the pause data for each time is “ This is called “frame data”.
図21は、フレームデータの構成図であり、フレーム(モーション開始からの時間)と、ロボットの位置(仮想空間におけるロボットの基準点の位置)と、ロボットの傾き(仮想空間内におけるロボットの基準点の傾き)と、各関節の角度とからなる。 FIG. 21 is a configuration diagram of the frame data. The frame (time from the start of motion), the position of the robot (the position of the reference point of the robot in the virtual space), and the tilt of the robot (the reference point of the robot in the virtual space). And the angle of each joint.
更に、キーフレームは、ユーザーが任意に指定した、モーションの基準となるポーズが設定されたフレームのことを言い、そのフレームデータをキーフレームデータと呼ぶ。編集装置3では、ユーザーが、キーフレームのポーズを作成・指定し、キーフレーム間のフレームのポーズを自動補完することで、モーションを作成する。
Furthermore, the key frame refers to a frame that is arbitrarily designated by the user and in which a pose serving as a reference for motion is set. The frame data is referred to as key frame data. In the
次に、実ロボット1のデータ形式を図22で説明する。図22に示すように、実ロボット1は、各モーター(関節)の角度と、その角度に到達するまでの時間の連続したものを、モーションデータとして扱う。
Next, the data format of the
上述のように、仮想空間のロボットと、実ロボット1とでは、データ形式が異なるため、これらの間で通信するには、データ変換を必要とする。本実施の形態の通信処理では、編集装置3のキーフレームと、実ロボット1におけるモーションデータの1行を対応させている。これは全ての通信において基本的に同じである。
As described above, since the data format is different between the robot in the virtual space and the
図23は、編集装置3から実ロボット1へ通信する場合のデータ変換の説明図である。図23に示すように、編集装置3は、図21のフレームを、図22の時間(スピード)に、図21の各関節の角度を、図22の各モーターの角度に、図21のロボットの位置・傾きを、追加データとして変換し、ロボット1に送信する。
FIG. 23 is an explanatory diagram of data conversion when communicating from the
この変換において、フレームを時間(スピード)に変換するため、キーフレームの間隔を、時間に変換する。ここでは、1フレーム=15ミリ秒で計算する。又、各関節の角度を、各モーターの角度に変換するため、各関節の角度をそのまま(必要な場合は単位変換を行い)設定する。更に、擬似空間におけるロボットの基準点の位置・傾きを追加データとするため、実ロボット1のモーションデータには、初期設定で存在しない項目なので、項目ごと追加して設定する。具体的には、位置データ3項目(X,Y,Z座標)+傾きデータ3項目(ヨー、ピッチ、ロー)=6項目である。
In this conversion, in order to convert the frame into time (speed), the key frame interval is converted into time. Here, 1 frame = 15 milliseconds is calculated. Further, in order to convert the angle of each joint into the angle of each motor, the angle of each joint is set as it is (perform unit conversion if necessary). Further, since the position / tilt of the reference point of the robot in the pseudo space is used as additional data, the motion data of the
次に、図24は、実ロボット1から編集装置3へのデータ変換の説明図である。編集装置3は、ロボット1の時間(スピード)をフレームに変換し、ロボット1の各モーターの角度を各関節の角度に、ロボット1の追加データを、擬似空間におけるロボットの基準点の位置・傾きに設定する。又、直接教示機能を使用する場合には、ロボット1の各モーターの角度を各関節の角度に設定して、データ通信を行う。
Next, FIG. 24 is an explanatory diagram of data conversion from the
この変換において、ロボット1の時間(スピード)データは、キーフレームの間隔に変換する。1フレーム=15ミリ秒で、フレーム単位に変換する。各モーターの角度は、そのまま(必要な場合は単位変換を行い)、各関節の角度に設定する。更に、仮想空間におけるロボットの基準点の位置・傾きのデータ項目は、実ロボット1のモーションデータには、初期設定で存在しない項目なので、ロボット1に追加データとして存在する場合(即ち、編集装置3で作成して、ロボット1に記録されたデータ)は、そのまま設定し、存在しない場合はデータ処理を行わない。
In this conversion, the time (speed) data of the
次に、図19に示したように、編集装置3が、時間経過に合わせて、リアルタイムに、キーフレームごとに、変換し、通信し、ロボット1が実行する場合に、編集装置3が実行する通信遅延対応処理を説明する。
Next, as illustrated in FIG. 19, when the
図25は、通信遅延補償処理フロー図である。通常、CGの描画やゲームを実行中に処理落ち(処理の実行時間が、プログラムで想定された予定時間を超えてしまう状況)が起きた場合、処理落ちを認識した時点で、未実行の処理を全て削除して、その時点で実行すべき処理から順次処理を行うなどの対応処理を行う。 FIG. 25 is a communication delay compensation processing flowchart. Normally, when a process failure occurs (when the execution time of the process exceeds the scheduled time assumed by the program) during CG drawing or game execution, an unexecuted process is performed when the process failure is recognized. Are deleted, and corresponding processing such as sequential processing from the processing to be executed at that time is performed.
しかし、実際のロボット1に対して、リアルタイム通信でモーション(動作)操作を行う場合、処理できない部分を単純に削除してしまうと動作が連続せず、場合によっては動作が実行不能になったり、ロボットが大幅にバランスを崩してしまったりする。このような結果を回避するために、処理が間に合わなかった部分を削除することなく、処理速度を変えることで対応する処理を行う。
However, when a motion (motion) operation is performed on an
(S60)先ず、次に、ロボット1に送信するデータD1と、そのデータの実行完了時間T1(図21のフレームによる時間)を取得する。
(S60) First, the data D1 to be transmitted to the
(S62)次に送信するデータが有る場合には、通信処理の前に、現在時刻T0を取得し、実行完了時刻T1までの時間Td(=T1−T0)を計算し、ステップS64に進む。 (S62) If there is data to be transmitted next, the current time T0 is acquired before the communication process, the time Td (= T1-T0) until the execution completion time T1 is calculated, and the process proceeds to step S64.
(S64)一方、次に送信するデータがない場合には、通信以外の処理(描画等)を実行する。 (S64) On the other hand, when there is no data to be transmitted next, processing other than communication (drawing or the like) is executed.
(S66)通信以外の処理の実行後、ロボット通信タブがONかを判定し、オンなら、ステップS60に戻り、オンでないなら、ステップS64に戻る。 (S66) After execution of processing other than communication, it is determined whether the robot communication tab is ON. If it is ON, the process returns to step S60.
(S68)そして、時間Td(若しくは、Tdから計算される速度)とデータD1を、ロボット1に送信し、ステップS64に進む。
(S68) Then, the time Td (or the speed calculated from Td) and the data D1 are transmitted to the
このように、各通信において、現在時刻と実行完了時刻とから修正時刻を計算するので、前回の通信処理や他の処理(描画など)の影響で、予定通りでない時刻に、通信処理が行われる場合でも、遅れた時間に間に合わせるように動作を早くすることができる。このため、実際のロボットの動作完了時刻が変わらないようにすることができる。 In this way, in each communication, the correction time is calculated from the current time and the execution completion time, so the communication process is performed at an unscheduled time due to the influence of the previous communication process and other processes (such as drawing). Even in this case, the operation can be accelerated so as to be in time for the delayed time. For this reason, the operation completion time of the actual robot can be prevented from changing.
またこの方法は、描画なども含む全ての処理を一連の流れで行う仕様に大変有効であるが、通信部分だけが独立して機能するような仕様(並列処理、マルチタスクなど)でも有効である。 This method is very effective for specifications that perform all processes including drawing, etc. in a series of flows, but it is also effective for specifications in which only the communication part functions independently (parallel processing, multitasking, etc.). .
次に、図20で説明した編集装置3に、実ロボット1からモーションデータを読み込み、キーフレームとしてタイムライン上に登録する処理を説明する。図26乃至図29は、モーションデータを、キーフレームデータに変換するための説明図である。
Next, a process of reading motion data from the
図26に示すように、実ロボット1のモーションデータは、一般的にモータの動作時間と、関節のモータ角度を、時系列に並べたものである。ここでは、制御可能関節数は最大24個(図の横方向の番号)であるが、この実施の形態の実ロボット1(図1)の実際の関節数は17個である。
As shown in FIG. 26, the motion data of the
図26は、17個の関節を持つロボットの動作が、13個のポーズ(図の縦方向の番号)からなるモーションデータの例である。即ち、図26の第一列目は、13個のポーズを上から順につけた行番号である。又、第14行は、終了を意味する。 FIG. 26 is an example of motion data in which the motion of a robot having 17 joints consists of 13 poses (vertical numbers in the figure). That is, the first column in FIG. 26 is a row number in which 13 poses are assigned in order from the top. The 14th line means the end.
第二列目は、モータの動作時間を、16進数で示している。この実ロボット1は、動作の時間単位が15msであるから、1行目の「a」と言う動作時間は、15msの(10進数の)10倍の150msを示している。各モータは、目的のポーズへ、150msで達するだけのスピードで動作することを示す。
The second column shows the motor operating time in hexadecimal. Since the
第三列目は、関節番号1のモータの角度(ポーズ)を示す。図26の「4000」と言う値は、中心角度を示す(相対値で示す)。第四列目から第二十四列目までは、第三列目と同様に、各関節番号のモータの角度を示す。尚、5、9、10、16、22、23、24の関節は未使用なので、数値に意味はない。
The third column shows the angle (pose) of the motor of
このモーション動作の説明をすると、開始ポーズから1行目のポーズに150msで到達し、続けて2行目のポーズに(20*15=)300mS後に達するモーションであり、以下同様な繰り返しを行う。 To explain this motion operation, the motion reaches the pose of the first row from the start pose in 150 ms, and then reaches the pose of the second row after (20 * 15 =) 300 ms, and so on.
上述の例では、モーションデータのモータ角度は、全てロボットのポーズを示す。このようなモーションデータは一般的で、特開平10-302084の図5でも記載されている。 In the above example, the motor angles of the motion data all indicate robot poses. Such motion data is general and is also described in FIG. 5 of JP-A-10-302084.
本実施の形態では、このようにモーションデータから、キーフレームデータを作成し、タイムライン上に登録する処理である。図26のモーションデータのモータ角度枠のデータが、全てロボットポーズならば、キーフレームメモリのキーフレームデータに変換することができる。そして、キーフレームデータにより、タイムライン上のキー位置が時間に対応し、モータ角度は、3DView上のロボットのポーズで示される。 In this embodiment, the key frame data is created from the motion data and registered on the timeline. If all the motor angle frame data of the motion data in FIG. 26 are robot poses, they can be converted into key frame data in the key frame memory. And by the key frame data, the key position on the time line corresponds to the time, and the motor angle is indicated by the robot pose on 3D View.
しかしながら、モーションデータのモータ角度枠に、モータ角度以外のデータが記述される場合もある。この場合に、これをそのままキーフレームデータに変換しても、3DView上に表示するロボットのポーズは、どのような形になるか保障できない。 However, data other than the motor angle may be described in the motor angle frame of the motion data. In this case, even if this is converted into key frame data as it is, it cannot be guaranteed what form the pose of the robot displayed on 3DView will be.
このように、従来から知られるモーションデータ(のモータ角度枠)に、モータ角度以外のデータが記述される場合でも、正しいポーズを取ることの出来る処理である。図27は、モーションデータ(のモータ角度枠)に、モータ角度以外のデータが記述されたモーションデータの一例の説明図である。 Thus, even when data other than the motor angle is described in the conventionally known motion data (the motor angle frame), this is a process that can take a correct pose. FIG. 27 is an explanatory diagram of an example of motion data in which data other than the motor angle is described in the motion data (its motor angle frame).
図27では、3行目と6行目に、モータ角度枠に、モータ角度ではない数値が示されている。即ち、このロボットでは、主に8000番台の数値がこれらの対象である。3行目の「820a」は、「ループカウンタを3にセットする」と言う意味で、6行目の「830a」は、「ループカウンタをデクリメントして、0で無ければ、指定した行にジャンプする」と言う意味である。 In FIG. 27, in the third and sixth lines, numerical values that are not motor angles are shown in the motor angle frame. That is, in this robot, the numerical values of the 8000 range are mainly targets. “820a” in the third line means “set the loop counter to 3”, and “830a” in the sixth line “decrements the loop counter and jumps to the specified line if it is not 0” It means "Yes."
このようなループ制御、条件ジャンプコマンド(「820a」や「830a」)は、実ロボット内の制御プログラムが、解釈判断(インタープリター)するコードである。このモーションデータを、編集装置3が読み出しても、キーフレームデータに変換出来ない。
Such loop control and conditional jump commands (“820a” and “830a”) are codes that are interpreted (interpreted) by the control program in the real robot. Even when the
このため、まず、1行目、2行目をタイムライン上のキーフレーム位置にポーズに登録する(キーフレームメモリ52に登録する)。ついで、3行目は、モーションデータであるにもかかわらず、タイムライン上のキーフレーム位置にポーズを登録しない。タイムライン上のキーフレーム位置にポーズを登録しないで、実ロボット1内の制御プログラムが解釈すると同じ解釈を行う。この場合は、「3」と言う値をループカウンタに登録する。
For this reason, first, the first line and the second line are registered as pauses at key frame positions on the timeline (registered in the key frame memory 52). Next, the third line does not register a pose at a key frame position on the timeline even though it is motion data. The same interpretation as the control program in the
続けて、4行目、5行目は再び、タイムライン上のキーフレーム位置にポーズを登録する。6行目は、これを登録せず、ループカウンタの値を1つ減らす。即ち、「2」とする。 Subsequently, in the 4th and 5th lines, the pose is registered again at the key frame position on the timeline. In line 6, this is not registered and the value of the loop counter is decreased by one. That is, “2” is set.
ループ処理のため、続けて、4行目、5行目をタイムライン上のキーフレーム位置にポーズを登録する。さらに、4行目、5行目をタイムライン上のキーフレーム位置にポーズを登録する。この段階では、ループカウンタの値は「0」なので、7行目、8行目、9行目とつづけてタイムライン上のキーフレーム位置にポーズを登録する。以上のような方法でタイムラインを完成させる。 For the loop processing, the poses are registered at the key frame positions on the timeline in the fourth and fifth lines. Furthermore, pauses are registered at the key frame positions on the time line in the fourth and fifth lines. At this stage, since the value of the loop counter is “0”, the pause is registered at the key frame position on the timeline, continuing to the seventh, eighth, and ninth lines. The timeline is completed as described above.
タイムライン上のキーフレームは、全てモータ角度で構成されており、実働可能なものとなる。 The key frames on the timeline are all configured with motor angles, and are operable.
図28は、その変換処理フロー図である。 FIG. 28 is a flowchart of the conversion process.
(S70)編集装置3は、モーションメモリの行数Mと、キーフレームメモリの行数Kを、「1」に初期化する。
(S70) The
(S72)M行目のモーションデータを調べる。 (S72) The motion data of the Mth row is checked.
(S74)モーションデータが終了(「ffff」)であるかを判定し、モーションデータが終了であれば、終了のキーフレームデータを、メモリ52に書き込み、終了する。
(S74) It is determined whether the motion data is finished (“ffff”). If the motion data is finished, the end key frame data is written in the
(S76)逆に、モーションデータが終了でなければ、モータ角度以外のデータ(データが8000番台)かを判定する。モータ角度以外のデータなら、ステップS80のループ処理に進む。逆に、モータ角度のデータであれば、モーションデータを、キーフレームに割り付ける(キーフレームメモリ52に書き込む)。そして、モーション用メモリの行数Mと、キーフレームメモリの行数Kを、「1」インクリメントし、ステップS72に戻る。 (S76) Conversely, if the motion data is not completed, it is determined whether the data other than the motor angle (data is in the 8000 range). If the data is other than the motor angle, the process proceeds to a loop process in step S80. Conversely, if it is motor angle data, motion data is assigned to a key frame (written to the key frame memory 52). Then, the number M of lines in the motion memory and the number K of lines in the key frame memory are incremented by “1”, and the process returns to step S72.
次に、ループ処理を説明する。 Next, loop processing will be described.
(S78)データが何番であるかを判定する。 (S78) It is determined what number the data is.
(S80)データが「820a」である場合には、ループ開始処理を行う。ここでは、例として、ループカウンタに、「3」をセットする。更に、ループ開始行Lは、Mを「1」インクリメントした値で保存する。 (S80) If the data is “820a”, loop start processing is performed. Here, as an example, “3” is set in the loop counter. Further, the loop start line L is stored with a value obtained by incrementing M by “1”.
(S82)そして、モーション用メモリの行数Mを、「1」インクリメントする。 (S82) Then, the number M of rows in the memory for motion is incremented by “1”.
(S84)一方、データが「830a」である場合には、ループ終了判定処理を行う。ここでは、ループカウンタの値を、「−1」する。 (S84) On the other hand, if the data is “830a”, loop end determination processing is performed. Here, the value of the loop counter is set to “−1”.
(S86)そして、ループカウンタの値が、「0」であるかを判定する。「0」なら、モーション用メモリの行数Mを、「1」インクリメントして、ループを終了し、「0」でないなら、モーション用メモリのジャンプ先の行数Mを、ループ開始行Lとして、ループ開始部分へ戻る。 (S86) Then, it is determined whether or not the value of the loop counter is “0”. If it is “0”, the motion memory row number M is incremented by “1” to end the loop. If it is not “0”, the motion memory jump destination row number M is set as the loop start row L. Return to the loop start.
このように、モーションデータ内のデータで、それがモータ角度ならば、そのままタイムライン上のキーフレーム位置に、ポーズを登録し、モータ角度以外のデータなら、タイムライン上のキーフレーム位置に、ポーズを登録せず、ロボット内のインタープリター動作と同様な動作に切り替え、タイムラインを完成する。 In this way, if the data in the motion data is a motor angle, the pose is registered as it is at the key frame position on the timeline. If the data is other than the motor angle, the pose is recorded at the key frame position on the timeline. Without registering, the timeline is completed by switching to the same operation as the interpreter operation in the robot.
次に、これらのデータを、編集装置3で運用する場合には、各行に、25カラム目から30カラム目に、ワールド座標・角度を加える。ここで、ワールド座標・角度とは、ロボットが存在する擬似空間の基準点・基準方向に対するロボットの基準点の位置座標・傾きの角度を言う。ロボットの基準点は、例えば、胴体部である。
Next, when these data are operated by the
図29は、その一例を示す。例えば、前述の足裏接地処理、本体移動処理などを行うことで、モータの角度データに、上記データが組み合わされ、新しいモーションデータが作成される。 FIG. 29 shows an example. For example, the above-mentioned data is combined with the angle data of the motor and new motion data is created by performing the above-described foot contact processing, body movement processing, and the like.
図29において、第二四列目から第三十列目までは、追加したワールド座標・角度の値である。尚、5,9,22,23,24番モータは使用していないので、「0」としてある。25列目が、X座標、26列目がY座標、27列目がZ座標、28列目がヨー、29列目がピッチ、30列目がローである。この値は、上述のように、擬似空間の基準点・基準方向と、ロボットの基準点の位置座標・傾きの角度との相対値で示している。
In FIG. 29, the second to 30th columns are the values of the added world coordinates and angles. Since the
このように、編集装置3上で作成されたデータのロボットへの「書き込み」、ロボットからの「読み込み」は、上記の25カラム目から30カラム目を加えたデータで行う。即ち、上記データの25カラム目から30カラム目に当たるワールド座標・角度データを操作することによって、仮想空間内でのロボットの移動を自然に表現することができる。例えば、前述の部分位置合わせ処理や、足裏接地処理を実行した場合である。
As described above, “writing” data to the robot and “reading” from the robot created on the
このように、モーションデータを、タームライン上に乗せるため、すべて角度データで構成されるよう変換する。これを、モーションデコーダと呼ぶ。 Thus, in order to put motion data on a term line, it is converted so as to be composed entirely of angle data. This is called a motion decoder.
(ロボットとの同期処理)
次に、ロボットとの同期処理を、図30乃至図33で説明する。図30に示すように、ハードデイスクドライブHDD内には、音声を含むビデオデータが格納されている。ビデオデータは、ビデオドライバ56に読み込まれ、ビデオ表示部62に表示される。タイムライン表示部58を操作して、このビデオデータと、キーフレームデータを作成し、更に、ビデオデータの再生と、キーフレームデータによる実ロボット動作、3DViewでの仮想ロボット動作を同期する。
(Synchronization with robot)
Next, synchronization processing with the robot will be described with reference to FIGS. As shown in FIG. 30, video data including audio is stored in the hard disk drive HDD. The video data is read by the
図31乃至図33の例で説明する。図31乃至図33は、表示部34の3DView表示部60と、ビデオ表示部62を示す。図31乃至図33に示すように、タイムライン表示部58の再生領域を操作すると、タイムライン表示部58で指定された経過時間と、ビデオデータに含まれる再生時間情報から得たビデオの経過時間が同じになるようにすることで、ビデオ表示部62に、タイムライン経過時間と同期したビデオ画像が表示される。図31のように、ビデオ画像表示で、右側の人間Bが、手を水平に伸ばした状態で、再生を一時中断し、3DView60を、マウス操作し、3DViewでのロボットのポーズを、手を水平に伸ばしたポーズに作成し、キーフレームに登録する。
This will be described with reference to FIGS. 31 to 33. 31 to 33 show the 3D
次に、ビデオ再生を再開し、図32のように、ビデオ表示で、右側の人間Bが、手を左横に曲げた状態で、再生を一時中断し、3DView60を、マウス操作し、3DViewでのロボットのポーズを、手を左横に曲げたポーズに作成し、キーフレームに登録する。
Next, the video playback is resumed. As shown in FIG. 32, in the video display, the right person B temporarily pauses the playback with the hand bent to the left side, and operates the
更に、ビデオ再生を再開し、図33のように、ビデオ表示で、右側の人間Bが、かがんだ状態で、再生を一時中断し、3DView60を、マウス操作し、3DViewでのロボットのポーズを、かがんだポーズに作成し、キーフレームに登録する。
Furthermore, the video playback is resumed, and as shown in FIG. 33, in the video display, with the right person B bent down, the playback is temporarily suspended, the
このように、ビデオ画像のポーズと同じポーズのデータ作成が容易となる。 In this way, data creation of the same pose as that of the video image is facilitated.
又、このタイムライン表示部58の再生を指示すると、キーフレームデータが、図30のように、ビデオ表示と同期して、実ロボット1に送信される。このため、実ロボット1は、図31〜図33のビデオ表示の人間Bと同じ動作を、ビデオ表示と同期して、実行する。この時、3DVew60のロボットモデルも、実ロボット1と同じ動作を行う。
When the reproduction of the
このため、ビデオに同期したコンテンツの作成が容易であり、且つビデオに同期して、実ロボットを動作でき、ロボットのエンタテイメント性を向上できる。この場合に、前述の通信遅延補償処理は、特に、有効となる。 For this reason, it is easy to create content synchronized with the video, and the real robot can be operated in synchronization with the video, so that the entertainment properties of the robot can be improved. In this case, the communication delay compensation process described above is particularly effective.
(他の実施の形態)
前述の実施の形態では、17関節のロボットで説明したが、他の関節数のロボットにも適用できる。ロボットは、人型のみならず、4足歩行型等の他の形態をしたロボットに適用できる。
(Other embodiments)
In the above-described embodiment, a robot with 17 joints has been described. However, the present invention can be applied to robots with other joints. The robot can be applied not only to a human type but also to other types of robots such as a quadruped walking type.
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。 As mentioned above, although this invention was demonstrated by embodiment, this invention can be variously deformed within the range of the meaning, and this is not excluded from the scope of the present invention.
操作ユニットの操作に応じて、3次元擬似空間でのロボットのモデルの各部位を位置、傾きを変更して、操作ユニットのデータ作成指示に応じて、変更されたロボットのモデルの各部位を位置、傾きから、各関節の角度を計算し、キーフレームデータを作成し、3次元表示のための追加データを付して、多関節型ロボットに送信するので、3次元擬似空間で作成されたデータを再利用して、他のモーションデータを3次元擬似空間で作成できる。 Change the position and inclination of each part of the robot model in the three-dimensional pseudo space according to the operation of the operation unit, and position each part of the changed robot model according to the data creation instruction of the operation unit From the tilt, calculate the angle of each joint, create key frame data, attach additional data for 3D display and send it to the articulated robot, so the data created in 3D pseudo space Can be reused to create other motion data in a three-dimensional pseudo space.
1 多関節型ロボット
3 モーション編集装置
32 キーボード
34 表示部
36 マウス
40 モーションメモリ
42 実ロボット制御プログラム
50 制御プログラム
52 キーフレームメモリ
54 通信ドライバ
58 タイムライン表示部
60 3DView表示部
62 オプション表示部
64 ビデオ表示部
1 Articulated
Claims (10)
擬似空間内における前記ロボットのモデルを3次元表示する3次元表示部を有する表示ユニットと、
前記表示ユニットで表示された前記ロボットのモデルの各部位の位置、傾きを指示するための操作ユニットと、
前記操作ユニットの操作に応じて、前記ロボットのモデルの各部位の位置、傾きを変更して、前記3次元表示部に表示するとともに、前記操作ユニットのデータ作成指示に応じて、前記変更されたロボットのモデルの各部位の位置、傾きから、各関節の角度を計算し、キーフレームデータを作成する処理ユニットとを有し、
前記処理ユニットは、前記キーフレームデータに前記3次元表示のための前記擬似空間内におけるロボットの状態データを付して、前記多関節型ロボットに送信する
ことを特徴とするモーション編集装置。 In a motion editing device that edits motion data of an articulated robot that drives joints in real space,
A display unit having a three-dimensional display unit for three-dimensionally displaying the model of the robot in a pseudo space;
An operation unit for instructing the position and inclination of each part of the model of the robot displayed on the display unit;
The position and inclination of each part of the robot model is changed according to the operation of the operation unit and displayed on the three-dimensional display unit, and the changed according to the data creation instruction of the operation unit A processing unit that calculates the angle of each joint from the position and inclination of each part of the robot model and creates key frame data;
The motion processing apparatus, wherein the processing unit attaches the state data of the robot in the pseudo space for the three-dimensional display to the key frame data and transmits the data to the articulated robot.
ことを特徴とする請求項1のモーション編集装置。 The processing unit converts the coordinates of the robot model so that the part of the robot model instructed by the operation unit is in contact with the reference plane of the three-dimensional display space, and creates the key frame data. The motion editing apparatus according to claim 1, wherein:
ことを特徴とする請求項1のモーション編集装置。 The processing unit determines whether or not there is a collision between parts of the robot model from the created key frame data according to an instruction from the operation unit, and the collision of the robot model in the three-dimensional display space occurs. The motion editing apparatus according to claim 1, wherein the display color of the part is changed.
ことを特徴とする請求項1のモーション編集装置。 The processing unit displays, on the display unit, a timeline display unit for operating with the operation unit and designating a time between the key frames of the robot model, and the processing unit displays the timeline display. The motion editing apparatus according to claim 1, wherein the time information of the key frame data is created according to a time specified by a section.
ことを特徴とする請求項1のモーション編集装置。 The processing unit transmits the key frame data to the articulated robot, detects a delay in transmission processing, changes time information of the key frame data, and transmits next key frame data. The motion editing apparatus according to claim 1, characterized in that:
ことを特徴とする請求項4のモーション編集装置。 The motion editing apparatus according to claim 4, wherein the processing unit displays a video image synchronized with a time designated by the timeline display unit from reproduction time information included in the video data.
ことを特徴とする請求項4のモーション編集装置。 The processing unit synchronizes with the time specified by the timeline display unit from the reproduction time information included in the video data, displays a video image on the display unit, and creates the image on the articulated robot. The motion editing apparatus according to claim 4, wherein key frame data is transmitted to synchronize the video image and the operation of the articulated robot.
前記操作ユニットの操作に応じて、表示された前記ロボットのモデルの各部位の位置、傾きを変更して、前記操作ユニットのデータ作成指示に応じて、前記変更されたロボットのモデルの各部位の位置、傾きから、各関節の角度を計算し、キーフレームデータを作成する
ことを特徴とする請求項1のモーション編集装置。 The processing unit reads the motion data stored in the memory of the articulated robot, changes to the format of the key frame data, displays the pose of the robot model of the display unit,
In accordance with the operation of the operation unit, the position and inclination of each part of the displayed robot model are changed, and according to the data creation instruction of the operation unit, each part of the changed robot model is changed. 2. The motion editing apparatus according to claim 1, wherein the angle of each joint is calculated from the position and the inclination to create key frame data.
ことを特徴とする請求項8のモーション編集装置。 The motion editing apparatus according to claim 8, wherein the processing unit analyzes a control code included in the motion data and converts the control code into the key frame data.
擬似空間内における前記ロボットのモデルを表示ユニットに3次元表示するステップと、
前記表示ユニットで表示された前記ロボットのモデルの各部位を位置、傾きを指示するための操作ユニットの操作に応じて、前記ロボットのモデルの各部位の位置、傾きを変更して、前記3次元表示部に表示するステップと、
前記操作ユニットのデータ作成指示に応じて、前記変更されたロボットのモデルの各部位の位置、傾きから、各関節の角度を計算し、キーフレームデータを作成し、前記キーフレームデータに前記3次元表示のための前記擬似空間内におけるロボットの状態データを付して、前記多関節型ロボットのためのモーションデータを作成するステップとを、コンピュータに実行させるプログラム。 In a program for editing motion data of an articulated robot that drives joints in real space,
Displaying the model of the robot in a pseudo space on a display unit in three dimensions;
The position and inclination of each part of the robot model are changed according to the operation of the operation unit for instructing the position and inclination of each part of the robot model displayed on the display unit, and the three-dimensional Displaying on the display unit;
In accordance with the data creation instruction of the operation unit, the angle of each joint is calculated from the position and inclination of each part of the changed robot model, key frame data is created, and the three-dimensional A program for causing a computer to execute a step of creating motion data for the articulated robot by attaching state data of the robot in the pseudo space for display.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007095291A JP2008254074A (en) | 2007-03-30 | 2007-03-30 | Motion editing device, and its program |
PCT/JP2008/000693 WO2008129818A1 (en) | 2007-03-30 | 2008-03-24 | Motion editing device for robot and its program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007095291A JP2008254074A (en) | 2007-03-30 | 2007-03-30 | Motion editing device, and its program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008254074A true JP2008254074A (en) | 2008-10-23 |
Family
ID=39875351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007095291A Withdrawn JP2008254074A (en) | 2007-03-30 | 2007-03-30 | Motion editing device, and its program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2008254074A (en) |
WO (1) | WO2008129818A1 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010253640A (en) * | 2009-04-27 | 2010-11-11 | Japan Science & Technology Agency | Attitude data input device |
JP2011121171A (en) * | 2009-12-14 | 2011-06-23 | Ir Robot Co Ltd | Apparatus and method for synchronizing robot |
JP2012528015A (en) * | 2009-05-26 | 2012-11-12 | オルドウバラン、ロボティクス | System and method for editing and controlling mobile robot behavior |
KR20140115902A (en) * | 2013-03-22 | 2014-10-01 | 주식회사 케이티 | Apparatus and method for developing robot contents |
US9495788B2 (en) | 2013-03-22 | 2016-11-15 | Kt Corporation | Apparatus and method for developing robot contents |
JP2017505239A (en) * | 2014-02-05 | 2017-02-16 | アーベーベー シュヴァイツ アクツィエンゲゼルシャフト | System and method for defining movements of multiple robots performing a show cooperatively |
JP2017042896A (en) * | 2015-08-28 | 2017-03-02 | 株式会社電通 | Data conversion device, robot, program and information processing method |
JP2017164902A (en) * | 2010-11-19 | 2017-09-21 | ファナック アメリカ コーポレイション | Display system, display method, and display device of three dimensional robotic work cell data |
US10599995B2 (en) | 2015-06-02 | 2020-03-24 | Seiko Epson Corporation | Teaching device and robot system |
US10664964B2 (en) | 2015-09-02 | 2020-05-26 | Fujitsu Limited | Abnormal detection apparatus and method |
WO2020166731A1 (en) * | 2019-02-11 | 2020-08-20 | 엘지전자 주식회사 | Action robot terminal and operating method therefor |
WO2021137486A1 (en) * | 2019-12-31 | 2021-07-08 | 주식회사 한화 | Robot control device, method and computer program |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604153B (en) * | 2009-07-06 | 2011-06-29 | 三一重工股份有限公司 | Engineering vehicle arm rest controller, control system, engineering vehicle and control method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06114766A (en) * | 1992-10-01 | 1994-04-26 | Hitachi Ltd | Remote control device for manipulator |
JPH07200019A (en) * | 1993-12-28 | 1995-08-04 | Ricoh Co Ltd | Robot controller |
JP4765155B2 (en) * | 2000-09-28 | 2011-09-07 | ソニー株式会社 | Authoring system, authoring method, and storage medium |
JP4014044B2 (en) * | 2003-01-28 | 2007-11-28 | 株式会社国際電気通信基礎技術研究所 | Communication robot and communication system using the same |
JP4592276B2 (en) * | 2003-10-24 | 2010-12-01 | ソニー株式会社 | Motion editing apparatus, motion editing method, and computer program for robot apparatus |
-
2007
- 2007-03-30 JP JP2007095291A patent/JP2008254074A/en not_active Withdrawn
-
2008
- 2008-03-24 WO PCT/JP2008/000693 patent/WO2008129818A1/en active Application Filing
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010253640A (en) * | 2009-04-27 | 2010-11-11 | Japan Science & Technology Agency | Attitude data input device |
JP2012528015A (en) * | 2009-05-26 | 2012-11-12 | オルドウバラン、ロボティクス | System and method for editing and controlling mobile robot behavior |
JP2011121171A (en) * | 2009-12-14 | 2011-06-23 | Ir Robot Co Ltd | Apparatus and method for synchronizing robot |
JP2017164902A (en) * | 2010-11-19 | 2017-09-21 | ファナック アメリカ コーポレイション | Display system, display method, and display device of three dimensional robotic work cell data |
JP2019177477A (en) * | 2010-11-19 | 2019-10-17 | ファナック アメリカ コーポレイション | System, method and apparatus for displaying three-dimensional robotic workcell data |
KR20140115902A (en) * | 2013-03-22 | 2014-10-01 | 주식회사 케이티 | Apparatus and method for developing robot contents |
US9495788B2 (en) | 2013-03-22 | 2016-11-15 | Kt Corporation | Apparatus and method for developing robot contents |
KR101626966B1 (en) * | 2013-03-22 | 2016-06-02 | 주식회사 케이티 | Apparatus and method for developing robot contents |
JP2017505239A (en) * | 2014-02-05 | 2017-02-16 | アーベーベー シュヴァイツ アクツィエンゲゼルシャフト | System and method for defining movements of multiple robots performing a show cooperatively |
US10599995B2 (en) | 2015-06-02 | 2020-03-24 | Seiko Epson Corporation | Teaching device and robot system |
JP2017042896A (en) * | 2015-08-28 | 2017-03-02 | 株式会社電通 | Data conversion device, robot, program and information processing method |
WO2017037690A1 (en) * | 2015-08-28 | 2017-03-09 | 株式会社電通 | Data conversion device, robot, program, and information processing method |
US10664964B2 (en) | 2015-09-02 | 2020-05-26 | Fujitsu Limited | Abnormal detection apparatus and method |
WO2020166731A1 (en) * | 2019-02-11 | 2020-08-20 | 엘지전자 주식회사 | Action robot terminal and operating method therefor |
WO2021137486A1 (en) * | 2019-12-31 | 2021-07-08 | 주식회사 한화 | Robot control device, method and computer program |
Also Published As
Publication number | Publication date |
---|---|
WO2008129818A1 (en) | 2008-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008254074A (en) | Motion editing device, and its program | |
CN109605366B (en) | Robot graphical programming interaction system and robot | |
KR102416306B1 (en) | Information processing apparatus and control method of display apparatus | |
US6718231B2 (en) | Authoring system and authoring method, and storage medium | |
US7106334B2 (en) | Animation creation program | |
EP1310844B1 (en) | Simulation device | |
US6225978B1 (en) | Video processing system for movement simulation | |
KR20160002329A (en) | Robot simulator and file generation method for robot simulator | |
US7536655B2 (en) | Three-dimensional-model processing apparatus, three-dimensional-model processing method, and computer program | |
JP2012528015A (en) | System and method for editing and controlling mobile robot behavior | |
JP4989605B2 (en) | Simple animation creation device | |
JP2003058907A (en) | Method for generating pose and motion in tree structure link system | |
JP2010531743A (en) | Method for editing robot motion | |
JP2008030136A (en) | Apparatus and method for compiling action of robot, as well as computer/program | |
JPWO2018173791A1 (en) | Image processing apparatus and method, and program | |
JP5458245B2 (en) | Operation control apparatus, method thereof, and program | |
US20230150133A1 (en) | Systems and methods for real-time control of a robot using a robot animation system | |
JP7470345B2 (en) | Animation Production System | |
JP2009166172A (en) | Simulation method and simulator for robot | |
JP7070547B2 (en) | Image processing equipment and methods, as well as programs | |
JP4028192B2 (en) | Operation input method, apparatus, program, and recording medium | |
JP2007323293A (en) | Image processor and image processing method | |
JP2001291119A (en) | Device and method for controlling user interface and program providing medium | |
JP7218874B2 (en) | animation production system | |
JP2005211260A (en) | Operation command device for operated object, program for operation command for operated object and recording medium having the program recorded thereon |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100601 |