跳转至

地图构建

Hint

操作环境及软硬件配置如下:

  • OriginTank机器人
  • PC:Ubuntu (≥22.04) + ROS2 (≥humble)

启动底盘和雷达

SSH连接OriginTank成功后,在终端中输入如下指令,启动机器人底盘和激光雷达:

ros2 launch origintank_bringup origintank_bringup.launch.py use_lidar:=true use_imu:=true

image-20220822151007681

Hint

由于底盘启动后会自动记录odom数据,所以每次运行SLAM功能前,都需要重启一次底盘,否则可能会导致TF树变换出错。

启动SLAM

继续通过SSH连接OriginTank,在终端中输入如下指令,启动cartographer建图算法:

ros2 launch origintank_navigation cartographer.launch.py
2x_image

该功能已上线NodeHub,详细操作请见:Cartographer激光雷达SLAM

如果程序运行正常,终端中应该显示出类似如下画面

ture_image

上位机可视化显示

为了便于查看SLAM的完整过程,在同一网络下的PC端,启动上位机可视化软件:

ros2 launch origintank_viz display_slam.launch.py

即可看到此时已经创建出的地图。

image-20220928220241108

键盘控制建图

为了让机器人建立周边环境的完整信息,我们还需要启动一个键盘控制节点:

ros2 run teleop_twist_keyboard teleop_twist_keyboard
Hint

键盘控制节点在PC端或者OriginTank端运行均可。

现在,我们就可以在键盘控制的终端中,点击键盘的上下左右键,控制机器人探索未知的环境啦,Rviz中会逐渐出现地图的全貌。

e646ac75c6

保存地图

建图完成后,可以使用如下指令来保存地图:

ros2 run nav2_map_server map_saver_cli -f my_map --ros-args -p save_map_timeout:=10000.0
Info

以上指令会将地图保存到终端的当前路径下,在后续导航使用前,需要拷贝到origintank_navigation功能包中。

图片1