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


asked 2015-01-14 13:15:49 -0500

updated 2015-01-21 09:28:28 -0500

I've seen the package has changed a lot since I used it the last time.

I have a doubt: Is it correct the structure shown in the picture (with two map frames)?

image description

edit retag flag offensive close merge delete


Did you post an image? I don't see one. Sorry, I don't currently have a laptop with me and am viewing this on a mobile phone.

Tom Moore gravatar image Tom Moore  ( 2015-01-16 06:22:06 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-01-16 07:04:55 -0500

Tom Moore gravatar image

updated 2015-01-27 10:00:19 -0500

I still don't see a picture, but there are three coordinate frames, all of which are specified by REP-105. See the description of the frame parameters here.

EDIT: Just so I understand, are you trying to use AMCL and a GPS?

EDIT 2: Not sure how you're planning to combine AMCL and the GPS-enabled instance of ekf_localization_node, but here is how the data is meant to flow, at least as far as robot_localization is concerned:

image description

Your launch files for your two instances of ekf_localization_node should be very similar, except in the second one, you'll have your world_frame set to map instead of odom, and you'll have a new input source (the GPS odometry coming from navsat_transform_node).

EDIT in response to comment below: No, that's not what I meant, sorry. First, I'm guessing that amcl should receive the output of your odom instance of ekf_localization_node, not the map instance. Second, if you look at my drawing, you'll see a difference in the way the sensor data is being used. In your drawing, you are only feeding the raw odometry and IMU to one instance of ekf_localization_node. In my drawing, both instances work with the raw data. Don't feed the output of ekf_localization_node's odom instance into the map instance.

EDIT in response to comment: Yeah, I'm aware that reparenting would be an issue. I'm advocating that he drop the GPS instance of ekf_localization_node. amcl's handling of transforms (compute map->base_link, listen for odom->base_link, use that to compute and publish map->odom) is identical to that of robot_localization's state estimation nodes when world_frame == map_frame.

In any case, the setup should work as-is (provided the sensor data is fed into the map1 instance of ekf_localization_node), yes. However, I don't know if there are any implications within amcl if the map1->base_link transform has any discontinuities. Perhaps there are none.

edit flag offensive delete link more


I Know it. Maybe you can see the picture with its link

arenillas gravatar image arenillas  ( 2015-01-16 10:36:23 -0500 )edit

I have changed the image. I am trying to do exactly what you've said, but the amcl from ros uses the out put of ekf to work. Because of that I have draw the diagram in the question

arenillas gravatar image arenillas  ( 2015-01-21 09:30:20 -0500 )edit

Actually, AMCL computes the localization on base_link, and then publishes the transformation between that localization (in the frame global_frame_id) and wathever frame is passed as odom_frame_id. I guess that using /map1 as odom_frame_id is correct, otherwise /odom would have two parents.

IvanV gravatar image IvanV  ( 2015-01-27 02:57:48 -0500 )edit

Question Tools



Asked: 2015-01-14 13:15:49 -0500

Seen: 1,362 times

Last updated: Jan 27 '15