1. 案例目的
学习 AI 视觉感知模块的色块检测功能,并用 CoCube 对不同的色块做出反应。
2. 使用材料

3. 软件平台
4. 算法知识
参考教程
文档教程:算法介绍 — 色块检测 Blob
从 Sengo1的屏幕运行状态如下所示,屏幕沿水平方向X与竖直方向Y将图像100等分, 摄像头画面左上角为原点坐标(0,0),右下角坐标为(100,100),图像中心区域坐标为(50,50),当识别到相应的色块会返回其X,Y,W,H

需要使用到的积木说明
- Sengo 1 初始化积木
在使用 摄像头前需要先执行初始化积木。通常会放在"当启动时"帽子积木下。

- Sengo1 设置模式积木

- 色块检测算法参数设置
选择检测的颜色,以及识别的区域大小

- Sengo1 色块结果读取


返回色块的检测结果
包括中心x坐标、中心y坐标、宽度w、高度h
5. 开始编程
连接设备:通过有线或者无线方式,连接 MicroBlocks IDE 与 CoCube 机器人,并将 AI 视觉感知模块拓展在 CoCube 机器人前方。
载入积木库:添加机器人积木库中的"CoCube Sengo1"或者"CoCube Sengo2",具体库的选择依据摄像头硬件型号,两者使用上无明显区别,Sengo2具备更多的功能,以下案例教程以Sengo1库演示。

- 摄像头模块初始化:选择启动时先将Sengo1初始化,将摄像头的算法模式设置为色块检测模式用于色块识别,同时将"dx""dy"初始化为0,两个变量作为后续判断目标色块的位置判断的关键参数。

- 重复获取色块位置:通过"Sengo1获取色块的"属性,观察当目标色块在摄像头屏幕中时的位置与尺寸标签,以及确定中央位置的参数,通过"dx"和"dy"判断色块离屏幕中心位置的偏差与CoCube后续应该怎么调整方向与位置。


提问:该积木相当于什么?

- 编写自己的程序:有了上述的调试代码,不妨自己试试组合更多的功能吧!
6. 挑战一下
基于色块识别功能,实现跟随蓝色圆柱移动的功能。
注意,需要手动设置Sengo1摄像头的色块识别的参数,将识别色块的颜色由出厂默认红色,更改为蓝色。

参考代码:案例 Sengo1 色块检测
参考代码:案例 Sengo2 色块检测