# 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关闭终端,稍微移动小车后再重新输入建图指令。终端内报错信息如下: 建图Rviz2

代码运行成功后会打开rviz,这时在rviz中便会显示地图和雷达信息,红色箭头为小车的朝向。界面如图所示。 建图Rviz2

注意:若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文件的终端是当前选中的窗口,否则键盘控制程序无法识别键盘的按键。 建图轨迹Rviz

5.保存所构建的地图

再打开一个新的控制台终端,在命令行中输入以下指令,用来保存小车扫描完成的地图:

rosrun map_server map_saver

运行成功后终端显示如下:

地图文件

这里可以看到我们画了个红圈圈,只是地图保存后生成的两个文件,分别为 map.pgm 和 map.yaml。这两个文件默认会保存在家目录。在同一个终端内输入 cd 则会进入我们的家目录,再输入 ls 可以看到在家目录下生成的地图文件已经生成好了。

家目录地图文件

results matching ""

    No results matching ""