I tried running a simulation instance on ROS2 Humble, and why is the jumping so severe with GPS enabled? I tried adjusting the parameters but failed. Also, it seems there's no node maintenance for the TensorFlow map to ODOM. This doesn't seem to be very friendly to Nav2 navigation?Thank you very much for your answers.
fusioncore:
ros__parameters:
base_frame: base_link
odom_frame: odom
publish_rate: 50.0
imu.gyro_noise: 0.005
imu.accel_noise: 0.1
imu.has_magnetometer: false
encoder.vel_noise: 0.02
encoder.yaw_noise: 0.01
gnss.base_noise_xy: 4.0 # baseline sigma (m) at HDOP=1. When NavSatFix provides
# covariance, fusion_node sets fix.hdop = sqrt(var_xy),
# so sigma = base_noise_xy * sqrt(var_xy). With base=1.0
# this equals sqrt(var_xy) directly: the correct value.
# Do NOT set this to NOISE_H; that double-shrinks R.
gnss.base_noise_z: 8.0 # same reasoning for vertical: set to 1.0, not NOISE_V
gnss.max_hdop: 1.2
# Disable GNSS fusion: simulated fixes are GPS_FIX with 4 satellites,
# so these quality gates reject every GNSS measurement.
gnss.min_satellites: 4
gnss.min_fix_type: 1
gnss.heading_topic: ""
outlier_rejection: true
outlier_threshold_gnss: 7.0
adaptive.imu: true
adaptive.encoder: true
adaptive.gnss: false
[gz_pose_to_gps-6] [INFO] [1776846682.062273543] [gz_pose_to_gps]: GPS publisher ready. Origin: 43.2557, -79.8711
[fusioncore_node-5] [INFO] [1776846696.613661040] [fusioncore]: Configuring FusionCore...
[fusioncore_node-5] [INFO] [1776846696.618565691] [fusioncore]: IMU gravity removal: disabled
[fusioncore_node-5] [INFO] [1776846696.618627711] [fusioncore]: GNSS min_fix_type: 1 (1=GPS, 2=DGPS, 3=RTK_FLOAT, 4=RTK_FIXED)
[fusioncore_node-5] [INFO] [1776846696.628205343] [fusioncore]: PROJ: transform ready (EPSG:4326 → EPSG:4978)
[fusioncore_node-5] [INFO] [1776846696.628290203] [fusioncore]: PROJ: using first GPS fix as local reference origin
[fusioncore_node-5] [INFO] [1776846696.635718069] [fusioncore]: Dual antenna heading disabled.
[fusioncore_node-5] [INFO] [1776846696.635772826] [fusioncore]: FusionCore configured. base_frame=base_link odom_frame=odom rate=50Hz
[fusioncore_node-5] [INFO] [1776846697.135874736] [fusioncore]: --- TF Validation ---
[fusioncore_node-5] [INFO] [1776846697.136041591] [fusioncore]: [OK] imu_link -> base_link
[fusioncore_node-5] [INFO] [1776846697.136067223] [fusioncore]: [OK] base_link -> odom
[fusioncore_node-5] [INFO] [1776846697.136080074] [fusioncore]: ---------------------
[fusioncore_node-5] [INFO] [1776846697.139815414] [fusioncore]: Activating FusionCore...
[fusioncore_node-5] [INFO] [1776846697.144963398] [fusioncore]: Filter initialized at t=1776846697.145 (first IMU)
[fusioncore_node-5] [WARN] [1776846697.145016548] [fusioncore]: IMU frame mismatch: TF validation checked 'imu_link' but first message has frame_id 'fusioncore_robot/imu_link/imu_sensor'. Set imu.frame_id: "fusioncore_robot/imu_link/imu_sensor" in your config to fix the startup validation warning.
[fusioncore_node-5] [INFO] [1776846697.151523326] [fusioncore]: FusionCore active. Listening for sensors.
[fusioncore_node-5] [INFO] [1776846697.210175959] [fusioncore]: GNSS reference set: lat=43.255699 lon=-79.871094
[fusioncore_node-5] [WARN] [1776847086.507848098] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [INFO] [1776847086.507905090] [fusioncore]: Heading not yet validated: lever arm inactive. Distance traveled: 2.3m (need 5.0m), or provide dual antenna / IMU orientation.
[fusioncore_node-5] [WARN] [1776847091.611310030] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [INFO] [1776847091.611385181] [fusioncore]: Heading not yet validated: lever arm inactive. Distance traveled: 3.3m (need 5.0m), or provide dual antenna / IMU orientation.
[fusioncore_node-5] [WARN] [1776847096.751245830] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [INFO] [1776847096.751310016] [fusioncore]: Heading not yet validated: lever arm inactive. Distance traveled: 3.3m (need 5.0m), or provide dual antenna / IMU orientation.
[fusioncore_node-5] [WARN] [1776847101.894905517] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [WARN] [1776847106.968660593] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [WARN] [1776847112.173092855] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [WARN] [1776847117.832813982] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [WARN] [1776847123.235430471] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
[fusioncore_node-5] [WARN] [1776847128.582131961] [fusioncore]: GNSS fix rejected (fix_type=1, min=1, hdop=0.50, quality check or Mahalanobis gate)
Hi manankharwar,
I tried running a simulation instance on ROS2 Humble, and why is the jumping so severe with GPS enabled? I tried adjusting the parameters but failed. Also, it seems there's no node maintenance for the TensorFlow map to ODOM. This doesn't seem to be very friendly to Nav2 navigation?Thank you very much for your answers.
Parameter file
Node startup status
Heading warnings and GPS filtering status