# 软件介绍

## 完整视频

以下为完整介绍视频，包含全部文档内容。

<video width="860" height="485" controls>
  <source src="http://video.autolabor.com.cn/M2/m2-full-instructions.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>

## 功能简介

<video width="860" height="485" controls>
  <source src="http://video.autolabor.com.cn/M2/m2-function-introduction.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>

### 启动入口

Autolabor M2软件的所有功能启动入口都在桌面的相应文件夹内

包括

1. 2D SLAM
2. 3D SLAM
3. RTK 寻迹
4. 硬件测试

### 2D SLAM 过程

#### 启动

点击桌面图标 SLAM 建图导航->2D->开始建图

#### 建图过程

使用配套的控制手柄控制机器人平台移动，覆盖空间中的待建图区域。

使用手柄时，注意手柄已经正确连接，并且解除了底盘急停状态，详情可参考手柄使用说明。

建图过程中，注意控制移动速度，应不高于手柄二挡，并且尽量走S形路线覆盖建图区域。

建图的质量将直接影响后续定位和导航的效果，如建图质量不佳可重新进行。

SLAM算法适用于周围有明显特征的人造环境（室内），例如有平整的墙面，直角特征。

不适用于琐碎复杂的环境，例如有较多桌腿或凳子腿，窗帘捶地，有较多植物。

#### 保存

建图完成后点击 SLAM建图导航->2D->保存并停止建图，然后等待rviz窗口退出，即保存完成。

构建好的地图将保存在 /home/autolabor/catkin_ws/src/applications/autolabor/m2/2dslam_cartographer/data 路径下

文件名为 map.pbstream.

### 3D SLAM 过程

#### 启动

点击桌面图标 SLAM 建图导航->3D->开始建图

#### 建图过程

使用配套的控制手柄控制机器人平台移动，覆盖空间中的待建图区域。

使用手柄时，注意手柄已经正确连接，并且解除了底盘急停状态，详情可参考手柄使用说明。

建图过程中，注意控制移动速度，应不高于手柄二挡，并且尽量走S形路线覆盖建图区域。

建图的质量将直接影响后续定位和导航的效果，如建图质量不佳可重新进行。

SLAM算法适用于周围有明显特征的人造环境（室内），例如有平整的墙面，直角特征。

不适用于琐碎复杂的环境，例如有较多桌腿或凳子腿，窗帘捶地，有较多植物。

#### 保存

建图完成后点击 SLAM建图导航->3D->保存并停止建图，然后等待rviz窗口退出，即保存完成。

构建好的地图将保存在 /home/autolabor/catkin_ws/src/applications/autolabor/m2/3dslam_cartographer/data 路径下

文件名为 map.pbstream.

### RTK 寻迹

#### 配置千寻账号

RTK寻迹功能在使用前需配置千寻账号和4G网卡，确保机器人平台可以连接互联网。

打开 /home/autolabor/catkin_ws/src/applications/autolabor/m2/rtktracking_mpc/rtktracking_mpc.launch 文件

编辑 al_rtk_ros_driver 节点中的 account 和 password 属性,替换成您自己的千寻账号和密码。

![image-20240627100358442](imgs/software/image-20240627100358442.png)

#### 4G网络

准备与Linux 兼容的USB 4G网卡和4G SIM 卡，插入主机USB接口，确认互联网连接正常即可。

可使用系统附带的浏览器访问互联网网站测试。

主要注意，由于主机以太网网口已经被多线激光雷达占用，并将默认路由指向了以太网网口。如果4G网卡在系统启动前插入USB口可能造成无法连接互联网。

可通过拔掉4G网卡再插入的方式解决。

通过WIFI连接互联网同理，如遇到无法连接互联网的情况，可通过关闭WIFI再重新打开解决。

## 文件的组织形式

<video width="860" height="485" controls>
  <source src="http://video.autolabor.com.cn/M2/m2-file-organization.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>

### 工作空间

Autolabor M2 套件的ROS工作空间位于 /home/autolabor/catkin_ws 目录下

![image-20240627103707291](imgs/software/image-20240627103707291.png)

包含所有ros软件包的源代码、launch文件、算法配置文件和urdf文件。

其中软件包位于 catkin_ws/src/ 路径下

启动launch文件和配置文件位于 catkin_ws/src/applications/autolabor/m2 路径下

### 软件包

1. driver 包含所有硬件驱动程序
2. mapping 包含用于2D/3D SLAM建图的cartographer 算法包
3. navigation 包含 move base 全局路径规划器、MPC 局部路径规划器、TEB局部路径规划器、Autolabor粒子滤波、Autolabor寻迹

### 配置文件

M2 的所有配置文件位于 catkin_ws/src/applications/autolabor 目录下，此目录下内容不建议修改，如需修改可通过派生修改的方式

![image-20240627104617412](imgs/software/image-20240627104617412.png)

1. 2dslam_cartographer 2d cartographer 建图和定位的启动文件和配置
2. 3dslam_cartographer 3d cartographer 建图和定位的启动文件和配置
3. rtktracking_mpc 北斗RTK寻迹导航的启动文件和配置
4. base_launch 底盘驱动launch文件
5. urdf 机器人描述文件
6. test 硬件测试
7. desktop 桌面快捷方式

对于1、2、3 的子目录

config 保存所有配置文件

data 保存用户数据，例如地图，RTK展开点坐标

## 自定义配置

<video width="860" height="485" controls>
  <source src="http://video.autolabor.com.cn/M2/m2-custom-configuration.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>

当您需要修改配置或者组织自己launch文件时，我们建议您不要修改 applications/autolabor 目录下的内容，

而是在 applications 目录下创建一个自定义的目录，并创建包文件(package.xml 和 CMakelist.txt).
将autolabor/m2下您需要对应的功能目录复制到您自定义目录下，修改编译。

具体步骤如下

1. 在 applications 目录下创建自定义目录 custom (名字可按照您需求修改)
2. 复制 applications/autolabor/m2 目录下 CMakeLists.txt 和 package.xml 文件到custom目录下
3. 使用文本编辑器打开 CMakelists.txt ，修改 project(m2) 为 project(custom) ， 需要与目录名一致
4. 使用文本编辑器打开 package.xml， 修改 <name>m2</name> 为 <name>custom</name>
5. 复制您需要的功能目录到custom 目录，例如 2dslam_cartographer
6. 使用终端进入到custom包所在目录 cd ~/catkin_ws/src/applications/custom
7. 编译 catkin build --this
8. source 环境变量 source ~/catkin_ws/devel/setup.bash

这样您可以在自定义包中修改launch文件和配置文件。而不会影响官方文件，当您的配置出现故障时可重复以上步骤恢复。

## 配置文件介绍

<video width="860" height="485" controls>
  <source src="http://video.autolabor.com.cn/M2/m2-configuration-introduction.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>

### 2D SLAM

2dslam_cartographer 目录下

create_map_start.sh 建图启动脚本

create_map_stop.sh 停止并保存地图脚本

navigation_start.sh 导航脚本

navigation_stop.sh 停止导航脚本

2dslam_cartographer_mapping.launch 建图启动launch文件

2dslam_cartographer_navigation.launch 导航启动文件

config 目录下包含cartographer 建图/定位的配置文件，以及move base 全局路径规划器，局部路径规划器配置文件。

data 目录保存用户构建的地图文件，文件名为 map.pbstream

### 3D SLAM

3dslam 的文件结构与2dslam完全相同

### RTK寻迹

rtktracking_mpc 文件夹下保存rtk寻迹功能所需的launch文件和配置

rtktracking_mpc_start.sh rtk寻迹启动脚本

rtktracking_mpc_stop.sh rtk寻迹停止脚本

rtktracking_mpc.launch 启动launch

config 目录包含 move base 全局路径规划器，局部路径规划器配置文件

data 目录保存WGS84到平面直角坐标系展开点配置文件

## 硬件测试

<video width="860" height="485" controls>
  <source src="http://video.autolabor.com.cn/M2/m2-hardware-testing.mp4" type="video/mp4">
  您的浏览器不支持 video 标签。
</video>


硬件测试启动入口位于桌面硬件测试目录下，点击对应的图标即可启动

针对m2套件包含

1. 2D激光雷达测试
2. 3D激光雷达测试
3. IMU测试
4. 底盘遥控测试
5. RTK测试 （需配置千寻账号，4G网卡，室外环境）

M2套件不支持PICO深度相机测试





