how to use robot_pose_ekf module to improve odom data and use that to produce better maps.
Hello,
I am working on building maps of my office ( which is think is around 100 * 100 mts) . I using this tutorial for gmapping. This is the procedure i follow to create the map.
1) I run the robot in a loop ( around a huge rectangular cubical). I wrote a simple obstacle avoidance code in python for this. I am not teleoperating it.
2) i save /tf and Laserscan data in a bag file.
3) Once i collect the data, i follow above tutorial to build the map from logged data.
This is the map i got: C:\fakepath\1.png
Which you can see is a very bad map.
I can visualize in Rviz that the odometry drifts the more the run the robot around.
So i thought of using robot_pose_ekf tutorial to improve odometry. I include the follow command in my launch file:
<include file="$(find robot_pose_ekf)/robot_pose_ekf.launch"/>
To check whether it's working correctly or not, i run the following command:
rosservice call robot_pose_ekf/get_status
which gives me the following output:
status: Input:
- Odometry sensor
- is active
- received 5678 messages
- listens to topic /odom
- IMU sensor
- is active
- received 4567 messages
- listens to topic /mobile_base/sensors/imu_data
- Visual Odometry sensor
- is NOT active
- received 0 messages
- listens to topic /vo Output:
- Robot pose ekf filter
- is active
- sent 4675 messages
- pulishes on topics /robot_pose_ekf/odom_combined and /tf
I changed the odom and imu data topics it is listening to after follwoing some tutorials. It seems like it is getting imu data and odom data.
while i am running the robot around i also save /robot_pose_ekf/odom_combined data. And i plotted both odom and odom_combined data, which you can see below. As you can see their is no difference in both, blue is odom and red is odom_combined.
Also in robot_pose_ekf tutorials it is said that it will provide a tf between odom_combined → base_footprint, but when i run the following command and see the tf tree i cannot find any tf between odom_combined → base_footprint
rosrun tf view frames
C:\fakepath\Screenshot from 2016-07-27 20:54:35.png
These are my question:
1) how can i correctly use robot_pose_ekf module to improve odom data?
2) and how can i get the tf between odom_combined → base_footprint?
3) How can i use this information to improve results of gmapping?
Can anyone please help me?
Thanks a ton