# myAGV-cartographer实时建图
1.打开slam激光扫描launch文件
打开小车后,打开控制台终端(快捷键Ctrl+Alt+T),在命令行中输入以下指令:
cd myagv_ros
roslaunch myagv_odometry myagv_active.launch
注意:在开启launch文件之前,请先将小车放置在需要建图环境中的一个合适起始点位上,因为开启launch文件将会开启小车的IMU传感器及odom里程计,人为的移动小车将造成小车建图失真。
打开小车slam激光扫描所需的launch文件,若显示
Now YDLIDAR is scanning ......
则说明小车雷达文件打开成功,终端内显示状态如下:
2.打开cartographer建图launch文件
重新打开一个控制台终端,在命令行中输入以下指令:
roslaunch cartographer_ros demo_myagv.launch
打开小车cartographer建图所需的launch文件,若终端内不断滚动输出数据,则表示小车cartographer建图文件成功打开,终端内显示状态如下: 如果终端内报错,使用快捷键Ctrl+C关闭终端,稍微移动小车后再重新输入建图指令。终端内报错信息如下:
代码运行成功后会打开rviz,这时在rviz中便会显示地图和雷达信息,红色箭头为小车的朝向。界面如图所示。
注意:若Rviz仿真无法打开,可以查看 demo_myagv.launch 文件的倒数2-4行是否被注释,该文件的目录为/home/ubuntu/google_ws/src/cartographer_ros/cartographer_ros/launch/。若被注释只需要取消注释即可打开。
3.打开键盘控制文件
重新打开一个控制台终端,在终端命令行中输入:
cd myagv_ros
roslaunch myagv_teleop myagv_teleop.launch
方向键: 按键 | 方向 -------- | ----- i | 前进 , | 后退 j | 向左运动 l | 向右运动 u|逆时针旋转 o|顺时针旋转 k|停止
4.开始建图
现在小车可以在键盘的控制下开始移动了,操控小车在所需建图的空间内转一圈吧。与此同时,可以看到在Rviz空间里我们的地图也会跟着小车的移动一点点的把地图构建出来了。 注意:在用键盘操作小车的时候,确保运行myagv_teleop.launch文件的终端是当前选中的窗口,否则键盘控制程序无法识别键盘的按键。
5.保存所构建的地图
再打开一个新的控制台终端,在命令行中输入以下指令,用来保存小车扫描完成的地图:
rosrun map_server map_saver
运行成功后终端显示如下:
这里可以看到我们画了个红圈圈,只是地图保存后生成的两个文件,分别为 map.pgm 和 map.yaml。这两个文件默认会保存在家目录。在同一个终端内输入 cd 则会进入我们的家目录,再输入 ls 可以看到在家目录下生成的地图文件已经生成好了。