双轮智能平衡车基于图像识别技术探究道路自动驾驶理论模型与应用

双轮智能平衡车基于图像识别技术探究道路自动驾驶理论模型与应用

岱宗夫

摘要本文研究了基于图像识别技术的双轮智能车自动驾驶理论模型与应用。随着人工智能技术的快速发展,尤其是视觉识别技术在自动驾驶领域的广泛应用,双轮智能车作为一种新型的智能载物工具,具有广阔的应用前景。本文以树莓派为主控电路,结合ROS机器人操作系统和OpenCV图像处理技术,搭建了双轮智能车的硬件和软件系统。硬件部分包括直流电机、锂电池、单片机、树莓派和CSI摄像头模块,通过多层结构设计实现了车辆的行驶、载物和图像采集功能。软件部分采用高斯滤波去噪、自适应阈值分割、形态学处理等算法,实现了道路标线识别、特殊标识检测、激光跟随等功能。实验结果表明,该系统能够有效完成道路自动驾驶任务,为双轮智能车的进一步研究提供了理论和技术支持。 

关键词双轮智能车;图像识别;自动驾驶;ROS;OpenCV

目    录

0 引言/综述

1 系统整体设计

2 硬件设计

3 软件设计

4 结论

参考文献

  1. 引言/综述

双轮智能载物车是指利用物联网、移动通信、定位、人工智能、大数据、云计算等技术手段,通过搭载智能化软硬件与数据交互传输系统,使双轮载物车具备车辆智能、车控智能以及数据智能,满足用户在多样化出行场景下,获得更加智能、高效、便捷、安全的载物出行体验的智能化产品。

双轮智能车在国内发展现状:

“双轮智能车在国内的市场规模持续扩大。根据艾瑞咨询发布的《2021 年中国两轮电动车智能化白皮书》,2020 年我国两轮电动车销量达到 4760 万辆,市场规模达到 1046 亿元,预计 2022 年两轮电动车销量将达到 6100 万辆,市场规模将达到 1443 亿元。

双轮智能车在国内的用户需求逐渐提高。根据艾瑞咨询发布的《2021 年中国两轮电动车智能化白皮书》,两轮电动车用户群体年轻化,期待拥有具备智能防盗、智能能源管理等智能化功能的双轮电动载物车产品。

双轮智能车在国内的技术发展不断进步。根据艾瑞咨询发布的《2021 年中国两轮电动车智能化白皮书》,目前两轮电动车的智能功能集中表现在安全系统、能源系统、中控系统上,主要智能化功能包括智能车锁、智能中控、电能管理、安全管理等方面。

双轮智能车在国内的品牌竞争日趋激烈。根据艾瑞咨询发布的《2021 年中国两轮电动车智能化白皮书》,目前两轮电动车的品牌厂商有三种类型:以雅迪、爱玛、台铃等为代表的传统两轮电动车厂商,以小牛、九号、蓝鲨等为代表的互联网品牌电动车厂商,以及以哈罗为代表的出行平台。”[1]

双轮智能车在国外的发展现状:

“Fetch Robotics1:美国机器人公司,专注于为仓储和物流行业提供移动机器人解决方案。其产品包括Fetch和Freight两款双轮智能车,可以自动规划路径,避开障碍,执行搬运、拣选、盘点等任务。“[2]

“Segway Robotics2:美国机器人公司,由著名的平衡车公司Segway创立。其产品包括Loomo和Loomo Delivery两款双轮智能车,可以作为个人助理或快递机器人,具有语音交互、面部识别、自主跟随等功能。”[3]

“Piaggio Fast Forward3:意大利机器人公司,由著名的摩托车公司Piaggio创立。其产品是一款名为Gita的双轮智能车,可以通过视觉识别和无线通信与用户同步,携带重达18公斤的物品,适用于日常出行、购物、旅行等场景。”[4]

双轮智能车在国内外的应用领域与作用:

“在仓储和物流领域,双轮智能载物机器人可以实现货物的自动搬运、分拣、配送等,提高效率和准确性,降低成本和风险。

在医疗和护理领域,双轮智能载物机器人可以作为医护人员的助手,为患者或老年人送药、送餐、送物品等,减轻工作负担,增加人性化关怀。

在服务和娱乐领域,双轮智能载物机器人可以作为个人助理或快递机器人,为用户提供语音交互、面部识别、自主跟随等功能,适用于日常出行、购物、旅行等场景。

在教育和科研领域,双轮智能载物机器人可以作为教学或研究的平台,为学生或科研人员提供更多的深入研究机会,促进机器人技术的发展和创新。”[5]

国内外都在进行支持双轮智能载物车进入各行各业,双轮智能载物车满足了生活上的短途出行需求、购物买菜需求、智能防盗需求、娱乐休闲需求等等,满足了工业上的智能防盗需求、智能服务需求、智能巡检需求等等,但是国内与国外的技术差距还是有一定的距离。

当前人工智能技术发展迅速,人工智能技术中各各领域的应用都不断落地,尤其是自动驾驶中的视觉识别技术更是成为主流应用之一,很多新能源汽车已经具备在道路上部分自动驾驶的能力,尤其是特斯拉品牌的电动车。大量的车企也纷纷投入此项技术的开发与应用中,但是在应用过程中,仍然出现识别时间过长,对于一些特殊标识无法做到识别以及对汽车实现相应操控。本文主要说明以树莓派为主控电路,融合智能视觉技术,实现智能车遵循道路路线行驶,识别道路标识,完成停车等功能,对自动驾驶的原理进行探究,总结原理实现功能,为今后进一步研究作为理论支撑。

  1. 系统整体设计
  1. 主要功能设计

本次作品主要实现自动驾驶功能,采用两个直流电机,与亚克力板组装固定后,搭建出双轮平衡车框架,具备行驶与载物能力。在双轮智能车的上层搭建单片机控制电路,实现对于电机的驱动和控制,实现智能控制行驶。在单片机系统的下层,再搭建树莓派控制电路,与单片机系统进行通信并,实现传输指令给单片机进而控制直流电机按要求进行驾驶。将树莓派安装摄像头,具备图像采集功能,并在树莓派系统中搭建软件系统——ROS机器人系统,结合CV,实现图像采集与识别功能,优化算法,使之具备识别道路标线和道路标识的能力,完成道路自动驾驶功能。添加双轮智能车对激光的跟随功能,可以进行激光笔引导,使智能车拥有更多功能性。

  1. 自主创新设计部分

在激光跟随算法设计上,利用红外线光点来控双轮智能车的运动,实现激光笔跟随的功能。这个功能可能有一些激光引导入库,或者经行一些高难度的运动时,可以使用激光引导的方式进行,使用自适应、二值阈值和面积阈值判断的方法,解决了误检测和外界影响因素,能够更精确的定位红外光点,并进行跟随。

  1. 机械结构设计
    1. 底盘设计,包括两个轮子和一个万向轮,亚克力板

电机*2(12V)(5.5*2.6cm)

车轮*2(6.8cm)

    万向轮(4.8*3.3cm)

    直角连接器*2(3.2*2.6*13.3cm)

连接轴*2(1.4*1.4*1.7cm)

亚克力板(12.8*13.3cm)

金属梁(银)*2(长:1cm)

金属梁(银)*6(长:4cm)

金属梁(黑)*4(长:1.8cm)

  1. 二层是电池托盘

电池(11.1V)(6.7*5.8cm)

亚克力板(6.4*9.5cm)

金属梁(黑)*4(长:1.2cm)

  1. 三层是树莓派和单片机固定层

金属梁(银)*6(长:4.5cm)

亚克力板(12.8*13.3cm)

树莓派(8.5*5.5cm)

驱动板(8.5*5.5cm)

  1. 四层是托盘,固定摄像头

亚克力板(12.8*13.3cm)

CSI摄像头模块 RaspberryPi(2B,500像素)

  1. 置物台

亚克力板(0.9*1.47cm)

螺丝*4

金属梁*4

  1. 机械系统设计理念:

以楼层式设计小车,节约空间,节约成本。选用拥有良好加工性能的亚克力板做分层板既保证车身的抗冲击性、绝缘性以及耐候性,又降低了车身的自重,而且在每块亚克力板上有多个螺丝孔洞可以进行改造,增加了小车的可扩展性。选用树莓派+驱动板的方式控制小车,与代码结合可以通过网络远程控制小车,增加了小车的多功能性、多操作模式和操作方法。选用18650锂电池*3串联电池组,可以提高电池组的输出电压可以提高电池组的输出功率和电流,并且适用于一些需要高电压的设备,避免在进行工作和使用时没电关机,并且可以适用于更多场景和适用行业。双轮智能车车身采用中线对称设计方案可以提高车身的稳定性和灵活性,使车辆能够在不同的路况下保持平衡和转向可以简化车身的结构和电路,减少重量和成本,提高效率和可靠性。并且可以对车进行扩展,利用陀螺仪和加速度计等传感器对车身的姿态进行实时监测和调节,实现智能化控制。还可以扩展出深度学习功能,采用神经网络算法代替传统的PID算法,提高控制精度和适应性,使车辆能够自学习和更新数据

  1. 硬件设计
  1. 电机选型

驰名电机JGA25-370*2 DC:12V(5.5*2.6cm) 280RPM

功能:可以实现直流减速(通过齿轮箱的传动,将高速低扭矩的输入转换为低速高扭矩的输出,提高了电机的效率和寿命)

可以实现正反转控制(通过改变电源的极性,可以让电机顺时针或逆时针旋转,实现不同的运动方向和模式)

可以实现调速调力(通过改变电源的电压或电流,可以让电机的转速和扭矩发生变化,实现不同的运动速度和力度)

可以实现测速编码(通过安装编码器或码盘,可以检测电机的转速和位置,实现精确的运动控制和反馈)

  1. 电池选型

电池:18650锂电池*3串联(6.8*5.8cm)

功能:具有高能量密度、低自放电、无记忆效应等特点,可以提供更高的输出电压,适用于一些需要高压驱动的设备。

  1. 单片机选型

Nano Controller V2.0驱动板(56*85mm)

功能:可以用Arduino IDE进行编程它的功能类似于Arduino Uno,但尺寸 更小3

  1. 单片机电路设计

  1. 树莓派选型

树莓派:4B尺寸:(56*85mm) SOC, 厂商:Broadcom-博通,SOC型号 :BCM2711, 架构主题:1.6GHz四核A72,芯片制程:28nm, RAM: 2GB/4GB/8GB Ubuntu,系统支持 :18.04、20.04、22.04, CPU跑分:5666.36

功能:支持双屏显示,最高分辨率为4K

支持2.4GHz和5GHz的双频WiFi,以及蓝牙5.0支持千兆以太网和USB 3.0支持多种操作系统,如Ubuntu、Raspbian、Windows 10 IoT Core等支持Python、Scratch、Java等编程语言

散热风扇:风扇(2.5*2.5cm)

功能:为树莓派主芯片散热,防止芯片过热导致树莓派损坏。

  1. 摄像头选型

CSI摄像头模块 RaspberryPi(2B,500像素)

排线:AWM 20624 80c 60v VM-1

功能:可以通过树莓派的命令行工具或Python库来控制和操作支 持一些摄像头的高级用法。

  1. 硬件电路和器件之间的设计和改良

  1. 板的改良

使用亚克力板代替金属板或普通塑料板做底板、隔层板、电池保护板和置物台,是因为亚克力板相比于金属板具有良好的耐候性,表面硬度和光泽高,抗高温性能好,而金属板容易生锈、氧化、变色,普通塑料板容易老化、变色、变形。并且,亚克力板具有优异的加工性能,可用热成型或机械加工的方式制作各种形状,而金属板加工难度大,成本高,普通塑料板加工难度大,易开裂、断裂。而且亚克力板具有良好的适印性和喷涂性,可赋予亚克力制品理想的装饰效果,而金属板表面处理比较复杂,普通塑料板表面处理比较复杂。还有亚克力板具有轻质的特点,密度只有金属板的一半左右,便于运输和安装,亚克力板的密度也只有普通塑料板的一半左右,便于运输和安装。也正因为亚克力板有着更好的抗高温性能,并且散热快,可以完美的作为18650锂电池*3的保护板,防止锂电池过充、过放、过流、短路等异常情况的电路板,可以保证锂电池的安全和稳定工作。

  1. 电机选型改良

驰名电机JGA25-370是一款直流减速电机,与其他电机的优点是可以实现低速高扭矩的输出,比其他电机更适用于智能机器人、智能 小车等场合。电机最大功率为3W,最大扭矩为9kg.cm,具有较高的 性能和效率。电压范围为6V~24V,可以根据不同的需求选择合适的 电压,调节转速和扭矩。外形尺寸为5.5*2.6cm,重量为84g,体积 小巧,重量轻,便于安装和使用。减速比为1:21,可以提供多种转 速选择,从12RPM到1360RPM不等,满足不同的应用需求。

  1. 电池选型改良

18650锂电池*3可以提供高电压,一般为11.1V,相较于其他电池更适用于一些需要高压驱动的设备。可以提供高能量密度,一般在150-200Wh/kg之间,比其他类型的电池如铅酸、镍氢、镍镉等都要高,可以实现更轻便、更小巧的设计。可以提供长寿命,一般可以循环充放电1000-2000次,比其他类型的电池如铅酸、镍氢、镍镉等都要长,可以降低更换电池的成本和频率。而且18650锂电池*3可以提供高安全性,通过保护板的设计,可以防止过充、过放、过流、短路等异常情况,避免发生爆炸或着火的风险,保证人员和设备的安全。可以提供无记忆效应,不需要每次将电池完全放空后再充满,可以随时随地进行充放电,使用更加方便。

  1. 树莓派设计改良

树莓派4B相较于其他树莓派版本,CPU性能提升了约3倍,内 存容量增加到了最多8GB,支持双屏输出,最高可达4K分辨率, USB接口升级到了USB 3.0,网络接口支持千兆以太网和双频WiFi, 支持蓝牙5.0和PoE(需要额外的扩展板)支持多种操作系统,支持 机器学习和深度学习。支持双轮智能车应用于更多的场景,可以使 用多种操作系统(如Ubuntu、Raspbian、Windows 10 IoT Core等), 支持机器学习和深度学习,可以运行TensorFlow Lite等框架

  1. 摄像头改良

CSI摄像头模块可以直接连接到树莓派的CSI接口,无需额外的转换器或电源,安装方便。可以提供高清的图像和视频,分辨率为2592x1944,支持1080P@30fps,720P@60fps和640x480P@60/90fps的视频录制。可以通过树莓派的软件配置和控制,例如调整曝光,白平衡,对焦等参数,也可以使用Python编程来实现更多的功能和效果。并且CSI摄像头模块可以用于各种应用场景,例如人脸识别,物体检测,图像处理,机器人视觉等,更适用于双轮智能车的巡线功能和激光跟随功能。

  1. 软件设计
  1. 控制策略和算法分析

  1. 控制策略

选择合适的电机驱动器等硬件组件,以实现对小车的精确控制和快速响应。

采用摄像头来检测、识别赛道上的黑线,将识别的数据通过程序算法后ROS发布消息,并根据回传的ROS信号,然后将信号发送到电机,使双轮智能车经行矫正巡线、继续巡线运动,并当检测到特殊地面标识(黑色横线)时进行相对运动。

在软件设计上,采用多层判断、自适应算法、设置黑线阈值和路口面积阈值、中断程 序、实时数据显 示、ROS消息传递、开关变量等方法来优化双轮智能车的图像识别、 循迹逻辑、激光跟随逻辑和速度控制等。自适应算法中主要运用了:

高斯函数公式:G(x,y)=2 πσ21​e−2σ2x2+y2

卷积运算的公式是:I′(x,y)=i=−k∑k j=k∑k G(i,j)I(x+i,y+j)

在系统调试过程中,注意检查机器人尺寸、电源电压和电源电量、场地照明、激光笔点亮、场地有无破损等因素,以避免出现问题或误测,以保障小车的平稳运行。

主要实现了双轮智能车的巡线移动功能,对地面横线或特殊标识检测并减速、停车并 声音提示功能,跟随激光移动功能。

  1. 算法分析

高斯滤波去噪:“高斯滤波是一种图像平滑的方法,它通过将图像与一个高斯函数进行卷积来实现。高斯函数是一种正态分布函数,它的形状由均值和标准差决定。高斯滤波的效果是将图像中的高频分量(如噪声和细节)降低,而保留低频分量(如边缘和结构)。高斯滤波可以看作是一种低通滤波器,它可以有效地抑制图像的噪声,但也会造成一定程度的模糊。

高斯函数的生成和卷积运算:

高斯函数的生成是根据给定的标准差和卷积核大小,计算出一个二维的高斯矩阵,作为卷积核。高斯函数的公式是:G(x,y)=2πσ21​e−2σ2x2+y2​

卷积运算是将卷积核与图像的每个像素及其邻域进行点乘求和,得到新的像素值。卷积运算的公式是:I′(x,y)=i=−k∑k​j=−k∑k​G(i,j)I(x+i,y+j)”[6]

自适应阈值分割前景和背景:”cv2.adaptiveThreshold函数,这是OpenCV提供的一个函数,可以实现自适应阈值分割,它的参数包括输入图像、输出最大值、自适应方法、阈值类型、块大小和常数C。

cv2.ADAPTIVE_THRESH_MEAN_C方法,这是一种自适应方法,它的原理是将每个像素点的阈值设为其邻域区域的平均值减去常数C。

cv2.ADAPTIVE_THRESH_GAUSSIAN_C方法,这是另一种自适应方法,它的原理是将每个像素点的阈值设为其邻域区域的高斯加权平均值减去常数C。”[7]

选择原因及原理:

“自适应阈值分割是一种根据局部区域的像素分布来动态调整阈值的方法,可以得到更好的分割效果,尤其是对于光照不均匀的图像。

自适应阈值分割的方法有两种:一种是基于邻域区域的平均值来计算阈值,另一种是基于邻域区域的高斯加权平均值来计算阈值。

自适应阈值分割的步骤是:首先将图像转换为灰度图像,然后对图像进行模糊处理,以去除噪声,接着对图像进行分块,每个块的大小由参数block_size决定,然后对每个块中的每个像素点,根据所选的自适应方法和阈值类型来计算阈值,并与该像素点的灰度值进行比较,如果大于阈值,则将该像素点设为最大值(通常为255),否则设为0,最后得到分割后的二值图像。”[7]

ROS通讯机制:”ROS中的消息,发布者,订阅者,主题,服务,客户端,服务器等概念,以及如何用C++语言编写ROS程序来实现这些通信机制。这本书还介绍了如何使用日志消息,图资源名称,启动文件,参数,以及如何记录和回放消息。这些内容都是ROS通信机制的重要组成部分。”[8]

识别图像的面积计算:”图像轮廓识别和面积计算,它是一种基于二值分割、滤波、轮廓提取等步骤的图像处理方法,可以对图像中的目标进行检测、分割、测量等操作。文章介绍了使用python + openCV实现这些操作的函数和代码。”[9]

还有形态学去除噪点与孔洞和将BGR色彩空间转为HSV色彩空间

等等。主要算法以OPENCV里的一些算法为主来进行图像的处理,如:

cv2.contourArea:用于计算轮廓的面积

cv2.minAreaRect:用于寻找轮廓的最小外接矩形

cv2.boxPoints:用于获取最小外接矩形的四个顶点坐标

cv2.drawContours:用于在图像上绘制轮廓或多边形

cv2.circle:用于在图像上绘制圆形

  1. 程序框架流程图

    |       开始        |

            |

    |  导入相关的模块   |

            |

    |  定义一些变量和常量 |

            |

|   摄像头是否开启?   |

     | 是             | 否

| 定义主功能类|  | 结束程序 |

      |

|  初始化方法:     |

|  - 创建图像转换器对象 |

|  - 创建图像发布者对象 |

|  - 创建图像订阅者对象 |

|  - 创建速度发布者对象 |

            |

|  移动方法:       |

|  - 定义不同方向和速度的消息|

|  - 根据图像信息选择消息  |

|  - 发布消息给速度发布者  |

            |--------------------------------------------------------|

   |  定义函数|          |定义函数|   

    |  detect_infrared_light |         |callback|

            | |

    |  接收图像信息|       |接收图片信息|

            | |

    |  转换为OpenCV格式|        |转换为OpenCV格式|

            | |

    |  转换为HSV格式|             |转换为HSV格式|

            | |

    |  提取红色区域|         |滤波去噪  |

            | |

    |  中值滤波去噪| |用自适应阈值分割前景和背景|

            |            | |         |

|   是否有轮廓?|      |面积大于5000|       |面积大于5000且 |  |如果有轮廓|

     | 是      | 否      |          |       |Article_1 = True|        |

| 处理轮廓| | 返回None| |如果路口小于2||如果有轮廓?|         |    |进行巡线移动|

     |          |       |          |            |进行停车|

| 计算轮廓面积|    |    |路口+1|    |进行减速巡线|       

     |        |

|   面积是否大于阈值?|   

     | 是     | 否

| 计算轮廓中心点| | 忽略轮廓|

     |    

| 绘制轮廓和中心点|

     |         |

|   中心点是否偏离?|

     | 是         | 否

| 发送指令给马达|

     |            |

|修正红点在中心||继续直线移动|

    

  1. 核心程序代码

定义一个变量area_img,用来计算图像的面积 用开运算处理图像,得到开运算后的图像 计算开运算后的图像中像素值大于1的个数,作为图像的面积 如果正常路线的面积还没有初始化,就用当前的阴影面积作为初始值 如果阴影面积大于正常路线面积的两倍,并且没有到达第一个路口,就输出"减速" 如果路口个数小于等于2,就把路口个数加一,并输出"路口加1"和路口个数 如果有轮廓,就找到最大的轮廓,并在掩码上画出来 计算最大轮廓的重心坐标 计算重心坐标和图像中心坐标的偏差 如果偏差小于-120,就向左减速 如果偏差大于120,就向右减速 否则,就向前减速 如果路口个数大于2,并且阴影面积小于3500,就标记已经到达第一个路口,并输出阴影面积和"Article_1 = True" 如果阴影面积大于正常路线面积的两倍,并且已经到达第一个路口,但还没有到达第二个路口,就输出"停车" 把红绿灯个数加一,并输出红绿灯个数 停止运动,并标记已经到达第二个路口 如果有轮廓,就找到最大的轮廓,并在掩码上画出来 计算最大轮廓的重心坐标 如果重心坐标不存在,就把偏差设为无穷大,并向后运动 否则,计算重心坐标和图像中心坐标的偏差 如果偏差小于-120,就向左运动 如果偏差大于120,就向右运动 否则,就向前运动。

  1. 系统开发与调试

首先,巡线移动部分,用实验的方式测算出阈值的最小值和最大值,然后以显示阈值的方式测算出偏移量,用正负值的方式判断偏移左右,以偏移量偏左或偏右来控制电机进行修正。在测试过程中经常出现因为摄像头检测广角的原因,导致算法误判然后双轮智能车出界的情况,要注意摄像头照射角度。然后就是控制速度,考虑到机器的传输延迟问题,需要对速度进行控制,并且需要考虑到双轮车的平衡性,在测试时进行调试,达到最终可以满足延迟不影响巡线和智能车平衡性的速度。

其次,对地标黑色横线的检测部分,实验时,实时输出黑线面积,以黑色横线处的面积最小值为判断条件,当经过第一条横线时黑线面积缩小,执行减速,当经过第二条横线时,执行停车。不过在测试时出现了一种情况,因为程序是按照每一帧摄像头所获取的画面进行判断,所以在第一条黑色横线处检测成功后会同时执行到检测到第二条横线的停车程序,为此,我在第一条横线被检测到后设置变量,当检测到第一条横线后变量记为Ture,以此变量为判断条件当摄像头视角经过第二条横线时执行停车。测试时经常出现摄像头将黑度较高的阴影部分识别,注意场景的光亮程度,避免在黑暗环境下测试。

最后,用以激光笔跟随的方式,对双轮智能车进行引导入库,测试时,出现一种情况,当激光跟随更能执行时,如果摄像头检测到黑线就会使巡线功能再次启动,同理如果在巡线时使用激光对小车进行引导,也会引起两个功能同时启动的问题,为了解决这个问题,激光跟随功能的执行必须跳出巡线功能,代码执行时,不能让巡线功能和激光跟随功能同时运行,所以在巡线功能停车的代码后设置变量,此变量也为全局变量,控制巡线和激光跟随功能的开启与关闭,当变量改变时开启激光跟随功能,也因为变量的改变程序不再执行巡线功能。实现测试时确定摄像头照射角度,保证激光点可以被检测到,让小车进行跟随测试。测试激光跟随程序时,不能把双轮智能车的移动速度调的太高,虽然不需要像巡线时需要考虑巡线时的高精准性,但是也需要控制双轮智能车的跟随性,激光笔引导时,最好激光的移动速度和小车相同或者必须保证激光点在摄像头照射视角范围内,可以被摄像头检测到。注意事项:测试时要注意激光笔光亮程度,避免使用激光笔的图案进行测试。

  1. 结论

本文通过对双轮智能车的系统设计、硬件搭建、软件开发以及实验测试,成功实现了一种基于图像识别技术的自动驾驶模型。研究结果表明,该双轮智能车能够在复杂环境下稳定行驶,准确识别道路标线和特殊标识,并根据预设逻辑完成减速、停车、激光跟随等功能。通过树莓派与ROS机器人操作系统的结合,以及OpenCV图像处理算法的优化,本研究为双轮智能车的自动驾驶技术提供了有效的理论支持和实践方案。在硬件设计方面,采用树莓派作为主控单元,结合直流电机、锂电池、单片机和CSI摄像头模块,构建了高效、稳定的双轮智能车硬件平台。通过亚克力板的多层结构设计,实现了车辆的载物能力、图像采集功能以及良好的可扩展性。在软件设计方面,利用高斯滤波去噪、自适应阈值分割、形态学处理等算法,优化了图像识别的准确性和实时性,为自动驾驶功能的实现提供了技术保障。然而,本研究仍存在一些不足之处。例如,在复杂光照条件下,图像识别的准确性和稳定性仍有待进一步提高;在实际应用中,双轮智能车的行驶速度和载重能力需要进一步优化,以满足更多场景下的使用需求。此外,未来的研究可以考虑引入深度学习算法,进一步提升双轮智能车的自主决策能力和适应性。总体而言,本研究为双轮智能车的自动驾驶技术提供了一种可行的实现方案,并为其在仓储物流、智能服务、教育科研等领域的应用奠定了基础。随着技术的不断进步,双轮智能车有望在更多场景中发挥重要作用,为人们的生活和工作带来更大的便利。

参考文献

[1]艾瑞咨询. (2021). 2021 年中国两轮电动车智能化白皮书 [2021 China two-wheeledelectricvehicle=intelligence=white=paper].https://www.iresearch.com.cn/report/3720.html

[2] Fetch Robotics. [Online]. Available: Zebra 产品 | 打印机、条码扫描器等

[3] SegwayRobotics.[Online].Available: https://www.segwayrobotics.com/

[4]PiaggioFastForward.[Online].Available:gita robots - Piaggio Fast Forward

[5]钢铁侠科技. (2017, December 24). 为什么要做双足机器人,腿式的优势和价值在哪里? [Why do you want to make bipedal robots, where are the advantages and values of legged robots?]. 知乎专栏[Zhihucolumn]. https://zhuanlan.zhihu.com/p/32317746

[6]Patel,K.(2020,September19).Pythoncv2GaussianBlur()method - AppDividend. AppDividend.https://appdividend.com/2020/09/19/python-cv2-filtering-image-using-gaussia nblur-method/

[7]Rosebrock,A.(2021,May12).AdaptivethresholdingwithOpenCV(cv2.adaptiveThreshold). PyImageSearch.https://pyimagesearch.com/2021/05/12/adaptive-thresholding-with-opencv-c v2-adaptivethreshold/

[8]O’Kane,J.M.(2013).AgentleintroductiontoROS.Independentlypublished

[9]whymeYan. (2017, December 20). Python + OpenCV 实现图像轮廓识别和面积计算. CSDN. https://blog.csdn.net/whymeyan/article/details/78856964

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值