实验活动——自动驾驶
一、实验目的及任务
1.认识计算机视觉技术,通过AI摄像头识别图像;
2.认识图像识别中的路标识别,实现车辆对路标进行识别;
3.学会将AI摄像头、循迹传感器和颜色识别相结合,实现小车自动驾驶的功能。
二、实验内容
自动驾驶主要包括两个实验模块。
①小车循迹驾驶:在没有识别到道路的路标情况下,小车沿着循迹线自动驾驶;
②小车根据路标驾驶:小车在驾驶过程中,如果识别到道路上的路标,小车根据路标指示自动驾驶。
三、实验准备
编程软件:mPython编程软件
实验设备:计算机与实验模块(见下表)
四、预备知识
①认识硬件主控——掌控魔盒
掌控魔盒采用掌控板作为主控,可拔插,同时集成人体红外、旋钮电位器、RGB 灯环、温湿度、五向按键、按键、TT 马达、超声波、循迹等多种输入输出设备,塑胶一体式外壳,长宽不大于 136*88mm,内置 2200mAh 大容量可充电锂电池,方便脱机运行。掌控魔盒集成多种拓展接口,支持 I2C、SPI 通讯,支持舵机驱动,兼容各种电子模块。 配套小车配件,插上万向轮和轮胎可变成一台支持循迹、避障、遥控的小车,支持拓展,兼容乐高积木,可完成多种创意应用。
②路标识别
路标识别是计算机视觉技术中图像识别的一个应用,路标识别系统包括图像的采集(获取)与预处理、图像(路标)检测、图像分割(路标定位)、特征提取、模式分类(路标识别)等部分。路标识别的原理概括如下图所示:
③软件准备
选择主控模式。打开mPython编程软件,点击菜单栏右上角的“设置”按钮,依次点击“高级设置”—“更换主控”—“掌控魔盒”选项,之后关闭更换主控窗口。
五、实验步骤
1.小车循迹驾驶
任务介绍:利用掌控魔盒上的循迹传感器,实现小车巡线。
学习目标:使用循迹传感器检测道路上的循迹线,小车能够根据循迹线实现直线驾驶、左转、右转和停止。
实验设备与模块:电脑*1,掌控魔盒*1,掌控魔盒内置的循迹传感器*1,Type-C数据线*1,自动驾驶地图*1。
实验步骤:
Ⅰ. 程序编写。如果小车的循迹传感器检测到左侧为黑线而右侧为白线,小车左转,反之,则右转;如果循迹传感器的两侧均检测到白线,小车停止;否则小车直线前进。
2. 小车根据路标驾驶
任务介绍:通过AI摄像头识别路标以及颜色传感器进行颜色识别,实现小车根据路标指示自动驾驶。
学习目标:认识图像识别中的路标识别,学会将AI摄像头、循迹传感器和颜色识别相结合,实现小车自动驾驶的功能。
实验设备与模块:电脑*1,掌控魔盒*1,掌控魔盒内置的循迹传感器*1,颜色传感器*1,AI摄像2.0*1,AI摄像2.0外置摄像头*1,连接线*2,Type-C数据线*1,自动驾驶地图*1。
实验步骤:
Ⅰ.自动驾驶硬件连接图。
Ⅱ. 加载“AI摄像头2.0”扩展程序。
在指令扩展区点击“添加”,点击“AI”,找到AI摄像头2.0的扩展程序,点击“加载”即可。
Ⅲ.程序编写。
初始化AI摄像头,并定义线程,对路标识别进行初始设置,创建多个变量存储相关数据(result存储识别结果;check_left存储左转路标的检测结果;check_right存储右转路标的检测结果;check_stop存储停止路标的检测结果;state存储路标识别状态)。
定义函数value_init、stop、right、left以定义功能,分别设定函数完成特定操作,方便重复调用。
在小车没有识别到路标的状态下(即state=0),小车执行巡线驾驶的功能,当识别到地面的红色,小车则停下,进入路标识别状态。
如果小车处于路标识别状态(即state=1),判断识别结果,当识别到左转路标,小车左转;反之,识别到右转路标,小车右转。
同理,小车识别到停止路标,小车就停止。
自动驾驶完整的参考程序如下:
实验效果:运行程序,将小车放在自动驾驶地图上,小车会巡线驾驶,当识别到左转路标,小车左转;当识别到右转路标,小车右转;当识别到停止路标,小车停止。
参考程序: