RBF机器人比赛-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4095|回复: 0

[项目] RBF机器人比赛

[复制链接]
发表于 2017-10-24 09:20 | 显示全部楼层 |阅读模式
本帖最后由 Kevin的小小罗 于 2017-10-30 19:21 编辑

Hi,大家好!我报名的RBF机器人比赛,也就是在图1的路径中让小车从起点跑到终点,途中要完成对物体的识别并搬运(未实现)。在设计过程中,我联想到了运动场的跑道,跑道线可以用来引导机器人行进,由此可以做一个简易的陪跑小车,陪跑小车可以让人们跑步时不再孤单,运动员可以在训练时有一个参考物,让训练更高效。陪跑小车需要实现的最主要两个功能便是巡线和避障,该小车的创新点便在于能够实现寻线和避障之间的灵活切换 。
小车用的是kittenbot的两轮小车,主控板是RosBot,它将arduino主控板和电机驱动板、传感器扩展板三合一结合起来,非常方便于各种功能小车的制作。
203135llq12bzb21b61jfk.png

图1

Image.png

图2

跑道看似简单,由于水平所限,在实际的调试过程中还是遇到了各种问题。赛道最明显的特点就是寻线(黑线)和避障(蓝色部分是墙体)交叉出现,所以小车必须能在巡线和避障之间从容切换。
我的思路是“有线寻线,无线避障”,流程图如图2所示。在实际调试中,判断是否检测到黑线需要设定一个阈值范围,因为小车在巡线过程中,同样会有短时间内检测不到黑线的情况,设定阈值范围可以减少误操作。                        
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/203135llq12bzb21b61jfk.png
图3和图4是组装起来的小车模型,采用kittenbot的五路巡线模块进行巡线;kittenbot五路寻线模块与一般的寻线模块有所不同,它的检测值为模拟量,而不是数字量0/1,检测灵敏度更高,适于寻线。
采用超声波模块进行避障,但在调试中发现,只用超声波模块进行避障效果并不好,建议采用红外避障模块和超声波模块同时检测障碍物。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(1).png QQ图片20171023002132.jpg

图3

QQ图片20171023002115.jpg

图4

小车采用PID算法控制,在一个闭环系统里,对输入量进行比例、积分、微分运算,然后相加,输出量就是小车速度。闭环系统的优点就是有反馈,可以知道输出的状态是怎样的,与开环控制相比控制更加准确。
编写程序过程中,在用servo库编写舵机运动程序时,发现舵机与电机发生冲突,使小车一侧电机不能动了,分析之后得出servo库与PWM调速有一些冲突,所以在同时使用舵机和电机时,不要使用servo库,需要自己编写一个舵机运动函数。




源代码:
[url=]xunxianbizhang.zip[/url]


视频网址:http://v.youku.com/v_show/id_XMz ... j.8428770.3416059.1





















xunxianbizhang.zip

3.36 KB, 下载次数: 28

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:31 , Processed in 0.093671 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表