本实验是属于拓展类实验,需要搭配其他外部设备使用,这里用到了小车底盘和ROS扩展板都不属于K210模块套件内容,所以本实验效果仅供参考,如果没有对应的设备是不能直接使用本例程代码。
ROS扩展板需要提前烧录固件:ROS-CAR.hex
由于本次使用的电机电压为8.4V,所以ROS扩展板的电池不可以插入12.6V电池,需要插入8.4V电池。
小车电机连接线如下图所示:
电机Motor 1连接左前轮,电机Motor 2连接左后轮,电机Motor 3连接右前轮,电机Motor 4连接右后轮。
K210模块与ROS扩展板连接的线序如下图所示:
白色(GND)连接GND,黄色(5V)连接VCC,黑色(RXD)连接SCL,红色(TXD)连接SDA。
这里需注意一下,图示中的标识为I2C线序标识,但是K210使用的是串口通讯,由于烧录的ROS-CAR.hex文件已经把这个接口修改为串口信号,所以实际上ROS扩展板上的接口对应关系是:SCL实际上是TX,SDA实际上是RX。
本节课主要学习K210模块搭配小车底盘做视觉巡线的功能。
本次实验的参考代码路径为:CanMV\06-export\follow_line.py
等待系统初始化完成后,LCD显示摄像头画面,并且屏幕中间有一个白色的方框,请将要识别的颜色放到白色方框内,等待白色方框变绿则开始采集颜色,采集完成绿框消失,开始运行程序。
小车会沿着刚刚绿框中识别的颜色向前运动,如下图所示是个圆弧,则小车沿着圆弧运动。
如果中途发现小车经常无法巡线,请查看小车再各个位置是否都能够识别到对应的颜色,然后如果是小车反应过慢或者过快的问题,可调节适当调整FollowLinePID的值。
颜色识别的功能主要是分析颜色的LAB值,先把要识别的颜色放方框内,然后系统会根据方框内读取到的颜色的LAB值,再与摄像头采集到的颜色的LAB值作为分析对比,如果符合要求则画出方框,表示识别到该颜色,并将识别到的颜色的位置信息传输给PID控制器进行计算,判断出识别到的颜色与小车中间的偏移量,根据偏移量来修改小车前进的方向,从而达到小车视觉巡线的功能。