当前位置: 首页 > news >正文

【星汇极客】单片机竞赛之2024睿抗机器人大赛-火线速递赛道(持续更新)

 前言

        本人是一名嵌入式学习者,在大学期间也参加了不少的竞赛并获奖,包括但不限于:江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三

后面会经常写一下博客,分享一下资料、经验,如果想了解其他项目、技术,可以去B站搜:星汇极客,主页链接:星汇极客

此外,还开发了个人网站,里面有一些资料和源码供下载:星汇极客网站

        火线速递这个赛道可以参加很多比赛,睿抗机器人、中国高校智能机器人、全球算法等比赛都有专门的赛道,而且比赛规则都是差不多的 。有兴趣可以好好做一下这个项目。

二、2024睿抗机器人大赛-火线速递赛道

1、题目解析

        我们需要做两个东西,一个是小车机器人,一个是传送带+炮台抛投装置,小车用来在地图中循迹、抓取沙包,传送带放在运转区、抛投装置放在发射区,用来把沙包抛出去。

地图:

任务 1:巡线机器人从起止点出发,通过巡线前进;

任务 2:弹药抓取机器人到弹药库,抓取弹药;三种颜色的弹药随机顺序放在弹药库内。

任务 3:弹药转运机器人抓取弹药继续沿引导线前进,进入发射区,并由在转运去内将弹药转移至发射机构上;

任务 4:弹药发射发射机构在监测到弹药到位后,将弹药发射进打靶区内,以弹药的最终落点计打靶环数;

任务 5:弹药巡回 射结束后机器人主动巡回弹药,并将弹药运送至回收区内对应的色框内。

PS:看着这五个任务可能不理解的话,我画个线路图出来就清晰了。

思路:1、小车从起点出发,到弹药库抓取沙包,随后自行选择路线循迹到转运区。

2、将沙包放到传送带上面,传送到发射区的炮台上,由炮台上的抛投装置将沙包抛投出去,打靶区的一圈圈圆环是计分的(按最终落点为准),中间5分往外减少。

3、小车在将沙包放到传送带上后,需要循迹往回走,在沙包落地后前往打靶区,在14处进入中间正方形区域让小车不用黑线循迹,让小车一直慢慢往前走,可利用OpenMV摄像头调整小车方向,识别到沙包后抓取并按16处走。

4、按16处走遇到全黑线,调转方向,循迹黑线走到回收区,按沙包颜色放到对应位置里,随后前弹药库抓取第二个沙包,以此类推,将三个沙包抓取、运转、抛投、寻回、放置完全,再回到起止点停下。

2、比赛答疑、注意点

(1)小车起点是让灰度传感器在黑线处,还是整体在起止点里面?

答:我在比赛时看到都是可以的,我自己是选择在起止点框里面出发。

(2)路线是固定的吗?

答:按自己的选择来,可以到左边的运转区传送,也可以到右边的。PS:你可以把三个沙包全抛了再去寻回也可以,这样可以留个保底。

(3)在运转区这里,实际地图有两条黑虚线的,你可以贴上黑胶带,虚线里面你可以放置传送带、炮台。

(4)重点:一定要做一个好的爪子,我们一开始没注意,到后面发现沙包夹着会掉下去。滑轨建议买一个15cm的,比较好把沙包放到传送带上面。

(5)想到再更新...

(6)虽然历经坎坷,最后也是获得了国二。

3、关键代码

说明:代码是在官方的STM32HAL库源码上修改的,官方代码也有些是错的,需要自己去调试修改。

注意:源码用到了FreeRTOS,没有学过的也不用慌,代码不在main.c里写,只需要知道任务执行代码在RunTask.c里就行了,根据自己的路线选择把任务代码修改。

(1)黑线路口判定修改

在track.c中。PS:循迹用了9个灰度传感器,它这里是根据识别到黑线的数量来判断路口的,如果你的小车识别路口可能误判,可以修改成 > x数字就行。

(2)灰度反馈值

在track.c中。PS:这个是PID的反馈值,调整电机速度,数值越大左右电机速度差越大,用来微调小车沿黑线直走方向。

(3)舵机控制

在servo.c中。

1、控制爪子抓取:占空比最小0,最大2000。

2、控制爪子释放:

3、注意:下面这个是控制360°舵机,占空比是1500停止转动,大于1500上升,小于1500下降,用延时控制转动时间。这个函数功能是:控制爪子上去碰到上面的微动开关停止。它跟180°舵机不同的。

(4)PID参数

在MoveTask.h中。这里是调节PID的参数,P是比例,I是积分,D是微分。

可以这样理解,调P改变车的起始速度,调I改变车的加速度,调D是减速,让小车最终趋于稳定行驶。如果车过于晃动,可以调小I,增加D。

(5)任务执行重点!!!

在RunTask.h中。调节车速

在RunTask.c中。控制小车的任务执行流程。这里面很关键!!!

第一个函数:这个是控制小车从起点出发,调用单圈函数实现跑三圈后,回到起止点。、

RunMode是要执行的功能,执行完做下一个功能。

tim在这个函数里是计时了多少ms的意思。重要!

tick是FreeRTOS里的滴答计时,不用管。

单圈函数:控制小车走一圈,实现抓取、运转、抛投、寻回、放置沙包,又去抓取沙包。

SingleMode是要执行的功能,执行完做下一个功能。

SingleTim计时了多少ms,SingleTim<500意思是在500ms内执行抓取这个功能,SingleTim<700意思是:在700-500=200ms内执行后退的功能。

4、结

因为代码实在是太多了,不一一解释,只能把关键代码讲一下。

如果你觉得这篇文章用帮助请点个赞。关注下方获取更多资源

相关文章:

【星汇极客】单片机竞赛之2024睿抗机器人大赛-火线速递赛道(持续更新)

前言 本人是一名嵌入式学习者&#xff0c;在大学期间也参加了不少的竞赛并获奖&#xff0c;包括但不限于&#xff1a;江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三。 后面会经常写一下博客&…...

生信科研,教授(优青)团队一站式指导:高通量测序技术--农业植物基因组分析、组蛋白甲基化修饰、DNA亲和纯化测序、赖氨酸甲基化

组蛋白甲基化修饰工具(H3K4me3 ChIP-seq) 组蛋白甲基化类型也有很多种&#xff0c;包括赖氨酸甲基化位点H3K4、H3K9、H3K27、H3K36、H3K79和H4K20等。组蛋白H3第4位赖氨酸的甲基化修饰(H3K4)在进化上高度保守&#xff0c;是被研究最多的组蛋白修饰之一。 DNA亲和纯化测序 DNA亲…...

【Immich部署与访问】自托管媒体文件备份服务 Immich 本地化部署与远程访问存储数据

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 本篇文章介绍如何在本地搭建lmmich图片管理软件&#xff0c;并结合cpolar内网穿透实现公网远程访问到局域网内的lmmich&#…...

AI少女/HS2甜心选择2 仿逆水寒人物卡全合集打包

内含AI少女/甜心选择2 仿逆水寒角色卡全合集打包共6张 内含&#xff1a;白灵雪魅落霞飞雁君临华歌白君临华歌黑平野星罗晚香幽韵 下载地址&#xff1a; https://www.51888w.com/436.html 部分演示图&#xff1a;...

C/C++逆向:数据类型识别

在逆向工程中&#xff0c;数据类型识别是理解程序逻辑的重要步骤&#xff0c;因为它直接影响对程序逻辑和功能的理解&#xff0c;识别出数据类型有助于确定变量的含义和函数的行为。在分析恶意软件或者寻找安全漏洞时&#xff0c;识别数据类型能够帮助发现代码中的潜在问题。例…...

PASCAL VOC 2012数据集 20类物体,这些物体包括人、动物(如猫、狗、鸟等)、交通工具(如车、船、飞机等)以及家具(如椅子、桌子、沙发等)。

VOC2012数据集是PASCAL VOC挑战赛官方使用的数据集之一&#xff0c;主要包含20类物体&#xff0c;这些物体包括人、动物&#xff08;如猫、狗、鸟等&#xff09;、交通工具&#xff08;如车、船、飞机等&#xff09;以及家具&#xff08;如椅子、桌子、沙发等&#xff09;。每个…...

题目:最左边的数字

问题 - 1060 (hdu.edu.cn) 解题思路&#xff1a; 数字很大&#xff0c;使用科学计数法。则&#xff0c;我们需要的是a的整数位&#xff0c;最终求出a即可。 取对数&#xff1a;nlgnmlga&#xff0c;移项&#xff1a;lganlgn-m&#xff0c;接下来我们需要求m。 …...

第 4 章 Spring IoC容器之BeanFactory

Spring 的 IoC 容器是一个提供 IoC 支持的轻量级容器&#xff0c;除了基本的 IoC 支持&#xff0c;它作为轻量级容器还提供了 IoC 之外的支持。 Spring 提供了两种容器类型&#xff1a;BeanFactory 和 ApplicationContext&#xff1a; BeanFactory&#xff0c;基础类型 IoC 容…...

滚雪球学Oracle[2.3讲]:Oracle Listener配置与管理

全文目录&#xff1a; 前言一、Oracle Listener的基础概念1.1 什么是Oracle Listener&#xff1f;Listener的作用&#xff1a; 1.2 Oracle Listener的配置文件示例listener.ora配置文件&#xff1a; 1.3 启动与管理Listener 二、多Listener配置与负载分担2.1 多Listener的应用场…...

免费送源码:Javaspringboot++MySQL springboot 社区互助服务管理系统小程序 计算机毕业设计原创定制

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受居民的喜爱&#xff0c;社区互助服务管理系统小程序被居民普遍使用&#xff0c;为…...

成都睿明智科技有限公司抖音电商新蓝海的领航者

在当今这个数字化浪潮汹涌的时代&#xff0c;电商行业正以惊人的速度迭代升级&#xff0c;而抖音电商作为新兴势力&#xff0c;更是凭借其庞大的用户基数、精准的算法推荐和高度互动的社区氛围&#xff0c;成为了众多商家竞相追逐的蓝海市场。在这片充满机遇与挑战的海洋中&…...

不可错过!CMU最新《生成式人工智能大模型》课程:从文本、图像到多模态大模型

1. 课程简介 从生成图像和文本到生成音乐和艺术&#xff0c;生成模型一直是人工智能的关键挑战之一。本课程将探讨推动生成模型和基础模型&#xff08;Foundation Models&#xff09;最近进展的机器学习和人工智能技术。学生将学习、开发并应用最先进的算法&#xff0c;使机器…...

重庆数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂

重庆作为西南地区的重要工业基地&#xff0c;正积极探索和实践数字孪生、工业互联网及可视化技术在智能制造领域的深度融合&#xff0c;致力于打造新型工业化智能制造工厂&#xff0c;为制造业的高质量发展注入强劲动力。 在重庆的智能制造工厂中&#xff0c;数字孪生技术被广…...

Qt QPushButton clicked信号浅析

前言 Qt 的 QPushButton clicked 信号原型&#xff1a; void clicked(bool checked false);通常&#xff0c;使用 Qt 的 QPushButton clicked 点击信号时&#xff0c;会以如下方式使用&#xff1a; connect(ui->pushButton, &QPushButton::clicked, this, [](){qDeb…...

Python时间戳转日期

在Python中&#xff0c;你可以使用datetime模块将时间戳转换为日期。时间戳通常是一个表示自1970年1月1日&#xff08;UTC&#xff09;以来的秒数的浮点数或整数。 以下是一个简单的示例&#xff0c;展示了如何将时间戳转换为日期和时间&#xff1a; import datetime# 示例时…...

对 LLM 工具使用进行统一

我们为 LLM 确立了一个跨模型的 统一工具调用 API。有了它&#xff0c;你就可以在不同的模型上使用相同的代码&#xff0c;在 [Mistral] 或 [Llama]) 等模型间自由切换&#xff0c;而无需或很少需要根据模型更改工具调用相关的代码。此外&#xff0c;我们还在 transformers 中新…...

webpack/vite的区别

Webpack和Vite都是前端开发中常用的构建工具&#xff0c;它们在多个方面存在显著的区别。以下是对这两个构建工具的详细比较&#xff1a; 一、基础概念与定位 Webpack Webpack是一个现代JavaScript应用程序的静态模块打包器&#xff08;module bundler&#xff09;。它允许开发…...

【笔记】信度检验

一、信度 信度是指测量结果的一致性和稳定性。 1.一致性&#xff08;Consistency&#xff09; 一致性指的是测量工具内部各个部分或项目之间的协调一致程度。高一致性意味着测量工具的不同部分都在测量同一个概念或特质。 例子&#xff1a;智力测试 假设我们有一个包含100…...

使用Python实现无人机路径规划的灰狼优化算法

目录 使用 Python 实现无人机路径规划的灰狼优化算法引言1. 灰狼优化算法概述1.1 定义1.2 算法原理1.3 灰狼的狩猎策略1.4 算法步骤 2. Python 中的灰狼优化算法实现2.1 安装必要的库2.2 定义类2.2.1 灰狼类2.2.2 群体类2.2.3 路径规划类 2.3 示例程序 3. 灰狼优化算法的优缺点…...

理解递归和回溯

文章目录 什么是递归回溯 什么是递归 回溯 //使用递归回溯来给小球找路//说明//1. map 表示地图//2. i,j 表示从地图的哪个位置开始出发 (1,1)//3. 如果小球能到 map[6][5] 位置&#xff0c;则说明通路找到.//4. 约定&#xff1a; 当map[i][j] 为 0 表示该点没有走过 当为 1 表…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...