JPH04352203A - 視覚を用いた自動把持装置の制御方法及び制御装置 - Google Patents

視覚を用いた自動把持装置の制御方法及び制御装置

Info

Publication number
JPH04352203A
JPH04352203A JP12717391A JP12717391A JPH04352203A JP H04352203 A JPH04352203 A JP H04352203A JP 12717391 A JP12717391 A JP 12717391A JP 12717391 A JP12717391 A JP 12717391A JP H04352203 A JPH04352203 A JP H04352203A
Authority
JP
Japan
Prior art keywords
instruction
image processing
gripping
command
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP12717391A
Other languages
English (en)
Other versions
JP2834597B2 (ja
Inventor
Katsumi Ishihara
石原勝己
Yusaku Azuma
雄策 我妻
Youzou Touhou
東方 容三
Masaru Shibata
優 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP3127173A priority Critical patent/JP2834597B2/ja
Publication of JPH04352203A publication Critical patent/JPH04352203A/ja
Application granted granted Critical
Publication of JP2834597B2 publication Critical patent/JP2834597B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Control Of Position Or Direction (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、把持対象のワークの画
像からそのワークの把持位置を認識し、その上で該ワー
クを把持する自動把持装置を制御するための制御方法及
び制御装置に関する。
【0002】
【従来の技術】自動組立装置の制御において手間がかか
る作業はワーク等の位置座標のテイーチングである。ロ
ボットはテイーチングされた位置にしかハンドやフィン
ガーを移動できないために、そのテイーチング位置が不
正確であったり、誤ったりしていると、組立動作を失敗
したり、ハンドやフィンガーを破壊してしまったりする
【0003】そこで、昨今、視覚センサ(例えば、CC
Dカメラ)を備えた自動組立装置が提案されている。こ
のような自動組立装置の例として、例えば、特開昭60
−56884号、特開昭60−123974号、特開昭
62−140724号等がある。また、本出願人からの
提案された技術として、特願平1−71895号、2−
55032号がある。これらは、視覚センサによりワー
クの画像を取り込み、この画像から画像処理によりワー
ク位置をロボット座標系に変換して、このロボット座標
系のワーク位置に基づいて組立作業を行なうものである
【0004】このような従来の視覚センサを備えた自動
組立装置は、ロボツト・ハンド等の動作を制御するロボ
ツト制御装置と、CCDカメラの画像を入力し処理する
画像処理装置とを有し、さらに、これらを例えばRS2
32C等のケーブルで電気的に結合させ、各々の両方の
制御装置に通信可能とするインターフエース及び通信プ
ログラムを準備するのが普通である。
【0005】そして、ロボツト制御装置内には、一連の
ロボツトの動作プログラムをあらかじめ入力する。この
プログラムには、前記インターフエース及びケーブルを
通して、画像処理装置に対して情報を送つたり受けたり
する命令を用いる。同様に、画像処理装置内にも、ワー
クの画像入力から、その画像から認識処理を行なう一連
のプログラムと、その一連のプログラム内に、上記のロ
ボット制御装置との間でその通信手段を通して情報の授
受を行なわせる命令を準備しておくように構成する。
【0006】
【発明が解決しようとしている課題】しかしながら、上
記従来例では、上述したように、それぞれ独立で動作可
能な、画像処理装置とロボツトの制御装置とを準備し、
それぞれを通信手段で連結して連係させて、一連の組立
動作を行なわせるようにするため、次のような欠点があ
つた。 ■:画像処理装置とロボツト制御装置のそれぞれに、一
連の動作又は処理を行なわせる命令を解釈するためのコ
ンピユータ等の解釈実行手段と、それらのプログラムと
を別個に準備する必要があり、コストUPとなる。 ■:■のように、CPUを別個に準備した場合、一連の
組付動作が約2秒で行なわれるのに、そのなかで画像処
理に必要な時間が0.3秒程度であり、画像処理装置内
のCPUは大部分の時間は何ら仕事を行なわないことに
なる。
【0007】■:上記2つの制御装置をごく一般的なR
S232Cでつなぐと、通信に時間がかかり、組付時間
がなんら価値を生まない通信により伸びてしまう。 ■:2つの命令解釈のためのCPUが必要であるという
ことは、2つの動作命令解釈プログラムを準備しなけれ
ばならず、それらのプログラムメンテナンス等に時間が
かかる。 ■:2つの制御装置の各々に、キーボード,CRT等の
入出力手段を準備する必要があり、かつ、それぞれをサ
ポートするプログラム及びインターフエースを準備する
必要があり、コストUPとなる。 ■:画像処理装置側のCPUは、ロボツト制御装置から
来る処理の開始指令を常に待つ動作をさせておく必要が
ある。
【0008】これらの問題は、全て、画像処理と把持と
いう異なる性質の制御プログラムを別々に実行している
からに他ならない。
【0009】本発明は上記従来技術の問題点に鑑みて提
案されたものであり、その目的は、画像処理部に対する
処理命令とロボツト及びハンド等における把持動作命令
とを解釈し、これらの画像処理部及び把持部に命令を発
行する命令解釈手段を1つにすることにより、画像処理
プログラムと把持動作プログラムの解釈を一元化した自
動把持装置を制御するための制御方法及び制御装置を提
供するものである。
【0010】
【課題を解決するための手段】上記課題を達成するため
の本発明の、視覚を用いた自動把持装置の制御装置は、
ワークの画像を撮像し、この画像から前記ワークの位置
情報を算出する画像処理部と、前記ワークを前記位置情
報に基づいて把持する把持部とからなる自動把持装置を
制御する制御装置であって、前記ワークを撮像しそのワ
ークの画像から位置情報を算出する一連の画像処理命令
とこのワークを前記位置情報に基づいて把持する一連の
把持動作命令とを含むプログラムを記憶する記憶部と、
このプログラム中の前記画像処理命令と把持動作命令と
を識別して解釈すると共に、前記画像処理命令と把持動
作命令とを夫々対応する中間命令コードに変換し、変換
された命令コードを夫々前記画像処理部及び把持部に渡
すための1つの解釈部とを具備したことを特徴とする。
【0011】上記課題を達成するための本発明の、視覚
を用いた自動把持装置の制御方法は、ワークの画像を撮
像し、この画像から前記ワークの位置情報を算出する画
像処理部と、前記ワークを前記位置情報に基づいて把持
する把持部とからなる自動把持装置を制御する制御方法
であって、前記ワークを撮像しそのワークの画像から位
置情報を算出する一連の画像処理命令とこのワークを前
記位置情報に基づいて把持する一連の把持動作命令とを
含むプログラムを、前記画像処理命令と把持動作命令と
を識別して解釈し、前記画像処理命令と把持動作命令と
を、夫々対応する中間命令コードに変換し、変換された
命令コードを夫々前記画像処理部及び把持部に渡すこと
を特徴とする。
【0012】
【実施例】以下添付図面を参照しながら本発明の実施例
を詳細に説明する。この実施例は、本発明を、所謂シャ
トル式の自動組立装置の制御装置に適用したものである
。 〈全体構成〉図1はこの実施例のロボット組立装置とそ
の制御装置からなるシステムの斜視図である。このシス
テムは、大きくは、部品供給装置11,12と、組立を
行なうシャトル式のロボット6と、自動組立制御装置1
7とからなる。
【0013】9はロボット6を搭載するシヤトルである
。シヤトル9はシヤトル移動用モータ6eにより、ガイ
ド16a,16b上を一方向に移動可能となつている。 15はシヤトルベースであり、本実施例では床に固定さ
れ、上面にガイドレール16a,16bが平行な状態で
ボルト等にて取付けられている。
【0014】シヤトル9は制御装置17により、あらか
じめ教示された位置へ移動停止するように制御される。 また、シヤトルベース15には、パレツト等に収納され
た組立てる為の物品を供給する為の部品供給装置11,
12が取り付けられている。本実施例のシステムでは、
異なる2つの部品が供給可能な2つの第1の部品供給装
置11と第2の部品供給装置12が設けられている。そ
れぞれの供給装置は、複数のパレツト13a,13bを
収納可能であると共に、夫々の供給制御部14,21が
パレツト内の部品が空になるとその空のパレットを部品
を収納した新たなパレツトと交換するように供給装置1
1,12を制御する。
【0015】組付用のロボツト6はシヤトル9上に固定
されているものの、部品供給装置11,12から部品を
取れるように、そのパレツト13a,13bの位置まで
16a,16bのガイドレールに沿つて移動する。
【0016】本実施例のロボツトは、いわゆる水平多関
節の4自由度をもつたもので、モータ6a,6bにより
水平の2本のアームが駆動され、モータ6cによりアー
ム先端部が昇降し、モータ6dにより前記アーム先端部
が回転させられる。なお、ロボツト6の手首部にはハン
ド7が取りつけられており、3つのモータ22a,22
b,22cによりフィンガーが駆動され、部品を把持す
ることが可能である。なお、前記6a,6b,6c,6
d,6e,22a,22b,22cのモータは制御装置
17によりあらかじめ記憶されている動作に従つて動作
するものである。
【0017】図1におけるロボツト6の位置は部品供給
装置11上のパレツト13a上の部品をつかむことが可
能な位置にある。ハンドの脱着部7aは、制御装置17
の指令により不図示のクランパーを解放することにより
外れる。ハンドの保持台10は複数のハンドを保持して
おくためのものである。ロボツト6は、保持台10上の
任意のハンドを制御装置17の指令により自動で付ける
ことも可能であり、かつ、現在手首部に取り付いている
ハンドをハンド保持台10に外して乗せることも可能で
ある。また、組付ステージ8はロボツト6がつかんだ部
品を組立てる場所であって、必要に応じてガイド,補助
機能を付けることが可能である。この補助機能の動作が
必要な場合は、組付ステージ8上に駆動源を置き、この
駆動源を制御装置17とケーブルでつなぐことにより制
御可能となる。また、組付ステージ8はロボツト6と同
じくシヤトル9上に乗つているために、ロボツト6がパ
レツトより部品をつかんで、わずかに上昇した後は、シ
ヤトル9が移動を開始しても、ロボツトの組付動作を続
行することが可能である。
【0018】5は視覚柱であり、その根元はシヤトル9
上に固定されている。先端部にはXYテーブル3が設け
られている。XYテーブル3の固定部にはレンズ1が取
り付けられている。CCDカメラ2は、XY2方向のス
テツピングモータ4a,4bにより移動可能となってい
る。即ち、レンズ1は1つのパレットの全領域を視野に
入れているが、CCDカメラ2を移動することにより、
パレットの任意の部分領域を高精度に画像情報として取
り込むことが可能である。つまり、13bのパレツト全
面をレンズ1を通して結像させた面内を結像面積より十
分小さなCCDに移動させ、13bのパレツトの入力さ
せたい場所のみの画像情報を取り込むようにしている。
【0019】視覚柱5はシヤトル9上に搭載されている
ために、組付けたい部品を収納した供給装置へシヤトル
と共に移動される。ピツクする部品を収納しているパレ
ットの画像は、その画像を入力可能な位置にCCDカメ
ラ2(即ちシャトル9)を移動させることで得ることが
でき、その画像を処理して、その処理結果に応じてロボ
ツトにより前記画像処理した部品を把持できる。
【0020】組立装置全体の制御をする自動組立制御装
置17はケーブル18にてロボツト6,シヤトル9,X
Yテーブル3,ハンド7等のアクチユエータの制御及び
不図示のセンサーの入力等が可能となつている。19は
CRTで、20はキーボードで入出力が可能となる。
【0021】〈実施例装置の特徴〉この実施例システム
に特有の機能は、主に、後述の制御装置17により実現
される。そのような機能とは: ■:組み付け対象(把持対象)の部品を、パレット内で
特定し認識するために、パレット内の部品の画像を取り
込んで、パターンマツチングを行なう。この認識により
、パレット内にどのように部品が収納されていても、部
品の認識が可能となる。 ■:パターンマツチングにより、目的とする部品の存在
がパレット内に認識できると、その部品の位置を視覚系
の座標系で認識し、更に、ロボット系の座標系に変換す
る。ロボットは、ロボット系の座標系での把持位置で目
的部品を把持することができる。
【0022】■:目的の部品を認識する処理を記述する
画像処理プログラムと、認識された部品を把持し移動す
る制御を記述する組み付けプログラムとは、後述の命令
解釈部87内のRAM52に中間コードに変換されて記
憶されている。これらの2つのプログラムは、マルチタ
スク制御により実行される。 ■:画像処理プログラム(タスク)は、組み付けプログ
ラム内に含まれる特別なタスク起動命令により起動され
る。起動された画像処理プログラムは組み付けプログラ
ムと並列処理される。
【0023】■:中間コードにあらかじめ変換されてい
る画像処理プログラムと、組み付けプログラムは同じ命
令解釈部により解釈され、それらに含まれる種々の命令
は、命令コードに変換される。命令コードに変換するこ
とにより、画像処理プログラム中の命令と組み付けプロ
グラムのそれとの性質上の相違を吸収し、画像処理プロ
グラムと組み付けプログラムとの一元管理が容易になる
。 ■:画像処理プログラムの命令コードは、後述のデユア
ルポートRAMに記憶される。また、組み付けプログラ
ムの命令コードは後述の共有メモリ60に記憶される。 デユアルポートRAMの使用により、画像処理部のマイ
クロコンピユータと動作制御部におけるマイクロコンピ
ユータとを夫々の目的に適したものから選択することが
可能となる。
【0024】以下、制御装置17の構成及びそこにおけ
る動作について説明する。 〈制御装置17の構成〉図2は制御装置17の全体構成
図である。この制御装置17は、ロボット6の4軸のモ
ータ(6a乃至6d)とシャトル9のモータ6eを駆動
制御するロボット動作制御部62と、ハンド7の3軸の
モータ(22a乃至22c)を駆動制御するハンド動作
制御部63と、XYテーブルの駆動モータ4a,4bを
制御すると共にカメラ2を制御する画像処理部64と、
2つの供給装置11,12の制御部14,21とのイン
ターフェースを司どるインターフェース54と、ロボッ
トプログラムの命令の解釈実行を行なう命令解釈部87
と、上記ロボット動作制御部62,,ハンド動作制御部
63,画像処理部64,命令解釈部87間で共有される
共有メモリ60とを有する。これらの構成要素はシステ
ムバス59に接続されており、本実施例では、このバス
59はマルチバスである。
【0025】命令解釈部87 命令解釈部87について図2により説明する。50はC
PUで、51はROMである。このROM51内には、
図5に示すように、ロボット言語命令の解釈プログラム
と、この命令解釈プログラム中の視覚処理命令とロボツ
ト及びハンドの動作命令の夫々を必要に応じて解釈する
マルチタスク・オペレーテイング・システム(以下、「
OS」と略す)と、それらをサポートする種々のプログ
ラムがあらかじめ記憶されている。これらのプログラム
の詳細については後述する。
【0026】命令解釈部87のRAM52内にはキーボ
ード20により入力されたところの、画像処理プログラ
ム及びロボツト/ハンドのための動作プログラムが収納
されている。
【0027】命令解釈部87内の各要素はローカルバス
86により接続されている。即ち、ローカルバス86に
はROM51とRAM52とインターフエースIF53
が結合されている。RAM52内のデータは、CRT1
9に表示することが可能であり、キーボード20により
入力することも削除等することも可能である。また、本
システムの実際の動作の指令はキーボード20により行
なう。
【0028】62,63はロボツト及びハンドのための
動作制御部である。これらの制御部62,63は、共有
メモリ60内に、ロボツト動作及びハンド動作に対応す
る命令コードが書かれると、その命令コードに従つた動
作処理を行ない、各デバイスつまり各モータ6a〜6e
の回転・停止を行なう。前述したように、上記命令コー
ドは、命令解釈部87がこの共有メモリ60に書込む。
【0029】画像処理部64は部品を認識するための画
像処理を行なう部分で、IF61に書き込まれた命令コ
ードにより処理を行なう。69は公知の磁気式の外部記
憶手段であり、たとえばフロツピーデイスクドライブ又
はハードデイスクドライブであり、IF53を通し、ロ
ボツト・ハンドの動作命令画像の処理命令をキーボード
20を操作することにより記憶させることが可能となつ
ている。
【0030】また、外部のコンピユータ等で記憶させて
あるフロツピーデイスク又はすでに記憶してあるフロツ
ピーデイスクをもつて来ることにより、RAM52内に
処理命令,動作命令をそれぞれのきめられた領域に格納
することも可能である。
【0031】部品供給装置の制御部14,21は、光通
信回路56a,56bをもち、シヤトル9上の光通信回
路55a,55bと情報の授受が可能となつている。こ
れらの光通信回路はそれぞれ発光手段と受光手段を持ち
、それぞれ発光と受光が対向し、ロボツト6が所定の供
給装置の位置で停止したとき、通信可能となる。
【0032】インターフェースIF57は外部のコンピ
ユータ等との通信するためのインターフエースであり、
本組立装置内の情報を外部へ送つたり、外部からの情報
の入力を行なう。たとえば、無人倉庫を管理するコンピ
ユータと通信することで、パレツトの自動配送のタイミ
ングを算出することも可能である。59はCPU50と
62のロボツト動作部63ハンド動作部61のIF61
と共有メモリ60を結ぶコモンバスであって、本実施例
ではマルチバスである。
【0033】解釈部87のCPU50で解釈実行され生
成された命令コードは共有メモリ60にセツトされる。 これらの命令コードをロボツト動作制御部62又はハン
ド動作制御部63が受ける。制御部62,63において
実際の動作を行ない動作が終了すると、共有メモリ60
上へ前記制御部が動作の終了信号を書き込む。
【0034】また、CPU50で解釈実行された命令が
画像処理に関連する命令である場合、その命令コードは
IF61内に設けられたツー・ポートRAM(2−PO
RT−RAM)内に書かれ、前述の組み付け動作命令と
同様に、画像処理が終了すると処理結果の通信が必要な
ときは、処理結果と処理の終了信号を同じく、前記IF
61内のツー・ポートRAM上に書き込む。
【0035】画像処理部64 図3は画像処理部64の詳細の構成図である。65は画
像処理部全体の制御を行なうCPUである。ツー・ポー
ト・RAM61では、制御装置17の他の要素とのデー
タのやりとりが可能なように、図2のバス59と図3の
バス72とが両方向から接続されて、その両方向から読
み書きが可能である。
【0036】CPU50とCPU65のバス間にツー・
ポートRAM61を設けることにより、CPU50とC
PU65のCPUの種類を異ならせることが可能となる
。尚、図2の共有メモリ60で通信可能であったように
、CPU65とCPU50の形式を同等にしても何ら問
題はない。また、図2のロボツト動作制御部62,ハン
ド動作制御部63と命令解釈部87とのデータの授受も
、画像処理部64と同様にツー・ポート・RAM61を
インターフエースとして設けることにより通信を行なわ
せても何ら問題はない。
【0037】画像処理部64において、2は画像を取り
込むためのカメラで、本実施例においてはX−Yテーブ
ルにそのレンズが固定されている。XYテーブル3はC
CDを撮像面内で移動させることにより、パレツトの必
要な場所の画像情報を取り込むようにすることができる
。カメラ2が取った画像信号は、A/D変換部73によ
り明るさのレベルでデジタル化され、フレームメモリ7
5内に記憶される。
【0038】図4は部品供給装置における部品収納に用
いられるパレットの外観を示す。同図に示すように、パ
レット内では部品が分割されたセル内に納められている
。部品は、パレットのセル位置情報により特定される。 本組立装置は、画像処理で部品の正確な位置を認識する
ので、あらかじめ部品をパレット内に正確に固定する必
要はない。また、パレットのセルも正確な寸法を有する
必要もない。必要とする部品を収納しているセルの凡そ
の位置が分れば十分である。即ち、必要とする部品のセ
ル位置がロボットプログラムにおいて特定されれば、そ
のセル位置周辺の画像に対して画像処理を行ない、その
セル内において、要求部品の正確な位置をパターン認識
で求める。
【0039】CCDカメラ2の視野をパレット全体をカ
バーするほどの大きさに設定したならば、コスト増加を
甘受してCCD素子を大きいものにするか、あるいは解
像度の劣化を甘受して小さなCCD素子によりパレット
全体を視野に入れるようにしなければならない。そこで
、本実施例では、カメラ2を移動式にし、パレットの画
像の必要部分のみを取出すようにしている。そこで、カ
メラ2にはXYテーブル駆動部76が設けられている。 この駆動部76は、XYテーブルの2つのステツピング
モータ4a,4bを回転駆動させ、カメラを所定の位置
へ移動させる。領域設定部74は、カメラ2で画像を取
り込む際に、CCDの全域の画像情報を取り込む必要が
ないときに領域を限定する機能を有する。組立機におい
て、組付部品の形状及び大きさは、あらかじめわかつて
いるため、1つの部品の画像情報のみを取り込みたい場
合には、画像の処理命令内に領域を限定する処理命令を
プログラムしておく。
【0040】二値化部66は、フレームメモリ75に格
納されている画像情報を処理命令であらかじめ指定され
た明るさのレベルを基準にして、たとえば明るいものを
“1”、暗いものを“0”として二値化する。二値画像
は、再度、フレームメモリ75に格納する。
【0041】ラベリング部67はラベリングを行なう。 このラベリング処理は、二値化された画像情報中に、た
とえば、連結しているドットの塊グループ、つまり“1
”の塊のグループを見つけ、それぞれのグループに各々
異なつたラベルを付ける。
【0042】ラベリングされた連結領域の各々に対して
、たとえば重心位置面積,慣性主軸を算出するのが特徴
パラメータ算出部68である。算出部68で算出された
あるワークの画像の特徴パラメータと、ツー・ポート・
RAM61内に格納されている基準特徴パラメータとを
比較することにより、その画像が指定された部品の画像
であるかどうかを判別する。その画像の部品が指定され
た部品であると判定された場合には、その部品の視覚座
標系における位置と傾きを求め、ツー・ポート・RAM
61内にあらかじめ格納されているロボツト座標系への
変換パラメータを用いて、ロボツト座標系へ変換し、ツ
ー・ポート・RAM61上へ位置データとして格納する
。ロボツトの動作命令中、該位置データが必要なときは
、位置データを読み、その結果で動作する動作命令を実
行することにより画像処理部が算出した位置情報でパレ
ツト内の部品をつかみ、組付を行なえる。また、ツー・
ポート・RAM61内に格納されている特徴パラメータ
及び座標変換のパラメータは、図2のRAM52のバツ
テリーバツクUPされているところに記憶されており、
本制御装置の電源を入れると自動的にツー・ポート・R
AM61上にも記憶されるよう、構成されている。
【0043】図3において、ROM71は、画像の一連
の処理を行なわせるプログラムをあらかじめ記憶してい
る。 〈プログラム構造〉図5は、図2に関連して説明した命
令解釈部87のローカルメモリ用ROM51に格納され
たプログラムの格納状況を示す。
【0044】ROM51には、電源立ち上げ時に先つ実
行される起動プログラム100と、複数のタスクの管理
・実行を行なうマルチタスクOS101と、プログラム
を作成するためのテキストエデイタ102と、作成され
たテキストプログラムを解釈可能な中間コードに変換す
るためのコンパイラ103と、コンパイラ103により
変換された中間コードを解釈し、下位の制御部(ロボッ
ト動作制御部62,ハンド動作制御部63,画像処理部
64)のための命令コード(図13〜図15)を発生す
る命令解釈プログラム104と、キーボード,CRT等
の入出力装置の入出力を制御するIFドライバプログラ
ム105と、ロボツトの動作状態、作成した組付動作プ
ログラム等のロボツトタスクの状態を表示するためのロ
ボツトタスク表示プログラム106と、画像処理部64
の動作状態、作成したビジヨン動作プログラム等のビジ
ヨンタスクの状態を表示するビジヨンタスク表示プログ
ラム107とが格納されている。
【0045】図6は命令解釈部87のローカルメモリ用
RAM52におけるデータの格納状況を示す図である。 このRAM52には、ロボツトの組付動作のための一連
の動作命令群からなる組付動作プログラム108(図9
,図10)と、画像処理部の処理動作のための一連の処
理動作命令群からなるビジヨン動作プログラム109(
図11)と、XYステージの目標位置データ110と、
シヤトルの目標位置データ111と、ロボツトを位置決
めするための目標位置データ112と、組付されるワー
クの特徴を示す基準特徴パラメータ113と、座標変換
パラメータ114とが格納されている。このパラメータ
114はロボツト座標系からXYステージ座標系の座標
変換演算に用いる演算パラメータと、XYステージ座標
系からロボツト座標系への同様の演算パラメータである
。RAM52は揮発性であるが、それに格納されている
データ類は重要であるので、後述するように、バツテリ
ー・バツクアツプされている。
【0046】〈ロボットプログラム〉図7,図8は、図
1の組立システムにおける、部品供給部11,12から
2つの部品供給を受けてワークを組立てる組立動作の過
程を表わす図である。即ち、図7は、ロボット6が第1
の部品供給部11のパレツト13aに収納された部品A
をアクセス可能となるような位置に、シヤトル9が停止
した状態を示す。図8は、ロボット6が部品Aの組立に
続いて把持される部品B(この部品Bは部品供給部12
のパレツト13bに収納されている)をアクセス可能と
なるような位置に、シヤトル9が停止した状態を示して
いる。
【0047】図7、特に図8を見ても分るように、ロボ
ット6が部品Aを組み付けている動作を行なっている最
中は、カメラ2がワークBを収納しているパレット13
bの上空にある限りは、部品Aの組み付け動作と部品B
の撮像動作とは並行で行なうことができる。この組み付
け動作処理と撮像動作(画像処理)の並列性故に、図6
で示したように、組み付け動作プログラムとビジョン動
作プログラムとをタスク化することの意義がある。
【0048】図9は部品Aを組立てる一連のロボツト動
作命令群(プログラム)であり、図10は部品Bを組立
てる一連のロボツト動作命令群(プログラム)であり、
図11は部品Bの画像を画像処理して位置情報を算出す
る一連の画像処理命令群(プログラム)である。
【0049】尚、図9乃至図11には、部品Aの画像を
画像処理して位置情報を算出するためのプログラムは示
されていない。また、ワークを完成するために、更に、
例えば部品Cが必要であるものであるならば、その部品
Cの画像を画像処理して位置情報を算出する一連の画像
処理命令群(プログラム)と、部品Cを組立てる一連の
ロボツト動作命令群(プログラム)とが、図9乃至図1
1のプログラムに追加して必要となる。また、便宜上、
図9のプログラムをプログラム1と、図10のプログラ
ムをプログラム2と、図11のプログラムを画像のプロ
グラム2と呼ぶ。
【0050】図9乃至図11のプログラムは図7,図8
の動作を記述している。部品Aを組立て、次に部品Bを
組み付ける組立動作を行なうには、先ず、プログラム1
(図9)が前もって起動されてている必要がある。プロ
グラム1が実行されていて、プログラム1自身がプログ
ラム2を起動する。プログラム1によるプログラム2の
起動は、行番390の CALL  2 で行なって、プログラム2をコールすることによりなさ
れる。また、部品Bの組立が終了して部品Cの組立動作
を起動するには、行番250の CALL  3 を実行して、プログラム3(不図示)をコールすること
によりなされる。部品Aの組立動作中に、部品Bの画像
の取得及びその画像処理が可能となったときは、行番3
60で、 START  3,2 を実行して、プログラム3(図11)をマルチタスク制
御の下でコールする。上記START指令において、最
初のオペランドは画像用のタスク番号であり、次のオペ
ランドは画像のプログラム番号である。即ち、プログラ
ム1とプログラム3とは並列動作する。部品Bの組立動
作中に、部品Cの画像の取得及びその画像処理が可能と
なったときは、行番220で、 START  3,3 を実行して、ロボットプログラム2と画像のプログラム
3とを並列動作させる。尚、並列処理の起動命令である
START指令において、最初のオペランドはタスク番
号(画像に対しては、3が与えられている)であり、次
のオペランドはプログラム番号である。プログラム3の
3番目のプロシジャ(プログラム)は不図示ではあるが
、部品Cが特殊な形状を有するものではないために、即
ち、形状に即した特別な画像処理を要するものではない
ために、図11のプログラムと同じものを援用できる。
【0051】図9乃至図11のプログラム中における各
ステートメントの命令の意味は、後述する。 〈並列処理〉図7,図8に示すように、本実施例のロボ
ットシステムにおける、組立動作と画像処理とは並列動
作が可能である。また、図9乃至図11に示したように
、これらの動作を記述するプログラムも並列処理を意識
したものである。そこで、以下に、この並列処理を実現
するために、制御装置17の特徴ある制御について説明
する。これらの特徴とは、図12に示すように、■:所
謂ロボットプログラム(図9乃至図11のプログラム)
を解釈するのは、命令解釈部87の命令解釈プログラム
104(図5)が行ない、 ■:上記プログラム104は、プログラム中の命令(ス
テートメント)を、組立動作に関するもの(ロボット動
作制御部62若しくはハンド動作制御部63)か、画像
処理に関連するもの(画像処理部64のためのもの)か
を判別し、夫々、対応する命令コードを生成する。
【0052】■:組立動作に関する命令から生成された
命令コードは共有メモリ60に書込まれ、画像処理に関
連する命令から生成された命令コードはツー・ポート・
RAM61に書込まれる。 ■:ロボット動作制御部62またはハンド動作制御部6
3は、共有メモリ60内に書込まれた命令コードを実行
する。また、画像処理部64のCPU65は、ツー・ポ
ート・RAM61に書込まれた命令コードを実行する。 図13乃至図15は、上記命令コードのメモリ格納形式
の一例を示す図である。
【0053】命令コード 図13は命令コードの一般的な格納形式を示す図である
。図13の格納形式は、次の命令が格納されているメモ
リ番地を示す「次命令格納番地ポインタ」200と、命
令の種類を示す「Pコード」201と、命令を補足する
ためのパラメータの型(例えば、直接の数字であるか、
変数であるか、実数であるか、整数であるかの区別)を
示すデータタイプ202Aと、そのパラメータのデータ
部分203Aと、データの終りを示すデリミツタ204
Aと、命令コードの終りを示すと共に内容の誤りを検出
するためのチエツクサム205、という順で格納されて
いる。
【0054】命令には、命令コード中にパラメータを必
要としないものもある。かかる命令の命令コードは、図
14に示す様に、Pコード201の後に、命令の終りを
示すチエツクサム205が格納されている。
【0055】また、命令コード中にパラメータが複数組
必要である命令の場合には、図15に示す様に、Pコー
ド201の後に、データタイプ202,データ203,
デリミツト204からなる組が必要な組数だけ格納され
た後に、チエツクサム205が格納されている。
【0056】この様に、命令ステートメントを、命令の
種類(Pコード201)とパラメータとからなる命令コ
ード(中間コード)に構成し直し、メモリ中に格納する
事により、組付動作プログラム108とビジヨン動作プ
ログラム109を同一形式で格納する事が可能である。 また、組付動作プログラム108とビジヨン動作プログ
ラム109との命令のいずれも同一形式の命令コードに
変換されるということは、それらを格納するためのメモ
リを共通化することができることを意味する。即ち、具
体的には、画像処理部64のための命令コードの格納用
メモリであるツー・ポート・RAM61の代りに、画像
処理部のための命令コードを共有メモリ60に格納する
ことも可能であることを意味する。本実施例で、共有メ
モリ60の他にツー・ポート・RAM61を用いた理由
は、メモリを一本化したことによるそのメモリへのアク
セス競合を避けることと、ツー・ポート・RAM61が
異なる2方向から同時にアクセスされることによる高速
度処理が可能なこと、そして、組み付け動作と画像処理
とが容易に並列処理化できること、更に、画像処理部6
4のCPUに、命令解釈部87のCPUとは異なるアー
キテクチャのCPUを使うことができることである。
【0057】〈並列処理のための制御〉図16は、本シ
ステムにおける並列処理を制御するためのプログラム間
の構造を説明する図である。組付動作プログラム108
を解釈する一連の手続きを「ロボツトタスク」と呼び、
組付動作プログラム108の解釈を開始する事を「ロボ
ツトタスクを起動する」と呼ぶ。同様に、ビジヨン動作
プログラム109を解釈する一連の手続きを「ビジヨン
タスク」と呼び、ビジヨン動作プログラム109の解釈
を開始する事を「ビジョンタスクを起動する」と呼ぶ。 ビジョンタスクを起動することは、前述のSTART指
令で行なわれる。本組立システムでは、組立工程の最中
に補助的に画像処理を行なうという手順を踏んでいるた
めに、組立プログラム中にビジョンタスクを起動するS
TARTステートメントが記述されることとなる。これ
により、ロボットタスクとビジョンタスクの競合調停が
容易になる。そして、更に、ロボットタスクの起動は、
制御装置17のキーボード20からのスタートキーの入
力があった時点でなされる。
【0058】ロボットタスクにおいて解釈されたロボッ
ト命令は命令コード(図13乃至図15)に変換されて
、前述したように、共有メモリ60に格納される。また
、ビジョンタスクにおいて解釈された画像処理命令は同
じように命令コードに変換されてツー・ポート・RAM
61に格納される。共有メモリ60の命令コードは、ロ
ボット動作制御部62,ハンド動作制御部63によりフ
エツチされて実行される。ロボット動作制御部62,ハ
ンド動作制御部63は、不図示ではあるが、夫々専用の
マイクロプロセサと、図18,図19に示したプログラ
ムを格納するメモリと、サーボ制御回路やサーボアンプ
等を有している。
【0059】図16に示されるように、命令解釈プログ
ラムには3つのフラグ(MWF,TWF,PWF)が用
意されている。即ち、「動作完了待フラグ」(MWF)
は、ロボットタスクの命令の中の、その命令の実行終了
を待つことが必要な命令が現在ロボットタスクで実行中
であることを示す。動作完了待フラグMWFは、例えば
、 MOV  P(4) 等の命令の実行によりセットされる。これらの命令は、
ロボットの実際の移動等の動作が必要な命令であり、次
の命令の実行には、その命令の終了を待つ必要があるか
らである。IF  …  THEN  …等の制御命令
については、ロボットの実際の移動が伴なわないので、
動作完了待フラグMWFはセットされない。
【0060】また、「処理終了待フラグ」(PWF)は
、ビジョンタスクの命令の中の、その命令の実行終了を
待つことが必要な命令が現在ビジョンタスクで実行中で
あることを示す。これらのMWF,PWFは、ロボット
タスク若しくはビジョンタスクにおいて、2つ以上の命
令がオーバラツプされて実行されることを防ぐためにあ
る。
【0061】「タイミング待フラグ」TWFは次の理由
により本システムに導入された。即ち、マルチタスク制
御の下では、ロボットタスク中の命令とビジョンタスク
中の命令とが並行して実行される。そして、ロボットタ
スクのある1つの命令を開始するためには、ビジョンタ
スクのある1つの命令の終了を確認する、即ち、2つの
タスク間の調停をとることが必要な場合がある。例えば
、CCDカメラ2で対象物の像を撮像している時に、ロ
ボツト6のアームがカメラ2の視野に入つたり、シヤト
ル9が移動する事などにより、撮像不能になる事をさけ
る必要があるからである。上述のMWF,PWFは、あ
くまでも、同じタスク間の命令実行の調停をとるもので
ある。そこで、一方のタスクが他方のタスクを一時中断
させるためのフラグとして「タイミング待フラグ」TW
Fがある。
【0062】一方のタスクが他方のタスクを一時中断さ
せる命令として、本実施例のシステムでは、WAIT命
令が用意されている。このWAIT命令は、主にビジョ
ンタスクで用いられ、それが実行されると停止フラグS
F(suspended flag)がセットされる。 フラグSFはツー・ポート・RAM61内に設けられこ
のWAIT命令は、プログラム内に明示的にそれらの命
令を記述しなくとも、システム(図5のコンパイラ10
3)が自動的に付加するようにしている。即ち、図11
の例では、CCDカメラ2で撮像するための撮像命令(
GET)の後や、パターン認識命令(MATCH)の後
に、コンパイラ103がWAIT命令を自動的に付加す
る。換言すれば、GET命令やMATCH命令が実行さ
れると、自動的にWAIT命令が実行されて、フラグS
Fがセットされる。このフラグSFのリセットは、上記
特殊命令(GET命令やMATCH命令)の終了でなさ
れる。従って、ロボットタスク側では、このフラグSF
のセット状態を検査する命令、即ちタイミング確認命令
(例えば、CHECKF命令)をロボットタスク中に挿
入して、ロボットタスクとビジョンタスクとの協調を取
っている。
【0063】また、命令解釈プログラムには、図16に
示すように、2つのカウンタ(RPCとIPC)とが用
意されている。カウンタRPCはロボットタスクの組立
動作プログラム108中の次の実行命令の行番を格納し
ている。例えば、ロボットタスクが次に実行すべき命令
が行番300のSSHUTL(図9)ならばカウンタR
PCには300が格納されている。また、カウンタIP
Cはビジョンタスクのビジョン動作プログラム109中
の次の実行命令の行番を格納している。例えば、ビジョ
ンタスクが次に実行すべき命令が行番20のBIN(図
11)ならばカウンタRPCには20が格納されている
【0064】図17,図18,図19に従って、ロボッ
トタスクとビジョンタスクの並列実行制御について説明
する。 ロボットタスクの制御 ステツプS200で、キーボード20から組立動作の開
始が指示されると、命令解釈部87はステツプS201
でロボットタスクを起動することにより、RAM52内
の組付動作プログラム108の解釈を開始する(ステツ
プS201)。
【0065】ステツプ202ではロボットタスクが起動
されているかを調べる。ステツプS202でロボットタ
スクが起動されているか否かを調べるのは、ロボットプ
ログラム自体の中で、またはビジョンタスクのプログラ
ム自体の中に、ロボットタスクの停止を行なうステート
メントを記述することができるからである。従って、ロ
ボットタスクが停止されている場合は、ビジョンタスク
だけが実行され、ロボットタスクをプログラム的に再起
動するには、ビジョンタスク内でロボットタスクを起動
する命令を実行することが必要である。図9乃至図11
の例のプログラムが実行されている場合は、ロボットタ
スクがプログラム的に停止されないから、ステツプS2
03に進み、ここで動作完了待ち状態の判定を動作完了
待フラグMWFに基づいて行なう。前述したように、M
WFは移動命令等に対してセットされるものであるから
、前のサイクルでそのような命令が実行されていなけれ
ば、あるいは、MWFのセットの不要な命令が実行され
ていた場合には、MWF=0であるので、ステツプS2
04に進む。
【0066】MWF=0のときは、ステツプS204に
進んで、組付動作プログラム108から1つの命令を読
み、その命令の解釈を行う。1つの命令解釈がなされる
と、カウンタRPCは次の行番を示すように変更される
【0067】ステツプS205では、その解釈した命令
の内容がビジヨンタスク起動命令(“START  3
”)であるか否かの判定を行う。ビジヨンタスクの起動
命令である場合は、ステツプS220でビジヨンタスク
の起動処理を行なってからステツプS221に進む。 ビジヨンタスク起動命令以外の場合は、ステツプS20
6に進み、タイミング確認命令(前述のCHECKF等
)であるか否かの判定を行なう。
【0068】ステツプS206で命令内容がタイミング
確認命令でないと判定した場合は、ロボツト動作部62
,ハンド動作部63,画像処理部64に命令コードを発
行する必要のある命令(例えば、シヤトル9の移動命令
やハンド7の動作命令)か、命令コードの発行が不要の
命令(例えば、IF…THEN…等の制御命令)かの判
定をステツプS207で行う。
【0069】命令コードの発行が必要な命令である場合
には、ステツプS208で、その命令がロボット動作に
関連する命令であるかハンド動作に関連する命令である
かに応じて、その命令コードが、ロボット動作制御部若
しくはハンド動作制御部により区別されて実行可能なよ
うに、共有メモリ60に格納される。ロボット動作制御
部若しくはハンド動作制御部は、図18若しくは図19
の制御手順に従って、共有メモリ60から対応する命令
コードをフエツチして実行する。そして、ステツプS2
09では、動作完了待フラグMWFをセットする。そし
てステツプS221に進む。
【0070】動作制御部62,63に命令コードを発行
する必要のある命令は、シヤトル9の移動(MOV)や
ロボツト6の移動の様に、命令に対応した動作が完了す
るまでに時間がかかるものである。フラグMWFは移動
命令等が連続して発行されることを防止する意味でステ
ツプS209でセットされる。しかし、命令コードの発
行の不要な命令(例えば、IF…THEN…等の制御命
令)は連続して実行されるべきである。このような発行
不要命令を実行するものとステツプS207で判断され
た場合には、ステツプS207→ステツプS208と進
んで、MWFのセットを行なわずに、直接その命令の実
行を行なう。そしてステツプS221に進む。
【0071】ステツプS206で、命令内容がタイミン
グ確認命令であると判定された場合は、ステツプS21
0に進んで、ツー・ポート・RAM61内のフラグSF
のセット状態を調べる。このフラグSFは、前述したよ
うに、他のタスク(本実施例では、ビジョンタスク)で
ある特殊な命令(GETやMATCH)を実行した場合
にそのタスクによりセットされ、その命令の終了をもっ
てそのタスクがリセットする。また、フラグSFは、ツ
ー・ポート・RAM61内に置かれているために、画像
処理部64は勿論、命令解釈部87もアクセスが可能で
ある。従って、このフラグSFがセツトされているとス
テツプS210で判定された場合は、ロボットタスクに
おける命令の解釈/実行を中断させなくてはならないの
で、その旨を記憶するために、フラグTWFをステツプ
S212でセツトする。そして、ステツプS209でフ
ラグMWFをセットする。即ち、フラグMWFは、命令
コードの発行が必要な命令を解釈部87が解釈した場合
と、タイミング確認命令を解釈してTWFがセットされ
た場合との両方おいて、セットされる。
【0072】ステツプS221では、ビジョンタスクが
起動されているか否かを調べ、起動されていない場合に
はステツプS202に戻る。あるロボットプログラムを
実行している場合に、命令コードを発行する必要のない
命令を実行している限りは、フラグMWFはセットされ
ないので、ステツプS202→ステツプS203→ステ
ツプS204と進んで、次の命令を解釈実行する。即ち
、ロボットプログラムの命令の実行は待たされることな
く連続的に行われる。
【0073】一方、図9のプログラムの行番300乃至
行番350におけるロボット動作命令はフラグMWFを
セットする。かかる場合は、制御は、ステツプS202
→ステツプS203と進み、更に、フラグMWFは既に
セットされているので、ステツプS214に進む。ステ
ツプS214では、フラグMWFのセットが、命令コー
ド発行の必要な命令に実行によるものか、あるいはタイ
ミング確認命令の実行によるものかを調べるために、フ
ラグTWFのセット状態を調べる。
【0074】ステツプS214でTWFフラグがリセッ
トしている場合には、フラグMWFのセットは命令コー
ド発行の必要な命令に実行によるものであったのだから
、ステツプS215に進んでロボット動作の完了を調べ
る。この動作完了のチェックは共有RAM60に命令コ
ードが残っているか否かにより分る。共有メモリ60中
に命令コードの格納は、命令解釈プログラムがステツプ
S208で行なう。また、共有メモリ60中の命令コー
ドのクリアはロボット動作制御部62,ハンド動作制御
部63によりなされる。
【0075】図18はロボット動作制御部62,ハンド
動作制御部63における制御手順を示すフローチヤート
である。ロボット動作制御部62,ハンド動作制御部6
3は、夫々、ステツプS300において、共有メモリ6
0内をスキャンしながら、自分向けの命令コードがメモ
リ60に格納されたかをチェックしている。自分向けの
命令コードであるか否かの判定は、Pコード(図13乃
至図15)が示す命令の型で判断される。自分向けの命
令コードが発見されたならば、その命令コードをステツ
プS301で実行し、ステツプS302で、その終了(
例えば、アームの上昇または下降動作の終了)を待つ。 動作が終了すれば、ステツプS303で、当該命令コー
ドをクリアする。
【0076】図19の画像処理部64における命令コー
ドの処理の制御手順においても、命令コードのスキャン
/実行/クリアは図18のそれと同じである。図17の
フローチヤートに戻って、ステツプS215で、共有R
AMに格納した命令コードがクリアされたことが確認さ
れたならば、ステツプS216に進んで、フラグMWF
をリセットする。そして、ステツプS221に進み、ビ
ジョンタスクが起動されていなければ、ステツプS22
1→ステツプS202→ステツプS203→ステツプS
204と進んで、ロボットプログラム中の次の命令を実
行する。
【0077】ステツプS214の待ち理由の判別処理に
おいて、TWF=1と判定された場合は、フラグSFが
ビジョンタスクによりリセットされるのを待つために、
ステツプS217でフラグSFを調べる。このフラグS
Fがセットされている(SF=1)ということは、まだ
待たなければならないことを意味するから、ステツプS
221を介してステツプS202に戻る。
【0078】ステツプS217で、フラグSFがリセッ
トされたことが確認された場合には、ステツプS218
でフラグTWFをリセットして、待状態が解除されたこ
とを示す。さらに、ステツプS212→ステツプS20
9の過程でセットされたフラグMWFをステツプS21
6でリセットする。
【0079】ロボットタスクとビジョンタスクの並列実
行 以上のようにして、命令コードの発行の必要な命令の実
行、不要な命令の実行、更にはタイミング確認命令の実
行がなされる。次にビジョンタスクが起動された場合に
ついて更に詳細に説明する。
【0080】ステツプS205で、行番360のSTA
RT  3 命令が実行されると、ステツプS220でビジョンタス
クを起動した後に、ステツプS221に進む。ステツプ
S221で、現在が、以前に実行されていたビジョンタ
スクの何等かの命令の処理の終了を待っている待状態に
あるかをフラグPWFに基づいて判定する。このフラグ
PWFはロボットタスクにおけるフラグMWFと同じ機
能を有する。以前に画像処理の命令を何等発行していな
い場合には、PWF=0であるので、ステツプS223
に進んで、1つの画像処理命令をカウンタIPCに従っ
て解釈する。ステツプS223,ステツプS224は、
ステツプS223で解釈した命令の種類を判断する。即
ち、その命令がEND命令(図11の行番50のステー
トメント)である場合には、ステツプS225でビジョ
ンタスクを停止する。また、END命令でない場合には
、ステツプS226で当該命令が命令コードの発行が必
要なものであるか否かを調べる。命令コードの発行が必
要なものとは、画像処理部64において何等かの処理が
必要な命令であり、例えば、撮像命令(GET)、二値
化命令(BIN)、マツチング命令(MATCH)等で
ある。また、IF…THEN…等の制御命令や、前述の
WAIT命令はツー・ポート・RAM61にアクセスす
るだけで足り、画像処理部64による処理は不要なので
、命令コードの発行は不要である。
【0081】命令コードの発行が必要な命令を実行する
場合には、ステツプS227で、ツー・ポート・RAM
61に当該命令コードを書込む。そして、ステツプS2
28で処理完了待フラグPWFをセットして、ステツプ
S202に戻る。
【0082】ビジョンタスクの命令の解釈に先立って、
以前に実行した命令が未だ処理が終了していない場合に
は、ステツプS222からステツプS230に進む。ス
テツプS230では、ツー・ポート・RAM61中に以
前発行した命令コードが画像処理部64によりクリアさ
れているかを調べる。この命令コードのクリアは図19
の制御手順に従って画像処理部64が行なう。
【0083】命令コードのクリアが既にされていたとス
テツプS222で判定された場合にはステツプS231
でフラグPWFをリセットする。以上のようにして、ロ
ボットタスクとビジョンタスクとの並列処理がなされる
【0084】尚、前述したように、解釈部87がビジョ
ンタスクの特殊な命令(GET,WATCH)を解釈実
行して、その命令コードをRAM61に格納した場合に
は、図19のフローチヤートに従って、画像処理部64
がその命令コードをRAM61からフエツチし、ステツ
プS312において実行する。そして、ステツプS31
1において、RAM61内にフラグSFがセットされる
。また、そのような特殊命令の実行が終了した場合は、
ステツプS313において、当該命令コードをクリアす
る動作とフラグSFをリセットする動作を合せて行なう
【0085】図20は、図9,図10に示した具体的な
組付けプログラム並びに図11に示したビジョン動作プ
ログラムを、図17の命令解釈プログラムが解釈し、そ
れが生成した命令コードを動作制御部62,63並びに
画像処理部64が図18,図19の制御手順に従って実
行した場合において、ロボット部及び画像処理部64が
どのように動作するかをタイミングチヤートとして表わ
したものである。即ち、図20は、部品Aの組立て動作
の一部と、部品Bの組立て動作と、そして部品Cの組立
て動作の一部のタイムチヤートを表わしている。また図
20においては、説明の便宜上、本タイムチヤートのス
タート時に、ロボツト6は部品供給部11のパレツト1
3aより、ハンド7で部品Aを把持し、ロボツト6はパ
レツト13aの上空に退避した状態となつているものと
する。
【0086】以下、図20に基づいて本実施例の組立動
作順を説明する。期間T1 ,T2 ,T5 ,T6 
ではロボツト動作の制御のみが行なわれる。即ち、T5
 期間で、シヤトル9は、部品Bを組立る位置へ移動開
始(行番300のSSHUTL命令)し、期間T6 で
、X−Yテーブル3は次に組立てる部品Bのパレツト1
3bの視覚対象位置に移動開始(行番310のCSET
命令)する。 次に、ロボツト6は、T1 期間で、部品Aをハンド7
に把持したまま、組付ステージ8の上空点に移動し、さ
らに、組付ステージ8と垂直方向に下降停止する(行番
320,330のMOV命令)。
【0087】T3 ,T4 ,T7 ,T8 ,T9 
T10では、ロボツト制御及び画像処理制御が並行して
行なわれる。 前記シヤトル9の移動及びXYステージ3の移動が終了
した事を確認(340,350行番のSCHECK,C
CHECK命令)し、画像処理制御が開始される(36
0行番のSTART命令)する。これによりロボットタ
スクとビジョンタスクとが並列して実行される。
【0088】並列処理におけるロボツトタスクにおける
制御では、T3 期間に、ハンド7を動かし、部品Aを
離す(行番370のOUT命令)。そして、T4 期間
で、ロボツト6がハンド7を上昇・停止(行番380の
MOV命令)して、部品Aの組立を終了する。
【0089】前記ロボットタスクにおける制御と併行し
て行なわれる画像処理側の制御では、T7 期間に、視
覚対象の部品BのCCDカメラ2の画像を画像処理部6
4に取り込み(行番10のGET命令)、T8 期間に
、その画像を画像処理部64にて2値化処理(行番20
の命令BIN)し、さらに、T9 期間で前記2値化さ
れた画像の特徴抽出処理(行番30の命令SOP)を行
ない、T10期間で視覚対象部品Bの位置検出処理(行
番40の命令MATCH)を行なう。
【0090】T4 期間が満了し、さらにT10期間が
満了した時点では、ハンド7は組み付けステージ8の上
空にあって部品供給部にある部品Bを把持可能であり、
また、画像処理部64は部品Bのパレット13bにおけ
る位置を検出している。
【0091】行番380のMOV命令でハンド7がステ
ージ8の上空に退避すると、行番390で、プログラム
2(図10)をコールする。このプログラム2は部品B
を供給部12から受けその組み付けを行なう手順を記述
する。
【0092】プログラム2の行番100では、命令CH
ECKF  3,2 を実行する。この命令はタスク3(即ち、ビジョンタス
クのプログラム2、即ち、部品Bの画像処理)の終了を
確認する命令である。この命令で部品Bの位置検出処理
が終了した事が確認されると、行番110以降の処理が
行なわれる。
【0093】図20のT11〜T16,T19,T20
では、ロボツト制御のみが行なわれる。ロボツト制御で
は、行番110で、ロボツト6の移動目標位置として、
位置検出結果を読み込む。
【0094】P(20)=VREAD(2)そして、部
品Bを把持する為に、T11で、ロボツト6はハンド7
をパレツト13bの上空点に移動(行番120)し、T
12で、下降・停止(行番130)する。次に、T13
でハンド7は対象部品Bを把持(行番140のOUT命
令)し、T14でロボツト6は部品Bを把持したハンド
7をパレツト13bの上空点に移動停止する(行番15
0)。
【0095】T15,T16,T19,T20の部品B
についてのロボツト制御の動作は、前記部品Aについて
のT1 ,T2 ,T5 ,T6 と同様である。また
、T17,T18,T21〜T24の部品Bについての
ロボツト制御と部品Cについての画像処理制御とが並行
して行なわれる動作に関しても、T3 ,T4 ,T7
 〜T10の動作と同様である。
【0096】図21は、図9の行番330乃至390の
命令と、図10の行番100乃至120までの命令を順
に実行した過程での、命令解釈部87と、ロボツト動作
制御部62,ハンド動作制御部63,画像処理部64に
おける命令解釈実行の詳細タイムチヤートである。
【0097】まず、T100 で、図9の行番330の
ロボツト動作命令を命令解釈部が解釈し、ロボツトの移
動の命令コードを発生して、ロボツト動作部62に命令
コードを受け渡す為の共有メモリ60に命令コードをセ
ツトする。
【0098】T120 で、ロボツト動作制御部62は
、共有メモリ60を通して、受け取つた命令コードによ
りロボツト6を駆動し、アームを指示された位置に停止
させる。ロボツト動作制御部62は、その命令コードの
実行終了を、その命令コードのクリアにより、命令解釈
部87に対して連絡する。T120 において、命令解
釈部87は、ロボツト動作制御部62からの命令コード
の実行終了を待ち状態となつている。
【0099】T101 で命令解釈部87は、図9の次
の行番340のロボツト動作命令を解釈し、シヤトル停
止確認(SCHECK)の命令コードを発生して、ロボ
ツト動作制御部62に、共有メモリを介して命令コード
を送る。ロボツト動作制御部62では、前記命令コード
によりシヤトル停止状態を確認し、命令コード実行終了
を命令解釈部87に共有メモリ60を介して連絡する。 続いて、MWFのリセットの待ち状態となつていた命令
解釈部87は、次の動作命令の解釈を再開する。
【0100】T102 は命令解釈部87が行番350
のロボツト動作命令を解釈し、X−Yテーブル3の停止
確認の命令コードを発生し、ロボツト動作制御部62に
対してT101 と同様の手続きで命令コードの引渡し
、命令コード実行終了の引渡しを行なう。
【0101】T103 では、命令解釈部87が行番3
60のロボツト動作命令(START)を解釈し、図1
1に示した画像処理命令群(ビジョンタスク)の解釈実
行を開始する。T103 後は、ロボツト動作命令群と
、画像処理命令群を並列に解釈していく。
【0102】T110 では、命令解釈部87が図11
の行番10の画像処理命令を解釈し、CCDカメラの画
像を画像処理部に取り込む命令コードを発生し、画像処
理部64に対してツー・ポート・RAM61を介してそ
の命令コードを送る。
【0103】T130 では、前記画像取込命令コード
をツー・ポート・RAM61から受け取つた画像処理部
64が、CCDカメラ2の画像を画像処理部に取り込み
、取り込み完了後に、その命令コードの実行終了をツー
・ポート・RAM61を介して命令解釈部87に連絡す
る。
【0104】T104 では、命令解釈部87が、T1
10 の画像処理命令の解釈及び命令コードのセツト終
了後に、図12の行番370のロボツト動作命令を解釈
する。T104では、ハンド7を動かす命令コードを発
生し、共有メモリ60に命令コードをセツトする。次の
状態として、命令解釈部87は、T110 で画像処理
部に発行した命令コードの実行終了を待っている状態で
、かつロボツト動作制御部62に発行した命令コードの
実行終了の待ち状態になつている。
【0105】T111 では、画像処理部64からツー
・ポート・RAM61を介して命令コードの実行終了が
連絡される。さらにロボツト動作制御部62から実行終
了が連絡されていない状態では、命令解釈部87は図1
1の行番20の画像処理命令を解釈し、前記取り込み画
像の2値化処理の命令コードを発生し、ツー・ポート・
RAM61上にセツトする。
【0106】以下、同様にして、命令解釈部87は、ロ
ボツト動作命令及び画像処理命令を前記いずれかの命令
が実行終了した時点で、終了した命令群を解釈セツトす
る(T105 ,T112 ,T113 ,T106 
)。
【0107】さらに、進んでT114 で命令解釈部8
7が行番50の画像処理命令を解釈する。この行番50
の命令は解釈実行終了命令(END)であるので、命令
解釈部87はビジョンタスクを停止する。
【0108】T107 以降は、解釈部87はロボツト
動作命令群のみ解釈命令セツトする。
【0109】〈画像処理〉以下、画像処理部64で行な
われる画像処理について説明する。本システムにおける
画像処理の目的は、部品の認識と、更にパレット内にお
けるその部品の姿勢の検出及びその部品の重心座標の検
出である。
【0110】特徴パラメータ 図22は本実施例に用いた一例としての部品Bの平面図
である。部品Bは平板で、3ケ所に大きさの異なる穴が
あいている。図23は部品Bの特徴パラメータの基準値
を表わしている。s1 は穴H1 の面積で、s2 は
穴H2 の面積、s3 は穴H3 の面積である。
【0111】本実施例においては、穴H1 の中心の座
標(X1,Y1)を部品の原点とし、それを、ロボツト
6が部品の把持が可能となるように画像処理部64が部
品位置を算出するときの基準点とする。また、穴H2 
の中心(X2 ,Y2)と穴H1 の中心(X1 ,Y
1)とを通り、穴H2 から穴H1 の方向へ向かうベ
クトルαを、部品Bの傾きを表わすものと考える。この
基準軸α(ベクトルα)と、穴H1 の中心(X1 ,
Y1)と穴H3 の中心(X3 ,Y3)とを結ぶ線分
のなす角度をβ3 とする。また、穴H1 の中心(X
1 ,Y1)と穴H2 の中心(X2 ,Y2)との距
離をl2 とし、 l2 ={(X1 −X2)2 +(Y1 −Y2)2
}1/2であらわす。また、穴H1 の中心(X1 ,
Y1)と穴H3 の中心(X3 ,Y3)間の距離をl
3 とし、l3 ={(X2 −X3)2 +(Y2 
−Y3)2}1/2で表わす。図23に示されたs1 
,s2 ,s3 ,β3 ,l2 ,l3 並びに、部
品全体の面積Sを、部品Bの特徴を表わす基準量とする
。換言すれば、ある部品が目的の部品Bであるか否かは
、その部品の画像から、s1’,s2’,s3’,β3
’,l2’,l3’,S’ を計算して、これらを基準
パラメータs1 ,s2 ,s3 ,β3,l2 ,l
3 ,Sと比較することにより判断する。これらの基準
パラメータは予め計算してRAM52内に記憶しておく
。 基準パラメータが用いられるのは画像処理部64内であ
り、RAM52内の基準パラメータは制御装置17に電
源が投入された時点で画像処理部64のツー・ポート・
RAM61に転送される。
【0112】部品の認識 図24は、カメラ2により画像を取り込み、部品に形成
された穴の重心(中心)を計算する原理を説明する図で
ある。前述したように、部品はパレット内のセルに収納
されている。図3の領域設定部74は目的の部品が収納
されているパレットの1つのセル全体の画像を切り出す
機能を有する。
【0113】図24の(a)は、カメラ2で部品の画像
を取り込み、その画像を明るさのレベルにより“1”と
“0”に2値化した結果がフレームメモリ75内に入っ
ていることを模式的に示した図である。(a)の各々の
セルはCCDの素子1ケ1ケに対応し、かつフレームメ
モリ75内のメモリの1ケ1ケに対応している。穴部分
が“1”と量子化されるか“0”と量子化されるかは微
妙であるが、本実施例では、最大輝度の50%以上のセ
ルは“0”と、50%未満のセルは“1”となつている
【0114】次に、図22のH1,H2,H3が穴であ
ると判断するラベリング処理方式について説明する。セ
ルのはじから順に、セル毎に濃度の0/1を判断し、“
1”を見つけると、“1”を見つけたセルを中心にして
3×3のセルからなるブロツク部分に既にラベルの付け
られているセルがあるかを判断する。見つけた“1”の
セルが、3×3のセルからなるブロック部分で始めての
“1”であるセルの場合、その“1”のセルにまだ使わ
れていないラベルを付ける。又、既にラベルの付けられ
ているセルがある場合には、そのセルと同じラベルを付
ける。同様の処理を、すべての処理すべきセルについて
行なう。このようにすると、各々の閉領域に異なったラ
ベルが付けられる。図22の部品Bを例にとつて述べる
と、3つの穴にそれぞれ穴“H1 ”,穴“H2 ”,
穴“H3 ”としてラベルを付けることが可能となる。
【0115】次に、ラベル付けされた穴に関しての面積
s1’〜s3’及び中心位置(重心位置)の求め方につ
いて、図24にて説明する。まず、穴の面積はラベル付
けされたとじられた領域内の“1”のセルの個数をカウ
ントし、その合計を面積とする。次に、穴の中心を求め
る場合は、図24の(a)の画像のX,Yの各々の方向
に対して、“1”であるセルの個数のヒストグラムを作
成し、このヒストグラムの重心位置を、穴H1 の重心
点(X1’,Y1’)とする。
【0116】以上のような処理を、3つの穴の画像に対
して行なえば、把持しようとする部品の3つの穴の面積
s1’,s2’,s3’及び3つの穴のCCD座標系に
おける中心の座標(X1’,Y1’),(X2’,Y2
’),(X3’,Y3’)を求めることができる。この
求まつた値と,図23のようにあらかじめ記憶されてい
た特徴量の基準値とを比較することにより、正しい部品
であるかどうかが判断が付く。
【0117】つまり特徴量の比較として、s1 ≒s1
’,s2 ≒s2’,s3 ≒s3’,l2≒l2’,
l3 ≒l3’,β3 =β3’を行なうことである。
【0118】座標変換 次に、画像処理の座標系とロボツトの座標の変換につい
て説明する。図25は、ロボツトの座標系のXR YR
 と視覚の座標系XV YV との関係を示す。ロボツ
トの座標系での目標位置を、(PxR,PYR,1)と
し、視覚の座標系での目標位置を(PxV,PYV,1
)とする。また、ロボツトの座標系XR YR の原点
OR と、視覚の座標系XV YVの原点OV のずれ
が(δx ,δY )であり、ロボツト座標系XR Y
r がθ度だけ回転しているとし、更に、視覚系の分解
能がkmm/画素とすると、
【0119】
【数1】 の関係がある。
【0120】上記変換パラメータは図2のRAM52に
あらかじめ記憶されており、制御装置17の電源を入れ
ると、自動的にツー・ポート・RAM61にも書き込ま
れ、画像処理部64は座標変換する場合は、このパラメ
ータを用いて、部品の位置情報を、画像座標系よりロボ
ツト座標系へ、又はロボツト座標系より画像座標系へと
変換する。
【0121】図26は、制御装置17に電源が入れられ
、キーボード20により起動がかけられる状態になるま
での準備動作ルーチン(図5の起動プログラム100)
のフローチヤート図である。
【0122】まず、本制御装置17に電源がステツプS
400のステツプで入れられると、ステツプS401で
、特徴パラメータの基準値が部品毎に、命令解釈部87
のRAM52の内部より、バス86,59を通して、ツ
ー・ポート・RAM61のあらかじめ指定された領域に
転送される。このとき、もちろんRAM52内のデータ
はそのまま残つているのは言うまでもない。
【0123】次に、ステツプS402にて、座標変換の
演算に使われる上述の変換パラメータも、RAM52よ
りツー・ポート・RAM61へ転送する。次に、ステツ
プのステツプS403で、XYテーブル3の原点出しを
行なう。このテーブル3は視覚カメラ2とレンズ間を平
面的に移動させるためのものである。次にステツプS4
04とステツプS405で、ロボツト6とシヤトル9の
原点出しを行ない、ステツプS406で本装置が起動可
能な状態となる。
【0124】電源投入後、ステツプS406に行くまで
はキーボードの入力は受け付けない状態となることは言
うまでもない。
【0125】〈実施例の効果〉以上説明した実施例によ
れば、次のような効果が得られる。即ち、■:制御装置
17では、1つの命令解釈部87が、組付を行なうロボ
ツト動作命令と画像処理を行なう画像処理命令という2
つの異なる系統の命令を解釈するようにしている。その
一方で、ロボット動作の実際の実行を制御するのは組み
付け動作制御(即ち、ロボット動作制御部62,ハンド
動作制御部63)が行なうようにし、画像処理は画像処
理部64が実際に行なうようにしている。 即ち、ロボット動作と画像処理という2つの異質の処理
をモジュール化された2つのプログラムにより記述し、
それらのプログラムモジュールを1つの命令解釈部が行
ない、その一方で、ロボット動作の実行と画像処理の実
行は組み付け動作制御部(即ち、ロボット動作制御部6
2,ハンド動作制御部63)が行ない、画像処理は画像
処理部64が行なうという二本立てとなっている。
【0126】そのために、制御装置17の開発負荷を大
幅に削減できる効果がある。何故ならば、命令解釈を一
本化したことにより、並列動作を行なう2つのプログラ
ムモジュールの調停制御と同期化制御とを容易に行なう
ことができる。又、同一仕様の命令解釈部であることか
ら、工場導入後ユーザにとつても使いやすい装置にでき
る効果があるからである。さらに、命令解釈手段が同一
であることから、各々の装置間の通信用インターフエー
ス及び通信用プログラムも、各々の命令として簡素化さ
れ、装置も安価でユーザにとつてさらに使い安くできる
からである。また、ロボット動作の実行と画像処理の実
行とは二本立てで行なわれるために、組み付け動作制御
部における制御手順の開発は画像処理部64における制
御手順の開発と独立して行なうことができ効率的である
からである。
【0127】具体的には、制御装置17では、1つの命
令解釈部87は、CPU50とメモリ(51,52)及
びキーボード20,CRT19からなる入出力手段から
なる。そして、それらは命令解釈部87内のみで通信可
能なローカルバス86で接続され、また、CPU50と
ロボツト動作制御部62とハンド動作制御部63と画像
処理部64とは前記ローカルバス86とは別個のコモン
バス59により接続されている。かつ、このコモンバス
59は一般的な規格でマルチバスとしてある。また、命
令解釈部87のメモリの1部であるROM51内に、命
令解釈プログラム及びこの命令解釈プログラムを適宜ロ
ボツトとハンドの動作命令と画像の処理命令とにより使
いわける、マルチタスクOSやプログラムの入出力をサ
ポートするプログラム等をあらかじめ記憶させてある。 そして、命令解釈部87のランダム・アクセス・メモリ
であるRAM52内に領域をあらかじめ区分してこれら
のプログラムを格納してある。更に、ロボツト及びハン
ドの動作命令と画像の処理命令は、別個にキーボード等
の入力手段で入力可能とされている。そして、本組立装
置がキーボード等の入力手段で起動させられると、本制
御装置は、まずロボツト及びハンドの動作命令を解釈し
、実行することから始め、ロボツトの動作命令中に画像
の処理を起動させる命令を見つけると、前記命令解釈部
のCPUが画像処理の命令をも順次解釈実行を開始し、
画像の処理命令内に処理を終了させる命令を見つけたこ
とにより、前記CPUは画像の命令処理動作をやめ、ロ
ボツトの命令解釈のみ行なう様にしたものである。
【0128】そのために、例えば、ロボツトのアームが
カメラのエリアより逃げたタイミングで画像を取り込む
等の動作を容易に記述可能となつた。また、タイミング
を共有メモリ2−PORT−RAMを介して行なえるの
で、コンピユータのアクセス時間レベルの非常に高速で
調停を取ることが可能となつた。また、画像処理の不要
な場合は、命令解釈部のCPUはロボツトの動作の命令
解釈のみに専念でき、1つのCPUで複数の処理を行な
つているが、処理時間の遅れは問題にならなくなつた。
【0129】又、同一仕様の命令解釈手段であることか
ら、工場導入後ユーザにとつても使いやすい装置にでき
る効果がある。さらに、命令解釈手段が同一であること
から、各々の装置間の通信用インターフエース及び通信
用プログラムも各々の命令として簡素化され、装置も安
価でユーザにとつてさらに使い安くできる効果がある。
【0130】■:動作制御部62,63用の命令や画像
処理部64の命令等は統一した形式の命令コード(図1
3〜図15)に変換され、メモリ60やRAM61に格
納される。即ち、上位の制御部(解釈部87)と下位の
制御部(動作制御部62,63)との間では、命令コー
ド及びメモリという媒体が存在し、上位の制御部(解釈
部87)におけるロボットタスクとビジョンタスクの命
令の相違を吸収している。
【0131】■:主タスクであるロボットタスク内に、
子タスクであるビジョンタスクを起動する命令(STA
RT)を準備しているので、両タスク間の起動の調停が
容易となる。更に、タイミング確認指令等を用意してい
るので、タスク間の調歩が容易となる。
【0132】■:座標変換パラメータや基準特徴パラメ
ータ等の種々のパラメータは、バッテリーバツクアツプ
されたRAMに記憶されており、電源投入時に、それら
のパラメータが必要とされるRAM61に転送されるよ
うになっているので、これらのパラメータの一元的な管
理が容易となる。具体的には: ■−1:キーボード,CRTフロツピーデイスクドライ
ブ等の入出力手段を1つだけ、かつロボツト等の動作命
令の入出力の必要な部分に設けることで、すべて行なえ
る。 ■−2:画像処理部のRAMをバツテリーバツクUPさ
せる必要がない。 ■−3:画像処理部を故障等で交換してもパラメータを
再度入力する必要がない。 ■−4:二重にパラメータを記憶しておく必要がないた
め、ずれ等による誤動作がない。
【0133】〈変形例〉本発明はその主旨を逸脱しない
範囲で種々変形が可能である。 ■:例えば、上記実施例では、図4に示すように、マト
リツクス状にパレット内に配置されたワークについて説
明したが、パレット内のワークの配置は、これにかぎら
ず、たとえば、直線等の一列に並べても構わず、また、
パレット内にランダムに収納されていてもよい。要は、
パレット内におけるワークの位置が大体決まっていれば
よく、その各ワークの概略の位置をロボツトに教えこま
すことができることが重要である。
【0134】■:また、上記実施例では、セルの大きさ
は一定であり、ワークも1種類とした。本発明は、セル
の大きさが異なっていても、また、1つのパレット内で
異なるワークが存在する場合にも適用できる。この場合
は、セルの位置とそのセルの大きさとそのセル内のワー
クの種類との対応とを、制御装置17が画像処理部64
へ送ればよい。また、1つのセル内に複数のワークが存
在する場合にも本発明を適用できる。 ■:前記実施例では、座標変換は、視覚系で行なわれて
いたが、ロボツト制御装置側で行なってもよい。
【0135】■:また、前記実施例では、穴A,Bの重
心位置は図24に説明したように、ヒストグラムの極大
値をとる位置を重心位置と定めたが、次のようにしても
よい。即ち、図24で、全ドットの数がn個の場合は、
頻度の累積がn/2 となる点を重心とする。この手法
によれば、対象でない形状の穴等についても重心を演算
できる。
【0136】■:前記実施例では、特徴パラメータと座
標変換パラメータを命令解釈部87のメモリ52に常時
格納しておき、電源打込後、画像処理部がアクセス可能
な2−PORT−RAM上に転送するようにしている。 本発明はこれに限定されず、例えば、画像が独自に用い
るパラメータ、たとえば画像取り込みの絶対的なスター
ト位置,カメラ2の入力のゲイン等を命令解釈部のメモ
リに格納しておき、前記と同様に転送してもよい。また
、ロボツト動作部,ハンド動作部に必要なパラメータも
同等に命令解釈部のメモリより共有メモリに転送しても
良い。
【0137】■:前記実施例は、まずロボツトの動作が
起動され、ロボツトの動作命令内に画像の処理を起動さ
せる様に説明してあるが、画像の処理の時間が長く、組
立装置を間欠的に動かす装置等に応用し場合、画像の処
理命令からロボツトの動作命令解釈を起動させ、かつロ
ボツトの動作命令中に停止する命令を入れ、CPUの処
理を行なわせない様に構成しても何ら問題はない。
【0138】■:前記実施例において、一連の動作及び
処理命令の中にロボツト動作部及び画像処理部への命令
コード以外のシーケンス制御命令(ジヤンプ命令,繰返
し命令,タイマー命令)が存在した場合には、命令解釈
手段で理解し、命令解釈部自体が実行することは、図9
の行番360のビジョンタスク開始命令の説明から容易
に考えられる。
【0139】■:前記実施例において、画像処理部が命
令解釈部からの命令コードの授受を行なう手段を2PO
RT−RAM61としているが、前記実施例のロボツト
動作部と同じく共有メモリ60とする事も可能である。
【0140】同様に、前記実施例において、ロボツト動
作部及びハンド動作部が命令解釈部からの命令コードの
授受を行なう手段を共有メモリ60としているが、前記
実施例の画像処理部と同じく2PORT−RAMとする
事も可能である。部に記憶され、必要に応じて、この記
憶部から、それが使われる把持部及び/又は画像処理部
に転送される。このために、パラメータを記憶するとこ
ろは1つで済み、従って、その管理も一元化できる。
【0141】
【発明の効果】以上説明したように、本発明によれば、
組付を行なう把持動作命令と画像動作処理命令を解釈す
る解釈手段を1つとし、各々に対応した命令コードによ
り把持動作部又は画像処理部における動作又は処理を行
なうようにすることにより、制御装置の開発負荷を大幅
に削減できる効果がある。即ち、各命令は、一旦、命令
コードにブレークダウンされるので、この命令コードを
統一したフォーマツトにすることにより、画像処理部及
び把持部におけるプログラム開発が見通しのよいものに
なる。
【0142】本発明の好適な1態様によれば、この自動
把持装置は、把持動作だけではなく、把持部をワークの
置かれた位置に移動させ、ワークを把持した把持部を組
み付けステージに移動し、把持したワークを組体に組立
てる機能を有する。本発明の好適な1態様によれば、解
釈部は、1つの画像処理命令または把持動作命令を解釈
して命令コードに変換した後に、次の画像処理命令また
は把持動作命令を解釈する。本発明の好適な1態様によ
れば、画像処理部及び把持部においては、夫々、命令コ
ードを解釈実行する実行手段を有する。
【0143】本発明の好適な1態様によれば、画像処理
命令から変換された前記命令コードが格納されるメモリ
はデユアル・ポートRAMであることを特徴とする。一
般に、画像処理には画像処理に適したマイクロコンピユ
ータが存在し、また、把持部には把持制御に適したマイ
クロコンピユータが存在する。デユアル・ポートRAM
は、これらの異なるバス・アーキテクチャをもつマイク
ロコンピユータの使用を可能にする。
【図面の簡単な説明】
【図1】本発明が適用された好適な実施例に係るロボッ
ト組立システムの斜視図。
【図2】第1図システムの制御装置17の構成を示すブ
ロツク図。
【図3】制御装置17の画像処理部64のブロツク図。
【図4】第1図システムに利用されるパレットの構造を
示す平面図。
【図5】解釈部87のROM51のデータ構成を示す図
【図6】解釈部87のROM52のデータ構成を示す図
【図7】,
【図8】第1図システムのシャトル及びロボットの動作
を具体的に示す図。
【図9】,
【図10】一例としての、ロボットタスクを記述するプ
ログラムのフローチヤート。
【図11】一例としての、ビジョンタスクを記述するプ
ログラムのフローチヤート。
【図12】ロボットプログラムが解釈部87により命令
コードに変換され、その命令コードが実行される様子を
模式的に示した図。
【図13】,
【図14】,
【図15】命令コードのフォーマツトを示す図。
【図16】解釈プログラムと各タスク間の関係を示すと
共に、そこにおける解釈の制御に必要なフラグを示す図
【図17A】、
【図17B】解釈部87の解釈手順を示すフローチヤー
ト。
【図18】ロボット/ハンド動作制御部における制御手
順を示すフローチヤート。
【図19】画像処理部64の制御手順を示すフローチヤ
ート。
【図20】,
【図21】第9図乃至第11図のプログラムを実行した
ときの各部の動きを示すタイミングチヤート。
【図22】,
【図23】部品認識における特徴パラメータの定義を説
明する図。
【図24】部品認識に必要な重心位置の検出の原理を説
明する図。
【図25】視覚座標系とロボット座標系との関係を示す
図。
【図26】起動プログラム100の制御手順を示すフロ
ーチヤート。
【符号の説明】
2  CCDカメラ 3  XYテーブル 6  ロボット 7  ハンド 8  組み付けステージ 9  シャトル 11,12  部品供給部 13a,13bパレット 17  制御部 18  ケーブル 19  CRT 50  CPU 51  ROM 52  RAM 60  共有メモリ 61  ツー・ポート・RAM 62  ロボット動作制御部 63  ハンド動作制御部 64  画像処理部 87  命令解釈部

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】ワークの画像を撮像し、この画像から前記
    ワークの位置情報を算出する画像処理部と、前記ワーク
    を前記位置情報に基づいて把持する把持部とからなる自
    動把持装置を制御する制御装置であって、前記ワークを
    撮像しそのワークの画像から位置情報を算出する一連の
    画像処理命令とこのワークを前記位置情報に基づいて把
    持する一連の把持動作命令とを含むプログラムを記憶す
    る記憶部と、このプログラム中の前記画像処理命令と把
    持動作命令とを識別して解釈すると共に、前記画像処理
    命令と把持動作命令とを夫々対応する中間命令コードに
    変換し、変換された命令コードを夫々前記画像処理部及
    び把持部に渡すための1つの解釈部とを具備したことを
    特徴とする視覚を用いた自動把持装置の制御装置。
  2. 【請求項2】この自動把持装置は、前記ワークの位置情
    報に応じて、この把持部をワークの置かれた位置に移動
    させ、ワークを把持した把持部を組み付けステージに移
    動する移動手段と、把持したワークを組体に組立てる組
    立手段とを更に具備し、前記プログラムは、前記移動手
    段と組立手段の動作を記述する命令を含み、この命令も
    前記解釈部に解釈されることを特徴とする請求項の第1
    項に記載の視覚を用いた自動把持装置の制御装置。
  3. 【請求項3】前記解釈部は、1つの前記画像処理命令ま
    たは把持動作命令を解釈して命令コードに変換した後に
    、次の前記画像処理命令または把持動作命令を解釈する
    ことを特徴とする請求項の第1項に記載の視覚を用いた
    自動把持装置の制御装置。
  4. 【請求項4】前記画像処理部は前記画像処理命令から変
    換された命令コードを解釈実行する第1の実行手段を有
    し、前記把持部は前記把持動作命令から変換された命令
    コードを解釈実行する第2の実行手段を有したことを特
    徴とする請求項の第1項に記載の視覚を用いた自動把持
    装置の制御装置。
  5. 【請求項5】前記解釈部は1つのCPUを有し、前記画
    像処理命令から変換された命令コードと前記把持動作命
    令から変換された命令コードとは、前記CPUがアクセ
    ス可能な異なる2つの第1と第2のメモリ回路に夫々格
    納されることを特徴とする請求項の第1項に記載の視覚
    を用いた自動把持装置の制御装置。
  6. 【請求項6】前記画像処理命令から変換された前記命令
    コードが格納される第2のメモリはデユアル・ポートR
    AMであることを特徴とする請求項の第5項に記載の視
    覚を用いた自動把持装置の制御装置。
  7. 【請求項7】この自動把持装置は、前記ワークの位置情
    報に応じて、この把持部をワークの置かれた位置に移動
    させ、ワークを把持した把持部を組み付けステージに移
    動する移動手段と、把持したワークを組体に組立てる組
    立手段とを更に具備し、前記プログラムは、前記移動手
    段と組立手段の動作を記述する命令を含み、この命令も
    前記解釈部に解釈され、前記移動手段による前記把持部
    の移動動作を記述する命令に対応する命令コードと前記
    把持動作命令に対応する命令コードとは共に、前記第2
    のメモリ回路に記憶されることを特徴とする請求項の第
    5項に記載の視覚を用いた自動把持装置の制御装置。
  8. 【請求項8】ワークの画像を撮像し、この画像から前記
    ワークの位置情報を算出する画像処理部と、前記ワーク
    を前記位置情報に基づいて把持する把持部とからなる自
    動把持装置を制御する制御方法であって、前記ワークを
    撮像しそのワークの画像から位置情報を算出する一連の
    画像処理命令とこのワークを前記位置情報に基づいて把
    持する一連の把持動作命令とを含むプログラムを、前記
    画像処理命令と把持動作命令とを識別して解釈し、前記
    画像処理命令と把持動作命令とを、夫々対応する中間命
    令コードに変換し、変換された命令コードを夫々前記画
    像処理部及び把持部に渡すことを特徴とする視覚を用い
    た自動把持装置の制御方法。
  9. 【請求項9】1つの前記画像処理命令または把持動作命
    令を解釈して命令コードに変換した後に、次の前記画像
    処理命令または把持動作命令を解釈することを特徴とす
    る請求項の第8項に記載の視覚を用いた自動把持装置の
    制御方法。
  10. 【請求項10】前記画像処理部においては、前記画像処
    理命令から変換された命令コードを解釈実行し、前記把
    持部においては、前記把持動作命令から変換された命令
    コードを解釈実行することを特徴とする請求項の第8項
    に記載の視覚を用いた自動把持装置の制御方法。
JP3127173A 1991-05-30 1991-05-30 視覚を用いた自動把持装置の制御方法及び制御装置 Expired - Fee Related JP2834597B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3127173A JP2834597B2 (ja) 1991-05-30 1991-05-30 視覚を用いた自動把持装置の制御方法及び制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3127173A JP2834597B2 (ja) 1991-05-30 1991-05-30 視覚を用いた自動把持装置の制御方法及び制御装置

Publications (2)

Publication Number Publication Date
JPH04352203A true JPH04352203A (ja) 1992-12-07
JP2834597B2 JP2834597B2 (ja) 1998-12-09

Family

ID=14953476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3127173A Expired - Fee Related JP2834597B2 (ja) 1991-05-30 1991-05-30 視覚を用いた自動把持装置の制御方法及び制御装置

Country Status (1)

Country Link
JP (1) JP2834597B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346740A (ja) * 2005-09-01 2005-12-15 Yaskawa Electric Corp 作業機械の制御装置、作業機械の同期制御方法および作業機械制御システム
JP2008197000A (ja) * 2007-02-14 2008-08-28 Canon Inc 光学縞発生部材制御装置および方法
JP2010094787A (ja) * 2008-10-17 2010-04-30 Yamaha Motor Co Ltd 電動グリッパを装備するロボットおよび電動グリッパの制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346740A (ja) * 2005-09-01 2005-12-15 Yaskawa Electric Corp 作業機械の制御装置、作業機械の同期制御方法および作業機械制御システム
JP2008197000A (ja) * 2007-02-14 2008-08-28 Canon Inc 光学縞発生部材制御装置および方法
US7929120B2 (en) 2007-02-14 2011-04-19 Canon Kabushiki Kaisha Apparatus for controlling optical fringe generation member based on detected optical fringe and method therefor
JP2010094787A (ja) * 2008-10-17 2010-04-30 Yamaha Motor Co Ltd 電動グリッパを装備するロボットおよび電動グリッパの制御方法

Also Published As

Publication number Publication date
JP2834597B2 (ja) 1998-12-09

Similar Documents

Publication Publication Date Title
CN110573308B (zh) 用于机器人设备的空间编程的基于计算机的方法及系统
KR100300776B1 (ko) 자동화 장치
EP0433522A1 (en) Robotic system
CN101592951B (zh) 分布式仿人机器人通用控制系统
CN106530939A (zh) 一种多机器人教学实训平台控制系统及控制方法
CN112621765B (zh) 一种基于机械手的设备自动组装控制方法及装置
JP2019106043A (ja) 工程設計装置、手順生成装置、工程設計装置の制御方法、情報処理プログラム、および、記録媒体
EP3835902A1 (en) Control system and control device
CN110058591A (zh) 一种基于激光雷达与深度摄像机混合导航的agv系统
JP2000081906A (ja) 仮想工場シミュレーション装置および仮想工場シミュレーション方法
JPH04352203A (ja) 視覚を用いた自動把持装置の制御方法及び制御装置
US20050256606A1 (en) Method in the control of a machine tool cell
JPH05228866A (ja) 視覚を用いた自動把持装置の制御装置
JPH04352205A (ja) 視覚を用いた自動把持装置の制御装置
JPH04352204A (ja) 視覚を用いた自動把持装置の制御方法
JPH11165285A (ja) ロボットを備える部品分配用の制御システム
JP2982187B2 (ja) プログラマブルコントローラ
JP2023038338A (ja) ロボット制御装置、ロボット制御方法、端末装置、端末制御方法、及びロボット制御システム
TWI722573B (zh) 倉儲移載教學模組
JPH0764619A (ja) ロボットプログラム作成支援システム
CN111899629A (zh) 柔性机器人教学系统和方法
JPH0433002A (ja) 制御装置
CN205201515U (zh) 一种集成机械手的硬质合金刀片自动化装盘系统
CN112925712B (zh) 基于三轴运动系统并采用OpenCV图像检索技术的智能座舱人机交互系统测试装置
JP2024073243A (ja) 作業再現システム、作業再現方法及び作業再現ロボット

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980825

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

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101002

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees