GPS input for hector_localization, for use in hector_mapping

asked 2016-07-12 23:14:31 -0500

Shaune Lim gravatar image


I am doing an offline mapping by processing a bag file through hector_mapping.

I am trying to make use of hector_mapping together with hector_localization (using laser and gps data to create a georeferenced map). However i am having problems with getting the hector_localization to output the EKF-filtered /pose and subscribing it via the hector_mapping.

For hector_localization, I understand that there are multiple inputs available. For my case, I only have GPS input and the input pose from the mapper (no IMU). I've precalculated the initial heading by using the GPS input. I initialised the mapper pose to 0,0,(initial heading) based on the direction of GPS travel, and publish it to topic "poseupdate". I also publish the raw GPS readings (starting from a large value and not 0,0) to "fix" and "fix_velocity"

There are a few questions which have troubled me:

  1. When I passed "fix" and "poseupdate" into hector_pose_estimate, and wait for "pose" to return a message, I do not get any messages from it. Is it because I did not provide any IMU for hector_pose_estimate?

  2. Do I have to initialise the GPS readings to 0,0? Or can I leave it as the original values, and hector_pose_estimate will still output the resultant filtered pose starting from 0,0?

  3. I'm reading the bag files using methods described in My current execution method is to save all information into std::vectors, and using each message's timestamp, process them in sequence. This makes the logic somewhat complicated. Is it possible for me to operate on the bag file straight from the BOOST_FOREACH message instance rather than going through the vector method? Taking into account that I have to still publish and subscribe to the topics from hector_pose_estimate at the same time.

Any help is much appreciated!

edit retag flag offensive close merge delete