# DonkeyCar **Repository Path**: Angkor/donkeycar ## Basic Information - **Project Name**: DonkeyCar - **Description**: No description available - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-08-05 - **Last Updated**: 2026-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DonkeyCar ## 仓库目录结构 ``` DonkeyCar ├── LICENSE ├── README.md ├── actuator.py # 倒车文件配置 ├── manage.py # 倒车文件配置 ├── myconfig.py # 树莓派平台小车参数设置 ├── myconfig_sim.py # 仿真模拟平台小车参数设置 ├── 3DModel │   ├── .keep │   ├── Base_Plate.scad # 底层板 │   ├── Base_Plate.stl │   ├── Roll_Cage.scad # 相机支架 │   └── Roll_Cage.stl ├── 参考文档 │   ├── .keep │   ├── Donkey-Car-Content(1).pdf # DonkeyCar教程 │   ├── Donkey-Car-Content(2).pdf │   ├── Inkscape.pdf # Inkscape教程 │   ├── TensorFlow.pdf # TensorFlow教程 │   ├── donkeycar底盘控制电路.pdf # 电路连接示意图 │   └── openSCAD.pdf # openSCAD教程 ├── 激光切割图 │   ├── .keep │   ├── 上层板.dxf │   ├── 相机支架.dxf │   └── 车底板.dxf └── 训练模型 # 筛选后的训练模型 ├── .keep ├── p6.h5 # 顺时针行驶最优 ├── p7b.h5 ├── pR2.h5 ├── pR2a.h5 └── pR4.h5 # 逆时针行驶最优 ``` ## 团队成员 ### 成员及ID - 彭磊:swjtu-pl - 徐一昊:xyh222 - 陈佳琪:15520827882 - 王泽禄:19982040114 - 闫玉婷:dappostar ### 个人贡献 #### 彭磊 - 环境配置、模型训练、文档撰写 #### 徐一昊 - 环境配置、数据采集、文档撰写 #### 陈佳琪 - 小车组装、数据采集、模型训练 #### 王泽禄 - 小车组装、数据采集 #### 闫玉婷 - 数据采集、文档撰写 ## 软件架构 ### 一.树莓派系统安装 **1.格式化TF卡** 安装SDCardFormatterv5_WinEN,格式化TF卡。 **2.下载树莓派系统镜像文件** **3.安装Win32DiskImager** 在Windows环境下使用Win32 Disk Imager(Image Writer)软件写入, 把下载的zip包解压,打开软件,选择img文件,点击“写入”按钮,等待写入完成。 **4.树莓派连接电脑** **5.更换国内软件源** **6.更新与升级、配置设置** ``` sudo apt-get update sudo apt-get upgrade sudo raspi-config ``` **7.摄像头测试** ``` raspistill -o image.jpg -rot 180 ``` **8.安装依赖项** ``` sudo apt-get install build-essential python3 python3-dev python3-virtualenv python3-numpy python3-picamera python3-pandas python3-rpi.gpio i2c-tools avahi-utils joystick libopenjp2-7-dev libtiff5-dev gfortran libatlas-base-dev libopenblas-dev libhdf5-serial-dev git ``` **9.设置虚拟环境** ``` python3 -m virtualenv -p python3 env --system-site-packages echo "source env/bin/activate" >> ~/.bashrc source ~/.bashrc ``` **10.安装Donkeycar Python代码** ``` mkdir projects cd projects git clone https://github.com/autorope/donkeycar cd donkeycar git checkout master pip install -e .[pi] pip install -i https://pypi.tuna.tsinghua.edu.cn/simple h5py-2.9.0-cp35-cp35m-linux_armv7l.whl ``` **11.安装Tensorflow** ### 二.在windows下安装donkeycar 1.安装miniconda Python3.9 2.安装git 64 bit 3.创建Python Anaconda环境 4.安装Tensorflow GPU ***网站:*** ·https://conda.io/miniconda.html ·https://git-scm.com/download/win ·git库 https://github.com/wroscoe/donkey ### 三.Donkeycar仿真 **1.安装DonkeySim** 在电脑上下载并解压Donkeycar仿真工具,链接:https://github.com/tawnkramer/gym-donkeycar/releases **2.安装gym-donkeycar** 打开项目目录,从GitHub上下载`gym-donkeycar`,当前目录切换到`gym-donkeycar`并将环境改为`donkey`,安装`gym-donkeycar` ``` cd ~/projects git clone https://github.com/tawnkramer/gym-donkeycar cd gym-donkeycar conda activate donkey pip install -e .[gym-donkeycar] ``` **3.新建donkey目录`mysim`** 仿真可以使用已有的donkey目录,也可以新建donkey目录 ``` donkey createcar --path ~/mysim cd ~/mysim ``` **4.编辑`myconfig.py`文件** 打开donkey目录下的myconfig.py文件,编辑下列代码并将``替换为`donkey_sim`文件所在的目录 ``` DONKEY_GYM = True DONKEY_SIM_PATH = "/home//projects/DonkeySimLinux/donkey_sim.x86_64" //Linux版本 DONKEY_GYM_ENV_NAME = "donkey-generated-track-v0" ``` **5.操纵** 使用操纵杆、键盘或者鼠标操纵小车生成数据,默认控制网页网址为`http://localhost:8887/drive`,在操纵时数据将自动记录到donkey目录下的`data`文件夹中 ```python manage.py drive``` **6.训练** 将操纵小车得到的数据用于训练,得到模型 ``` python train.py --tubs data --model models/mypilot.h5 # or python train.py --tubs=data/tub_test,data/tub_1_21-07-23 --model models/mypilot.h5 ``` **7.测试** 用训练得到的模型操纵小车,检测模型是否合格。此处需要将控制网页中的`Mode and Pilot`设置为`Local Pilot(d)`. ```python manage.py drive --model models/mypilot.h5``` ### 四.三维建模软件OpenSCAD OpenSCAD语言:概述、函数、数学运算符、基础的立体模型、转变、CSG Modeling、特征修整、模块、导入几何、其他语言特点等 ### 五.二维设计软件Inkscape Inkscape基础:基本操作方法、形状、高级操作、书法技巧、描绘技巧、要素和原则、技巧和秘诀 ### 六.Tensorflow基础知识 1.张量,变量,自动微分,图和函数简介,模块、层和模型简介,训练循环,高级自动微分,不规则张量,稀疏张量,NumPy API,Tensor切片 2.参考网站:https://tensorflow.google.cn/guide/eager ### 七.训练自动驾驶 **1.创建Donkeycar应用程序** 1.从模板创建Donkeycar 2.配置I2C PCA9685 **2.校准Donkeycar** **(1)转向校准** 1.如何修改小车配置 ·所有配置都在config.py文件,这个文件是运行donkey createcar --path ~/d2指令时候生成的 ·使用nano ~/d2/config.py命令进行编辑 ·目标是编辑这些设置,让小车像其他校准的Donkey2一样驾驶 ·这样就可以在每辆车之间共享驾驶员和数据集 ·需要ssh进入Pi进行校准 2.转向校准 ·确保小车离开地面,以防止失控的情况 ·启动小车 ·找到小车上的伺服电缆,看看它插入PCA板的通道,应该是1或0 ·运行 donkey calibrate --channel ·输入360,会看到车上的轮子稍微移动,如果不移动,输入400或300 ·接下来,从起始值中输入+/- 10的值,找到PWM设置,使小车完全向左转弯并一直向右转,记住这些值 ·在config.py脚本中输入这些值作为STEERING_RIGHT_PWM和STEERING_LEFT_PWM **(2)油门校准** 1.确认小车上的ESC油门控制线,它应该是PWM驱动板的0通道; 2.运行 donkey calibrate --channel 0 --bus=1; 3.提示输入PWM值时,输入370; 4.应该听到ESC蜂鸣声,表明它已经过校准; 5.输入400,应该看到小车车轮开始前进,如果没有,可能是反向,请尝试输入330; 6.继续尝试不同的值,直到找到合理的最大速度并记住此PWM值。 反转RC汽车有点麻烦,因为ESC必须接收反向脉冲,零脉冲,反向脉冲才能开始倒退。要校准反向PWM设置… 7.使用与上述相同的方法将PWM设置为零油门(370); 8.先输入反向值(330),再输入零油门值(370),然后再输入反向值(330); 9.反向值增或减 10输入,以找到合理的反向速度。记住这个反向PWM值。 现在打开myconfig.py脚本并将小车的PWM值输入throttle_controller部分: THROTTLE_FORWARD_PWM =全油门前进的PWM值 THROTTLE_STOPPED_PWM =零油门的PWM值 THROTTLE_REVERSE_PWM =全反向油门时的PWM值 使用下列命令修改校准值:sudo nano /home/pi/mycar/myconfig.py **3.启动** 1.Donkeycar操作 2.PC电脑操作 **4.训练自动驾驶** 1.收集数据 2.将采集的训练数据传输到PC 3.训练模型 4.训练模型发送到小车实现自动驾驶 ## 硬件架构 ### 一.Donkeycar硬件清单 **1.小车套件** ·Truck Radio Car 1/16 2.4Ghz Exceed RC Magnet EP Electric RTR ·1/16 2.4Ghz Exceed RC Magnet EP Electric RTR Off Road Truck Sava Blue ·包含底盘,电机,电调,锂电池,充电器,遥控器等 **2.充电宝** 提供5v 2A的usb输出,主要给树莓派供电 **3.Raspberry Pi** **4.miscro SD 16G卡** **5.USB摄像头** **6.Servo Driver PCA 9685** **7.3D打印件或激光切割件** ### 二.硬件组装 **1.组装顶板和辊笼** **2.伺服驱动板连接到树莓派** **3.安装相机** **4.完成整合** ## 参考 1. http://docs.donkeycar.com/ 2. https://www.ncnynl.com/ 3. https://blog.csdn.net/wujingyu67971348/article/details/100805938 4. https://blog.csdn.net/wujingyu67971348/article/details/101982829