GPS input for hector_localization, for use in hector_mapping

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

Shaune Lim gravatar image

Hi,

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 http://wiki.ros.org/rosbag/Cookbook. 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