news 2026/3/1 21:15:17

Apollo 6.0 CARSIM自动驾驶控制模块仿真及调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apollo 6.0 CARSIM自动驾驶控制模块仿真及调试

apollo+carsim自动驾驶控制模块仿真 windows联系独编译,和carsim联合仿真仿真调试 有编译和调试过程文档 基于windows平台,所有依赖的库有预编译好的包apollo6.0版本。

最近在Windows上折腾Apollo6.0和CarSim联合仿真,差点没把键盘砸了。这玩意儿坑是真的多,但跑通后成就感拉满。先说重点:必须提前备好VS2019和CarSim2020,别问为什么不用新版本,问就是血泪史。

装完Apollo预编译包后先别急着跑,得把环境变量配得亲妈都不认识。特别要注意protobuf的路径,这货藏在apollo\thirdparty里,得手动加PROTOBUFROOT指向它。见过有人在这卡三天,最后发现是路径斜杠方向不对你敢信?

控制模块代码里有个特别骚的操作,看这个canbus发送函数:

void Control::SendControlCommand() { auto cmd = std::make_shared<ControlCommand>(); // 方向盘转角计算 double steer_angle = CalculateSteeringAngle(); cmd->mutable_steering_target()->set_steering_angle(steer_angle); // 加速度处理 if (emergency_stop_flag_) { cmd->set_acceleration(-5.0); // 急刹力度直接拉满 } else { cmd->set_acceleration(CalculateSmoothAccel()); } canbus_writer_->Write(cmd); }

这里有个隐藏坑点:CarSim接收加速度的单位是m/s²,但Apollo内部用的是百分比。调试时发现车辆突然鬼畜加速,查了半天发现没做单位转换,直接拿0.8当加速度使,结果车跟打了鸡血似的。

联合仿真配置更刺激,CarSim的VehicleSimInterface.dll必须扔到apollo\bin目录下。配置SFunction时注意采样时间必须和Apollo的control周期对齐,我设的20ms结果CarSim抽风似的报错,改成50ms瞬间老实。

apollo+carsim自动驾驶控制模块仿真 windows联系独编译,和carsim联合仿真仿真调试 有编译和调试过程文档 基于windows平台,所有依赖的库有预编译好的包apollo6.0版本。

调试时祭出VS的并行堆栈视图神器,发现控制指令发送线程总被莫名阻塞。最后在cyber定时器配置里找到这个参数:

// cyber.pb.conf timer_component: { interval: 20000 // 单位微秒,别手滑写成2000 name: "control" }

数值写错直接导致控制指令发送频率失控,CarSim那边直接拒绝服务,这错误提示比前任还冷漠。

编译时最崩溃的是boost库版本冲突,明明预编译包带了1.72版本,系统PATH里却有个陈年老boost。解决方案简单粗暴:直接进环境变量里把无关路径全删了,世界顿时清净。

建议自己写个批处理检查依赖:

@echo off where boost_system-vc140-mt-1_72.dll where protoc.exe where CarSim_IPC.dll timeout /t 3

这玩意儿救过我五次以上,特别是换新机器部署环境时,比算命先生还准。

跑通那刻看着虚拟凯美瑞在CarSim里丝滑过弯,突然觉得之前掉的头发都值了。不过奉劝各位:保存好编译好的环境镜像,别问我怎么想起说这个...(默默掏出移动硬盘开始备份)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 5:41:33

PySide系列-07-QMainWindow

PySide step by step系列 1、QMainWindow QMainWindow 是一个继承自 QWidget 的类&#xff0c;专门设计用来作为主应用程序窗口。它内置了多个标准的 GUI 组件区域&#xff0c;方便开发人员快速搭建界面。 QMainWindow 提供了以下几个核心区域&#xff08;布局区域&#xff…

作者头像 李华
网站建设 2026/3/1 14:15:00

基于特征匹配的英文印刷字符识别:MATLAB 实现之旅

14.基于特征匹配的英文印刷字符识别代码 MATLAB程序 可以识别英文&#xff0c;当鼠标指在某个英文单词时&#xff0c;在坐下角会显示相关字符&#xff0c;原有62张图片&#xff0c;包括大小写A-Z和0-9用于匹配&#xff0c;具体可参照:https://blog.csdn.net/horseinch/article/…

作者头像 李华
网站建设 2026/2/28 10:12:53

知网AIGC检测不通过?学长亲测的避坑指南

知网AIGC检测不通过&#xff1f;学长亲测的避坑指南 TL;DR&#xff1a;知网AIGC检测不通过别慌&#xff0c;这份避坑指南帮你搞定。核心思路&#xff1a;先定位高风险段落&#xff0c;再用专业工具降AI&#xff08;推荐嘎嘎降AI&#xff0c;达标率99.26%&#xff09;&#xff0…

作者头像 李华
网站建设 2026/3/1 3:03:16

聊聊神奇的连续拉丝机自动控制程序

连续拉丝机程序&#xff0c;拉丝机自动控制程序&#xff0c;解决了大部分拉丝机经常出现的拉力不均匀&#xff0c;电机转速不稳等问题&#xff0c;运行稳定&#xff0c;安全可靠。在工业生产领域&#xff0c;拉丝机那可是相当重要的设备。但以前&#xff0c;不少拉丝机老是被拉…

作者头像 李华
网站建设 2026/3/1 6:51:31

QT编写的CAN通信调试工具:从原理到实践

CAN调试工具源代码吉阳光电致远周立功USB卡CAN单帧通信协议带相同ID折叠显式加载dll数据保存QT编写的CAN通信调试工具&#xff0c;基于致远周立功USB转CAN卡&#xff0c;可完成CAN帧的发送和接收&#xff0c;带配置参数自动保存&#xff0c;定时发送&#xff0c;帧类型选择&…

作者头像 李华
网站建设 2026/2/28 18:31:56

探索人脸识别追踪:从图像采集到电机驱动的奇妙旅程

人脸识别追踪。 图像采集识别和电机驱动系统&#xff0c;利用openmv图像识别对人脸进行实时采集&#xff0c;采集信号传入到单片机&#xff0c;根据分析结果利用matlab-PID算法控制电机系统跟随人脸运动&#xff0c;自动检测追踪在科技飞速发展的当下&#xff0c;人脸识别追踪技…

作者头像 李华