机器谱

S079】如履平地全地形小车

图文展示3264(1)

图文展示3264(1)

副标题

作品说明

作者:杨思琪 许凌皓 常梦岳 原皓 张宸羿

单位:西安交通大学

指导老师:王明伟 王亚南 张育林

1. 作品简介

1.1 小车的组成

      小车的机械本体、主控板、检测元器件、电机和电池等使用机器时代(北京)科技有限公司的“探索者”创新套件以及少量的自加工零件。

1.2作品功能

      障碍物分别为三种颜色的气球、楼梯、管道、窄桥,各障碍物由黑色引导线连接,形成完整的比赛赛道,全地形小车可以在冷光源、低照度、无磁场干扰的条件下启动后自动行驶并跨越三种障碍物(管道,窄桥,楼梯)后,识别颜色板上随机色卡抽取(检录时由队员随机抽取)的一种颜色并扎破对应颜色气球(气球摆放顺序也由队员随机抽取),顺着尺寸标记冲过终点。

      一般赛场环境的不确定因素较多,例如:场地表面可能有纹路和不平整、边框上有裂缝、光照条件有变化等等。参赛队在设计机器人时考虑了各种应对措施,即全地形小车对各种突发情况与地形有一定的适应性。

      小车依靠自身结构的自适应型与精确的代码控制,迅速稳定地攀爬与通过窄桥与楼梯障碍物;用过灰度传感器的寻迹功能寻找串联各个障碍物的黑线确定小车行进方向,并配合代码控制通过转弯处的管道;使用颜色传感器识别色卡与气球的颜色,与出针结构相互配合,扎破与色卡颜色扫描相同的气球。

2. 结构方案说明

2.1 作品机构简图

作品说明

整体建模

底盘机构简图

齿轮齿条机构简图

2.2 装配图

装配图

2.3 自加工零件

齿轮

齿条

探索者 J20(改)

2.4 设计思路

     该全地形小车的设计需满足在“平地直道,阶梯,上下坡道,弯道,扎气球”四种复杂地形上的平稳前进和一种功能实现要求,故根据以上需求分别给出对应的解决方案。

平地直行

     本类型小车采取寻迹前进方式,选取了灰度传感器置于地面黑线两侧,上方 1-3cm 底盘处,为两前轮的内侧轮毂连接处。

弯道

     转弯的实现方式与直线类似,通过灰度传感器判断转向,随后通过内外侧轮差速实现转弯。

上下坡

     上坡的重难点在于动力的分配、两侧轮同速的控制以及在小车撞上坡道提供爬坡力的机构。第一个问题的解决方案我们通过电控解决:首先六轮均为主动轮,存在动力,但由于电机本身的差异,同样的 pwm 波输出却产生了不同效果的电机动力,通过不断试验调整参数使电机输出力趋于一致;第二个问题的解决方案为自适应性前轮机构,在冲坡的瞬间,在冲击力的作用下,自适应性轮可以被动地调整轮臂与机身的夹角以适应坡度,此时后轮仍在地面上,可以提供小车前进必须的动力和摩擦力。使整车平稳上坡。

阶梯

     与爬坡类似,在上台阶过程存在动力分配问题,即在上台阶过程中应避免 2 个以上动力轮悬空导致整机动力不够的情况。为解决此难题,我们设计的小车六轮均为动力轮,且前轮为大轮,且其半径大于第一级台阶高度,用以撞击台阶;最后轮的轮臂与机身为铰接,可随地形自适应摆动,通过重力锁合保证和楼梯面的接触,提高摩擦力,保证任意时刻总存在 4 个以上的动力轮对机身进行驱动,使小车平稳爬楼。

扎气球

     完成此动作的最直接动作即为针垂直于气球的直线运动,能实现此运动的机构较多,但从可靠性上考虑,丝杠螺母机构和齿轮齿条机构最为出色。其中,丝杠螺母机构传动比小,摩擦力大,进给速率较慢,不能满足小车“时效性”的设计需求,相比之下齿轮齿条机构速度快,稳定性强,为本运动实现机构的最优解。

2.5 创新点

     为了克服小车上楼难的问题,我们队伍在底盘的选择上考虑了多种方案。小车底盘的选择可以大致分为刚性底盘、主动自适应底盘和被动自适应底盘。最终作品采用了被动自适应底盘,如装配图所示,前轮为大轮,能够轻松翻越楼梯,后轮随地形自适应摆动,通过重力锁合保证了和楼梯面的接触,提高摩擦力,使小车平稳爬楼。扎气球机构采用齿轮齿条传动,电机控制齿轮旋转带动齿条前进,传动平稳。此外,传感器与针的一体化设计也大大减少了空间占用,符合我们对该功能的预期。

     机械结构的创新点主要可分为两个部分:被动自适应底盘和齿轮齿条传感扎气球一体化机构。

2.5.1被动自适应底盘

     本机共三对动力轮,前两对与车架固连,后一对可沿轴转动。车架上的双足支杆用于限制后轮转动角度。前轮为大轮,能够轻松翻越楼梯,后轮随地形自适应摆动,通过重力锁合保证了和楼梯面的接触,提高摩擦力,使小车平稳快速爬楼。

自适应态1

自适应态2

2.5.2 齿轮齿条传感扎气球一体化机构

      扎气球机构采用齿轮齿条传动,电机控制齿轮旋转带动齿条前进,传动十分平稳。齿条侧方的输出支架与直流马达支架用于限位,防止齿条侧向移动。此外,传感器与钢针采用一体化设计,传感器向气球方向移动,实现更精确的颜色识别的同时,只需经过较小距离的移动便可扎破气球,提高了电机利用率。一体化设计更节省了空间占用,进一步控制小车重量和材料成本。

齿轮齿条机构

3. 控制方案说明

3.1 控制系统设计思路

3.1.1 总体使用计时+灰度寻迹确定小车所在的位置,进而决定下一步的行动,具体分为

      当小车两侧传感器均识别为浅色区时,判定小车属于既定轨迹上,执行直行程序;

      当小车左侧识别为深色区域,右侧识别为浅色区域时,判定小车相较于原路线发生了向右倾斜,向左进行修正,同理,当小车右侧识别为深色区域,左侧识别为浅色区域时,判定小车相较于原路线发生了向左倾斜,向右进行修正;

当小车两侧的传感器均识别到深色区域时,判定小车已经到达了某种障碍物前方,检查所用的时间,根据时间的区间判断此时小车处于哪一种障碍物前方,直行通过该障碍物的相应程序。

3.1.2 通过窄坡/楼梯的控制方案

      得益于小车优秀的自适应结构,只需进行直行,在行进过程中小车结构根据地形而变化,始终保持有驱动轮着地,驱动小车爬坡、下坡、上楼梯、下楼梯。

3.1.3 扎气球的控制方案

      灰度传感器与计时系统双重判断小车当前来到色卡前后,使用颜色传感器不断进行颜色识别,若两次识别情况相同,则将该颜色确定为目标颜色,跳出颜色识别的循环,随后小车向前行进来到第一个气球前,按照识别色卡颜色方法对气球颜色进行识别,若颜色相同,则戳破该气球,戳破后小车直接行至终点,若不同,向前行进来到第二个气球处重复上述步骤,当来到第三个气球处仍未扎破气球,则前两个气球都与色卡颜色不同,即第三个气球一定是目标气球,直接扎破该气球,行至终点完成比赛。

3.1.4 弯道处管道控制方案

      该处实际上为转弯,使用灰度传感器识别小车相对于正确路径的位置并依据差速转弯的原理,控制左右轮子的速度实现小车的转弯,即通过轨道。

3.2 程序流程图

3.3 关键代码说明

3.3.1 识别颜色代码

      此为颜色识别代码,其原理为依此设置S2,S3所对应的状态,分别读取,红、绿、蓝三种颜色的脉冲值,并匹配他们的RGB范围,因为识别相同颜色的物体时脉冲数会降低,即识别该颜色物品时该颜色对应的frequency_color会明显低于其他颜色,故而通过比较各个颜色匹配过后的frequency值,最低的颜色便对应此时所识别物体的颜色。图中1代表该颜色为红色,2代表绿色,3代表蓝色。

3.3.2 扎气球程序代码

      本小组使用了两块开发版相互配合来完成识别颜色扎破气球的工作,故先使用 Serial_begin函数完成两块开发版之间的通信协议,如下所示:

     完成了通信协议后,使用一块板为主板,另一块板为从板,主板负责小车的移动与颜色的识别,根据识别情况来向从板发送相应指令,从板根据接收的指令来执行相应的程序,首先我们先介绍主板对应的程序:

      如上是识别色卡与判断第一个气球的程序,第 2,3 个气球与第一个气球大体相同,不在重复放出,其中指令 1 代表已经识别到目标气球,指令 2 代表即将开始识别气球,指令三代表识别完毕,小车继续前行。当识别到目标气球向从板发出 1 后,需等待从板完成扎破气球的动作完成后对主板进行反馈,方可行至终点;发送 2 或 3 后,无需等待从板反馈,直接进行颜色识别或小车的移动。接下来介绍从板中面对不同指令的对应程序:

      如图所示,未接受到指令时从板不可执行功能,直到主板发送了指令方可跳出死循环,通过Serial.read()函数读取主板的命令,当主板发送的是已经识别到目标气球(1)时,从板控制电机带动齿轮转动,推出钢针扎破气球,随后退回钢针,发送“Y”示意从板已经完成动作,主板可控制小车行至终点:

    当主板发送命令为3,即未识别到目标气球将继续前进时,从板依然通过电机完成钢针的退回,确保行进间不误扎其余气球;当主板发送命令为2,即即将开始识别气球时,前面 2个大轮子停止转动,确保颜色识别时小车的稳定性。

3.3.3 寻迹函数

      a为左侧传感器的状态,b为右边传感器的状态,0表示处于深色区域,1表示处于浅色区域,当小车两侧传感器均识别为浅色区时,判定小车属于既定轨迹上,执行直行程序;当小车左侧识别为深色区域,右侧识别为浅色区域时,判定小车相较于原路线发生了向右倾斜,向左进行修正,同理,当小车右侧识别为深色区域,左侧识别为浅色区域时,判定小车相较于原路线发生了向左倾斜,向右进行修正;当两侧均处于黑色区域时,证明已经达到某种障碍物前,执行特殊的forward1程序,为通过障碍物做准备。

3.4 关键电子部件说明

3.4.1 BigFish扩展板

     ⚫ 通过 BigFish 扩展板连接的电路可靠稳定,上面还扩展了伺服电机接口、8*8Led 点阵、直流电机驱动以及一个通用扩展接口,4 针防反插接口供电 5v

     ⚫ 舵机接口使用 3A 的稳压芯片 7805ADJ,为舵机提供 6v 额定电压

     ⚫ 8*8led 模块采用 MAX7219 驱动芯片

     ⚫ 板载一片直流电机驱动芯片 FAN8100MTC,支持 5v~9v 的 vin 电压,可同时驱动两个直流电机。

     ⚫ 2 个 2*5 的杜邦座扩展坞,方便无线模块、OLED、蓝牙等扩展模块直插连接,无需额外接线。

3.4.2 探索者系列灰度传感器

3.4.3 TSC3200传感器

⚫ 工作电压:2.7V-5.5V

⚫ 接口:TTL 数字接口

⚫ 光强度的高精度分辨率转换成频率

⚫ 可编程颜色和全面的输出频率

⚫ 电源中断特征

⚫ 直接和微控制器交互

4. 创新设计说明

4.1 双板相互通信配合模式

      与普通的控制不同,本组使用了两块控制板进行相互配合,缓解了单个控制板程序过繁琐,资源紧缺,供电压力大等问题。该模式主要应用于扎气球模块的程序中,主板负责检测颜色与控制小车运动,从板负责控制钢针推出与退回,不仅配合有序逻辑清晰,而且双线并行,提升了小车作业的效率,节约了时间,增强了小车的性能。

4.2 转弯修正一体化

      本组小车将修正程序与转弯程序合二为一,使在相同的寻迹程序下,小车既可以修正车身的倾斜,又可以在弯道处实现转弯,大大增强了小车的适应性,也简化了程序。

4.3 一接口驱动双轮设计

      与普通的一个直流电机接口控制一个直流电机进而控制一个轮子转动的传统设计不同,本组小车前方两个大轮子将直流电机的线接在一起由一个直流电机接口驱动,左后方两小轮,右后方两小轮同理,从而实现在程序编写中对一个直流电机口的输出控制可以同时控制两个轮子转动,大大减轻了编写程序与后期调试的工作量。

5. 设计过程,制作过程的记录

      机械设计过程中的难点主要在于上台阶、爬坡和黑线识别的稳定性。

5.1 台阶

      台阶攀爬过程中出现了小车上台阶时后轮无法正常落下与地面接触提供动力的问题。

      经讨论,发现是机身重心太靠前,使得后面的铰链活性轮无法达到“重力锁合”的效果。 随后对整机重心位置进行了调整。

一代机

二代机

随后我们又在后轮轮毂位置增加配重。

未加配重

加配重

5.2 坡道

      上坡道后,机身存在总是向一侧偏转从而跌下坡道的问题。

      经讨论发现是左右轮动力不一样。

5.3 黑线识别

      小车进入罩壳弯道后,存在灰度识别不精确,从而导致转弯程序无法准确执行的问题。

      研究发现:我们采用的探索者配套灰度传感器的正常工作高度是1-3cm,工作区间只有2cm。在平地上时,此高度较易保持,两传感器工作良好。但当小车进入透明罩壳弯道内后,传感器与地面黑线之间的距离就增加了一个罩壳的厚度,加之不同的传感器灵敏度存在差距,所以我们需要进行反复的实验,得出针对每个传感器同时适应平地和罩壳弯道的工作高度,随后根据结果调整其在机身上的对应高度,从而达到黑线识别较好的稳定性和准确度。

垫片调整传感器高度

6. 自我评价以及教师评价

6.1 自我评价

      本次进行小车作业,我们学到了很多,感触也颇深。刚开始进行设计的时候,我们参照了网上很多的资料,设想了三种方案,经过多方考量选择了其中的一种,第一版小车很快就搭建了起来,当调试时遇到了许多意想不到麻烦,比如车辆重心错误,传感器安装的高度不合适导致寻迹失误,车身由于结构问题在上楼梯时卡壳等诸多问题。初次进行改版时,我们急于一次性解决所有问题,导致结构体大变但效果不佳,后来静下心来一个一个问题解决,最终确定了最终版结构,进行了调试,最终交出了一个满意的作品。总体来说,我们对自己的表现还是比较满意的,虽然早期有些急于求成,但冷静下来后能够细心分析,认真解决问题,吃苦耐劳,勇于创新,最终学到了知识,得到了经验,也锻炼自己的各项能力。

6.2 教师评价

      参赛队员们十分认真努力,总能在活动室看见他们,最后的成果展示与初次设想有较大的改进,能够较好的完成任务,结构设计合理,控制方案完善,在参赛期间认真准备带来了不错的成果,本次不论成功与否,对队员们来说都是一次有意义的经历。

* 本项目未获得作者开源授权,无法提供资料下载

© 2022 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用