汤果 发表于 2020-5-31 17:01:08

M.A.R.K|利用计算机视觉巡线

M.A.R.K 小车的摄像头捕获的实时画面经过 K210 芯片运算后可以计算出地图上黑线的偏转信息,我们可以根据偏转角度来让小车进行视觉巡线。
## 相关代码块介绍
## 转弯角度
![](https://docproxy.chmakered.com/Public/Uploads/2019-11-28/5ddf3dabd8b6c.png)
"转弯角度"返回视觉巡线需要的转弯角度。转弯角度越为正时,M.A.R.K 左转,转弯角度为负数时,M.A.R.K 右转,转弯角度接近 0 时,M.A.R.K 直行。
![](data/attachment/album/202005/31/162017itssx6ftttnkfn9e.jpg)
我们可以看到,摄像头画面从下到上分成 A、B、C 三个区域。这张图中黑色区域的中心“+”位置都在画面的左侧,左上角的偏转角度是 32,说明小车需要左转纠偏,使得线在画面中间的位置。
![](data/attachment/album/202005/31/162307p375bs1kx42kz575.jpg)
这张图中三个区域黑色的中心点都靠右,小车需要右转才能保持黑线在中间的位置。
## 视觉巡线:转弯角度()速度(50)灵敏度(60)
![](https://docproxy.chmakered.com/Public/Uploads/2019-11-29/5de0f56c7ea77.png)
以某个速度控制小车进行视觉巡线。
- 转弯角度:需要放入“图像识别”类别下的“转弯角度”积木块
- 速度:0~100
- 灵敏度:40-70

## 编写代码
首先从“底盘”分类下找到【视觉巡线:转弯角度()速度(50)灵敏度(60)】和【舵机(1)转到(90)度】两个积木块。
![](data/attachment/album/202005/31/163723wrrwrrqqjr6khr4w.png)
移出“图像识别”分类下的【转弯角度】积木块。
![](data/attachment/album/202005/31/163729tjcmty4zxh40emm1.png)
小车启动的时候需要先将摄像头偏转一定的角度,使得摄像头朝着地面。然后运行视觉巡线的程序。
![](data/attachment/album/202005/31/163749zkrmmf9dum7id930.png)
代码就那么几行,相当简单。接着就可以去地图上测试了。
## 测试运行
把小车放在地图上测试巡线效果。注意需要保持光线充足。

https://v.qq.com/x/page/v0974an0s31.html

以上效果不是一次测试就能出来的。有时候小车会跑出黑线,回不来。所以需要修改程序的参数,比如灵敏度和速度。反复修改,调试,直到找到合适的数值。
## 巡线方法对比
从代码量上来看,传统的巡线传感器巡线代码比较长,视觉巡线代码量少。传统的巡线传感器算法能够让学生很好地理解常规巡线的原理及代码编写过程。视觉巡线将原理背后的代码都封装成简单的一个代码块,直接调用即可,使用起来十分方便,降低了学生学习人工智能、无人驾驶的门槛。
## 建议
强烈建议工程师修改一下屏幕的显示方式。目前摄像头画面是以屏幕长边为底边的,这样只能从小车侧面看屏幕。而巡线的时候我们一般站在小车后面观察比较多,这样对学生来说理解视觉巡线的原理更加容易。目前画面是 90 度垂直的,很难快速判断黑线在视野中的位置。
页: [1]
查看完整版本: M.A.R.K|利用计算机视觉巡线