RSF-X001 のユースケースについて解説します。
ROS2 ドライバ hokuyo_rsf のトピックと出力仕様の対応は、以下の表のようになっております。
| 分類 | データタイプ | 値 | 説明 | 出力頻度 | 対応 rostopic / 型 |
|---|---|---|---|---|---|
| ① センサデータ | FIX | 1 | GNSSのデータから加工して作った緯度経度情報を参照 | 1 Hz | /rsf/nav_sat_fix(sensor_msgs/NavSatFix) |
| GGA | 2 | GNSSの生データ NMEA0183のGGAステートメントに含まれる情報 |
1 Hz | /rsf/gpgga(nmea_msgs/Gpgga) |
|
| RMC | 3 | GNSSの生データ NMEA0183のRMCステートメントに含まれる情報 |
1 Hz | /rsf/gprmc(nmea_msgs/Gprmc) |
|
| ZDA | 4 | GNSSの生データ NMEA0183のZDAステートメントに含まれる情報 |
1 Hz | /rsf/gpzda(nmea_msgs/Gpzda) |
|
| HOKUYO_CLOUD2 | 5 | 3D-LiDARの点群データ | 20 Hz | /rsf/hokuyo_cloud2(sensor_msgs/PointCloud2) |
|
| IMU | 6 | IMUデータ | 1000 Hz | /rsf/imu(sensor_msgs/Imu) |
|
| ② 位置推定データ | LIO_ODOM | 7 | LIOが計算した自己位置データ | 1000 Hz | /rsf/lio_imu_rate_odom(nav_msgs/Odometry) |
| SWITCH_FIX | 8 | RSF処理後の緯度経度情報 | 1000 Hz | /rsf/rsf_fix(sensor_msgs/NavSatFix) |
|
| UTM_ODOM (ODOMETRY) |
9 | RSF処理後のUTM座標系における自己位置 | 1000 Hz | /rsf/utm_coord_odom(nav_msgs/Odometry) |
|
| SWITCH_ODOM (ODOMETRY) |
10 | RSF処理後のオドメトリ座標系における自己位置 | 1000 Hz | /rsf/rsf_odom(nav_msgs/Odometry) |
|
| SWITCH_ODOM_STATE | 11 | SWITCH_ODOMの自己位置の安定性を表す文字列 | 1000 Hz | /rsf/rsf_odom_state(std_msgs/String) |
|
| SWITCH_ODOM_TYPE | 12 | SWITCH_ODOMがGNSS/LIOのどちらを採用したかを表す文字列 | 1000 Hz | /rsf/rsf_odom_type(std_msgs/String) |
|
| SWITCH_FIX_STATE | 13 | SWITCH_FIXの安定性を表す文字列 | 1000 Hz | /rsf/rsf_fix_state(std_msgs/String) |
|
| SWITCH_FIX_TYPE | 14 | SWITCH_FIXがGNSS/LIOのどちらを採用したかを表す文字列 | 1000 Hz | /rsf/rsf_fix_type(std_msgs/String) |
|
| ③ 診断情報 | DIAGNOSTIC_ARRAY | 15 | 診断情報データ | 1 Hz | /rsf/diagnostics(diagnostic_msgs/DiagnosticArray) |
次に、RSF固有の位置推定出力である、SWITCH_FIX と SWITCH_ODOM について解説します。
RSFの位置推定出力は、GNSS、LIOと Fusion 演算を用いています。
また、これらの組み合わせによる2つの位置推定出力があります。
RSFは、2つの位置推定出力に対して、Registration の正誤を ODOM_TYPE、
位置の信頼度をODOM_STATEとして出力します。(位置推定状態)
ODOM_TYPE、ODOM_STATEは、GNSS、LIO、Registration によって決定されます。
よって、3入力2出力の真理値表を下図に示します。
現状の仕様では、位置の信頼度は、出力をそのまま使用せず、
受信側(ユーザーPCなど)のアプリケーションにおいて、ODOM_TYPEとODOM_STATEの論理積(AND)をとった上で、
最終的な位置情報として採用する設計を推奨します。
![]() |
![]() |
この表は、レジストレーション(R)、LIOの安定(L)、およびGNSSの捕捉 (RTK-FIX, Float)(G)の可用性と安定性に基づいて、
システムの状態を定義したものです。
| State Flag | Code ID | Official Name | Description |
|---|---|---|---|
| R' L' G' | INIT_UNAVAILABLE |
System Bootstrapping | システムの電源投入とセンサーの初期ウォームアップ段階(90秒)です。位置推定は利用できません。 |
| R' L G' | LIO_CALC_STABLE |
LIO Calculation Stable | LIOの計算結果が安定しており信頼性が高い状態です。GNSS信号のRTK-FIX を待機している状態です。 |
| R' L' G | GNSS_SIGNAL_ACQUISITION |
GNSS Signal Acquired | GNSS信号がRTK-FIX, またはFloat である状態です。 |
| R' L G | PRE_MOVEMENT_STANDBY |
Pre-Movement Standby | LIO(安定)とGNSS(RTK-FIX, Float) を満たしている状態です。Registration 処理が移動の閾値(3m) を超えるのを待機している状態です。 |
| R L G | REG_OPTIMAL_FUSION |
Optimal Fusion Mode | 動作状況:〇 LIO(安定)とGNSS(RTK-FIX)の両方を満たし、Registration 処理が正常に動作しています。位置測定は最高精度で実行されています。 |
| R L G' | REG_GNSS_OUTAGE |
LIO-Dependent | 動作状態:〇 GNSSがRTK-FIX ,Float より精度が低くなった状態です。システムの位置推定は、安定したLIOとRegistration 処理によって維持されます。 |
| R L' G | REG_LIO_DEGRADED |
GNSS-Standalone | 動作状態: 〇 LIOの精度が低下しています。システムは、GNSSによる測位とRegistrationを利用して位置推定を維持しています。 |
| R L' G' | REG_FATAL_DROP |
Estimation Drop | 動作状態: × GNSS と LIO の両方の精度が低下しています。システムは、過去のRegistration 処理を用いて位置を推定を継続しており、GNSS LIO の精度が向上次第、自動的に通常動作モードに戻ります。 |
![]() |