ROS2 SLAM(同时定位和地图绘制)

  SLAM(同时定位和地图绘制)是一种通过估计地图在任意空间中的当前位置来绘制地图的技术:它是TurtleBot的前代产品的众所周知的功能。cartographer是google推出的一套基于图优化的SLAM算法。cartographer算法的主要目标是实现低计算资源消耗,达到实时SLAM的目的。本例程以cartographer算法为例作说明。

1.运行SLAM节点

[TurtleBot3]

  1. Turtlebot3上打开一个终端
  2. 调出基本的软件包来启动其应用。
export TURTLEBOT3_MODEL=${TB3_MODEL}
ros2 launch turtlebot3_bringup robot.launch.py

:指定${TB3_MODEL}burgerwafflewaffle_pi命令之前。请参考文档TurtleBot3  MODEL的相应说明”设置机器人模型

[远程PC]

  1. 远程PC上打开一个新终端。
  2. 启动SLAM文件。
ros2 launch turtlebot3_cartographer cartographer.launch.py

  

2.运行远程操作节点

为了实现A映射的高级别准确性,您需要在给定位置手动重复几次SLAM。使用以下程序包(远程操作节点)进行手动操作。
请参阅映射过程的图片,其中显示了机器人如何使用SLAM绘制地图。

[远程PC]

  1. 远程PC上打开终端。
  2. 运行远程操作节点。
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.pgmmap.yaml,这是其中保存在目录map_saver运行。

[远程PC]

  1. 远程PC上打开一个新终端。
  2. 运行map_saver节点。
ros2 run nav2_map_server map_saver -f ~/map

  该-f选项是指文件夹和文件名,用于保存地图文件。如果~/map作为一个选项,map.pgm并且map.yaml将被保存在位于地图文件夹~/($ HOME目录:/home/<username>)。

posted @ 2020-04-04 15:50  kay880  阅读(2673)  评论(0编辑  收藏  举报