DonkeyCar for Jetson Nano 教程一、Jetson nano安装

来自丢石头百科
Admin讨论 | 贡献2020年1月19日 (日) 09:25的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

DonkeyCar for Jetson Nano 教程目录

步骤1、安装依赖

默认你的jetson nano已经安装镜像并启动。打开控制终端,输入如下命令安装依赖库

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python3 python3-dev python3-pip libhdf5-serial-dev hdf5-tools nano

步骤2、设置虚拟环境

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

步骤3、安装OpenCV

  • 构建OpenCV的第一步是在Jetson Nano上定义交换空间。
  • Jetson Nano具有4GB RAM。这不足以从源代码构建OpenCV。因此,我们需要在Nano上定义交换空间以防止内存崩溃。
# Turn off swap
sudo swapoff /var/swapfile
# Allocates 4G of additional swap space at /var/swapfile
sudo fallocate -l 4G /var/swapfile
# Permissions
sudo chmod 600 /var/swapfile
# Make swap space
sudo mkswap /var/swapfile
# Turn on swap
sudo swapon /var/swapfile
# Automount swap space on reboot
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'
# Reboot
sudo reboot
  • 安装OpenCV依赖库
# Update
sudo apt-get update
sudo apt-get upgrade
# Pre-requisites
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev
  • 下载OpenCV的源代码
# Create a directory for opencv
mkdir -p projects/cv2
cd projects/cv2

# Download sources
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip

# Unzip
unzip opencv.zip
unzip opencv_contrib.zip

# Rename
mv opencv-4.1.0 opencv
mv opencv_contrib-4.1.0 opencv_contrib
  • 进入到虚拟环境env
source ~/env/bin/activate
# Install Numpy
pip install numpy
  • 设置Cmake配置
# Create a build directory
cd projects/cv2/opencv
mkdir build
cd build

# Setup CMake
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    # Contrib path
    -D OPENCV_EXTRA_MODULES_PATH=~/projects/cv2/opencv_contrib/modules \
    # Your virtual environment's Python executable
    # You need to specify the result of echo $(which python)
    -D PYTHON_EXECUTABLE=~/env/bin/python \
    -D BUILD_EXAMPLES=ON ../opencv
  • 使用以下命令编译源码,编译时间会比较长,请耐心等待。
  • 注意:如果前面没有设置交换空间,此时编译可能会因为内存不足导致进程关闭。
make -j2
  • 安装OpenCV
# Install OpenCV
sudo make install
sudo ldconfig
  • 将构建的OpenCV库链接到虚拟环境virtualenv
# Go to the folder where OpenCV's native library is built
cd /usr/local/lib/python3.6/site-packages/cv2/python-3.6
# Rename
mv cv2.cpython-36m-xxx-linux-gnu.so cv2.so
# Go to your virtual environments site-packages folder
cd ~/env/lib/python3.6/site-packages/
# Symlink the native library
ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so cv2.so
  • 运行以下命令会看到类似如下信息
ls -la
total 48
drwxr-xr-x 10 user user 4096 Jun 16 13:03 .
drwxr-xr-x  5 user user 4096 Jun 16 07:46 ..
lrwxrwxrwx  1 user user   60 Jun 16 13:03 cv2.so -> /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so
-rw-r--r--  1 user user  126 Jun 16 07:46 easy_install.py
drwxr-xr-x  5 user user 4096 Jun 16 07:47 pip
drwxr-xr-x  2 user user 4096 Jun 16 07:47 pip-19.1.1.dist-info
drwxr-xr-x  5 user user 4096 Jun 16 07:46 pkg_resources
drwxr-xr-x  2 user user 4096 Jun 16 07:46 __pycache__
drwxr-xr-x  6 user user 4096 Jun 16 07:46 setuptools
drwxr-xr-x  2 user user 4096 Jun 16 07:46 setuptools-41.0.1.dist-info
drwxr-xr-x  4 user user 4096 Jun 16 07:47 wheel
drwxr-xr-x  2 user user 4096 Jun 16 07:47 wheel-0.33.4.dist-info
  • 运行Python 执行以下,测试OpenCV是否成功
import cv2

# Should print 4.1.0
print(cv2.__version__)
(env) jetson@jetson:~$ python
Python 3.6.8 (default, Jan 14 2019, 11:02:34)
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
4.1.0
>>> quit()

步骤4、安装Donkeycar Python代码

  • 从Github获取最新的donkeycar程序
cd ~/projects
git clone https://github.com/autorope/donkeycar
cd donkeycar
git checkout master
pip install -e .[nano]
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3

步骤5、从模板创建Donkeycar

  • 使用以下命令创建donkeycar实例
donkey createcar --path ~/mycar

程序运行后~/mycar目录下回自动生成一系列控制donkeycar的文件。

  • 打开如下文件,找到摄像头参数设置部分修改摄像头参数
nano myconfig.py

Jetson Nano使用基于Sony IMX219的相机,摄像头改为CSIC,分辨率设置为224*224.

#CAMERA
CAMERA_TYPE = "CSIC"   # (PICAM|WEBCAM|CVCAM|CSIC|V4L|MOCK)
IMAGE_W = 224
IMAGE_H = 224