JP3664910B2 - ロボットの制御装置 - Google Patents
ロボットの制御装置 Download PDFInfo
- Publication number
- JP3664910B2 JP3664910B2 JP09541299A JP9541299A JP3664910B2 JP 3664910 B2 JP3664910 B2 JP 3664910B2 JP 09541299 A JP09541299 A JP 09541299A JP 9541299 A JP9541299 A JP 9541299A JP 3664910 B2 JP3664910 B2 JP 3664910B2
- Authority
- JP
- Japan
- Prior art keywords
- robot
- objects
- control
- application program
- axis
- 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 - Lifetime
Links
- 230000007246 mechanism Effects 0.000 claims description 198
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000000034 method Methods 0.000 description 110
- 238000012545 processing Methods 0.000 description 54
- 230000008569 process Effects 0.000 description 44
- 238000004364 calculation method Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 35
- 230000002441 reversible effect Effects 0.000 description 33
- 230000006870 function Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000007789 sealing Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 239000012636 effector Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000010187 selection method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010129 solution processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明は、ロボットの制御装置に関する。更に詳述すると、本発明は、多数の制御軸を有する機械装置の制御に適したロボットの制御装置に関するものである。
【0002】
【従来の技術】
従来のロボットの制御装置では、1つのロボット言語アプリケーションプログラムタスク(以下、プログラムタスクという)が1台のロボットの制御を含む操作を行っている。即ち、1つのプログラムタスクが1台のロボットの制御に対応している。このため、例えば図25に示すような4つの制御軸101〜104を備える機械装置を制御する制御装置では、各制御軸101〜104を各ロボット105,106で重複して定義することができず、機械装置の制御軸集合を全く独立した別々のものにする必要があった(図26,図27)。これは、各ロボット105,106に重複した制御軸が含まれているとすると、各ロボット105,106がそれぞれ別々に重複した制御軸を操作することになり、適正なロボット操作を行うことができなくなるからである。そして、図28に示すように、水平方向位置決め作業のためのプログラムタスクがロボット105を、旋回/垂直方向位置決め作業のためのプログラムタスクがロボット106を別々に操作し、2台のロボットを使用して機械装置として一連の作業を行っていた(図29)。
【0003】
この従来の制御装置では、プログラムタスクと各ロボット105,106の対応関係がユーザがプログラムを作成する際に決定され、プログラムタスクから当該対応関係を変更することができなかった。即ち、プログラムタスクと各ロボット105,106とが1対1の関係に固定されており、この関係を機械装置の作業内容に応じて適宜変更して使用することは想定されていなかった。また、プログラムタスクを記述する場合には、機械装置の一連の作業における各ロボット105,106の分担を考慮して当該ロボット105,106毎にプログラムタスクを記述する必要があった。
【0004】
そして、この従来の制御装置では、各ロボット105,106が備える制御軸の数が異なる場合であっても、例えば図30及び図31に示すように、各ロボット105,106がぞれぞれ4つの制御軸を有する場合であっても、上述の場合と同様に制御を行っていた。
【0005】
また、従来の制御装置では、制御対象のロボットの機構に、逆機構解が複数存在する場合には逆機構解の計算処理を1つの計算式で表し、逆機構解の選択はこの計算式にパラメータを与えることで行っていた。この機構解の構成は、制御対象のロボットの機構に応じて様々であり、ゆえに逆機構解の計算処理を行う計算式に与える逆機構解選択のパラメータも様々であった。
【0006】
例えば、水平2軸スカラ型ロボットの場合、逆機構解の計算処理に対して座標変換に必要な座標情報以外に左手系または右手系のいずれの逆機構解を用いるかを選択するパラメータを与えていた。
【0007】
また、垂直5軸アーム型ロボットの場合、アーム部については水平2軸スカラ型ロボットと同様に左手系または右手系のいずれの逆機構解を用いるかを選択するパラメータを与えていた。一方、エンドエフェクタ部については、アーム部の逆機構解を選択するパラメータとは別に、3通りの順機構解および逆機構解の組に対応したパラメータを与えることで機構解の選択を行っていた。
【0008】
【発明が解決しようとする課題】
しかしながら、従来のロボットの制御装置では、1つのプログラムタスクで単一のロボットの操作しか出来なかったので、プログラムタスクが操作するロボット105,106を作業内容に応じて適宜変更することができなかった。このため、機械装置の一連の作業で複数のロボットを使用する必要がある場合に、プログラムが複雑・大型化して実行速度の低下を招いていた。また、複数のプログラムタスクが同じロボットを操作することを許していなかったので、プログラムタスクを作業内容に対応させて記述することができなかった。さらに、各ロボット105,106毎にプログラムタスクを記述する必要があるため、複数のロボット作業を組み合わせて機械装置として一連の作業を行う場合に、この一連の作業におけるワークの流れを中心にプログラムの記述を行うことができず、プログラムの記述性を悪化させ、各ロボット105,106の作業能率を低下させる原因となっていた。
【0009】
また、別々のロボット105,106では制御軸101〜104を重複させないようにしていたので、1つの制御軸の集合に対して複数の機構解を定義することができず、作業内容に応じて適切な機構解を用いて制御することが困難であり、ロボットの作業効率およびプログラムの記述性を低下させていた。さらに、各ロボット105,106の制御軸101〜104および機構解の組合せをプログラムタスクから変更することが出来なかったので、作業内容に応じてロボット105,106が備える制御軸101〜104をユーザが変更することが困難であり、プログラムを複雑化・大型化させてロボットの作業効率を低下させていた。
【0010】
さらに、逆機構解が複数存在する場合に逆機構解の計算処理を1つの計算式であらわし、逆機構解の選択をこの計算式にパラメータを与えることで行っているので、対応していないロボットの機構解を新規に追加するような場合、逆機構解を選択するパラメータの追加または変更に伴い、機構解計算処理部およびこの計算処理を利用しており関連性が高い処理部が実装されているシステムソフトウェアに大きな変更を加える必要があった。これにより、新規に機構解を追加する場合には、システムソフトウェアの開発に多大な工数と労力を費やすことが強いられていた。
【0011】
また、利用者の作成するユーザーアプリケーションプログラムにおいても、機構解を選択するパラメータの指定方法が、制御対象のロボットに応じて異なっていた。
【0012】
例えば水平2軸スカラ型ロボットの場合、左手系および右手系の逆機構解を選択するためにプログラム言語において各逆機構解に対応した関数Left( )およびRight( )を提供し、アプリケーションプログラムは、これらの関数を呼び出すことで選択を行っていた。
【0013】
また、垂直5軸アーム型ロボットの場合、アーム部の逆機構解の選択は水平2軸スカラ型ロボットと同様に関数Left( )およびRight( )を用いて行っていた。エンドエフェクタ部については、Wrist( )関数を新規に追加し、この関数にパラメータとして−1,0,1のうちいずれか1つを与えることで、対応する3通りの順機構解および逆機構解の組の選択を行っていた。
【0014】
この様に、ユーザーアプリケーションプログラムにおいて機構解の選択を一元的に取り扱うことができないため、プログラム開発上取り扱い難いものとなっていた。
【0015】
さらに、新規に機構解を追加する際、従来にはない機構解の指定方法が必要になった場合、システムソフトウェアで提供されるプログラム言語実行部に対して機構解指定を行う関数を新たに追加しなければならず、制御装置のシステムソフトウェアの開発工数の増加につながっていた。
【0016】
即ち、▲1▼従来の制御装置で対応していなかった機構を含むロボットの機構解を新規に追加する場合、逆機構解および順機構解の指定方法の相違により、これを実装するシステムソフトウェアに大きな変更をせずに追加することが可能にしたい、▲2▼アプリケーションプログラムにおいて、制御対象のロボットの機構に依存することなく機構解の指定を一元的に行いたい、との要請があった。
【0017】
本発明は、プログラムタスクと制御対象であるロボットとの関係に柔軟性を持たせることができるロボットの制御装置を提供することを目的とする。また、本発明は、各ロボットと制御軸との関係に柔軟性を持たせることができるロボットの制御装置を提供することを目的とする。さらに、本発明は、システムソフトウェアおよびアプリケーションプログラムにおいて、機構解の選択方法を一元化しソフトウェアの構成を簡素化することで、開発性を向上し開発工数の低減できるロボットの制御装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
かかる目的を達成するために請求項1記載のロボットの制御装置は、同期した制御の単位として複数のロボットを制御対象として定義可能であり、各ロボットは制御軸の部分集合と、これに対応する機構解を異なる組合せで保持し、各ロボットはプログラムタスクから切り替えて使用され制御されるようにしている。したがって、制御軸の部分集合に対して重複して異なる機構解を定義することが可能になり、異なる機構解を切り替えて制御を行うことができるようになる。
【0023】
また、請求項2記載のロボットの制御装置は、各ロボットに属する制御軸の部分集合は互いに重複することを許容し、制御軸の部分集合が各ロボットで互いに重複するか一致する場合は、各ロボットによる制御軸の部分集合の同時使用を禁止し、制御軸の部分集合が各ロボットで重複せず独立な場合は、これらのロボットによる制御軸の部分集合の同時使用を許容して制御するようにしている。各ロボット間で制御軸の部分集合が重複するか一致する場合には、各ロボットがそれぞれ自由に重複する制御軸を操作すると当該制御軸の操作を正常に行うことができない。したがって、この場合には、重複する制御軸の同時使用を禁止して重複する制御軸の正常な操作を確保する。一方、各ロボット間で制御軸の部分集合が独立している場合には、各ロボットによって制御軸を同時に使用しても上述の問題は生じないので、この場合には各制御軸の同時使用を可能にする。
【0024】
さらに、請求項3記載のロボットの制御装置は、ロボットの構成は、プログラムタスクから制御軸と機構解の組合せを適宜選択可能としている。したがって、一連の作業に応じて作業内容に適した制御軸と機構解の組合せをロボットユーザが選択してロボットを定義することができる。
【0025】
【発明の実施の形態】
以下、本発明の構成を図面に示す最良の形態に基づいて詳細に説明する。
【0026】
図1に、本発明を適用したロボットの制御装置の実施形態の一例を示す。このロボットの制御装置(以下、単に制御装置という)は、これを構成するソフトウェアに対してオブジェクト指向分析設計法に基づいたソフトウェア設計を適用している。以下、オブジェクト指向分析設計法に基づいて説明する。この制御装置は、例えば2つのサブシステム、具体的には、アプリケーションプログラム実行サブシステム1とロボットサブシステム2を備えている。各サブシステム1,2は、さらにいくつかのオブジェクトから構成され、これらのオブジェクトが相互に連携して機能することで、アプリケーションプログラムによる機械装置の動作制御を実現している。
【0027】
ここで、制御対象である機械装置について説明する。本実施形態の機械装置では、例えば図2に示すように、第1アーム部3の回転制御を第1制御軸(θ1軸)6、第2アーム部4の回転制御を第2制御軸(θ2軸)7、ツール端5の上下高さ制御を第3制御軸(Z軸)8、ツール端5の回転制御を第4制御軸(S軸)9とし、これらの制御軸6〜9の組合せによって5台のロボット10〜14が定義されている。即ち、図3に示すように、先ず第1制御軸6と第2制御軸7、第3制御軸8と第4制御軸9、全ての制御軸6〜9をそれぞれ制御軸部分集合と考える。そして、図4に示すように、第1ロボットオブジェクト26は、全ての制御軸6〜9とこれらの集合を左手系とした場合の第1機構解15を保持している。また、第2ロボットオブジェクト27は、全ての制御軸6〜9とこれらの集合を右手系とした場合の第2機構解16を保持している。また、第3ロボットオブジェクト28は、第1制御軸6及び第2制御軸7とこれらの集合を左手系とした場合の第3機構解17を保持している。また、第4ロボットオブジェクト29は、第1制御軸6及び第2制御軸7とこれらの集合を右手系とした場合の第4機構解18を保持している。さらに、第5ロボットオブジェクト30は、第3制御軸8及び第4制御軸9とこれらの集合に対応する第5機構解19を保持している。ロボットオブジェクト26〜30は、それぞれ対応する制御対象のロボット10〜14の制御を行う。
【0028】
今、機械装置の第2制御軸の角度についてアーム3,4が一直線上に伸びた状態を基準とし、機械装置の上方から見て第2制御軸を反時計方向に旋回させた場合の角度を正とし逆に時計方向に旋回させた場合の角度を負とする。
【0029】
このとき、ロボット10は機械装置の第2制御軸を基準から負の方向に旋回させた姿勢で機械装置全体を使用して作業を行うものであり、ロボット11は機械装置の第2制御軸を基準から正の方向に旋回させた姿勢で機械装置全体を使用して作業を行うものである。
【0030】
このため、ロボット10の機構解15は第2制御軸を基準から負の方向に旋回させた姿勢で機械装置全体を使用して作業を行う場合の左手系の機構解であり、ロボット11の機構解16は第2制御軸を基準から正の方向に旋回させた姿勢で機械装置全体を使用して作業を行う場合の右手系の機構解である。
【0031】
また、ロボット12は機械装置の第2制御軸を基準から負の方向に旋回させた姿勢でアーム3,4を使用して作業を行うものであり、ロボット13は機械装置の第2制御軸を基準から正の方向に旋回させた姿勢でアーム3,4を使用して作業を行うものである。
【0032】
このため、ロボット12の機構解17は機械装置の第2制御軸を基準から負の方向に旋回させた姿勢でアーム3,4を使用して作業を行う場合の左手系の機構解であり、ロボット13の機構解18は第2制御軸を基準から正の方向に旋回させた姿勢でアーム3,4を使用して作業を行う場合の右手系の機構解である。
【0033】
また、ロボット14は機械装置の第3、第4制御軸によりツール端5の上下高さおよび回転制御により作業を行うものである。このため、ロボット14の機構解19は機械装置の第3、第4制御軸を使用して作業を行う機構解である。
【0034】
本発明の制御装置のアプリケーションプログラム実行制御サブシステム1は、ロボットユーザの作成したアプリケーションプログラムの実行制御および構成管理を行うもので、ロボットユーザは、作成したアプリケーションプログラムコードを本発明の制御装置に複数登録することが可能である。また、複数登録したアプリケーションプログラムには、プログラム実行処理単位であるタスクが割り付けられており、時分割または事象駆動でのタスク切替に基づいたマルチタスク実行制御機能により並列的に制御装置上で実行することができる。ロボットユーザが作成したアプリケーションプログラムコードの登録は、アプリケーションプログラム構成情報を適宜作成することで行う。ロボットユーザの作成したアプリケーションプログラムコードは、制御装置または通信回線で接続されたリモートのホストコンピュータの記録媒体に保管される。アプリケーションプログラムコードの起動および停止などの実行制御は、操作端末による対話的操作、外部装置で発生する事象、プログラム記述により行うことができる。
【0035】
このアプリケーションプログラム実行制御サブシステム1は、アプリケーションプログラムオブジェクトとアプリケーションプログラム管理オブジェクトを備えている。本実施形態では、アプリケーションプログラムオブジェクトとして、4つのアプリケーションプログラムオブジェクト20〜23を有している。一方、アプリケーションプログラム管理オブジェクト25は、制御装置のシステムソフトウェア内に1つだけ存在する。
【0036】
アプリケーションプログラムオブジェクト20〜23は、ロボットユーザの作成したアプリケーションプログラムコードの実行単位であり、プログラムの実行単位であるタスクが割り付けられたアプリケーションプログラムコードから構成されている。各アプリケーションプログラムオブジェクト20〜23は、ロボットサブシステム2に含まれるオブジェクトを操作することができる。ロボットユーザは、作業内容に応じてアプリケーションプログラムコードを作成することで、制御装置によりロボット10〜14の動作制御を行い、所望の作業を実現することができる。
【0037】
各アプリケーションプログラムオブジェクト20〜23は、アプリケーションプログラム構成情報24に基づいて作成される。ロボットユーザは、作成したアプリケーションプログラムコードの構成に応じてアプリケーションプログラム構成情報24を作成することで、アプリケーションプログラムコードをアプリケーションプログラムとして1つ以上登録して、制御装置上で実行することが可能になる。アプリケーションプログラム構成情報24には、アプリケーションプログラムコードおよびタスクに関する情報が含まれている。
【0038】
ロボットユーザの作成したアプリケーションプログラムコードは、制御装置または通信回線で接続されたリモートのホストコンピュータの記録媒体に永続的に保持される。
【0039】
各アプリケーションプログラムオブジェクト20〜23は、これを利用するオブジェクトに対して実行制御および構成管理等の基本的な操作を行うメソッドを提供する。ロボットユーザは、必要があればアプリケーションプログラムコードによりこれらのメソッドの処理内容を変更することができる。
【0040】
アプリケーションプログラム管理オブジェクト25は、アプリケーションプログラム構成情報24に基づいて、アプリケーションプログラムオブジェクト20〜23を作成しこれを管理する。また、アプリケーションプログラム管理オブジェクト25は、アプリケーションプログラムの構成管理および実行制御を行う。アプリケーション管理オブジェクト25は制御装置のシステムソフトウェア内に1つだけ存在する。
【0041】
アプリケーションプログラム管理オブジェクト25は、アプリケーションプログラム構成情報24に従って対応する実行形式のアプリケーションプログラムコードをロードし、アプリケーションプログラムオブジェクト20〜23を作成してこれを保持する。作成されたアプリケーションプログラムオブジェクト20〜23にはそれぞれプログラムの実行処理単位であるタスクが割り付けられ、時分割または事象駆動によるタスク切替を行うマルチタスク実行制御により、各オブジェクトの処理を並列的に実行することができる。
【0042】
アプリケーションプログラム構成情報24は、アプリケーションプログラムを作成する際にロボットユーザが作成するもので、制御装置または通信回線によって接続されたリモートのホストコンピュータの記録媒体に永続的に保存される。このアプリケーションプログラム構成情報24は、アプリケーションプログラム管理オブジェクト25がアプリケーションプログラムオブジェクト20〜23を作成する際に適宜参照される。アプリケーションプログラムオブジェクト20〜23は、このアプリケーションプログラム構成情報24を参照することで、▲1▼制御装置が起動した場合、▲2▼アプリケーションプログラムコードが変更された場合、▲3▼ロボットユーザが対話的操作により要求した場合、等に作成される。
【0043】
アプリケーションプログラム管理オブジェクト25は、これを利用する▲1▼アプリケーションプログラムオブジェクト、▲2▼システムソフトウェアに含まれる他のオブジェクト等に対してアプリケーションプログラムオブジェクト20〜23の実行制御、構成管理および照会操作を行うメソッドの組を提供する。アプリケーションプログラムオブジェクトまたはシステムソフトウェアに含まれる他のオブジェクト等は、これらのメソッドを用いることでアプリケーションプログラム管理オブジェクト25及びこれが保持するアプリケーションプログラムオブジェクト20〜23を操作することができる。
【0044】
各アプリケーションプログラムオブジェクト20〜23に対して操作する必要があるアプリケーションプログラムオブジェクトまたはシステムソフトウェアに含まれる他のオブジェクト等は、まず、アプリケーションプログラム管理オブジェクト25に対してアプリケーションプログラムオブジェクト20〜23の照会操作を行い、該当するアプリケーションプログラムオブジェクト20〜23への参照を取得する。これにより、アプリケーションプログラムオブジェクトまたはシステムソフトウェアに含まれる他のオブジェクト等はこの参照を用いて対象のアプリケーションプログラムオブジェクト20〜23の操作を行うことが可能になる。
【0045】
アプリケーションプログラム管理オブジェクト25は、保持しているアプリケーションプログラムオブジェクト20〜23の実行制御を行うメソッドを提供している。アプリケーションプログラムオブジェクトまたはシステムソフトウェアに含まれる他のオブジェクト等は、このメソッドを用いることでアプリケーションプログラムオブジェクト20〜23に割り付けられているタスクの起動、停止などの実行制御を行うことができる。
【0046】
このアプリケーションプログラムオブジェクト20〜23の実行制御は、操作端末または通信回線で接続されたリモートのホストコンピュータによる対話的操作、ビット単位入出力装置(I/O)等から取り入れた外部装置の発生する事象、アプリケーションプログラムコードの記述等による方法で行うことができる。
【0047】
また、アプリケーションプログラム管理オブジェクト25は、アプリケーションプログラムの実行制御機能に加え、アプリケーションプログラムオブジェクト20〜23のデバック機能を提供している。このデバック機能は、詳細なアプリケーションプログラムオブジェクト20〜23の実行制御機能、アプリケーションプログラムオブジェクト20〜23の状態情報の取得、アプリケーションプログラムオブジェクト20〜23内部で定義されているオブジェクトの情報の取得と変更等を可能にしている。また、このデバック機能は、操作端末または通信回線で接続されたリモートのホストコンピュータによって利用することが可能である。ただし、操作端末からのデバッグ機能の利用は制限される場合がある。
【0048】
ロボットサブシステム2は、各ロボット10〜14の構成を管理しアプリケーションプログラムオブジェクト20〜23の要求に応じたロボット10〜14の動作制御を行うものである。このロボットサブシステム2は、ロボットオブジェクト26〜30、ロボット管理オブジェクト31、機構解オブジェクト32〜36、動作制御処理オブジェクト37〜41、動作制御処理管理オブジェクト42、制御軸オブジェクト43〜46、制御軸管理オブジェクト47を有している。このロボットサブシステム2は、ロボットオブジェクト26〜30を中心として各オブジェクトが相互に作用することで、アプリケーションプログラムオブジェクト20〜23が制御対象となるロボット10〜14の制御を行うことを可能にしている。
【0049】
ロボットオブジェクト26〜30は、ロボット10〜14に対応した機構モデルおよび制御軸6〜9の構成を、それぞれ機構解オブジェクト32〜36および制御軸オブジェクト43〜46として保持し管理するもので、アプリケーションプログラムオブジェクト20〜23など他のオブジェクトから渡された動作制御命令に従って、機械装置の制御軸6〜9の動作制御を行う。また、マルチタスクで実行している複数のアプリケーションプログラムオブジェクト20〜23がロボットオブジェクト26〜30に対して同時操作を行った場合に択一制御を行い、複数のオブジェクト20〜23が無秩序にロボットオブジェクト26〜30を操作することを制限する。
【0050】
機構解オブジェクト32〜36は、各ロボット10〜14の機構の数学モデルを保持している。ロボットオブジェクト26〜30は、各ロボット10〜14の機構に対応した機構解オブジェクト32〜36を1つずつ保持している。機構解オブジェクト32〜36は、ロボット構成情報48に含まれる機構情報に従い、機構解オブジェクト32〜36を作成し、これを保持管理する。ロボット構成情報48は、制御対象となる各ロボット10〜14の機構に応じてロボットユーザが作成する。ロボットオブジェクト26〜30は、動作制御処理オブジェクト37〜41や他のオブジェクトに対して、機構解オブジェクト32〜36への参照または機構解計算処理へのアクセスを可能にするメソッドを提供する。
【0051】
制御軸オブジェクト43〜46は、制御対象である機械装置に含まれる制御軸6〜9に対応している。ロボットオブジェクト26〜30は、ロボット構成情報48に従って複数の制御軸オブジェクト43〜46への参照を保持する。制御軸オブジェクト43〜46は、各機械装置の制御軸6〜9の構成に基づいて、ロボットユーザがロボット構成情報48に記録する。制御軸オブジェクト43〜46は、複数のロボットオブジェクト26〜30から参照されることが許されている。
【0052】
動作制御処理オブジェクト37〜41は、ロボットオブジェクト26〜30が与えた動作制御命令に従って、ロボットオブジェクト26〜30が保持している制御軸オブジェクト43〜46の集合に対して動作制御を行う。ロボットオブジェクト26〜30は、ただ1つの動作制御処理オブジェクト37〜41に対する参照を保持する。また、動作制御処理オブジェクト37〜41は、複数のロボットオブジェクト26〜30から重複して参照されることは許されていない。
【0053】
ロボットオブジェクト26〜30には、ロボット10〜14の動作制御、状態取得および構成管理などの処理を実行するためのメソッドの組が定義されており、これらのメソッドはロボットオブジェクト26〜30を利用するオブジェクトに対して公開されている。アプリケーションプログラムオブジェクト20〜23を含むオブジェクトは、このメソッドを利用してロボットオブジェクト26〜30に各種処理を実行する命令を引き渡し、該当するロボット10〜14に対して動作制御など所望の操作を実行する。
【0054】
ロボットオブジェクト26〜30は、複数のオブジェクトからの操作に対して制約を設けている。これは、複数のオブジェクトが同時に無秩序に1つのロボットオブジェクトに対して操作を行うことで、各オブジェクトが想定している動作制御が正しく実行できなくなることを防ぐためである。つまり、複数のアプリケーションプログラムオブジェクト20〜23が同時に1つのロボットオブジェクト26〜30に対して記述された作業内容に沿って動作制御命令を実行した場合には、これらの動作制御命令が無秩序に実行されてしまうため、各アプリケーションプログラムが想定している動作を正しく実行できなくなるからである。
【0055】
この問題を解決するために、ロボットオブジェクト26〜30はこれを利用するアプリケーションプログラムオブジェクト20〜23に対して択一制御を行う。即ち、ロボットオブジェクト26〜30は、これを利用するアプリケーションプログラムオブジェクト20〜23のうち1つだけに使用権を与え、使用権を獲得したアプリケーションプログラムオブジェクト20〜23だけに対してロボットオブジェクト26〜30の完全な操作を許可する。使用権が与えられていないアプリケーションプログラムオブジェクト20〜23には、ロボットオブジェクト26〜30の操作が制限される。すなわち、動作制御命令を含めロボットオブジェクト26〜30の状態を変更する操作は禁止され、ロボットオブジェクト26〜30の状態を取得する操作だけが可能となる。
【0056】
ロボットオブジェクト26〜30は、これを利用するアプリケーションプログラムオブジェクト20〜23に対して使用権の取得および解放の操作を1組のメソッドとして提供している。ロボットオブジェクト26〜30を利用するアプリケーションプログラムオブジェクト20〜23は、使用権の取得操作を行うことで該当ロボットオブジェクト26〜30の使用権を取得し、完全な操作を行うことが可能になる。アプリケーションプログラムオブジェクト20〜23は、ロボットオブジェクト26〜30の使用を終了した場合、使用権の解放操作を実行することでロボットオブジェクト26〜30の使用権を解放し、これにより他のアプリケーションプログラムオブジェクト20〜23が使用権を確保することが可能になる。あるアプリケーションプログラムオブジェクト20〜23によって既に使用権が取得されているロボットオブジェクト26〜30に対しては、アプリケーションプログラムオブジェクト20〜23は使用権を取得することができないために操作は制限される。
【0057】
ロボットオブジェクト26〜30は、これを利用するアプリケーションプログラムオブジェクト20〜23に使用権を与えた場合、保持している制御軸オブジェクト43〜46に対して動作制御を開始する。ロボットオブジェクト26〜30の使用権の取得操作において、ロボットオブジェクト26〜30は保持している制御軸オブジェクト43〜46の各々に対して、使用権の取得操作を実行する。制御軸オブジェクト43〜46が既に他のロボットオブジェクト26〜30によって使用されている場合、ロボットオブジェクト26〜30は該当する制御軸オブジェクト43〜46の使用を禁止される。ロボットオブジェクト26〜30が保持している制御軸オブジェクト43〜46のうち1つ以上の使用権が取得できなかった場合、ロボットオブジェクト26〜30は制御軸オブジェクト43〜46の制御を行うことができないため、このロボットオブジェクト26〜30を利用するアプリケーションプログラムオブジェクト20〜23に対して使用権を与えない。そして、他のロボットオブジェクト26〜30が該当する制御軸オブジェクト43〜46の使用を終了した場合、ロボットオブジェクト26〜30は当該ロボットオブジェクト26〜30を利用するアプリケーションプログラムオブジェクト20〜23に対して使用権を与えることが可能になる。
【0058】
ロボット管理オブジェクト31は、ロボット構成情報48に基づいてロボットオブジェクト26〜30を作成すると共に、作成した各ロボットオブジェクト26〜30を保持し管理するものである。また、このロボット管理オブジェクト31は、保持しているロボットオブジェクト26〜30について他のオブジェクトからの照会要求に対して、該当するロボットオブジェクト26〜30への参照を返すものである。このロボット管理オブジェクト31は、制御装置のシステムソフトウェア内に1つだけ存在する。
【0059】
ロボット管理オブジェクト31は、ロボット構成情報48に従って各ロボットオブジェクト26〜30を作成し保持する。ロボット構成情報48は、ロボット10〜14の構成に応じてロボットユーザが作成する。このロボット構成情報48は、制御装置または通信回線で接続されたリモートのホストコンピュータ等の記録媒体に永続的に保持され、ロボット管理オブジェクト31がロボットオブジェクト26〜30を作成する際に適宜参照される。
【0060】
このロボット管理オブジェクト31は、ロボットオブジェクト26〜30を作成する際に対応する動作制御処理オブジェクト37〜41および制御軸オブジェクト43〜46への参照をロボットオブジェクト26〜30に設定する。また、動作制御処理オブジェクト37〜41に対しては、対応するロボットオブジェクト26〜30への参照を引き渡す。さらに、ロボット管理オブジェクト31は、ロボット構成情報48に含まれる機構解構成情報をロボットオブジェクト26〜30に引き渡す。そして、ここで渡された機構解構成情報は、ロボットオブジェクト26〜30が機構解オブジェクト32〜36を作成する際に用いられる。通常は、ロボット管理オブジェクト31は制御装置が起動した時点でロボットオブジェクト26〜30を作成する。
【0061】
このロボット管理オブジェクト31は、これを利用するアプリケーションプログラムオブジェクト20〜23に対してロボットオブジェクト26〜30の構成管理および照会を行うメソッドの組を提供している。そして、ロボットオブジェクト26〜30の操作を必要とするアプリケーションプログラムオブジェクト20〜23は、ロボット管理オブジェクト31に対して操作対象となるロボットオブジェクト26〜30の照会操作を行い、その参照を取得する。この後、アプリケーションプログラムオブジェクト20〜23はここで得られた参照を用いて対象のロボットオブジェクト26〜30の操作を行うことができる。
【0062】
機構解オブジェクト32〜36は、機構解計算処理により任意に定義した論理的な座標系上の位置と各制御軸6〜9の位置との間の双方向の変換処理を行う。ここで、各制御軸6〜9の角度または位置を要素とする位置ベクトルで表される座標系を制御軸座標系と定義する。
【0063】
機構解計算処理は、制御対象の機構の数学モデルであり、論理的な座標系と制御軸座標系の関係を一連の数式により定義している。ここで、論理的な座標系とは直行座標系、円筒座標系または制御軸座標系など、ロボットユーザがロボット10〜14の動作制御を行う上で都合の良い座標系を定義することができる。
【0064】
また、機構解計算処理は順方向の計算処理と逆方向の計算処理から構成される。順方向の計算処理は順機構解計算処理と呼び、制御軸座標系上の位置から論理的な座標系上の位置への変換処理を行うものである。一方、逆方向の計算処理は逆機構解計算処理と呼び、論理的な座標系上の位置から制御軸座標系上の位置への変換処理を行うものである。図5に、機構解計算処理の順機構解および逆機構解計算処理の関係を示す。機構解オブジェクト32〜36は、他のオブジェクトに対してこれらの順機構解および逆機構解計算処理を実行するメソッドを公開している。
【0065】
機構解オブジェクト32〜36は、各ロボットオブジェクト26〜30によってロボット構成情報48に基づいて作成され管理されている。機構解オブジェクト32〜36は、主に動作制御処理オブジェクト37〜41がロボット10〜14の動作制御を行う際に、論理的な座標系で作成した経路上の位置を制御軸座標系に変換し、各制御軸6〜9の位置を算出する際に用いられる。また、制御軸6〜9が位置を自己保持できない状態、すなわちロボット10〜14の運転準備が完了していないなどサーボ位置制御が作用していない状態では、各制御軸6〜9の位置を論理的な座標系上の位置に変換する際に用いられる。
【0066】
動作制御処理オブジェクト37〜41は、与えられた動作制御命令を解釈し制御軸集合の動作制御を行うものである。動作制御処理オブジェクト37〜41は、タイマオブジェクト49〜53を有しており、ロボットオブジェクト26〜30から動作制御命令を受ける。
【0067】
即ち、タイマオブジェクト49〜53は、動作制御処理オブジェクト37〜41の動作制御処理オブジェクト37〜41に含まれる動作制御処理を指定した一定の時間間隔で呼び出して実行する。これにより、動作制御処理では与えられた動作制御命令に従い、微少時間毎の各制御軸6〜9の移動量を算出し制御軸6〜9に制御入力として与え動作制御する。タイマオブジェクト49〜53は、各動作制御処理を実行する時間間隔を指令周期と定義する。
【0068】
各動作制御処理オブジェクト37〜41は、個別のタイマオブジェクト49〜53への参照をそれぞれ重複することなく保持している。これにより保持しているタイマオブジェクト49〜53に別々の時間間隔を指定することで、各動作制御処理オブジェクト37〜41は異なった指令周期で制御軸6〜9の集合の動作制御を可能としている。
【0069】
ロボットオブジェクト26〜30は、動作制御処理オブジェクト37〜41に対して動作制御命令を与え、制御軸集合の動作制御を促す。動作制御処理オブジェクト37〜41はこの動作制御命令に従い、指令周期毎に各制御軸6〜9の移動量を算出し、ロボットオブジェクト26〜30の保持する制御軸オブジェクト43〜46に制御入力として与える。
【0070】
ロボットオブジェクト26〜30と動作制御処理オブジェクト37〜41は1対1に対応しており、それぞれのオブジェクトが重複することなく互いのオブジェクトに対する参照を保持している。動作制御処理では、この1対のオブジェクトの組が相互に作用することで、ロボット10〜14に含まれる制御軸集合を各集合毎に独立して動作制御することを可能にしている。つまり、制御の対象である機械装置にいくつかのロボット10〜14が含まれる場合、それぞれのロボット10〜14にこのオブジェクトの組、即ち1対1に対応するロボットオブジェクト26〜30と動作制御処理オブジェクト37〜41を割り当てることで、各ロボット10〜14を独立に動作制御することを可能にする。
【0071】
動作制御処理オブジェクト37〜41は、次のようにして動作制御処理を行う。先ず、与えられた動作制御命令に従って、ツール端5の経路および速度曲線を論理的な座標系上に作成する。次に、指令周期毎に、論理的な座標系の経路上で微少時間での移動量を速度曲線にしたがって算出する。ここで求めた移動量を、対応するロボットオブジェクト26〜30が保持する機構解オブジェクト32〜36の逆機構解処理を用いることで、制御軸座標系での移動量、すなわち各制御軸6〜9の移動量に変換する。そして、得られた制御軸6〜9の移動量を、ロボットオブジェクト26〜30の保持する各制御軸オブジェクト43〜46に制御入力として与えることで、微少時間毎の制御軸6〜9の移動を行う。この後、指令周期毎に上述の処理を、ツール端5が目標の位置(経路の終点)に到達するまで実行する。これによりツール端5を論理的な座標系での経路に沿って動作させることを実現している。
【0072】
動作制御処理管理オブジェクト42は、ロボット構成情報48に基づいて動作制御処理オブジェクト37〜41を作成すると共に、作成した各動作制御処理オブジェクト37〜41を保持して管理する。また、動作制御処理管理オブジェクト42は、保持している動作制御処理オブジェクト37〜41についてロボットオブジェクト26〜30からの照会要求に対して、該当する動作制御処理オブジェクト37〜41への参照を返す。
【0073】
動作制御処理管理オブジェクト42は、ロボット構成情報48に従って各ロボットオブジェクト26〜30に対応した動作制御処理オブジェクト37〜41を作成し保持する。動作制御処理管理オブジェクト42は、各動作制御処理オブジェクト37〜41毎にタイマオブジェクト49〜53を取得し、これにタイマオブジェクト49〜53への参照を設定する。また、同時にタイマオブジェクト49〜53に対して動作制御処理オブジェクト37〜41への参照を設定し、タイマオブジェクト49〜53が動作制御処理オブジェクト37〜41に含まれる動作制御処理を、タイマ時間間隔毎に呼び出せるようにする。タイマオブジェクト49〜53のタイマ時間間隔には、ロボット構成情報48に含まれる各ロボットオブジェクト26〜30に対応した指令周期の値が設定される。
【0074】
動作制御処理管理オブジェクト42は、制御装置が起動した時点で動作制御処理オブジェクト37〜41を作成する。動作制御処理管理オブジェクト42は、制御装置のシステムソフトウェア内に1つだけ存在する。
【0075】
動作制御処理オブジェクト37〜41は、これを利用する他のオブジェクトに対して動作制御処理オブジェクト37〜41の構成管理および照会を行うメソッドの組を提供する。ある動作制御処理オブジェクト37〜41の操作を必要とするオブジェクトは、まず、動作制御処理管理オブジェクト42に対して操作対象の動作制御処理オブジェクト37〜41の照会操作を行い、その参照を取得する。これにより、オブジェクトはここで得られた参照を用いて対象の動作制御処理オブジェクト37〜41の操作を行うこうができる。
【0076】
制御軸オブジェクト43〜46は、制御対象の機械装置に含まれる各制御軸6〜9に対応している。制御軸6〜9は、機械装置の機構において制御対象となる各機構部位である。例えば、多関節型ロボットの場合では各関節部であり、スライダ機構およびこれを組み合わせた直交座標系型ロボットの場合では各スライダ機構部が制御軸に対応する。本実施形態では、上述のように、第1アーム部3の回転を制御する部位を第1制御軸6、第2アーム部4の回転を制御する部位を第2制御軸7、ツール端5の上下高さ制御を行う部位を第3制御軸(Z軸)8、ツール端5の回転制御を行う部位を第4制御軸(S軸)9としている。制御軸オブジェクト43〜46は、制御軸6〜9を駆動するACサーボモータ、DCサーボモータ、ステッパ等のアクチュエータの制御を行う。
【0077】
制御軸オブジェクト43〜46は、制御軸構成情報54に基づいて構成される。制御軸構成情報54は、制御対象の機械装置の構成に応じてロボットユーザが作成し、制御装置または通信回線によって接続されたリモートのホストコンピュータ等の記録媒体に永続的に保持される。この制御軸構成情報54は、制御軸オブジェクト43〜46の形成に際して適宜参照される。
【0078】
制御軸オブジェクト43〜46は、これを利用するオブジェクトに対して対応する制御軸6〜9および当該制御軸6〜9を駆動するアクチュエータの動作制御、構成管理、状態取得等の操作を行うメソッドの組を提供している。制御軸管理オブジェクト47は、これらのメソッドを用いることで制御軸オブジェクト43〜46を操作することができる。
【0079】
制御軸オブジェクト43〜46は、複数のロボットオブジェクト26〜30からの操作について制限を設けている。これは、複数のロボットオブジェクト26〜30が1つの制御軸オブジェクト43〜46を同時に操作することで、制御軸6〜9の制御が無秩序になることを防ぐためである。すなわち、複数のロボットオブジェクト26〜30が1つの制御軸オブジェクト43〜46に対して同時に操作を行った場合、各ロボットオブジェクト26〜30の操作が無秩序に行われるため、それぞれのロボットオブジェクト26〜30が想定する制御軸6〜9の動作制御が正しく実行することができなくなる。
【0080】
この問題に対して、制御軸オブジェクト43〜46はこれを利用するロボットオブジェクト26〜30に対して択一制御を行う。即ち、制御軸オブジェクト43〜46は、これを利用するロボットオブジェクト26〜30の1つだけに対して使用権を与え、完全な操作を許可する。使用権が与えられていない他のロボットオブジェクト26〜30に対しては、制御軸オブジェクト43〜46の操作が制限される。すなわち、動作制御を含め制御軸オブジェクト43〜46の状態を変化させる操作は禁止され、状態の取得など制御軸オブジェクト43〜46の状態を変化させない操作だけが許可される。
【0081】
制御軸オブジェクト43〜46は、これを利用するロボットオブジェクト26〜30に対して使用権の取得操作および解放操作を行うメソッドの組を提供する。制御軸オブジェクト43〜46を利用するロボットオブジェクト26〜30は、使用権の取得操作を実行することで、該当の制御軸オブジェクト43〜46の使用権を取得し完全な操作を行うことが可能になる。ロボットオブジェクト26〜30は、制御軸オブジェクト43〜46の操作を終了したならば使用権の解放操作を行い、該当の制御軸オブジェクト43〜46の使用権を解放する。使用権が解放された制御軸オブジェクト43〜46については、他のロボットオブジェクト26〜30が使用権を獲得することが可能になる。他のロボットオブジェクト26〜30により既に使用権が取得されている制御軸オブジェクト43〜46の場合、これを利用するロボットオブジェクト26〜30は使用権を取得することができないため、制限された操作だけが許される。
【0082】
制御軸管理オブジェクト47は、制御軸構成情報54に基づいて制御軸オブジェクト43〜46を作成すると共に、作成した各制御軸オブジェクト43〜46を保持し管理するものである。また、制御軸管理オブジェクト47は、保持している制御軸オブジェクト43〜46についてロボットオブジェクト26〜30からの照会要求に対して、該当する制御軸オブジェクト43〜46への参照を返す。
【0083】
制御軸管理オブジェクト47は、制御軸構成情報54に従って各制御軸オブジェクト43〜46を作成し保持する。このとき用いる制御軸構成情報54は、制御対象の機械装置の構成に応じてロボットユーザが作成する。この制御軸構成情報54は、制御装置または通信回線で接続されたリモートのホストコンピュータ等の記録媒体上に永続的に保持され、制御軸管理オブジェクト47が制御軸オブジェクト43〜46を作成する際に適宜参照される。制御軸管理オブジェクト47は、制御装置が起動した時点等に制御軸オブジェクト43〜46を作成する。制御軸管理オブジェクト47は、制御装置のシステムソフトウェア内に1つだけ存在する。
【0084】
制御軸管理オブジェクト47は、これを利用するロボットオブジェクト26〜30に対して制御軸オブジェクト43〜46の構成管理および照会を行うメソッドの組を提供している。そして、制御軸オブジェクト43〜46の操作を必要とするロボットオブジェクト26〜30は、制御軸管理オブジェクト47に対して操作対象となる制御軸オブジェクト43〜46の照会操作を行い、該当する制御軸オブジェクト43〜46への参照を取得する。これにより、ロボットオブジェクト26〜30は得られた参照を用いて対象の制御軸オブジェクト43〜46の操作を行うことが可能となる。
【0085】
次に、本制御装置によるロボット10〜14の動作制御について説明する。
【0086】
ロボットオブジェクト26〜30がアプリケーションプログラムオブジェクト20〜23から動作制御命令を受け取ると、この命令に対して適切な情報処理を行い対応する動作制御処理オブジェクト37〜41に引き渡す。動作制御処理オブジェクト37〜41は、与えられた動作制御命令に従い制御対象の機械装置のツール端5の経路および速度曲線を作成する。さらに、動作制御処理オブジェクト37〜41は、ツール端5が目標位置に到達するまで指令周期毎に以下の処理を実行する。
【0087】
つまり、先ず指令周期毎に、ツール端5の経路上の位置を速度曲線に基づいて算出する。算出されたツール端5の位置は論理的な座標系上で与えられているため、これを各制御軸6〜9の角度または位置に変換する。この処理では、対応するロボットオブジェクト26〜30が保持する機構解オブジェクト32〜36の逆機構解計算処理を用いる。次に、算出した各制御軸6〜9の位置を各制御軸オブジェクト43〜46へ制御入力として与える。制御軸オブジェクト43〜46は、与えられた入力値に従って制御軸6〜9を駆動するアクチュエータの動作制御を行う。
【0088】
ここで、各ロボット10〜14は共通の制御軸6〜9を重複して有している。このため、使用権の取得と解放という概念を用いて重複した制御軸6〜9を使用している。即ち、アプリケーションプログラムオブジェクト20〜23は、まず、ロボット管理オブジェクト31に対してロボットオブジェクト26〜30の照会操作を行い、制御対象のロボット10〜14に対応したロボットオブジェクト26〜30への参照を取得する。参照を取得したアプリケーションプログラムオブジェクト20〜23は、取得した参照を介して、対象のロボットオブジェクト26〜30に対して使用権の取得操作を実行する。
【0089】
ロボットオブジェクト26〜30から使用権が取得できた場合、アプリケーションプログラムオブジェクト20〜23はロボットオブジェクト26〜30を操作することが可能になり、これを操作することで制御対象のロボット10〜14の動作制御を行うことができる。そして、アプリケーションプログラムオブジェクト20〜23は、ロボットオブジェクト26〜30の使用を終了したならば、対象のロボットオブジェクト26〜30に対して使用権の解放操作を行い使用権を解放する。これにより、他のアプリケーションプログラムオブジェクト20〜23がこのロボットオブジェクト26〜30の使用権を取得することが可能になる。
【0090】
一方、対象のロボットオブジェクト26〜30に対して使用権の取得操作を実行した際、使用権が取得できなかった場合にはアプリケーションプログラムオブジェクト20〜23はロボットオブジェクトへの操作が制限される。
【0091】
ロボットサブシステム2でロボットオブジェクト26〜30の構成が変化していない場合、ロボット管理オブジェクト31に対する対象のロボットオブジェクト26〜30の照会操作は、一度だけ実行すれば良い。これにより、取得したロボットオブジェクト26〜30への参照を用いて、対象のロボットオブジェクト26〜30の操作を行うことができる。
【0092】
なお、図1において、各ロボットオブジェクト26〜30から続く記号A〜Nは、各制御軸オブジェクト43〜46に続く記号A〜Nに接続するものである。
【0093】
次に、本発明の制御装置において、1つのプログラムタスクにより複数のロボットの制御が可能である点について更に説明する。ここでは、図6〜図8に示すように、第1アプリケーションプログラムオブジェクト20が第1及び第2ロボットオブジェクト26,27を制御する場合を例に説明する。なお、図6〜図8において、アプリケーションプログラムオブジェクト20をアプリケーションプログラムオブジェクト(1)と、ロボットオブジェクト26をロボットオブジェクト(1)と、ロボットオブジェクト27をロボットオブジェクト(2)と記載する。
【0094】
アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26,27の参照を介して操作対象であるロボットオブジェクト26,27の操作を行い、ロボット10,11の動作制御を実現する。アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26,27への参照をロボット管理オブジェクト31から取得することができる。
【0095】
ここで、アプリケーションプログラムオブジェクトには、ロボットオブジェクトへの参照を保持する個数について制限はない。即ち、ロボットオブジェクトの数と同じ数の参照を保持することができる。これは、アプリケーションプログラムの記述言語として用いる一般的なオブジェクト指向プログラミング言語の基本的な仕様に従った結果である。したがって、アプリケーションプログラムオブジェクトは、ロボット管理オブジェクトから必要なだけ制御対象であるロボットオブジェクトへの参照を取得することができる。即ち、アプリケーションプログラムオブジェクト20は、取得した参照を介して対象のロボットオブジェクト26,27の提供するメソッドを操作することが可能となる。
【0096】
アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26,27の使用に際して、まず、保持している各ロボットオブジェクト26,27への参照を介して使用権の取得操作を実行し、該当するロボットオブジェクト26,27の使用権を獲得する。これにより、アプリケーションプログラムオブジェクト20は、対象のロボットオブジェクト26,27を操作し対応するロボット10,11の制御を行うことが可能になる。
【0097】
即ち、図6〜図8のアプリケーションプログラムオブジェクト20が2つのロボットオブジェクト26,27を操作する際のシナリオに沿って説明すると、まず、アプリケーションプログラムオブジェクト20は、ロボット管理オブジェクト31からロボットオブジェクト26,27のそれぞれのオブジェクトの参照を取得する(図6中符号a,b)。これにより、アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26,27に対して、取得した参照を介してそれぞれ操作することが可能になる。
【0098】
この後、アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26,27に対して使用権の取得操作を行う(図7中符号c,d)。この場合、アプリケーションプログラムオブジェクト20は、いまだ他のアプリケーションプログラムオブジェクト21〜23によってロボットオブジェクト26,27の使用権が取得されていなければ、各ロボットオブジェクト26,27の使用権を取得することができる。なお、図6〜図8の例とは違って、ロボットオブジェクト間で保持する制御軸の部分集合の包含関係に重複がない場合にも、アプリケーションプログラムオブジェクトはロボットオブジェクトの使用権を取得することができる。
【0099】
ロボットオブジェクト26,27の使用権の取得に成功すると、アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26,27に対して動作制御などの操作を行うことが可能になる(図7,図8中符号e)。そして、アプリケーションプログラムオブジェクト20でロボットオブジェクト26,27に対する操作が完了した場合、各ロボットオブジェクト26,27に対して使用権の解放操作を実行することで使用権を解放する(図8中符号f,g)。使用権が解放されることで、他のアプリケーションプログラムオブジェクトが再びこれらのロボットオブジェクト26,27の使用権を取得し操作することが可能になる。
【0100】
この様にして、1つのアプリケーションプログラムオブジェクト(プログラムタスク)20は、複数のロボットオブジェクト(ロボット)26,27の制御を行うことができる。
【0101】
次に、本発明の制御装置において、一つのロボットが複数のプロクラムタスクからの制御の要求を択一的に受付可能である点について更に説明する。
【0102】
本発明の制御装置では、アプリケーションプログラムオブジェクト20〜23とロボットオブジェクト26〜30の関係は、アプリケーションプログラムオブジェクト20〜23がロボット管理オブジェクト31から必要なロボットオブジェクト26〜30への参照を取得することで決定されている。この参照を取得することで、アプリケーションプログラムオブジェクト20〜23はロボットユーザの所望する任意のロボットオブジェクト26〜30への操作が可能になる。また、ロボットオブジェクト26〜30についても、最初からある特定のアプリケーションプログラムオブジェクト20〜23からの要求だけを受け付けることを前提としていない。したがって、ロボット管理オブジェクト31によって参照が与えられた任意のアプリケーションプログラムオブジェクト20〜23からの操作を受け付けることができる。すなわち、ロボットオブジェクト26〜30は特定のアプリケーションプログラムオブジェクト20〜23からだけでなく、複数のアプリケーションプログラムオブジェクト20〜23からの操作を受け付けることができる。
【0103】
ロボットオブジェクト26〜30は、複数のアプリケーションプログラムオブジェクト20〜23からの操作に対して、制限を設けている。すなわち、ロボットオブジェクト26〜30は同時に1つだけのアプリケーションプログラムオブジェクト20〜23に対して使用権を与え、このアプリケーションプログラムオブジェクト20〜23に対してだけ完全な操作を許すように択一制御を行っている。使用権の取得に成功したアプリケーションプログラムオブジェクト20〜23は、ロボットオブジェクト26〜30への参照を介して制御対象のロボット10〜14の制御を行うことが可能になる。
【0104】
ロボットオブジェクト26〜30から使用権を取得できなかったアプリケーションプログラムオブジェクト20〜23は、該当するロボットオブジェクト26〜30に対して動作制御命令やロボット構成管理などロボットオブジェクト26〜30の状態を変更する操作は禁止される。したがって、使用権を取得できなかったアプリケーションプログラムオブジェクト20〜23は、ロボットオブジェクト26〜30を操作して対応するロボット10〜14の動作制御をすることはできない。
【0105】
アプリケーションプログラムオブジェクト20〜23が、制御対象のロボット10〜14に対応したロボットオブジェクト26〜30の使用を終了した場合、アプリケーションプログラムオブジェクト20〜23はロボットオブジェクト26〜30の使用権を解放する。使用権が解放されたロボットオブジェクト26〜30は、再び他のアプリケーションプログラムオブジェクト20〜23に対して使用権を与えることができる。これにより、他のアプリケーションプログラムオブジェクト20〜23がロボットオブジェクト26〜30の操作を行うことができ、対応するロボット10〜14の制御を行うことが可能になる。
【0106】
このように、1つのロボットオブジェクトは、特定のアプリケーションプログラムオブジェクトからだけではなく、複数のアプリケーションプログラムオブジェクトから操作されることが可能になっており、このため、同時に1つのアプリケーションプログラムオブジェクトだけにロボットオブジェクトの操作が許されるように択一制御を行っている。
【0107】
ここで、複数のアプリケーションプログラムオブジェクトによって1つのロボットを制御する様子を、図9〜図11に基づき第1及び第2アプリケーションプログラムオブジェクト20,21がロボットオブジェクト26を制御する場合を例にして説明する。なお、図9〜図11において、アプリケーションプログラムオブジェクト20をアプリケーションプログラムオブジェクト(1)と、アプリケーションプログラムオブジェクト21をアプリケーションプログラムオブジェクト(2)と、ロボットオブジェクト26をロボットオブジェクト(1)と記載する。
【0108】
2つのアプリケーションプログラムオブジェクト20,21が、1つのロボットオブジェクト26を操作する場合には、まず、アプリケーションプログラムオブジェクト20,21はそれぞれロボット管理オブジェクト31に対してロボットオブジェクト26の照会操作を実行し(図9中符号a,b)、ロボットオブジェクト26の参照を取得する(図9中符号c,d)。これにより、アプリケーションプログラムオブジェクト20,21は、取得した参照を介してロボットオブジェクト26の操作を行うことができる。
【0109】
次に、アプリケーションプログラムオブジェクト20はロボットオブジェクト26に対して使用権の取得操作を実行することで、ロボットオブジェクト26の使用権を取得する(図9中符号e、図12、図13)。これにより、アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26に対して動作制御を含む完全な操作を行うことが可能になる。
【0110】
この状態で、アプリケーションプログラムオブジェクト21がロボットオブジェクト26に対して使用権の取得操作(図10中符号f)を実行した場合について考える。この状態では、ロボットオブジェクト26はアプリケーションプログラムオブジェクト20によって使用権を取得されているので、アプリケーションプログラムオブジェクト21は使用権の取得に失敗する。この使用権の取得に失敗した場合、アプリケーションプログラムオブジェクト21の振る舞いについては、次のように指定することができる。即ち、エラー終了によりメソッドからすぐに戻る場合と、使用権が取得できるまでアプリケーションプログラムオブジェクト21の処理を保留する場合である。本例では、処理を保留するように指定してある。したがって、アプリケーションプログラムオブジェクト21の処理は、ロボットオブジェクト26の使用権が解放されるまで保留される(図10中符号gで示す波線部分)。そして、アプリケーションプログラムオブジェクト20がロボットオブジェクト26の操作を完了して使用権を解放する(図10中符号h)ことで、アプリケーションプログラムオブジェクト21は使用権の取得を完了し保留されていた処理が再開される。これによりアプリケーションプログラムオブジェクト21は、ロボットオブジェクト26に対して動作制御を含む完全な制御を行うことが可能になる(図10,図11中符号i)。
【0111】
アプリケーションプログラムオブジェクト21でロボットオブジェクト26の操作を完了した場合、アプリケーションプログラムオブジェクト21は使用権の解放操作を行い、このロボットオブジェクト26に対する使用権を解放する(図11中符号j)。
【0112】
次に、本発明の制御装置において、プログラムタスク(アプリケーションプログラムオブジェクト)によるロボット(ロボットオブジェクト)の使用権の獲得・放棄の方法について更に説明する。
【0113】
上述のようにして、2つのアプリケーションプログラムオブジェクト20,21が1つのロボットオブジェクト26を操作するが、この場合、アプリケーションプログラムオブジェクト20は、以下のようにして、ロボットオブジェクト26の使用権を獲得、放棄する。
【0114】
ロボットオブジェクト26は、オブジェクトの使用権の取得操作又は解放操作を行うメソッドをアプリケーションプログラムオブジェクト20,21に対して提供する。アプリケーションプログラムオブジェクト20,21は、これらのメソッドを用いることで、対象のロボットオブジェクト26の使用権の取得および解放操作を行う(図9〜図11中符号e,f,h,j)。
【0115】
ロボットオブジェクト26の使用を開始する場合は、アプリケーションプログラムオブジェクト20は使用開始の宣言(オープン操作)を行い使用権を取得する。即ち、ロボットオブジェクト26を用いて対応するロボット10の制御を開始する際には、アプリケーションプログラムオブジェクト20は、該当のロボットオブジェクト26への参照を介して使用権の取得操作を実行しロボットオブジェクト26の使用権を取得する(図9中符号e)。使用権を取得したアプリケーションプログラムオブジェクト20は、対象のロボットオブジェクト26の完全な操作を行うことが可能になる(図10中符号k)。
【0116】
一方、ロボットオブジェクト26の使用を終了する場合は、アプリケーションプログラムオブジェクト20は使用終了の宣言(クローズ操作)を行い使用権を放棄する。即ち、制御対象のロボット10の制御を終了した場合、アプリケーションプログラムオブジェクト20は、対応するロボットオブジェクト26への参照を介して使用権の解放操作を実行する(図10中符号h)。これにより、アプリケーションプログラムオブジェクト20は対象のロボットオブジェクト26の使用権を解放し、他のアプリケーションプログラムオブジェクト21がこの解放されたロボットオブジェクト26の使用権を取得してこれを操作できるようになる。
【0117】
この様にして、本発明の制御装置では、一つのプログラムタスクが一つのロボットの使用を開始する際に、プログラムタスクはロボットの使用開始の宣言を行い使用権を取得すると共に、ロボットの使用を終了する際に、プログラムタスクは使用終了の宣言を行って使用権を放棄する。
【0118】
次に、本発明の制御装置において、ロボットがプログラムタスクからの使用権の行使に対して択一制御を行う点について更に説明する。
【0119】
ロボットオブジェクト26は、アプリケーションプログラムオブジェクト(プログラムタスク)20が使用権を取得している場合に、以下のようにして、他のアプリケーションプログラムオブジェクト(プログラムタスク)21からの使用権の択一制御を行う。
【0120】
ロボットオブジェクト26は、同時に1つのアプリケーションプログラムオブジェクト20にだけ使用権を与える。これにより、複数のアプリケーションプログラムオブジェクト20,21が同時に1つのロボットオブジェクト26を操作してロボット10に対して無秩序な動作制御を行なうことを防いでいる。
【0121】
ロボットオブジェクト26は、使用権を与えたアプリケーションプログラムオブジェクト20に対しては完全な操作を許している(図9,図10中符号m)。この状態で、使用権を与えていないアプリケーションプログラムオブジェクト21に対しては、動作制御やロボット構成管理など、ロボットオブジェクト26の状態を変更する操作を禁止している(図10中符号g)。したがって、使用権を取得していないアプリケーションプログラムオブジェクト21は、ロボットオブジェクト26に対応したロボット10の制御を行うことはできない。即ち、既に他のアプリケーションプログラムオブジェクト20によって使用権が取得されているロボットオブジェクト26に対して、アプリケーションプログラムオブジェクト21が使用権を取得を試みたとしても、ロボットオブジェクト26は既に使用権を他のオブジェクト20に与えているため、アプリケーションプログラムオブジェクト21は使用権を取得することはできない。したがって、このアプリケーションプログラムオブジェクト21はアプリケーションプログラムオブジェクト20が使用権を解放するまでロボットオブジェクト26の使用が禁止される(図10中符号g)。
【0122】
一方、アプリケーションプログラムオブジェクト20によってロボット10の使用終了が宣言された後は、アプリケーションプログラムオブジェクト21はロボット10を使用することができる。即ち、アプリケーションプログラムオブジェクト20により使用権の解放操作が実行され(図10中符号h)使用権が解放された後は、ロボットオブジェクト26は他のアプリケーションオブジェクト21に対して使用権を与えることが可能になる。これにより、他のアプリケーションプログラムオブジェクト21がこのロボットオブジェクト26の使用権を取得して操作することが可能となる(図10,図11中符号i)。これにより、ロボットオブジェクト26は、アプリケーションプログラムオブジェクト21に対して完全な操作を許す(図10,図11中符号n)。
【0123】
次に、本発明の制御装置において、ロボットの識別を対象ロボットオブジェクトへの参照又は識別番号により行っている点について更に説明する。
【0124】
先ず、参照により行う場合について説明する。ロボット10〜14の制御を行うロボットオブジェクト26〜30は、ロボット管理オブジェクト31によって保持、管理されている。ロボット管理オブジェクト31は、アプリケーションプログラムオブジェクト20〜23に対して対象のロボットオブジェクト26〜30の照会操作を行うメソッドの組を提供している。ロボット管理オブジェクト31は、この操作により対象のロボットオブジェクト26〜30への参照を返す。
【0125】
アプリケーションプログラムオブジェクト20〜23は、ロボット管理オブジェクト31に対して照会操作を実行し対象のロボットオブジェクト26〜30への参照を取得する。これにより、アプリケーションプログラムオブジェクト20〜23は、ここで取得した参照を用いて、制御対象の機械装置に対応したロボットオブジェクト26〜30の識別を行う。
【0126】
次に、ロボットオブジェクトの識別を、識別番号で行う場合について説明する。この場合の各オブジェクトの構成は、基本的にロボット管理オブジェクト31の構成内容に補足があるだけで、ロボットオブジェクト26〜30及び他のオブジェクトの構成は上述した参照を用いる場合と同一である。ただし、アプリケーションプログラムオブジェクト20〜23などロボット10〜14の動作制御を行うオブジェクトが、ロボットオブジェクト26〜30に対して行う操作方法は参照を用いる場合と異なっている。
【0127】
アプリケーションプログラムオブジェクト20〜23など他のオブジェクトが各ロボットオブジェクト26〜30の識別および操作を識別番号を用いて行うために、ロボット管理オブジェクト31は次の機能を提供する。
【0128】
ロボット管理オブジェクト31は、保持しているロボットオブジェクト26〜30を識別する識別番号を定義している。このロボットオブジェクト26〜30の識別番号は、ロボット管理オブジェクト31がロボットオブジェクト26〜30を作成する際に用いるロボット構成情報48で指定し、各ロボットオブジェクト26〜30にそれぞれ唯一の識別番号を割り当てる。ロボット管理オブジェクト31は、保持しているロボットオブジェクト26〜30と識別番号の対応関係を保持しており、識別番号に基づいて対応するロボットオブジェクト26〜30の参照を取得することが可能である。
【0129】
ロボット管理オブジェクト31は、ロボットオブジェクト26〜30が提供するメソッドの組に対応するすべてのメソッドを提供している。例えば、ロボット管理オブジェクト31はロボットオブジェクト26〜30が提供する使用権の取得および解放操作、機械装置の動作制御、状態取得および構成管理などのすべてのメソッドに対応したメソッドの組を提供している。これらのメソッドは識別番号を伴っており、これによりロボット管理オブジェクト31はいずれのロボットオブジェクト26〜30のメソッドを呼び出すか識別している。すなわち、ロボット管理オブジェクト31においてメソッドに与えられた識別番号に対応するロボットオブジェクト26〜30への参照を、ロボットオブジェクト26〜30と識別番号の対応関係から取得し、取得したロボットオブジェクト26〜30への参照を介して該当するメソッドを呼び出す。
【0130】
アプリケーションプログラムオブジェクト20〜23など他のオブジェクトがロボットオブジェクト26〜30を操作する場合、ロボット管理オブジェクト31が提供しているロボットオブジェクト26〜30を操作するためのメソッドを、操作対象のロボットオブジェクト26〜30に対応する識別番号を与えて呼び出す。これにより、アプリケーションプログラムオブジェクト20〜23は操作対象のロボットオブジェクト26〜30を操作することができる。
【0131】
ロボットオブジェクト26〜30の識別に参照を用いた場合、参照とこれを格納する記憶領域に与える識別名の管理は、アプリケーションプログラム側で管理する必要がある。すなわち、アプリケーションプログラムの記述言語として用いる一般的なオブジェクト指向言語では、参照を格納する記憶領域には任意の識別名(いわゆる変数名)を指定することが可能である上、記憶した参照の他の記憶領域への複写および代入を任意に行うことが許されている。したがって、1つの参照を複数の異なる識別名を持つ記憶領域に格納することで、1つのロボットオブジェクト26〜30の識別を複数の識別名(変数名)で行うことが可能になる。多くの場合、このような参照の代入および複写の機能はオブジェクト指向プログラム言語の有効な機能であるが、ロボットオブジェクト26〜30の識別においてはアプリケーションプログラム側で参照を格納する記憶領域およびその識別名の管理を行う必要がある。
【0132】
一方、識別番号を用いた場合にはロボットオブジェクト26〜30の識別は、一意に割り付けられた識別番号に基づいてロボット管理オブジェクトにおいて一元的に行うことが可能となる。よって、アプリケーションプログラム側では、ロボットオブジェクト26〜30の参照を格納する記憶領域およびその識別名を管理するために必要な配慮は軽減される。ただし、この場合オブジェクト指向プログラム言語の有効な機能である参照を利用することはできなくなる。
【0133】
ロボットオブジェクト26〜30の識別に、参照および識別番号のいずれを用いるかは、アプリケーションプログラムで任意に選択することができる。
【0134】
次に、識別番号を用いた場合のロボット制御のシナリオについて説明する。ロボット10〜14の制御を行う必要が生じたアプリケーションプログラムオブジェクト20〜23は、対象のロボット10〜14に対応したロボットオブジェクト26〜30の識別番号を指定して、ロボット管理オブジェクト31の提供するロボットオブジェクト26〜30の使用権の取得操作を実行する。ロボット管理オブジェクト31は、識別番号に対応したロボットオブジェクト26〜30を選択して使用権の取得操作を実行する。これにより、アプリケーションプログラムオブジェクト20〜23は、識別番号で指定したロボットオブジェクト26〜30の使用権を取得し、対象のロボットオブジェクト26〜30の完全な操作を行うことが可能になる。
【0135】
アプリケーションプログラムオブジェクト20〜23は、操作対象のロボットオブジェクト26〜30の識別番号を指定してロボット管理オブジェクト31が提供するロボットオブジェクト26〜30の各メソッドに対応したメソッドを呼び出す。ロボット管理オブジェクト31は、識別番号に対応したロボットオブジェクト26〜30に含まれる対応するメソッドを呼び出す。これにより、アプリケーションプログラムオブジェクト20〜23は対象のロボットオブジェクト26〜30を任意に操作することができる。すなわち、ロボットオブジェクト26〜30の提供するロボット10〜14の動作制御、状態取得、構成管理などのすべての操作を、ロボット管理オブジェクト31を介して行うことが可能である。
【0136】
アプリケーションプログラムオブジェクト20〜23でロボットオブジェクト26〜30の使用が完了したならば、ロボット管理オブジェクト31に対して対象のロボットオブジェクト26〜30の識別番号を指定して使用権の解放操作を実行する。ロボット管理オブジェクト31は、識別番号に対応したロボットオブジェクト26〜30の使用権の解放操作を実行する。これにより、該当するロボットオブジェクト26〜30の使用権は解放され、他のアプリケーションプログラムオブジェクト20〜23がこのロボットオブジェクト26〜30の使用権を取得することが可能になる。
【0137】
図14及び図15は、アプリケーションプログラムオブジェクトが識別番号によりロボットオブジェクトを操作する場合の例を示している。なお、図14及び図15中、アプリケーションプログラムオブジェクト20をアプリケーションプログラムオブジェクト(1)と、ロボットオブジェクト26をロボットオブジェクト(1)とそれぞれ記載する。
【0138】
まず、アプリケーションプログラムオブジェクト20は、対象となるロボットオブジェクト26の使用権の取得操作をロボット管理オブジェクト31に対して行う(図14中符号a)。このとき、アプリケーションプログラムオブジェクト20は、あらかじめロボット構成情報48で定義されていたロボットオブジェクト26の識別番号1を指定して、ロボット管理オブジェクト31が提供する使用権の取得を行うメソッドを呼び出している。ロボット管理オブジェクト31は、与えられた識別番号1に対応したロボットオブジェクト26を選択し、これに対して使用権の取得操作を実行する(図14中符号b)。これにより、アプリケーションプログラムオブジェクト20は、ロボットオブジェクト26の使用権の取得を完了する。
【0139】
次に、アプリケーションプログラムオブジェクト20は、対象のロボットオブジェクト26に対して動作制御などの所望の操作を行う(図14及び図15中符号c)。このとき、アプリケーションプログラムオブジェクト20は、対象のロボットオブジェクト26の識別番号1を指定して、ロボット管理オブジェクト31の提供する対応するメソッドを呼び出す。本例では、ロボットオブジェクト26の動作制御を実行するメソッドを呼び出している。ロボット管理オブジェクト31は、識別番号1に対応したロボットオブジェクト26を選択し、これに対して動作制御を実行するメソッドを実行する(図14及び図15中符号d)。ロボットオブジェクト26に対する他の操作もロボット管理オブジェクト31を介して同様に実行することができる(図15中符号e、f)。
【0140】
アプリケーションプログラムオブジェクト20が対象のロボットオブジェクト26に対して操作を完了したならば、識別番号1を指定してロボット管理オブジェクト31に対して使用権の解放操作を実行する(図15中符号g)。ロボット管理オブジェクト31は、与えられた識別番号1に対応したロボットオブジェクト26を選択し、これに対して使用権の解放を行うメソッドを呼び出す。これにより、ロボットオブジェクト26の使用権が解放され(図15中符号h)、他のアプリケーションプログラムオブジェクト21〜23がロボットオブジェクト26を使用することが可能になる。
【0141】
次に、本発明の制御装置において、同期した制御の単位として複数のロボットを制御対象として定義可能としている点について更に説明する。
【0142】
本発明の制御装置では、制御対象である実在する機械装置に対応したロボットオブジェクトを1つまたは複数保持している。このため、制御対象である機械装置に対し、同期した制御の単位として複数のロボットを定義することが可能である。
【0143】
つまり、図1に示す制御装置では、制御対象であるロボット10〜14に対応したロボットオブジェクト26〜30を保持している。各ロボットオブジェクト26〜30は、ロボット10〜14各々を動作制御を含む制御を独立して行うものである。対象となる各ロボット10〜14は、ロボットユーザが作業内容および目的に応じて、制御装置の制御が及ぶ範囲で機構および制御軸を任意に組み合わせて構成することができる。ロボットオブジェクト26〜30は、ロボットユーザが構成したロボット10〜14に対する計算機モデルである。アプリケーションプログラムオブジェクト20〜23は、これらのロボットオブジェクト26〜30を作業内容に応じて操作することで、対応する機械装置の制御を行うことができる。
【0144】
図16に、制御対象として5つの制御軸を有する実在の機械装置を、各制御軸の組合せが異なる3台のロボットとして制御する場合を想定したオブジェクトモデルと実在の機械装置の構成要素の対応関係について示す。図16(a)は実在の機械装置の構成を示し、(b)は制御装置内部のオブジェクトモデルについて示している。実在の機械装置の構成要素と各オブジェクトモデルとの対応関係は、ロボット(1)〜(3)についてロボットオブジェクト(1)〜(3)が対応し、制御軸(1)〜(7)について制御軸オブジェクト(1)〜(7)が対応し、機構(1)〜(3)について機構解オブジェクト(1)〜(3)が対応するようになっている。
【0145】
ロボットユーザは作業内容および目的に応じて、機械装置の全体または一部の機構および制御軸をグループ化し、これをロボットとして定義して制御対象とすることができる。即ち、ロボットは、機械装置全体に含まれる機構と制御軸の任意の組み合わせで構成することができる。
【0146】
定義したロボット(1)〜(3)は、制御装置上で各ロボット(1)〜(3)毎にロボットオブジェクト(1)〜(3)としてモデル化される。ロボットオブジェクト(1)〜(3)は、対応するロボット(1)〜(3)に含まれる制御軸(1)〜(7)を適切に制御することで、対象のロボット(1)〜(3)の動作制御を含めた制御を行う。ロボットユーザが作成した作業手順が記述されたアプリケーションプログラムオブジェクトは、このロボットオブジェクト(1)〜(3)を操作することで対応するロボット(1)〜(3)の制御をすることが可能となっている。
【0147】
次に、本発明の制御装置において、各ロボットが制御軸の部分集合と、これに対応する機構解を異なる組合せで保持している点について更に説明する。
【0148】
ロボットオブジェクト26〜30は、ロボット10〜14の制御を行う。対象のロボット10〜14は、機械装置全体に含まれる機構および制御軸の集合の全体であっても、一部分であっても良い。ロボットユーザは、作業内容に応じて、ロボット10〜14に含まれる機構解15〜19および制御軸6〜9の集合に対応したロボットオブジェクト26〜30を作成することができる。そして、このロボットオブジェクト26〜30をアプリケーションプログラムオブジェクト20〜23により操作することで、ロボットユーザはロボット10〜14を操作して機械装置に対して所望の作業を実行させることができる。
【0149】
次に、本発明の制御装置において、各ロボット10〜14はプログラムタスクから切り替えて使用し制御することが可能である点について更に説明する。
【0150】
プログラムタスクとしてのアプリケーションプログラムオブジェクト20〜23は、ロボットユーザがロボットサブシステム2に定義した各ロボットオブジェクト26〜30を作業内容に応じて操作することで、制御対象のロボット10〜14の制御を行い、所望の作業を実行することができる。
【0151】
例えば、図17(a)に示すように2つのロボットオブジェクトを2つのプログラムタスクで共有して使用したり、図18(a)に示すように2つのロボットオブジェクトをそれぞれ別々のプログラムタスクで使用することが出来る。図17(a)の場合には、図17(b)に示すように、プログラムタスクのそれぞれが各ロボットオブジェクトを使用して一連の作業を行うことが出来る。また、図18(a)の場合には、図18(b)に示すように、各プログラムタスクがそれぞれ別々のロボットオブジェクトを使用して一連の作業を行うことが出来る。この様に、作業内容に応じてプログラムタスクとロボットオブジェクトとの関係を定義することができる。
【0152】
つまり、アプリケーションプログラムオブジェクト20〜23はロボットオブジェクト26〜30の操作に先立ち、ロボット管理オブジェクト31から任意に必要なロボットオブジェクト26〜30への参照を取得し、取得した参照を介して対応するロボットオブジェクト26〜30の操作を行う。この操作により、アプリケーションプログラムオブジェクト20〜23(プログラムタスク)とロボットオブジェクト26〜30の関係が定義される。そして、アプリケーションプログラムオブジェクト20〜23は、複数のロボットオブジェクト26〜30への参照を保持することができる。これは、アプリケーションプログラムオブジェクトの記述言語に用いる一般的なオブジェクト指向プログラム言語の基本的言語仕様に基づいている。
【0153】
次に、アプリケーションプログラムオブジェクト20〜23は、対象となるロボットオブジェクト26〜30に対して使用権の取得および解放操作を適宜おこなうことで、ロボットオブジェクトの操作が可能となり対応するロボットの制御を行うことができる。このことにより、アプリケーションプログラムオブジェクトは制御対象のロボットを任意に選択して制御することが可能になっている。
【0154】
次に、本発明の制御装置において、各ロボットに属する制御軸の部分集合は互いに重複することを許容され、制御軸の部分集合が各ロボットで互いに重複するか一致する場合は、各ロボットによる制御軸の部分集合の同時使用が禁止され、制御軸の部分集合が各ロボットで重複せず独立な場合は、これらのロボットによる制御軸の部分集合の同時使用を許容して制御する点について更に説明する。
【0155】
ロボットオブジェクト26〜30は、制御対象のロボット10〜14に含まれている各制御軸6〜9に対応した、1つ以上の制御軸オブジェクト43〜46への参照を保持することができる。ロボットオブジェクト26〜30は、保持している制御軸オブジェクト43〜46の参照を介して各制御軸オブジェクト43〜46の操作を行う。一方、制御軸オブジェクト43〜46は、1つ以上のロボットオブジェクト26〜30によって、その参照を保持されることが許される。つまり、1つの制御軸オブジェクト43〜46の参照は、複数のロボットオブジェクト26〜30によって保持されることが許されている。これにより、各ロボットオブジェクト26〜30は、制御軸オブジェクト43〜46の集合を互いに重複して保持することが可能になっている。
【0156】
制御軸オブジェクト43〜46は、同時に複数のロボットオブジェクト26〜30からの操作に対して制限を設け、各ロボットオブジェクト26〜30から無秩序に操作されることを防いでいる。すなわち、制御軸オブジェクト43〜46はこれを利用するロボットオブジェクト26〜30に対して1度に1つのオブジェクト26〜30にだけ使用権を与え、制御軸オブジェクト43〜46に対して動作制御を含めた完全な操作を許可する。そして、使用権が与えられていないロボットオブジェクト26〜30に対しては、動作制御を含めた制御軸オブジェクト43〜46の状態を変更する操作は禁止される。したがって、制御軸オブジェクト43〜46の使用権を取得していないロボットオブジェクト26〜30は、制御軸オブジェクト43〜46を操作し制御軸6〜9の動作制御を行うことはできない(択一制御)。
【0157】
ロボットオブジェクト26〜30は、アプリケーションプログラムオブジェクト20〜23から使用権の取得操作を受け付けた際に、保持している制御軸オブジェクト43〜46の各々に対して使用権の取得操作を実行する。このとき、ロボットオブジェクト26〜30が保持している制御軸オブジェクト43〜46すべての使用権の取得が成功した場合、ロボットオブジェクト26〜30はアプリケーションプログラムオブジェクト20〜23に対してロボットオブジェクト26〜30の使用権を与え、制御軸オブジェクト43〜46の制御を開始する。
【0158】
一方、ロボットオブジェクト26〜30が保持している制御軸オブジェクト43〜46のうち1つでも使用権の取得に失敗した場合には、ロボットオブジェクト26〜30はアプリケーションプログラムオブジェクト20〜23に対してロボットオブジェクト26〜30の使用権を与えず、制御軸オブジェクト43〜46の使用権の取得操作を中止または使用権が取得できるまで保留する。これにより、制御軸オブジェクト43〜46が複数のロボットオブジェクト26〜30から操作されることを防いでいる。
【0159】
このように、各ロボットオブジェクト26〜30が保持している制御軸オブジェクト43〜46の集合が互いに重複している場合には、アプリケーションプログラムオブジェクト20〜23はこれらのロボットオブジェクト26〜30のうちいずれか1つだけのオブジェクト26〜30を使用して対象のロボット10〜14の制御を行うことができる。一方、各ロボットオブジェクト26〜30が保持している制御軸オブジェクト43〜46の集合が重複していない場合には、アプリケーションプログラムオブジェクト20〜23はそれぞれのロボットオブジェクト26〜30を同時に使用することができる。
【0160】
ここで、図19〜図21に基づいて、複数のロボットオブジェクトが制御軸オブジェクトの集合を重複して保持している場合の使用権取得および解放処理について説明する。図19〜図21では、保持している制御軸オブジェクト43〜46の集合が一部で重複している第1及び第5ロボットオブジェクト26,30の場合を例に説明する。なお、図19〜図21では、第1ロボットオブジェクト26をロボットオブジェクト(2)と、第5ロボットオブジェクト30をロボットオブジェクト(1)と記載している。また、第1〜第4制御軸オブジェクト43〜46は、制御軸オブジェクト(1)〜(4)と記載している。
【0161】
この例の場合、ロボットオブジェクト26は第1〜第4制御軸オブジェクト43〜46を保持しており、ロボットオブジェクト30は第3及び第4制御軸オブジェクト45,46を保持している。即ち、各ロボットオブジェクト26,30では、それぞれで保持している制御軸オブジェクトの集合において、第3及び第4制御軸オブジェクト45,46が重複していることになる。この結果、一方のロボットオブジェクトが制御軸オブジェクト45,46の使用権を取得して制御を行っている場合には、他方のロボットオブジェクトは制御軸オブジェクト45,46の使用権を取得することができないため制御できない(図22)。
【0162】
図19〜図21では、まずロボットオブジェクト26が保持している制御軸オブジェクト43〜46の使用権を取得し(図19中符号o)、制御軸オブジェクト43〜46の動作制御を含む操作を開始する(図19中符号p)。次に、ロボットオブジェクト30は保持している制御軸オブジェクト45,46の使用権を取得を試みる(図20中符号q,t)が、既に制御軸オブジェクト45,46の使用権はロボットオブジェクト26によって取得されているので、これらの使用権を取得することができない。ロボットオブジェクト30の使用権の取得操作は制御軸オブジェクト45,46の使用権が取得されるまで保留される(図20中符号r,u)。
【0163】
ロボットオブジェクト26は、これを利用するアプリケーションプログラムオブジェクト20〜23から使用権の解放操作を実行されることで、保持している制御軸オブジェクト43〜46の使用権を解放する(図20中符号s)。そして、ロボットオブジェクト30は使用権が解放された制御軸オブジェクト45,46の使用権の取得を完了し、ロボット14の対応する制御軸8,9の制御を行うことが可能になる。
【0164】
この様にして、本発明の制御装置では、複数のロボットオブジェクトが1つの制御軸オブジェクトを同時に操作可能とした場合に発生する制御の混乱を防いでいる。
【0165】
次に、本発明の制御装置において、ロボットの構成がプログラムタスクから制御軸と機構解の組合せを適宜選択可能である点について更に説明する。
【0166】
ロボットユーザは、ロボットサブシステム2のロボットオブジェクト26〜30の構成を、ロボット構成情報48の記述による方法と、ロボット管理オブジェクト31の提供するロボット構成管理操作による方法とにより、適宜変更することができる。
【0167】
先ず、ロボット構成情報48による方法について説明する。ロボット構成情報48には、各ロボットオブジェクト26〜30について、制御軸オブジェクト43〜46、機構解オブジェクト32〜36、動作制御処理オブジェクト37〜41などの構成に関する情報が記述されている。これらの情報が記述されているロボット構成情報48に基づいて、ロボットサブシステム2のロボット管理オブジェクト31は、制御装置の電源が投入されロボット管理オブジェクト31が起動した場合や、アプリケーションプログラムオブジェクト20〜23または他のオブジェクトがロボット管理オブジェクト31が提供する該当のメソッドを操作した場合に、各ロボットオブジェクト26〜30を作成する。
【0168】
ロボット構成情報48は、制御対象のロボット10〜14の構成に応じてロボットユーザが作成し、制御装置または通信回線で接続されたホストコンピュータの記録媒体に永続的に保持される。ロボット構成情報48を適宜作成することで、制御対象のロボット10〜14に対応したロボットオブジェクト26〜30を定義し作成することができる。
【0169】
次に、ロボット構成管理操作による方法について説明する。ロボット管理オブジェクト31は、アプリケーションプログラムオブジェクト20〜23または他のオブジェクトに対してロボットオブジェクト26〜30の構成管理操作を行うメソッドの組を保持している。これらのメソッドは、ロボット構成情報48を用いずに直接ロボットオブジェクト26〜30の構成操作を行う。アプリケーションプログラムオブジェクト20〜23は、これのメソッドを用いることでロボットオブジェクト26〜30を定義し構成操作を行うことでができる。
【0170】
この様に構成された本発明の制御装置を使用して、例えばシーリング作業を行う場合、図23に示すように、ロボットオブジェクト26,27を使用するプログラムタスク(1)によってシーリング準備作業を行い、ロボットオブジェクト28,29を使用するプログラムタスク(2)とロボットオブジェクト30を使用するプログラムタスク(3)によってシーリング作業を行うようにすることで、図24に示すように、作業を効率良く行うことができる。
【0171】
次に、本発明の制御装置において、対応していなかった機構を含むロボットの機構解を新規に追加する場合にシステムソフトウエアに大きな変更をせずに容易に追加できる点、及びアプリケーションプログラムで制御対象のロボットの機構に依存することなく機構解の指定を一元的に行うことができる点について更に説明する。
【0172】
まず、物理的に同一のロボットの機構が複数(例えば、左手系と右手系)の機構解、すなわち複数の順機構解および逆機構解の組を持つ場合、それぞれの機構解を機構解オブジェクトとしてオブジェクトモデル化する(図1の例では機構解オブジェクト32〜36)。各機構解オブジェクトは、1対の順機構解および逆機構解の組に対応する計算処理および各機構解の計算において必要なパラメータ(例えばリンク部長さ、関節部角度作動範囲等)を保持している。また、他のオブジェクトに対して順機構解および逆機構解計算処理を行う手段としてメソッドを提供している。これらのメソッドは、各機構解計算処理をおこない座標変換を行う座標情報のみを要求し、従来の機構解計算処理では必要であった機構解の指定を行うためのパラメータなどは勿論不要である。
【0173】
次に、制御対象のロボットのオブジェクトモデルとして、ロボットオブジェクトを定義する(図1の例ではロボットオブジェクト26〜30)。ロボットオブジェクトは、制御対象のロボットの機構に対応した複数の機構解オブジェクトのうちいずれか1つの参照または実体を保持する。ロボットオブジェクトは、保持している機構解オブジェクトの提供する順機構解および逆機構解計算処理を実行するメソッドを用いることで、機構解オブジェクトに対応した機構解にしたがって、任意に定められた座標系と各関節の角度との間で座標変換をおこない、ロボットの動作制御を行う。
【0174】
また、ロボットオブジェクトは、アプリケーションプログラムからの位置決めおよび経路制御などの動作制御を実行する命令を受けとり、制御対象のロボットを命令に応じて動作制御を行う。ロボットオブジェクトは、制御対象のロボットの機構に含まれる機構解すなわち機構解オブジェクトと同数定義され、アプリケーションプログラムオブジェクトはこれらのロボットオブジェクトを選択することで、いずれの機構解を利用して動作制御するかを選択することができる。
【0175】
例えば、水平2軸スカラ型ロボットの場合には、アーム部のリンク機構について順機構解は1通りであるが逆機構解がいわゆる左手系と右手系の2通り存在している。したがって、左手系の逆機構解及び順機構解の組と右手系の逆機構解及び順機構解の組とを持つ2つの機構解オブジェクトが定義される。ロボットオブジェクトは機構解オブジェクトを1つ保持するため、それぞれの機構解オブジェクトに対してロボットオブジェクトが1つずつ定義される。アプリケーションプログラムは、各ロボットオブジェクトを選択することで、制御対象のロボットを左手系および右手系の機構解を選択して制御することができる。
【0176】
同様に、垂直5軸アーム型ロボットの場合には、アーム部のリンク機構については水平2軸スカラ型ロボットの場合と同様に順機構解は1通りであるが、逆機構解は左手系および右手系の2通りの逆機構解が存在する。一方、エンドエフェクタ部には3通りの順機構解と逆機構解の組が存在する。したがって、アーム部とエンドエフェクタ部の機構解の組み合わせは6通りとなり、これらの機構解に対応した機構解オブジェクトを6つ定義する。ロボットオブジェクトは、機構解オブジェクトを1つ保持することから、ロボットオブジェクトも各機構解オブジェクトに対応して6つ定義される。アプリケーションプログラムオブジェクトは、これらのロボットオブジェクトを選択することで、制御対象のロボットを所望の機構解を用いて制御することができる。
【0177】
機構解オブジェクトは、各機構解すなわち1対の順機構解および逆機構解に対応した計算処理を提供するメソッドを提供している。よって、これを利用して動作制御を行うロボットオブジェクトでは機構解計算処理を実行する場合に、機構解の計算に必要な座標情報のみを与えるだけ良い。機構解の選択は、いずれの機構解オブジェクトを選択するかで実現できる。すなわち、ロボットの機構毎に異なる機構解選択のパラメータ指定方法などの従来の機構解の選択方法は、本発明の制御装置では機構解オブジェクトの選択という単純なオブジェクトの選択操作に置きかえることが可能となる。これにより、機構解計算処理を利用するロボットオブジェクトなどの他のオブジェクトで、機構毎に異なる機構解選択方法に関与する必要はなくなる。したがって、新規の機構解を追加する場合には、制御対象のロボットのそれぞれの機構解に対応した機構解オブジェクトを追加し、各機構解オブジェクトに順機構解および逆機構解を行う計算処理を記述すれば良い。
【0178】
アプリケーションプログラムについては、ロボットオブジェクトの選択を行うことでいずれの機構解を用いて制御対象のロボットの動作制御を行うかを指定することが可能になる。従来のように制御対象のロボットの機構毎に異なる機構解の指定手段を用いる必要はなく、ロボットオブジェクトの選択という単純なオブジェクトの選択操作に置きかえることが可能となり機構解の選択を一元的な方法で実現することが可能となる。
【0179】
以上から、システムソフトウェアでの機構解の取り扱いを簡潔にし、任意の機構解を容易に追加することが可能となる。また、アプリケーションプログラムにおいて機構解の指定方法を一元的な方法で行うことが可能になる。
【0180】
なお、上述の形態は本発明の好適な形態の一例ではあるがこれに限定されるものではなく本発明の要旨を逸脱しない範囲において種々変形実施可能である。例えば、本発明の制御装置によって以下のように双腕スカラ型ロボットを制御するようにしても良い。即ち、1台の制御装置で制御される双腕型スカラロボットにおいて、通常作業では左右のアームをそれぞれ1台のスカラロボットとして定義することで、2台の独立したスカラロボットとして制御装置によって制御することができる。一方、ある特定の作業で左右のアームを同期して制御する必要がある場合には、双腕型スカラロボット全体を1つのロボットとする制御軸の集合および機構解を適用することで、左右のアームを実時間での動作制御レベルで完全に同期して動作させることができる。これにより、各アームが互いのアームの動作領域内で動作する場合に干渉回避動作を簡単にしかも高速で行うことが可能になり、ロボットの作業能率を改善しアプリケーションプログラムの記述を簡単にすることができる。また、同一の双腕型スカラロボットを作業等に応じて使い分けることが容易になる。
【0181】
また、以下のようにスカラロボットを制御するようにしても良い。即ち、アーム部先端に昇降・旋回軸を有するスカラロボットでは、アーム部および昇降・旋回軸のすべての制御軸をまとめて制御するロボットとして定義することで、通常作業では通常のスカラロボットとしてツール端の座標(X、Y、Z、S)の各要素を同時に制御することができる。一方、ある特定の作業では、上述の説明のように、アーム部と昇降・旋回部をそれぞれ別なロボットとして定義することで、各ロボットで独立した制御を行うことができる。これにより、立体的な表面へのシーリング作業などで昇降・旋回軸の動作制御をセンサ情報を用いてフィードバックして行う場合等、昇降・旋回軸部をアーム部とは独立したロボットとして動作制御することが可能になる。
【0186】
【発明の効果】
以上説明したように、請求項1記載のロボット制御装置では、同期した制御の単位として複数のロボットを制御対象として定義可能であり、各ロボットは制御軸の部分集合と、これに対応する機構解を異なる組合せで保持し、各ロボットはプログラムタスクから切り替えて使用され制御されるので、異なる機構解を作業内容に応じて切り替えてロボットの制御を行うことが出来るようになり、プログラムタスクと制御対象であるロボットとの関係に柔軟性を持たせることができる。このため、ロボットの作業効率およびプログラムの記述性を向上させることができる。また、以下の各効果も得ることができる。即ち、1多点工具端のあるロボットを制御する場合には、各工具点毎にロボットを定義することで、使用する工具点に応じて機構解を切り替えて制御することが可能になり、工具端に適した制御を行うことができる。2複数ロボットを同期して制御する場合には、同期が必要な制御軸の部分集合に対して一括して制御する機構解を与えてロボットとして定義すると共に定義した機構解を切り替えて制御することで、複数のロボットの同期した制御に適した制御を行うことができる。3構造可変形ロボットを制御する場合において、ロボットの構成/機構が動作中に変化するときには、各機構に応じてロボットを定義すると共に定義したロボットを切り替えて制御することで、構造可変形ロボットの制御に適した制御を行うことができる。4スカラロボットのハンドの制御のように単一の制御軸集合に対して多数の機構解を有するロボットの制御を行う場合には、機構解を単純化することができる。5一時的に他の制御軸の現在位置を目標位置として動作させる必要がある機構の制御(制御軸の従属的な制御)を容易に行うことができるようにすることが出来る。
【0187】
また、請求項2記載のロボットの制御装置では、各ロボットに属する制御軸の部分集合は互いに重複することを許容し、制御軸の部分集合が各ロボットで互いに重複するか一致する場合は、各ロボットによる制御軸の部分集合の同時使用を禁止し、制御軸の部分集合が各ロボットで重複せず独立な場合は、これらのロボットによる制御軸の部分集合の同時使用を許容して制御するので、制御軸の部分集合が各ロボットで互いに重複又は一致する場合であっても、また、重複せずに独立な場合であっても、各制御軸を正常に操作することができる。
【0188】
さらに、請求項3記載のロボットの制御装置では、ロボットの構成は、プログラムタスクから制御軸と機構解の組合せを適宜選択可能であるので、作業内容に適した制御軸と機構解の組合せをユーザが選択することが可能になり、ロボットと制御軸との関係に柔軟性を持たせることができる。このため、プログラム構造を簡単にすることができると共にプログラムを小型化することができ、ロボットの作業効率を向上させることができる。
【図面の簡単な説明】
【図1】本発明の制御装置の実施形態の一例を示す概略構成図である。
【図2】本発明の制御装置の制御対象である機械装置を示す概略構成図である。
【図3】図2の機械装置の制御軸の集合を示す概念図である。
【図4】図2の機械装置の制御軸・機構解とロボットの関係を示す概念図である。
【図5】機構解計算処理の内容を示す概念図である。
【図6】1つのアプリケーションプログラムが複数のロボットオブジェクトを操作する例を示し、その最初の部分の概念図である。
【図7】1つのアプリケーションプログラムが複数のロボットオブジェクトを操作する例を示し、図6に続く部分の概念図である。
【図8】1つのアプリケーションプログラムが複数のロボットオブジェクトを操作する例を示し、図7に続く最後の部分の概念図である。
【図9】複数のアプリケーションプログラムが1つのロボットオブジェクトを操作する例を示し、その最初の部分の概念図である。
【図10】複数のアプリケーションプログラムが1つのロボットオブジェクトを操作する例を示し、図9に続く部分の概念図である。
【図11】複数のアプリケーションプログラムが1つのロボットオブジェクトを操作する例を示し、図10に続く最後の部分の概念図である。
【図12】アプリケーションプログラムオブジェクトの状態遷移を示し、ロボットオブジェクトの使用権の取得操作と放棄操作による状態遷移を示す概念図である。
【図13】ロボットオブジェクトの状態遷移を示し、使用権の取得要求と放棄要求による状態遷移を示す概念図である。
【図14】ロボットオブジェクトが識別番号によりロボットオブジェクトを識別する場合の操作のシナリオを示し、その前半部分の概念図である。
【図15】ロボットオブジェクトが識別番号によりロボットオブジェクトを識別する場合の操作のシナリオを示し、図14に続く後半部分の概念図である。
【図16】制御装置のオブジェクトモデルと実在の機械装置の対応関係を示す概念図で、(a)は実在の機械装置の構成を示す概念図、(b)は(a)に対応する制御装置内部のオブジェクトモデルの構成を示す概念図である。
【図17】2つのロボットオブジェクトを2つのアプリケーションプログラムタスクで共有して使用する様子を示し、(a)はロボットオブジェクトとアプリケーションプログラムタスクの関係を示す概念図、(b)は作業の流れを示す概念図である。
【図18】2つのロボットオブジェクトをそれぞれ別々のアプリケーションプログラムタスクで使用する様子を示し、(a)はロボットオブジェクトとアプリケーションプログラムタスクの関係を示す概念図、(b)は作業の流れを示す概念図である。
【図19】複数のロボットオブジェクトが重複して制御軸オブジェクトを保持している場合の操作のシナリオを示し、その最初の部分の概念図である。
【図20】複数のロボットオブジェクトが重複して制御軸オブジェクトを保持している場合の操作のシナリオを示し、図19に続く部分の概念図である。
【図21】複数のロボットオブジェクトが重複して制御軸オブジェクトを保持している場合の操作のシナリオを示し、図20に続く最後の部分の概念図である。
【図22】制御軸オブジェクトの状態遷移を示し、使用権の取得要求と放棄要求による状態遷移を示す概念図である。
【図23】本発明の制御装置によってシーリング作業を行う場合のプログラムタスクとロボットオブジェクトの関係を示し、(a)はシーリング準備作業についての概念図、(b)はシーリング作業についての概念図である。
【図24】本発明の制御装置によってシーリング作業を行う場合の作業内容とロボットオブジェクトの関係を示す概念図である。
【図25】従来の制御装置の制御対象である機械装置を示す概略構成図である。
【図26】図25の機械装置の制御軸の集合を示す概念図である。
【図27】図25の機械装置の制御軸・機構解とロボットの関係を示す概念図である。
【図28】従来の制御装置のプログラムタスクとロボットの関係を示す概念図である。
【図29】従来の制御装置の作業内容とロボットの関係を示す概念図である。
【図30】従来の機械装置の別の例における制御軸の集合を示す概念図である。
【図31】図30の機械装置の制御軸・機構解とロボットの関係を示す概念図である。
【符号の説明】
6〜9 制御軸
10〜14 ロボット
15〜19 機構解
20〜23 アプリケーションプログラムオブジェクト(プログラムタスク)
26〜30 ロボットオブジェクト
32〜36 機構解オブジェクト
43〜46 制御軸オブジェクト
Claims (3)
- 同期した制御の単位として複数のロボットを制御対象として定義可能であり、各ロボットは制御軸の部分集合と、これに対応する機構解を異なる組合せで保持し、各ロボットはプログラムタスクから切り替えて使用され制御されることを特徴とするロボットの制御装置。
- 各ロボットに属する制御軸の部分集合は互いに重複することを許容し、制御軸の部分集合が各ロボットで互いに重複するか一致する場合は、各ロボットによる制御軸の部分集合の同時使用を禁止し、制御軸の部分集合が各ロボットで重複せず独立な場合は、これらのロボットによる制御軸の部分集合の同時使用を許容して制御することを特徴とする請求項1記載のロボットの制御装置。
- 前記ロボットの構成は、前記プログラムタスクから前記制御軸と前記機構解の組合せを適宜選択可能であることを特徴とする請求項1又は2記載のロボットの制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09541299A JP3664910B2 (ja) | 1999-04-01 | 1999-04-01 | ロボットの制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09541299A JP3664910B2 (ja) | 1999-04-01 | 1999-04-01 | ロボットの制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000293216A JP2000293216A (ja) | 2000-10-20 |
JP3664910B2 true JP3664910B2 (ja) | 2005-06-29 |
Family
ID=14136974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09541299A Expired - Lifetime JP3664910B2 (ja) | 1999-04-01 | 1999-04-01 | ロボットの制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3664910B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020017248A1 (ja) * | 2018-07-18 | 2020-01-23 | オムロン株式会社 | 制御装置、制御方法、および制御プログラム |
-
1999
- 1999-04-01 JP JP09541299A patent/JP3664910B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020017248A1 (ja) * | 2018-07-18 | 2020-01-23 | オムロン株式会社 | 制御装置、制御方法、および制御プログラム |
JP7167516B2 (ja) | 2018-07-18 | 2022-11-09 | オムロン株式会社 | 制御装置、制御方法、および制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2000293216A (ja) | 2000-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8260460B2 (en) | Interactive robot control system and method of use | |
JP3269003B2 (ja) | ロボット制御装置 | |
JP2012066376A (ja) | 1つ以上の人間型ロボットの同時経路検討 | |
EP0993914A2 (en) | Robot Apparatus | |
JP2012066376A5 (ja) | ||
JP5149258B2 (ja) | ロボットコンポーネント管理装置 | |
JP6696465B2 (ja) | コントロールシステム、コントローラ及び制御方法 | |
Diachenko et al. | Industrial collaborative robot Digital Twin integration and control using Robot Operating System | |
Simonič et al. | Modular ROS-based software architecture for reconfigurable, Industry 4.0 compatible robotic workcells | |
Nevliudov et al. | Multithreaded Software Control of Industrial Manipulator Movement | |
JP3664910B2 (ja) | ロボットの制御装置 | |
EP3653346A1 (en) | Method and system for automated user interface generation and dynamic update | |
JP3446933B2 (ja) | ロボツト装置及びその制御方法 | |
Zieliński et al. | Multi-robot system controllers | |
Xi et al. | Design of a real-time robot control system oriented for human-robot cooperation | |
JP2511155B2 (ja) | プログラマブルコントロ―ラシステム | |
Vistein et al. | Towards re-orchestration of real-time component systems in robotics | |
Zielinski et al. | Mrroc++ based system description | |
WO2023171574A1 (ja) | 制御システム、演算モジュール、ロボットコントローラ、及び制御方法 | |
JP7276359B2 (ja) | 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法 | |
Tewkesbury et al. | The automatic programming of production machinery for de-flashing plastic parts | |
JPH08106320A (ja) | 自動機械及び自動機械の制御方法 | |
Freund et al. | Cooperative control of robots as a basis for projective virtual reality | |
Hörmann | Programming of the Robot Cell | |
JPH0991022A (ja) | ロボット制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040922 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050209 |
|
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: 20050302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050330 |
|
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: 20080408 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100408 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100408 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130408 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |