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

Revision history [back]

click to hide/show revision 1
initial version

My guess is that you are using AMCL pkg for your particle filtered localization? If so, the tf tree contains transformation from map->base_link is exactly what you should expect. You can find more details in #q229978.

My guess is that you are using AMCL pkg for your particle filtered localization? If so, the tf tree contains transformation from map->base_link is exactly what you should expect. You can find more details in #q229978.

EDIT1 to answer your comments

it seems like a lot is happening just to get the map->odom transform

This is correct. According to AMCL wiki: "During operation amcl estimates the transformation of the base frame (~base_frame_id) in respect to the global frame (~global_frame_id) but it only publishes the transform between the global frame and the odometry frame (~odom_frame_id).". This means amcl will correct the pose of base_link by adjusting map->odom transform.

is the map->odom->base transform something we can just use the tf robot_state_publisher package for

Maybe you are talking about robot_pose_ekf ?

My guess is that you are using AMCL pkg for your particle filtered localization? If so, the tf tree contains transformation from map->base_link is exactly what you should expect. You can find more details in #q229978.

EDIT1 to answer your comments

it seems like a lot is happening just to get the map->odom transform

This is correct. According to AMCL wiki: "During operation amcl estimates the transformation of the base frame (~base_frame_id) in respect to the global frame (~global_frame_id) but it only publishes the transform between the global frame and the odometry frame (~odom_frame_id).". This means amcl will correct the pose of base_link by adjusting map->odom transform. I took a closer look at AMCL and figured that my previous answer was wrong. I edited it. So back to your original question, could you edit your question by specifying you robot's setup?

is the map->odom->base transform something we can just use the tf robot_state_publisher package for

Maybe you are talking about robot_pose_ekf ?

My guess is that you are using AMCL pkg for your particle filtered localization?

EDIT1 to answer your comments

it seems like a lot is happening just to get the map->odom transform

This is correct. According to AMCL wiki: "During operation amcl estimates the transformation of the base frame (~base_frame_id) in respect to the global frame (~global_frame_id) but it only publishes the transform between the global frame and the odometry frame (~odom_frame_id).". This means amcl will correct the pose of base_link by adjusting map->odom transform. I took a closer look at AMCL and figured that my previous answer was wrong. I edited it. So back to your original question, could you edit your question by specifying you robot's setup?

is the map->odom->base transform something we can just use the tf robot_state_publisher package for

Maybe you are talking about robot_pose_ekf ?

EDIT2 answer to your new comments

@trixr4kdz sorry for the late reply, I have been caught up with my project for the last couple days.

a way we can also get the map->odom without having to do the same thing amcl is doing

Certainly, you could, but if you ask whether there is an available package then I don't know. IMO, there are 2 options: 1) consider open source your custom particle filer so everybody can have a look at what is going on. Without knowing what you are doing (for example: why your customer particle filter publishes map->base_link), it's really hard to help. 2) re-implement the part of AMCL that publish map->odom (from #L1351 to #L1418). This shouldn't be too hard (I know it is NOT easy) since you must have the whole transform: map->odom->base_link->laser_scan from you particle filter.

My guess is that you are using AMCL pkg for your particle filtered localization?

EDIT1 to answer your comments

it seems like a lot is happening just to get the map->odom transform

This is correct. According to AMCL wiki: "During operation amcl estimates the transformation of the base frame (~base_frame_id) in respect to the global frame (~global_frame_id) but it only publishes the transform between the global frame and the odometry frame (~odom_frame_id).". This means amcl will correct the pose of base_link by adjusting map->odom transform. I took a closer look at AMCL and figured that my previous answer was wrong. I edited it. So back to your original question, could you edit your question by specifying you robot's setup?

is the map->odom->base transform something we can just use the tf robot_state_publisher package for

Maybe you are talking about robot_pose_ekf ?

EDIT2 answer to your new comments

@trixr4kdz sorry for the late reply, I have been caught up with my project for the last couple days.

a way we can also get the map->odom without having to do the same thing amcl is doing

Certainly, you could, but if you ask whether there is an available package then I don't know. IMO, there are 2 options: options:

1) consider open source your custom particle filer so everybody can have a look at what is going on. Without knowing what you are doing (for example: why your customer particle filter publishes map->base_link), it's really hard to help. help.

2) re-implement the part of AMCL that publish map->odom (from #L1351 to #L1418). This shouldn't be too hard (I know it is NOT easy) since you must have the whole transform: map->odom->base_link->laser_scan from you particle filter.