基于Atlas 200I DK A2的智能小车功能实现
一、地图绘制
小车的行驶依赖于模型的训练,因此需要设计一张地图,用于小车行驶的模型训练过程和推理结果验证。开发者可以根据需要使用PhotoShop软件绘制不同的图层,使用可以使小车正常转弯和停车的尺寸,得到场景地图并打印。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-85f1ogp1-1685337888587)(../2023%E7%AC%AC%E4%B8%80%E5%AD%A3/zh-cn_image_0000001600858285.png)]](https://i-blog.csdnimg.cn/blog_migrate/fd04a35f56ed1955d2c56032ad874bd4.png)
二、手动控制小车
烧录.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就是基于图优
化实现的。图优化相对于滤波,不用实时的进行计算,效率更高,消耗的资源更少,所以在实际场景中使用的更多。
化实现的。图优化相对于滤波,不用实时的进行计算,效率更高,消耗的资源更少,所以在实际场景中使用的更多。

文章介绍了如何利用Atlas200DK开发智能小车,包括地图绘制、手动控制、自动驾驶功能(循迹、泊车、目标追踪)以及激光雷达在ROS环境下的建图和SLAM应用,其中提到了基于滤波和图优化的SLAM算法在实际场景中的重要性。
7810

被折叠的 条评论
为什么被折叠?



