文档库
色块与黑线巡线
这两个案例能帮助理解“像素经过阈值变成特征,再由特征决定动作”。首先只观察识别,不连接机器人运动。
实验一:多色色块
烧录color,准备红、黄、绿、蓝或紫色物体与较简单背景。把一种颜色放入画面中央,观察标签、中心点和包围框,再向左右移动。
算法以2×2像素步长采样,先检查亮度及通道差,再按RGB关系划分五类颜色,最终输出采样点最多的一类。这里的“最大色块”是该颜色的全部合格采样点集合,不是经过连通域分割的最大物体。两个相隔很远的红色物体会合并成一个框;物体不必是正方形。
| 参数 | 默认 | 调整思路 |
|---|---|---|
| color_min_samples | 96 | 增大可忽略小区域,也可能漏掉远处目标 |
| color_min_brightness | 70 | 依据最大RGB通道排除过暗点;不是照度值 |
| color_min_chroma | 35 | 排除颜色差异小的灰白区域 |
目标不稳定时先简化背景和补均匀光,再调参数。放一个灰白物体与一个彩色物体做对照;自动曝光、白平衡变化会影响RGB阈值。
输出type=1,颜色id为1红、2黄、3绿、4蓝、5紫。中心相对画面中心归一化:左为负、右为正,上为负、下为正。中心是合格点平均位置,不一定等于包围框几何中心。
**完成标准:**目标移到左/中/右,x方向变化正确;移走目标后detected=false;加入第二个同色物体能解释合并框。
实验二:黑线巡线
烧录line。用浅色底板和深色线条,推荐白底黑线;相机固定朝向前方地面,让线从画面底部延伸到下半幅上方。
算法只检查画面下半幅三个水平带,至少两个带有足够暗点才报告有效目标。放在画面上半部的一小段黑线可能完全不被检测。当前不支持指定彩色线,也不会自动反转成白线模式。
默认line_threshold=65,灰度低于阈值的点视为暗点。背景阴影被算作线时可尝试降低阈值;线条本身较浅时可尝试提高,但要检查是否连背景也被纳入。先固定拍摄几何关系,再调整阈值。
网页画方向线,不画普通矩形。输出type=2:x为各扫描带加权后的横向偏差,y固定500,w为底部带覆盖率标度;h与aux存近似方向量。该方向量是像素斜率缩放,不是直接可用的角度或弧度,不要把它原样发给六足的angle字段。
【图片占位:白底黑线实验图,画出下半幅三个扫描带,以及正常直线、偏左、偏右三种姿态。】
**完成标准:**线左移/右移时x符号正确;线退出下半幅或只剩一个有效带时报告丢失;更换光照后能重新解释阈值。要变成机器人巡线,请接着读视觉闭环(对应章节本次未导入)。