JP2007222964A - モジュール制御用プログラム、制御システム - Google Patents
モジュール制御用プログラム、制御システム Download PDFInfo
- Publication number
- JP2007222964A JP2007222964A JP2006044081A JP2006044081A JP2007222964A JP 2007222964 A JP2007222964 A JP 2007222964A JP 2006044081 A JP2006044081 A JP 2006044081A JP 2006044081 A JP2006044081 A JP 2006044081A JP 2007222964 A JP2007222964 A JP 2007222964A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate system
- component
- information
- orientation
- module control
- 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.)
- Pending
Links
Images
Abstract
【課題】 複数の構成要素からなる制御システムにおいて各構成要素間の位置及び姿勢と共に、各構成要素のワールド座標系における位置及び姿勢を特定する処理を簡単に行う。
【解決手段】 固有の座標系を用いた複数の構成要素を連結してなる制御システムの各構成要素に実装されるモジュール制御用プログラムであって、自己の構成要素座標系におけるワーキングポイントWPを受け取る情報インターフェース14と、ワーキングポイントWPに所定のオフセットを与えるオフセット保持部12と、上位の構成要素からのワールド座標系における位置・姿勢情報Mn−1を受け取るプログラム間インターフェース11と、ワーキングポイントWPと所定のオフセットと位置・姿勢情報Mn−1とから、ワールド座標系における自己の位置・姿勢情報Mnを演算する座標変換処理部13と、位置・姿勢情報Mnを下位の構成要素に渡すプログラム間インターフェース15とを有する。
【選択図】 図6
【解決手段】 固有の座標系を用いた複数の構成要素を連結してなる制御システムの各構成要素に実装されるモジュール制御用プログラムであって、自己の構成要素座標系におけるワーキングポイントWPを受け取る情報インターフェース14と、ワーキングポイントWPに所定のオフセットを与えるオフセット保持部12と、上位の構成要素からのワールド座標系における位置・姿勢情報Mn−1を受け取るプログラム間インターフェース11と、ワーキングポイントWPと所定のオフセットと位置・姿勢情報Mn−1とから、ワールド座標系における自己の位置・姿勢情報Mnを演算する座標変換処理部13と、位置・姿勢情報Mnを下位の構成要素に渡すプログラム間インターフェース15とを有する。
【選択図】 図6
Description
本発明は、それぞれ構成要素固有の座標系を有する複数の構成要素を統合して制御することによって動作する制御システム、当該各構成要素が動作するためのモジュール制御用プログラムに関する。
従来より、マニピュレータのような産業用ロボットのような複数のモジュールを統合して動作させる装置において、各モジュールが固有の座標系を有していることが多い。例えば、マニピュレータは、台座に固定された直交座標系と、マニピュレータに取り付けられた工具のような手先効果器のような根元を基準とする座標系とを有している。このように、マニピュレータ座標系と手先効果器座標系の相対的な位置・姿勢の関係は、マニピュレータ全体での動作によって変化するが、当該座標系間の相対的な関係は、逆運動学、順運動学に基づいて考察され、適切な変換行列を求めることによって適切に求めることができるとしている(例えば下記の特許文献1を参照)。
また、従来における非産業用ロボットを開発するに際しては、一般的に広い分野に使用されるといったように広い使用用途があり、ユーザターゲットが明確ではないので、ロボットの用途、使用場所に応じて各モジュールのハードウェア構成及び複数のモジュールからなるシステムのハードウェア構成を検討して設計することが行われていた。また、各モジュール及びシステムのソフトウェア設計においても、作製する毎に開発を行っていた。
しかしながら、このような開発手法は、作業効率が低いために、ロボット開発におけるハードウェア及びソフトウェアを複数のロボット要素に分割した上で、各ロボット要素の部品化(モジュール化)をして、できるだけ各モジュールを再利用する取り組みがなされている(下記の特許文献2及び非特許文献1を参照)。
特許第2718678号
特開2005−196427号公報
NEDOプロジェクト「ロボットの開発基盤となるソフトウェア上の基盤整備 成果報告書」(平成14年度〜16年度)
上述したようなロボットのうち、自律移動ロボットなどの空間・領域を自在に移動するロボットでは、時々刻々と変化する位置及び姿勢を特定するために空間に固定されたワールド座標系とロボットに固定されたロボット座標系とを設定し、当該ワールド座標系とロボット座標系との相対的な位置・姿勢を特定する必要がある。また、ロボットがアームやハンドといった複数の構成要素からなる場合には、当該構成要素ごとに、ワールド座標系とロボット座標系との相対的な位置・姿勢を特定する必要がある。
上述した従来の技術においては、隣接するロボット構成要素間の相対的な位置・姿勢を特定することはできるが、ロボット自体が移動した場合に、ワールド座標系におけるロボット構成要素の位置・姿勢が変化するのに対して、各ロボット構成要素が認識しないという状況が起こりうる。したがって、ロボット構成要素においても、ワールド座標系における自己の位置・姿勢を特定する必要がある。
そこで、本発明は、上述した実情に鑑みて提案されたものであり、複数の構成要素からなる制御システムにおいて各構成要素間の位置及び姿勢と共に、各構成要素のワールド座標系における位置及び姿勢を特定する処理を簡単に行うことができるモジュール制御用プログラム、制御システムを提供することを目的とする。
本発明は、それぞれが固有の座標系を用いた複数の構成要素を連結してなる制御システムにおいて各構成要素に実装されるモジュール制御用プログラムであって、上述の課題を解決するために、自己の構成要素座標系における基準位置情報を受け取る基準位置入力機能と、自己の構成要素座標系における基準位置に所定のオフセットを与えるオフセット保持機能と、複数の構成要素における上位のモジュール制御用プログラムから、当該上位のモジュール制御用プログラムが演算した、下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を受け取る情報入力機能と、基準位置入力機能で入力した自己の構成要素座標系における基準位置情報と、オフセット保持機能で保持している所定のオフセットと、情報入力機能で受け取った位置及び姿勢を表す情報とから、ワールド座標系における自己の構成要素の位置及び姿勢を演算する座標変換機能と、ワールド座標系における自己の構成要素の位置及び姿勢を表す情報を、複数の構成要素における下位のモジュール制御用プログラムに渡す情報出力機能とを構成要素に実装させる座標変換プログラムを有することを特徴とする。
また、本発明に係る他のモジュール制御用プログラムは、それぞれが固有の座標系を用いた複数の構成要素を連結してなる制御システムにおいて各構成要素に実装されるモジュール制御用プログラムであって、上述の課題を解決するために、自己の構成要素の動作を制御するためのアプリケーションプログラムと、アプリケーションプログラムからの命令に従って、ワールド座標系における自己の現在の位置及び姿勢を演算する座標変換プログラムとを有し、座標変換プログラムは、自己の構成要素座標系における基準位置情報を受け取る基準位置入力機能と、自己の構成要素座標系における基準位置に所定のオフセットを与えるオフセット保持機能と、複数の構成要素における上位のモジュール制御用プログラムから、当該上位のモジュール制御用プログラムが演算した、下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を受け取る情報入力機能と、基準位置入力機能で入力した自己の構成要素座標系における基準位置情報と、オフセット保持機能で保持している所定のオフセットと、情報入力機能で受け取った位置及び姿勢を表す情報とから、ワールド座標系における自己の構成要素の位置及び姿勢を演算する座標変換機能と、ワールド座標系における自己の構成要素の位置及び姿勢を表す情報を、複数の構成要素における下位のモジュール制御用プログラムに渡す情報出力機能とを構成要素に実装させることを特徴とする。
更に、本発明は、それぞれが固有の座標系を用いた複数の構成要素を統括制御する制御システムであって、上述の課題を解決するために、各構成要素は、自己の構成要素の動作を制御するためのアプリケーションプログラムと、アプリケーションプログラムからの命令に従って、ワールド座標系における自己の現在の位置及び姿勢を演算する座標変換プログラムとを有し、座標変換プログラムは、自己の構成要素座標系における基準位置情報を受け取る基準位置入力機能と、自己の構成要素座標系における基準位置に所定のオフセットを与えるオフセット保持機能と、複数の構成要素における上位のモジュール制御用プログラムから、当該上位のモジュール制御用プログラムが演算した、下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を受け取る情報入力機能と、基準位置入力機能で入力した自己の構成要素座標系における基準位置情報と、オフセット保持機能で保持している所定のオフセットと、情報入力機能で受け取った位置及び姿勢を表す情報とから、ワールド座標系における自己の構成要素の位置及び姿勢を演算する座標変換機能と、ワールド座標系における自己の構成要素の位置及び姿勢を表す情報を、複数の構成要素における下位のモジュール制御用プログラムに渡す情報出力機能とを有することを特徴とする。
本発明に係るモジュール制御用プログラム及び制御システムよれば、上位下位関係が設定された複数の構成要素における各構成要素に、ワールド座標系における位置及び姿勢を演算する座標変換プログラムを実装し、上位の座標変換プログラムから、当該上位のモジュール制御用プログラムが演算した下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を下位の座標変換プログラムに引き渡すことができる。したがって、複数の構成要素からなる制御システムにおいて各構成要素間の位置及び姿勢と共に、各構成要素のワールド座標系における位置及び姿勢を特定する処理を簡単に行うことができる。
以下、本発明の実施の形態について図面を参照して説明する。
本発明は、例えば図1に示すように、移動ロボットのロボット構成要素の動作及び幾何学的位置の変更に対して不変なワールド座標系で表現された家屋内などの所定空間100内を移動する移動ロボットA,Bのロボット構成要素をモジュール化するためのモジュール制御用プログラム、及び、当該複数のロボット構成要素を統合して制御するためのロボット構成要素の統合システムに適用される。
移動ロボットA,Bのそれぞれは、図2に示すように、固定されたワールド座標系の所定空間100に存在し、ロボット上部を回転させるターンテーブル1,当該ターンテーブル1上の3関節のリンク機構を有してマニピュレータで動作する左アーム2及び右アーム3,当該左アーム2及び右アーム3の先端に設けられた手先効果器としての左ハンド4,右ハンド5といった機能ごとのハードウェア的なロボット構成要素を有する。これらのロボット構成要素は、例えばアクチュエータ、センサ等で構成される。ロボット構成要素は、それぞれについてインストールされたモジュール制御用プログラムにおけるアプリケーションプログラムに従って回転駆動又は伸縮駆動といった動作を行う。また、動作は、モジュール制御用プログラムにおける座標変換プログラムによって、それぞれ固有の座標系によって管理される。
ロボット構成要素の座標系は、移動ロボットA,Bに固定されており、移動ロボットA,Bが移動しても不変なものである。このハードウェア構成要素の座標系は、移動ロボットA,Bの移動に伴ってワールド座標系から見た位置が変化され、移動ロボットA,Bの向きの変更によってワールド座標系から見た姿勢が変化する。
また、ロボット構成要素は、単一のモジュール統合プログラムに従って各ロボット構成要素間の位置関係、他の移動ロボットA,B間の位置関係等が管理される。このように、移動ロボットA,Bのソフトウェア的な構成要素は、複数のモジュール制御用プログラムからなる分散型オブジェクトとしたプログラム体系となっている。
ハードウェア的なロボット構成要素は、図3に示すように、移動ロボットA,Bにおける上下関係が定義されている。すなわち、所定空間100に移動ロボットA,Bが存在して、当該移動ロボットA,Bごとに、ターンテーブル1,左アーム2及び右アーム3,左ハンド4及び右ハンド5の順で上下関係が定義されている。これらのハードウェア構成要素は、それぞれ協同して動作して、移動ロボットA,Bを動作させる。すなわち、ロボット構成要素ごとのモジュール制御用プログラムが動作して、当該ロボット構成要素ごとに動作すると共に、モジュール制御用プログラム間で演算結果を授受することによって上下関係において隣接するロボット構成要素のワールド座標系における位置・姿勢情報を得て、自己のモジュール制御用プログラムによってワールド座標系における位置・姿勢情報である演算結果を得る。
モジュール制御用プログラムは、ターンテーブル1,左アーム2,右アーム3,左ハンド4,右ハンド5といったハードウェア構成要素ごとに設計されて、図示しないメモリにインストールされる。また、このモジュール制御用プログラムとしては、所定空間100のワールド座標系における座標変換プログラムがある。
モジュール制御用プログラムは、ハードウェア構成要素ごとのアプリケーションプログラムと、ハードウェア構成要素ごとの座標変換プログラムとを少なくとも含む。このアプリケーションプログラムは、例えば、モジュール制御用プログラムからの命令に従って各ハードウェア構成要素の駆動開始及び停止、ハードウェア構成要素の駆動力、駆動方向等を決定して、ハードウェア構成要素に制御信号を供給する処理等を行う。座標変換プログラムは、ハードウェア構成要素が動作したことによって変化するハードウェア構成要素の位置・姿勢を更新する処理を行う。この座標変換プログラムは、所定の座標系となっており、当該座標系における位置・姿勢を演算する。また、座標変換プログラムは、隣接して接続されたハードウェア構成要素の座標変換プログラムから、当該座標変換プログラムによって演算した位置・姿勢情報を入力し、当該位置・姿勢情報に基づいて、自己の位置・姿勢情報を更新して出力する。
モジュール統合プログラムは、図示しないメモリにインストールされ、移動ロボットA,B単位で必要な演算処理を行う。このモジュール統合プログラムは、モジュール統合プログラムのアプリケーションプログラムで演算された情報や、座標変換プログラムで演算された位置・姿勢情報を入力して、各モジュール制御用プログラムに命令を供給する。
このような移動ロボットA,Bは、図4に示すように、ハードウェア構成要素の座標変換プログラム10A,10B,10C,10D,10E,10F,10G,10HごとにワーキングポイントWPが設定される。このワーキングポイントWPは、あるロボット構成要素に他のロボット構成要素を接続する基準となる点であり、各ロボット構成要素固有の座標系で表現される位置及び姿勢を要素として有している。なお、以下の説明では、移動ロボットA,B上に設定されたワーキングポイントWPは、移動ロボットA,Bに対して固定されており、移動ロボットA,Bの動作に対して不変であるものとする。
ターンテーブル1の座標系は、移動ロボットA,B上に設定されたワーキングポイントWPから所定のオフセットだけ離れた点を原点としている。このオフセットは、ゼロであることが望ましいが、幾何学的制約あるいは直感的に理解しやすい位置にロボット構成要素固有の座標系原点を設定することが望ましいという理由で設けられている。また、このターンテーブル1の座標系の原点は、ターンテーブル1の動作に対して不変となる。また、複数の座標系を定義するに際して、移動ロボットA,Bとターンテーブル1のようにワーキングポイントWP及びオフセットを媒介とした幾何学的位置の関係と共に、移動ロボットA,Bを親のロボット構成要素に設定し、ターンテーブル1を子のロボット構成要素に設定する。
また、左アーム2,右アーム3,左ハンド4,右ハンド5の座標系についても、ターンテーブル1の座標系の設定方法と同様に、ワーキングポイントWPからオフセットを介したロボット構成要素固有の座標系原点と、他のロボット構成要素との幾何学的位置の関係と、親子関係を設定することになる。
このように、各ロボット構成要素に固有の座標系原点、幾何学的位置関係及び親子関係を設定することによって、左アーム2及び右アーム3は、ワールド座標系においてターンテーブル1より上方向に座標系の原点があり、ターンテーブル1が動作するとターンテーブル座標系で表現されたアーム固有の座標系の位置及び姿勢が変化することになる。また、左ハンド4及び右ハンド5は、ワールド座標系において左アーム2及び右アーム3より上方向に座標系の原点があり、左アーム2及び右アーム3が動作するとアーム座標系で表現されたハンド固有の座標系の位置及び姿勢が変化することになる。
なお、各ロボット構成要素におけるワーキングポイントWPは、当該ワーキングポイントWPが設定されるロボット構成要素上に設定するが、ロボット構成要素の座標系で表現され得る点であれば、任意の空間上に座標系の原点を設定しても良い。
このようにロボット構成要素について設定された固有の座標系原点、幾何学的位置関係及び親子関係は、モジュール制御用プログラムの座標変換プログラムと同じオブジェクトに属するものとして、各ロボット構成要素についてのメモリに記憶される。各ロボット構成要素は、自己のワーキングポイントWPにどのようなロボット構成要素が連結されているかという情報を得ることなく動作する。
各ロボット構成要素の座標変換プログラムは、モジュール制御用プログラムからワーキングポイントWPが与えられ、図5に示すように、隣接する上位(親)の座標変換プログラムから送られた下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置・姿勢情報M_nを入力し、当該位置・姿勢情報M_n、ワーキングポイントWP_n及び予め設定されたオフセットO_nを用いて、自己の位置・姿勢情報M_nを演算して、下位(子)の座標変換プログラムに送る。
ここで、あるハードウェア構成要素としてのロボット構成要素をRT_nとし、当該ロボット構成要素RT_nの親のロボット構成要素をRT_n−1、子のロボット構成要素をRT_n+1とする。また、nを0とした仮想的なロボット構成要素をワールド座標系とする。図5に示す例では、n=1が移動ロボットAであり、n=2がターンテーブル1であり、n=3が左アーム2であり、n=4が左ハンド4であり、n=5が右アーム3であり、n=6が右ハンド5であり、n=Nが移動ロボットBである場合を示している。また、モジュール制御用プログラムをRTCnと表記し、ワーキングポイントWPをWP_nと表記し、座標変換プログラムをTrans_nと表記する。
この座標変換プログラムTrans_nは、図6に示す座標変換プログラム10であり、座標変換プログラム10は、ロボット構成要素RT_nの動作を制御するためのアプリケーションプログラムからの命令に従って、ワールド座標系における自己の現在の位置及び姿勢を演算する座標変換プログラムである。この座標変換プログラム10は、自己の座標系におけるワーキングポイントWP_nと共に、ワールド座標系における自己の現在の位置及び姿勢を演算するコマンドを受け取る基準位置入力機能である情報インターフェース14と、自己の座標系におけるワーキングポイントWP_nに所定のオフセットを与えるオフセット保持機能であるオフセット保持部12と、複数のロボット構成要素RT_nにおける上位の座標変換プログラム10から、当該上位の座標変換プログラム10が演算した、下位のロボット構成要素RT_nの位置及び姿勢を演算するためのワールド座標系における位置及び姿勢情報Mn−1を受け取る情報入力機能であるプログラム間インターフェース11と、情報インターフェース14で入力した自己の座標系におけるワーキングポイントWP_nと、オフセット保持部12で保持している所定のオフセットと、プログラム間インターフェース11で受け取った位置・姿勢情報M_n−1とから、ワールド座標系における自己の位置及び姿勢である位置・姿勢情報M_nを演算する座標変換機能である座標変換処理部13と、ワールド座標系における位置・姿勢情報M_nを、下位の座標変換プログラムに渡す情報出力機能であるプログラム間インターフェース15とを有する。なお、基準位置入力機能は、ワールド座標系における自己の現在の位置及び姿勢を演算することを命令するコマンドを入力しなくても、ワーキングポイントWP_nが与えられ、子の座標変換プログラムからの位置・姿勢情報M_nを受信したことに応じて自動的に演算を開始しても良い。
この座標変換プログラムTrans_nは、情報インターフェース14によって、自己のモジュール制御用プログラムRTC_nからワーキングポイントWP_nを得る。このワーキングポイントWP_nは、少なくとも、ロボット構成要素RT_nの固有の座標系で表現される位置・姿勢情報を含む。
また、座標変換プログラムTrans_nは、親側の座標変換プログラムTrans_n−1からプログラム間インターフェース11によって、位置・姿勢情報M_n−1とワーキングポイントWP_nとを取得する。この位置・姿勢情報M_n−1は、ロボット構成要素RT_nの固有の座標系で表現されたワーキングポイントWP_nをワールド座標系で表現するための4×4変換行列であり、下記の式1のように、
M_n=M_n−1・O_n・[WP_n] (式1)
で表現される。この式1において、[WP_n]は下記の数1で示すような4×4行列であって、ロボット構成要素RT_nのワールド座標系における位置及び姿勢を含んでいる。
M_n=M_n−1・O_n・[WP_n] (式1)
で表現される。この式1において、[WP_n]は下記の数1で示すような4×4行列であって、ロボット構成要素RT_nのワールド座標系における位置及び姿勢を含んでいる。
例えば、ターンテーブル1が回転して、右アーム3の座標系がターンテーブル1の座標系に対して、ターンテーブル1の回転軸に対してαだけ回転した場合、ターンテーブル1の回転角度が位置・姿勢情報M_n−1で与えられて、右アーム3の座標変換プログラムに供給され、右アーム3の座標変換プログラムは、当該位置・姿勢情報M_n−1に対してオフセットO_nだけ平行移動させた行列式を演算し、次に、ワーキングポイントWP_nだけ平行移動させた4×4の行列式を演算する。これによって、ターンテーブル1がαだけ回転し、オフセットO_n及びワーキングポイントWP_nだけ移動させたワールド座標系における自己の位置・姿勢情報M_nを作成できる。
ここで、上位のロボット構成要素の回転動作によって自己の位置・姿勢情報M_nが変化した時の行列式は、下記の式2で表現され、上位のロボット構成要素の平行移動動作によって自己の位置・姿勢情報M_nが変化した時の行列式は、下記の式3で表現される。
したがって、座標変換プログラムTrans_nは、位置・姿勢情報M_nによって式2と式3とが混合された4×4行列式を得た場合に、式3で表現される行列式を乗算し、且つワーキングポイントWP_nを座標系原点としたワールド座標系の位置・姿勢情報M_nを演算できる。また、座標変換プログラムTrans_nは、位置・姿勢情報M_n−1にオフセットO_nを与えた演算結果を得て、当該演算結果を用いてワーキングポイントWP_nをワールド座標系で表現した位置・姿勢情報ANS_nを演算する。この位置・姿勢情報ANS_nは、下記の式4に示すように、
ANS_n=M_n−1・O_n・WP_n (式4)
で表現される。ここで、式4におけるWP_nは、ロボット構成要素固有の座標系原点からの位置座標を示す(x,y,z)と、ロボット構成要素固有の座標系原点に対する姿勢を示す(α,β,γ)とで表現される。この位置・姿勢情報ANSnは、図6における情報インターフェース16によって、モジュール統合プログラムに出力される。なお、下位の座標変換プログラムTrans_nに渡す位置・姿勢情報M_nは、4×4変換行列で表現された情報であり、モジュール統合プログラム等に渡す位置・姿勢情報ANS_nは、変換行列ではなく自己のワールド座標系で表現した情報である。
ANS_n=M_n−1・O_n・WP_n (式4)
で表現される。ここで、式4におけるWP_nは、ロボット構成要素固有の座標系原点からの位置座標を示す(x,y,z)と、ロボット構成要素固有の座標系原点に対する姿勢を示す(α,β,γ)とで表現される。この位置・姿勢情報ANSnは、図6における情報インターフェース16によって、モジュール統合プログラムに出力される。なお、下位の座標変換プログラムTrans_nに渡す位置・姿勢情報M_nは、4×4変換行列で表現された情報であり、モジュール統合プログラム等に渡す位置・姿勢情報ANS_nは、変換行列ではなく自己のワールド座標系で表現した情報である。
ワーキングポイントWP_nは、所定時間毎にロボット構成要素RT_nのモジュール制御用プログラムから座標変換プログラムTrans_nに供給され、座標変換処理部13は、所定時間ごとに自己のワールド座標系における位置・姿勢情報M_n及び位置・姿勢情報ANSnを演算する。この場合、ワーキングポイントWP_nの値が実際には変更されていなくても、ワーキングポイントWP_nの送信が行われるので計算機(CPU)のリソースや通信トラフィックを無駄に使用する弊害があるものの、当該ワーキングポイントWP_nの送信動作を通信エラーなどの検知用としてCPUのリソース及び通信トラフィックを割り当てることもできる。
一方、例えば、ワーキングポイントWP_nの値が変更された場合のみ、当該ワーキングポイントWP_nをロボット構成要素RT_nから座標変換プログラムTrans_nに供給するようにしても良い。
また、移動ロボットA,Bの異常動作や通信エラーの検出手段を他に持つ場合や、移動ロボットA,Bの異常動作が即座に致命的な事故につながらないような移動ロボットA,Bではこの方式を採用しても良い。更に、ロボット構成要素RT_n間又は移動ロボットA,B間のデータの送受信は、プッシュ型又はプル型のいずれであっても良い。例えば、プル型を採用して、座標変換プログラムTrans_nは、下位のロボット構成要素RT_nの座標変換プログラムTrans_n−1からの位置・姿勢情報M_nの更新要求を受けた時に、ワーキングポイントWP_nを受け取って、位置・姿勢情報M_nを演算することで、ロボット構成要素RT_n間のデータトラフィックを少なくして、自己の位置・姿勢情報M_nの更新を行うことができる。
次に、各ロボット構成要素RT_nの座標変換プログラムTrans_nについて説明する。
座標変換プログラムTrans_nは、ロボット構成要素RT_nの固有の座標系の原点を設定するワーキングポイントWP_nを変更するオフセットO_nの情報を予め記憶している。このオフセットO_nは、座標変換プログラムTrans_nを実装するに際して、内部パラメータとして設計者によって与えられる。すなわち、オフセットO_nは、設計者がロボット構成要素RT_nと座標変換プログラムTrans_nとを関連付けて実装する際のモジュール制御用プログラムの初期値として設定される。
座標変換プログラムTrans_nは、オフセットO_nのデータを参照して、自己のワーキングポイントWP_nを変更し、当該ワーキングポイントWP_nと親のロボット構成要素RT_n−1からの位置・姿勢情報M_n−1とから、ロボット構成要素RT_nの固有座標系における位置及び姿勢を表す4×4変換行列を生成する。このとき、座標変換プログラムTrans_nは、オフセットO_nによって位置・姿勢情報M_n−1を変換した変換行列を作成し、モジュール制御用プログラムRTC_nから与えられたワーキングポイントWP_nを用いて自己の位置及び姿勢を示す位置・姿勢情報M_nを作成する。また、座標変換プログラムTrans_nは、自己の位置・姿勢情報M_nから、位置及び姿勢を示す要素情報を含む位置・姿勢情報ANS_nを作成して、モジュール統合プログラム等に出力する。
ここで、図4に示すように、移動ロボットA,Bにおいて最上位の座標変換プログラムTrans_0(n=0、座標変換プログラム10A)については、子のロボット構成要素RT_nが存在しないことから、子の座標変換プログラムTrans_nが存在しなく、位置・姿勢情報M_nが供給されない。なお、n=0の場合とは、ロボット構成要素RT_nがワールド座標系そのものの仮想的なロボット構成要素RT_nに該当する。この場合、座標変換プログラムTrans_0には、位置・姿勢情報M_nとして4×4の単位行列を与えて、当該座標変換プログラムTrans_0によって位置・姿勢情報M_0及び位置・姿勢情報ANS_0を作成させる。
このように、本発明を適用したモジュール制御用プログラムは、ロボット構成要素RT_nごとに座標変換プログラムTrans_nを設けて、移動ロボットA,Bのロボット構成要素RT_n間を座標変換プログラムTrans_nを介して接続することができる。これによって、実際のロボット構成要素RT_nの連結順序に拘わらず、座標変換プログラムTrans_n間でロボット構成要素RT_nのワールド座標系における位置及び姿勢を授受するような共通のモジュール制御用プログラムをロボット構成要素RT_nに実装するだけで、ロボット構成要素RT_n間でワールド座標系における位置及び姿勢を認識させることができる。
すなわち、上述した一例では、最上位のロボット構成要素RT_nから、移動ロボットA,B(ワールド座標系)、ターンテーブル1、左アーム2及び右アーム3、左ハンド4及び右ハンド5という親子関係の順序であったが、移動ロボットA,B、右アーム3及び左ハンド4、ターンテーブル1、左ハンド4及び右ハンド5といった親子関係の順序に変更しても、各ロボット構成要素RT_nから座標変換プログラムTrans_nに適切なオフセットO_n及びワーキングポイントWP_nを与えるだけで、モジュール制御用プログラムに大きな変更を与えるといった作業をなくすことができる。
更に、新たなロボット構成要素RT_nとしてターンテーブル1上にもう一組のアーム及びハンドを追加する場合であっても、当該新たなアームに、ワールド座標系における移動ロボットA,Bの位置及び姿勢を演算し、当該ワールド座標系における位置及び姿勢からターンテーブル1の固有座標の位置及び姿勢を演算した上で自己のアームの固有の座標系における位置及び姿勢を演算するモジュール制御用プログラムを実装する必要なく、さらには、新たなハンドに、ワールド座標系における移動ロボットA,Bの位置及び姿勢を演算し、当該ワールド座標系における位置及び姿勢からターンテーブル1の固有座標の位置及び姿勢を演算し、アームの固有の座標系における位置及び姿勢を演算した上で自己の固有の座標系における位置及び姿勢を演算するモジュール制御用プログラムを実装する必要をなくすことができる。
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
1 ターンテーブル
2 左アーム
2 左アーム
3 右アーム
4 左ハンド
5 右ハンド
10 座標変換プログラム
11 プログラム間インターフェース
12 オフセット保持部
13 座標変換処理部
14 情報インターフェース
15 プログラム間インターフェース
16 情報インターフェース
100 所定空間
2 左アーム
2 左アーム
3 右アーム
4 左ハンド
5 右ハンド
10 座標変換プログラム
11 プログラム間インターフェース
12 オフセット保持部
13 座標変換処理部
14 情報インターフェース
15 プログラム間インターフェース
16 情報インターフェース
100 所定空間
Claims (6)
- それぞれが固有の座標系を用いた複数の構成要素を連結してなる制御システムにおいて各構成要素に実装されるモジュール制御用プログラムであって、
自己の構成要素座標系における基準位置情報を受け取る基準位置入力機能と、
前記自己の構成要素座標系における基準位置に所定のオフセットを与えるオフセット保持機能と、
前記複数の構成要素における上位のモジュール制御用プログラムから、当該上位のモジュール制御用プログラムが演算した、下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を受け取る情報入力機能と、
前記基準位置入力機能で入力した自己の構成要素座標系における基準位置情報と、前記オフセット保持機能で保持している所定のオフセットと、前記情報入力機能で受け取った位置及び姿勢を表す情報とから、ワールド座標系における自己の構成要素の位置及び姿勢を演算する座標変換機能と、
ワールド座標系における自己の構成要素の位置及び姿勢を表す情報を、複数の構成要素における下位のモジュール制御用プログラムに渡す情報出力機能と
を構成要素に実装させる座標変換プログラムを有すること
を特徴とするモジュール制御用プログラム。 - それぞれが固有の座標系を用いた複数の構成要素を連結してなる制御システムにおいて各構成要素に実装されるモジュール制御用プログラムであって、
自己の構成要素の動作を制御するためのアプリケーションプログラムと、
前記アプリケーションプログラムからの命令に従って、ワールド座標系における自己の現在の位置及び姿勢を演算する座標変換プログラムとを有し、
前記座標変換プログラムは、
自己の構成要素座標系における基準位置情報を受け取る基準位置入力機能と、
前記自己の構成要素座標系における基準位置に所定のオフセットを与えるオフセット保持機能と、
前記複数の構成要素における上位のモジュール制御用プログラムから、当該上位のモジュール制御用プログラムが演算した、下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を受け取る情報入力機能と、
前記基準位置入力機能で入力した自己の構成要素座標系における基準位置情報と、前記オフセット保持機能で保持している所定のオフセットと、前記情報入力機能で受け取った位置及び姿勢を表す情報とから、ワールド座標系における自己の構成要素の位置及び姿勢を演算する座標変換機能と、
ワールド座標系における自己の構成要素の位置及び姿勢を表す情報を、複数の構成要素における下位のモジュール制御用プログラムに渡す情報出力機能と
を構成要素に実装させるモジュール制御用プログラム。 - それぞれが固有の座標系を用いた複数の構成要素を統括制御する制御システムであって、
各構成要素は、
自己の構成要素の動作を制御するためのアプリケーションプログラムと、
前記アプリケーションプログラムからの命令に従って、ワールド座標系における自己の現在の位置及び姿勢を演算する座標変換プログラムとを有し、
前記座標変換プログラムは、
自己の構成要素座標系における基準位置情報を受け取る基準位置入力機能と、
前記自己の構成要素座標系における基準位置に所定のオフセットを与えるオフセット保持機能と、
前記複数の構成要素における上位のモジュール制御用プログラムから、当該上位のモジュール制御用プログラムが演算した、下位の構成要素の位置及び姿勢を演算するためのワールド座標系における位置及び姿勢を表す情報を受け取る情報入力機能と、
前記基準位置入力機能で入力した自己の構成要素座標系における基準位置情報と、前記オフセット保持機能で保持している所定のオフセットと、前記情報入力機能で受け取った位置及び姿勢を表す情報とから、ワールド座標系における自己の構成要素の位置及び姿勢を演算する座標変換機能と、
ワールド座標系における自己の構成要素の位置及び姿勢を表す情報を、複数の構成要素における下位のモジュール制御用プログラムに渡す情報出力機能とを有すること
を特徴とする制御システム。 - 前記基準位置入力機能は、所定時間ごとに基準位置情報を入力し、
前記座標変換機能は、当該基準位置情報を用いて自己の構成要素の位置及び姿勢を演算すること
を特徴とする請求項1又は請求項2に記載のモジュール制御用プログラム。 - 前記基準位置入力機能は、自己の構成要素の基準位置が変更した場合に当該基準位置情報を入力し、
前記座標変換機能は、当該基準位置情報を用いて自己の構成要素の位置及び姿勢を演算すること
を特徴とする請求項1又は請求項2に記載のモジュール制御用プログラム。 - 前記座標変換機能は、下位の構成要素からの要求を受けた場合に、自己の構成要素の位置及び座標を演算し、
前記情報出力機能は、当該下位のモジュール制御用プログラムに自己の位置及び姿勢を表す情報を渡すこと
を特徴とする請求項1又は請求項2に記載のモジュール制御用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006044081A JP2007222964A (ja) | 2006-02-21 | 2006-02-21 | モジュール制御用プログラム、制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006044081A JP2007222964A (ja) | 2006-02-21 | 2006-02-21 | モジュール制御用プログラム、制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007222964A true JP2007222964A (ja) | 2007-09-06 |
Family
ID=38545244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006044081A Pending JP2007222964A (ja) | 2006-02-21 | 2006-02-21 | モジュール制御用プログラム、制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007222964A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918804A (zh) * | 2019-03-13 | 2019-06-21 | 中民筑友科技投资有限公司 | 基于bim模型的构件模型坐标转换方法、系统及装置 |
-
2006
- 2006-02-21 JP JP2006044081A patent/JP2007222964A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918804A (zh) * | 2019-03-13 | 2019-06-21 | 中民筑友科技投资有限公司 | 基于bim模型的构件模型坐标转换方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6379874B2 (ja) | ティーチングシステム、ロボットシステムおよびティーチング方法 | |
EP2660014B1 (en) | Control device and teaching method for seven-shaft multi-joint robot | |
JP5872894B2 (ja) | ロボット動作教示支援装置及び方法 | |
EP4045390B1 (en) | Dynamic planning controller | |
US20180036883A1 (en) | Simulation apparatus, robot control apparatus and robot | |
JP2013132731A (ja) | ロボット制御システム、ロボットシステム及びロボット制御方法 | |
JP2009274148A (ja) | シミュレーション装置 | |
JP6464204B2 (ja) | オフラインプログラミング装置及び位置パラメータ補正方法 | |
JP6859757B2 (ja) | 制御システム、設定装置、設定方法、および設定プログラム | |
JP4888374B2 (ja) | ロボットの動作制御装置及びその動作制御方法 | |
US20230251630A1 (en) | Numerical control system | |
CN109129469B (zh) | 机械臂运动学逆解方法、装置及机械臂 | |
JP2012099082A (ja) | 多軸同期動作機械のプログラム変換モジュール及びプログラム変換方法 | |
CN113874177A (zh) | 机器人系统、恢复程序生成装置、控制辅助装置、控制装置、程序、恢复程序的生成方法以及恢复程序的输出方法 | |
JP2007222964A (ja) | モジュール制御用プログラム、制御システム | |
JP6576125B2 (ja) | シミュレーション方法及びシミュレーション装置 | |
KR102474838B1 (ko) | 로봇의 교시 장치, 방법 및 시스템 | |
KR101334356B1 (ko) | 로봇 제어 장치 | |
JP5582992B2 (ja) | ロボット教示データの算出方法およびロボットのコントローラ | |
WO2008001777A1 (fr) | système de commande de robot, procédé de commande de robot et robot | |
US20230249337A1 (en) | Numerical control system | |
TWI826893B (zh) | 數值控制裝置及數值控制系統 | |
JPH06187020A (ja) | ロボットの動作軌跡教示方法 | |
KR20190029284A (ko) | 로봇의 제어 장치, 방법 및 시스템 | |
To | A framework for flexible integration in robotics and its applications for calibration and error compensation |