智能车学习日记【二】————十字和斜入十字

VIP智能车学习日记【二】————十字和斜入十字
智能车学习日记【二】————十字和斜入十字文章目录智能车学习日记【二】————十字和斜入十字前言一、普通十字补线二、斜入十字1.判断是否为斜入十字和斜入十字类型2.找斜入十字拐点总结前言经过了一个多月的学习,小白的我终于也是能较稳定调出了2.8m以上的四轮车,过程中也遇到了很多困难,其中就有十字补线和斜入十字补线。尤其是斜入十字也是困扰了我快一周,现在和大家分享一下我处理斜入十字的方法(我的方法其实还有很多漏洞需要改进,仅供大家参考理解一下,欢迎各位在评论区指点出可
开通可读全文 ·2.7k 人阅读
最低0.47元/天 解锁文章

智能车学习日记【二】————十字和斜入十字

文章目录


前言

经过了一个多月的学习,小白的我终于也是能较稳定调出了2.8m以上的四轮车,过程中也遇到了很多困难,其中就有十字补线和斜入十字补线。尤其是斜入十字也是困扰了我快一周,现在和大家分享一下我处理斜入十字的方法(我的方法其实还有很多漏洞需要改进,仅供大家参考理解一下,欢迎各位在评论区指点出可改进之处!)


一、普通十字补线

首先,我将十字补线分成了找拐点,判断是否需要补线和补线3个步骤。斜入十字也是这样判断,只是多了很多限制条件。防止在直道或弯道也补线导致图像错误。代码里的数组可以在我的第一篇文章里找到定义和含义
智能车学习日记【一】

  1. 找拐点
    在这里插入图片描述

正入十字找拐点比较容易,直接贴代码

// 找拐点
if (l_down_flag == 0)

            {
                if (L_black[0] != 185 && L_black[1] != 185 && L_black[3] != 185)
                {
                    for (i = 1; i < 65; i++)
                    {
                        if (abs(L_black[i] - L_black[i - 1]) < 5 && abs(L_black[i + 1] - L_black[i]) < 5 && L_black[i + 2] - L_black[i + 1] > 3 && i + 1 >= 2 && L_black[i + 1] < 180 && i + 1 < 45)  
                        {
                            lefty[0] = (byte)(i + 1);
                            SetText(" 左下拐点 y x +  " + (i + 1) + "   " + L_black[i + 1]);
                            l_down_flag = 1;
                            break;
                        }
                    }
                }

            }
if (r_down_flag == 0)
            {
                if (R_black[0] != 0 && R_black[1] != 0 && R_black[3] != 0)
                {
                    for (i = 1; i < 65; i++)
                    {
                        if (abs(R_black[i] - R_black[i - 1]) < 5 && abs(R_black[i + 1] - R_black[i]) < 5 && R_black[i + 2] - R_black[i + 1] < -3 && i + 1 >= 2 && R_black[i + 1] > 2 && i + 1 < 45)
                        {
                            righty[0] = (byte)(i + 1);
                            SetText(" 右下拐点 y x+  " + (i + 1) + "   " + R_black[i + 1]);
                            r_down_flag = 1;
                            break;
                        }
                    }
                }

            }
if (l_up_flag == 0)
            {
                for (i = 1; i < 65; i++)
                {
                    if (L_black[i] - L_black[i - 1] < -3 && abs(L_black[i + 1] - L_black[i]) < 4 && abs(L_black[i + 2] -
VIP 智能车信号处理入门:用归一化搞定电磁电感数据,让小车巡线更‘稳’的底层逻辑 本文深入探讨了智能车电磁循迹中归一化处理的关键作用,通过四种归一化方法(最大最小值归一化、Z-score标准化、能量归一化和混合策略)解决原始电感数据的尺度混乱、环境干扰和硬件差异问题。实战案例显示,归一化能显著提升PID控制器的稳定性和参数可移植性,是智能车巡线稳定的底层逻辑。 开通可读全文·111 阅读·1 点赞·2 收藏 阅读全文

相关推荐

智能车竞赛新手避坑指南:电磁传感器数据处理与滤波实战(附12位ADC代码)

本文详细介绍了智能车竞赛电磁组从传感器数据处理到赛道精准控制的全流程实战指南。涵盖电感选型、运放电路校准、滑动加权滤波、动态归一化处理等关键技术,特别解析了差比和算法与模糊PID控制器的实现,并提供了环岛检测和十字路口处理等特殊赛道元素的识别策略。适合智能汽车竞赛新手快速掌握电磁数据处理与滤波技术,避开常见陷阱。

weixin_30839881的博客 427

智能车竞赛十字路口与斜入十字识别算法与稳定通过策略详解

在嵌入式系统与自动控制领域,传感器数据处理和状态机设计是构建稳定感知-决策-控制回路的核心基础。其原理在于通过实时采集环境信息(如摄像头图像或电磁信号),识别数据模式的突变或异常,并驱动控制策略的平滑切换,以实现系统的自主、鲁棒运行。这一技术对于移动机器人、智能车等自主导航平台具有关键价值,是实现复杂场景下稳定作业的前提。典型的应用场景包括智能车循迹竞赛,其中赛道十字路口因其传感器数据特征的剧烈变化,成为检验算法鲁棒性的经典挑战。本文聚焦于智能车竞赛中的十字路口与斜入十字场景,深入剖析基于摄像头图像处理和电

weixin_33748818的博客 422

智能车复工日记【3】:图像处理——基本扫线和基本特征提取和十字补线

目录前言基本扫线(除了进入环岛状态或者坡道或者十字路口的普通扫线)基本数据和初步特征进一步特征提取1、计算并且显示前n行左右线各丢失数目(不break和break的都有)2、计算左右线方差(以右线为例)【a】计算右线曲率(选三个点:r_start、中点、break点)【b】如果右线曲率在一定的范围,就进行右线拟合,从空白行开始计算斜率,否则则从0行开始计算 前言 图像大小185*70,通过扫线获取.........

hanhan的博客 3万+

智能车复工日记【N】:图像处理——环岛debug记录(持续更新)

Debug记录4.10号更新问题1:问题2:问题3:问题4:问题5:问题6:问题7:问题8:问题9:问题10:问题11: 4.10号更新 问题1: 左环岛出现问题: 这时候应该用左上点来进行修补。检查为何没有补线。 关键是四状态和五状态的切换 修改参数为30; 效果有所改善,延时了状态5的到来。 问题2: 接下来的问题: 状态7的问题: 状态7问题修复, 问题3: 但是状态8进早了,原因:.........

hanhan的博客 1万+

【智能车Code review】——环岛的判定与补线操作

【1】效果展示图 状态1、状态2 状态3 状态4、状态5 状态6 状态7 状态8 【2】状态机设定需要的参数 以右环岛为例: k_left:左线的斜率 rou_of_left:左线的方差 last_rou_of_left:上一帧的左线方差 l_start:左线第一行为黑的所在行 right_turn_down; right_turn_middle; right_turn_up; 左线的下、中、上拐点 fiv_width[i]:第i行的赛道宽度 leftline_du

hanhan的博客 2万+

【智能车Code review】——拐点的寻找

CROSSROAD:十字拐点 ROUNDISLAND:环岛拐点 rightfindflag[i]:表示第i行的右线是否被找到,1为找到,0为没有找到 flag_find_huan_rightdown_point :找到环岛右下拐点标志 flag_find_huan_rightmiddle_point:找到环岛右中拐点标志 找拐点的思路:观察一段数据中数据点的走向趋势,并且保证这段数据是准确的。在摄像头畸变比较严重的情况下这种方法不再适用 关于函数的调用请见:https://blog.csdn.net/qq.

hanhan的博客 1万+

抛砖引玉 浅析电磁几种路径识别方案的利弊

磁导航智能车循迹的首要问题是赛道中心偏移量的确定。为了开 拓大家的思路,我总结了几种比较典型的识别方案。建议大家积极探 索,勇于尝试,开发出实用性高的新方案。

智能车电磁4轮参考程序

基于电磁传感器的,主控MCU为K60的电磁四轮智能车完整程序

智能车电磁组完整程序

智能车电磁组完整程序

Oracle 常用语法汇总

CREATE TABLE 表名(COMMENT ON COLUMN 注释;-- 创建一个学生表STUDENT_ID NUMBER(10) PRIMARY KEY, -- 学生ID,主键FIRST_NAME VARCHAR2(50) NOT NULL, -- 学生名字,不允许为空LAST_NAME VARCHAR2(50) NOT NULL, -- 学生姓氏,不允许为空EMAIL VARCHAR2(100) UNIQUE, -- 学生电子邮箱,唯一。

拽着尾巴的鱼儿的博客 2146

【ECCV 2024】动态范围直方图自注意力DHSA,即插即用!

直方图自注意力机制,将空间特征按强度分段并进行分组,然后在各个分组内或分组间应用自注意力,以选择性地关注具有动态范围的空间特征,并处理长距离内相似退化的像素。

qq_43303160的博客 1836

【深度学习】tensorboard中的图片放到论文中

1. 利用tensorboard中的导出数据功能 选中左上角的标签,然后选择csv格式的数据下载即可。 左边的smoothing 数值不影响导出数据的大小。 2.tensorboard 图下标签介绍: 放大 Toggle y-axis log scale:将y轴对数化 Fit domain to data:如果拖动了图片等,再重新回到原始位置 Download Current Chart as SVG 3.用下载下来的csv数据来画图 第一幅图片:训练的平均长度 fig, ax1 = plt.sub

gaocui883的博客 1万+

大模型驱动时序量化因子自动优化:从WorldQuant回测到实战策略

本文探讨了如何利用大模型驱动时序量化因子的自动优化,构建从创意生成到实战验证的完整流程。通过结合WorldQuant回测平台,搭建自动化流水线,详细拆解了因子生成、回测验证与迭代优化的核心模块。文章分享了从初版实现到进阶优化的实践经验,并指出提示词工程与领域知识注入是关键,旨在实现人机智能协作,提升量化策略研发效率。

wdx012345的博客 796

告别商业软件?实测用gnina(CNN打分版)做分子对接:从安装到跑通第一个案例

本文详细介绍了基于卷积神经网络(CNN)的开源分子对接工具gnina的安装与实战应用。从环境配置、编译安装到运行第一个COVID-19主蛋白酶抑制剂对接案例,全面解析了这款替代商业软件的强大功能,特别适合预算有限的研究团队进行药物发现和虚拟筛选。

weixin_42522320的博客 251

Python 爬虫实战:在丁香医生抓取健康科普文章阅读量,普及健康知识

requests:用于发送 HTTP 请求,获取网页内容。或 lxml:用于解析 HTML 页面,提取目标数据。pandas:用于数据清洗和分析。matplotlib和seaborn:用于数据可视化。通过本项目,我们实现了以下目标:使用 Python 爬虫抓取丁香医生的健康科普文章阅读量。对数据进行清洗和分析,找出热门文章。通过可视化展示数据,并普及健康知识。

u014481728的博客 1549

QT实现警报应用程序

QT实现警报应用程序

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2016

harbor x509: certificate signed by unknown authority【20251222】

本教程通过「合并证书链(服务器端)+ 预置根 CA(客户端)」彻底解决了自签名证书的 x509 错误,同时集成了 Trivy 漏洞扫描,实现了 Harbor 从搭建到实用的全流程。证书链合并是服务器端的关键,确保客户端获取完整信任路径;客户端需同时配置「系统信任库 + Docker 信任目录」,避免 Docker 独立信任机制导致的问题;所有 IP 需保持一致(Harbor 配置、证书绑定、客户端访问),是避免错误的基础。

老韩的Linux云计算架构师进阶之路 676

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 华为鸿蒙手表实现除夕夜烟花燃放效果
下一篇: 疫情趋势下,远程控制软件成为刚需,ToDesk or 向日葵,哪一款最好用?

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
普通网友
博客等级 码龄5年 7348粉丝 172原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值