继西门子杯智能制造挑战赛后,俺参加了第七届工程训练大赛(现在改名叫“中国大学生工程实践与创新能力大赛”),后续文章皆简称“工训赛”。工训赛(智能物流搬运赛项)涉及的内容较丰富,也算是圆了我“熬夜做比赛,做出点东西”的梦,为此也有必要写上些许文章,记录一下不是?于是便有了工训系列文章。
须知:我们的方案很多地方是存在缺漏的,但当时鉴于时间及金钱原因,故未改。so,后续介绍的方案,切勿直接照搬。
工训赛系列文章包括三大部分,方案设计、器件调试、程序框架。可以去知乎阅读系列文章,十多篇文章已经全部更新完毕。
Clink:2021-工程实践与创新大赛-智能物流搬运
此外,也可以关注我滴公众号【Poao】,里面更新了系列文章,排版什么滴看着更加舒服。后台回复“工训”还能够获取到汇总的工训系列资料~
Clink 跳转WX_工训搬运小车系列文章
arduino mega2560 mini、42步进电机(drv8825)、麦克纳姆轮(七英寸)、十六路机械臂控制板(五自由度机械臂)、hwt101(测yaw)、灰度寻迹模块(单路24)、openmv4(加补光灯)、串口屏。
比赛场地看这里: Poao:工训物流搬运机器人物料及赛道—2021
比赛视频:https://www.zhihu.com/zvideo/1369967763247693824 点击前面的链接哇
大概看看吧,我们没有画具体的三维图,只能看看实物图啦。
主要信息都在下面两张图片中啦,更多内容还是看看上面提到的视频链接吧~
工训的程序主要分为:arduino主控+openmv识别两大部分。
可参考如下两篇文章:
2021-工训搬运机器人-程序简述
2021-工训搬运机器人-openmv识别
完整程序的获取途径:
2021-第七届工训赛-物流搬小车程序—Clik here
2021-工训搬运机器人-openmv识别二维码&物料位置—Clik here
(建议使用电脑或者ipad打开上述网页,点击“立即下载”。使用手机打开找不到正确的下载入口)
初期的步进电机驱动与寻迹程序:
点击此处下载(蓝奏云)
相比较于前面的完整的赛前程序,该程序更容易理解。(配合系列文章)
一、主控选择
2021年没啥限制,主控制板没啥限制要求。(可树莓派)其中比较常见的选择为stm32的f4系列或arduino mega2560。秉承谁简单用谁的原则,我们选用的自然是mega2560。 mega2560有4个硬件串口,一个iic,16路模拟输入,50多个数字io口,完全够用。(尺寸 54*38 mm 重 8.7g)
使用情况:
1)机械臂控制板,hwt101,openmv各占用一个硬件串口; 2)串口屏占用两个数字引脚,模拟软串口;
3)十六路寻迹模块占用16个模拟输入引脚; 4)四个步进电机的step/dir占用8个数字引脚,使能端en占用一个数字引脚。
(共计3个硬件串口,16个模拟输入,11个数字io)
二、驱动方案
Poao:2021-工训搬运机器人-行进方案(步进电机+麦克纳姆轮)
依旧秉承以“极简”的方案实现功能,小车的驱动方案选用步进电机与麦克纳姆轮。 驱动电机也可选择直流减速带编码器电机,无刷电机(如大疆的电机)。我们选择步进电机主要考虑到两点。
其一,步进电机以脉冲驱动,控制精度高,控制算法简单,开环控制即可实现不错的效果;其二,步进电机的转矩大,劲儿大,且不容易坏掉。 补充(步进电机控制板相关内容 )
Poao:四路步进电机驱动板(工训小车)— A4988/DRV8825
Poao:42步进电机驱动—A4988/DRV8825调节
至于轮子的选择,亦有麦克纳姆轮,全向轮,普通轮子可选。这个没咋想,麦轮安装方法,用起来也简单,所以就选了麦轮。
三、机械臂控制
2021/10/1 更新:
Poao:2021-工训搬运机器人-机械臂动作顺序
我们的机械臂结构与tb上的六自由度机械臂类似,多次拆装后更改为五自由度。五个舵机最终选用十六路舵机控制板控制,机械臂控制板通过串口与主控板进行通讯。
1)采用上位机进行机械臂动作组的调试;
2)动作组皆烧录到机械臂控制板中;
3)主控板直接控制机械臂控制板执行对应动作组。
四、循迹选型
2021/10/2 更新:
Poao:2021-工训搬运机器人-循迹编程思路
寻迹模块尝试过红外寻迹与灰度寻迹,最终采用灰度寻迹模块。为避免阳光对寻迹模块的影响,寻迹模块配备了黑色的挡光罩。(鉴于资金有限,实际仅使用了10个单路灰度寻迹。)
五、姿态校准
2021/5/11 更新:
Poao:2021-工训搬运机器人-HWT101
尽管步进电机精度高,但受到各种因素的影响,我们无法保证小车始终走直线,难免会有整体的角度偏移。除外,由于机械臂抓取放置物料的动作组是开环的(提前调好的动作组),为保证较好的色环放置精度,只能尽量保证小车每次都跑到固定的位置(定点,同时车身不偏移)。
综上,我们需求为一个可以精准测量yaw角的陀螺仪。可供选择的陀螺仪很多,有mpu6050/9250(iic),需要通过算法估算yaw角;有jy901(iic/uart),可直接通过串口获取模块解算的yaw角,但测量环境最好远离磁场,测量的yaw角也存在着累计偏移。
总之,可供选择的陀螺仪很多,但都存在着累计偏差,磁场干扰等问题(我们小车底板是3mm铁板)。 最终选择了一款价格比较昂贵的模块,hwt101。 只能输出yaw角及z轴加速度,抗干扰能力强,几乎无偏移,效果很好。
六、二维码与物料识别
2021/4/25 更新:
Poao:2021-工训搬运机器人-openmv识别
搜寻往届资料,二维码和物料颜色识别的方案无外乎两种,即二维码识别模块(如微雪二维码识别模块)和颜色识别模块、openmv。 大概是因为我们手头有两个openmv,故都采用openmv实现了,效果也不错。(openmv的二维码识别与模块相差不大,但其颜色识别快很多,一次识别上下两层物料顺序。)
我的大部分文章都写于知乎,可能会陆续搬运至csdn
(哈哈哈,不想搬运啦。工训系列有十多篇文章,搬运太麻烦啦)
下面这篇文章算是该文章的升级版吧,有详细的器件选型信息。
Poao:2021-工训搬运机器人-搬运小车方案简述
一、方案设计(完结)
搬运小车方案总述(该文章涵盖了一系列文章):
Poao:2021-工训搬运机器人-搬运小车方案简述
1)行进驱动方案:
Poao:2021-工训搬运机器人-行进方案(步进电机+麦克纳姆轮)
2)循迹定位方案:
Poao:2021-工训搬运机器人-循迹编程思路
3)机械臂动作顺序:
Poao:2021-工训搬运机器人-机械臂动作顺序
4)识别方案(二维码+物料):
Poao:2021-工训搬运机器人-openmv识别
二、器件调试
1)步进电机驱动:
Poao:四路步进电机驱动板(工训小车)— A4988/DRV8825
Poao:42步进电机驱动—A4988/DRV8825调节
2)HWT101测姿态角—矫正车姿:
Poao:2021-工训搬运机器人-HWT101
3)串口屏推荐及使用简述:
Poao:2021-工训搬运机器人-串口屏
三、程序框架(完结)
赛前程序框架介绍:2021-工训搬运机器人-程序简述
1)循迹计数详讲:Poao:2021-程序简述-循迹板块
2)机械臂动作顺序解算:2021-程序简述-机械臂顺序板块