ROS2 SLAM(同时定位和地图绘制)
SLAM(同时定位和地图绘制)是一种通过估计地图在任意空间中的当前位置来绘制地图的技术:它是TurtleBot的前代产品的众所周知的功能。cartographer是google推出的一套基于图优化的SLAM算法。cartographer算法的主要目标是实现低计算资源消耗,达到实时SLAM的目的。本例程以cartographer算法为例作说明。
1.运行SLAM节点
[TurtleBot3]
- 在Turtlebot3上打开一个终端。
- 调出基本的软件包来启动其应用。
export TURTLEBOT3_MODEL=${TB3_MODEL} ros2 launch turtlebot3_bringup robot.launch.py
注:指定${TB3_MODEL}
:burger
,waffle
,waffle_pi
命令之前。请参考文档“ TurtleBot3 MODEL的相应说明”来设置机器人模型。
[远程PC]
- 在远程PC上打开一个新终端。
- 启动SLAM文件。
ros2 launch turtlebot3_cartographer cartographer.launch.py
2.运行远程操作节点
为了实现A映射的高级别准确性,您需要在给定位置手动重复几次SLAM。使用以下程序包(远程操作节点)进行手动操作。
请参阅映射过程的图片,其中显示了机器人如何使用SLAM绘制地图。
[远程PC]
- 在远程PC上打开终端。
- 运行远程操作节点。
export TURTLEBOT3_MODEL=${TB3_MODEL} ros2 run turtlebot3_teleop teleop_keyboard
使用键盘控制器
Control Your TurtleBot3! --------------------------- Moving around: w a s d x w/x : increase/decrease linear velocity a/d : increase/decrease angular velocity space key, s : force stop CTRL-C to quit
3.保存地图
使用map_saver节点通过SLAM保存绘制的地图。
该地图由机器人收集的数据绘制:里程表,tf和传感器的扫描信息,您可以使用RViz进行监视。
映射文件默认的名称map.pgm
,map.yaml
,这是其中保存在目录map_saver运行。
[远程PC]
- 在远程PC上打开一个新终端。
- 运行map_saver节点。
ros2 run nav2_map_server map_saver -f ~/map
该-f
选项是指文件夹和文件名,用于保存地图文件。如果~/map
作为一个选项,map.pgm
并且map.yaml
将被保存在位于地图文件夹~/
($ HOME目录:/home/<username>
)。
作者:kay 出处:https://www.cnblogs.com/kay2018/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |