提示:本文内容基于“2022年中国机器人及人工智能大赛——全地形小车设计赛”的参赛经历而作,其他年份赛题和规则可能会有变动,所以该文章只做参考,具体操作得看实际情况。

本文只做参考,若有高解,请勿喷。
如果大家有什么问题欢迎在评论区评论

文章目录

  • 前言
  • 一、比赛规则及注意事项
  • 二、硬件选择
  • 三、硬件设计部分
    • 1.轮胎部分
    • 2.传感器
    • 3.执行结构
    • 4.其他
  • 四、代码设计部分
  • 五、代码调试部分
  • 六、总结

前言

提示:该文章的经验分享只做参考,具体制作视具体情况而定,希望这里的某些建议不会影响到朋友们更好的想法。


一、比赛规则及注意事项

(1)每支队伍的制作器材限定为机器时代(北京)科技有限公司的“探索者”创新套件。构成机器人的机械零件、电子部件的种类不得超出“探索者”创新套件配置范围,符合条件的零部件的使用数量不限。
(2)辅助材料方面允许使用以下参与制作:打印用纸、塑料布 、透明胶带、绝缘胶带、双面胶带、魔术贴、束线带、螺丝胶、止松垫、防滑螺母。
(3)小车的机械本体、主控板、检测元器件、电机和电池等必须在“探索者”平台指定范围内选择,不能出现平台以外的元器件。
(4)气球颜色为:深红、深绿、深蓝。气球大小(宽):22cm 和 26cm 之间,气球当然越大越好,视觉识别时候更加容易。
(5)扎气球装置末端可采用细小尖锐物体。
(6)书写报告时一定注意比赛文档的要求。
(7)在实际运行过程中尽量一次跑完,重跑会扣分。

此处规则只适用于2022年“探索者”比赛,具体规则可能会每年会有变化,具体依据当年的最新规则。

二、硬件选择

提示:以下文章全部基于此次比赛规则和硬件选择,如果规则相同硬件选择不同,或者有更好的硬件搭配的朋友,可以将部分作为参考。

1.电机:tt马达的减速电机6
2.视觉:openmv
1
3.主控:arduino
4.主控拓展板:big fish拓展板
5.巡线传感器:灰度传感器*4
6.电源:4V锂电(官方提供的)
7.执行机构:舵机
8.车主体:官方套件中的铝板,铝片,螺丝和螺母等
9.其他:尼龙导轮等

三、硬件设计部分

1.轮胎部分

(1)联轴器
我们自己设计了联轴器,用于连接轮胎主体和电机的轴。

(2)轮胎
我们一共使用了6个轮胎,其中前两个轮胎使用了大轮,并且相互绑定在一起,采用大轮增加轮胎半径便于爬坡和爬台阶。最后方的两个轮子当做辅助轮,用于辅助上台阶和坡道,使其在爬坡时车体有支撑。最前面的轮胎上装有履带,用于增大摩擦力。

2.传感器

(1)巡线传感器
我们采用了两组传感器,一组主要用于巡线。另一组主要用于检测是否到达台阶,放在车的前方。
在实验中我们发现当到达台阶部分时,可能由于巡线功能而导致轮胎差速,从而导致无法全速爬上台阶。故我们增加了另一个红外传感器,用于检测台阶。当然也有可能是我们总体结构设计的不够好,才导致我们又另外增加传感器。
(2)视觉传感器
视觉使用了openmv,安装在侧面,安装高度应保证可以成功识别到色卡与气球。

3.执行结构

执行机构为刺破气球的装置,一般选择用舵机来驱动机械臂,机械臂末端加上针或者刀片。

4.其他

为了使其过管道更加顺滑,我们增加了尼龙导轮。

四、代码设计部分

代码部分虽然会附带有部分代码片段,但主要为思路讲解,毕竟是一场比赛,得自己动手才有意义。

(1)Arduino部分

#include <Servo.h>     //引入舵机库
#include <SoftwareSerial.h>   //引入软件串口库
Servo myservo;  //创建一个舵机控制对象 , 使用Servo类最多可以控制8个舵机
SoftwareSerial mySerial(12, 13); // 参数(RX, TX)//定义管脚12/13分别为RX,TX.

控制舵机转向

void servo_turn()
{myservo.write(0);      // 指定舵机转向的角度delay(2000);              // 等待2s让舵机到达指定位置myservo.write(160);       // 指定舵机转向的角度160delay(2000);              // 等待2s让舵机到达指定位置
}

用于模拟量的采集以及阈值的设置和判断

int read_da[4] = {0, 0, 0, 0};
int read_data[4] = { 0, 0, 0, 0};
void track_read()
{read_da[0] = analogRead(gray_sensorPin[0]);read_da[1] = analogRead(gray_sensorPin[1]);read_da[2] = analogRead(gray_sensorPin[2]);read_da[3] = analogRead(gray_sensorPin[3]);for (int i = 0; i < 4; i++){if (read_da[i] <= xunxian[i] && read_da[i] > xunxian1[i])//300-600{read_data[i] = 1;}else if (read_da[i] > xunxian[i] )//大于600{read_data[i] = 0;}else if (read_da[i] < xunxian1[i] )//小于300{read_data[i] = 2;}}//Serial.println(read_data[0]);
}

之后就是一些电机使能,控制正反转以及输出pwm波等的造车基操了。
我们开始的问题就卡在巡线的传感器并不是那种带电位器的灰度传感器,而是那种模拟量输出的传感器。这种传感器的具体阈值得根据安装高度以及位置来进行实验得出。

如果使用了官方给的拓展板,上面将会有两路电机驱动的输出,可以直接驱动电机。

(2)视觉部分
主要用了颜色识别和测距。最好增加距离的检测或者是像素点面积大小的判断。避免在第一段赛道时被摄像头错误识别到。
采用串口与单片机通信,从而控制车去刺破气球。


五、代码调试部分

(1)Arduino部分代码调试

一般为灰度巡线传感器的阈值设置,需要和实际情况结合。

如果使用的是官方提供的灰度传感器的话,它有四个引脚。需要注意的是,其中有一个为模拟量的输出引脚,一般需要实验才可得。
而对于黑线的判断,也得经过实验才可得,需要注意的是需要对单片机进行上电的同时进行测量,否则由于电压的不同测出的结果将没有意义。

(2)视觉部分代码调试

一般为摄像头的阈值设置以及算法的优化来提高系统鲁棒性,具体需要和实际情况结合。

同种颜色的气球需要保证较小的色彩差别,避免由于气球颜色本身的色彩差异而导致的识别失败。同时保证要有一个较为恒定的环境光照。


六、总结

总之,这次比赛的难点在于如何用固定的配件来搭建一辆具有特定功能的车上,并且使用的部分配件未曾使用过。赛前首先得会使用openmv以及Arduino 以及配套传感器的使用。有的代码官方会给例程,就算不自己动手写,但也应该看得懂才行。在硬件的搭建方面,必须得考虑合理性以及稳定性,不要跑着跑着出现掉螺丝或者散架的情况。同时也应该考虑到跨越每一个障碍物时可能出现的情况,以将部分问题扼杀在硬件上。

如果发现文章的问题,欢迎指出。
若有疑问,欢迎在下方留言。

【“探索者”小车】机器人大赛“探索者”全地形小车参赛经验分享相关推荐

  1. 近期活动盘点:基于雷达图像预测未来降水参赛经验分享、智慧政府讲座、金融AI思享会、数据法学研讨会(11.29-11.30)

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此: CIKM AnalytiCup 2017-基于雷达图像预测未来降水参赛经验分享 2017年11月29日 活动简介: 清华大学清华-青岛数据 ...

  2. 近期活动盘点:基于雷达图像预测未来降水参赛经验分享、大数据基础设施讲座、药品行业分析及大数据应用思享会(11.22-11.29)

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此: CIKM AnalytiCup 2017-基于雷达图像预测未来降水参赛经验分享 2017年11月29日 活动简介: 清华大学清华-青岛数据 ...

  3. 直播预告|脑机接口学术周来袭,2023世界机器人大赛赛题解读、学术分享抢先看!

    世界机器人大赛被誉为机器人界的"奥林匹克",已成为国内外影响广泛的机器人领域官方专业赛事."世界机器人大赛-BCI脑控机器人大赛" 至今已成功举办了6届,大赛旨 ...

  4. 围绕质量抓管理,增强团队战斗力——互联网+参赛经验分享(1)

    笔者在本年度互联网+赛事中参与了四个项目(拒绝摸鱼,均为核心成员),最近身已疲惫,心已乏累,痴心不改,我心依旧.很大的一点感触就是--围绕质量抓管理,增强团队战斗力.下面从几个方面发表一些关于团队工作 ...

  5. 山东省高校机器人大赛-智能避障避险小车经验分享

    山东省高校机器人大赛-智能避障避险小车经验分享 概述 竞赛题目 详细设计过程 车体设计 现在开车 过⑧号障碍物 如何跑完全程 概述 今天是2020年2月9日,因为新冠肺炎的原因,学校依然没有要开学的意 ...

  6. 通过WiFi控制智能小车机器人制作过程详解

    之前发的作品都是基于蓝牙控制的智能小车机器人,由于蓝牙的传输范围比较小,所以控制距离的局限性比较大,并且通过蓝牙传输视频会明显出现卡屏的现象. 而通过WiFi方式控制智能小车机器人能达到100米左右的 ...

  7. 机器人c语言入门自学app,小车机器人之二【C语言基础】

    课程简介: 最近接触了很多机器人爱好者,很多人都对机器人技术展示出了浓厚的兴趣,也在计划如何动手制作自己的第一个机器人.但是似乎很多的人都摸不到门路,只能是站在大门外满怀兴趣的向内观望,观望了一阵兴趣 ...

  8. 中国工程机器人大赛暨国际公开赛(RoboWork)

    中国工程机器人大赛暨国际公开赛(RoboWork)-探索者全地形赛 目 录 摘要 正 文 1.1 综述 1.2 系统整体设计 1.3 机械结构设计 1.4 硬件设计 1.5 软件设计 1.6 系统开发 ...

  9. 濮阳第二届创客机器人比赛_咸阳市举行第二届机器人大赛暨第一届创客大赛

    11月14日,由陕西省教育信息化管理中心指导,市教育局主办,咸阳师范学院.市少工委协办的咸阳市第二届机器人大赛暨第一届创客大赛在咸阳师范学院举办. 各个学校的同学展示自己的发明创造.咸阳日报全媒体记者 ...

最新文章

  1. php判断是否已关注,php判断用户是否关注微信订阅号或公众号
  2. Linux 文件大小 文件夹大小 磁盘大小
  3. python3精要(28)-filter
  4. Codeforces #1063C Dwarves, Hats and Extrasensory Abilities
  5. java字符流输出流_JAVA语言之IO流字符串输入输出流
  6. 从0开始安卓开发之路_Android Studio安装包
  7. 127.0.0.1 zxt.php_windows 10 下docker布置nginx+php环境,用宿主WEB目录负载均衡
  8. 从零开始学习Android开发-Android概览
  9. 【实践】地理探测器GeoDetector软件使用
  10. android4.2.2+手机管家,深度清理手机垃圾 腾讯手机管家V4.2评测
  11. 【内网渗透】搭建隧道
  12. 动画--easeljs中的movieClip控件示例?
  13. 湖南大学计算机专业推免生,湖南大学2018年招收推荐免试攻读研究生简章
  14. ubuntu 1804 安装matlab2018a
  15. java tongpaiyu danliantiao_Java Pinyin.cou4方法代碼示例
  16. 安卓 OpenGLES 魔方
  17. 中兴跳楼程序员妻子:他们就这样把我老公逼死了
  18. 康宁杰瑞、君实生物、天境生物人事任命;赛诺菲诺维乐在中国上市新适应证 | 医药健闻...
  19. 国产操作系统: 盘点8款国产Linux桌面操作系统
  20. Cmake和Mingw下载

热门文章

  1. Java基础入门(六)
  2. 1 0 2 4 程序员防脱发指南
  3. 几组数据的相关性python_几的解釋|几的意思|漢典“几”字的基本解釋
  4. 短视频挺进在线音乐腹地
  5. 马云励志演讲:要相信80后、90后创业
  6. 计算机系男生横幅,男生节标语横幅
  7. 二十四、冷战和消费主义
  8. MATLAB——基于图像相减的纸牌识别系统
  9. 白银之手服务器人物不显示,白银之手 - 萌娘百科 万物皆可萌的百科全书
  10. CMap How-to