# 室内套件（二代）使用教程

#### 准备工作：
1. AP1 室内套件（2代）
2. 成套键鼠

## 操作步骤

### 一、连接键鼠
鼠标键盘建议使用普通成套的无线键鼠，避免有线和无线混合使用。

### 二、启动系统
打开电源，打开工控机，等待Autolabor OS系统启动，输入密码autolabor，字母全部是小写，回车。

### 三、SLAM建图导航


#### 准备工作：
1. 将AP1控制模式切换到上位机控制，打开急停开关，确保急停开关没有被按下
2. 禁用工控机无线功能
  在建图过程中，如果工控机连接了无线网络，当AP1走出无线网络的覆盖区域后，网络连接会自动断开，这将导致AP1控制失控，所以在开始建图之前，为了避免失控，需要将工控机的无线网络连接关闭。
3. 进入桌面【SLAM建图导航】文件夹

#### 1. 点击【开始建图】
RVIZ工具打开，能够看到地图中的AP1，使用键盘的上下左右控制AP1行走，边走边建图，可以看到环境地图随着AP1的行走不断被构建更新。

地图中，红色是前置激光雷达实时数据，黄色是后置激光雷达实时数据，颜色从白至黑为障碍物的几率是0%~100%。

#### 2. 建图完毕，点击【保存并停止建图】

#### 3. 点击【开始导航】

此时，RVIZ工具打开，已经建好的地图会自动加载。

注意：一定要成功完成建图后，才能进行导航，否则会找不到地图文件而报错。

##### 初始化位置
使用键盘，控制机器人行走一段距离，当激光雷达的数据与实时的环境匹配成功时，即为找到自己在地图中的初始位置，如果将机器人放置在建图的出发点，会能够帮助机器人加速初始化位置，但此步骤不是必须的。

##### 关闭键盘控制
初始化完成后，接下来这一步请一定不要忘记，按键盘数字键【0】关闭键盘控制功能，控制方式将切换至导航程序控制，如不切换机器人接收到目标点命令后将不会自动导航行走。

##### 给定目标点
点击2D Nav Goal，指定目标位置，拉动鼠标，箭头方向是最终车辆运行至目标的车头朝向，鼠标松开，这样就完成了目标点的指定。

目标点给定后在地图中我们能看到一条线，这是规划好的路径。根据这个规划好的路径，AP1向目标点行走。

当AP1已经到达目标点后，再一次使用2D Pose Estimate指定初始位置，设置目标位置，AP1将去到下一个目标点。


四、点击【终止导航】，停止导航功能，导航结束。
之后在同一环境中需要再次使用导航功能时，无须重复建图，点击【开始导航】即可。


#### 常见问题：

##### 建图篇

1. 键盘控制AP1行走时，AP1动作异常，动一下停一下
可调整显示器的位置，保持接收器不被遮挡，并调整自己的位置，使接收器可以接收到发送的指令信号，建议使用USB延长线或USB-HUB将接收器放置在架子的高处，无任何遮挡，便于信号传输。
2. 键盘控制，AP1一动不动
  a) 确认已将AP1电源总开关打开，急停开关没有被按下，AP1处于上位机控制模式
  b) 新开一个terminal，执行以下命令，打出关系图，查看键盘节点
  `$ rosrun rqt_graph rqt_graph`
  c) 执行以下命令，上下左右控制键盘看是否会有数据打出，如没有数据打出，说明AP1没有接收到键盘发送的指令
  `$ rostopic echo /cmd_vel`
  d)执行以下命令，确认event-kbd的数量，数量大于一个则有问题
  `ll /dev/input/by-path/ `
  ![](imgs/keyboard.png)
  e) 请排查是否有多个键盘设备，键盘驱动查找的是最后一个连接的键盘，需要将其他（显示为）键盘的设备找出来，拔掉（可能是鼠标、机械键盘、混装键鼠）
3. AP1不受键盘控制、失控
  在开始建图前，需要禁用无线功能。如果没有禁用，AP1在连接了WIFI的状态下开始建图，在地图构建过程中，一旦AP1离开无线覆盖区域，无线连接断开，ROS的网络通信中断就会导致AP1控制失控。

##### 导航篇

1. 目标点给定后，可能会发生AP1不动或原地转圈，控制台显示【Failed to get a plan/不能规划路径】的红色错误，这可能是有两种原因造成：
  * 目标点选择在了障碍物中
  * 车在地图中所处的位置是在障碍物中
  那么这样的情况，我们可以先尝试重新给定目标点，或者将车换个位置重新给定初始位置。
2. 在行走的过程中也可能会发生AP1停止不动或原地转圈的现象发生
  这种情况是因为AP1在行走过程中，检测到障碍物，无法到达目标点，这个障碍物有可能是真实的障碍物，也有可能是误检，我们可以先等待观察，AP1会进行自我恢复（不超过一分钟），如果恢复之后AP1仍没有行动，导航已自动停止，此时我们需要重新设置目标点。
3. 建图效果不佳/地图构建要点
  在构建地图的过程，以下几点会影响到建图的准确性：
  * 轮胎气不足影响里程计数据
  * 运行速度不宜过快，由于激光扫描有一定的频率，车速低时雷达可以扫描到的点更多，构建的地图会更准确一些
  * 走一个来回，增加激光雷达扫描次数，累计更多的数据
  * 地图构建的质量也受环境限制，请尽量选择特征比较明显的环境，玻璃、镜子、楼道、空旷等场景会影响建图效果
  * 构建完成的地图，会发现有些点会飞出，飞出的点可能是由于物体的表面不平或者有空隙激光直接穿越了过去
  * 当场景很大特征不足的时候，需要规划建图路径时，应先走一个小回环，当回环成功后，可以再多走几圈，消除粒子在这个回环的多样性。接下来走下一个回环，直到把整个地图连通成一个大的回环
