首页/文章/ 详情

关于我在CATIA中模拟了“纯视觉L2辅助驾驶”这件事

6天前浏览28
书接上次的内容。在前一篇文章里👇
一个人在家就能破解特斯拉的纯视觉辅助驾驶?
我们已经实现了实时检测车辆中心与车道中心的偏移量👇
接下来,我们就基于上述成果,尝试通过pycatia控制CATIA里的DMU机构,驱动数模里的方向盘转动,来模拟基于摄像头拍摄的图像检测出的偏移量信息,如何控制车辆进行横向移动。
先来看最终实现的效果吧👇
以及最终效果的视频版👇
然后,讲一下我的心路历程。
最开始,我想的很简单:当车辆中心比车道中心更靠右,我们就控制方向盘向左打,且偏移越多,方向盘转动的角度就越大。
但这样就会导致一个很经典的现象:
当车辆偏右,我们向左打方向,直到回到车道居中位置,方向盘回正。但这时车虽然走直线,但并没有向正前方走,而是向左前方,导致接下来会偏向左侧。
此时,程序会进行上述相反的修正:
没错,它会在车道里画龙!
所以,我又进行了如下思考:
首先,我想求过去一段时间偏移量的变化率,也就是求导。这样我可以知道车辆在过去的一段时间里,是正在沿车道直行,还是逐渐向左或向右偏移着直行。
但这样还有个问题,就是车辆如果贴着一侧车道线行驶,此时变化量也是恒定的,所以变化率也为0。但实际车辆并没有居中。所以这时候,还需要把前面导致“画龙”的算法重新拿进来。
当我向AI表达了我的思路之后,AI给我进行了科普:
首先,关于前面“画龙”的思路,可以称之为P Controller
而引入了微分的概念后,则在P的基础上增加了D项,称为PD Controller
如果再进阶一点,则是引入微分项I,变成PID Controller
甚至——更加专业、精进的方法👇
原理搞清楚了,我们可以把已有的信息告诉AI,然后让它给出对应的函数与代码——这恰恰也是AI最擅长的。不过前提,还是自己要懂、要理解,这样才能让AI变成辅助我们的工具,而不是完全依赖AI。
最后一步,只需要调用pycatia的接口,来将求出来的方向盘转动角度,赋给DMU运动机构的驱动命令。这个对于玩CATIA的我们来说,简直是小菜一碟👇
最终,将所有代码整合到一起,我们就能实现下面动图及视频的效果啦~

来源:CATIA那点事儿
二次开发CATIApython科普控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-05-30
最近编辑:6天前
CATIA那点事儿
本科 CATIA小狼。微信公众号:CATIA那...
获赞 135粉丝 262文章 33课程 16
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈