导航通常需要地图和自定位,一个是全局感,一个是自我认知。

  • Map
  • AMCL


Map

地图服务器

  • Map Server

地图服务器

  • nav2_map_server
  • map_server:加载地图,在“/map”主题上提供静态地图。
  • map_saver:将地图保存到文件中(ros2 run nav2_map_server map_saver_cli -f my_map

第 1 步:创建一个名为 yaml 的参数文件或在启动文件中设置相同的参数

# map_server_params.yaml
map_server:ros__parameters:frame_id: maptopic_name: mapuse_sim_time: falseyaml_filename: maps/map.yaml

第 2 步:使用作为参数传递的此文件运行地图服务器

ros2 run nav2_map_server map_server --ros-args --params-file map_server_params.yaml

第 3 步:通过 CLI 或启动过滤器从配置过渡到活动

ros2 lifecycle set /map_server configure
ros2 lifecycle set /map_server activate
(ros2 lifecycle list /map_server)

示例 maps/map.yaml:

image: turtlebot3_world.pgm
resolution: 0.050000
origin: [-10.000000, -10.000000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

resolution : 地图的分辨率,米/像素
origin : 地图中左下角像素的二维位置姿态,如 (x, y, yaw)
occupied_thresh : 占用概率大于此阈值的像素被认为完全被占用。
free_thresh :占用概率小于此阈值的像素被认为是完全空闲的。
negate : 是否应该反转

更多内容参考官网。

map_server:ros__parameters:use_sim_time: Falseyaml_filename: "turtlebot3_world.yaml"map_saver:ros__parameters:use_sim_time: Falsesave_map_timeout: 5000free_thresh_default: 0.25occupied_thresh_default: 0.65

AMCL

  • Adaptative Monte Carlo Localization
  • 自适应蒙特卡罗定位

订阅:

  • 激光扫描:/scan (sensor_msgs/LaserScan)
  • (监听)将 odom 转换为 base_link
  • 初始姿势:/initialpose (geometry_msgs/PoseWithCovarianceStamped)
  • 地图:/map(nav_msgs/OccupancyGrid)

发布:

  • 机器人在地图中的估计位置姿态,协方差:
  • /amcl_pose (geometry_msgs/PoseWithCovarianceStamped)
  • 过滤器维护的姿态估计:/particlecloud (geometry_msgs/PoseArray)
  • (广播)变换地图到odom

配置包含许多参数(Wiki)。 一些重要的设置:

  • ~robot_model_type (string, default: ”differential”)
  • ~odom_frame_id (string, default: ”odom”)
  • ~base_frame_id (string, default: ”base_link”)
  • ~global_frame_id (string, default: ”map”)
  • ~scan_topic (string, default: ”scan ”)
  • ~min_particles (int, default: 100)
  • ~max_particles (int, default: 5000)

turtlebot3-burger

amcl参数

amcl:ros__parameters:use_sim_time: Falsealpha1: 0.2alpha2: 0.2alpha3: 0.2alpha4: 0.2alpha5: 0.2base_frame_id: "base_footprint"beam_skip_distance: 0.5beam_skip_error_threshold: 0.9beam_skip_threshold: 0.3do_beamskip: falseglobal_frame_id: "map"lambda_short: 0.1laser_likelihood_max_dist: 2.0laser_max_range: 100.0laser_min_range: -1.0laser_model_type: "likelihood_field"max_beams: 60max_particles: 2000min_particles: 500odom_frame_id: "odom"pf_err: 0.05pf_z: 0.99recovery_alpha_fast: 0.0recovery_alpha_slow: 0.0resample_interval: 1robot_model_type: "differential"save_pose_rate: 0.5sigma_hit: 0.2tf_broadcast: truetransform_tolerance: 1.0update_min_a: 0.2update_min_d: 0.25z_hit: 0.5z_max: 0.05z_rand: 0.5z_short: 0.05amcl_map_client:ros__parameters:use_sim_time: Falseamcl_rclcpp_node:ros__parameters:use_sim_time: False

ROS2极简总结-Nav2-地图和自适应蒙特卡洛定位相关推荐

  1. ROS2极简总结-Nav2-行为树

    ROS2极简总结专题,其实主要是概念的讲解为主,不涉及程序等,之前没有更新完成,此时继续.参考文献: Navigation using ROS 2  Navigation 导航首先需要目标,然后计算出 ...

  2. 好看的极简网站导航源码自适应静态页

    简介: 极简的网站导航源码自适应静态页,直接修改源码里的 index.js 即可! 网盘下载地址: http://kekewl.net/mwjkiWK49a00 图片:

  3. ROS2极简总结-新增概念

    参考文献:ROS2 EXTENDED CONCEPTS 在前2篇博文中总结了ROS2的基本概念,这些内容大致与ROS1类似或改进,属于ROS2/ROS1的核心概念.本节侧重ROS2扩展的新内容. 既然 ...

  4. ROS2极简总结-SLAM

    参考文献:Navigation using ROS 2 Mapping SLAM - Simultaneous Localization And Mapping 同步定位和建图 机器人仿真或实际运动环 ...

  5. ROS2极简总结-Nav2-概述(中)控制器

    上一节,主要介绍导航功能包Nav2的规划部分,本节为控制部分: 控制器概述  Controller 注意黄色部分,具体看下图. 插件 Plugins 控制器 过程检查 目标检查 控制器服务器 Cont ...

  6. ROS2极简总结-文件系统

    参考文献:ROS2 Filesystem 概述 什么是功能包? 工作空间结构如何? 如何新建工作空间和功能包? 功能包 ROS2 软件称为功能包. ROS2 中最小的构建部件. 专用于一种功能,例如 ...

  7. ROS2极简总结-坐标变换-TF

    参考: TF2 - TRANSFORMS IN ROS2 ROS机器人TF基础(坐标相关概念和实践) TF2 - 概述 TF2 是 TF (TransForm) 库的第二代. 事实上,ROS1 中的 ...

  8. 《动手学ROS2》10.7 Nav2导航框架介绍与安装

    <动手学ROS2>10.7 Nav2导航框架介绍与安装 本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版 ...

  9. 新鲜出炉的React博客系统源码,极简主义设计,手机端可自适应,超级简单,带部署文档与演示视频加截图

    新鲜出炉的React博客系统源码,极简主义设计,手机端可自适应,超级简单,带部署文档与演示视频加截图. 使用技术: 客户端前端:Next.js + React 管理端前端:React + Ant De ...

最新文章

  1. 【收藏】误删idea 的.iml文件后的处理方法
  2. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_数据质量监测
  3. 如何跨项目工作空间访问MaxCompute资源和函数?
  4. 加两句代码让你的VC界面透明起来
  5. 电商android studio,谷歌 Android Studio 4.0 Beta 5 发布
  6. Android DataBinding 从入门到进阶
  7. MySQL 按照拼音给中文字段排序
  8. python的输出语句
  9. 密码学系列 - 双线性对
  10. Qt4开发的IP地址切换器
  11. fft算法的c语言实现,快速傅立叶变换(FFT)算法(蝶形算法)的C/C++源代码(zz)
  12. WPS2019中论文数学公式居中,编号右对齐如何操作
  13. 图片复印如何去除黑底_如何将扫描后的图片底色去掉
  14. 如何获取win10安装驱动
  15. 360随身Wifi怎么使用
  16. vs2008 在 win7 64位安装问题 office 2003 office 2007兼容问题
  17. 【离散数学】单射、满射、双射、映射的合成与逆映射
  18. 最喜欢的一款星光和光晕ps笔刷
  19. 水下航行器简介及水下面临的挑战
  20. IE10、IE11中WebSocket报错:SecurityError

热门文章

  1. 学堂在线疾风计划程序设计基础第1-4章
  2. 二叉树广度优先搜索、深度优先搜索(前序、中序、后序)遍历,动图详解-Java/Kotlin双版本代码
  3. dubbo之Filter监控拦截
  4. JHipster微服务之间的调用以及权限验证
  5. Java 最常见的 200+ 面试题汇总 ,大厂不再是梦
  6. Shiro安全(四):Shiro权限绕过之Shiro-782
  7. 千锋教育实训day04————java
  8. [学习] 09 一小时读100页的快速阅读法
  9. 他:男人最渴望拥有的十类妻子(zt)
  10. 前端图片在线压缩的网站