人型机器人视觉处理——颜色避障

上期我们通过HSV的识别机制让机器人实现了垃圾分类的功能,让机器人更具备人性的特点。这期我们将深化软件中函数与赋值的使用。让机器人在碰到不同颜色时能够做出不同的反应,以达到躲避障碍物的功能。
预期效果:使用两种不同颜色,结合颜色的HSV识别和颜色的占比率识别,在检测到红色障碍时需要避开,找到蓝色障碍物设置下蹲动作。


人型机器人视觉处理——颜色避障
效果展示

一、道具制作
制作6个高52厘米,直径为7.5的圆柱体障碍物,红色障碍物4个,蓝色障碍物2个。

人型机器人视觉处理——颜色避障
避障道具

为了防止在颜色避障过程中受到其他颜色的干扰,在场地边搭建高为59厘米的围栏

人型机器人视觉处理——颜色避障
颜色避障场地

二、程序设计

1、红色障碍识别

机器人在不转头的状态下识别到在红色的占比率小于170时:


人型机器人视觉处理——颜色避障
(未转头识别红色比例小于170)

如果机器人在未转头状态下,识别到的红色障碍物比例大于170,说明此时机器人与障碍物之间的距离较近。使用函数与赋值精简程序。
1)将向右调整赋值为C等于20

人型机器人视觉处理——颜色避障
(c=20向右调整)

3)头部向右转动判断识别赋值为a等于1


人型机器人视觉处理——颜色避障
(a=1头部向右判断识别)

4)向左转动判断识别赋值为a等于2。调整位置完成之后,将c与a赋值为0,跳出该程序。


人型机器人视觉处理——颜色避障
(a=2头部向左判断识别)

人型机器人视觉处理——颜色避障
(红色比例大于等于170总程序)

2.蓝色障碍识别

机器人识别到蓝色障碍物,蓝色障碍物比例大于10,对蓝色障碍物X坐标进行判断,调整位置。


人型机器人视觉处理——颜色避障
(蓝色比例大于10)

如果没有识别到蓝色障碍物,或者识别到蓝色障碍物比例小于10,让机器人进入a等于1的程序中,头部左右转动,寻找蓝色障碍物。


人型机器人视觉处理——颜色避障
(蓝色比例小于10)

合并程序


人型机器人视觉处理——颜色避障
( c等于10未转头识别红色障碍物)
人型机器人视觉处理——颜色避障
(c等于100蓝色面积大于10)

颜色避障总程序如下:


人型机器人视觉处理——颜色避障
(颜色避障总程序)

程序整体看起来会有一些复杂,但是每个部分的逻辑还是很清晰易懂的。把每个部分先通过函数的形式封装起来,再放到总程序中,通过这样的思路可以化繁为简,程序的可读性也会增加。上期我们先接触了函数这个模块,这个案例强化了函数的用法,此后的案例中将会经常用到这个模块,对于一些复杂的功能,函数是其中必不可少的模块。大家有兴趣的可以自己去尝试下,多练习练习,有什么不懂得可以留言,我会及时回复。
参考网站:https://bbs.lejurobot.com/