行動知能システム学研究室 RTコンポーネント公開サイト 


 RTコンポーネント

大域地図生成RTC
局所地図生成RTC
大域経路計画RTC
人物検出RTC
エリア情報生成RTC
自己位置推定RTC
大域地図表示RTC
局所地図表示RTC
文字列表示RTC
大域地図管理RTC
GlobalMapLoader RTC
SimpleGlobalMapLoader RTC
DummyPoseSender RTC
GoalPoseSender RTC
Dummy2PosesSender RTC
環境シミュレータRTC
WiiRemote to Robot データ型変換RTC


 大域地図生成RTC

 このRTコンポーネントは大域地図を生成するために用います。 生成している大域地図はサービスポートから利用することができます。 また、生成された地図はディアクティベート時に画像として実行ファイルと同じフォルダ上に保存されます。


大域地図生成の様子

ポート一覧
port typedata typeport name
Data In PortTimedMeasuredDataRangeData
Data In PortIIS::TimedPose2DRobotPose
Data In PortTUT::TimedImageDataImage
Data In PortTUT::TimedStereoDataStereoData
Data Out PortIIS::TimedPose2DEstimatedPose
Data Out PortMRFC::TimedEstimatedPose2DPosePair
Service ProviderMRFC::AbosoluteMapServiceAbsoluteMapService

 RangeDataおよびRobotPoseは必ず接続して下さい。 生成された地図はAbsoluteMapServiceポートを用いることで取得できます。 また、地図上のロボットの自己位置はEstimatedPoseおよびPosePairから出力されます。


コンフィグレーション一覧
data typenamedefault valueunit
intParticle50-
intdebug_window0-

 Particleは地図生成に用いるパーティクルの数です。 また、debug_windowを非ゼロに設定することで地図生成の様子を確認するためのウィンドウが表示されます。


使用例
シミュレータ上での大域地図生成


 局所地図生成RTC

 このRTコンポーネントは局所地図を生成するために用います。


生成された局所地図の例

ポート一覧
port typedata typeport name
Data In PortTimedMeasuredDatarangedata
Data In PortIIS::TimedPose2Dpose
Service ProviderMRFC::RelativeMapServiceRelativeMapService

 rangedataおよびposeは必ず接続して下さい。 生成された地図はRelativeMapServiceポートを用いることで取得できます。


コンフィグレーション一覧
data typenamedefault valueunit
intLocalMapWidth200cell
intLocalMapHeight200cell
doubleLocalMapScale0.05m/cell
doubleSensorPositionX_m0.0m
doubleSensorPositionY_m0.0m
doubleSensorPositionTheta_deg0.0degree
doubleSensorMaxDistance_mm30000.0mm
doubleSensorMinDistance_mm20.0mm
longError_code19-
longError_mode0-


使用例
シミュレータ上での局所地図生成


 大域経路計画RTC

 このRTコンポーネントは大域経路を計画するために用います。

ポート一覧
port typedata typeport name
Data In PortIIS::TimedPose2Dstart
Data In PortIIS::TimedPose2DSeqgoal
Data Out PortIIS::TimedPoseVel2DSeqpath
Data Out PortRTC::TimedStringmessage
Service ConsumerTUT::AreaInfoServiceAreaInfoService


コンフィグレーション一覧
data typenamedefault valueunit
doubleRobotSafetyRadius1.0m
doubleRobotVelocity0.5m/s
doubleConstB0.341-


使用例
シミュレータ上での大域経路計画


 人物検出RTC

 このRTコンポーネントは大域地図とLRFのデータから人物位置を絶対座標系で検出するために用います。

ポート一覧
port typedata typeport name
Data In PortTimedMeasuredDatarangedata
Data In PortIIS::TimedPose2Drobot_pose
Data In PortMRFC::TimedEstimatedPose2Destimated_pose
Data Out PortTUT::TimedPersonsGlobalPositionpersons
Service ConsumerMRFC::AbosoluteMapServiceAbsoluteMapService

 estimated_poseポート以外は必ず接続して下さい。 estimated_poseを接続しない場合はrobot_poseにはロボットの絶対座標系での位置を格納したデータを入力して下さい。 estimated_poseを接続する場合はestimated_poseには大域地図生成RTC等が出力したデータを、robot_poseには大域地図生成RTC等に入力したのと同じロボットのオドメトリデータを入力して下さい。


コンフィグレーション一覧
data typenamedefault valueunit
doublethreshold0.2-
intmap_type1-

 thresholdには地図データの各セルの値に対する閾値(0.0〜1.0)を設定します。 この値において、0.0に近いほど障害物の存在確率が高く、1.0に近いほど自由に動ける場所である可能性が高いと定義されます。 そして、この値より小さい値を持つセルを障害物領域として扱います。

 MRFC::AbosoluteMapServiceにはoctet型の地図float型の地図の2種類の実装があり、 map_typeの値でどちらを用いるのかを指定することができます。 0のときはoctet型、非ゼロのときはfloat型の地図を用います。


使用例
シミュレータ上での人物検出


 エリア情報生成RTC

 このRTコンポーネントは大域地図(絶対座標系地図)を基に大域経路計画を行うために必要なエリア情報を生成して出力します。

ポート一覧
port typedata typeport name
Data In PortIIS::TimedPose2Drobot_absolute_pose
Service ConsumerMRFC::AbosoluteMapServiceAbsoluteMapService
Service ProviderTUT::AreaInfoServiceAreaInfoService

コンフィグレーション一覧
data typenamedefault valueunit
doubleRobotSafetyRadius0.5m
doubleThresholdCellValue0.1-
doubleThresholdMinDistance0.0-
intUseOptimization1-
intopening3-
std::stringfilenameareainfo.dat-
doubledebug_mode0.0-


 自己位置推定RTC

 このRTコンポーネントは大域地図上の自己位置を推定するために用います。 利用する大域地図はサービスポートから受け取ります。

ポート一覧
port typedata typeport name
Data In PortTimedMeasuredDataRangeData
Data In PortIIS::TimedPose2DRobotPose
Data In PortTUT::TimedImageDataImage
Data In PortTUT::TimedStereoDataStereoData
Data Out PortIIS::TimedPose2DEstimatedPose
Data Out PortMRFC::TimedEstimatedPose2DPosePair
Service ConsumerMRFC::AbosoluteMapServiceAbsoluteMapService

 RangeDataおよびRobotPoseは必ず接続して下さい。 地図上のロボットの自己位置はEstimatedPoseおよびPosePairから出力されます。


コンフィグレーション一覧
data typenamedefault valueunit
intParticle50-
intdebug_window0-
intUSE_INIT_POSE0-
doubleINIT_X0.0m
doubleINIT_Y0.0m
doubleINIT_HEADING0.0radian

 Particleは自己位置推定に用いるパーティクルの数です。 また、debug_windowを非ゼロに設定することで自己位置推定の様子を確認するためのウィンドウが表示されます。 USE_INIT_POSEを非ゼロに設定するとINIT_X, INIT_Y, INIT_HEADINGで指定した座標を初期位置として自己位置推定を開始します。 USE_INIT_POSEが0の場合は環境全体からロボットの位置を推定します。


 大域地図表示RTC

 このRTコンポーネントは大域地図(絶対座標系地図)を表示するために用います。


大域地図表示RTCの表示例

ポート一覧
port typedata typeport name
Data In PortIIS::TimedPose2Drobot_pose
Data In PortIIS::TimedPose2DSeqposes
Data In PortIIS::TimedPoseVel2DSeqpath
Data In PortTUT::TimedPersonsGlobalPositionpersons
Service ConsumerMRFC::AbosoluteMapServiceAbsoluteMapService
Service ConsumerTUT::AreaInfoServiceAreaInfoService

 大域地図を取得するAbsoluteMapServiceポートは必ず接続して下さい。 その他のポートは接続されていなくても問題はありません。

 ポートrobot_poseから入力された位置・姿勢情報はオレンジの丸と向きを表す線で表示されます。 同様にposesから入力された位置・姿勢系列は赤の丸と線で表示され、 personsから入力された人物位置系列は緑の丸で表示され、 pathから入力された経路情報は水色の丸と線およびそれを結ぶ線で表示されます。 また、 AreaInfoServiceから得られた情報は紫の線で分割空間の輪郭が表示されます。


コンフィグレーション一覧
data typenamedefault valueunit
intcolor_reverse0-
intmap_type1-
doubleview_scale1.0-

 color_reverseが0の場合は各セルでの障害物の存在確率が高いほど白く低いほど黒く表示されます。 この値を非ゼロに設定すると逆になります。

 MRFC::AbosoluteMapServiceにはoctet型の地図float型の地図の2種類の実装があり、 map_typeの値でどちらを用いるのかを指定することができます。 0のときはoctet型、非ゼロのときはfloat型の地図を用います。

 view_scaleの値を変更することで地図の表示を拡大・縮小することができます。


使用例
GlobalMapViewerの利用
シミュレータ上での大域地図生成
シミュレータ上での人物検出
シミュレータ上での大域経路計画


 局所地図表示RTC

 このRTコンポーネントは局所地図(ロボット座標系地図)を表示するために用います。


局所地図表示RTCの表示例

ポート一覧
port typedata typeport name
Data In PortMRFC::TimedPeopleTrackingDatapeopledata
Service ConsumerMRFC::RelativeMapServiceRelativeMapService

 局所地図を取得するRelativeMapServiceポートは必ず接続して下さい。 peopledataポートは接続されていなくても問題はありません。

 ロボットの位置・姿勢情報は中心にオレンジの丸で表示されます。ロボットの進行方向は上方です。 ポートpeopledataから入力された人物の位置・速度は緑の丸と線で表示されます。 また、追従対象の人物は赤色で表示されます。


コンフィグレーション一覧
data typenamedefault valueunit
intcolor_reverse0-
intmap_type1-
introbot_radius5pixel
intperson_radius5pixel
doubleview_scale1.0-

 color_reverseが0の場合は各セルでの障害物の存在確率が高いほど白く低いほど黒く表示されます。 この値を非ゼロに設定すると逆になります。

 MRFC::AbosoluteMapServiceにはoctet型の地図float型の地図の2種類の実装があり、 map_typeの値でどちらを用いるのかを指定することができます。 0のときはoctet型、非ゼロのときはfloat型の地図を用います。

 robot_radiusおよびperson_radiusの値を変更することで、ロボットおよび人物の表示される円の半径をそれぞれ変更することができます。

 view_scaleの値を変更することで地図の表示を拡大・縮小することができます。


使用例
シミュレータ上での局所地図生成


 文字列表示RTC

 データポートから受け取った文字列を表示する。

ポート一覧
port typedata typeport name
Data In PortRTC::TimedStringmessage


 大域地図管理RTC

 このRTCはエリア情報生成RTCが実行後に保存したデータを読み込んで地図データおよびグラフ情報を出力します。

ポート一覧
port typedata typeport name
Data In PortTUT::TimedPersonsGlobalPositionpersons
Service ProviderMRFC::AbosoluteMapServiceAbsoluteMapService
Service ProviderTUT::AreaInfoServiceAreaInfoService


コンフィグレーション一覧
data typenamedefault valueunit
std::stringfilenameareainfo.dat-


 GlobalMapLoader RTC

 このRTCは画像として保存された地図を読み込み、サービスポートから大域地図として提供します。 ただし、地図を読み込む際に2値化してその画素値を障害物の存在確率とするため、未知領域の情報は失われてしまいます。 また、起動時に大域経路計画を行うために必要なグラフ情報を生成します。その処理のため起動に時間がかかります。

ポート一覧
port typedata typeport name
Service ProviderMRFC::AbosoluteMapServiceAbsoluteMapService
Service ProviderTUT::AreaInfoServiceAreaInfoService


コンフィグレーション一覧
data typenamedefault valueunit
std::stringMapDatadata/gmap.png-
doubleInputMapScale1.0m/cell
doubleRobotSafetyRadius0.5m

 MapDataには読み込む地図画像のファイル名を、InputMapScaleには読み込む地図のスケールを正しく指定して下さい。


 SimpleGlobalMapLoader RTC

 このRTCは画像として保存された地図を読み込み、サービスポートから大域地図として提供します。 ただし、地図を読み込む際に2値化してその画素値を障害物の存在確率とするため、未知領域の情報は失われてしまいます。

ポート一覧
port typedata typeport name
Service ProviderMRFC::AbosoluteMapServiceAbsoluteMapService


コンフィグレーション一覧
data typenamedefault valueunit
std::stringMapDatadata/gmap.png-
doubleInputMapScale1.0m/cell

 MapDataには読み込む地図画像のファイル名を、InputMapScaleには読み込む地図のスケールを正しく指定して下さい。


使用例
GlobalMapViewerの利用


 DummyPoseSender RTC

 コンフィグレーションで設定した値を持つ位置・姿勢データを出力し続けるコンポーネントです。

ポート一覧
port typedata typeport name
Data Out PortIIS::TimedPose2Dpose


コンフィグレーション一覧
data typenamedefault valueunit
doubleDummyX0.0m
doubleDummyY0.0m
doubleDummyHeading0.0radian


使用例
GlobalMapViewerの利用


 GoalPoseSender RTC

 コンフィグレーションで設定した値を持つ要素数1の位置・姿勢系列データを出力するコンポーネントです。 コンフィグレーションのcontinuous_outputが0の場合は最初に一度だけデータを出力して自動的にディアクティベートします。 また、continuous_outputが非ゼロ(繰り返し出力を続ける状態)でかつdeactivate_to_stopが非ゼロの場合には ディアクティベートした際に空の(要素数0の)データが出力されます。 これは大域経路計画に用いる際にはロボットを停止させる命令として機能します。

ポート一覧
port typedata typeport name
Data Out PortIIS::TimedPose2DSeqgoal_pose


コンフィグレーション一覧
data typenamedefault valueunit
doublegoal_x0.0m
doublegoal_y0.0m
doublegoal_heading0.0radian
intcontinuous_output0-
intdeactivate_to_stop1-


使用例
GlobalMapViewerの利用
シミュレータ上での大域経路計画


 Dummy2PosesSender RTC

 コンフィグレーションで設定した値を持つ位置・姿勢データおよび要素数1の位置・姿勢系列データを出力するコンポーネントです。 コンフィグレーションのcontinuous_outputが0の場合は最初に一度だけデータを出力して自動的にディアクティベートします。 また、continuous_outputが非ゼロ(繰り返し出力を続ける状態)でかつdeactivate_to_stopが非ゼロの場合には ディアクティベートした際に空の(要素数0の)データが出力されます。 これは大域経路計画に用いる際にはロボットを停止させる命令として機能します。

ポート一覧
port typedata typeport name
Data Out PortIIS::TimedPose2Dstart_pose
Data Out PortIIS::TimedPose2DSeqgoal_pose


コンフィグレーション一覧
data typenamedefault valueunit
doublestart_x0.0m
doublestart_y0.0m
doublestart_heading0.0radian
doublegoal_x0.0m
doublegoal_y0.0m
doublegoal_heading0.0radian
intcontinuous_output0-
intdeactivate_to_stop1-


使用例
GlobalMapViewerの利用


 環境シミュレータRTC

 環境シミュレータは屋内環境、そこで行動するロボット、そして環境内の人の動きを再現します。 このシミュレータはセンサ出力や人物検出結果、地図などさまざまな情報を出力します。 また、ロボット制御命令(指定する速度)を入力することによってシミュレータ上の仮想移動ロボットを制御することができます。

 このRTコンポーネントを使用することによって実際に実験することが難しい多数の人が行動する環境での試験を行うことができるようになり、 また開発したアルゴリズムのそのような環境での動作を安全に検証することを可能にします。


シミュレーションの様子

ポート一覧
port typedata typeport name
Data In PortIIS::TimedVelocity2DrobotControlInfo
Data Out PortSensorRTC::LaserRangeSensor::
idl::TimedMeasuredData
rangedata
Data Out PortIIS::TimedPose2Drobot_state
Data Out PortIIS::TimedVelocity2Drobot_velocity
Data Out PortTUT::TimedPersonsGlobalPositionpersons
Data Out PortMRFC::TimedPeopleTrackingDatapeopledata
Service ProviderMRFC::AbosoluteMapServiceAbsoluteMapService
Service ProviderMRFC::RelativeMapServiceRelativeMapService
Service ProviderTUT::AreaInfoServiceAreaInfoService

各ポートの利用方法およびコンフィグレーションについてはドキュメントを参照してください。


使用例
シミュレータ上での大域地図生成
シミュレータ上での局所地図生成
シミュレータ上での人物検出
シミュレータ上での大域経路計画


 WiiRemote to Robot データ型変換RTC

 このコンポーネントは芝浦工業大学 ヒューマンロボットインタラクション研究室が開発した WiiRemoteComponentsと接続し、Wiiリモコンへのボタン入力をロボットの動作命令に変換します。 これによってWiiリモコンによるロボットの制御を可能にします。 このRTCを利用するにはWiiリモコンおよびBluetoothの機能を備えたPC(またはBluetoothドングル)が必要です。

ポート一覧
port typedata typeport name
Data In PortRTC::TimedShortSeqwiiIn
Data Out PortIIS::TimedVelocity2DVelocityOut


使用例
シミュレータ上での大域地図生成