还是想朝着人工智能方向靠一靠,之前研究图像有关的分类、识别,还是觉得太枯燥了。后来结合自己接触较多的Unity引擎,发现有自动驾驶用Unreal或者Unity之类的游戏引擎进行虚拟训练。接着发现了微软的AirSim,稍微研究了下,记录了一篇博客。然后就想虚拟训练虽好,但是既然是自动驾驶,自己能DIY一个小车那就有趣多了,这样就发现了Donkey Car这个项目。它就是基于树莓派,用Tensorflow进行训练,得到一些模型,让小车自动巡线,实现简单的自动驾驶。AirSim中初步看好像很多是C++代码,我还是喜欢用python的,暂时就转到树莓派自动驾驶上研究,AirSim以后再看。

网上能够买到的自动驾驶小车不多,Donkey Car有自己的商店,不过国内购买也不方便。淘宝上有小R科技的自动驾驶小车,不过价格有些贵,而且不像自己组装那样能更好挑选各个配件。因此我还是选择DIY,主要担心的是底座的问题,就是承载树莓派和摄像头等组件的支架。因为这个要和小车适配,Donkey Car关键字配合3D Print搜索就能找到它的stl模型文件,不过想要打印出来,据我问的淘宝的价格都在300左右,还是不好打钉子的树脂材料。想要用优质尼龙可能要五百以上了。

最终在淘宝找到了直接卖这个底座的,要价一百出头,可以接受,那么就可以开展工作了。为了方便购买,我会放上链接。不过需要说明的是,这里不是打广告,是否合适自行斟酌。

小车选择的是HSP 1/16 无限94186遥控越野大脚车(小时候没有遥控玩具车,工作了居然买个这玩意):

地址是:

https://item.taobao.com/item.htm?spm=a1z1r.7974869.0.0.269c3ad41ri0xZ&id=548208111638

这里选择了有刷高配的,两个电池方便用的时候有另一个还能充电备用,因为这玩意太费电,好像一次就能玩十几分钟。选择有刷主要是因为我需要用舵机控制小车速度转向,无刷的太快不好控制,Donkey Car官方介绍也是说用有刷的。小车是大头,差不多要花五百块。

接着是树莓派,这个网上很多售卖的,就不贴链接了,我选择的是英国版3B+型号。SD卡可以买个好一些的,因为自动驾驶采集数据存储图片还是挺多的,但是受限于树莓派自身较差的性能,就买个读写三四十M/s的就能满足了。倒是读卡器推荐买个USB3.0的,以前遇到过劣质读卡器,1M/s的速度让我差点把卡扔了,因为我觉得是卡用的久了坏了呢。实际上,六七年的Class4的SD卡还是基本原来的速度,写入在5M/s,基本没降低。

接着是车架:

链接为:

https://item.taobao.com/item.htm?spm=a1z1r.7974869.0.0.269c3ad41ri0xZ&id=592169467343

底座上放树莓派,上面的支架放摄像头。这个是和官方模型一样的,匹配前面型号的小车。

接着是舵机了:

用的是16路PWM,型号是PCA9685,这个也就十块钱,到处能买到,不放链接了。记着买些杜邦线,以便和树莓派连接。

接着还差摄像头,我买的是树莓派官方的:

这个需要一百出头,选择可见光8MP,而不是NoIR。后者没有红外滤波,那么拍摄的图片中有红外信息,拍出来照片看上去比较奇怪。我暂时不考虑夜间情况,所以不选择它。

这样硬件基本齐了,接下来是组装。在此之前,先验证车子能否正常运转:

由于以前没接触过遥控车,所以一开始将小车开起来还研究了一番。上图是店家标识的遥控器操作说明,ST就是Steering,表示控制方向,TH就是Throttle,表示阀门,也就是油门。NOR就是Normal了,表示正常前进方向,REV就是Reverse,表示反向。左手拿着,右手控制,靠右边侧的大轮旋转控制小车方向,下面的扳机控制油门大小,反向推动则能倒车。在收到小车后,需要将其盖子打开,车子上的电池和小车连接,然后打开车子上的电源开关,即可接收控制信号开动小车了。

接着是树莓派,把它的摄像头接到主板上,注意摄像头揭掉镜头薄膜,主板上卡槽卡紧,这个网上又很多教程,这里不放图片了。

再接着就是树莓派和小车的连接了,本来想着也是硬件操作,写在这里合适。但是要先让树莓派工作起来,还要有软件配置以及摄像头功能验证,之后才能安装到小车上让树莓派通过PCA9685控制舵机让小车运行。所以这篇就先到这里,下一篇软件环境做好最后再将二者组装到一起。

基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY相关推荐

  1. 树莓派智能小车python论文_基于树莓派的自动驾驶小车,利用树莓派和tensorflow实现小车在赛道的自动驾驶...

    self_drive 基于树莓派的人工智能自动驾驶小车 Artificial intelligence automatic driving car based on raspberry pie git ...

  2. Arduino毕业设计——基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码)——自动驾驶小车控制系统

    基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现,文章末尾附有本毕业设计的 ...

  3. arduino控制小车转向_利用XECU和激光雷达快速搭建入门级的自动驾驶小车

    利用XECU和激光雷达快速搭建入门级的自动驾驶小车 1 简介 如果关注过我们之前的推文和视频演示,相信大家对我们的XECU应该已经很熟悉了.那么今天就向大家介绍一下,如何利用我们的XECU和激光雷达快 ...

  4. vb.net label 不要自动换行_自动驾驶小车——(四)数据采集

    又鸽了好几个月,因为要准备考研,不过这个系列肯定会完成,现在也仅仅是一个初稿,以后还要整体完善一下的.这个小项目的设计思路大致分为三部分,数据采集.神经网络训练和加载模型三部分,本篇文章就讲一下怎样采 ...

  5. 基于linux的智能小车_商汤首款原创机器人SenseRover X自动驾驶小车斩获Red Dot Award...

    创建于1955年的德国Red Dot Award红点产品设计奖,是世界三大设计奖之一,是设计品质的象征,每年7月份都会在德国埃森举办盛大的Red Dot产品设计奖颁奖典礼. 60多年来,从计算机时代, ...

  6. 仅展示成果:基于ROS的自动驾驶系统搭建教程(三):激光定位ndt_matching

    仅展示成果:基于ROS的自动驾驶系统搭建教程(三):激光定位ndt_matching 前端搭建完毕,接着完善后端的功能,现在是最基础的激光点云定位. 初步是要把循迹功能所涉及的所有相关模块给完善好,接 ...

  7. 从零搭建一台基于ROS的自动驾驶车-----3.激光Slam建图

    系列文章目录 北科天绘 16线3维激光雷达开发教程 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图 Nvidia Jetson Nano学习笔记–串口通信 Nvidia Jet ...

  8. 基于单片机的自动分拣小车的设计--毕业设计参考

    基于单片机的自动分拣小车的设计 第1章.课题内容 1.系统应用单片机的基础功能,设计相关的电子电路,搭配合适的电子器件和传感器技术等,实现自动分拣的功能. 2.对方案的总体成份进行论证和设计. 3.根 ...

  9. 带你了解基于Ploto构建自动驾驶平台

    摘要:华为云Solution as Code推出基于Ploto构建自动驾驶平台解决方案. 本文分享自华为云社区<基于Ploto构建自动驾驶平台>,作者:阿米托福 . 2022年6月15日, ...

最新文章

  1. php和python哪个学起来简单一点-作为初学者,php,python和ruby应学哪个?
  2. 使用Visual Studio 2019开发Qt程序
  3. linux安装12c oem,OEM12C(12.1.0.5)安装插件监控mysql(linux)
  4. Java 多重catch语句的使用
  5. python语言特点依赖平台吗_python语言的特点
  6. oracle11g导出dmp文件 少表,Oracle11g导出dmp并导入Oracle10g的操作记录
  7. java校招面试题_java校招面试编程题及答案.docx
  8. oracle数据泵索引创建慢,IMPDP 很慢的原因探究
  9. (转)C#开发微信门户及应用(5)--用户分组信息管理
  10. MySQL不香吗,为啥京东放弃它拥抱Elasticsearch?
  11. Linux系统Bash的常用功能(9)
  12. 全数字伺服系统中位置环和电子齿轮的设计
  13. access mysql 操作方法_操作ACCESS数据库注意事项
  14. 笔记本独显和集显linux,笔记本电脑独显不见了的解决方法介绍
  15. Macbook同时访问内外网
  16. 怎样在虚拟机装文件服务器,虚拟机下怎么解压文件
  17. 开发流程与管理--《10人以下小团队管理手册》读后有感
  18. 图片圆角+高斯模糊实现
  19. request+cheerio+iconv-lite+phantomJs制作简单漫画网站爬虫NodeJs项目
  20. 瑞禧研究Boc-Val-Dil-Dap及其衍生物(OH/Phe-OMe/Doe/Dap-Nrp/)——抗体药物偶联物

热门文章

  1. zigbee配置及常见错误总结---(Segment BANKED_CODE must be defined in a segment definition option)
  2. 【硬件】常见数据传输接口引脚定义
  3. java类到proto定义转换工具
  4. NO5 -- 抽样分布
  5. 【填坑】 GLSurfaceView surfaceCreated不回调 以及在Native中ANativeWindow_lock 获取缓存失败 返回 -22
  6. Java咖啡馆——叹咖啡
  7. 使用 ESP-Prog _ Jlink 进行 JTAG 调试时的常见错误及解决办法
  8. wordpress怎么搜索别人_北风:史上最全wordpress建站攻略,无代码基础也能轻松搞定...
  9. 自定义事务管理器TransactionManager对象
  10. 中国政法大学李永平教授