智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案

这篇具有很好参考价值的文章主要介绍了智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

智能车的元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案

元素处理分到了两篇文章中:本篇元素的处理方案以及全向组麦轮的特色控制方案。文章来源地址https://www.toymoban.com/news/detail-404649.html

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

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

环岛:

  • 我们对于环岛的识别使用的是稳定的电磁判断方案。内侧两个横向电感会在环岛切点处达到极值,以此来判断环岛。

  • 入环时使用摄像头补线,并开始计算陀螺仪z轴积分。陀螺仪大于60度入环补线结束,陀螺仪大于200度开始摄像头识别出环,若出环判断失败陀螺仪大于250度强制开始出环,陀螺仪大于355度出环完成。

  • 当陀螺仪大于100度小于225度时,累加环内转向环PID输出量,记录环内转角输出,目的是用环内计算环岛内平均打角。当出环预备标志位置1后,将计算值强制赋给转向环输出,实现出环使用稳定的环内姿态。出环不仅可以使用环内状态也可使用入环状态,我们测试发现使用环内姿态更为稳定。

  • 电感判断环岛的问题在于出环后会重复判断,所以需要写一个出环后短时间0.8s内不再识别第二个环岛。

  • 另外判断小环岛和大环岛 可以记录车身0-60度时间或是编码器脉冲数。

  • 对于环内巡线,由于我们是30cm摄像头限高,所以使用正常巡线也能有不错的效果。但使用正常的摄像头中值会偏向一侧,可以在左右环岛分别赋予不同的摄像头中值。

  • 环内属于稳定而又简单的元素,入环并判断车身稳定后可以环内加速。如果使用记录环内姿态用于出环,则出环速度需要与环内速度相同,相当于在环岛元素内只在入环减速其他时刻都在加速。

坡道:

  • 我们使用 TFMiniPlus 激光雷达测距来判断坡道。当距离降到一定阈值下即可判断坡道。
  • 我们将 TFMiniPlus 竖直倾斜安装,此时测距点在赛道上。水平安装同样可以,不过水平安装测距点不稳定,赛道铺设场地有限的情况下可能会与赛道挡板误判。
  • 在识别到坡道后开始计步(Vy轴向编码器数值累加),路程判断在上坡进行到三分之一稳定后时开启加速并在下坡时关闭加速。路程经过上坡三分之一后对Vx和w两个自由度的每次输出进行限幅防止过量打角抖动,上坡前三分之一不限幅是为了让车身修正姿态。
  • 判断坡道结束可以仅使用计步,当距离超过测定阈值后结束坡道。也可以当测距再次出现极小值时判断坡道结束。为了防止下坡时二次识别,可以加上下坡后0.5s内不再识别第二个坡道。另外还可以用走过一定距离后识别正常赛道结束坡道,判断条件为计步超过小阈值并且测距恢复为正常距离值一定次数后即可判断结束。

三岔:

  • 我们的控制方案三岔路口的一条路分为八步处理。

    第零步是预判断三岔,预判断后将加速降为加速计算量的一半。毕竟要给三斤多的麦轮车留够减速的时间

    当完全判断为三岔时,因为摄像头判断区域与车身实际位置存在距离,且在摄像头高度和角度不变的情况下,距离也不会变。所以第一步为前进一定距离至三岔中心点,同时开始90度旋转舵机。

    第二步在前进完成后使车身旋转30度与入口赛道平行。这样可以防止仅摄像头补线输出值过大,进入三岔出现抖动的问题。

    因为舵机旋转需要时间,且旋转完成后摄像头处理速度较慢,旋转完成时的摄像头输出值不稳定,旋转后不能立刻切为摄像头循迹。所以第三步为车身横向平移一定距离等待摄像头稳定。

    第四步即为三岔内横向循迹。我们出现的情况是右三岔循迹良好左三岔严重偏向外侧,所以右三岔基础速度和加速最大值都会大于左三岔。另外对于三岔内偏向一侧也可以使用与环岛相同的处理办法,即左右分别赋予不同的摄像头中值。

    第五步在预判断出三叉后开启转角输出限幅,限幅至仅能小幅度修正姿态,防止补线补到三岔的另一侧致使出三岔内切。并且也将加速降为加速计算量的一半。

    第六步在判断到出三岔后前进一定距离至中心点,同时开始转正舵机,原因同第一步。

    第七步在前进完成后使车身旋转150度。

    第八步在旋转后前进一定距离,原因同第三步。至此三叉的一条边处理结束。左三叉也是相同的处理流程。

直道加速:

​ 全向组在赛道上匀速循迹很大可能不会有一个较高的速度,所以直道加速就显得很有必要。我们使用了五种直道加速的判断条件。

中线判断加速:

判断图像上半部分中线与赛道两边界无交点即可加速。

for (i = startRow; i < endRow; i++) {
    if ((endRow - startRow) < 5) {
        break;
    }   //行数过少取消判断
    
    if (middleStandard - leftBlack[i] > 4 && rightBlack[i] - middleStandard > 4) {
        rowCount2++;
    } else if (middleStandard - leftBlack[i] > 2 && rightBlack[i] - middleStandard > 2) {
        rowCount++;
    } else {
        break;
    }

    if (rowCount == endRow - startRow) {
        Gear = 8;
    }
    if (rowCount2 == endRow - startRow) {
        Gear = 10;
    }
}   //判断中线上半部与赛道两边界无焦点即可加速

顶部有效图像判断加速:

在正常计算中线误差的 for 循环内 当计算完前三分之一使用面积时,计算有效图像前三分之一的误差,用于远处判断加速。这样可以使运算更为高效。

顶行采样判断直道加速:

分别计算speed_line为20, 25, 30这三行的误差,并取最大值用于判断加速。

speedLineErr = (ABS)((  5 * middleLine[speedLine] +
                        2 * middleLine[speedLine + 1] +
                        3 * middleLine[speedLine - 1]) / (10) - middleStandard);

有效行判断加速:

当有效行在顶部时,给予加速。可以简单使用分段打表的方式,也可以拟合成线性关系。记得写限幅!

距离判断加速:

实际走过一定距离的直道, 就算是直道。有些时候小s不会判断加速,这时只是用车身姿态来判断,可以解决这些正常判断较为难以处理的情况。注意这样加有滞后性, 加速量不要给多。

if (ABS((int16)(fabsf(carSpeedA))) < speedZone) {
    disAccCount ++;
} else {
    disAccCount = 0;
}

if (disAccCount >= 500)    disAccCount = 500;    //限幅

if (disAccCount > countZone) {
    Gear = 3;
}

弯道控制:

弯道的速度的公式 f = μ   m g = m   v 2 R f = \mu\ mg = m\ \frac{v^2}{R} f=μ mg=m Rv2 。F是摩擦力; μ \mu μ是摩擦系数,由地面和轮胎决定;R是转弯半径。由于地面和轮胎在过弯时是给定的,这样在比赛中我们为了保证V大,只能保证更大的转弯半径。R越大,速度V就越大。所以稳定沿着电磁线循迹并不一定是最优解,最好是采用外内外切弯。即入弯时贴弯道的内弯,出弯时贴外弯。这种情况下赛车通过整个弯道过程中行车线半径是固定的,即定曲率行车线。弯道的速度控制方案也最好为,入弯减速避免打滑,出弯加速节约时间。

实践中发现通过调整纯跟踪算法的预瞄距离就能够有这样的效果,可以有效提高路径规划的最优性。

元素处理分到了两篇文章中:本篇元素的处理方案以及全向组麦轮的特色控制方案。

到了这里,关于智能车元素的处理方案:环岛,坡道,三叉,以及直道和弯道的速度控制方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 怎么看服务器是中毒了还是被攻击?以及后续处理方案

    服务器是企业或个人重要的信息系统设备之一,它的正常运行对于企业和个人的业务和日常生活都非常重要。然而,服务器也很容易成为黑客攻击的目标,一旦遭到攻击,会对系统的正常运行和数据安全产生严重影响。在服务器出现异常情况时,如何判断是中毒还是被攻击,

    2024年01月22日
    浏览(44)
  • 案例|工业物联网解决方案•污水处理厂智能监控运维云平台

    1.背景与需求 某污水处理厂,采用较为先进的污水处理工艺混凝沉淀+活性砂过滤+二氧化氯消毒,其设计规模为3万立方米/日。项目需求:建设污水处理厂智能监控云平台,实时网页监控污水处理工艺,统计分析污水处理数据,提升污水处理工艺;实时网页视频监控污水处理过

    2024年02月02日
    浏览(44)
  • nginx处理cros跨域遇到的各种问题及解决方案,以及https配置和浏览器https不安全问题处理

    提示:本人在生产部署服务时遇到一系列跨域问题和https配置问题,特此做以下记录: 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了

    2024年02月02日
    浏览(64)
  • 使用html2canvas将整个元素导出为图片,其中包含svg和img,解决img跟svg导出时img或svg(canvg处理)不显示的问题,以及相关优化

    目录 前言 一、准备 二、解决问题 1.将svg跟img转为canvas的方法 2.将base64转换成file文件的方法 3.点击下载使用方法 1).对dom没有处理,需求只是将图片导出即可  2).涉及对dom的拖拽,流程图之类的(需复制dom,在复制的dom上进行处理)  三、效果图如下 查阅很多相关的文章和

    2024年01月20日
    浏览(67)
  • matlab 直道转向时方向盘最小转角算法

    1、内容简介 略 33-可以交流、咨询、答疑 2、内容说明 汽车主动转向,直道转向时方向盘最小转角算法,一个m脚本和simulink的计算结果 略 3、仿真分析 略 4、参考论文 汽车主动转向关键技术研究

    2024年01月19日
    浏览(44)
  • 基于PID算法下STM32控制的坡道行驶电动小车(2020年电赛)

    本题源于2020年TI杯大学生电子设计竞赛C题-----坡道行驶电动小车 由于手上没有MSP430/MSP432 板子,所以本篇采用stm32实现 任务 利用 TI 的 MSP430/MSP432 平台,设计制作一个四轮电动小车。要求小车能沿着指定路线在坡道上自动循迹骑线行驶。小车必须独立运行,车外不能使用任何

    2024年02月16日
    浏览(49)
  • 【区块链】C语言编程实现三叉Merkle树

    1. Merkle树简介   如上图所示,Merkle 树的叶子节点为交易序列,对每一笔交易进行 Hash(SHA 256算法) 之后,然后对得到的 Hash 节点进行拼接再次进行 Hash 运算,如此递归直到递归至根节点。   如上图所示 Merkle 树的优点在于可快速验证某个区块是否存在指定交易,如要验

    2024年04月14日
    浏览(44)
  • Java在物联网领域的应用非常广泛,涵盖了设备连接、数据处理、应用程序开发、安全性、嵌入式系统开发、消息队列和流处理、机器学习和人工智能以及跨平台和多语言集成等方面

    Java作为一种通用编程语言,在物联网(IoT)领域的应用也非常广泛。以下是一些Java在物联网中的典型应用: 开发物联网应用程序 :Java是一种高级编程语言,具有丰富的库和工具,使得开发物联网应用程序变得容易。Java可以用于开发各种物联网应用程序,如智能家居、智能

    2024年02月03日
    浏览(79)
  • html中根元素以及根元素字体的含义

    在 HTML 中,根元素是指 html 标签,可以使用 CSS 来设置根元素的字体大小。根元素的字体大小会影响整个页面的文本内容,默认情况下,根元素的字体大小是浏览器默认的大小。 要设置根元素的字体大小,你可以使用 CSS 中的 font-size 属性。以下是一些设置根元素字体大小的方

    2024年01月23日
    浏览(38)
  • 数据结构三叉链表与线索二叉树的思路与实现详解

    ❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 我们知道最常见的链式存储二叉树的结构体中有数据域、左孩子指针以及右孩子指针,通过递归来创建二叉树。显而易见的是,想找到二叉树中任意一个结点的 前驱 或 后

    2024年02月02日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包