第三章 如何在环境中给机器人定位
序言
本章包括:
机器人定位的意义(即需要知道它对于环境中的位置和方向)
如何在ROS2中用AMCL定位
如何设置机器人的初始位置(手动、自动与使用ROS API)
如何global localization
什么是AMCL
ROS有鲁棒性极强的定位算法AMCL(自适应蒙特卡洛定位),这是一个二维机器人的概率定位系统。
它实现了自适应蒙特卡洛定位方法,该方法使用粒子过滤器根据已知地图跟踪机器人的姿态。
当某人发布/map帧和/odom帧之间的转换时,ROS机器人被定位
这意味着机器人的/odom知道其相对于/map的相对位置,因此机器人知道它在地图上的位置,因为它的/base_link直接连接到/odom。
当一切正确,AMCL将发布该转换。现在学习如何配置AMCL以发布该转换。
如何在ROS2中定位
需要三个节点 map_server提供地图。localization提供算法。和上一章提到的life cycle manager管理各个节点的生命周期。
1、启动map_server节点
以下字段是你需要为你的包提供的启动节点的字段
map_server节点由nav2_map_server提供
所需要的参数 use_sim_time(true)和yaml_filename(都是上一章提到过的)
package='nav2_map_server',
executable='map_server',
name='map_server',
output='screen',
parameters=[{'use_sim_time': True},
{'yaml_filename':map_file}
]),
2、启动amcl节点
需要以下字段:
amcl节点由nav2_amcl包提供
可执行文件名amcl,需要的参数是yaml文件包含所有配置参数。
package='nav2_amcl',
executable='amcl',
name='amcl',
output='screen',
parameters=[nav2_yaml]
3、启动lifecycle_manager节点
由nav2_lifecycle_manager提供
可执行文件叫做lifecycle_manager
参数:use_sim_time. autostart. node_name(同上一章)
练习 3.1
建立一个launch文件能够在你上一节建立的地图上启动定位系统
1、创建一个叫做localization_server的包
2、创建config和launch路径
3、在launch路径内建立一个叫localization.launch.py的文件能够启动之前提到的三个节点
4、在config路径内建立一个叫amcl_config.yaml的yaml文件,文件内容如下
后来经过实际测试,yaml文件按照下面写会报错,原因如下
Description
The fully-qualified type of the plugin class. Options are “nav2_amcl::DifferentialMotionModel” and “nav2_amcl::OmniMotionModel”. Users can also provide their own custom motion model plugin type.
Note for users of galactic and earlier
The models are selectable by string key (valid options: “differential”, “omnidirectional”) rather than plugins.
amcl:
ros__parameters:
use_sim_time: True
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
alpha4: 0.2
alpha5: 0.2
base_frame_id: "base_footprint"
beam_skip_distance: 0.5
beam_skip_error_threshold: 0.9
beam_skip_threshold: 0.3
do_beamskip: false
global_frame_id: "map"
lambda_short: 0.1
laser_likelihood_max_dist: 2.0
laser_max_range: 100.0
laser_min_range: -1.0
laser_model_type: "likelihood_field"
max_beams: 60
max_particles: 8000
min_particles: 200
odom_frame_id: "odom"
pf_err: 0.05
pf_z: 0.99
recovery_alpha_fast: 0.0
recovery_alpha_sl

最低0.47元/天 解锁文章
3782

被折叠的 条评论
为什么被折叠?



