智能车探索麦轮特色控制:三自由度循迹以及元素坡道、环岛、三叉、大小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控制,最终再输出给电机环。
目录
相关文章
|
4月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器提供多种ECS实例规格,如高主频计算型hfc8i、ecs.c9i、计算型c8i、通用算力型u1、经济型e等,适配不同应用场景,涵盖高性能计算、AI推理、Web服务、数据分析等领域。
551 2
|
传感器 算法
智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案
智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案
1757 0
|
10月前
|
存储 算法 C语言
高精度算法
本文详细介绍了高精度算法的实现,涵盖加法、减法、乘法、除法及取模等操作。通过字符串与数组结合的方式,解决了大数运算中超出数据类型范围的问题。每种运算均提供完整的C++代码示例,包括输入处理、位运算模拟、进位/借位逻辑以及结果输出。其中,高精度加法和减法通过逆序存储数字简化计算;乘法利用双重循环模拟手算过程;除法分为低精度和高精度两种情况,分别采用逐位试商与减法模拟;取模则通过逐位累加求余实现。这些方法为处理大规模数值运算提供了有效工具,适用于竞赛编程与实际开发场景。
403 24
|
并行计算 PyTorch 算法框架/工具
阿里云PAI-部署Qwen2-VL-72B
阿里云PAI-部署Qwen2-VL-72B踩坑实录
4841 1
|
安全 物联网
物联网卡不能更换设备使用吗
物联网卡(IoT SIM卡)是否允许更换设备使用,这主要取决于物联网服务提供商的具体政策和服务条款。通常,物联网卡是为特定设备或应用场景设计的,因此一些服务提供商会限制卡的更换使用,主要是出于安全、管理、网络优化和避免滥用等考虑
visualscope的使用方法
visualscope的使用方法
538 0
visualscope的使用方法
|
机器学习/深度学习 分布式计算 并行计算
性能优化视角:Python与R在大数据与高性能机器学习中的选择
【8月更文第6天】随着数据量的激增,传统的单机计算已经难以满足处理大规模数据集的需求。Python和R作为流行的数据科学语言,各自拥有独特的特性和生态系统来应对大数据和高性能计算的挑战。本文将从性能优化的角度出发,探讨这两种语言在处理大数据集和高性能计算时的不同表现,并提供具体的代码示例。
370 3
|
存储 编解码 计算机视觉
项目实战:Qt+OpenCV操作摄像头拍照、调节参数和视频录制
项目实战:Qt+OpenCV操作摄像头拍照、调节参数和视频录制
项目实战:Qt+OpenCV操作摄像头拍照、调节参数和视频录制
|
机器学习/深度学习
基于DSP的音频信号处理
基于DSP的音频信号处理
835 2
|
缓存 JavaScript 前端开发
【TypeScript技术专栏】TypeScript中的装饰器与元编程
【4月更文挑战第30天】TypeScript的装饰器是元编程工具,用于修改类、方法等行为。它们允许实现日志、权限控制、缓存等功能,支持类装饰器、方法装饰器等多种类型。装饰器借助JavaScript的Proxy和Reflection API实现,但过度使用可能造成复杂性。正确运用能提升代码质量,但需注意类型安全和维护性。
303 0