<各バージョンの拡張点>
1. OpenINVENT-4.0.0における主要な拡張点
1.1 OpenRTM-1.0.0化対応
OpenINVENT-3.0.0系までOpenRTM-0.4.2系に対応していたが、最新版のOpenRTM-1.0.0系に対応させるために、OpenINVENT-3.0.0の全RTCを作成し直し、OpenINVENT-4.0.0としている。中身のコアロジックの変更は無いが、OpenRTM-1.0.0で動作させるための処理の追加や削除は一部あり。(個別の拡張点を参照)
1.2 独自型共通インタフェース用のIDL適用
共通化にむけて、DataPortのデータ型を揃えるべく、ロボット位置姿勢と走行指令の速度の型を定義したIDLを該当RTCに適用。
2. OpenINVENT-4.0.0における個別の拡張点
2.1 InventGUIRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
・地図蓄積指令のための「Export」ボタンとその処理を追加、併せて、MapMaintenenceRTC向けのサービスポート(Consumer)を追加。
2.2 MapBuilderRTC
・OpenRTM-1.0化対応に伴う変更。
・OpenHRP3.1.0_beta4ライブラリ利用のための対応。
2.3 MapMaintenanceRTC
・OpenRTM-1.0化対応に伴う変更。
・地図蓄積指令取得処理追加、併せてInventGUIRTC向けのサービスポート(Provider)を追加。さらに、OpenINVENT-3.0.0でonDeactivate()内で行ってた処理をonExecute()に移動。
2.4 GlobalPathPlanningRTC
・OpenRTM-1.0化対応に伴う変更。
2.5 LocalPathPlanningRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.6 OdometryRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.7 LocalizationRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.8 DriveControlRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.9 MotorControlRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.10 ObstacleDetectionRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.11 BumpDetectionRTC
・OpenRTM-1.0化対応に伴う変更。
・共通化インタフェース「IIS.idl」対応。
2.12 PanTiltControlRTC
・OpenRTM-1.0化対応に伴う変更。
・エラー回避処理追加、コアロジックの変更なし。
2.13 RangeSensorSimulatorRTC
・OpenRTM-1.0化対応に伴う変更。
2.14 その他
・デバッグ用に使用していたCallBackのonWrite()機能を削除。
・OpenRTM-1.0対応のため、「RtcHandle.py」の更新。
・ver4.0.0用に、各種実行スクリプトの作成と更新。
・ver4.0.0用に、各種サンプル用のプロジェクトファイルなどの作成と更新。
1. OpenINVENT-3.0.0における主要な拡張点
1.1 Mapの3D化
これまでは、3Dの環境モデルをある高さの平面で区切り、2D地図情報としてRTC群で管理していたが、床下空間を含む3次元の情報を立方体グリッドで管理し、2D情報同様に障害物の存在確率値を各々に持たすように改良した。
1.2 Map上グリッドの確率データの蓄積と再利用
これまでは、同一MAPを複数回利用する場合に、前回検知した障害物などの存在確率などの情報は、毎回リフレッシュされていたが、INACTIVE状態に遷移する際に現在の情報をファイル出力し、次回MapBuilderRTCでそのファイルをロードすることにより、前回の確率情報を取得できる機能を追加した。
1.3 床面凹凸障害物検知用RTCとPanTilt制御RTCの追加(距離センサーシミュレーション用)
これまでは、ロボット上の距離センサー搭載高さ、かつ、床面に対して平行な面をセンシングする機能のみ有していたが、もう一つ距離センサーを搭載し、前方斜め下方に向けて床面をセンシングする機能を追加した。また、PanTilt台上にセンサーを搭載し、計画経路上の走行予定方角をセンシング出来るようにPanTilt台の制御機能も追加した。
1.4 コンフィグレーションパラメータを複数のセット化
これまで、各RTCのコンフィグレーションパラメータはデフォルトのみ用意していたが、「RTC名.conf」をRTC毎に用意し、その中に、ロボット単位など関連するパラメータを一まとめにセットとして複数用意し、ユーザが容易に選択し使い分けられるようにした。
1.5 リファレンスハードウェア2号機モデルの追加
リファレンスハードウェア2号機のVRMLモデルを追加。
1.6 その他、各RTC機能のブラッシュアップ
各RTCの有するロジックや機能を使いやすい、かつ精度がよくなるようにブラッシュアップ。
2. OpenINVENT-3.0.0における個別の拡張点
2.1 InventGUIRTC
・3DMap対応、インタフェースや入力画面などの変更。
・床面凹凸障害物センサーのセンシング表示機能の追加。
・次のDataPort追加。「BumpPosition」(距離データ取得ポート)、「PanTiltAngle」(PanTilt角度取得ポート)
2.2 MapBuilderRTC
・作成するグリッドのMapデータを2DMapと3DMapの2種に変更。(一部のRTCへ3DMapを出力)
・ファイルで蓄積した確率データの利用機能追加。伴い、次のサービスポートとコンフィグレーションパラメータを追加。「MapMaintenanceProvPort」(確率データ取得ポート)、「ProbabilityDataFile」(利用する蓄積データファイル名)
・コンフィグレーションパラメータの「NameServer」に「rtc.conf」内の「corba.nameservers」に設定した値が使用されていたバグを修正。
2.3 MapMaintenanceRTC
・取得/管理を行うMapデータを2DMapから3DMapに変更。伴い、次のコンフィグレーションパラメータを追加。「ObstacleProbaRatio」(ObstacleDetectionRTCから取得する確率の反映率)、「BumpProbaRatio」(BumpDetectionRTCから取得する確率の反映率)
・保持している3DMap上の確率データを出力する次のサービスポートを追加。「MapBuilderConsPort」(確率データ送信ポート)
・サービスポートより取得した蓄積データを利用する機能を追加。
2.4 GlobalPathPlanningRTC
・デバッグファイル出力追加。(デバッグモードでの対応)
2.5 LocalPathPlanningRTC
・CallBackの追加。DataPortを次のように変更。「Position」->「InCurrentPosition」、「Deviating」->「InDeviating」、「Position」->「InCurrentPosition」
2.6 ObstacleDetectionRTC
・取得するMapデータを2DMapから3DMapに変更。
・データポート名変更。「Position」->「InCurrentPosition」、「SensorData」->「InSensorData」、「SensorDistance」->「OutSensorDistance」
・コンフィグレーションパラメータの保持機能を追加。(ACTIVE中に変更されたくない値を保持する)
・コンフィグレーションパラメータのデフォルト値をRH2(Simulation用)対応に変更。
2.7 BumpDetectionRTC
・OpenINVENT-3.0.0で新規作成。(移動台車モデルに搭載された距離センサー(PanTiltに搭載した距離センサー)を進行方向(経路)の路面に向け、取得した距離データから路面の凹凸を検知するRTC。)
・コンフィグレーションパラメータに設定したリミット以上の路面凹凸を経路上に検知した際は、移動台車の駆動を停止させる命令をサービスポートより送信する。
2.8 PanTiltControlRTC
・OpenINVENT-3.0.0で新規作成。(移動台車モデルに搭載したPanTiltをコントロールするRTC。)
2.9 RangeSensorSimulatorRTC
・データポート名変更。「OutDistance」->「OutSensorData」
・コンフィグレーションパラメータ名変更。「startPosition」->「startAngle」、「endPosition」->「endAngle」
・コンフィグレーションパラメータの保持機能を追加。(ACTIVE中に変更されたくない値を保持する)
・コンフィグレーションパラメータのデフォルト値を「TOP-URG」に変更。
2.10 OdometryRTC
・コンフィグレーションパラメータのセット化(Odometry.conf)。
・コンフィグレーションパラメータの保持機能を追加。(ACTIVE中に変更されたくない値を保持する)
・コンフィグレーションパラメータのデフォルト値をRH2(Simulation用)対応に変更。
2.11 LocalizationRTC
・デバッグ出力方式のみ変更、その他ver2.0.3から変更なし。
2.12 DriveControlRTC
・速度制御ロジックの改良(加速度による速度リミット制限、制御用ウェイトの変更)
・計画経路からの補間軌道生成ロジックの一部改訂。
・BumpDetectionRTCからの停止指令対応。
・コンフィグレーションパラメータのセット化(DriveControl.conf)。
・コンフィグレーションパラメータの保持機能を追加。(ACTIVE中に変更されたくない値を保持する)
・コンフィグレーションパラメータのデフォルト値をRH2(Simulation用)対応に変更。
2.13 MotorControlRTC
・コンフィグレーションパラメータのセット化(MotorControl.conf)。
・コンフィグレーションパラメータの保持機能を追加。(ACTIVE中に変更されたくない値を保持する)
・コンフィグレーションパラメータのデフォルト値をRH2(Simulation用)対応に変更。
2.14 モデル
・リファレンスハードウェア2号機(RH2)の移動台車モデル、アームモデルの追加。
・環境モデルの追加。(床面凹凸障害物センサーシミュレーション用)
2.15 その他
・ver3.0.0用に、各種実行スクリプトの作成と更新。
・ver3.0.0用に、各種サンプル用のプロジェクトファイルなどの作成と更新。
1. OpenINVENT-2.0.3における個別の拡張点
1.1 LocalPathPlanningRTC
直線の制御点(3点以上)が生成されてしまう不具合を修正。ゴールから半径GridSize内での障害物検知による経路再生成を制限。
1.2 ObstacleDetectionRTC
距離データと位置データの生成周期が近い場合に同期処理に失敗してしまう不具合を修正。検知範囲のキャリブレーションロジックを追加。
1.3 Model
移動台車モデルRH1を新規追加。併せてパラメータファイルも追加。
1. OpenINVENT-2.0.2における変更点
1 MapBuilderRTC
MapBuilder内のMakefileにて、OpenHRP3.1.0_beta2のライブラリ利用のためのPATHを修正。
(*)その他の変更はありません。
1. OpenINVENT-2.0.1における主要な拡張点
1.1 距離センサーシミュレーション
これまでは距離センサーを用いたシミュレーションを行うには、(株)セック提供のURGセンサーRTCが必要だが、利用可能なユーザが限定されてしまうため、OpenINVENT全ユーザ(Linux)がシミュレーション可能なAIST版距離センサーシミュレーションRTCを用意した。
2. OpenINVENT-2.0.1における個別の拡張点
2.1 RangeSensorSimulatorRTC
OpenHRP3.1.0にて、干渉チェック機能を用いての距離センサー出力をControllerBridgeを介して所得可能になったのに伴い、その出力を取得し、フィルタリングを行い既存のObstacleDetectionRTCへデータを渡すことで、これまでの距離センサーシミュレーションと同等の処理が可能となるようなRTCを新規作成した。
1. OpenINVENT-2.0.0における主要な拡張点
1.1 時間同期
これまでは情報統合における時間差への対処を行っていなかった。そこで、周期的に受け渡しするデータすべてに正しいタイムスタンプを付加し、それを利用して時間同期をとった処理を行うようにした。
1.2 確率化
2D地図のグリッドの値は、障害物の有無を0か1で記述していたが、センサによる観測に確からしさを導入し、障害物の有無を0から1の確率で表現するようにした。
1.3 インタフェースの共通化
知能化PJではRTC化した知能モジュールの再利用性の高さを先行して示すために、移動知能に関連したグループでワーキンググループを構成し、移動知能のモジュール化の粒度や、モジュール間のインタフェースの共通化を進めている。そこでの共通化にあわせ、かつ、促進するためにモジュールの粒度とインタフェースの変更を行った。
1.4 利便性の向上
多くのRTCを接続して実験を行うには、各RTCの起動や接続などの手間がかかる。そこで一端構成したRTCネットワークで繰り返し実験テストが行えるよう、RTCをdeactivate(RTCの状態のひとつで休止状態)した後、再度パラメータ変更などして実験を開始できるように各RTCを改良するなどした。
2. OpenINVENT-2.0.0における個別の拡張点
2.1 経路計画RTC
ポテンシャルベースで8連結計画経路を生成する際、スタートとゴールの位置に加えて姿勢を考慮するよう変更した。
これまでは生成した8連結計画経路をDriveControlに渡していたが、インタフェースの共通化を促進するために、8連結計画経路から制御点列を抽出し、その点列データをDriveControlに渡すように変更した。
さらに、ゴールを行き過ぎた場合の微調整のための経路再生成の処理も追加した。
2.2 DriveControlRTC
経路計画RTCの出力の変更に伴い点列を受け取るようにした。さらに、点列からの滑らか経路の生成に、これまでのBスプライン補間に加えて、直線円弧近似を新たに導入し、ユーザーが選択して使用できるようにした。
モジュールの粒度の共通化の観点からオドメトリ計算部を独立させた。さらにインタフェースの共通化に伴い、出力をv、ω(並進と旋回速度)に変更した。
これまでは前進でのみ移動する設計であったが、目的地まで後退で移動することも可能となるよう拡張し、前進か後退か指定できるようにした。
2.3 ObstacleDetectionRTC
DriveControlから受け取る自己位置姿勢情報と、URGSimulatorから受け取る距離情報を統合して障害物検出を行うが、これまでは同じonExecutionループ(RTCの周期実行単位)で両者から受け取った情報を単純に統合していたため、既知の障害物を未知の障害物として誤検出することがあった。OpenHRP3.1.0では、データに正しくタイムスタンプが付加されるようになったので、自己位置姿勢情報と距離情報を、その発生時刻を示すタイムスタンプをつかって、もっとも時間が近く、かつ、その差が閾値以下のもののみ統合して障害物検出に供するように改良した。
センサに誤差モデルを定義し、観測情報に確からしさを導入することにより、観測した距離情報からの障害物検出を確率化し、局所的な障害物存在確率を出力するようにした。
2.4 MapMaintenanceRTC
2D地図のグリッドの値の確率化に伴い、確率化されたグリッド地図の維持を独立させた。現状ではObstacleDetectionから局所的な障害物存在確率を受け取り、維持している大域的なグリッド地図の障害物存在確率を更新する。さらに、設定した閾値により障害物らしさを判定し、それが反転した場合のみ、経路計画RTCやDriveControlにグリッド地図の差分情報として出力している。
2.5 OdometryRTC
モジュールの粒度の共通化の観点からオドメトリ計算部を独立させた。
2.6 LocalizationRTC
インタフェースの共通化などの観点からの自己位置推定の確率化に備えて、確率化された各種自己位置推定を入力として、それらを確率的に融合して、単一の自己位置推定を出力する機能を実装した。