让您的树莓派工作起来

donkey

请仔细阅读,因为 Donkey Car 的安装方式根据版本不同而有所不同。最新的 Donkey Car 版本是 5.x,需要使用 64 位的 Raspberry Pi OS Bookworm。

如果您使用的是旧版本的 Donkey Car,比如 4.X,那么您需要使用旧版的 Raspberry Pi OS(Raspbian)即 Buster,请跳转到这些说明 here

Tub 数据、车辆模板等在这两个版本之间是兼容的,同样适用于 keras 格式的模型 .h5。然而,Tensorflow Lite 模型 .tflite 不兼容,需要重新生成。

一般来说,我们建议使用带有 4GB RAM 的 RPi 4。同时建议使用一张 128GB 的 U3 速度的 microSD 卡,比如 这款 SanDisk SD 卡

安装 Donkey Car 主要版本(>= 5.1)使用 Raspberry Pi OS Bullseye

本安装过程使用 Raspberry Pi OS Bullseye(64 位)。

步骤 1:安装 Raspberry Pi OS

Raspberry Pi OS 现在可以使用图形安装程序 Raspberry Pi Imager 安装,可以从这里下载。请下载并启动该应用程序。

在下拉菜单“操作系统”中选择“Raspberry Pi OS(其他)”,然后选择“Raspberry Pi OS(64 位)”或“Raspberry Pi OS Lite(64 位)”。请注意,这两个操作系统都可以工作,但如果您的 Pi 是旧款的、只有少量内存或只有小容量的 SD 卡,那么使用无头 Lite 版本可能更好。

我们发现,在 RPi 4 上运行完整的桌面版操作系统不会对性能产生任何可测量的影响,并且拥有桌面访问权限可能会有益处。如果您喜欢,您随时可以切换到无头引导。

点击右下角的小齿轮或按下 'Ctrl-Shift-X' 进入高级设置。请设置主机名(这里选择为 'donkeypi')、您的无线网络、区域、本地设置等。设置应该如下所示: imager_advanced_dialog

将 SD 卡插入您的读卡器,选择它作为介质,然后点击 'Write' 将操作系统烧录到卡上。您应该能够通过网络通过主机名 'donkeypi.local'(或您在菜单中选择的任何名称)通过 ssh 连接到 Pi。

如果您想连接到 Pi 上的桌面,您需要在主机 PC 上安装 VNC Viewer,可以从Real VNC下载。

步骤 2:更新和升级

sudo apt-get update --allow-releaseinfo-change
sudo apt-get upgrade

步骤 3:Raspi-config

通过以下命令在 shell 中执行:

sudo raspi-config
  • 启用 Interfacing Options - I2C
  • 选择 Advanced Options - Expand Filesystem,以便您可以使用整个 SD 卡存储空间
  • 不要启用传统摄像头(默认情况下已禁用,因此不要更改任何设置)

选择 <Finish> 并按回车键。

注意:在更改这些设置后重新启动。如果选择 yes,应该会自动发生重启。

另外,如果您使用 VNC 连接到完整的桌面并且正在运行桌面版,请转到 'Raspberry -> Preferences -> Raspberry Pi Configuration' 并在那里应用设置。

注意:如果您喜欢安装 Raspberry Pi OS 的无头版本,请按照这里的步骤进行操作。之后您需要运行 sudo apt -y install pip git

第四步:创建虚拟环境

在您的主目录下运行以下命令来创建虚拟环境:

python3 -m venv env --system-site-packages
echo "source ~/env/bin/activate" >> ~/.bashrc
source ~/.bashrc

安装所需的库:

sudo apt install libcap-dev libhdf5-dev

第五步:安装Donkeycar Python代码

现在有两种不同的安装方式。很可能您希望进行用户安装。那么您将执行第用户安装步骤。如果您想要调试或编辑源代码,则需要进行更高级的开发者安装。但您只能选择其中一种方式。

注意:只能进行用户安装或开发者安装,不能同时进行!

用户安装

由于您已经激活了新的env,您只需输入以下命令:

pip install donkeycar[pi]

这将安装最新的发布版本。

开发者安装

在这里,您可以选择要安装的分支或标签,并且可以通过从GitHub下载源代码来编辑和/或调试代码。

创建一个您想要用作项目根目录的项目目录,进入该目录并从GitHub下载并安装donkeycar。确保您的donkey环境已激活。

mkdir projects
cd projects
git clone https://github.com/autorope/donkeycar
cd donkeycar
git checkout main
pip install -e .[pi]

进一步的步骤

  • 确保摄像头正常工作摄像头连接问题很常见,特别是在组装新的Donkeycar、安装新的摄像头或发生碰撞后。在这些情况下,或者在使用Donkeycar软件时遇到摄像头错误时,您应该在向Discord寻求帮助之前确保您的摄像头正常工作。Raspberry Pi OS包含摄像头软件,可拍照或流视频。如果您的Raspberry Pi连接了键盘、鼠标和显示器,那么您可以运行rpicam-hello实用程序来显示摄像头的视频流。如果您通过ssh登录到Raspberry Pi,那么您可以使用rpicam-jpeg实用程序拍摄一张图像并将其保存为JPEG格式,然后将生成的JPEG文件复制到主机计算机上进行查看(通常,如果成功拍摄照片而没有报告错误,则摄像头应该正常工作)。

  • 确保TensorFlow正常工作。您可以通过运行以下命令来验证您的TensorFlow安装(在激活Donkey环境的情况下;如果您已完成上述第4步,则应该已激活)。确保这里没有错误,并记下打印的版本;如果在后续步骤中训练深度学习自动驾驶程序遇到问题,则了解正在运行的TensorFlow版本对于在Discord上获得帮助至关重要。

python -c "import tensorflow; print(tensorflow.__version__)"


适用于Donkeycar <= 4.5的Raspberry Pi OS Buster安装

此安装使用Raspberry Pi OS Buster(32位)。

第一步:刷写操作系统

注意:如果您计划使用移动应用程序,请考虑使用预先构建的映像。 有关详细信息,请参阅移动应用程序用户指南

您需要使用操作系统刷写微型SD卡映像。

注意:Raspbian Latest(bullseye)与Python相机绑定不兼容。 底层相机系统已更改。请按照下面的步骤安装来自main分支的最新版本。

  1. 下载Raspian Legacy (Buster)
  2. 根据操作系统的具体指南,参考这里
  3. 将微型SD卡保留在计算机中,并按照以下方式编辑/创建一些文件:

步骤 2:设置首次启动的 WiFi

我们可以创建一个特殊的文件,在首次启动时用于登录 WiFi。 更多信息请参阅这里, 但是我们将为您逐步介绍。

在 Windows 上,当您烧录内存卡映像并且内存盘仍然插入时, 您应该会看到两个驱动器,实际上是内存盘上的两个分区。 其中一个标记为 boot。在 Mac 和 Linux 上,您也应该可以访问内存盘的 _ boot_ 分区。 这个分区使用常见的 FAT 格式,我们将在其中编辑一些文件, 以帮助它在首次启动时找到并登录到您的 WiFi。

注意:如果 boot 一开始不可见,请尝试拔出并重新插入内存卡读卡器。

  • 打开一个文本编辑器
  • 在 Linux 上使用 gedit
  • 在 Windows 上使用 Notepad++。
  • 在 Mac 上使用 VI(键入 vi /Volumes/boot/wpa_supplicant.conf,其中 boot 是 SD 卡的名称)。
  • 可以在这里找到可能要使用的 country 代码列表。
  • 复制并编辑以下内容以匹配您的 WiFi,根据需要进行调整:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="<您的网络名称>"
    psk="<您的密码>"
}

注意 - country 定义了允许的 WiFi 信道,请确保将其正确设置为 您所在的地区和硬件。

<您的网络名称> 替换为您的网络的名称。保留引号。 我曾经遇到过网络名称包含撇号(例如 "Joe's iPhone")时出现问题。 将 <您的密码> 替换为您的密码,保留引号将其括起来。 如果您不喜欢将密码明文保存,您可以稍后更改 文件内容, 一旦树莓派启动并登录。

  • 将此文件保存到 boot 分区的根目录,并将文件名命名为 wpa_supplicant.conf。 在首次启动时,此文件将被移动到 /etc/wpa_supplicant/wpa_supplicant.conf,稍后可以进行编辑。 如果您在 Windows 上使用 Notepad,请确保文件名末尾没有 .txt 扩展名。

第三步:设置树莓派的主机名

注意:这一步只适用于 Linux 主机。否则,您可以在登录到树莓派后在 raspi-config 中进行设置。

我们还可以设置主机名,以便在网络上更容易找到您的树莓派。如果您的树莓派是网络上唯一的设备,那么您可以使用以下命令找到它:

ping raspberrypi.local

一旦它启动,您就可以执行上述命令。如果网络上有许多其他树莓派设备,则可能会出现问题。 如果您使用的是 Linux 计算机,或者能够编辑 UUID 分区,那么您现在可以编辑 /etc/hostname/etc/hosts 文件,以便在启动后更容易找到您的树莓派。 请将这些文件中的 raspberrypi 替换为您选择的名称。 使用全小写字母,不要使用特殊字符,不要使用连字符,可以使用下划线 _。 一个好的建议是使用类似 pi-<MAC_ADDRESS> 的名称,例如 pi-deadbeef,特别是如果您在同一网络中有多个树莓派设备。

sudo vi /media/userID/UUID/etc/hostname
sudo vi /media/userID/UUID/etc/hosts

第四步:启用开机 SSH

在您的 boot 分区的根目录下创建一个名为 ssh 的文件。在 Mac 或 Linux 上,您可以使用 touch 命令来完成。例如,在 Mac 上,执行 touch /Volumes/boot/ssh,其中 boot 是 SD 卡的名称。

现在您的 SD 卡已经准备好了。从计算机中弹出它 - 等待系统显示写入完成并且可以安全地移除卡片。确保树莓派已关闭,将卡片插入树莓派并打开电源。

第五步:连接到树莓派

如果您按照上述说明添加了无线网络访问,您的树莓派现在应该已连接到无线网络。现在您需要找到它的 IP 地址,以便通过 SSH 连接到它。

最简单的方法(在 Ubuntu 上)是使用 findcar donkey 命令。您可以尝试执行 ping raspberrypi.local。如果您修改了主机名,则应该尝试:

ping <您的主机名>.local

在 Windows 计算机上,这将失败。Windows 用户将需要完整的 IP 地址(除非使用 cygwin)。

如果您在网络上无法找到您的树莓派,您可以将 HDMI 显示器和 USB 键盘连接到树莓派上。启动它。使用以下信息登录:

  • 用户名:pi
  • 密码:raspberry

然后尝试执行以下命令:

ifconfig wlan0

或者查看分配给树莓派的所有 IP 地址(无线或有线):

ip -br a

如果显示了有效的 IPv4 地址,即由点分隔的 4 组数字,那么您可以尝试将该地址与 SSH 命令一起使用。如果您没有看到类似的内容,则可能是您的无线配置有误。您可以尝试使用以下命令进行修复:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

如果您没有 HDMI 显示器和键盘,您可以使用 CAT5 网线将树莓派连接到具有 DHCP 功能的路由器上。 如果该路由器与您的计算机处于同一网络中,您可以尝试执行以下命令:

ping raspberrypi.local

希望其中一种方法成功,并且您现在已经准备好通过 SSH 连接到树莓派。在 Mac 和 Linux 上,您可以打开终端。 在 Windows 上,您可以安装 Putty其他替代方案, 或者在 Windows 10 上,您可以通过命令提示符使用 SSH。

如果您有命令提示符,可以尝试执行以下命令:

ssh pi@raspberrypi.local

或者

ssh pi@<您的树莓派 IP 地址>

或者使用 Putty。

  • 用户名:pi
  • 密码:raspberry
  • 主机名:<您的树莓派 IP 地址>

步骤 6:更新和升级

sudo apt-get update --allow-releaseinfo-change
sudo apt-get upgrade

步骤 7:Raspi-config

sudo raspi-config
  • 更改 pi 用户的默认密码
  • 更改主机名
  • 启用 Interfacing Options - I2C
  • 启用 Interfacing Options - Camera
  • 选择 Advanced Options - Expand Filesystem,以便您可以使用整个 SD 卡存储空间

选择 <Finish> 并按回车键。

注意:在更改这些设置后重新启动。如果选择 yes,应该会自动发生重启。

步骤 8:安装依赖项

sudo apt-get install build-essential python3 python3-dev python3-pip 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 libgeos-dev git ntp

步骤 9:(可选)安装 OpenCV 依赖项

如果您进行的是最小安装,可以不安装这些依赖项。但是安装 OpenCV 可能会很方便。

sudo apt-get install libilmbase-dev libopenexr-dev libgstreamer1.0-dev libjasper-dev libwebp-dev libatlas-base-dev libavcodec-dev libavformat-dev libswscale-dev

步骤 10:设置虚拟环境

这只需要做一次:

python3 -m virtualenv -p python3 env --system-site-packages
echo "source ~/env/bin/activate" >> ~/.bashrc
source ~/.bashrc

通过修改 .bashrc 文件,每次登录时都会自动启用此环境。要返回到系统 Python,可以输入 deactivate

步骤 11:安装 Donkeycar Python 代码

  • 创建并切换到您想要用作项目根目录的目录。
mkdir projects
cd projects

获取最新稳定版本(将是4.4版本)

git clone https://github.com/autorope/donkeycar
cd donkeycar
git fetch --all --tags -f
git checkout 4.5.1
pip install -e .[pi]
pip install https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.2.0/tensorflow-2.2.0-cp37-none-linux_armv7l.whl

您可以使用以下命令验证您的tensorflow安装:

python -c "import tensorflow; print(tensorflow.__version__)"

步骤12:(可选)安装OpenCV

如果您选择在之前安装OpenCV的依赖项,您现在可以使用以下命令安装Python的OpenCV绑定:

sudo apt install python3-opencv

如果失败,您可以尝试使用pip:

pip install opencv-python

然后测试是否成功导入:

python -c "import cv2"

如果没有错误,表示您已安装OpenCV!

步骤13:(可选)安装移动应用程序

iPhone和Android上有一个移动应用程序,提供了另一种用户体验。它可以手动安装或通过下载SD卡映像进行安装。按照这些说明进行手动安装。

注意:服务器组件目前仅支持Raspberry Pi 4B

接下来,创建您的Donkeycar应用程序