Robot localization:using 3 sensors(wheel encoder,imu,gps) in curves we are getting drifts in output
Hi Everyone,
I am using robot localization package to fuse 1 wheel encoder,1 imu and 1 gps.
- For doing localization , I am using 1 state estimation node(ukf) inputs: encoder(/odom/data),imu(imu/data), gps(odometry/gps). output: odometry/filtered
- navsat_transform_node inputs:gps(/fix1) output: odometry/gps
I am able to get output for this configuration but the problem is whenever i am running these nodes in curverd path it is showing drift.
In straight path ,the output is as expected.
- I want to know how to solve this issue in curved path and at the end.
- I want to know why static transform is required , i m giving yaw(starting heading of robot) manually here but it ll change
everytime what can i do to do that automatic.- Please view the launch and yaml file and suggest us what can we do to correct the issue.
edited-
The input messages for sensors used are,
odometry data(topic:/odom/data)
header:
seq: 18
stamp:
secs: 1543233105
nsecs: 933596449
frame_id: "odom"
child_frame_id: "base_link"
pose:
pose:
position:
x: 0.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 0.0
covariance: [0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03]
twist:
twist:
linear:
x: 0.0147113889434
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: -0.00374101494052
covariance: [0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03]
IMU data(topic:/imu/data)
header:
seq: 313
stamp:
secs: 21
nsecs: 484000000
frame_id: "imu_link"
orientation:
x: 5.24012097576e-05
y: 0.000117985712522
z: -0.988258955695
w: 0.152788153412
orientation_covariance: [0.001225, 0.0, 0.0, 0.0, 0.001225, 0.0, 0.0, 0.0, 0.001225]
angular_velocity:
x: 0.0
y: 0.0
z: 0.0
angular_velocity_covariance: [0.0004, 0.0, 0.0, 0.0, 0.0004, 0.0, 0.0, 0.0, 0.0004]
linear_acceleration:
x: 0.0310470898156
y: -0.00114743773105
z: 9.7057897167
linear_acceleration_covariance: [0.009604, 0.0, 0.0, 0.0, 0.009604, 0.0, 0.0, 0.0, 0.009604]
GPS data(topic:/fix1)
header:
seq: 4
stamp:
secs: 23
nsecs: 4000000
frame_id: "gps"
status:
status: 1
service: 1
latitude: 49.8548095709
longitude: 8.59120397786
altitude: 0.92988040448 ...
Please update your question with the following:
Thanks @Tom Moore for reviewing the question.
I gave you some karma. Care to update the question with images?
Thanks @Tom Moore for giving me karma .I have uploaded the images.