JP5149258B2 - ロボットコンポーネント管理装置 - Google Patents

ロボットコンポーネント管理装置 Download PDF

Info

Publication number
JP5149258B2
JP5149258B2 JP2009233275A JP2009233275A JP5149258B2 JP 5149258 B2 JP5149258 B2 JP 5149258B2 JP 2009233275 A JP2009233275 A JP 2009233275A JP 2009233275 A JP2009233275 A JP 2009233275A JP 5149258 B2 JP5149258 B2 JP 5149258B2
Authority
JP
Japan
Prior art keywords
robot
component
port
event
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009233275A
Other languages
English (en)
Other versions
JP2010105150A (ja
Inventor
セウン−ウー ジュン
チョル スー ジャン
ビョン ユル ソン
サン フーン キム
ジュン ベ キム
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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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 Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of JP2010105150A publication Critical patent/JP2010105150A/ja
Application granted granted Critical
Publication of JP5149258B2 publication Critical patent/JP5149258B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

本発明は知能型ロボットにおけるロボットコンポーネント(robot components)管理技術に関し、特に、再使用が容易なロボットコンポーネントを開発するのに適した知能型ロボットシステムにおけるロボットコンポーネント管理装置及び方法に関する。
知能型ロボットは、変化する周辺環境と互いに作用しながらユーザに多様なサービスを能動的に提供する。そのために、ロボットの内部には映像処理、自律走行、音声認識、音声合成、モータ及びセンサ制御、ユーザタスクの実行などのような多数の複雑な機能が全て含まれている。しかしながら、このような多数の機能を行うロボットを1つのロボットメーカーが全て開発することは容易ではなく、結局、既に開発されたコンポーネントを組み合わせて多様な機能を満たすロボットを開発せざるを得なかった。また、ロボットのようなリアルタイムシステムは多様なプロセスを並行して同時に行うことや、プロセスの処理に優先順位を有することが特徴である。
既存のロボット応用(robot application)の開発方法は、多様な機能をモジュール化することなく、スパゲッティ形式で相互依存的に作成した。そのため、ロボットのメンテナンス及び新たなロボットの応用を開発するとき、既存に作成されたアルゴリズムやプログラムを再使用することが容易ではなく、データやイベントの処理及びメソッドの呼び出しを処理しながら、並行的に実行されるロボット応用を簡単に開発することも難しいという問題がある。即ち、既存のロボット応用の場合には、ロボット応用内に存在するプログラムや主要アルゴリズムがモジュール化されず、互いに混合されて開発され、他のロボット応用の開発時に再使用するための多くの努力が必要である。
しかし、他のメーカーが作成したアルゴリズムやプログラムを再使用することが非常に難しいという問題がある。また、ライフサイクルの管理、データの伝達、イベントの伝達、メソッドの呼び出し、周期的実行、有限状態機械(Finite State Machine;FSM)の処理のような機能をロボット応用の開発者が全て実現しなければならないため、開発期間及び開発費用が多くかかるという問題が発生し得る。
国際公開第2000/0042504号パンフレット
そこで、本発明の目的は、再使用性及びメンテナンスが向上し得る知能型ロボットにおいてロボットコンポーネントの管理装置及び方法を提供することにある。
また、本発明の他の目的は、迅速、且つ、容易なロボットコンポーネントの開発、開発エラーの最少化、ロボット応用開発者の作業利便性を向上させるロボットコンポーネントの管理装置及び方法を提供することにある。
前記目的を達成するために本発明の第1の態様によれば、センサとアクチュエータを有するロボットで用いるためのロボットコンポーネント管理装置は、多数のロボットコンポーネントを含むロボット応用構成部と、前記ロボット応用構成部の動作を管理し、前記ロボット応用構成部の動作による状態情報及び前記ロボットコンポーネントに関する情報をモニタリングするロボット応用管理部と、前記ロボット応用管理部の管理によって前記ロボットコンポーネントのライフサイクルを管理するライフサイクル管理部と、前記センサにより感知された周辺環境の認識によるセンシング信号の入力を受けて前記ロボット応用構成部に伝達し、前記ロボット応用構成部からの実行信号を前記知能型ロボットシステムのアクチュエータに伝達する運営体制とを含むことを特徴とする。
本発明の第2の態様によれば、ライフサイクル管理部によりロボットコンポーネントが実行されるロボットにおけるロボットコンポーネント管理方法は、前記ロボットコンポーネントのうち命令処理コンポーネントからロボット移動コンポーネントへ指定された移動目的地を伝達する過程と、前記ロボットコンポーネントのうちセンサ読取コンポーネントにより外部のセンシング信号を受信してセンサデータに変換する過程と、前記変換されたセンサデータを前記ロボットコンポーネントのうち障害物探知コンポーネントに伝達して前記変換されたセンサデータに基づいて障害物を感知したか否かを判断する過程と、前記障害物を感知したか否かの判断結果に応じてイベントを生成し、前記生成されたイベントを前記ロボット移動コンポーネントに伝達する過程と、前記ロボット移動コンポーネントに伝達される前記生成されたイベントと、前記移動目的地に対応する制御信号を前記ロボットのアクチュエータに伝達する過程とを含むことを特徴とする。
本発明によれば、ロボットコンポーネントの開発が容易であるだけでなく、ロボットコンポーネントの再使用及びメンテナンスが容易であり、ロボット応用の開発時間を短縮させることができ、他のメーカーで開発されたロボットコンポーネントも容易に使用できるという効果を奏する。
本発明の実施形態による知能型ロボットシステムにおけるロボットコンポーネントの管理装置に対するブロック構成図である。 図1に示すロボットコンポーネントの構成を例示する詳細図である。 図1に示すロボットコンポーネント間のポートの連結関係を例示する図である。 本発明の実施形態による知能型ロボットシステムにおけるロボットコンポーネント管理方法を例示する図である。
ロボットコンポーネントとは、再使用及び交替が可能なロボットソフトウェアモジュールであって、ロボット応用を容易に開発し、維持及び補修できるように標準化された形態の構造を有する。ロボットで実行される応用プログラムは、このようなロボットコンポーネントを組み合わせて作られる。規格に合うように開発されたロボットコンポーネントは後で他のロボット応用を開発する際に再使用が可能であるだけでなく、ロボット応用の開発時間を短縮させることができ、他のメーカーで開発されたロボットコンポーネントも容易に使用できるという長所がある。また、ロボットの開発のための標準化された方法を提供して並行的に実行される複雑なロボット応用を容易に開発できるようにする。
知能型ロボットシステムで実行されるロボット応用は、一般のパーソナルコンピュータで実行される応用とは異なる特徴を有するため、知能型ロボットシステムで実行されるロボット応用の特性に合うようにロボットコンポーネントが開発されなければ、他のロボット応用が開発される時に再使用が容易でなくなる。
知能型ロボットは、周辺環境を認識するための多様なセンサ(例えば、レーザ又は超音波を用いた障害物感知センサ、カメラを用いたビジョンセンサなど)と動きのための各種アクチュエータ(例えば、ロボットの移動のためのホイール、ロボットのアームを動かすためのモータなど)からなる。このような多くの装置を制御するために知能型ロボットはその内部に構成された複数のコンピュータノードを有している。また、これらのコンピュータノードは互いに独立して実行されるプログラムを有しており、シリアル或いはラン(LAN)のようなネットワークを介して互いに情報をやりとりすることによって、ロボットを制御するようになる。
コンピュータノードに存在するプログラムは、実行要請がある時にのみ実行される伝統的なクライアント/サーバ方式とは異なり、コンピュータノードと連結されたセンサやアクチュエータを制御するために常に実行状態で存在するアクティブな特性を有する場合が多い。例えば、ロボットを指定された目標地点まで移動させる途中に前方に障害物が現れたとき、ロボットを停止させるロボット応用を作成すると仮定する。この場合、通常、ロボット応用はロボットに装着された障害物感知センサからデータを読み取るセンサ読取プログラム、センサ読取プログラムから伝達されたセンサデータに基づいて障害物の存否を判断する障害物感知プログラム、障害物の感知時にロボットを停止させ、そうでない場合にはロボットを続けて移動させるロボット移動プログラムのように3つのプログラムからなり得る。
センサ読取プログラムは周期的にセンサデータを読み取り、障害物感知プログラムにセンサデータを送り、障害物の存否を判断する機能をする。障害物感知プログラムは、センサ読取プログラムから送られたセンサデータを分析して障害物が感知されると、障害物感知イベントをロボット移動プログラムに伝達する機能をする。一方、ロボット移動プログラムは、ロボットを目標地点まで移動させながら、障害物感知プログラムから障害物感知イベントが伝達されると、ロボットの移動を停止させる機能をする。通常、3つのプログラムのうちセンサ読取プログラムは周期的にセンサでデータを読み取らなければならないので、周期的に常に実行されるアクティブプログラムであり、ロボット移動プログラムはやはりロボットのホイールに該当するホイールモータに続けて命令を伝達しなければならないので、常に実行されるアクティブプログラムである。また、障害物感知プログラムは、センサ読取プログラムからデータが伝達された場合にのみ実行されるパッシブプログラムといえる。障害物を感知する障害物感知プログラムとロボットを移動させるロボット移動プログラムは通常、一度プログラムされると、他のロボット応用の開発時によく再使用され得る。
このようなプログラムを標準化された形態のロボットコンポーネントとして開発すれば、再使用が容易であり、また他のメーカーで開発された同じ機能を担当する標準化された形態で開発されたロボットコンポーネントを容易に使用できるようになる。
前述したように、ロボットコンポーネントは常に実行されるアクティブロボットコンポーネント又は要請がある時にのみ実行されるパッシブロボットコンポーネントになることもできる。これらのロボットコンポーネントは、センサデータや障害物感知イベントのように互いにデータやイベントをやりとりできなければならない。そのために、ロボットコンポーネントは、初期化、開始、終了、一時停止、再開始、エラーの処理、削除などのようなライフサイクル(life cycle)関数を提供しなければならず、ロボットコンポーネントが他のロボットコンポーネントにデータやイベントを伝達できなければならない。また、伝統的なクライアント/サーバプログラム方式のように、ロボットコンポーネントは他のロボットコンポーネント内に含まれているメソッドを呼び出すことができなければならない。
通常、ロボットコンポーネントの開発時に主に用いる開発パターンは大きく2種類に分けられるが、1つ目の開発パターンはロボットコンポーネントで提供するメソッドを呼び出したり、ロボットコンポーネントの属性を判読又は変更する形態であり、2つ目の開発パターンはセンサデータを読み取り、読み取ったデータを処理した後、アクチュエータを駆動する典型的なアクティブロボットコンポーネントの場合のようにそれぞれ自身の作業を行いながら、必要時に互いにデータやイベントをやりとりする形態である。
本発明は、複雑なロボット応用を容易に開発し、応用プログラムの再使用を容易にするために、前述した2種類の形態のロボットコンポーネントの開発方式をいずれも支援する。
本発明の実施形態では、ロボットコンポーネント間のメソッドの呼び出しやデータ/イベントの交換がポートを介して行われ、メソッドの呼び出しのためのポートをメソッドポート(method port)とし、データの伝達のためのポートをデータポート(data port)とし、イベントを伝達するためのポートをイベントポート(event port)と称する。
本発明の利点及び特徴、そしてそれらを達成する方法は添付する図面と共に詳細に後述されている実施形態を参照すれば明らかになる。
図1は、本発明の一実施形態による知能型ロボットシステムにおけるロボットコンポーネントの管理装置のブロック構成図を示す。図1に示すように、本発明のロボットコンポーネントの管理装置は、ロボット応用管理部100、ライフサイクル管理部200、ロボット応用構成部300、運営体制400、センサ10及びアクチュエータ20を含む。
ロボット応用管理部100は、グラフィックユーザインターフェースの場合もあり、ユーザの要請に応じてロボット応用構成部300の全般的な動作、例えば実行の開始、終了、一時停止、再開始などの動作を管理する。また、ロボット応用管理部100は、ロボット応用構成部300の実行開始、終了、一時停止、再開始などの動作によるロボット応用構成部300の状態情報と、ロボット応用構成部300内のロボットコンポーネント302/1〜302/Nに関する状態情報をユーザに通知するモニタリング機能を提供する。
ロボット応用構成部300は、多数のロボットコンポーネント302/1〜302/Nと、多数の有限状態機械(FSM)処理部304/1〜304/Nを含む。有限状態機械処理部304/1〜304/Nは、ロボットコンポーネント302/1〜302/Nのそれぞれに割り当てられてロボットコンポーネント302/1〜302/Nの状態及び状態遷移を処理する役割を果たす。例えば、有限状態機械処理部304/1は、ロボットコンポーネント302/1に割り当てられており、ロボットコンポーネント302/1の状態及び状態遷移を処理する。
ライフサイクル管理部200は、ロボット応用構成部300の任意のロボットコンポーネント302/1〜302/Nの初期化、開始、終了、一時停止、一時停止後の再開始、エラーの処理、エラーの復旧、周期的実行、削除などのようなロボットコンポーネント302/1〜302/Nのライフサイクルを管理する。このようなライフサイクル管理部200は、ロボットコンポーネント302/1〜302/Nのライフサイクルを変化させるとき、ロボットコンポーネント302/1〜302/Nにこのような事実を通知し、ロボットコンポーネント302/1〜302/Nが必要な作業を行えるようにする。例えば、ロボットコンポーネント302/1の実行開始時に割り当てられたメモリリソースはロボットコンポーネント302/1が終了するとき、ロボットコンポーネント302/1により解除される必要がある。そのために、ロボットコンポーネント302/1は、初期化、開始、終了、一時停止、再開始、エラーの処理、エラーの復旧、周期的実行、削除のようなライフサイクルが変化する度に処理すべき作業を記述したライフサイクルコールバック関数(図2で後述する)を具現する必要がある。したがって、ライフサイクル管理部200は、ロボットコンポーネント302/1のライフサイクルが変更される度にロボットコンポーネント302/1のコールバック関数のうちライフサイクルの変更に該当する関数を呼び出してロボットコンポーネント302/1で必要な作業を行うようにする。
運営体制400は、例えばウインドウズ(Windows(登録商標))やリナックス(Linux)のような運営体制を意味し、内部にデバイスドライバ402/1及びデバイスドライバ402/2を含む。デバイスドライバ402/1は、例えばセンサ10からアナログ信号の入力を受けてロボット応用構成部300のロボットコンポーネント302/1に伝達する入力デバイスのドライバであってもよく、デバイスドライバ402/2は、例えばロボットコンポーネント302/Nからの信号をアクチュエータ20に伝達する出力デバイスのドライバであってもよい。
センサ10は、知能型ロボットシステムの周辺環境の認識のために備えられ、例えばレーザ又は超音波を用いた障害物感知センサ、カメラを用いたビジョンセンサなどを含むこともできる。
アクチュエータ20は、知能型ロボットシステムの動的な動きのために備えられる手段であって、例えばロボットシステムの移動のためのホイール、ロボットシステムのアームを動かすためのモータなどを含んでもよい。
このようなセンサ10とアクチュエータ20を制御するために知能型ロボットシステムの内部には図示していない複数のコンピュータノードが構成される。また、これらのコンピュータノードには互いに独立して実行されるプログラムが存在することがき、シリアル又はラン(LAN)のようなネットワークを介して互いに情報をやりとりし、知能型ロボットシステムを制御できる。
図2は、図1に示されたロボットコンポーネント、例えばロボットコンポーネント302/1の構成を例示する図であって、ライフサイクルコールバック関数30、データポート32、イベントポート34、メソッドポート36を含む。
周期的にセンサ10でデータを読み取る必要がある場合、ロボットコンポーネント302/1は周期的に実行される必要があり、このような周期的なロボットコンポーネント302/1の実行はライフサイクル管理部200が処理する。
また、ロボットコンポーネント302/1が周期的に実行される必要がある場合、これをライフサイクル管理部200に初期化時に通知し、ライフサイクル管理部200はロボットコンポーネント302/1の「onExecute」関数を周期的に呼び出す。ロボットコンポーネント302/1のコールバック関数30を説明すれば、以下の通りである。
-onInit:ロボットコンポーネント302/1が初期化される時に呼び出されるコールバック関数、
-onDestroy:ロボットコンポーネント302/1がメモリから除去される直前に呼び出されるコールバック関数、
-onStart:ロボットコンポーネント302/1が開始される時に呼び出されるコールバック関数、
-onStop:ロボットコンポーネント302/1が終了する時に呼び出されるコールバック関数、
-onSuspend:ロボットコンポーネント302/1が一時停止される時に呼び出されるコールバック関数、
-onResume:ロボットコンポーネント302/1が再開始される時に呼び出されるコールバック関数、
-onError:ロボットコンポーネント302/1にエラーが発生した時に呼び出されるコールバック関数、
-onRecover:ロボットコンポーネント302/1がエラーから復旧される時に呼び出されるコールバック関数、
-onExecute:周期的に呼び出されるコールバック関数。
このようなロボットコンポーネント302/1は、ライフサイクルコールバック関数30を有しているだけでなく、ロボットコンポーネント302/1が他のロボットコンポーネント、例えばロボットコンポーネント302/2にデータを伝達するためのデータポート32、ロボットコンポーネント302/1が他のロボットコンポーネント302/2にイベントを伝達するためのイベントポート34、伝達を受けたイベントによってロボットコンポーネント302/2に割り当てられた有限状態機械を処理する有限状態機械処理部36、そしてロボットコンポーネント302/1が他のロボットコンポーネント302/2から提供する関数を呼び出すためのメソッドポート38を有する。
データポート32はロボットコンポーネントの間、例えばロボットコンポーネント302/1とロボットコンポーネント302/2間のデータを交換するためのポートであって、データを伝送しようとするロボットコンポーネント、例えばロボットコンポーネント302/1は出力データポートを、データを受信しようとするロボットコンポーネント、例えばロボットコンポーネント302/2は入力データポートを有していなければならず、互いにデータを送受信するデータポート32は同じタイプのデータを有さなければならない。
そして、データポート32は発行者/購読者(publisher/subscriber)モデルを支援するため、1つの出力データポートから多数の入力データポートへのデータの送信が可能である。このとき、入力データポートは出力データポートから伝達されるデータを受信でき、その内部にはデータを格納するキュー(図示せず)が含まれ得る。このようなキューは、格納できるデータの最大の大きさを明示でき、最大の大きさ以上のデータが入力されると、キューにあるデータのうち任意のデータを除去した後、新たに入力されたデータがキューに格納される。キューの最大の大きさが1である場合、常に最近のデータのみを維持し、例えば、主に最近のセンサデータのみを必要とする場合に使用され得る。入力データポートに伝達されたデータは、ライフサイクル管理部200が割り当てたスレッドにより入力データポート内のキューに格納され、後で周期的に実行される「onExecute」コールバック関数内で入力データポートに格納されたデータを処理できる。
イベントポート34はロボットコンポーネント間、例えばロボットコンポーネント302/1とロボットコンポーネント302/2間のイベントを送受信するためのポートであって、イベントを伝送しようとするロボットコンポーネント、例えばロボットコンポーネント302/1は出力イベントポートを、イベントを受信しようとするロボットコンポーネント、例えばロボットコンポーネント302/2は入力イベントポートを有していなければならず、互いにイベントを送受信するイベントポート34は同じタイプのイベントを処理しなければならない。イベントの伝達方式は、購読者/発行者方式であって、前述したデータポート32と類似する。ただし、データポート32は、伝達されたデータをキューに格納した後、後で処理する方式で動作するのに対し、イベントポート34は、イベントが受信されると、受信されたイベントをキューに格納せずに、ライフサイクル管理部200により割り当てられたスレッドにより即時に処理する方式で動作し、例えば、障害物の発見時に停止のような即時の処理が必要な場合に用いられる。
また、イベントポート34に伝達されたイベントは、有限状態機械と連係されて処理され得る。有限状態機械は通常、ロボットプログラミング時によく用いられるプログラミング方式である。1つの有限状態機械は多様な状態で構成され、特定時点に1つの状態を有し、特定のイベントが入力されると、該当イベントに応じて有限状態機械の状態を変化させることができる。例えば、1つの有限状態機械が「目的地移動状態」と「障害物発見状態」とで構成されていると仮定すれば、ロボットを現在の位置から特定の目的地まで移動させる場合、最初は「目的地移動状態」にとどまりながら続けて目的地まで移動し、障害物発見イベントが伝達されると、「障害物発見状態」に変更された後、ロボットを停止させ、障害物無しイベントが伝達されると、再び「目的地移動状態」に復帰して目的地まで移動する場合がこれに該当し得る。前述した例でのように、イベントはデータとは異なり、即時に処理されなければならない場合に用いられ、そのため、データポート32とは別途にイベントポート34が必要である。
有限状態機械処理部36は、ロボットコンポーネント302/1が有しているイベントポート34に受信されたイベントに基づいて有限状態機械の状態を変える役割を果たす。
データポート32及びイベントポート34は、ノンブロッキング(non-blocking)呼び出し方式に従い、データポート32やイベントポート34を介してデータやイベントを伝達するロボットコンポーネント302/1はデータやイベントを伝達した後、その処理結果を待たずに直ぐ次の作業を行える。もし、ロボットコンポーネント302/1がデータやイベントを伝達した後に処理結果が返還されるまで待ち続けると、処理結果が返還されるまでの待機中に発生し得るより重要なデータやイベントを処理できなくなることもあるためである。このような理由により、データポート32やイベントポート34はノンブロッキング呼び出しのみを支援し、もしデータやイベントに対する処理結果が必要な場合にはデータやイベントを処理したロボットコンポーネント、例えばロボットコンポーネント302/1がデータやイベントを送ったロボットコンポーネント、例えばロボットコンポーネント302/2に処理結果をデータやイベント形式で再度送らなければならない。
メソッドポート38を介してロボットコンポーネント302/1は他のロボットコンポーネント、例えばロボットコンポーネント302/2が提供する一連のメソッドを呼び出すことができる。メソッドを呼び出そうとするロボットコンポーネント、例えばロボットコンポーネント302/1は要求メソッドポートを、メソッドを提供しようとするロボットコンポーネント、例えばロボットコンポーネント302/2は提供メソッドポートを有していなければならず、要求メソッドポートと対応する提供メソッドポートは同じメソッドで構成されなければならない。
ロボットコンポーネント302/1がメソッドポート38を介してメソッドを呼び出す場合、ロボットコンポーネント302/1はメソッドの実行が終了して結果値が返還されるまで待つブロッキング呼び出しと、結果値を待たずに、直ぐ返還するノンブロッキング呼び出しがいずれも可能であり、ノンブロッキング呼び出しの場合は返還値のないメソッドの呼び出しでのみ可能である。
要求メソッドポートを介して要請されるメソッドの呼び出しは、ライフサイクル管理部200により割り当てられたスレッドにより即時に処理され、ブロッキング呼び出しの場合には、ライフサイクル管理部200により要求メソッドポートを介してメソッドの呼び出しを行ったロボットコンポーネントにメソッドの呼び出し結果が返還される。
図3は、実施形態によるロボットコンポーネント間、例えばロボットコンポーネント302/1とロボットコンポーネント302/2間のポートの連結関係を例示的に示す図である。
ロボットコンポーネント302/1は、ロボットコンポーネント302/2にデータを伝達するための出力データポート32aと、ロボットコンポーネント302/2にイベントを伝達するための出力イベントポート34aと、ロボットコンポーネント302/2に提供するメソッドを呼び出すための要求メソッドポート36aとを含む。
ロボットコンポーネント302/2は、ロボットコンポーネント302/1から伝達されたデータを受信するための入力データポート32bと、ロボットコンポーネント302/1から伝達されたイベントを受信するための入力イベントポート34bと、ロボットコンポーネント302/1が呼び出すロボットコンポーネント302/2のメソッドの呼び出しを処理するための提供メソッドポート36bとを含む。
出力データポート32aが送信するデータのタイプと、入力データポート32bが受信するデータのタイプは同一でなければならず、出力イベントポート34aが送信するイベントのタイプと、入力イベントポート34bが受信するイベントのタイプも同一でなければならない。同様に、要求メソッドポート36aが呼び出すメソッドシグネチャと、提供メソッドポート36bが処理するメソッドシグネチャも同一でなければならない。
図4は、本実施形態による知能型ロボットシステムにおけるロボットコンポーネント管理方法を例示する図である。
図4のロボットコンポーネント管理方法において、これに限定されるものではないが、4つのロボットコンポーネント、即ち命令処理コンポーネント3000/1、センサ読取コンポーネント3000/2、障害物探知コンポーネント3000/3、ロボット移動コンポーネント3000/4がロボット応用構成部300を構成する場合について例示的に限定し、4つのロボットコンポーネント3000/1〜3000/4は、ライフサイクル管理部200により予め実行が開始したと仮定する。
図4に示すように、まず命令処理コンポーネント3000/1は、知能型ロボットシステムのユーザが入力した移動目的地情報をロボット移動コンポーネント3000/4にメソッドポートを介して伝達する(S400)。
その後、センサ読取コンポーネント3000/2は、センサ10から感知されたアナログ信号を受信し、受信したアナログ信号をセンサデータに変換する(S402)。
そして、センサ読取コンポーネント3000/2は、前述した変換されたセンサデータをデータポートを用いて障害物探知コンポーネント3000/3に伝達する(S404)。
障害物探知コンポーネント3000/3は、センサ読取コンポーネント3000/2から伝達された変換センサデータに基づいて障害物を感知したか否かを判断し、障害物を感知したか否かの判断結果に応じて障害物感知イベント又は障害物無しイベントをイベントポートを用いてロボット移動コンポーネント3000/4に伝達する(S406)。
これにより、ロボット移動コンポーネント3000/4は、メソッドポートを介して命令処理コンポーネント3000/1から伝達された目的地まで知能型ロボットシステムが移動するようにアクチュエータ20に制御信号を伝達できる(S408)。このとき、ロボット移動コンポーネント3000/4は、障害物探知コンポーネント3000/3から障害物感知イベントが伝達される場合に知能型ロボットシステムの移動を停止させるための制御信号をアクチュエータ20に伝達する。しかし、障害物探知コンポーネント3000/3から障害物無しイベントが伝達される場合、ロボット移動コンポーネント3000/4は知能型ロボットシステムが目的地に再び移動するようにするための制御信号をアクチュエータ20に伝達する選択的な機能を行う。
図4に示すように、ロボット移動コンポーネント3000/4内には1つの有限状態機械と、これを処理する有限状態機械処理部500を含む。
ここで、有限状態機械は「目的地移動状態」と「障害物発見状態」とで構成されており、ロボットの現在の位置から命令処理コンポーネント3000/1より伝達された目的地まで移動する場合、有限状態機械は知能型ロボットシステムが「目的地移動状態」にとどまりながら、続けて目的地まで移動できるようにする。そして、有限状態機械は障害物探知コンポーネント3000/3から障害物発見イベントが伝達されると、「障害物発見状態」に変更された後、知能型ロボットシステムの速度を下げながら方向を変更させる。しかし、障害物探知コンポーネント3000/3から障害物無しイベントが伝達されると、再び「目的地移動状態」に復帰してロボットシステムを目的地まで移動できるようにする。
前述した実施形態においてセンサ読取コンポーネント3000/2、障害物探知コンポーネント3000/3、ロボット移動コンポーネント3000/4の入力、出力及びイベントポートが同一である場合、これらは他のロボット応用の開発時に再使用が可能である。また、ライフサイクルの管理、データの伝達、イベントの伝達、メソッドの呼び出し、周期的実行、有限状態機械の処理のような機能が前記ライフサイクル管理部200で処理されるので、ロボットコンポーネントの開発が迅速、且つ、容易であり、エラーを最少化できる。従って、ロボット応用開発者はロボットコンポーネントが実行すべき作業のみを具現すればよい。
以上、添付する図面を参照して本発明の好適な実施形態を説明したが、本発明は斯かる実施形態に限定されるものではなく、特許請求の範囲の記載から把握される技術的範囲において種々の実施形態に変更可能である。

Claims (7)

  1. センサとアクチュエータを有するロボットシステムで用いるためのロボットコンポーネント管理装置であって、
    多数のロボットコンポーネントと、前記ロボットコンポーネントのそれぞれに割り当てられて前記ロボットコンポーネントの状態及び状態遷移を処理する有限状態機械処理部とを含むロボット応用構成部と、
    前記ロボット応用構成部の動作を管理し、前記ロボット応用構成部の動作による状態情報及び前記ロボットコンポーネントに関する情報をモニタリングするロボット応用管理部と、
    前記ロボット応用管理部の管理によって前記ロボットコンポーネントのライフサイクルを管理するライフサイクル管理部と、
    前記センサにより感知された周辺環境の認識によるセンシング信号の入力を受けて前記ロボット応用構成部に伝達し、前記ロボット応用構成部からの実行信号を知能型ロボットシステムのアクチュエータに伝達する運営体制と
    を含み、
    前記多数のロボットコンポーネントの各々は、前記ロボットコンポーネント間でデータを交換するためのデータポートと、前記ロボットコンポーネント間でイベントを交換するためのイベントポートと、前記ロボットコンポーネント間にメソッドを呼び出すためのメソッドポートとを含み、
    前記有限状態機械処理部は、前記イベントポートに受信されたイベントに基づいて有限状態機械の状態を変える
    ことを特徴とするロボットコンポーネント管理装置。
  2. 請求項1に記載のロボットコンポーネント管理装置において、
    前記ライフサイクル管理部は、前記ロボットコンポーネントのライフサイクルが変更される度に前記ロボットコンポーネントのコールバック関数のうちライフサイクルの変更に該当するライフサイクルコールバック関数を呼び出して前記ロボットコンポーネントで必要な作業を行うようにすることを特徴とするロボットコンポーネント管理装置。
  3. 請求項2に記載のロボットコンポーネント管理装置において、
    前記ライフサイクルコールバック関数は、各々のロボットコンポーネントで行われたロボットコンポーネントの初期化、開始、終了、一時停止、一時停止後の再開始、エラーの処理、エラーの復旧、周期的実行、削除のうちのいずれか1つであることを特徴とするロボットコンポーネント管理装置。
  4. 請求項1に記載のロボットコンポーネント管理装置において、
    前記ロボット応用構成部は、前記ロボット応用構成部の実行開始、終了、一時停止、再開始のうちのいずれかの動作を行うことを特徴とするロボットコンポーネント管理装置。
  5. 請求項に記載のロボットコンポーネント管理装置において、
    前記データポートは、前記データの伝送及び受信のための入力及び出力データポートであり、前記データの伝送はノンブロッキング方式で支援されることを特徴とするロボットコンポーネント管理装置。
  6. 請求項に記載のロボットコンポーネント管理装置において、
    前記イベントポートは、前記イベントの伝送及び受信のための入力及び出力イベントポートであり、前記イベントの伝送はノンブロッキング方式で支援されることを特徴とするロボットコンポーネント管理装置。
  7. 請求項に記載のロボットコンポーネント管理装置において、
    前記メソッドポートは、前記メソッドの呼び出し及び提供のための要求及び提供メソッドポートであり、ブロッキング呼び出し及びノンブロッキング呼び出しを支援することを特徴とするロボットコンポーネント管理装置。
JP2009233275A 2008-10-31 2009-10-07 ロボットコンポーネント管理装置 Expired - Fee Related JP5149258B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20080107777 2008-10-31
KR10-2008-0107777 2008-10-31
KR1020090048043A KR101248802B1 (ko) 2008-10-31 2009-06-01 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법
KR10-2009-0048043 2009-06-01

Publications (2)

Publication Number Publication Date
JP2010105150A JP2010105150A (ja) 2010-05-13
JP5149258B2 true JP5149258B2 (ja) 2013-02-20

Family

ID=42275557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009233275A Expired - Fee Related JP5149258B2 (ja) 2008-10-31 2009-10-07 ロボットコンポーネント管理装置

Country Status (3)

Country Link
US (1) US20100168911A1 (ja)
JP (1) JP5149258B2 (ja)
KR (1) KR101248802B1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009054230A1 (de) * 2009-11-23 2011-05-26 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Manipulatoren
US20110153079A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunication Research Institute Apparatus and method for distributing and monitoring robot application and robot driven thereby
FR2969026B1 (fr) * 2010-12-17 2013-02-01 Aldebaran Robotics Robot humanoide dote d'un gestionnaire de ses ressources physiques et virtuelles, procedes d'utilisation et de programmation
KR101231771B1 (ko) * 2010-12-31 2013-02-08 강원대학교산학협력단 로봇 소프트웨어 컴포넌트 동적 재구성 장치 및 방법
KR20130067376A (ko) * 2011-12-14 2013-06-24 한국전자통신연구원 로봇 응용프로그램 에뮬레이션 장치 및 방법
US9424303B2 (en) 2013-02-15 2016-08-23 Intuitive Surgical Operations, Inc. Systems and methods for synchronizing nodes of a robotic system
US10516738B2 (en) * 2015-09-25 2019-12-24 Intel Corporation Sensor lifecycle management system
CN106737676B (zh) * 2016-12-28 2019-03-15 南京埃斯顿机器人工程有限公司 一种基于脚本可二次开发的工业机器人编程系统
US11446818B2 (en) * 2019-10-01 2022-09-20 UiPath, Inc. Resuming robotic process automation workflows based on external triggers
CN110941239B (zh) * 2019-12-17 2023-02-28 中国矿业大学 一种深部矿井环境监测机器人系统及监测方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3832517B2 (ja) * 1996-07-05 2006-10-11 セイコーエプソン株式会社 ロボット用コントローラ及びその制御方法
KR100607141B1 (ko) 2004-05-12 2006-08-01 한국생산기술연구원 개방형 분산처리구조의 로봇 제어 시스템
KR100772514B1 (ko) * 2005-12-08 2007-11-01 한국전자통신연구원 네트워크 기반 로봇 제어 장치 및 그 방법
KR100772522B1 (ko) * 2005-12-08 2007-11-01 한국전자통신연구원 모바일 홈 서비스 로봇을 제어하는 서버의 xml 기반의서비스 제공 방법 및 그 장치
US8843244B2 (en) * 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
KR100896705B1 (ko) * 2007-02-06 2009-05-14 한국과학기술연구원 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템

Also Published As

Publication number Publication date
KR101248802B1 (ko) 2013-03-29
JP2010105150A (ja) 2010-05-13
KR20100048857A (ko) 2010-05-11
US20100168911A1 (en) 2010-07-01

Similar Documents

Publication Publication Date Title
JP5149258B2 (ja) ロボットコンポーネント管理装置
CN108136577B (zh) 通用操作系统联动式实时机器人控制系统及利用其的实时设备控制系统
US9869984B2 (en) Process controller and updating method thereof
JP3339482B2 (ja) 分散デバッグ装置及びデバッグ方法並びに制御プログラムを記録した記録媒体
CN111427310A (zh) 一种工业机器人控制器运行系统
US9415505B2 (en) Device and method for dynamic reconfiguration of robot components
KR100896705B1 (ko) 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템
Traub et al. An object-oriented realtime framework for distributed control systems
CN106945045B (zh) 基于ros和orocos的机器人控制的通信方法和系统
KR100877715B1 (ko) 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조
JP2024519256A (ja) リアルタイムロボット制御フレームワーク
US8689217B2 (en) System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes
KR101220428B1 (ko) 분산 실시간 제어 소프트웨어가 구비된 지능 로봇용 다중 프로세서
Finkemeyer et al. A middleware for high-speed distributed real-time robotic applications
KR101102930B1 (ko) 로봇용 소프트웨어 컴포넌트 장치 및 이를 이용한 쓰레드 처리 방법
Westhoff et al. A flexible framework for task-oriented programming of service robots
CN106965181B (zh) 基于ros和orocos的机器人控制方法和系统
WO2024180685A1 (ja) ロボット制御システム、ロボット制御方法、およびロボット制御プログラム
US20090175196A1 (en) Process integrated mechanism program, apparatus and method
JPH08106320A (ja) 自動機械及び自動機械の制御方法
WO2023171574A1 (ja) 制御システム、演算モジュール、ロボットコントローラ、及び制御方法
JP2024088106A (ja) 制御システム、処理方法およびデータ中継プログラム
JP2023111376A (ja) ロボット制御システムおよび制御装置
Arbuckle et al. RECIPE–A System for Building Extensible, Run-time Configurable, Image Processing Systems
CN118829523A (zh) 控制系统、运算模块、机器人控制器以及控制方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120409

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120409

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120425

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20121009

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: 20121030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121129

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: 20151207

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees