智能车杂项

简介: 智能车杂项。一些想要说但不好归类的杂项

杂项

  • 我们使用的是单核板,裸机工程。
  • 双核板需要额外时钟同步,可以使用两个IO设置和读取高低电平来进行同步。另外需要自己设计串口通信协议,帧头和帧尾最好设置为功能数据内容不会出现的数据。
  • 电池使用的是2S的航模电池
  • 程序的浮点数运算好像有迷之问题。把浮点运算的结果用串口发到电脑上大概一秒或是几秒就会出现特别大或是特别小的数还有Inf和NAN,还是偶然现象。搞不好是数组越界操作/堆栈溢出程序跑飞/内存溢出访问越界/中断处理错误balabala。但是就连最基本的PID和一阶低通滤波偶尔都会随机出问题,降成int整形就不会出现这种情况。查了大概俩月也没查出问题在哪里,这种随机隐患万一赛场上发生了会很要命,所以把很多运算都降成整形了
  • 陀螺仪大概在比赛前一周不到突然抽风,稳定了好久改都没改的程序读取陀螺仪数据突然就不正常了。出现问题的当天在过了一小段时间之后又突然自己好了,再就没出现过这个问题。正式比赛前高强度跑了完整流程十几次测试稳定性也都没有问题。嗯也是很随机的小概率问题 然后赛场上就又碰到了 并且赛后重新烧程序跑了也没事... 只能说天有不测风云啊
  • math.h中的isnan()isinf()inanf()isinff())可以用来判断浮点数是否是NAN或Inf
  • 遇到单片机跑着跑着就重启,可以试下把固定用的铜柱换成尼龙柱,再换上纸垫片,说不定会有神奇的效果。
  • 不要像我们一样把变量定义拉成一个单独的.c和.h文件,还把所有头文件都放到一起,这个当时是为了解决最开始引用报错的问题,后来发现是工程设置的问题。就还蛮蠢的x
  • 九轴陀螺仪做AHRS(航姿参考系统)解算四元数,测试下来效果在智能车这个室内场景其实不如六轴。磁场传感器受地面影响很大,数据会很飘。
  • 陀螺仪安装最好要减震,不要直接热熔胶胶在底盘上,物理减震比算法处理效果要好些。
  • AHRS姿态解算算法大致分三类:Mahony互补滤波,扩展卡尔曼EKF姿态融合,梯度下降。强烈安利大家试一下梯度下降结算。运算量小并且收敛很快,调整学习率(步长)可以控制解算出的四元数抖动程度,真的很好用!

    Madgwick开源了梯度下降算法,可以下载下来自行验证下算法,并且也开源了互补滤波算法 https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/

  • 比完赛后过一段时间再看自己的程序,还是有不少地方不满意的。比如四个电机结构体写成MortorTypedef_t Mortor[4]会比1-4这样写方便得多;再有就是陀螺仪的处理程序美观性真的挺一般的;还有就是变量和函数命名不是很规范等等等等。

    智能车这份程序是我从大一上实验室招新开始学单片机和C语言,一直写到暑假比赛结束,代码也是逐渐跟着学习进度叠起来的。即使是比完赛后过了不到半个学期再看自己的程序,还是能发现有不少地方蛮不满意的,那就更不用说做车的前辈和学长们了。赛后也想把程序整理下弄得工整和美观一些,不过车已经被下一届的预备役选手拆掉准备明年的比赛了,改完之后的程序也不能再上车验证一下,于是还是开源这份赛后稍加改动的程序吧!还有遗憾的地方就在明年的RoboMaster里完善好了!作用更多是抛砖引玉!

目录
相关文章
|
传感器 存储 IDE
Arduino的PID库
Arduino的PID库是一个用于实现比例-积分-微分(PID)控制算法的软件库。它能帮助开发者精确控制各种需要调节的系统,如温度、速度等,通过自动调整参数来达到或维持设定值。使用简单,适用于各种Arduino项目。
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
271 116
|
18天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
12天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
663 219
|
5天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
350 34
Meta SAM3开源:让图像分割,听懂你的话
|
10天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1587 157
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
897 61