让您的Jetson Nano/Xavier NX正常工作

donkey

根据Donkey Car的版本,我们有不同的安装软件的方法。对于Donkey Car <= 4.5.X,我们使用Jetpack 4.5.X,其中包含Tensorflow 2.3.1。Python安装使用虚拟环境,即基于系统Python的3.6版本。这是适用于旧版Jetson Nano的唯一版本。

对于main分支,我们已将Tensorflow升级到2.15,Python升级到3.11。这在较新版本的Jetpack上运行。您将需要Jetson Xavier或任何较新的Jetson设备(如Orin)来使用Jetpack 5.0.2。为了将Python安装与系统Python分离,我们使用Miniforge,它是基于Mamba的Miniconda版本,适用于aarm架构。

对于Donkey Car <= 4.5.X,请继续阅读下一节。对于main分支上的最新版本,请跳转到此部分

我们建议使用4GB版本的Jetson Nano或Jetson Xavier来无问题地运行软件。同时,建议使用128GB的U3速度的microSD卡,例如这款SanDisk SD卡

这是支持的版本信息:

Jetson Jetpack Python Donkey Tensorflow
Nano 4.5.1 3.6 <= 4.5.X 2.3.1
Xavier/Orin 5.0.2 3.8 >= 5.X 2.9

然后 创建你的 Donkeycar Application

Installation for Donkey Car <= 4.5.X

注意:目前这些说明仅适用于DC 4.3.6和DC 4.4.0。我们正在努力修补程序,以支持4.5.X版本。

步骤1a:刷写操作系统

这些说明适用于Jetpack 4.5.1。

这将安装官方的Nvidia版本Tensorflow 2.3.1;请确保您的主机PC上使用的是相同版本的Tensorflow。如果使用不同版本的Tensorflow训练网络,可能会在尝试将其用作自动驾驶器时出现错误。

请访问官方的Nvidia Jetson Nano入门指南Nvidia Xavier NX入门指南。按照“准备设置”、“将映像写入microSD卡”和“设置和首次启动”说明进行操作,然后返回这里。

完成设置后,通过ssh连接到您的设备。对于Ubuntu或Mac,请使用终端。对于Windows,请使用Putty

移除 Libre Office:

sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove

添加 8GB swap 文件:

git clone https://github.com/JetsonHacksNano/installSwapfile
cd installSwapfile
./installSwapfile.sh
sudo reboot now 

步骤 2a: 释放串口 (可选. Only needed if you're using the Robohat MM1)

sudo usermod -aG dialout <your username>
sudo systemctl disable nvgetty

步骤 3a: 安装系统级依赖项

首先使用apt-get安装一些软件包。

sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install -y python3-dev python3-pip
sudo apt-get install -y libxslt1-dev libxml2-dev libffi-dev libcurl4-openssl-dev libssl-dev libpng-dev libopenblas-dev
sudo apt-get install -y git nano
sudo apt-get install -y openmpi-doc openmpi-bin libopenmpi-dev libopenblas-dev

步骤 4a: Setup Python Environment.

搭建虚拟环境

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

Setup Python Dependencies

Next, you will need to install packages with pip:

pip3 install -U pip testresources setuptools
pip3 install -U futures==3.1.1 protobuf==3.12.2 pybind11==2.5.0
pip3 install -U cython==0.29.21 pyserial
pip3 install -U future==0.18.2 mock==4.0.2 h5py==2.10.0 keras_preprocessing==1.1.2 keras_applications==1.0.8 gast==0.3.3
pip3 install -U absl-py==0.9.0 py-cpuinfo==7.0.0 psutil==5.7.2 portpicker==1.3.1 six requests==2.24.0 astor==0.8.1 termcolor==1.1.0 wrapt==1.12.1 google-pasta==0.2.0
pip3 install -U gdown

# This will install tensorflow as a system package
pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow==2.5

安装Donkeycar Python代码

切换到您想要用作项目根目录的目录。假设您已经创建了上面提到的projects目录,您可以使用该目录。获取最新的4.5.X版本并将其安装到虚拟环境中。

mkdir projects
cd ~/projects
git clone https://github.com/autorope/donkeycar
cd donkeycar
git fetch --all --tags -f
git checkout 4.5.1
pip install -e .[nano]

步骤5a:(可选)安装PyGame以支持USB摄像头

如果您计划使用USB摄像头,您还需要安装PyGame:

sudo apt-get install python-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev python-numpy subversion libportmidi-dev ffmpeg libswscale-dev libavformat-dev libavcodec-dev libfreetype6-dev
pip install pygame

稍后您可以在myconfig.py中添加CAMERA_TYPE="WEBCAM"

Donkey Car >= 5.X 的安装

这是针对main分支上的最新代码或新版本(>= 5.X)的安装说明。请注意,两种可用的操作系统之间的安装方式有所不同。在Jetson上,您需要安装Jetpack 5.0.2。

在Jetson Xavier(或更新的Jetson开发板)上安装

步骤1b:刷写操作系统

这些说明适用于Jetpack 5.0.2。

请从Nvidia官方网站下载并安装Jetpack映像文件(jetson-nx-developer-kit-sd-card-image.zip)。

请参阅官方的Nvidia Xavier NX入门指南。按照“准备设置”、“将映像写入microSD卡”和“设置和首次启动”说明进行操作,然后返回到这里。

完成设置后,通过SSH登录到您的车辆。对于Ubuntu或Mac,请使用终端。对于Windows,请使用Putty

移除Libre Office:

sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove

并添加一个8GB的交换文件。请注意,如果您打算从SSD运行,请在从SSD启动后才进行交换文件设置:

git clone https://github.com/JetsonHacksNano/installSwapfile
cd installSwapfile
./installSwapfile.sh -s 8
reboot 

步骤2b:释放串口(可选,仅在使用 Robohat MM1 时需要)

sudo usermod -aG dialout <your username>
sudo systemctl disable nvgetty

步骤3b:设置Python环境

  • 步骤3b-1:将TensorFlow安装到系统Python环境中

要在JP5.1.2上安装TensorFlow及其依赖项,请按照NVIDIA的说明这里

  • 步骤3b-2:设置虚拟环境
python3 -m venv env --system-site-packages
echo "source ~/env/bin/activate" >> ~/.bashrc
source ~/.bashrc
  • 步骤3b-3:安装Donkey Car

有两种不同的安装方法。很可能您会选择用户安装。然后您将执行步骤2a。如果您想调试或编辑源代码,则需要进行更高级的开发者安装。但您只能选择其中一种。

注意:只执行步骤3b-4或3b-5中的一个!

  • 步骤3b-4:用户安装

由于您已经激活了新的env环境,因此您可以输入以下命令:

pip install donkeycar[nano]
pip install -U albumentations --no-binary qudida,albumentations
pip uninstall opencv-python-headless
pip uninstall scikit-learn
git clone https://github.com/scikit-learn/scikit-learn.git
cd scikit-learn/
python setup.py install
sudo chmod 666 /dev/gpiochip*

这将安装最新版本。

  • 步骤3b-5:开发者安装

仅在未执行步骤3b-4中的用户安装时执行此操作。

在这里,您可以选择要安装的分支或标签,并且可以通过从GitHub下载源代码来编辑和/或调试代码。为了获取main分支的最新版本,请执行以下操作。

mkdir projects
cd projects
git clone https://github.com/autorope/donkeycar
cd donkeycar
git checkout main
pip install -e .[nano]
pip install -U albumentations --no-binary qudida,albumentations
pip uninstall opencv-python-headless
pip uninstall scikit-learn
git clone https://github.com/scikit-learn/scikit-learn.git
cd scikit-learn/
python setup.py install
sudo chmod 666 /dev/gpiochip*
  • 步骤3b-6:检查TF和OpenCV安装

运行Python并验证tensorflow为2.9版本,trt为8.2.1版本。 为了正确加载tensorrt共享库,我们必须设置环境变量LD_PRELOAD,如下所示:

export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libnvinfer.so.8:/usr/lib/aarch64-linux-gnu/libgomp.so.1

注意,这必须在每次运行donkeycar或tensorflow时都执行,或者将上述行放入您的.bashrc文件中。

python
>>> import tensorflow as tf
>>> tf.__version__
>>> from tensorflow.python.compiler.tensorrt import trt_convert as trt
>>> trt._check_trt_version_compatibility()
>>> import cv2
>>> print(cv2.getBuildInformation())

步骤4b:(可选)安装PyGame以用于USB摄像头

如果您计划使用USB摄像头,您还需要安装pygame:

pip install pygame

稍后您可以在myconfig.py中添加CAMERA_TYPE="WEBCAM"

(可选)修复CSIC相机上的粉红色色调

这适用于您在上面进行的任何安装,无论是JP 4.6.X还是5.0.X。 如果您使用的是CSIC相机,则图像可能会有粉红色色调。如 此处所述,此修复方法将去除粉红色色调。

wget https://www.dropbox.com/s/u80hr1o8n9hqeaj/camera_overrides.isp
sudo cp camera_overrides.isp /var/nvidia/nvcam/settings/
sudo chmod 664 /var/nvidia/nvcam/settings/camera_overrides.isp
sudo chown root:root /var/nvidia/nvcam/settings/camera_overrides.isp

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