ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

GPS robot_localization point-to-point navigation

asked 2015-09-28 09:50:20 -0500

manuzagra gravatar image

I started to work with robot_localization package for the odometry of my robot and currently the local odometry is working good (the transform "odom -> base_link" has low error). I need to do point-to-point navigation and I would like to use the same package to get the global positioning using a GPS.

I am going to upload the launch file that I use and a bag file. Te route recorded in the bag file is a straight line facing to the south approximately, the robot did a round trip and it finished in the same place that he started, the return way was done in reverse walking ( I didn't want to turn because my model of the robot for the odometry is not appropriate for this terrain). I would be very thankful if somebody can take a look at it and say me if this is a correct configuration and the output is correct. (launch and bag )

My problem is I do not quite understand the meaning of each frame and, for example, if i want to move the robot to a desired position (latitude and longitude), I do not know the position of the goal relative to my robot. I think I could transform the goal to UTM coordinates, but even with this, I can't realize from what frame to what frame I should make the transform. My principal idea is to transform the goal position to UTM and make a frame whose parent is the UTM frame published from the robot_localization package and work with it, but this frame is very far and (I think) imprecise that I do not know if it is the correct way to deal with the package.

May somebody explain the frames of this package and how could I use them to naviagete with my GPS? I would need the relative position of the goal refered to the position of the robot or the global position of both, robot and goal.

Thank you very much in advance.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2015-10-01 13:56:03 -0500

Tom Moore gravatar image

updated 2015-10-01 13:56:35 -0500

The three primary coordinate frames are described here. I haven't looked too deeply, but from a cursory glance at your launch file, this looks fine.

In addition to those frames, when you use navsat_transform_node, you get a transform (in your case) from map->utm. If you want to issue a goal in the global frame, you need to first convert your lat/lon into UTM coordinates (there's a header in robot_localization that exposes this functionality), and then use the map->utm transform to transform that UTM position into your robot's world frame. You can then send that goal to your planner.

edit flag offensive delete link more


Thank you very much, I did esactly that and it is very unstable (in altitude, I don't know why utm frame is gloiung some kilometres down the earth) and not very precise (map goes far from odom even when the robot is static). I think my problem are my GPS, I am using the GPS of a movile and a tablet.

manuzagra gravatar image manuzagra  ( 2015-10-02 04:55:09 -0500 )edit

Any chance you get record a bag file that just has your sensor data? In other words, don't run any nodes in robot_localization. It's a bit of a hassle to filter out all the topics, especially when there are a lot of input sources and transforms. Drive the robot around a bit too, if you can, please.

Tom Moore gravatar image Tom Moore  ( 2015-10-06 08:56:25 -0500 )edit

Question Tools



Asked: 2015-09-28 09:50:20 -0500

Seen: 1,886 times

Last updated: Oct 01 '15