创建您的车辆应用程序

如果您还没有这样做,请通过SSH连接到您的车辆

从模板创建Donkeycar

使用以下命令创建一组文件来控制您的Donkey车辆 createcar

donkey createcar --path ~/mycar

这将使用默认的深度学习模板创建一个车辆。您还可以创建一个使用GPS路径跟踪模板的车辆

donkey createcar --template=path_follow --path ~/mycar

您还可以创建一个使用计算机视觉模板的车辆:

donkey createcar --template=cv_control --path ~/mycar

mycar不是一个特殊的名称,您可以将您的车辆文件夹命名为任何您想要的名称。

请参阅更多关于创建车辆的信息。

配置选项

查看您新创建的目录~/mycar中的myconfig.py文件:

cd ~/mycar
nano myconfig.py

每行都有一个注释标记。注释的文本显示了默认值。当您想要进行编辑以覆盖默认值时,通过删除#和选项的第一个字符之前的任何空格来取消注释该行。

例如:

# STEERING_LEFT_PWM = 460

变成:

STEERING_LEFT_PWM = 500

在编辑后。您将在校准部分中进行调整。

配置I2C PCA9685

如果您使用的是PCA9685舵机驱动板,请确保您可以在I2C上看到它。

Jetson Nano

sudo usermod -aG i2c $USER
sudo reboot

重启后,尝试:

sudo i2cdetect -r -y 1

树莓派

sudo apt-get install -y i2c-tools
sudo i2cdetect -y 1

这应该显示一个地址网格,类似于:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --

在这种情况下,40显示为我们的PCA9685板的地址。如果没有显示出来,请检查与板子的连线。在树莓派上,请确保在sudo raspi-config的菜单中启用了I2C(注意,它建议重新启动)。

如果您为您的板子分配了非标准地址,请在myconfig.py文件中的PCA9685_I2C_ADDR变量下调整地址。如果您的板子在另一个总线上,您可以使用PCA9685_I2C_BUSNUM指定该总线。

Jetson Nano:在您的__myconfig.py__中设置PCA9685_I2C_BUSNUM = 1。对于树莓派,这将由Adafruit库自动检测。但Jetson Nano上不会自动检测。

Sombrero设置

如果您有一个sombrero板,请在__myconfig.py__中设置HAVE_SOMBRERO = True

Robo HAT MM1设置

如果您有一个Robo HAT MM1板,请在__myconfig.py__中设置HAVE_ROBOHAT = True。还根据您的设置设置以下变量。大多数人将使用以下值,但如果您使用的是Jetson Nano,请设置MM1_SERIAL_PORT = '/dev/ttyTHS1'

# ROBOHAT MM1
HAVE_ROBOHAT = True            # 设置为True,当使用Robotics Masters的Robo HAT MM1时,这将改变为RC控制。
MM1_STEERING_MID = 1500         # 如果您的车不能直线行驶,请调整此值
MM1_MAX_FORWARD = 2000          # 最大正向油门。值越大,速度越快
MM1_STOPPED_PWM = 1500
MM1_MAX_REVERSE = 1000          # 最大反向油门。值越小,速度越快
MM1_SHOW_STEERING_VALUE = False
# 串口
# -- 树莓派默认: '/dev/ttyS0'
# -- Jetson Nano: '/dev/ttyTHS1'
# -- Google coral: '/dev/ttymxc0'
# -- Windows: 'COM3',Arduino: '/dev/ttyACM0'
# -- MacOS/Linux: 请使用'ls /dev/tty.*'查找正确的串口,例如'/dev/tty.usbmodemXXXXXX',然后相应地替换端口
MM1_SERIAL_PORT = '/dev/ttyS0'  # 用于读取和发送MM1数据的串口(树莓派默认)

# 将控制器类型设置为Robohat MM1
CONTROLLER_TYPE = 'MM1'
# 调整Web界面的驱动类型
DRIVE_TRAIN_TYPE = 'MM1'

Robo HAT MM1使用RC控制器和CircuitPython脚本在训练期间驱动车辆。在继续之前,您必须使用计算机将CircuitPython脚本放入Robo HAT MM1中。

  1. 这里将CircuitPython Donkey Car Driver for Robo HAT MM1下载到您的计算机。
  2. 将Robo HAT MM1上的MicroUSB连接器连接到计算机的USB端口。
  3. 计算机上应该会出现一个名为__CIRCUITPY__的设备,作为USB存储设备。
  4. 将在步骤1中下载的文件复制到__CIRCUITPY__ USB存储设备中。文件应命名为__code.py__,位于驱动器的顶层,而不是任何文件夹中。
  5. 这里下载Adafruit logging库的Python文件adafruit_logging.py
  6. adafruit_logging.py文件复制到CIRCUITPY的"lib"文件夹中。
  7. 将USB电缆从Robo HAT MM1上拔下,并将其放在树莓派的顶部,就像放置任何HAT一样。

您可能需要在树莓派上启用硬件串口。在树莓派上执行以下操作:

  1. 运行命令sudo raspi-config
  2. 导航到__5 - Interfaceing options__部分。
  3. 导航到__P6 - Serial__部分。
  4. 当被问到:__Would you like a login shell to be accessible over serial?__时,选择NO。
  5. 当被问到:__Would you like the serial port hardware to be enabled?__时,选择YES。
  6. 关闭raspi-config。
  7. 重新启动。

如果您需要Robo HAT MM1的其他硬件或软件支持,可以在Hackster.io上找到一些指南。下面列出了这些指南。

Raspberry Pi + Robo HAT MM1

Jetson Nano + Robo HAT MM1

Simulator + Robo HAT MM1

手柄设置

如果您计划使用手柄,可以前往这里

摄像头设置

如果您使用默认的深度学习模板或计算机视觉模板,则需要摄像头。默认情况下,__myconfig.py__文件假定使用的是树莓派摄像头。您可以通过编辑~/mycar文件夹中的__myconfig.py__文件中的CAMERA_TYPE值来更改此设置。

如果您使用的是GPS路径跟踪模板,则不需要也可能不希望使用摄像头。在这种情况下,您可以将摄像头类型更改为模拟器;CAMERA_TYPE = "MOCK"

有关各种摄像头和配置的详细信息,请参阅Cameras

升级Donkey Car软件

在__myconfig.py__中进行的所有配置更改都将通过更新进行保留。当有需要获取的更新时,您可以拉取最新的代码,然后执行以下操作:

cd projects/donkeycar
git pull
donkey createcar --path ~/mycar --overwrite

如果您使用GPS路径跟踪模板创建了一个车辆,请记住包含--template参数;

donkey createcar --template=path_follow --path ~/mycar --overwrite

这个操作会更改您的~/mycar/manage.py、~/mycar/config.py和其他文件,但不会触及__myconfig.py__。您的__data__和__models__文件夹不会被更改。


下一步

校准您的车辆