yoyojacky 发表于 2021-10-19 21:41:16

重拾漂移驴车项目-基于树莓派的无人驾驶RC赛车

## 0x00 前言
在两年前,我和昊男曾一起玩儿过的donkey car项目,由于技术栈缺失的问题,玩儿的不够尽兴,相当于半烂尾项目,donkeycar官方的项目却玩儿的有声有色,想想历年我们挖过的坑,人在江湖混,迟早是要还的。坑依然在那里,填还是不填,还真是个问题。


## 0x01 什么是驴车(donkey car)


**An opensource DIY self driving platform for small scale cars.**
RC CAR+Raspberry Pi + Python (tornado, keras, tensorflow, opencv, ....)

一个开源的DIY自主驾驶小车平台,基于RC赛车,树莓派,Python编程(tornado库, keras库,tensorflow库,还有openCV视觉库)


## 0x02 需要什么硬件?
1. 树莓派3B、4B均可
2. 树莓派CSI接口摄像头一个
3. PCA9685舵机驱动板及MG90180度舵机一个
4. RC 赛车(自己组装或者买二手大脚车改)
5. 电池(3S锂电池或者18650电池包)
6. 电源管理模块(DCDC) 12V转5V
7. 若干工具,螺丝刀,电烙铁等等(外壳也许要3D打印,根据自己需求)
8. 轧带和魔术贴
9. 若干杜邦线和USB转MicroUSB线,或者直接用杜邦线供电也行。

@昊男Henry 也为大家提供了[硬件BOM表](https://mc.dfrobot.com.cn/thread-311287-1-1.html)

## 0x03 安装配置文档参考?
DonkeyCar官方提供了很详细的文档:
https://docs.donkeycar.com/
- [漂移驴车 之 硬件组装教程](https://mc.dfrobot.com.cn/thread-311336-1-1.html)
- [树莓派基本配置方法](https://mc.dfrobot.com.cn/thread-311282-1-1.html)
- (https://mc.dfrobot.com.cn/thread-311307-1-1.html)
- (https://mc.dfrobot.com.cn/thread-311326-1-1.html)

- [【漂移菌】第一步:树莓派烧录系统后初始化配置](https://mc.dfrobot.com.cn/thread-311348-1-1.html)
- [【漂移菌】第二步:无头方式配置wifi](https://mc.dfrobot.com.cn/thread-311349-1-1.html)
- [【漂移菌】第三步:修改驴车主机名](https://mc.dfrobot.com.cn/thread-311350-1-1.html)
- [【漂移菌】第四步:安装驴车环境的依赖包](https://mc.dfrobot.com.cn/thread-311351-1-1.html)
- [【漂移菌】第五步:配置虚拟环境](https://mc.dfrobot.com.cn/thread-311352-1-1.html)
- [【漂移菌】第六步:下载和安装Tensorflow及OpenCV](https://mc.dfrobot.com.cn/thread-311353-1-1.html)
- [【漂移菌】 第七步: 创建驴车应用和启用OLED](https://mc.dfrobot.com.cn/thread-311358-1-1.html)
- [【漂移菌】第八步:校准油门和转向](https://mc.dfrobot.com.cn/thread-311359-1-1.html)
- [【漂移驴车】第九步 启动小车并收集数据
](https://mc.dfrobot.com.cn/thread-311461-1-1.html)
- [【漂移驴车】第十步 树莓派本地训练数据并自动驾驶
](https://mc.dfrobot.com.cn/thread-311462-1-1.html)

- [番外篇-树莓派系统瘦身记- 第一步清理无用软件](https://mc.dfrobot.com.cn/thread-311480-1-1.html)

### 会议录像汇总(持续更新)
1. 《[漂移驴车-20211021-蘑菇云开放夜-项目复活](https://wj10gz7r7t.feishu.cn/minutes/obcn9g7c981a18b91jx8ilck)》
2. 《[漂移驴车-20211030-线上车友会-Mac环境配置(上)](https://wj10gz7r7t.feishu.cn/minutes/obcn9e67ltog537kkpolvija)》
3. 《[漂移驴车-20211030-线上车友会-Mac环境配置(下)](https://wj10gz7r7t.feishu.cn/minutes/obcn9ey5wx374b5y4d7t4k9x)》
4. 《[漂移驴车-20211106-线下车友会-RC车模基础](https://wj10gz7r7t.feishu.cn/minutes/obcnbe48r5ff835m379ql55i)》
5. 《[漂移驴车-2021.11.18-线上车友会-蘑菇云开放夜 之 驴车项目汇报](https://wj10gz7r7t.feishu.cn/minutes/obcnjn1m9vvl52i7242h13r3)》


## 0x04 为啥要重拾一个烂尾的项目?
个人觉得大家一起玩儿这个项目比较有意思,并且这里面有很多技术栈可以学习。
1. 树莓派的基本操作,系统层面的一些管理,配置,编辑配置文件的工具,软件包管理,网络管理等等,很多东西都可以在项目中学习。

2. Python的编程,如果想仔细弄明白工作原理并自我实现python程序的编写,可以参考官方文档和自己的实际用途做个性化的处理。
3. Tornado 库: 通过对这个库的学习,可以了解简单的python web框架的搭建过程,配置方法等等。
4. Keras库: Keras 是一个用 Python 编写的高级神经网络 API,它能够以 (https://github.com/tensorflow/tensorflow), (https://github.com/Microsoft/cntk), 或者 (https://github.com/Theano/Theano) 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
- 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
- 同时支持卷积神经网络和循环神经网络,以及两者的组合。
- 在 CPU 和 GPU 上无缝运行。
5. tensorflow库: TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,我们也可以尝试学习一下,当然你也可以用各种别的框架,例如pytorch或者yolo。
6. 对于硬件的控制,我们也可以获取一些经验,例如: 如何通过I2c总线对PCA9685的各个舵机进行精确的调节及树莓派GPIO引脚的控制等。
7. 结识更多志同道合的基友,实现我们自己的驴车小队,玩儿的过程中站着把知识学了,说不定还能赚些银子。
8. 把坑填了。
9. 学习更多OpenCV视觉框架的东西。
10. 也许在外壳设计上还能学习一下3D建模和3D打印的技术。
11. 我编不下去了,哈哈!

## 0x05 结束语
这篇帖子算是在摇旗呐喊,招兵买马, 有兴趣的朋友可以跟帖,我们会开个微信群进行细节讨论。
然后一起开心的玩耍~

微笑的rockets 发表于 2021-10-27 11:03:39

10月30日我们将举行第一次的线上会议

昊男Henry 邀请您参加腾讯会议
会议主题:漂移驴车-车友会
会议时间:2021/10/30-2022/03/12 10:00-12:00(GMT+08:00) 中国标准时间 - 北京, 每周 (周六)

点击链接入会,或添加至会议列表:
https://meeting.tencent.com/dm/pqQjdxlVEG2h

会议 ID:423 9700 5680

【议题】
1. 漂移驴车项目愿景-5'-全体召集人
2. 车队章程与车手公约-5'-Rockets
3. 驴车活动运营规划-5'-昊男
4. 技术工坊-基本硬件知识与PC端环境搭建交流(上)-50'-Jacky
5. 技术工坊-PC端环境搭建交流(下)-50'-Jacky
6. 自由交流与合影截图-5'-全体车友

yoyojacky 发表于 2022-3-12 00:29:25

Caner 发表于 2022-1-18 14:52
扎,到我这就二维码过期了?虽然我们是不同方向,还是期待精神交流
https://github.com/Canees/Ne ...

过期了? 哈哈,你可以联系 RBK 拉入我们的群里,或者 demi 或者你可以留下你的微信号哈哈

Caner 发表于 2022-1-18 14:52:27

扎,到我这就二维码过期了?虽然我们是不同方向,还是期待精神交流{:5_116:}
https://github.com/Canees/Network-Remote-Control-Car
https://github.com/Canees/Wired-Remote-Control-Vehicle

yoyojacky 发表于 2021-10-19 21:44:12

如果用RC赛车的话,需要这些:

yoyojacky 发表于 2021-10-19 21:45:20

实际上我们只需要两个通道:
1个通道油门
1个通道管理方向

yoyojacky 发表于 2021-10-19 21:47:03

油门通道的调速使用PWM(脉宽调制)来控制速度,舵机来控制方向,方向也是通过pwm来控制,摄像头来实现路线的识别,并利用训练的数据进行解算。

yoyojacky 发表于 2021-10-19 21:48:16

数据搜集导图:

yoyojacky 发表于 2021-10-19 21:50:30


通过数据来控制pwm信号,从而控制油门和转向。

yoyojacky 发表于 2021-10-19 21:52:40

然后获取数据后,我们训练不同的模型。

yoyojacky 发表于 2021-10-19 21:54:08


然后通过模型训练自动驾驶,一直一直训练,直到它能够很好的识别你的道路。

yoyojacky 发表于 2021-10-19 22:12:09

OK,驴车项目的微信群:

昊男Henry 发表于 2021-10-19 22:18:35

我是昊男,这是驴车项目烂尾前的样子:https://makelog.dfrobot.com.cn/article-752.html
现在技术和大环境各方面都成熟了,是时候一起把坑填上!
漂移驴车,骑驴漂移~欢迎大家!

hnyzcj 发表于 2021-10-20 04:33:23

嘎嘎

ASH腻 发表于 2021-10-20 10:17:34

昊男Henry 发表于 2021-10-19 22:18
我是昊男,这是驴车项目烂尾前的样子:https://makelog.dfrobot.com.cn/article-752.html
现在技术和大环境 ...

哈哈2018年的坑都挖出来了

KIKI 发表于 2021-10-20 10:44:18

yoyojacky 发表于 2021-10-19 22:12
OK,驴车项目的微信群:

你这么大一个二维码,{:5_121:}

yoyojacky 发表于 2021-10-20 11:33:03

昊男Henry 发表于 2021-10-19 22:18
我是昊男,这是驴车项目烂尾前的样子:https://makelog.dfrobot.com.cn/article-752.html
现在技术和大环境 ...

哈哈,欢迎昊男强势加入。

yoyojacky 发表于 2021-10-20 11:33:42

ASH腻 发表于 2021-10-20 10:17
哈哈2018年的坑都挖出来了

陈年老坑,那味儿,入口柔,一线喉

yoyojacky 发表于 2021-10-20 11:34:18

KIKI 发表于 2021-10-20 10:44
你这么大一个二维码,

为了让大家扫码容易一些。哈哈,实际上是不知道怎么改小。。。

gray6666 发表于 2021-10-22 08:15:46

暑假已将把孩子遥控车模拆了,近期闭关赶赶进度{:7_216:}

yoyojacky 发表于 2021-10-22 18:24:10

gray6666 发表于 2021-10-22 08:15
暑假已将把孩子遥控车模拆了,近期闭关赶赶进度

哈哈,nice,这效率真高啊!

yoyojacky 发表于 2021-10-27 20:23:57

微笑的rockets 发表于 2021-10-27 11:03
10月30日我们将举行第一次的线上会议

昊男Henry 邀请您参加腾讯会议


预祝第一次线上活动成功!{:5_121:}

lumeizhu20 发表于 2021-11-15 14:37:02

真有趣!{:5_131:}
页: [1] 2
查看完整版本: 重拾漂移驴车项目-基于树莓派的无人驾驶RC赛车