news 2026/4/16 12:59:26

直接给各位上点轨迹跟踪的干货。这次咱们玩个能自定义参考轨迹的二自由度MPC控制器,重点说说怎么让这铁疙瘩在不同路况下都跟得稳当。先整杯咖啡,咱们边调参边唠

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
直接给各位上点轨迹跟踪的干货。这次咱们玩个能自定义参考轨迹的二自由度MPC控制器,重点说说怎么让这铁疙瘩在不同路况下都跟得稳当。先整杯咖啡,咱们边调参边唠

可自定义期望轨迹的二自由动力学 MPC 跟踪控制 可以外部导入轨迹 知道x y s 即纵向位置 横向位置 位移量即可 请注意= 要跟踪不同的轨迹,同一参数可能效果不一样 因此需要自己调参数保证控制效果最佳: Q矩阵增大可以保证侧向位置跟踪效果变好, R 矩阵增大可以保证前轮转角曲线效果变好。 同时调整输出值边界的约束 carsim 版本 2019.0

二自由度模型这玩意儿大家都熟吧?横向运动方程写成离散状态空间就是:

% 模型参数 m = 1573; % 质量 Iz = 2873; % 转动惯量 lf = 1.34; % 前轴距 lr = 1.43; % 轮胎侧偏刚度 Ts = 0.1; % 控制周期 A = [1, Ts; -2*(Caf+Car)/(m*vx)*Ts, 1-2*(lf*Caf-lr*Car)/(Iz*vx)*Ts]; B = [0; 2*Caf/(m*vx)*Ts];

重点在状态矩阵里的速度项vx——这货要是没处理好,换条轨迹准翻车。实测发现参考轨迹曲率越大,预测时域得适当缩短,不然求解器直接给你摆烂。

调参这事真得看手感,上周在秋名山实测时发现个邪乎现象:同一组Q、R参数在直道表现完美,到了发夹弯直接推头。后来悟了——Q矩阵里给横向误差的权重得跟着曲率动态变化。举个栗子:

# 动态权重调整示例 curvature = abs(ref_traj['kappa'][current_index]) Q_scale = 1 + 10 * curvature # 曲率越大,横向误差权重越高 Q = np.diag([Q_scale, 0.1]) # 状态权重矩阵 R = np.array([[0.01]]) # 控制量权重

这么整之后,方向盘的修正动作明显更跟脚。不过要注意R矩阵别调太小,上次手贱设成0.001,结果前轮摆角曲线抖得跟帕金森似的。

约束边界这事容易被新手忽略。实测发现输出约束不能只设固定值:

// 根据车速调整前轮转角约束 double delta_max = 0.6 - 0.15 * fabs(current_speed/40); if(delta_max < 0.3) delta_max = 0.3; // 设置MPC约束 mpc.setConstraint(-delta_max, delta_max);

速度越快,允许的最大转角越小,这招对防止高速甩尾贼管用。不过要注意别矫枉过正,有次把delta_max压到0.2,结果在U型弯直接冲出赛道。

最后给个CarSim联调的小技巧:把预测时域内的参考轨迹可视化到CarSim Scene中,效果拔群!具体操作是在Simulink里加个UDP发送模块,把预测轨迹打包发到CarSim的3D显示模块。调试时看着预测轨迹和实际轨迹慢慢重合,那成就感比通关老头环还带劲。

调完参记得做暴力测试——拿正弦波轨迹、阶跃轨迹、蛇形轨迹各跑一遍。别信仿真数据,真车测试时地面附着系数变化能让你参数当场破功。最近发现个玄学规律:Q矩阵权重开三次方后再用,鲁棒性莫名变好,原理还没搞懂,但真的好使。

好了,代码扔Github了,自己去扒拉。记住参数没有银弹,多调多翻车才是正道。下次聊聊怎么把MPC预测域玩出花,保准让你们方向盘的响应比女朋友还贴心(如果有的话)。

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

33、利用TiMidity搭建卡拉OK系统全攻略

利用TiMidity搭建卡拉OK系统全攻略 1. TiMidity基础介绍 TiMidity本质上是一款MIDI播放器,并非专门的卡拉OK播放器,不过它具备一定的可扩展性,经过配置后也能用于卡拉OK场景。默认情况下,它仅播放MIDI音乐并打印歌词。例如,运行以下命令: $timidity ../54154.mid执行…

作者头像 李华
网站建设 2026/4/16 12:26:54

骨髓来源抑制细胞(MDSC)

骨髓来源抑制细胞(Myeloid-derived suppressor cells, MDSC)分为粒形/多核形MDSCs&#xff08;G-MDSC或PMN-MDSC&#xff09;与MNP样MDSCs&#xff08;M-MDSC&#xff09;。单核吞噬细胞&#xff08;Mononuclear phagocytes (MNPs)&#xff09;包括单核细胞、巨噬细胞和树突状细…

作者头像 李华
网站建设 2026/4/16 12:15:30

14、邮件系统的插件、安全及配置全解析

邮件系统的插件、安全及配置全解析 在当今数字化的时代,邮件系统是我们日常工作和生活中不可或缺的一部分。无论是个人用户收发邮件,还是企业进行业务沟通,一个稳定、安全且功能丰富的邮件系统至关重要。下面将详细介绍邮件系统相关的插件、安全防护以及配置方法。 一、Sq…

作者头像 李华
网站建设 2026/4/16 12:22:08

22、Procmail 正则表达式及高级应用全解析

Procmail 正则表达式及高级应用全解析 正则表达式简介 正则表达式是处理数据的强大工具。在 Procmail 中,正则表达式的实现与其他 UNIX 实用程序略有不同。Procmail 的匹配默认情况下不区分大小写,除非使用 D 标志,并且默认使用多行匹配。 简单来说,正则表达式可以理解为…

作者头像 李华
网站建设 2026/4/15 23:26:32

3大维度解锁reMarkable客户端:从基础操作到专业工作流

3大维度解锁reMarkable客户端&#xff1a;从基础操作到专业工作流 【免费下载链接】awesome-reMarkable A curated list of projects related to the reMarkable tablet 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-reMarkable reMarkable客户端生态提供了多样…

作者头像 李华
网站建设 2026/4/2 11:03:34

胡桃工具箱:免费开源的终极原神智能助手

胡桃工具箱&#xff1a;免费开源的终极原神智能助手 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 &#x1f9f0; / Multifunctional Open-Source Genshin Impact Toolkit &#x1f9f0; 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao 还在为…

作者头像 李华