Why do we fuse Odom, IMU, GPS and other pose messages?
I'm working with navigation stack lately, and I have a indoor location system to get the absolute pose of the robot.
As we all know, the odometry is only right for a short time, so I want to correct the pose with my indoor location system.
I know there is a package robot_pose_ekf can fuse /odom, /imu_data and /vo. But my question is Why do we have to fuse these pose messages? Why don't we just make the /odom correct with indoor location system or GPS or something else?
EDIT
Hi mig,
Actually, I tried to adapt the tf map->odom
before. But I found it hard to deal with the orientaion. You know, to adapt the position (x,y,z), you just need to do some additions and subtractions, however, when it comes to the orientation, if you change it (Quaternion: x, y, z, w), the position of base_link
relative to map
will change as well. And I also tried to do some 'cos' and 'sin' calculation, but I didn't get the right tf result.
So, is there any packages I can use or refer for this tf map->odom
? I know amcl
did such thing, but its source code is hard to understand.
Thank you.