Using Hector mapping for odometry with amcl for localization in a pre given map
I wanted to exploit the fact that hector_mapping gives pretty accurate position estimate. I used the position estimate to find odometry and now hector_mapping successful publishes the odom message and gives the required tf. But when I run amcl and publish an already created map using map_server everything messes up because now both the hector_mapping and
map_server are publishing maps. Even if I remap the hector mapping map to something else to divert it my tf is disturbed. Please help how to resolve this issue
Hi Fahad,
did you manage to get this working?
Greetings, Max
Yes I am also trying to do it...
Do you try to use AMCL?
I got it running by providing the odometry data from hector_mapping as transform from scanmatcher->base_link. Here is my launch file: https://github.com/ne0h/hmmwv/blob/ma...
Hi ne0h, I am working on a similar task to get amcl working with hector mapping odometry. I see in your repository that you had to make a minor timing delay change in hector mapping source file. Is it something specific to your task or essential to get this combination working?
Hi pJ, the timer delay has nothing to do with the amcl approach. We had to add the delay to get hector_slam working due to some timing errors in hector_slam. Perhabs the cpu was just to slow to meet the ROS timing rate...
Hi neOh, I am trying to use your launch (hector_mappping, AMCL, map_server, move_base) combined with a simulated robot (hector_quadrotor_gazebo). But I am getting tf trees errors which i am struggling WITH. Could you upload a screenshot of both your tf tree and your graph (nodes and topics)?
Hi quentin, no problem. Transform tree ( https://ne0h.de/cloud/index.php/s/nwc... ) and messages tree ( https://ne0h.de/cloud/index.php/s/BHS... ).
Thanks for that! In your tf-tree, shouldn't you have a frame listened by the acml (/map?) and one used by hector_mapping to provide you with the odometry information (/odom or /nav?) And could you explain me how I should do to have your odomtransformer.py working? I struggled all the day with it!
You are right, the transform scanmatcher_odom->map is missing. I can't check at the moment but normally it is there. dodomtransformer.py takes odometry input (in my case from hector_mapping) and outputs this data as transform. How do you get the odometry data?
I try two solutions, both using AMCL for the localization (map to odom transfo): 1) Laser_scan_matcher node provides me an odometry and a tf transform odom -> base_footprint 2) Hertor_mapping providing odometry and the tf (odom -> base_footprint) is provided by either LSM with odom input or pose_EKF
two maps:hector mapping provide a building map, amcl provide an existing map.my question : would the hector slam provide odom information without a building map,because it make the procedure slower
according to Stefan is should provide odom information exactly as a simple Laser_scan_matcher would. And therefore without storing the building map... But I cannot find a way to have this working. Did you figured it out mksun?