@@ -15,12 +15,10 @@ state_estimator:
1515 mobile_base_motion :
1616 # Process noise for state variables
1717 # Order: x, y, z, roll, pitch, yaw, vx, vy, vz, vroll, vpitch, vyaw, ax, ay, az
18- # Ground robot: z, roll, pitch (and their velocities) should be small
19- # since the robot stays on the ground plane and level.
20- # trying this with the actual wheel odom
21- process_noise_diagonal : [0.25, 0.25, 0.001, 0.001, 0.001, 0.25, 0.1, 0.1, 0.001, 0.001, 0.001, 0.1, 0.001, 0.001, 0.001]
22- # this one works with the ground truth odom
23- # process_noise_diagonal: [2.0, 2.0, 0.1, 0.1, 0.1, 2.0, 2.0, 1.0, 0.1, 0.1, 0.1, 0.001, 0.01, 0.01, 0.001]
18+ # z, roll, pitch and their derivatives are near-zero for a ground robot.
19+ # process_noise_diagonal: [0.25, 0.25, 0.00001, 0.00001, 0.00001, 0.25
20+ # -, 0.1, 0.1, 0.00001, 0.00001, 0.0001, 0.1, 0.0001, 0.0001, 0.00001]
21+ process_noise_diagonal : [1.0, 1.0, 0.0001, 0.0001, 0.0001, 0.5, 0.5, 0.5, 0.0001, 0.0001, 0.0001, 0.25, 0.00001, 0.00001, 0.00001]
2422
2523 sensor_models :
2624 initial_localization_sensor :
@@ -38,9 +36,11 @@ state_estimator:
3836 publish_on_startup : true
3937 # Order: x, y, z, roll, pitch, yaw, vx, vy, vz, vroll, vpitch, vyaw, ax, ay, az
4038 initial_state : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
41- initial_sigma : [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
39+ # Order: x, y, z, roll, pitch, yaw, vx, vy, vz, vroll, vpitch, vyaw, ax, ay, az
40+ # z and its derivatives start with very tight sigma — ground robot stays on the plane.
41+ initial_sigma : [0.1, 0.1, 0.001, 0.01, 0.01, 0.1, 0.1, 0.1, 0.001, 0.01, 0.01, 0.1, 0.001, 0.001, 0.001]
4242
43- # Wheel odometry — differential mode
43+ # Wheel odometry — provides translation (x, y) and yaw
4444 # Using differential mode because platform_velocity_controller/odom is
4545 # wheel-integrated odometry that drifts over time. Differential mode fuses
4646 # only the relative change between consecutive messages, preventing
@@ -56,24 +56,20 @@ state_estimator:
5656 a : 1.0
5757 position_dimensions : ['x', 'y', 'z']
5858 orientation_dimensions : ['yaw']
59- linear_velocity_dimensions : ['x']
59+ linear_velocity_dimensions : ['x', 'y' ]
6060 angular_velocity_dimensions : ['yaw']
6161 differential : true
6262 independent : false
6363 use_twist_covariance : true
6464
65- # IMU sensor
66- # - Roll/pitch orientation from gravity vector (absolute, keeps robot level )
65+ # IMU sensor — provides orientation and yaw rate
66+ # - Roll/pitch/yaw orientation (absolute, covariance 0.001 vs wheel odom 0.5 )
6767 # - Yaw angular velocity from gyroscope
68- # - Z linear acceleration (gravity-compensated, constrains vertical dynamics)
6968 imu_sensor :
70- topic : /imu_sensor_broadcaster/imu
71- orientation_dimensions : ['roll', 'pitch']
69+ topic : /imu_sensor_broadcaster/imu_reliable
70+ orientation_dimensions : ['roll', 'pitch', 'yaw' ]
7271 angular_velocity_dimensions : ['yaw']
73- linear_acceleration_dimensions : ['z']
74- remove_gravitational_acceleration : true
7572 queue_size : 10
76- throttle_period : 0.1
7773
7874 # Publish filtered odometry
7975 publishers :
0 commit comments