mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-04 16:57:46 +08:00
64 lines
2.4 KiB
YAML
64 lines
2.4 KiB
YAML
# FusionCore config for TurtleBot3 Waffle (Gazebo Harmonic)
|
|||
|
|
#
|
||
|
|
# Platform: TurtleBot3 Waffle (simulated)
|
||
|
|
# IMU: MPU9250 (9-axis, magnetometer unreliable in sim)
|
||
|
|
# GPS: None (indoor / simulation)
|
||
|
|
# LiDAR: HLS-LFCD2 via /scan (used by icp_odometry, not fused here directly)
|
||
|
|
# encoder2: rtabmap icp_odometry output on /rtabmap/icp_odometry
|
||
|
|
#
|
||
|
|
# Architecture: FusionCore (wheels + IMU) provides the odom frame.
|
||
|
|
# icp_odometry uses that odom frame as its initial scan-matching guess
|
||
|
|
# (guess_frame_id: odom). The ICP output feeds back into FusionCore
|
||
|
|
# as a second velocity source (encoder2). Each tightens the other.
|
||
|
|
|
||
|
|
fusioncore:
|
||
|
|
ros__parameters:
|
||
|
|
base_frame: base_footprint
|
||
|
|
odom_frame: odom
|
||
|
|
publish_rate: 100.0
|
||
|
|
publish.force_2d: true
|
||
|
|
|
||
|
|
# Gazebo Harmonic prefixes sensor frames with the model name (waffle/imu_link/tb3_imu).
|
||
|
|
# Override to the TF frame that robot_state_publisher actually publishes.
|
||
|
|
imu.frame_id: "imu_link"
|
||
|
|
|
||
|
|
# MPU9250: magnetometer disabled (unreliable in sim / near motors)
|
||
|
|
imu.has_magnetometer: false
|
||
|
|
# Simulation-tuned noise values for Gazebo Harmonic MPU9250 plugin.
|
||
|
|
# Real MPU9250 hardware: gyro ~0.005 rad/s, accel ~0.1 m/s2.
|
||
|
|
# Gazebo injects lower noise than the real sensor, so tighter values
|
||
|
|
# reduce unnecessary filter uncertainty in sim without affecting real-hardware users
|
||
|
|
# (who should revert to the hardware spec values above).
|
||
|
|
imu.gyro_noise: 0.002 # rad/s (Gazebo sim-tuned; real MPU9250: 0.005)
|
||
|
|
imu.accel_noise: 0.02 # m/s2 (Gazebo sim-tuned; real MPU9250: 0.1)
|
||
|
|
imu.remove_gravitational_acceleration: false
|
||
|
|
|
||
|
|
# Wheel odometry noise (TB3 differential drive, simulated)
|
||
|
|
encoder.vel_noise: 0.05 # m/s
|
||
|
|
encoder.yaw_noise: 0.02 # rad/s
|
||
|
|
|
||
|
|
# ICP odometry as second velocity source
|
||
|
|
encoder2.topic: "/rtabmap/icp_odometry"
|
||
|
|
|
||
|
|
outlier_rejection: true
|
||
|
|
outlier_threshold_imu: 15.09
|
||
|
|
outlier_threshold_enc: 11.34
|
||
|
|
|
||
|
|
adaptive.imu: true
|
||
|
|
adaptive.encoder: true
|
||
|
|
adaptive.window: 50
|
||
|
|
adaptive.alpha: 0.01
|
||
|
|
|
||
|
|
zupt.enabled: true
|
||
|
|
zupt.velocity_threshold: 0.08 # m/s: slightly loose for ICP jitter
|
||
|
|
zupt.angular_threshold: 0.05 # rad/s
|
||
|
|
zupt.noise_sigma: 0.01
|
||
|
|
|
||
|
|
ukf.q_position: 0.01
|
||
|
|
ukf.q_orientation: 1.0e-9
|
||
|
|
ukf.q_velocity: 0.1
|
||
|
|
ukf.q_angular_vel: 0.1
|
||
|
|
ukf.q_acceleration: 1.0
|
||
|
|
ukf.q_gyro_bias: 1.0e-5
|
||
|
|
ukf.q_accel_bias: 1.0e-5
|