参考
ROS与navigation教程-fake_localization
( 1 ) Subscribed Topics
topic (/base_pose_ground_truth) 是这个fake_localization最主要的输入, 一般将其/base_pose_ground_truth修改为/odom, 内容一般为(odom -> base_footprint的一个坐标系变换)
base_pose_ground_truth ([nav_msgs/Odometry])
仿真器发布的机器人位置信息。
initialpose ([geometry_msgs/PoseWithCovarianceStamped])
允许使用像rviz或nav_view这样的工具来设置fake_localization的自定义位姿。
( 2 ) Published Topics
amcl_pose: global_frame_id_下的位姿信息
particlecloud: 内容完全和/amcl_pose一致
amcl_pose ([geometry_msgs/PoseWithCovarianceStamped])
通过仿真器报告的位姿。
particlecloud ([geometry_msgs/PoseArray])
在rviz和nav_view中使用,来可视化机器人位姿的粒子云。
( 3 ) Parameters
- 之后发布的位姿变换中 ‘里程计坐标系的名称’ 可以修改为其他值;
- delta_x, delta_y, delta_yaw可以指定map->odom之间的位姿态变换, 当然也可以通过topic (/initialpose) 进行修改;
~odom_frame_id (string, default: “odom”)
里程计坐标系名字。
~delta_x (double, default: 0.0)
地图坐标系与仿真器坐标系原点在x轴方向的偏移。
~delta_y (double, default: 0.0)
地图坐标系与仿真器坐标系原点在y轴方向的偏移。
~delta_yaw (double, default: 0.0)
地图坐标系与仿真器坐标系原点在yaw偏航角的偏移。
- 坐标系名称的设置
~global_frame_id (string, default: /map)
指定使用tf发布global_frame_id→odom_frame_id转换的坐标系。
~base_frame_id (string, default: base_link)
机器人基座坐标系。 New in 1.1.3
参数地设置与修改可以通过launch文件进行操作
<node pkg="fake_localization" type="fake_localization" name="fake_localization" clear_params="true" output="screen">
<remap from="base_pose_ground_truth" to="odom" />
<param name="global_frame_id" value="map" />
<param name="base_frame_id" value="base_footprint" />
</node>
( 4 ) Provided tf Transforms
/map < value of odom_frame_id parameter>
最终,fake_localization发布一个tf变换(说明map->odom的变换),如下图所示