I am fusing odometry from a lidar (I have it thanks to undocumented pub_odometry parameter of hector_slam), IMU and GPS data. I am using the dual_ekf_navsat_example. My odom message has no twist information, only pose. So that it is taken into account by ekf_se_odom, I need to publish it with frame_id = odom, because world_map of ekf_se_odom is odom. Then, if I want my odom message to be fused again in ekf_se_map, I need to publish it with frame_id = map, because world_map of ekf_se_map is map. So... I guess I have to duplicate my odom message... am I right or am I missing something ?
Post score: 0
Comment by ufr3c_tjc on 2017-06-28:
You only need one message. The frame_id of the message depends upon which frame hector_slam is estimating your position in. I haven't used the package myself, but as long as you have set the package map and odom frame parameters correctly, then the default message frame_id is correct for both ekf's.
Comment by Yvonnn on 2017-06-29:
Not sure you got it. My pb is strongly linked to this simpler question : will an instance of robot_state_estimator with parameter world_frame = map use the pose part of a odometry message with frame_id = odom ? My answer is : NO. That's why I need to publish a odometry message with frame_id = map.
Comment by ufr3c_tjc on 2017-06-29:
The answer to that simpler question is actually YES. The ekf node then transforms the data itself. You only need one message, with the frame_id of odom, and send it to both.