草庐IT

智能车心得分享(四)-- 电磁循迹

Grace Mao 2023-09-01 原文

这一次,我们开始正式进入了,车辆的控制

大致可以分成一下部分:

循迹,需要电磁传感器,或者摄像头。这两个应该是智能车最有可能使用的传感器了,其他的就算是另辟蹊径了。然后我主要使用的是电磁。


这是我最终的电磁排列方案,在华南赛中使用的,但是在校赛的是另一套,华南赛的代码会开源部分,校赛代码完全开源(虽然写的不好看,但是入门还是蛮简单的)。所以可能会和这个图有冲突。

但是现在讲的是思想,没有太大问题,只有元素判断上有些影响。在这篇文中讲解只用上了Hor_L和Hor_R的两个电感(即两个横电感,下简称“L、R”)

使用电磁的步骤 :

  1. 通过电位器调节电感值
    通过adc采集的函数uint16 adc_mean_filter(ADCN_enum adc, ADCCH_enum ch, uint8 count);我们确定了用哪个通道,和采集次数,采样率一般是固定的,也可以自己改,我的电感采集是12位,也就是0~4096,但是在实际赛道上采样的值不会超过3600,一定要注意不要将原始的值调到满幅值。这里推荐的方法是:第一步,将车放到环岛四条线交叉(或者环岛两条(因为今年是铺了两圈)),调节电磁(与四条线垂直的地方)在此时稍微调小电位器,电磁值会有减小,调大值几乎不变(即几乎为最大值),左右横电感都是这样,粗调结束(记录此时的最大值);第二步,将电感放在直赛道上,将电感和电磁线垂直放置,此时最大值为之前最大值的90%以下,要是不到的话就调小,然后把车放在赛道上,保证在赛道最中间(此时电磁线是在两横电感连线中线上),将一侧作为基准,调节另一侧使值相差在(最大值-0)的千分之一内(这样是最好的,但是和你的精度有关,我最大是3600左右,两边值的原始差在5左右)。这样横电感的调节结束;向外的v形电感,在环岛处的较易获得的值是其他元素最大时都无法达到的值即可(就是你在环岛那从预环岛开始稍微转车,或者接近环岛时车即使有些偏移也可以得到的值,但是其他元素这么转都很难得到的值)。内v形电感和水平电感处理类似。具体原因的话,我在元素判断中解释。

  2. 归一化
    就是用第一步采集的最大值(左右对称的电感用同一个),用adc采集的值ADC_value。进行 ADC_value/max*100,将值变道0~100的区间内。这样做的好处是,1、可以方便自己对数据的感知,在普通元素和特殊元素间;2、在赛道更换后,测新的赛道的最大值,改变max的值即可,有较强的适应性。3、方便数据处理。

  3. 差比和
    首先我们不去了解电感具体原理,我们会知道,当靠近电磁线时,电磁值就会变大,远离就会减小。那么如果用L-R,若值为,说明车向右侧偏;反之,向左,这样我们就可以知道车的偏向了。那么差比和(L-R)/(L+R)的作用就是使得到的曲线L-R曲线变得平滑,理论上平滑曲线会使得车的控制效果更好,但是我因为能力有限没有去关注它(可以去看下卓大的文章,里面是有相关的介绍的。“差比和差”那一篇)。

  4. 小车模型
    接下来我们就要让小车巡线了,假设我在理想情况下,左右轮的期望速度都是450(这只是个值,看上一篇我对编码器值的理解),且左右实际都是450,那么理论上这个时候小车是直线运动的。但是要是向右偏了,那么就会期望我们左轮速度比右侧的速度慢,就可以慢慢向左转,车就会回正。此时我们L-R为正(假设是10),通过PID变化得到一个和速度有关的值exp_turn(仍为正),那么左侧的期望速度就是: 期望值(450)- 转向值(exp_turn);右侧期望速度: 期望值(450)+ 转向值(exp_turn)。也就是左减右加(当然这和你的实际模型相关)。当然,如果你是将差比和的值和期望的位置(即L-R=0)处做PID处理(这个时候有可能是一个负值),也有可能是左加右减。

以下是我的小车模型,当然很不精确,可以参考下两轮模型的资料来优化

/*
@par velocity 为期望速度 turn期望转向速度
*/
void Kinematic_Analysis(float velocity,float turn)
{
    float  x=-exp_turn_KP;
    float temp_velocity;
    temp_velocity=x*GFP_abs(err*100)+velocity;//减速处理
    Target_A=(temp_velocity-turn);//(左侧期望速度)
    Target_B=(temp_velocity+turn);//(右期望速度)
}

这样就可以完成循迹了

参考:
两轮差速移动机器人运动分析、建模和控制
智能车电感差比和差加权算法研究

有关智能车心得分享(四)-- 电磁循迹的更多相关文章

  1. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

  2. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  3. threejs 720/360全景工具开发心得 - 2

    前言最近做了一个720全景工具,有很多开发人员觉得全景图很简单,github上也有很多全景图的源码,但当实际使用的时候会发现有很多坑,还达不到真正意义上的商用级别,下面我会把我们开发这个项目遇到的一些坑和解决方案都梳理处理,已经发布到线上https://720.h5ds.com/工具简介:H5-720全景(简称H5-720)是一款基于threejs+h5的全景图制作工具,用户可上传全景图片制作全景图,H5-720可以预设按钮,添加元素,添加热点,添加特效,添加多种交互方式,一键开启重力感应,VR眼镜支持,PC端制作后可以适配多端查看。什么是全景图?在这之前,简单的介绍下全景图,可以360度无死

  4. 连续3天3场分享,KubeVela@KubeCon EU 2023 抢鲜看! - 2

    自从2019年OpenApplicationModel诞生以来,KubeVela已经经历了几十个版本的变化,并向现代应用程序交付先进功能的方向不断发展。最近,KubeVela完成了向CNCF孵化项目的晋升,标志着社区的发展来到一个新的里程碑。今天,KubeVela社区内活跃着大量来自全球的开发者,共同推动KubeVela项目的落地和发展。在即将开幕的KubeCon+CloudNatvieConEurope2023上,我们惊喜地发现,连续3天,KubeVela项目的贡献者、企业用户和来自阿里云的核心维护者,将从不同角度展对KubeVela项目的分享。让我们先睹为快!🎙️BuildingaPlat

  5. 基于python的短视频智能推荐/django的影视网站/视频推荐系统 - 2

    摘要本论文主要论述了如何使用Python技术开发一个短视频智能推荐,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述短视频智能推荐的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。 短视频智能推荐的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、热门视频管理、用户上传管理、系统管理,用户:首页、个人中心、用户上传管理、我的收藏管理,前台首页;首页、热门视频、用户上传、公告信息、个人中心、后台管理等功能。由于本网站的功能模块设计比较全面,所以使得整个短视频智能推荐信

  6. ruby-on-rails - 在 Facebook、转推等上分享直接 Ruby gem 中的按钮? - 2

    注意http://techcrunch.com/2010/04/04/he-even-makes-coldplay-sound-fun/顶部的那些按钮在社交网络上分享网址?我想为我正在构建的网站做一些非常相似的事情。ShareThis提供了一个可以做同样事情的小部件,但它是品牌化的和外部的。我正在寻找纯Ruby解决方案。包含可包含在RailsApplicationHelper类中的模块的gem将是完美的。在我重新发明轮子之前,感谢您的建议!想象一下: 最佳答案 我能找到的最好的是:http://www.addthis.com/这里有

  7. 《ChatGPT实用指南》(精编版)重磅发布,全网免费分享,快上车,别掉队 - 2

    文/高扬(微信公众号:量子论)据上次3月18号发布的V1.8版,已经过去十天,这期间AI领域发生了很多重大变化。因此,我们对《ChatGPT实用指南》进行了重大改版,增加了大量实用的操作和详细的讲解,保证小白可以轻松上手,快速驾驭ChatGPT。V2.0版本亮点:1、结构更合理。分为基础篇、进阶篇、高级篇,从易到难,由浅入深,符合学习规律。2、内容更充实。扩充了27页的内容,尽量看图说话,将操作步骤一步步地展示出来。3、排版更美观。按图书出版的规范制作,便于知识点查阅。后记:2022年11月底,我们在HackerNews上看到了关于ChatGPT的新闻报道后,开始意识到,人工智能的春天来了,这

  8. 【毕业设计】基于单片机的智能温控农业大棚系统 - 物联网 stm32 - 2

    文章目录1简介2绪论2.1课题背景与目的3系统设计详细设计描述3.2硬件部分温度测量电路其他电路部分3.3软件部分主程序子系统程序温湿度程序流程键盘显示子程序3.4实现效果3.5部分相关代码4最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目基于单片机的智能温控农业大棚系统大家可用于课程设计或毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/1254090522绪论2.1课题背景与目的近年来我国的温室控制取得了长足的进步,首先在温室群控制方面,进行了初步的探索和理论研究,其次在温室

  9. BigData/Cloud Computing:基于阿里云技术产品的人工智能与大数据/云计算/分布式引擎的综合应用案例目录来理解技术交互流程 - 2

    BigData/CloudComputing:基于阿里云技术产品的人工智能与大数据/云计算/分布式引擎的综合应用案例目录来理解技术交互流程目录一、云计算网站建设:部署与发布网站建设:简单动态网站搭建云服务器管理维护云数据库管理与数据迁移云存储:对象存储管理与安全超大流量网站的负载均衡二、大数据MOOC网站日志分析搭建企业级数据分析平台基于LBS的热点店铺搜索基于机器学习PAI实现精细化营销基于机器学习的客户流失预警分析使用DataV制作实时销售数据可视化大屏使用MaxCompute进行数据质量核查使用Quick BI制作图形化报表使用时间序列分解模型预测商品销量三、云安全云平台使用安全云上服务

  10. 如何从智能合约中删除数据 - 2

    如何从智能合约中删除数据有了以太坊,我们可以创建一个有状态的系统,我们可以从存储在智能联系人中的数据中添加和删除数据。这是一个有状态的系统,我们可以改变智能联系人的状态,但这需要向矿工支付一些费用。但是我们如何删除数据呢?这里有一个智能合约,用于向myArray中添加和移除字符串:pragmasolidity^0.4.18;contractExampleApp{string[]myArray;functionadd(stringx)public{myArray.push(x);}functiondel(stringx)public{for(uintj=0;jadd()函数相当简单,我们基本上只

随机推荐