基于Atlas 200I DK A2的智能小车功能实现
一、地图绘制
小车的行驶依赖于模型的训练,因此需要设计一张地图,用于小车行驶的模型训练过程和推理结果验证。开发者可以根据需要使用PhotoShop软件绘制不同的图层,使用可以使小车正常转弯和停车的尺寸,得到场景地图并打印。
二、手动控制小车
烧录.ino代码文件到ESP32开发板中,安装相关依赖后启动运行脚本,通过键盘输入键位手动控制小车移动,如下表所示。
键位 | 动作 |
w | 前进 |
a | 左转 |
s | 后退 |
d | 右转 |
q | 逆时针旋转 |
e | 顺时针旋转 |
↑ | 加速(小车运动状态与静止状态均可以调整) |
↓ | 减速(小车运动状态与静止状态均可以调整) |
c | 捕获当前摄像头的图片 |
space | 暂时停车 |
三、自动驾驶
1.循迹驾驶原理和实现
2.自动泊车原理和实现
3.目标追踪原理和实现
四、激光雷达建图
- ROS
ROS(Robot Operating System)可以作为一个通信桥梁,规整各个传感器与话题、服务,内置多种插件,可以适用到多种场景,包含了不同的SLAM(Simultaneous Location and Mapping, 同时定位和建图)功能包,gmapping, hector_slam, Cartographer等。
- SLAM
从算法的对数据的处理方式上看,目前常用的SLAM开源算法可以分为两类:
- 基于滤波,比如扩展卡尔曼滤波(EKF:Extended KalmanFilter)、粒子滤波(PF:Particle Filter)等。ROS中的gmapping、hector_slam算法都是基于滤波实现的。
- 基于图优化,先通过传感器进行构图,然后对图进行优化。目前比较主流的是图优化的方法,Cartographer就是基于图优
化实现的。图优化相对于滤波,不用实时的进行计算,效率更高,消耗的资源更少,所以在实际场景中使用的更多。