Skip to content

In the ROS2 Humble simulation instance, the ODOM fused data exhibits strong fluctuations. #18

@hellodss

Description

@hellodss

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

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

Node startup status

[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

Heading warnings and GPS filtering status

[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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions