4.4.1 定位节点说明

功能包nav2_amcl中的核心节点为amcl。该节点相关信息如下。

1.订阅的话题

话题 接口 描述
/map /nav_msgs/msg/OccupancyGrid 地图数据
/scan /sensor_msgs/msg/LaserScan 激光雷达数据
/initialpose /geometry_msgs/msg/PoseWithCovarianceStamped 用来初始化粒子滤波器的均值和协方差
/tf /tf2_msgs/msg/TFMessage 坐标变换消息

2.发布的话题

话题 接口 描述
/amcl_pose /geometry_msgs/msg/PoseWithCovarianceStamped 机器人在地图中的位姿估计
/particle_cloud /nav2_msgs/msg/ParticleCloud 位姿估计集合,rviz中可以被 PoseArray 订阅然后图形化显示机器人的位姿估计集合
/tf /tf2_msgs/msg/TFMessage 发布从 odom 与 map 的转换

3.发布的服务

话题 接口 描述
/reinitialize_global_localization std_srvs/srv/Empty 在全局范围内初始化粒子位姿
/request_nomotion_update std_srvs/srv/Empty 在没有运动模型更新的情况下手动触发粒子群的更新

4.参数

通用参数
  • bond_disable_heartbeat_timeout: 设置为true时,禁用amcl节点与其他节点之间基于心跳的超时检测。这通常用于当节点之间的连接非常稳定,不需要频繁的心跳检测来确认连接状态时。

  • base_frame_id: 定义机器人基坐标系的ID,通常是base_link或类似的名称。

  • global_frame_id: 定义全局地图坐标系的ID,通常是map

  • odom_frame_id: 定义里程计坐标系的ID,通常是odom

  • tf_broadcast: 设置为true时,amcl节点会发布从里程计坐标系到全局地图坐标系的变换。

  • transform_tolerance: 设置TF变换的容忍度,用于处理TF树中的时间不一致性。

  • use_sim_time: 设置为true时,amcl将使用ROS 2的模拟时间(如果可用)。这在仿真环境中很有用。

激光模型参数
  • laser_model_type: 设置激光模型类型,likelihood_field是一种常用的模型,它考虑了激光束击中障碍物的概率。

  • laser_max_rangelaser_min_range: 分别设置激光雷达的最大和最小探测范围。

  • laser_likelihood_max_dist: 设置激光模型考虑的最大距离,超过这个距离的数据将被忽略。

  • do_beamskip和相关参数(beam_skip_distancebeam_skip_thresholdbeam_skip_error_threshold): 这些参数用于控制是否跳过某些激光束的处理,以减少计算量。然而,do_beamskip被设置为false,意味着不跳过任何激光束。

粒子滤波器参数
  • alpha1alpha5: 这些参数用于控制粒子滤波器中的权重更新过程,但它们的具体作用可能因amcl的实现而异。在标准的amcl实现中,这些参数可能不是直接使用的。

  • max_particlesmin_particles: 分别设置粒子滤波器的最大和最小粒子数。

  • resample_interval: 设置在重采样前需要的滤波更新次数。

  • pf_errpf_z: 这些参数用于控制粒子滤波器的性能,但它们的具体作用可能依赖于amcl的实现细节。

初始位姿参数
  • initial_pose: 定义了机器人的初始位姿(x, y, yaw, z),但在实际使用中,如果set_initial_pose被设置为true,则这个初始位姿可能会被通过服务请求设置的初始位姿所覆盖。

  • set_initial_pose: 设置为true时,允许通过服务请求来设置机器人的初始位姿。

  • always_reset_initial_pose: 设置为false时,表示不会在每个定位会话开始时自动重置初始位姿。

其他参数
  • first_map_only: 当设置为false时,表示amcl将订阅并处理不断更新的地图话题。

  • map_topic: 定义地图话题的名称,amcl将订阅这个话题以获取地图信息。

  • scan_topic: 定义激光雷达扫描数据话题的名称,amcl将订阅这个话题以获取用于定位的数据。

  • save_pose_rate: 设置保存机器人位姿的速率(以Hz为单位)。

  • recovery_alpha_fastrecovery_alpha_slow: 这些参数在标准的amcl实现中可能不是直接使用的,它们可能属于某个特定版本的amcl或扩展。

  • z_hitz_randz_shortz_maxsigma_hit: 这些参数定义了激光模型中的概率分布,用于计算激光束击中障碍物或随机位置的概率。

results matching ""

    No results matching ""