Robotics StackExchange | Archived questions

GPS input for hector_localization, for use in hector_mapping

Hi,

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

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

For hectorlocalization, 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 "fixvelocity"

There are a few questions which have troubled me:

  1. When I passed "fix" and "poseupdate" into hectorposeestimate, 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 hectorposeestimate?

  2. Do I have to initialise the GPS readings to 0,0? Or can I leave it as the original values, and hectorposeestimate 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 BOOSTFOREACH message instance rather than going through the vector method? Taking into account that I have to still publish and subscribe to the topics from hectorpose_estimate at the same time.

Any help is much appreciated!

Asked by Shaune Lim on 2016-07-12 23:14:31 UTC

Comments

Answers