【实物】端到端自动驾驶搭建教程(一)附完整资料

简介: 【实物】端到端自动驾驶搭建教程(一)附完整资料

自动行驶小车设计的意义和内容

  无人驾驶作为汽车未来可能的研究方向之一,其对于汽车行业甚至是交通运输业有着深远的影响。无人驾驶汽车的来临能够解放人类的双手,降低发生交通事故发生的频率,保证人们的安全,大数据时代,随着物联网、5G和云计算技术的成熟,无人驾驶技术甚至可以组织更为有效的交通秩序,节省人们出行的时间。

  目前,前沿的无人驾驶技术已经实现了自动启动行驶与停车,国内外的公司以及院校包括谷歌、百度、长安和国防科技大学等正在近几年积极地开展这无人驾驶汽车测试活动,无人驾驶真正走入人们生活的日子已经指日可待。无人驾驶技术作为人工智能重要的应用领域,具有极高的研究价值和实际意义。

本次以树莓派为逻辑运算处理核心的自动行驶小车设计,一方面,是对无人驾驶领域的初步探索,通过实现一个可以自动识别道路并且在规定的范围内合理行驶的双驱动小车,讨论无人驾驶技术在研究和应用层面可能遭遇的问题和难点,另一方面,也是检验树莓派硬件以及系统对于人工智能算法程序的运行和处理,是否具有一个良好的可行性和性能指标。可想而知,如果如树莓派一般精简的体积上也能搭载人工智能算法程序,那么未来人工智能技术一定能和硬件结合应用在更多的领域,具有更高的性价比。同时,本次设计也是研究生生活以来,第一次面对硬件和软件设计的双重挑战,对于作者个人的学业历程同样具有重要意义。

  本次设计的主要内容是设计一个可行的自动驾驶小车系统,通过软件程序的设计以及硬件外设的安装和调试,测试其在人为规定的道路上行驶的状况,实现一辆可以自动识别道路并且在规定的范围内合理行驶的双驱动小车。

  本次报告基于理论实践,分为五大部分,第一章阐述了本次设计的意义和基本内容,第二章介绍了自动行驶小车系统的系统设计,第三章介绍了自动行驶小车系统的系统实现,第四章介绍了自动行驶小车系统的系统测试,第五章阐述了实践过程中存在的不足,以及未来的展望。

系统设计

硬件设计

  本次课设所设计的自动驾驶智能小车共包括以下模块:树莓派3B控制器、红外避障模块、赛道信息采集(摄像头)模块、LED灯模块、蜂鸣器模块、电机驱动模块(L298N 模块)。本次设计将树莓派3B+作为核心控制部件,树莓派与摄像头相连,获取实时图片信息。树莓派与L298N电机驱动模块相连,通过控制电机的正反转,进而控制小车的前进后退与转向。树莓派主要是通过GPIO 口(输入/ 输出端口)与硬件相连,从而进行数据交互,控制硬件工作并读取硬件的工作状态信号。智能小车的信息采集工作依靠一个摄像头,利用树莓派启用和控制摄像头,并获取摄像头图片进行分析。小车的驱动模块包括电机驱动板,电机采用直流电机,电机驱动板采用的是L298N 双H桥直流电机驱动芯片,智能小车的前进和后退可以利用双轮转动来实现,而转弯可以利用单轮转动来实现,小车整体设计结构图如图1所示。

树莓派3B+控制器

  本次课设使用老师所提供的树莓派3B+,故不再作控制器的方案选择。使用树莓派3B+开发板进行自动驾驶小车系统的嵌入式开发有以下几个优点:

  • (1)树莓派开发板默认系统为Raspbian系统,Raspbian系统是基于debian的树莓派官方操作系统。同时树莓派也支持其他种类繁多的操作系统,包括我们需要的Ubuntu mate系统。使用Ubuntu mate系统的话,开发板的操作系统就和PC机使用的系统所对应起来了,程序的移植出错的概率就会小很多。而且树莓派3B+的系统烧写非常便捷,只需要在树莓派的官网下载对应的系统img镜像文件,然后烧写入系统TF卡中,插上树莓派开发板就能直接使用该系统。
  • (2)因为树莓派3B+强大的性能,所以可以选择不交叉编译,而直接在树莓派开发板Unbuntu mate系统中搭建和PC机Ubuntu系统相同的开发环境,由PC机对自动驾驶小车系统模拟成功后,直接把工程文件传入开发板中进行编译。
  • (3)只需要一根网线,将树莓派和笔记本电脑的以太网接口相连,还有获取到树莓派开发板的IP地址,就能轻松地使用SSH安全外壳协议进行远程登陆树莓派Ubuntu mate系统进行操作,还能利用Windows系统自带的Mstsc远程桌面控制功能对树莓派开发板进行图形界面的操作,实现不需要外接显示屏就能利用笔记本电脑的显示屏对树莓派开发板进行操作,非常便捷。
  • (4)利用树莓派3B+自带的排线摄像头接口,可以非常方便地进行拍摄视频以及拍摄照片以供系统后续分析处理使用。
    综合以上优点,可以说基于ARM的树莓派3B+开发板是个不错的选择,另外与树莓派3B相比,树莓派3B+的性能优势更加明显,具体性能比较分析如图2所示,树莓派3B+实物图如图3所示,树莓派3B+引脚PCB图如图4所示,树莓派3B+的GPIO引脚图如图5所示,树莓派3B+原理图如图6所示。

我的微信公众号名称深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
32698 79
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17751 20
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36682 19
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24758 14
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36660 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29838 52

热门文章

最新文章

下一篇
开通oss服务