当昇腾AI装进小车:3周、3个人的极限实操!

当昇腾AI装进小车:3周、3个人的极限实操!

“3000张图、100次训练、2次通宵调参——这辆小车终于不撞墙了!”我们把踩过的几个大坑、数条命令打包成一篇推文!
👇下滑查看硬核拆解👇

一、我们是谁

我们是来自2025电子工艺实训(智能系统实践)课程的一支三人小队,用3周时间完成了一辆基于华为昇腾Atlas 200I DK A2开发板的AI智能小车。今天,我们把踩过的坑、熬过的夜、惊艳的结果,全部浓缩成这篇推文,带你沉浸式体验从Linux环境配置→AI模型训练→小车跑起来的全过程!

人员身份职责
杨小杰组长开发板环境配置、小车模型训练等
杨佳宇组员数据收集与处理、运动逻辑的实现等
韵恺组员小车运动代码的调整与优化、实验总结等

二、硬核技术栈:为什么选它们?

模块技术选型理由
开发环境Ubuntu 22.04(VMware + WSL2双方案)兼顾稳定性与Windows生态兼容性
AI框架Anaconda+PytorchAnaconda环境灵活,Pytorch机器学习便利
硬件昇腾Atlas 200I DK A28W功耗下16TOPS算力,边缘计算神器
控制ESP32 + Arduino低成本实现电机PWM精准控制

三、实战全流程拆解

~~~~~~~~~~~~~~~~~~~~~1.电气动力系统的搭建~~~~~~~~~~~~~~~~~~~~~

设计思路:在完成组装的基础上,将各硬件合理安放,并将小车板间分为两层结构,便于部分硬件的放置与电线的固定。

优化方案:双层结构扩大存放空间;合理固定摄像头,便于完整获取图片;电线捆绑固定,防止线头缠绕。

实验步骤:

1.将电机与麦轮拼装至小车两个底板之间,而后将电机之间的电线焊接并与ESP32主板相连

2.开发板连接,方式一:通过Type C使PC与开发板有线连接、方式二:通过无线路由器无线连接

3.将电源与各开发板,路由器和摄像头之间相连,从而为小车提供动力来源。

~~~~~~~~~~~~~~~~~~~~~~~2.软件系统的部署~~~~~~~~~~~~~~~~~~~~~~~

1.将下载好的示例程序通过开发工具部署到Atlas200DK开发板上。在部署过程中,注意检查程序的依赖关系,确保所有必要的库和模块都已正确安装。

2.根据实验需求,对部署好的示例程序进行配置。例如,对运行程序时小车的速度、调整算法的阈值等,以适应具体的实验场景。

3.部署和配置完成后,运行程序,对整个系统进行测试。检查是否能够正常采集数据,执行器是否能够按照预期动作,程序是否能够正常运行。

~~~~~~~~~~~~~~~~~~~~~~~3.实验数据的采集~~~~~~~~~~~~~~~~~~~~~~~

我们在开发板上启动部署好的程序,程序开始运行后,小车会根据传感器采集到的环境信息进行自主决策和运动控制。通过开发板的调试工具或监控界面,实时监控小车的运行状态,包括传感器数据、执行器动作、程序运行情况等。记录下实验过程中的关键数据和现象。在实验过程中,如果发现小车出现异常行为,如偏离预定路径、传感器数据异常等,及时暂停实验,检查问题所在并进行处理。处理完成后,继续进行实验。

左图为labelme标注过程的图片,对采集的数据进行标注,并整理成含3000左右图片的数据集,其中包含png和json格式;右图为python相关代码的库函数与环境配置,其中使用了虚拟环境对模型进行训练,模型训练得到.pt模型后转化为可供开发板使用的OM模型。

我们手动操控小车进行对全地图的行驶,在过程中对地图路线与地标进行抓取拍摄,随后在labelme中进行标注。同时,记录小车在实验过程中的运动轨迹,包括速度、转弯角度等信息。可以通过在开发板上添加相应的数据记录模块来实现。在程序运行期间,记录程序运行过程中的日志信息,包括算法的执行情况、错误信息等。这些日志信息有助于后续对程序进行优化和调试。

~~~~~~~~~~~~~~~~~~~~~~~4.实验数据的分析~~~~~~~~~~~~~~~~~~~~~~~

1.对记录下来的传感器数据进行预处理,去除噪声数据,提取有用信息。例如,对摄像头拍摄的图像进行灰度化、二值化等处理,以便后续进行目标检测。

2.对小车的运动轨迹数据进行分析,收集小车的实际行驶路径、平均速度、转弯次数等参数。通过这些参数,可以评估小车的运动性能,并优化小车的巡线功能。

3.分析程序运行日志,找出程序在运行过程中存在的问题,如算法效率低下、资源占用过高、错误处理不完善等。

在得到最终的结果后,我们根据传感器数据和小车的运动轨迹,分析小车对实验环境的感知能力。例如,评估摄像头的目标检测准确性和障碍物检测距离精度等。除此之外,我们还分析小车的运动控制性能,包括路径规划的合理性、速度控制的稳定性、转弯的准确性等。通过对比预期轨迹和实际轨迹,找出运动控制中存在的问题。最后,我们对程序中使用的算法进行性能评估,分析算法的效率、准确性和鲁棒性。例如,评估物体检测算法的检测速度、识别准确率,路径规划算法的规划时间和路径优化程度等。

~~~~~~~~~~~~~~~~~~~~~~~5.实验成果的总结~~~~~~~~~~~~~~~~~~~~~~~

我们经过不懈的努力,最终得到了良好的成效,我们的小车具备了巡线、避障的功能。它能够顺利识别路标,进行转向等操作。当我们看到自己的成果取得成功时,所有的努力都是值得的。

虽然实验顺利结束了,但我们认为这不是终点。作为一个小小的Demo,想要落地实践,我们还要走很长的距离。

~~~~~~~~~~~~~~~~~~~~~~~6.实验心得与体会~~~~~~~~~~~~~~~~~~~~~~~

通过Atlas 200I DK A2的模型部署,我们深刻理解了异构计算架构的优势:NPU(神经网络处理器)在图像推理任务中的能效比远超传统CPU/GPU组合。认识到了模型对于小车的重要意义。总之,这次实训让我们完整经历了“环境配置→算法开发→硬件集成→系统调优”的全流程。从虚拟机中的一个报错,到小车最终自主巡线的那一刻,这段旅程不仅教会了我们技术,更教会了我们如何以工程师的视角解决问题——理性、协作、永不言弃

文稿:杨佳宇

照片:杨小杰、韵恺

排版:杨佳宇

指导老师:谢作生

0
评论区睡着了,不要打扰她