Menu

rsf_spec_info_jp

トップへ戻る

RSFのユースケースに関する解説

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つの位置推定出力があります。

  1. rsf_fix:絶対座標:GNSS座標系出力 (緯度・経度・高度)
  2. rsf_odom:相対座標:LIO座標系出力

位置推定状態の定義

RSFは、2つの位置推定出力に対して、Registration の正誤を ODOM_TYPE、
位置の信頼度をODOM_STATEとして出力します。(位置推定状態)
ODOM_TYPE、ODOM_STATEは、GNSS、LIO、Registration によって決定されます。
よって、3入力2出力の真理値表を下図に示します。
現状の仕様では、位置の信頼度は、出力をそのまま使用せず、
受信側(ユーザーPCなど)のアプリケーションにおいて、ODOM_TYPEとODOM_STATEの論理積(AND)をとった上で、
最終的な位置情報として採用する設計を推奨します。

  • RSF_FIXの場合
yaml
  • RSF_ODOMの場合
yaml

システム状態定義一覧

この表は、レジストレーション(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 の精度が向上次第、自動的に通常動作モードに戻ります。

システム状態遷移図

yaml

Related

Wiki: rsf_ros2node_jp
Wiki: top_jp

MongoDB Logo MongoDB