项目简介
本项目为迷你自动驾驶赛车的第三次迭代,专注于激进驾驶场景。采用低成本的STM32F103C8T6作为控制器,融合多种传感器数据,实现室外相对定位、轨迹生成与跟踪等功能。赛车可按预设优化路径点在赛道行驶,还能作为低层级控制器为高层级代理服务。
项目的主要特性和功能
- 定位与里程计:借助GPS数据在开放室外环境定位,融合GPS、光流、IMU + 罗盘及车辆推进系统模型数据获取里程计信息,确保不同传感器状态下的定位精度。
- 轨迹相关:用3阶贝塞尔曲线从给定路径点生成轨迹,离线轨迹优化结合加权势场的成本函数,根据有序路径点区域找到最优坐标。
- 控制功能:速度控制采用非对称非线性控制器,转向控制采用开 + 闭环渐进P控制器,支持预制动功能,可提前转弯减速,能根据光流数据更新路面摩擦系数应对车辆打滑。
- 调试与通信:配备地面控制系统(GCS),可记录数据、实时绘制车辆位置,车辆具备V2X通信能力,硬件支持多智能体间通信。
- 安全机制:系统有多重故障保护措施,如超出GCS范围自动停车、主控制器故障时次控制器接管。
安装使用步骤
环境与工具准备
- 安装Arduino IDE(版本1.6.13或更高),通过Arduino IDE的开发板管理器安装Cortex M3 SAM开发板包。
- 安装Python,使用以下命令安装依赖库:
pip3 install matplotlib pip3 install numpy pip3 install pyserial pip3 install scikit-learn
代码与文件配置
- 从指定链接(https://drive.google.com/file/d/1j8or7khmo2Z-QlrW-FHwhAybPbwVp9Ex/view?usp=sharing )下载硬件文件,解压到“Arduino/hardware”文件夹。
- 将“libraries”文件夹放入“Arduino/libraries”目录;ino文件存放在个人的Arduino草图文件夹;GCS文件夹放在存放Python文件的位置。
上传代码
- 在上传设置中,将CPU速度设为超频(128Mhz),上传方法设为串行。
- 若使用Linux系统,首次上传可能遇权限问题,执行以下命令解决:
cd path/to/hardware/Arduino_STM32-master/tools/linux sudo chmod +x * cd stm32flash sudo chmod +x *
然后重启Arduino IDE再尝试上传。 - 若出现“Failed to init device.”错误,需在上传前按下stm32f103c8t6的复位按钮。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】