説明

ロボットコンポーネント管理装置及び方法

【課題】再使用性及びメンテナンスが向上し得る知能型ロボットにおいてロボットコンポーネントの管理装置及び方法を提供する。
【解決手段】多数のロボットコンポーネントを含むロボット応用構成部と、前記ロボット応用構成部の動作を管理し、前記ロボット応用構成部の動作による状態情報及び前記ロボットコンポーネントに関する情報をモニタリングするロボット応用管理部と、前記ロボット応用管理部の管理によって前記ロボットコンポーネントのライフサイクルを管理するライフサイクル管理部と、前記センサにより感知された周辺環境の認識によるセンシング信号の入力を受けて前記ロボット応用構成部に伝達したり、前記ロボット応用構成部からの実行信号を前記知能型ロボットシステムのアクチュエータに伝達する運営体制とを含む。従って、ロボットコンポーネントの開発が迅速、且つ、容易であるだけでなく、エラーを最少化できる。

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

【特許請求の範囲】
【請求項1】
センサとアクチュエータを有するロボットシステムで用いるためのロボットコンポーネント管理装置であって、
多数のロボットコンポーネントを含むロボット応用構成部と、
前記ロボット応用構成部の動作を管理し、前記ロボット応用構成部の動作による状態情報及び前記ロボットコンポーネントに関する情報をモニタリングするロボット応用管理部と、
前記ロボット応用管理部の管理によって前記ロボットコンポーネントのライフサイクルを管理するライフサイクル管理部と、
前記センサにより感知された周辺環境の認識によるセンシング信号の入力を受けて前記ロボット応用構成部に伝達し、前記ロボット応用構成部からの実行信号を知能型ロボットシステムのアクチュエータに伝達する運営体制と
を含むことを特徴とするロボットコンポーネント管理装置。
【請求項2】
請求項1に記載のロボットコンポーネント管理装置において、
前記ライフサイクル管理部は、前記ロボットコンポーネントのライフサイクルが変更される度に前記ロボットコンポーネントのコールバック関数のうちライフサイクルの変更に該当するライフサイクルコールバック関数を呼び出して前記ロボットコンポーネントで必要な作業を行うようにすることを特徴とするロボットコンポーネント管理装置。
【請求項3】
請求項2に記載のロボットコンポーネント管理装置において、
前記ライフサイクルコールバック関数は、各々のロボットコンポーネントで行われたロボットコンポーネントの初期化、開始、終了、一時停止、一時停止後の再開始、エラーの処理、エラーの復旧、周期的実行、削除のうちのいずれか1つであることを特徴とするロボットコンポーネント管理装置。
【請求項4】
請求項1に記載のロボットコンポーネント管理装置において、
前記ロボット応用構成部は、前記ロボット応用構成部の実行開始、終了、一時停止、再開始のうちのいずれかの動作を行うことを特徴とするロボットコンポーネント管理装置。
【請求項5】
請求項1に記載のロボットコンポーネント管理装置において、
前記ロボット応用構成部は、前記ロボットコンポーネントのそれぞれに割り当てられて前記ロボットコンポーネントの状態及び状態遷移を処理する有限状態機械処理部をさらに含むことを特徴とするロボットコンポーネント管理装置。
【請求項6】
請求項1に記載のロボットコンポーネント管理装置において、各々の前記ロボットコンポーネントは、
前記ロボットコンポーネント間でデータを交換するためのデータポートと、
前記ロボットコンポーネント間でイベントを交換するためのイベントポートと、
前記ロボットコンポーネント間にメソッドを呼び出すためのメソッドポートと
を含むことを特徴とするロボットコンポーネント管理装置。
【請求項7】
請求項6に記載のロボットコンポーネント管理装置において、
前記データポートは、前記データの伝送及び受信のための入力及び出力データポートであり、前記データの伝送はノンブロッキング方式で支援されることを特徴とするロボットコンポーネント管理装置。
【請求項8】
請求項6に記載のロボットコンポーネント管理装置において、
前記イベントポートは、前記イベントの伝送及び受信のための入力及び出力イベントポートであり、前記イベントの伝送はノンブロッキング方式で支援されることを特徴とするロボットコンポーネント管理装置。
【請求項9】
請求項6に記載のロボットコンポーネント管理装置において、
前記メソッドポートは、前記メソッドの呼び出し及び提供のための要求及び提供メソッドポートであり、ブロッキング呼び出し及びノンブロッキング呼び出しを支援することを特徴とするロボットコンポーネント管理装置。
【請求項10】
ライフサイクル管理部によりロボットコンポーネントが実行されるロボットにおけるロボットコンポーネント管理方法であって、
前記ロボットコンポーネントのうち命令処理コンポーネントからロボット移動コンポーネントへ指定された移動目的地を伝達する過程と、
前記ロボットコンポーネントのうちセンサ読取コンポーネントにより外部のセンシング信号を受信してセンサデータに変換する過程と、
変換されたセンサデータを前記ロボットコンポーネントのうち障害物探知コンポーネントに伝達して前記変換されたセンサデータに基づいて障害物を感知したか否かを判断する過程と、
前記障害物を感知したか否かの判断結果に応じてイベントを生成し、生成されたイベントを前記ロボット移動コンポーネントに伝達する過程と、
前記ロボット移動コンポーネントに伝達される前記生成されたイベントと、前記移動目的地に対応する制御信号を前記ロボットのアクチュエータに伝達する過程と
を含むことを特徴とするロボットコンポーネント管理方法。
【請求項11】
請求項10に記載のロボットコンポーネント管理方法において、
前記生成されたイベントは、障害物感知イベント又は障害物無しイベントであることを特徴とするロボットコンポーネント管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−105150(P2010−105150A)
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願番号】特願2009−233275(P2009−233275)
【出願日】平成21年10月7日(2009.10.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.リナックス
2.Linux
【出願人】(596180076)韓國電子通信研究院 (733)
【氏名又は名称原語表記】Electronics and Telecommunications Research Institute
【住所又は居所原語表記】161 Kajong−dong, Yusong−gu, Taejon korea
【Fターム(参考)】