JP3668289B2 - Robot motion teaching system - Google Patents
Robot motion teaching system Download PDFInfo
- Publication number
- JP3668289B2 JP3668289B2 JP14814995A JP14814995A JP3668289B2 JP 3668289 B2 JP3668289 B2 JP 3668289B2 JP 14814995 A JP14814995 A JP 14814995A JP 14814995 A JP14814995 A JP 14814995A JP 3668289 B2 JP3668289 B2 JP 3668289B2
- Authority
- JP
- Japan
- Prior art keywords
- skeleton
- image
- robot
- teaching
- 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.)
- Expired - Fee Related
Links
- 238000006073 displacement reaction Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000013500 data storage Methods 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 claims description 19
- 238000010586 diagram Methods 0.000 claims description 14
- 238000000034 method Methods 0.000 description 52
- 230000008569 process Effects 0.000 description 44
- 238000012545 processing Methods 0.000 description 40
- 210000000988 bone and bone Anatomy 0.000 description 12
- 210000002758 humerus Anatomy 0.000 description 8
- 210000002414 leg Anatomy 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 210000003141 lower extremity Anatomy 0.000 description 6
- 210000001364 upper extremity Anatomy 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000004397 blinking Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 210000000707 wrist Anatomy 0.000 description 3
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 210000001981 hip bone Anatomy 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 210000003423 ankle Anatomy 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
- Image Processing (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Description
【0001】
【産業上の利用分野】
本発明はロボットの動作教示システムに関する。
【0002】
【従来の技術】
従来、ロボットに動作を教示する方法としては、例えばロボットの各部位について、その部位の動作の開始位置に原点設定を行い、次にその動作の終了位置までその部位をマニュアル駆動させるか、あるいは手でその部位を終了位置まで動かして、対応するアクチュエータの作動範囲(変位)を求め、これを教示データとして取り込む方法が用いられている。
【0003】
【発明が解決しようとする課題】
上述の方法においては、1つの動作を教示するために、ロボットの各部位毎に個々のアクチュエータの変位を定めなければならず、教示のための工程数が多くなり、多大な時間と労力を要する問題がある。また、教示データとして考慮されるのは各アクチュエータの変位のみであり、各部位の空間的な位置や動きを直接決定することはできない。そのため、所望の動きを達成するための各部位の空間位置の移り変わりは、各アクチュエータの変位を変えながら試行錯誤的に決定する他はなく、例えば人間のしぐさ等、微妙で複雑な動作を模写する場合等においては、ロボットの動作が不自然でぎこちないものになりやすい欠点があった。
【0004】
本発明の課題は、教示作業が単純で理解しやすく、しかも能率的に行うことができ、また教示内容に基づいて実現されるロボットの動作が微妙で複雑なものであっても、これを滑らかに行わせることができるロボットの動作教示システムを提供することにある。
【0005】
【課題を解決するための手段】
上述の課題を解決するために、本発明の動作教示システムは下記の要件を含み、経時的に記録した一連のモデルとなる人の動きからロボットの教示データをデータ化することを特徴とする。
(1)画像表示手段:教示すべきこの人型ロボットの動作に対応するモデルとなる人の動作を経時的に記録した一連のモデル画像と前記ロボットの骨格を線図として表示する画像(以下、骨格画像という)とを合わせ込んで表示する。
(2)骨格位置決め手段:その画像表示手段上において、人型ロボットの骨格画像の関節機構や骨格単位を、前記モデルとなる人の動作を経時的に記録したモデル画像の内の特定の時刻の画像に対して重ね合わせて位置合わせするものとして構成することができる。
(3)教示データ演算手段:この経時的に記録した一連のモデル画像の内の特定の時刻の画像間による時間軸上において、その互いに前後するモデル画像に対し、前記骨格位置決め手段によって、前記骨格画像がそれぞれ位置合わせされた画像を作り、その骨格画像の変位に基づいて、前記人型ロボットの骨格単位の変位データ、関節機構を介した骨格単位の間の回転角度データ又は人型ロボットの骨格単位を駆動するアクチュエータ駆動量データのいずれかを、ロボットの教示データとして演算する。
【0006】
例えば、教示するべき動作をモデルに実際に行わせてこれを一連の画像として記録し、それら各画像にロボットの骨格画像をそれぞれ位置合わせすることによって、経時的に変化するモデル動作の特定の時刻毎に、骨格画像のモデル画像に対する位置決めが行われ、互いに前後する画像、例えば隣り合う画像間での骨格の変位に基づいてロボットの教示データが演算される。従って、モデル画像を適当な時間間隔でサンプリングすることにより、従来の手法に比べてモデルの動きをより忠実にデータ化することができ、ひいてはそのデータに基づいてロボットに自然で滑らかな動作を行わせることができる。そして、教示のための作業内容は、画像表示手段の画面上でモデル画像に骨格画像を位置合わせする操作が中心となるので理解しやすく、しかもロボットの部位毎にアクチュエータの駆動量を求める必要がなくなるので、教示工数を大幅に削減することができる。
【0007】
例えば人間の動作を模写するロボットに対しては、教示されるべき動作を人間のモデルに行わせ、それをビデオカメラ等の撮影手段により動画として記録し、その動画を画像表示手段にコマ送り再生しながら、その動画のコマ毎に骨格画像の位置合わせ操作を行えばよい。ここで、記録されたモデル画像の寸法は、選定したモデルの寸法(あるいは体形)によって変化する場合があるが、この場合は、骨格画像の各骨格単位の長さを、表示手段に表示されるモデル画像の寸法に合わせて伸縮可能とすることができる。
【0008】
ここで、モデル画像の時間間隔は、教示すべきロボット動作に応じて変化させることができる。例えば、ビデオ画像をコマ送り再生する場合、それら画像のコマは一定の時間間隔で撮影されたものとなるが、比較的単純なモデル動作を教示する場合には、一定枚数のコマを間引くことによって、隣接するモデル画像の時間間隔を大きくすることができる。これにより、教示に必要な画像の枚数が減少して教示作業を効率化することができる。また演算に必要なデータ量が減少するので、ロボット作動時のハードウェアの負担が軽減され、動作の応答性を高めることができる。
【0009】
次に、人型ロボットの骨格の一部のものに対しては、教示データ演算手段により、時間軸上において互いに前後するモデル画像に対しそれぞれ入力された骨格画像の変位に基づいて前記骨格単位の教示データを算出する一方、その教示データが算定されないロボットの骨格単位、及びロボット骨格における関節機構や骨格単位によって表される人の各部の名前がつけられたロボット部位に対応して、補助入力手段を設けておくことができる。そして、その補助入力手段により、それらロボットの骨格ないしロボットの部位に対しては、その補助入力手段から教示データが個別に入力されることとなる。例えば、モデル画像に位置合わせされた骨格画像からは教示データの生成が困難あるいは不可能なロボット部位(例えば手首、指、目、口等の動き、ランプの点灯など)については、補助入力手段から直接教示データを入力することができ、これによりロボット細部に対するきめ細かい動作の教示が可能となる。
【0010】
ロボットの骨格は、具体的には、関節機構によって結合された複数の骨格単位を含み、それら骨格単位はそれら関節機構に設けられたアクチュエータにより駆動されるように構成することができる。この場合、モデルに対して予め基準姿勢を設定しておき、また、教示データ演算手段に、その基準姿勢のモデル画像に対し位置合わせされた骨格画像に対する各アクチュエータの基準位置を含む基準データを記憶する、基準データ記憶手段を設けることができる。そして教示データ演算手段は、その基準データに基づいて、各時刻における各骨格単位の空間変位を算出し、その変位に基づいて各アクチュエータの駆動量を算出する。
【0011】
次に、モデル画像に対する骨格画像の合わせ位置の入力は、それら各骨格単位上の両端部に予め定められた目印点の、表示手段の表示画面上における位置を指定することにより行うことができる。そのためのより具体的な装置構成として、例えば下記のようなものを例示できる。すなわち、骨格位置決め手段にマウス、トラックボール等のポインティングデバイスを設け、表示手段には、その表示画面上にモデル画像及び骨格画像とともに、そのポインティングデバイスの操作に伴い画面上を移動するポインタを表示させる。そして、骨格画像をモデル画像に対し位置合わせする際には、目印点のうちの位置合わせするべきものを選択し、モデル画像上に設定されるその合わせ位置にポインタを合わせ、ポインティングデバイスに付随する入力部を操作して該目印点の合わせ位置を指定することにより、その位置合わせ後の目印点に対応する位置に、骨格単位が位置合わせされる。このようにすれば、モデル画像に対する骨格画像の位置合わせ操作を、より直接的で理解しやすいものとすることができる。
【0012】
また、複数の骨格単位が組を形成し、その組に含まれる各骨格単位同士の相対的な位置関係に予め定められた拘束条件を設定することができる。そして、その組に属する骨格単位の目印点のうち、その一部のものについてモデル画像に対する合わせ位置の指定を行うことにより、残余の目印点の合わせ位置が、その拘束条件に基づいて定められるように構成することができる。このようにすることで、位置合わせ操作が単純化されて作業時間を短くすることができるほか、ロボット部位に対し構造上あり得ない位置が指定されるといった不都合を未然に防ぐ効果も得られる。
【0013】
ここで、骨格単位に対し、モデル画像に対する位置合わせの順序を予め決めておき、その順序に従って位置合わせの操作を行うようにすることができる。この場合、ある骨格単位の位置合わせ操作が終了した場合には、次に操作を行うべき骨格単位の目印点の色を変えたり点滅させるなど、他の目印点とその表示状態を異ならせるように構成することができる。
【0014】
次に、骨格単位の変位から、骨格単位を駆動するアクチュエータの駆動量を算出する機構であるが、具体的には次のようなものを採用することができる。すなわち、ロボットの骨格の任意の1つの骨格単位(以下、第一骨格単位という)と、その第一骨格単位にアクチュエータを介して結合された第二骨格単位とに対し、教示データ演算手段が、時間軸上で互いに前後する骨格画像の少なくとも一方のものに対し、その第一骨格単位と第二骨格単位とに、回転移動又は並進移動の少なくとも一方を施して、両骨格画像の第一骨格単位同士を互いに重ね合わせる。そして、その重ね合わされた状態で、両骨格画像間における第二骨格単位の変位を算出し、その算出結果に基づいて各アクチュエータの駆動量が算出される。
【0015】
教示データ演算手段は、画像表示手段に2次元的に表示された骨格単位の画像と、既知の寸法を有する標準体の画像とに基づいて、骨格単位の三次元的な位置を算出するものとして構成することができる。
【0016】
上述の動作教示システムには、教示データ演算手段に基づいて演算・生成された教示データを記憶する教示データ記憶手段と、その記憶された教示データを編集する教示データ編集手段を設けることができる。編集手段を用いることにより、生成された教示データの修正や追加あるいは削除を容易に行うことができる。また、教示データを、ロボットの動作の種類、及びロボットの部位毎に設定された編集項目別に編集可能なものとしておけば、ロボットに複雑な一連の動作を行わせる場合でも、動作別あるいは部位別に編集されたロボットの教示データを随時組み合せることにより、その教示データを比較的簡単に作成することができる
。
【0017】
【実施例】
以下、本発明の一実施例を図面を用いて説明する。
図1は、本発明の動作教示システムの構成例を示すブロック図である。動作教示システム1は、教示データ演算手段を構成するCPU2、ROM3、RAM4を含むシステム制御部5を備え、これに画像取込制御部6、表示制御部7、入力装置インターフェース8、プログラム記憶装置9、教示データ記憶装置10、動画データ記憶装置11が接続されている。そして、入力装置インターフェース8には骨格位置決め手段として、クリックボタン12a(入力部)を備えたマウス12、キーボード13が接続されている。
【0018】
表示制御部7には画像表示手段としてのCRT14が接続されている。一方、画像取込制御部6は、ビデオ再生装置(VTR)15が接続されるとともに、VRAM16とデータ転送用プロセッサ17とを備え、VRAM16に格納された画像表示データが、バス18を介して表示制御部7に直接転送可能とされている。
【0019】
また、CPU2には通信インターフェース152及び153と通信回線150を介して、ロボット動作の試演を行うためのグラフィックシュミレータ(以下、単にシュミレータという)151が接続されている。シュミレータ151は、図2に示すように、CPU154と、これに接続されたROM155、RAM156、VRAM157、表示制御部158、及び入力装置インターフェース160を備え、表示制御部158にはロボット動作の試演動画を表示するCRT159等の表示装置が、また入力装置インターフェース160にはキーボード161等の入力部が接続されている。また、教示システム1と通信するための通信インターフェース153がCPU154に接続されている。
【0020】
次に、動作教示の対象となるロボットは、例えば人間の動きを模写するロボットとして構成することができる。このロボットは、例えば図3に示すような骨格19を有し、関節機構31〜37で互いに接続される下記の骨格単位を備えている。
・頭部20:それぞれ駆動可能な目部20aと口部20cを備え、目部20aには明滅可能なランプ20bが配置される。口部20cは開閉駆動可能とされている。
・肩21、背骨22、腰骨23:これらは、互いに結合されて胴体部を形成している。
・左右の腕部:それぞれ上腕骨24、下腕骨25、手首29を備える。
・左右の脚部:それぞれ上肢骨26、下肢骨27、足首30を備える。
なお、各関節機構31〜37に設けられるアクチュエータの種類(パルスモータ、サーボモータ、ピストンシリンダ等)と軸の本数、軸の回転の自由度、及び軸の回転ないしピストンのスライドの範囲等は各骨格単位毎に個別に設定されている。
【0021】
上記骨格単位のうち、いくつかのものは組を形成し、その組に含まれる各骨格単位同士の相対的な位置関係には予め定められた拘束条件が設定される。例えば、両脚部を構成する骨格単位を例にとれば、図4に示すようにその下肢骨27は、上肢骨26に沿う直線と腰骨23に直角な直線とが作る平面P内のみを動くという拘束条件が設定されている(なお、図4においては、関節機構35及び36(図3)は描いていない)。従って、上肢骨26の上端位置と下肢骨27の下端位置とを指定すれば、両者の結合点(膝に相当する部分)の位置は、上記拘束条件に従って自動的に定まることとなる。このような拘束条件は、プログラム記憶装置9の拘束条件記憶部110(図5)に記憶され、教示データの算出に随時使用される。
【0022】
次に、プログラム記憶装置9には、図5に示す各プログラムが格納されるとともに、必要に応じてCPU2により読み出され、RAM4の所定のエリアに書き込まれて使用される。
(1)動画取込みプログラム90:VTR15で再生されたモデル動作の画像を、画像取込制御部6を介して動画データとして取り込み、光磁気ディスク装置等で構成された動画データ記憶装置11に記憶させる。
(2)モデル画像表示プログラム91:動画データ記憶装置11に記憶された動画データに基づいて、指定されたコマのモデル画像をCRT14に表示させる。
(3)骨格画像表示プログラム92:ロボット骨格19(図3)に対応する骨格画像の画像データを作成し、図19に示すように、そのデータに基づく骨格画像38をモデル画像39とともにCRT14に表示させる。
【0023】
(4)骨格画像位置合わせプログラム94:マウス12を使用して、CRT14に表示された骨格画像38を、モデル画像39に対し重ね合わせてこれを位置合わせする。ここで、CRT14の画面上においてモデル画像39の画面上の寸法に骨格画像38の寸法を合わせ込む処理も本プログラムによって行われる。
(5)変位計算プログラム96:CRT14に2次元的に表示された各骨格単位の画像から、それら骨格単位の実際の空間における3次元的な位置を計算し、それに基づいて時間的に相前後する2つの画像間における各骨格単位の変位を算出する。その算出処理は、各骨格単位毎に用意された寸法既知の標準体を所定の方向から撮影して得られたその標準体画像の寸法と、対応する骨格単位の画面上における寸法とを比較することにより実行される。なお標準体の寸法データは、プログラム記憶装置の標準体寸法データ記憶部112に格納されている。
(6)アクチュエータ駆動量計算プログラム98:上記骨格単位の変位に対応する各アクチュエータの駆動量を算出し、上記変位データとともに教示データ記憶装置10に記憶させる。
【0024】
(7)動作時間設定プログラム100:使用する動画のコマに、ロボット動作の実時間軸上の時間を設定するとともに、隣接するコマの時間間隔から各アクチュエータの駆動速度を算出し、これを教示データの一部として教示データ記憶装置10に記憶させる。
(8)補助入力プログラム102:予め指定された骨格単位ないしロボット部位に対する教示データの補助入力処理を、マウス12ないしキーボード13を使用することにより行う。このような補助入力処理は、骨格画像38とモデル画像との位置合わせ処理による教示データの生成が比較的困難な骨格単位ないし部位に対し適用され、例えば図3に示す頭部20の目部20aや口部20bの動き、目部20aに配置されたランプ20bの明滅等がこれに該当する。一方、いくつかの骨格単位については、特定の動作モードに対してのみ位置合わせ処理による教示データの生成が困難なこともありうるが、そのような場合も、上記方法による教示データの入力が可能である。この方法は、例えば、頭部20aの前後傾、左右傾、回転等、あるいは関節機構33(肘に相当)に対する上腕骨24と下腕骨25の長手方向軸線周りの回転、手首29の回転、指の曲げ状態等に対し適用可能である。なお、このような入力処理は、本実施例では、骨格画像38のモデル画像39に対する位置合わせ処理を行う画面(図19)とは別画面(あるいは別ウィンドウ)を開いて行うようになっている。
【0025】
(9)コマ修正プログラム104:指定されたコマにおいて、骨格画像の位置合わせ処理により入力された教示データの変更修正(例えば骨格単位の位置変更等)を行う。なお、前述の拘束条件で結ばれた骨格単位のいずれかの位置を変更した場合、その拘束条件が破れないように他の骨格単位の位置も自動修正する。
(10)コマ削除・追加プログラム105:指定されたコマのデータを削除し、また、指定されたコマ位置の次に新規教示データ入力を行うコマの追加・挿入を行う。(11)逐次表示プログラム106:各コマの骨格画像を時系列順に、一定の時間間隔で逐次画面に表示する。これにより、骨格画像の大まかな動きの変化を確認することができ、実際のロボット動作の簡易シュミレート手段として利用することができる。
(12)骨格位置固定設定プログラム107:骨格画像38の位置合わせ処理時に、予め指定した骨格単位の位置を固定化する設定を行う。すなわち、教示するべき動作において、特定の骨格単位がほとんど動かないことがわかっている場合には、その骨格単位に対し位置固定の設定を行うことにより、骨格画像38の位置合わせ処理を簡略化することができる。
【0026】
(13)教示データファイル編集プログラム108(教示データ編集手段):教示データを、ロボットの動作の種類やロボットの部位等、予め設定された編集項目別にファイル分割し、ファイル名を付与して教示データ記憶装置10に記憶・保存する。
(14)シュミレータ起動プログラム109:指定されたロボット動作の教示データをグラフィックシュミレータ151に転送し、シュミレータ151側におけるロボット動作の試演(シュミレーション)処理の起動を促す。
【0027】
以下、動作教示システム1における処理の流れをフローチャートを用いて説明する。
図6は処理全体の大まかな流れを示すものであって、次の各処理のいずれかを選択するようになっている。なお、選択時にはCRT14に所定の選択画面がウィンドウ表示され、そこに表示された選択項目をマウス12を用いて選択することにより、個々の処理ウィンドウが開くようになっている。
(1)教示入力(S1000からS1100に向かう処理):モデル画像に対する骨格画像の重ね合わせ処理を行い、教示データを作成する。
(2)教示修正(S2000からS2100に向かう処理):作成された教示データの修正を行う。
(3)教示試演(S3000からS3100に向かう処理):グラフィックシュミレータ151を使用して、ロボット動作の試演を行う。
(4)終了指示(S4000から終了へ向かう処理):処理終了の指示を行う。
【0028】
教示入力が選択された場合はS1100において教示入力処理を行う。ここで、教示入力に先立って、教示する動作を人間のモデルに行わせ、そのモデル画像38が例えば図16に示すように、所定のコマ時間間隔でビデオカメラにより動画撮影される。そして、図1のVTR15により再生されたその動画が、画像取込制御部6を介して動画データとして取り込まれ、動画データ記憶装置11に記憶される。ここで、動画データ記憶装置11に記憶されている動画データは、図17に示すように、モデルが比較的複雑な動きを行っている場合には、そのコマ80の間隔が密になるように、逆に動きが比較的単調な場合にはコマ80の間隔が粗となるように、その動画のコマが、動画データ取り込み時あるいは取り込み後のデータ編集時に適宜間引かれる。
【0029】
図7は、S1100の教示入力処理の詳細を示すフローチャートであって、教示不要な部位(例えば、教示するべき動作を通じてほとんどその動作に関与しない骨格単位や部位)の設定を行なった後(S1101)、図18に示すような、ウィンドウW1及びW2をそれぞれ表示する(S1102、S1103)。このうち、一方のウィンドウW1にはモデル画像39が表示され、他方のウィンドウW2には骨格画像38が表示される。なお、骨格画像38は、図3に示すロボット骨格19を簡略化した線図として表示される。なお、ロボット骨格19の各骨格単位の両端位置は、図18の骨格画像38上で下記のようにインデックスが付与されている。
・頭部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。
【0030】
図7に戻って、S1104において、ビデオカメラにモデルを正対させて撮影したモデル画像38(図18)に、骨格画像39の寸法を合わせ込む処理を行う。その処理の詳細を図8及び図9に示す。すなわち、正対ポーズのモデル画像38をウィンドウW1に骨格画像39をウィンドウW2に表示し(C101〜103)、各骨格単位の長さをモデル画像の対応部位に合わせ込む(C104)。ここで骨格画像39の各骨格単位に対しては、予め標準寸法が設定されている。その合わせ込みの処理であるが、図9に示すように、まず基準点Gの位置を合わせ込み(C201)、続いてその基準点Gから次第に遠ざかるように、各骨格単位の端点を順次合わせ込んでゆく。
【0031】
ここで、モデル画像38に対し、骨格画像39の端点を合わせ込むための入力方法であるが、図18に示すように、ウィンドウW2上には各端点が目印点として表示され、また、ウィンドウW1上にはマウス12の移動に伴い画面上を移動するポインタ40が表示される。目印点の合わせ込みは、G点から始まって次第に骨格の末端へ向かう方向に、予め設定された順序で行われるようになっており、ウィンドウW2に表示された骨格画像38上において、次に合わせ込みを行うべき端点が点滅してこれを知らせるようになっている。そして、ウィンドウW1上のモデル画像38上の指定するべき位置にポインタ40を合わせ、マウス12のクリックボタンを操作することにより、ウィンドウW2上で点滅表示された端点の、モデル画像38上での重ね位置が確定され、それとすでに確定されている端点の位置に基づいて、各骨格単位の長さが順次計算されてゆく(C202〜C210)。また、長さが定められた骨格単位は、ウィンドウW1のモデル画像38に対し順次重ね描画されてゆく。
【0032】
ここで、正対ポーズにおけるモデル画像38はほぼ左右対称であることから、上腕骨24と下腕骨25、ならびに上肢骨26と下肢骨27(図3)の各端点は、左右いずれか一方のものが位置決めされれば、他方のものも自動的に位置決めされるように処理が行われる。また、頭部20を表すH及びF1間の距離は、頭部20以外の骨格単位についてその算出された寸法と標準寸法とを比較し、その比率と頭部20の標準寸法とに基づいて定められる(C210)。なお、ウィンドウW1に予め設定された標準寸法の骨格画像を、モデル画像38とともに表示し、そのウィンドウW1上で骨格画像の各骨格単位の端点をモデル画像38に合わせ込む処理を行ってもよい。この場合、ウィンドウW2は省略することも可能である。次に、図8に戻り、算出された骨格単位の寸法に合わせて、正対ポーズの骨格画像38をウィンドウW1に再描画した後(C105)、図7のS1105に進む。ここで、正対ポーズに対応する骨格画像38に対しては、各アクチュエータの駆動位置が基準データとして予め設定されており、その設定内容がプログラム記憶装置9の基準データ記憶部113に格納されている。
【0033】
続いて、S1105〜S1109において、骨格画像38の位置合わせを行う動画のコマ番号を指定することにより、そのコマのモデル画像のデータが取り込まれ、骨格画像の位置合わせ処理(骨格画像入力)に移る。図10〜図12は、その位置合わせ処理(S1109)の内容の詳細を示すフローチャートである。すなわち、図10のC301〜C305に示すように、取り込んだコマのモデル画像39に対し、G点から始めて次第に遠ざかる方向に、骨格画像38の各端点の位置をモデル画像39に対し合わせ込んでゆく。その入力例を図19に示しているが、手順は前述の寸法合わせ処理の場合とほぼ同様であり、ウィンドウW2上で点滅表示される端点のウィンドウW1での合わせ位置をマウス12で指定しながら、モデル画像39に対する位置合わせ入力を行ってゆく。この場合も、ウィンドウW1上のモデル画像39に対し、位置合わせの終わった部分から順に骨格画像38が重ね描画されてゆく。ここで、左右の脚部及び腕部については、前述の寸法合わせ処理とは異なり、個々に入力処理が行われることとなる。なお、S1101(図7)において設定された教示不要部位については、位置合わせ入力がスキップされる。
【0034】
図11は、一例として、両脚部に相当する部位の位置合わせ処理の流れを示しており、右脚部及び左脚部のそれぞれについて、上肢骨26の上端点L1(L2)の位置合わせを行った後、下肢骨27の下端点Lf1(Lf2)の位置合わせが行われるようになっている(C410〜C403)。ここで、図4に示す拘束条件により、L1(L2)及びLf1(Lf2)が指定されれば、膝に相当するLk1(Lk2)の位置は自動的に定まるので入力は行われない。このようにして、各端点の画面上の座標が算出され、その画面座標と各骨格単位の標準体寸法データ112(図5)に基づいて実際の空間における端点の3次元座標が算出される。
【0035】
次に、図7に戻ってS1110に進み、上記位置合わせ処理では教示データの生成が困難なないし不可能な骨格単位ないし部位に対し、それらの空間位置の補助入力処理を、マウス12ないしキーボード13を使用することにより行う。この入力処理は、上記位置合わせ処理とは別のウィンドウを開き、そのウィンドウ上に該当する骨格単位ないし部位の画像を表示して、位置設定のために予め用意された各種処理コマンド(例えば骨格単位の平行移動、あるいは回転など)を、マウス12あるいはキーボード13からの入力により選択・実行しながら、骨格単位や部位毎に個別に入力を行ってゆく。
【0036】
以上で、1つのコマに対する教示入力処理が終了するが、次のコマの処理に移る場合はコマ番号を更新し、直前のコマの骨格画像38及びモデル画像39を描画しなおすとともに(S1111〜S1113)、S1107に返って処理を繰り返す。一方、コマへの入力作業を終了する場合は(S1114〜S1116)、ウィンドウW1とW2を閉じて図6のS1200に進む。
【0037】
S1200では、上記教示入力により得られた、各コマ毎の骨格単位の端点の空間位置座標に基づいて、骨格単位を駆動するアクチュエータの駆動量を駆動データとして算出する処理が行われる。すなわち、図12に示すように、隣り合う2枚のコマの番号を指定して、その各骨格単位の端点の空間位置座標を読み込み、その空間位置座標に基づいて各骨格単位間に設けられたアクチュエータの駆動量が算出される(C501〜C503)。
【0038】
その算出方法を図20に模式的に示している。例えば、図20(a)示すように、点Gを固定として、先順のコマNpにおけるL1、Lk1の位置が後順のコマNsにおいて、L1’、Lk1’に移った場合、(b)に示すように、G−L1−Lk1の角度を固定するとともに、線分GL1及び線分L1Lk1(それぞれ請求項でいう第一骨格単位及び第二骨格単位)に回転移動を施し、線分GL1を線分GL1’に重ね合わせる。そして、回転移動後の各点の空間座標から、コマNp側の線分L1Lk1と、コマNs側の線分L1’Lk1’とのなす角度θを算出することにより、両骨格単位の間に配置されたアクチュエータの各軸の回転角度を求めることができる。このような骨格単位の回転移動(場合によっては並進移動)と第二骨格単位の回転角度を求める処理を、G点から骨格の末端へ向かう方向に順次施してゆけば、各関節機構に含まれるアクチュエータの駆動量が順次算出されることとなる。
【0039】
ここで、最初のコマの骨格画像が正対ポーズのものでない場合は、基準データ記憶部113(図5)に格納されたアクチュエータの基準位置をもとに、その最初のコマに対する各アクチュエータの駆動位置を算出しておけばよい。なお、以上の説明では、アクチュエータはモータで構成されており、第一及び第二の骨格単位同士はそのモータ軸の回転により、相対的な回転運動のみを行うものとしたが、ピストンロッド等をアクチュエータとした場合は、そのピストンの伸縮により骨格単位間で相対的な並進運動が行われる場合もある。そのような場合は、第二骨格単位の回転角度の他、並進移動距離も算出するようにする。なお、このようなアクチュエータの駆動量の算出は、必ずしも教示の段階で行う必要はなく、例えば骨格単位の端点の変位データのみを教示の段階で算出しておくようにしてもよい。そして、それを用いた駆動量の計算は、ロボット駆動時にその動作の進行に合わせて逐次行い、結果を順次ロボットのアクチュエータ駆動制御部に与えるようにすることができる。また、変位データの算出は、互いに隣接するモデル画像を用いて行なう態様の他、ある基準時刻における共通のモデル画像と各時刻におけるモデル画像とを使用して算出するようにしてもよい。
【0040】
次に、図6のS1300に進み、入力が終わった各コマに対しロボット動作の実時間軸上の時間を設定する。その処理の詳細を図13のフローチャートに示す。すなわち、時間設定用のウィンドウを開いて骨格画像データをコマ番号順に読み出し、ウィンドウ内に骨格画像を順次表示しながら時間入力を行ってゆく(C601〜C605)。そして、C6051において、直前のコマとの時間間隔から各アクチュエータの駆動速度を算出し、C606において、その時間間隔で全てのアクチュエータが駆動完了できるかどうかを判定する。完了できるようであれば、C607でその入力された時間及びアクチュエータ駆動速度を格納し、C608でコマ番号をインクリメントしてC603に戻り、処理を繰り返す。また、駆動完了できないようであればC605に戻って時間入力をやり直す。そして、時間の入力処理が終わるとC612でウィンドウを閉じて図6のS1400に進む。
【0041】
S1400では、最終的に得られた教示データを教示データ記憶装置10に記憶・保存する。その処理の流れは図14に示す通りであって、データ全体のファイル名を、そのデータの動作名で入力し、次に予め定められたロボット部位の分類(例えば拘束条件で結ばれる骨格単位の組、独立した骨格単位、骨格単位以外の部位など)に従い、部位毎のサブファイル名を入力する(C701、C702)。これを受けて、教示データはその部位別のサブファイルに分割され、それぞれ入力されたサブファイル名が付与されるとともに(C703)、入力された動作名で指定される記憶装置10のディレクトリに保存される(C704)。これら各部位毎のサブファイルは、実際にロボットの駆動に使用する際には必要なものがファイル結合されて、ロボット作動のプログラムに組み込まれることとなる。一方、異なる動作のデータのサブファイルでも、そのデータ形式を統一しておけば、サブファイルを適当に選んで組合せたり、ある動作のサブファイルを別の動作のサブファイルに転用したりすること等が可能となる。
【0042】
次に、このようにして作成された教示データの修正を行いたい場合には、図6のS2000以下の処理が実行される。まず、S2100で動作名入力により教示データのファイルを指定し、S2200でそのデータが読み込まれる。そして、S2300でその修正処理が行われるが、その処理の詳細は図15に示されている。まず、修正入力用ウィンドウ(図19等に示す教示入力用のウィンドウと同型式)を開き(C801、C802)、先順のコマのものから順に骨格画像データが読み込まれて、ウィンドウに骨格画像が描かれる(C803、C804)。そして、コマの修正、コマの削除、コマの追加、コマの逐次表示等、修正のために用意された処理メニューから、所望の項目を選択して、その項目に対応する処理を行うこととなる。
【0043】
すなわち、コマ修正を選択した場合は、表示されたコマの骨格画像の修正(例えば、骨格単位の重ね位置の変更など)が行われる(C808、C809)。また、コマ削除を選択した場合は表示されたコマの削除が行われ(C810、C811)、コマの追加が選択された場合は、表示されたコマの次に新規のコマを挿入し、教示入力時と同様の操作・処理により骨格画像のモデル画像への重ね入力等が行われ(C812、C813 )。さらに、コマの逐次表示が選択された場合には、各コマの骨格画像を時系列順に、一定の時間間隔で逐次ウィンドウに表示する処理が行われる(C814、C815)。そして、処理が終了すれば、C817でコマ番号を更新してC805に返り、処理を繰り返す。また、処理が終わればC818でウィンドウを閉じて図6のS2400に進む。S2400では、修正、追加、削除されたコマの前後で、教示データの再計算・更新を行い、S2500でこれを保存して処理を終了する。
【0044】
次に、作成した教示データに基づいて、グラフィックシュミレータ151により、実際のロボットの動きを試演することができる。この場合は、S3000以下の処理となるが、まずS3100で試演させたい動作名を入力すると、S3200でその動作の試演処理が開始される。その処理の概略であるが、まずその動作名で保存されている教示データを読み出して、これを試演開始命令信号とともにグラフィックシュミレータ151側へ転送する。グラフィックシュミレータ151はこれを受けて、ROM155(図2)に格納されたロボット画像データ生成プログラム155aによりロボットの画像を合成し、受信した教示データに基づいてシュミレートプログラム155bにより、CRT159にロボット動作試演の動画を表示する。なお、キーボード161からの入力により、試演動画を早送りあるいはスロー再生したり、あるいは特定の部位の動きを拡大表示するなど、画像のコントロールを行うようにすることができる。なお、グラフィックシュミレータ15は省略してもよい。
【図面の簡単な説明】
【図1】本発明の教示システムの一構成例を示すブロック図。
【図2】グラフィックシュミレータの構成を示すブロック図。
【図3】ロボット骨格の模式図。
【図4】骨格の脚部に対する拘束条件の説明図。
【図5】プログラム記憶装置の内容を示す説明図。
【図6】教示システムの全体の処理の流れを示すフローチャート。
【図7】教示入力処理のフローチャート。
【図8】教示入力処理において、骨格単位長さを定める処理の流れを示すフローチャート。
【図9】同じく、各骨格単位の端点の位置合わせ処理の流れを示すフローチャート。
【図10】同じく、骨格の端点の座標を算出する処理の流れを示すフローチャート。
【図11】同じく、脚部を作る骨格単位の端点の座標を算出する処理の流れを示すフローチャート。
【図12】同じく、教示データ算出の流れを示すフローチャート。
【図13】同じく、時間入力処理の流れを示すフローチャート。
【図14】同じく、教示データ保存処理の流れを示すフローチャート。
【図15】教示修正処理の流れを示すフローチャート。
【図16】動画のコマの模式図。
【図17】コマの時間軸上における配列の一例を示す模式図。
【図18】正対モデルに対する骨格画像の寸法合わせ処理の説明図。
【図19】モデル画像に対する骨格画像の位置合わせ処理の説明図
【図20】アクチュエータの駆動量を算出する方法の説明図。
【符号の説明】
1 動作教示システム
5 システム制御部(教示データ演算手段)
6 画像取込制御部
7 表示制御部
9 プログラム記憶装置
10 教示データ記憶装置
12 マウス(骨格位置決め手段)
14 CRT(画像表示手段)
19 ロボット骨格
31〜37 関節機構
38 骨格画像
39 モデル画像
40 ポインタ
90 動画取り込みプログラム
91 モデル画像表示プログラム
92 骨格画像表示プログラム
94 骨格画像位置合わせプログラム
96 変位計算プログラム
98 アクチュエータ駆動量計算プログラム
100 動作時間設定プログラム
102 補助入力プログラム
104 コマ修正プログラム
105 コマ削除・追加プログラム
106 逐次表示プログラム
108 骨格単位固定設定プログラム
109 教示データファイル編集プログラム
110 拘束条件記憶部
112 標準体寸法データ記憶部[0001]
[Industrial application fields]
The present invention relates to a robot motion teaching system.
[0002]
[Prior art]
Conventionally, as a method for teaching a robot to perform an operation, for example, for each part of the robot, the origin is set at the operation start position of the part, and then the part is manually driven to the end position of the operation, or manually. In this method, the part is moved to the end position to determine the operating range (displacement) of the corresponding actuator, and this is taken in as teaching data.
[0003]
[Problems to be solved by the invention]
In the above method, in order to teach one operation, it is necessary to determine the displacement of each actuator for each part of the robot, which increases the number of steps for teaching and requires a lot of time and labor. There's a problem. Further, only the displacement of each actuator is considered as teaching data, and the spatial position and movement of each part cannot be directly determined. Therefore, the spatial position of each part to achieve the desired movement is determined by trial and error while changing the displacement of each actuator. For example, a subtle and complicated movement such as a human gesture is copied. In some cases, the robot operation tends to be unnatural and awkward.
[0004]
The problem of the present invention is that the teaching work is simple and easy to understand and can be performed efficiently, and even if the robot operation realized based on the teaching content is delicate and complicated, it can be smoothly performed. It is an object of the present invention to provide a robot motion teaching system that can be performed.
[0005]
[Means for Solving the Problems]
In order to solve the above problems, the motion teaching system of the present invention includes the following requirements. The robot teaching data is converted into data from a series of modeled human movements recorded over time. It is characterized by that.
(1) Image display means: a series of model images in which movements of a person who becomes a model corresponding to the movements of the humanoid robot to be taught are recorded over time and the skeleton of the robot Display as a diagram Images (hereinafter referred to as skeleton images) Put together indicate.
(2) Skeletal positioning means: On the image display means, the joint mechanism and the skeleton unit of the skeleton image of the humanoid robot are recorded at a specific time in the model image in which the movement of the person who becomes the model is recorded over time. The image can be configured to be superimposed and aligned with the image.
(3) Teach data calculation means: The skeleton positioning means applies the model images that are adjacent to each other on the time axis between the images at a specific time in the series of model images recorded over time. , The skeleton image Each aligned Make an image and its Based on the displacement of the skeleton image, either the displacement data of the skeleton unit of the humanoid robot, the rotation angle data between the skeleton units via the joint mechanism, or the actuator driving amount data for driving the skeleton unit of the humanoid robot. Calculated as robot teaching data.
[0006]
For example, let the model actually perform the action to be taught, record it as a series of images, and align the robot's skeleton image with each of these images, so that a specific time of the model action that changes over time Each time, positioning of the skeleton image with respect to the model image is performed, and the teaching data of the robot is calculated based on the skeletal displacement between adjacent images, for example, adjacent images. Therefore, by sampling the model image at an appropriate time interval, the model movement can be converted into data more faithfully than the conventional method, and as a result, the robot performs a natural and smooth motion based on the data. Can be made. The work content for teaching is easy to understand because the operation of aligning the skeleton image with the model image on the screen of the image display means is easy to understand, and it is necessary to determine the drive amount of the actuator for each part of the robot. This eliminates the teaching man-hours.
[0007]
For example, for a robot that replicates human movements, let the human model perform the movements that are to be taught, record it as a moving picture using a shooting means such as a video camera, and play back the moving picture on the image display means. However, a skeleton image alignment operation may be performed for each frame of the moving image. Here, the size of the recorded model image may vary depending on the size (or body shape) of the selected model. In this case, the length of each skeleton unit of the skeleton image is displayed on the display means. It can be expanded and contracted according to the dimensions of the model image.
[0008]
Here, the time interval of the model image can be changed according to the robot operation to be taught. For example, when video images are played back frame-by-frame, the frames of the images are taken at a certain time interval. However, when teaching a relatively simple model operation, a certain number of frames are thinned out. The time interval between adjacent model images can be increased. As a result, the number of images required for teaching can be reduced and teaching work can be made more efficient. In addition, since the amount of data required for the calculation is reduced, the burden on hardware during operation of the robot is reduced, and the responsiveness of the operation can be improved.
[0009]
next, Humanoid For some robot skeletons , Based on the displacement of the skeleton image respectively input to the model images that move back and forth on the time axis by the teaching data calculation means Of the skeleton unit While calculating teaching data, The teaching data is not calculated Robot skeleton unit, as well as Names of human parts represented by joint mechanisms and skeleton units in the robot skeleton Auxiliary input means can be provided corresponding to the robot part. And by the auxiliary input means, Them robot Skeleton Or robot of The teaching data is individually input from the auxiliary input means to the part. For example, for a robot part (eg movement of wrist, finger, eye, mouth, etc., lighting of a lamp, etc.) where it is difficult or impossible to generate teaching data from the skeleton image aligned with the model image, the auxiliary input means Direct teaching data can be directly input, which enables detailed motion teaching to robot details.
[0010]
Specifically, the skeleton of the robot includes a plurality of skeleton units connected by a joint mechanism, and the skeleton units can be configured to be driven by an actuator provided in the joint mechanism. In this case, a reference posture is set in advance for the model, and reference data including a reference position of each actuator with respect to the skeleton image aligned with the model image of the reference posture is stored in the teaching data calculation means. Reference data storage means can be provided. The teaching data calculation means calculates the spatial displacement of each skeleton unit at each time based on the reference data, and calculates the driving amount of each actuator based on the displacement.
[0011]
Next, the input of the alignment position of the skeleton image with respect to the model image can be performed by designating the positions on the display screen of the display means of the predetermined mark points at both ends on each skeleton unit. As a more specific device configuration for that purpose, for example, the following can be exemplified. That is, a pointing device such as a mouse or a trackball is provided in the skeleton positioning means, and the display means displays a pointer that moves on the screen as the pointing device is operated along with the model image and the skeleton image on the display screen. . Then, when aligning the skeleton image with the model image, the mark point to be aligned is selected, the pointer is aligned with the alignment position set on the model image, and attached to the pointing device. By operating the input unit and designating the alignment position of the mark point, the skeleton unit is aligned at the position corresponding to the mark point after the alignment. In this way, the alignment operation of the skeleton image with respect to the model image can be made more direct and easy to understand.
[0012]
Further, a plurality of skeleton units form a set, and a predetermined constraint condition can be set for the relative positional relationship between the skeleton units included in the set. Then, by specifying the alignment position with respect to the model image for some of the mark points of the skeleton units belonging to the set, the alignment positions of the remaining mark points are determined based on the constraint conditions. Can be configured. In this way, the positioning operation can be simplified and the working time can be shortened, and the effect of preventing the inconvenience of designating a position that cannot be structurally specified for the robot part can be obtained.
[0013]
Here, with respect to the skeleton unit, the order of alignment with respect to the model image can be determined in advance, and the alignment operation can be performed according to the order. In this case, when the alignment operation of a certain skeleton unit is completed, the display state of the skeleton unit to be operated next is changed or blinked, such as changing the color of the mark point of the skeleton unit or blinking. Can be configured.
[0014]
Next, a mechanism for calculating the drive amount of the actuator that drives the skeleton unit from the displacement of the skeleton unit, specifically, the following can be employed. That is, for any one skeleton unit of the skeleton of the robot (hereinafter referred to as the first skeleton unit) and the second skeleton unit coupled to the first skeleton unit via an actuator, the teaching data calculation means includes: At least one of the first skeleton unit and the second skeleton unit is subjected to at least one of rotational movement or translational movement for at least one of the skeleton images that are mutually before and after on the time axis, and the first skeleton unit of both skeleton images Overlap each other. Then, the displacement of the second skeleton unit between both skeleton images is calculated in the superimposed state, and the drive amount of each actuator is calculated based on the calculation result.
[0015]
The teaching data calculation means calculates the three-dimensional position of the skeleton unit based on the image of the skeleton unit displayed two-dimensionally on the image display means and the standard image having a known size. Can be configured.
[0016]
The operation teaching system described above can be provided with teaching data storage means for storing teaching data calculated and generated based on teaching data calculation means, and teaching data editing means for editing the stored teaching data. By using the editing means, it is possible to easily correct, add, or delete the generated teaching data. Also, if the teaching data can be edited according to the type of robot operation and the edit items set for each robot part, even if the robot performs a complex series of actions, By combining edited robot teaching data as needed, the teaching data can be created relatively easily.
.
[0017]
【Example】
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing a configuration example of an operation teaching system of the present invention. The
[0018]
A CRT 14 as an image display means is connected to the display control unit 7. On the other hand, the image capture control unit 6 is connected to a video playback device (VTR) 15 and includes a
[0019]
Further, a graphic simulator (hereinafter simply referred to as a simulator) 151 for performing a robot motion demonstration is connected to the
[0020]
Next, the robot that is the target of motion teaching can be configured as a robot that replicates human movement, for example. This robot has a
Head 20: Each has an
-
Left and right arm portions: each includes a
-Left and right leg portions: each includes an
The types of actuators (pulse motors, servo motors, piston cylinders, etc.) provided in each
[0021]
Some of the skeleton units form a set, and a predetermined constraint condition is set for the relative positional relationship between the skeleton units included in the set. For example, taking the skeleton unit constituting both legs as an example, the
[0022]
Next, each program shown in FIG. 5 is stored in the program storage device 9, read out by the
(1) Movie capture program 90: The image of the model operation reproduced by the
(2) Model image display program 91: The model image of the designated frame is displayed on the CRT 14 based on the moving image data stored in the moving image data storage device 11.
(3) Skeletal image display program 92: Creates image data of a skeleton image corresponding to the robot skeleton 19 (FIG. 3), and displays the
[0023]
(4) Skeletal image alignment program 94: Using the mouse 12, the
(5) Displacement calculation program 96: From the image of each skeleton unit displayed two-dimensionally on the CRT 14, the three-dimensional position of the skeleton unit in the actual space is calculated, and based on this, the time sequence follows. The displacement of each skeleton unit between two images is calculated. The calculation process compares the size of the standard body image obtained by photographing a standard body of known dimensions prepared for each skeleton unit from a predetermined direction and the size of the corresponding skeleton unit on the screen. Is executed. The standard body dimension data is stored in the standard body dimension data storage unit 112 of the program storage device.
(6) Actuator drive amount calculation program 98: The drive amount of each actuator corresponding to the displacement of the skeleton unit is calculated and stored in the teaching
[0024]
(7) Operation time setting program 100: Sets the time on the real time axis of the robot operation to the moving image frame to be used, calculates the driving speed of each actuator from the time interval of adjacent frames, and uses this as teaching data Is stored in the teaching
(8) Auxiliary input program 102: Performs auxiliary input processing of teaching data for a skeleton unit or robot part designated in advance by using the mouse 12 or the
[0025]
(9) Frame correction program 104: The specified frame is changed and corrected (for example, the position of the skeleton unit is changed) in the teaching data input by the skeleton image alignment process. In addition, when the position of any of the skeleton units connected under the above-described constraint conditions is changed, the positions of the other skeleton units are automatically corrected so that the constraint conditions are not violated.
(10) Frame deletion / addition program 105: Deletes the data of the designated frame, and adds / inserts a frame for inputting new teaching data after the designated frame position. (11) Sequential display program 106: The skeleton images of each frame are sequentially displayed on the screen at regular time intervals in time series order. As a result, it is possible to confirm a rough change in the motion of the skeleton image, and it can be used as a simple simulation means for actual robot operation.
(12) Skeletal position fixing setting program 107: A setting for fixing the position of a skeleton unit designated in advance at the time of alignment processing of the
[0026]
(13) Teaching data file editing program 108 (teaching data editing means): Teaching data is divided into files according to preset editing items such as robot operation types and robot parts, and teaching data is given file names. Store / save in the
(14) Simulator activation program 109: The teaching data of the designated robot operation is transferred to the
[0027]
Hereinafter, the flow of processing in the
FIG. 6 shows a rough flow of the entire process, and one of the following processes is selected. At the time of selection, a predetermined selection screen is displayed in a window on the CRT 14, and each processing window is opened by selecting a selection item displayed there using the mouse 12.
(1) Teach input (processing from S1000 to S1100): A skeleton image is superimposed on a model image to create teaching data.
(2) Teach correction (processing from S2000 to S2100): The created teaching data is corrected.
(3) Teaching demonstration (processing from S3000 to S3100): Using the
(4) Termination instruction (processing from S4000 to termination): A process termination instruction is issued.
[0028]
If teaching input is selected, teaching input processing is performed in S1100. Here, prior to teaching input, the teaching operation is performed on a human model, and the
[0029]
FIG. 7 is a flowchart showing the details of the teaching input process of S1100, after setting a part that does not require teaching (for example, a skeleton unit or a part that is hardly involved in the action through the action to be taught) (S1101). As shown in FIG. 18, windows W1 and W2 are respectively displayed (S1102, S1103). Among these, the
-Head 20: H, f1.
-Shoulder 21: A1, H and H, A2.
-Spine 22: G and H. Here, G is adopted as a reference position when the driving amount of the actuator is calculated from the displacement of each skeleton unit.
-Hipbone 23: L1 and L2. G is positioned at the midpoint of the line segment connecting L1 and L2.
The
[0030]
Returning to FIG. 7, in S1104, a process of matching the size of the
[0031]
Here, the input method is to match the end points of the
[0032]
Here, since the
[0033]
Subsequently, in S1105 to S1109, by specifying the frame number of the moving image for aligning the
[0034]
FIG. 11 shows, as an example, the flow of position alignment processing corresponding to both leg portions, and the upper end point L1 (L2) of the
[0035]
Next, returning to FIG. 7 and proceeding to S1110, auxiliary input processing of the spatial position is performed on the skeleton unit or part for which it is difficult or impossible to generate teaching data by the above alignment processing. By using. In this input process, a window different from the alignment process is opened, an image of the corresponding skeleton unit or region is displayed on the window, and various processing commands (for example, skeleton unit) prepared in advance for position setting are displayed. Are input individually for each skeletal unit or region, while selecting and executing the translation, rotation, etc.) by input from the mouse 12 or the
[0036]
This completes the teaching input process for one frame. However, when the process proceeds to the next frame, the frame number is updated, and the
[0037]
In S1200, a process of calculating the drive amount of the actuator that drives the skeleton unit as drive data is performed based on the spatial position coordinates of the end points of the skeleton unit for each frame obtained by the teaching input. That is, as shown in FIG. 12, by designating the numbers of two adjacent frames, the spatial position coordinates of the end points of each skeleton unit are read, and provided between the skeleton units based on the spatial position coordinates. The driving amount of the actuator is calculated (C501 to C503).
[0038]
The calculation method is schematically shown in FIG. For example, as shown in FIG. 20A, when the point G is fixed and the positions of L1 and Lk1 in the preceding frame Np move to L1 ′ and Lk1 ′ in the subsequent frame Ns, the process proceeds to (b). As shown, the angle of G-L1-Lk1 is fixed, the line segment GL1 and the line segment L1Lk1 (the first skeleton unit and the second skeleton unit in the claims) are rotationally moved, and the line segment GL1 is displayed as a line. Overlay the minute GL1 '. Then, by calculating the angle θ formed by the line segment L1Lk1 on the frame Np side and the line segment L1′Lk1 ′ on the frame Ns side from the spatial coordinates of each point after the rotational movement, it is arranged between both skeleton units. The rotation angle of each axis of the actuator can be obtained. If such a rotational movement (in some cases translational movement) of the skeleton unit and a process for obtaining the rotation angle of the second skeleton unit are sequentially performed in the direction from the point G to the end of the skeleton, each joint mechanism is included. The drive amount of the actuator is sequentially calculated.
[0039]
Here, when the skeleton image of the first frame is not a face-to-face pose, each actuator is driven with respect to the first frame based on the reference position of the actuator stored in the reference data storage unit 113 (FIG. 5). What is necessary is just to calculate a position. In the above description, the actuator is composed of a motor, and the first and second skeleton units perform only relative rotational motion by rotation of the motor shaft. In the case of an actuator, relative translational movement may be performed between the skeleton units due to expansion and contraction of the piston. In such a case, the translational movement distance is calculated in addition to the rotation angle of the second skeleton unit. It should be noted that such calculation of the driving amount of the actuator is not necessarily performed at the teaching stage. For example, only the displacement data of the end points of the skeleton unit may be calculated at the teaching stage. Then, the calculation of the drive amount using this can be sequentially performed according to the progress of the operation when the robot is driven, and the result can be sequentially given to the actuator drive control unit of the robot. Further, the displacement data may be calculated using a common model image at a certain reference time and a model image at each time in addition to a mode in which the model images are adjacent to each other.
[0040]
Next, the process proceeds to S1300 in FIG. 6, and 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, the time setting window is opened, the skeleton image data is read in the frame number order, and the time is input while the skeleton images are sequentially displayed in the window (C601 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 or not the driving of all actuators can be completed at that time interval. If it can be completed, the input time and 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 is input again. When the time input process is completed, the window is closed at C612 and the process proceeds to S1400 in FIG.
[0041]
In S1400, the finally obtained teaching data is stored / saved in the teaching
[0042]
Next, when it is desired to correct the teaching data created in this way, the processing after S2000 in FIG. 6 is executed. First, a teaching data file is designated by inputting an operation name in S2100, and the data is read in S2200. Then, the correction process is performed in S2300, and details of the process are shown in FIG. First, the correction input window (same type as the teaching input window shown in FIG. 19 and the like) is opened (C801, C802), and the skeleton image data is read in order from the previous frame, and the skeleton image is displayed in the window. It is drawn (C803, C804). Then, a desired item is selected from a processing menu prepared for correction, such as frame correction, frame deletion, frame addition, and frame sequential display, and processing corresponding to the item is performed. .
[0043]
That is, when the frame correction is selected, the skeleton image of the displayed frame is corrected (for example, changing the overlapping position of the skeleton unit) (C808, C809). In addition, when the frame deletion is selected, the displayed frame is deleted (C810, C811). When the addition of a frame is selected, a new frame is inserted after the displayed frame, and teaching input is performed. The skeleton image is overlaid on the model image by the same operation and processing as the time (C812, C813). Furthermore, when the sequential display of frames is selected, a process of displaying the skeleton images of each frame sequentially on the window at a certain time interval in time series order is performed (C814, C815). When the process is completed, the frame number is updated in C817, the process returns to C805, and the process is repeated. When the process is completed, the window is closed at C818 and the process proceeds to S2400 in FIG. In S2400, the teaching data is recalculated / updated before and after the frame that has been corrected, added, or deleted, and in S2500, this is saved, and the process ends.
[0044]
Next, based on the created teaching data, the
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration example of a teaching system according to the present invention.
FIG. 2 is a block diagram showing a configuration of a graphic simulator.
FIG. 3 is a schematic diagram of a robot skeleton.
FIG. 4 is an explanatory diagram of a constraint condition for a leg portion of a skeleton.
FIG. 5 is an explanatory diagram showing the contents of a program storage device.
FIG. 6 is a flowchart showing the overall processing flow of the teaching system.
FIG. 7 is a flowchart of teaching input processing.
FIG. 8 is a flowchart showing a flow of processing for determining a skeleton unit length in teaching input processing;
FIG. 9 is a flowchart showing the flow of end point alignment processing for each skeleton unit.
FIG. 10 is a flowchart showing the flow of processing for calculating the coordinates of the end points of the skeleton.
FIG. 11 is a flowchart showing the flow of processing for calculating the coordinates of the end points of the skeleton unit that forms the leg portion.
FIG. 12 is a flowchart showing the flow of teaching data calculation.
FIG. 13 is a flowchart showing the flow of time input processing in the same manner.
FIG. 14 is a flowchart showing the flow of teaching data storage processing.
FIG. 15 is a flowchart showing the flow of teaching correction processing.
FIG. 16 is a schematic diagram of a moving image frame.
FIG. 17 is a schematic diagram illustrating an example of an arrangement of frames on a time axis.
FIG. 18 is an explanatory diagram of a skeleton image size matching process for a directly-facing model.
FIG. 19 is an explanatory diagram of a skeleton image alignment process with respect to a model image;
FIG. 20 is an explanatory diagram of a method for calculating the drive amount of an actuator.
[Explanation of symbols]
1 Operation teaching system
5 System controller (Teaching data calculation means)
6 Image capture control unit
7 Display controller
9 Program storage device
10 Teaching data storage device
12 Mouse (skeleton positioning means)
14 CRT (image display means)
19 Robot skeleton
31-37 Joint mechanism
38 Skeletal images
39 Model image
40 pointer
90 Movie import program
91 Model image display program
92 Skeletal image display program
94 Skeletal image alignment program
96 Displacement calculation program
98 Actuator drive amount calculation program
100 Operating time setting program
102 Auxiliary input program
104 frame correction program
105 frame deletion / addition program
106 Sequential display program
108 Skeletal unit fixed setting program
109 Teaching data file editing program
110 Restraint condition storage unit
112 Standard body size data storage
Claims (10)
教示すべきこの人型ロボットの動作に対応するモデルとなる人の動作を経時的に記録した一連のモデル画像と前記ロボットの骨格を線図として表示する画像(以下、骨格画像という)とを合わせ込んで表示する画像表示手段を設け、
その画像表示手段において、人型ロボットの骨格画像の関節機構や骨格単位を、前記モデルとなる人の動作を経時的に記録したモデル画像の内の特定の時刻の画像に対して重ね合わせて位置合わせする骨格位置決め手段と、
この経時的に記録した一連のモデル画像の内の特定の時刻の画像間による時間軸上において、その互いに前後するモデル画像に対し、前記骨格位置決め手段によって、前記骨格画像がそれぞれ位置合わせされた画像を作り、その骨格画像の変位に基づいて、前記人型ロボットの骨格単位の変位データ、関節機構を介した骨格単位の間の回転角度データ又は人型ロボットの骨格単位を駆動するアクチュエータ駆動量データのいずれかを、前記ロボットの教示データとして演算する教示データ演算手段と、
を含み、経時的に記録した一連のモデルとなる人の動きをロボットの教示データとしてデータ化することを特徴とするロボットの動作教示システム。A robot represents a human form by a skeleton of a robot composed of a joint mechanism and a skeleton unit connected to each other by the joint mechanism,
Image to be displayed as a series of model images recorded over time the operation of the person who made a model corresponding to the operation of the humanoid robot should teach the skeleton of the robot as a line diagram (hereinafter, referred to as skeleton image) and the combined an image display means for crowded in view is provided,
In the image display means, the joint mechanism or skeleton unit of the skeleton image of the humanoid robot is superimposed on the image at a specific time in the model image in which the movement of the person who becomes the model is recorded over time. Skeleton positioning means to be matched;
On the time axis by between specific times of the image of the recorded over time with a series of model image, to model images before and after each other, by the skeleton positioning means, an image in which the skeleton image is respectively aligned Based on the displacement of the skeleton image, the displacement data of the skeleton unit of the humanoid robot, the rotation angle data between the skeleton units via the joint mechanism, or the actuator driving amount data for driving the skeleton unit of the humanoid robot Any of the above, teaching data calculation means for calculating as teaching data of the robot,
Only including, over time the robot operation teaching system, characterized in that data of the recorded series of models to become human motion into a robot of the teaching data.
その教示データが算定されないロボットの骨格単位、及び前記ロボット骨格における関節機構や骨格単位によって表される人の各部の名前がつけられたロボット部位に対応して補助入力手段が設けられ、その補助入力手段により、それらロボットの骨格ないしロボットの部位の教示データが個別に入力されている請求項1又は2に記載の動作教示システム。 For a part of the skeleton of the humanoid robot, the skeleton unit is determined based on the displacement of the skeleton image respectively input to the model images that are moved back and forth on the time axis by the teaching data calculation unit. Teaching data is calculated,
Auxiliary input means are provided corresponding to the robot skeleton unit for which the teaching data is not calculated, and the robot part with the name of each part of the person represented by the joint mechanism or skeleton unit in the robot skeleton. 3. The motion teaching system according to claim 1 , wherein teaching data of the robot skeleton or the robot part is individually input by the means.
前記モデルに対して予め基準姿勢が設定され、
前記教示データ演算手段は、
その基準姿勢のモデル画像に位置合わせされた前記骨格画像に対する、前記各アクチュエータの基準位置を含む基準データを記憶する基準データ記憶手段を備え、その基準データに基づいて、各時刻における前記各骨格単位の変位データを算出するものとされる請求項1ないし3のいずれかに記載の動作教示システム。The skeleton of the humanoid robot is composed of a plurality of skeleton units connected by a joint mechanism, and these skeleton units are driven by an actuator provided in the joint mechanism.
A reference posture is set in advance for the model,
The teaching data calculation means includes
Reference data storage means for storing reference data including a reference position of each actuator with respect to the skeleton image aligned with the model image of the reference posture, and based on the reference data, each skeleton unit at each time The motion teaching system according to claim 1 , wherein the displacement data is calculated .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14814995A JP3668289B2 (en) | 1995-05-22 | 1995-05-22 | Robot motion teaching system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14814995A JP3668289B2 (en) | 1995-05-22 | 1995-05-22 | Robot motion teaching system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08314527A JPH08314527A (en) | 1996-11-29 |
JP3668289B2 true JP3668289B2 (en) | 2005-07-06 |
Family
ID=15446364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14814995A Expired - Fee Related JP3668289B2 (en) | 1995-05-22 | 1995-05-22 | Robot motion teaching system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3668289B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220080683A (en) * | 2020-12-07 | 2022-06-14 | 정영규 | Ai skeleton annotation system interface and method for generating posture data for learning |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW384249B (en) * | 1997-08-22 | 2000-03-11 | Sony Corp | Structure describing method for robot, robot device, and constituting component for robot |
JP4765155B2 (en) | 2000-09-28 | 2011-09-07 | ソニー株式会社 | Authoring system, authoring method, and storage medium |
JP5865192B2 (en) * | 2012-06-27 | 2016-02-17 | 株式会社神戸製鋼所 | Teaching data editing system and program |
WO2015117641A1 (en) * | 2014-02-05 | 2015-08-13 | Abb Technology Ltd | A system and method for defining motions of a plurality of robots cooperatively performing a show |
JP2017107503A (en) * | 2015-12-11 | 2017-06-15 | 株式会社リコー | Information processing apparatus, information processing method, program, and system |
JP6295313B1 (en) * | 2016-12-02 | 2018-03-14 | 株式会社ドワンゴ | Information processing apparatus, information processing method, and program |
CN111002289B (en) * | 2019-11-25 | 2021-08-17 | 华中科技大学 | Robot online teaching method, device, terminal device and storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01237703A (en) * | 1988-03-18 | 1989-09-22 | Hitachi Ltd | Robot teaching device |
JPH077304B2 (en) * | 1989-06-16 | 1995-01-30 | 株式会社安川電機 | Robot offline teaching method |
JPH0320870A (en) * | 1989-06-19 | 1991-01-29 | Pfu Ltd | How to register and search image information |
JPH04217480A (en) * | 1990-12-17 | 1992-08-07 | Nippon Telegr & Teleph Corp <Ntt> | Teaching device for motion procedure of robot |
JPH04279979A (en) * | 1990-12-25 | 1992-10-06 | Kongouzen Souhonzan Shiyourinji | Motion analyzing method |
JPH05305590A (en) * | 1992-04-30 | 1993-11-19 | Mitsubishi Heavy Ind Ltd | Robot teaching device |
JP3132156B2 (en) * | 1992-05-22 | 2001-02-05 | 本田技研工業株式会社 | Gait generator for legged mobile robot |
-
1995
- 1995-05-22 JP JP14814995A patent/JP3668289B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220080683A (en) * | 2020-12-07 | 2022-06-14 | 정영규 | Ai skeleton annotation system interface and method for generating posture data for learning |
KR102680661B1 (en) * | 2020-12-07 | 2024-07-03 | 정영규 | Ai skeleton annotation system interface and method for generating posture data for learning |
Also Published As
Publication number | Publication date |
---|---|
JPH08314527A (en) | 1996-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5692117A (en) | Method and apparatus for producing animated drawings and in-between drawings | |
US7561160B2 (en) | Data editing program, data editing method, data editing apparatus and storage medium | |
EP2043049A2 (en) | Facial animation using motion capture data | |
EP1435280B1 (en) | A method and a system for programming an industrial robot | |
JP3668289B2 (en) | Robot motion teaching system | |
US20160328887A1 (en) | Systems and methods for providing assistance for manipulating objects using virtual proxies and virtual replicas | |
EP0827115B1 (en) | Animation control apparatus and method | |
Kuroki et al. | Motion creating system for a small biped entertainment robot | |
US20050280644A1 (en) | Image processing method, image processing apparatus, image processing program, and storage medium | |
JP2008030136A (en) | Apparatus and method for compiling action of robot, as well as computer/program | |
JP4039595B2 (en) | Robot system | |
EP1329852A1 (en) | Video information producing device | |
JP2820639B2 (en) | Robot control method and robot system | |
JP3995348B2 (en) | Robot system | |
JP2001067488A (en) | Image processor and method for image processing, and storage medium | |
JPH10340354A (en) | Action generator, action control method and storage medium stored with program for executing the same | |
JP3672723B2 (en) | Person CG production method | |
JPS62269205A (en) | Off-line teaching system for robot | |
CN110782533B (en) | System for virtual role interaction control in virtual previewing | |
CN116503522A (en) | Interactive picture rendering method, device, equipment, storage medium and program product | |
JPH06274577A (en) | Information processor with operating history output function | |
JPH0741569B2 (en) | Object motion control system | |
CN100361074C (en) | Visualized 3D graphics control programming method | |
JPH0844908A (en) | Three-dimensional image processing device and three-dimensional image processing method | |
JP2010253640A (en) | Posture data input device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040618 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040802 |
|
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: 20050315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050408 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080415 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100415 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100415 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110415 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120415 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120415 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130415 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130415 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |