怎样制作避障小车

电子说

1.3w人已加入

描述

本项目是在 PVCBOT-A型 基础平台车——BEAM小车的基础上,加装了避障传感器以及控制电路,组成了一台具体有避障功能的小车。而这个所谓避障小车,实际上就是和 PVCBOT-1号 机器人类似的避障机器人,除了其制作过程是采用了模块化的开发思路外,与1号的体型类似且控制电路是一样的,因此本项目的机器人可看作是1号机器人的升级版本——疯狂小强二代。

虽说本项目机器人与1号项目机器人本身有着很多相同之处,但是本项目的重点却是在于介绍怎么用模块化的思想去开发具体的项目,以及介绍如何在A型基础平台车上面扩展装备以实现既定的功能应用。

运动机理

控制前面两个轮子的转动方向就可以控制整个机器人行进的方向:

1、左右两个前轮都向前转,则机器人向“正前方”直线前进;

2、左右两个前轮都向后转,则机器人向“正后方”直线倒退;

3、左前轮向后转,右前轮向前转,则机器人将以后轮为轴心逆时针转动,即实现向“右后方”转弯倒退;

4、左前轮向前转,右前轮向后转,则机器人将以后轮为轴心顺时针转动,即实现向“左后方”转弯倒退。

机器人

控制原理

在机器人的头部用钢丝做两根触须,一左一右各连接到一个碰撞开关,分别控制两个前轮的旋转方向。

特别注意,左右触须与对应控制的电机是交叉过来的,即:左边的触须连接右边的碰撞开关,控制右边的电机;右边的触须连接左边的碰撞开关,控制左边的电机。

机器人

(1)无障碍物

当前方都没有障碍物,左右两个轮子都向前正转,则机器人向“前方”直线前进。

(2)左前方有障碍物

当左前方有障碍物,在左边触须碰到障碍物时,控制右边的轮子反转,则机器人向“左后方”倒退并转弯,即方向转向了障碍物的右边,从而避开了左边的障碍物。

向后倒退转弯会持续一会,在完成转弯之后,左边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。

(3)右前方有障碍物

当右前方有障碍物,在右边触须碰到障碍物时,控制左边的轮子反转,则机器人向“右后方”倒退并转弯,即方向转向了障碍物的左边,从而避开了右边的障碍物。

向后倒退转弯会持续一会,在完成转弯之后,右边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。

(4)正前方有障碍物

当正前方有障碍物,左右两边的触须都会碰到障碍物,控制左右两边的轮子都反转,则机器人向“正后方”倒退,从而避开障碍物。

在直线倒退持续了一会后,左右两边的触须都不再碰到障碍物,则两个轮子都正转又变成直线前进;然后又会遇到正前方的障碍物又会直线倒退,再直线前进……如此反复变成一个死循环。

理论上会出现以上这样的问题,但是实际上并不会,因为无论是左右轮的摩擦系数有所差异,还是左右两组电机的驱动功率有所差异,或是左右两组电机的电源的电量有所差异,又或是障碍物左右两部分表面的光滑程度有所差异,都会导致实际上左右两边的触须碰到障碍物有一个时间差,都无法做到两边轮子同时反转,也就是说向后倒退的时候不是完全的直线而是会有所偏移。而且即便第一次是直线后退,但在往复几次碰撞之后肯定会出现偏移,最终解除循环避开障碍物向新的方向前进。

在视频中,我们也可以看到这一有趣的一幕,机器人连续几次反复撞上“墙壁”,最后还是会重新转向另外的方向。

另外还有一种情况,就是有些时候机器人会卡在墙角停顿了好一阵,然后才转向。这是因为有些时候由于触须碰撞墙壁的角度比较偏,不是正面碰撞,导致碰撞的力度不够,触须无法立即触发碰撞开关响应,而机器人在电机的推动下不断的挤向墙壁,缓慢的挤压后才触发了碰撞开关控制转向,也就是看到了机器人在墙角停顿了一会才转向的情景。出现这情况,如果电机的输出功率不足,或是由于电池的电量下降导致动力不足,可能会导致机器人在墙角无力挤压触发碰撞开关,最终变成卡死在墙角,这个时候要么是换大功率的电机,要么就是换新电池。

特别说明:在本项目里面,必须使用具有一定弹性的钢丝作为触须,主要是碰撞开关的能够触发所需要受的力要大于维持触发所需要受的力。

触须在遇到障碍物后,受挤压到一定程度就会触发碰撞开关,之后机器人会转向,而由于弹性的存在触须还会还会触碰障碍物,受到挤压还能够给碰撞开关施加一定时间的力使得碰撞开关没有立即释放,让机器人的转向会维持一定的时间。

当机器人逐渐远离障碍物之后,触须挤压碰撞开关的力会逐渐减小,直到挤压所产生的力小于维持碰撞开关触发所需要受到的力时,碰撞开关释放然后机器人重新会前进。不过这个时候机器人已经转向了足够的时间,前进的方向已经变了,就可以避开障碍物了。

假如使用没有弹性的触须,则可能机器人碰到障碍物之后还没有来得及足够时间的转向,机器人就又再一次撞上障碍物,而由于这个时候离障碍物距离很近再次撞上去的力量会比较小,甚至无法让触须有足够的力量触发碰撞开关控制转向,这样最终就变成机器人卡在障碍物前面动弹不得。

另外,使用没有弹性的触须,则机器人瞬间受到的冲击力会比较大,还容易造成碰撞开关或者是机器人结构的损坏。

假如触须的角度没有弯折好,也可能会出现机器人在障碍物前反复“撞击——退回——撞击——退回……”的情形,或者最终卡在障碍物前面动弹不得的情况。这主要是触须的弯折程度比较靠后(靠近身体一侧),使得触须上比较靠近碰撞开关的位置接触到障碍物,当机器人遇到障碍物倒退的时候,触须的弹性作用没有发挥出来,机器人一旦开始倒退触须就无法继续保持对碰撞开关的触发压力,导致碰撞开关立即又释放,而机器人没有持续倒退到了完全转向的程度,就又开始前进去撞击障碍物,最后反复以上状态而僵持在障碍物前。

要解决这个问题,可以把触须的弯折向前方一点,即触须尽量向前伸(对应前进的方向),而不是往后弯。

电路原理

机器人头部有两根钢丝作的触须,触须分别连接在两个碰撞开关上(注意两根钢丝对应的碰撞开关是交叉的,即:“左—右”钢丝,对应“右—左”碰撞开关)。

(1)没有障碍物时,触须没有被挤压,不触发碰撞开关,碰撞开关默认的通路,给电机供给一个“正方向”的电流,电机于是“顺时针方向”旋转。

(2)有障碍物时,触须被挤压,触发碰撞开关,碰撞开关断开默认通路,连接另外的一组通路,给电机供一个“反方向”的电流,电机于是“逆时针方向”旋转。

这里给出完整的电路原理图:

机器人

为了方便大家,这里再给出实物电路接线图供参考。

机器人

本项目以PVCBOT-A型平台车为基础,以杜邦线和排针为主要连接方式, 以下为电路焊接示意图。

机器人

准备工作

本项目需要的器材比较简单,主要包括:PVC线槽、PVCBOT-A型基础平台小车、碰撞开关、拨动开关、螺丝、排针等。

制作过程——

控制电路:

机器人

传感器:

机器人

电源:

总装:

调试:

按照电路原理图或者焊接示意图进行电路检查,看线路是否连接正确,特别是注意电机的电机是否正确。然后接上电池打开开关,检测电机的控制效果是正确的:

1、打开拨动开关后,没有障碍物时,两个电机都是往前转动的;

2、左边触须被按压,则右边的电机反转;

3、右边触须被按压,则左边的电机反转;

4、两个触须都被按压,则两个电机都反转。

特别注意,如果发现某电机的转向与预期的相反了,则只要把该电机的两根电极杜邦线调换过来插接即可。

(1)假如小车默认情况下是原地打转,则说明其中一个电机的电源接反了,尝试把其中任意一个电机的两根电极杜邦线调换过来(先试第一个电机,如果不对再试另一个电机);

(2)假如小车默认情况下是直线后退,则说明两个电机的电源都接反了,则同时把两个电机各自的两根电极杜邦线都调换过来。

假如机器人在障碍物前出现反复“撞击——退回——撞击——退回……”的情形,或者最终卡在障碍物前面动弹不得,则:

情况1:触须过软

假如触须过细过软,则碰到障碍物时,触须把碰撞产生的冲击力都吸收了,无法挤压触发碰撞开关,导致机器人碰到障碍物也不会回头,但又顶着障碍物无法前进,租后卡死在障碍物前。

这种情况下要解决问题,则需要把触须换成粗一点硬一点的钢丝。提示:DIY-BOT网店所提供的套件,里面包含的钢丝不存在这个问题。

情况2:触须过硬

假如触须是比较粗比较硬,缺乏弹性的,则触须碰到障碍物时虽然可以挤压触发碰撞开关让机器人后退,但由于没有弹性则就没有起到“存储碰撞能量”的作用,机器人开始后退马上就释放碰撞开关,没有能够让后退保持一定的时间,导致机器人后退还没有到转向的程度,就又往前冲,最后变得在障碍物前反复冲撞的情形。

这种情况下要解决问题,则需要把触须换成稍微软一点弹性好一点的钢丝。提示:DIY-BOT网店所提供的套件,里面包含的钢丝不存在这个问题。

情况3:触须弯折的角度不合适

假如触须的弯折程度比较靠后(靠近身体一侧),使得触须上比较靠近碰撞开关的位置接触到障碍物,当机器人遇到障碍物倒退的时候,触须弹性的“存储碰撞能量”的作用也没有发挥出来,就类似上面情况2的情形,机器人碰到障碍物开始倒退后,无法让倒退保持一点的时间,很快就又恢复前进的状态往前冲,最后变得在障碍物前反复冲撞的情形。

这种情况下要解决问题,可以把触须的弯折向前方一点,即触须尽量向前伸(对应前进的方向),而不是往后弯。

效果展示——

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分