智能车探索麦轮特色控制:三自由度循迹以及元素坡道、环岛、三叉、大小S弯的处理

简介: 智能车探索麦轮特色控制:三自由度循迹以及元素坡道、环岛、三叉、大小S弯的处理

探索全向组麦轮的特色控制方案:三自由度循迹以及元素坡道、环岛、三叉、大小S弯的处理

这篇麦轮的特色控制方案,不仅有我们实践出来效果不错并最终运用的,也有实践了效果一般但觉得思路或许还可以,也有实践效果很差可能是理论出问题但想法或许能有用的。这些情况也都会注明,这篇的作用更多是抛砖引玉!也希望大家能一起讨论!

元素处理分到了两篇文章中:元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案以及本篇全向组麦轮的特色控制方案。

开源代码地址: https://github.com/ittuann/Enterprise_E

博客目录:
https://blog.csdn.net/sorcererr/article/details/124989905
https://ittuann.github.io/2021/08/30/Car.html

麦轮速度分解:

麦轮安装后通过速度分解,将底盘的运动期望解算至电机转速,分别控制四个轮子的转速,即可实现3个独立自由度上的运动运动。麦克纳姆轮驱动的车属与于 Holonomic,它的控制自由度等于整体自由度,因为它可以在平面坐标系内沿任意方向移动。小车可以由 2个平面移动自由度和 1个转动自由度分别控制。 2个平面自由度控制小车的位置, 1个转动自由度控制小车的姿态。所以小车所有的运行状况都可以用这三种情况耦合而成。

img

麦轮的运动模型推算过程略过,可以阅读参考资料,这里直接给出结论

img

可以解算出四个轮子的转速为

img

同理,根据逆运动学模型中的三个方程逆向运算可解得,正运动学模型方程组为

img

常规控制方案

常规的速度控制方案为二自由度,即只使用Vy和w,不使用横向自由度Vx,控制思路类似于三轮车模的差速控制。对于正常的直道和弯道最终我们就是只使用了这种二自由度的方案。这种方案好处在于十分稳定,不过车模的物理重心需要尽量接近四个麦轮的的中心这点更是尤为重要。

麦轮特色控制方案

所谓全向组的特色控制方案,即在常规三轮差速的二自由度控制上增加x轴向控制。具体我们尝试了全程三自由度循迹和元素内三自由度循迹。但因为全程三自由度循迹未能在一段时间内调参调整至传统二自由度的慢速档,再加上当时还有闭陀螺仪环的想法,最终仅在元素内使用三自由度。

  • 坡道处理:常规二自由度若上坡位置不正,需要在坡道打角,容易造成在坡道上抖动并摔出坡道,并且高速过坡稳定性堪忧。麦轮车在识别到坡道后,可以切换控制模态,转为仅使用Vy和Vx这两个自由度,即在上坡时通过横向平移修正姿态。这样可以做到稳定过坡,并且即使开启坡道加速也能有不错的稳定性。

    注意在上坡后最好开始横向计步(即编码器Vx累加),开启限幅为坡道三分之一左右的宽度,避免过矫摔下坡道,限幅防摔这一点也是传统二自由度很难做到的。

  • 环岛处理:四轮在处理环岛时会遇到内切或是外切环岛,此时可能需要赋予不同的摄像头中值或是切换摄像头补线等特殊处理。而麦轮车仅需要加上X轴向反方向的一点速度补偿即可实现环岛内稳定循迹。

    对于环岛内Vx方向速度的确定,因为我们并未整定出三自由度高速循迹的参数,所以仅使用凑试打表的方法赋予定值。但赋予定值的效果也能算得上可以,十分钟左右就凑试出了当前环内速度对应的定值,并在速度控制算法和摄像头补线均未变时该定值很稳定。在我们尝试三自由度低速循迹的方案,只需要稍加修改参数即可过环,不过高速情况与低速可能差异很大,我们的思路仅为抛砖引玉。

    对于左右环岛不对称问题,也可以赋予不同横向速度来修正偏移量。

  • 三叉路口:三叉内外切问题,以及左右不对称问题,我们的处理方案与环岛相同,在二自由度的基础上增加Vy方向的补偿即可。
  • 小s弯:对于识别到小s弯后,可以切换控制模态为Vy和Vx二自由度循迹,即平移过小s弯。不过常规控制小s弯内w打脚本身也不会很大。我们尝试当时速度并不快,二者区别并不大,反而因为小s弯内加速后横向速度稍微过大就会打滑漂移冲出路肩,使得参数整定变得困难,再加上摄像头也不能稳定判断出小s元素,最后线上赛大小s弯不占分数也没有设计进赛道,最终并没有一套稳定可行的方案。不过平移过小s很具观赏性,当时可加速量也高于传统控制,这种针对小s的控制也算是抛砖引玉吧。
  • 平移出库:平移出库胜在稳定性,编码器vx方向计步很稳定。对于高速出库平移可以单独拉出一个PID参数,不过即使使用正常三叉横向循迹的PID参数效果依旧可以。另外可以在平移之外再给y轴速度,实现斜对角出库。横向出库速度不输舵机打角出库,出库总共用时不长也不会过1s,反而受出库位置限制更小也不会撞路肩更加稳定。

    对于入库我们还是采用传统补线入库,三斤多的全向车定点刹车再平移对控制精度要求太高了,对于入库来说没有必要调整那么精细,传统二自由度足够了。

  • 三自由度循迹:将摄像头误差传递给w轴和Vx轴,使用两种不同模态PID控制,最终再输出给电机环。
目录
相关文章
|
传感器 算法
智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案
智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案
1534 0
|
域名解析 缓存 网络协议
如何解决域名解析不生效问题?
文中对域名解析不生效的原因进行了分析,并针对最常见的本地递归域名服务器缓存不生效的问题提出了解决方案,尤其移动域名解析HTTPDNS对无线场景下的应用特别有效。
32340 0
|
自然语言处理 IDE 开发工具
通义灵码编程智能体上线,支持Qwen3模型
通义灵码最全使用指南,一键收藏。
128354 31
通义灵码编程智能体上线,支持Qwen3模型
|
11月前
|
C# 开发者
C# 10.0 新特性解析
C# 10.0 在性能、可读性和开发效率方面进行了多项增强。本文介绍了文件范围的命名空间、记录结构体、只读结构体、局部函数的递归优化、改进的模式匹配和 lambda 表达式等新特性,并通过代码示例帮助理解这些特性。
196 2
|
12月前
|
安全 物联网
物联网卡不能更换设备使用吗
物联网卡(IoT SIM卡)是否允许更换设备使用,这主要取决于物联网服务提供商的具体政策和服务条款。通常,物联网卡是为特定设备或应用场景设计的,因此一些服务提供商会限制卡的更换使用,主要是出于安全、管理、网络优化和避免滥用等考虑
visualscope的使用方法
visualscope的使用方法
473 0
visualscope的使用方法
|
机器学习/深度学习 分布式计算 并行计算
性能优化视角:Python与R在大数据与高性能机器学习中的选择
【8月更文第6天】随着数据量的激增,传统的单机计算已经难以满足处理大规模数据集的需求。Python和R作为流行的数据科学语言,各自拥有独特的特性和生态系统来应对大数据和高性能计算的挑战。本文将从性能优化的角度出发,探讨这两种语言在处理大数据集和高性能计算时的不同表现,并提供具体的代码示例。
293 3
|
消息中间件 运维 数据管理
Kafka 如何基于 KRaft 实现集群最终一致性协调
Kafka 3.3.1 引入了 KRaft 元数据管理组件,替代 Zookeeper,以简化集群一致性维护,支持更大规模集群并减轻运维复杂性。在 Zookeeper 模式下,需同时运维 ZK 和 Broker,而 KRaft 模式仅需 3 个节点即可构成最小生产集群,且通信协调基于 Raft 协议,增强了一致性。KRaft 模式中,Controller 使用单线程处理请求,通过 KRaft 保持内存状态与多节点一致性。此外,Broker 根据 KRaft 记录更新元数据,实现声明式管理,提高集群协调效率。KRaft 的引入是集群协调机制的演进,采用事件驱动模型实现元数据的一致性。
741 1
Kafka 如何基于 KRaft 实现集群最终一致性协调
|
缓存 编解码 安全
探索Android 12的新特性与优化技巧
【6月更文挑战第7天】本文将深入探讨Android 12带来的创新功能和改进,包括用户界面的更新、隐私保护的加强以及性能的提升。同时,我们还将分享一些实用的优化技巧,帮助用户更好地利用这些新特性,提升手机的使用体验。
|
机器学习/深度学习
基于DSP的音频信号处理
基于DSP的音频信号处理
720 2