树莓派4B安装Ubuntu18.04运行DonkeyCar和TensorFlow
本文是原创作品,欢迎大家进行转载
最近,我们在树莓派安装了Ubuntu18.04系统,想实现之前无人驾驶DonkeyCar的功能,经历一番痛苦的挣扎,最终终于实现了,于是做一个分享,希望能帮助到有需要的同学,整个安装过程时间非常长,所以需要做好时间上的安排和准备。
树莓派Ubuntu18.04版本里面分两种,本博客只针对架构是aarch64架构的ubuntu系统,如果不知道系统架构什么,可在终端输入以下指令来查询
uname -a
结果输出如图:
一、安装Python3.7
树莓派Ubuntu18.04系统自带Python3.69,这个版本很奇怪,比大多数Python3.7版本小一个版本,又比Python3.5版高,而在donkeycar中用到了tensorflow,一般是在python3.5或者在python3.7版本下运行,所以为了安装tensorflow,只能先安装python3.7,流程如下:
1.1 准备工作
1.1.1安装工具
sudo apt update
sudo apt upgrade
sudo apt install gcc
sudo apt install g++
sudo apt-get install libffi-dev
sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
1.2 正式开始
1.2.1 下载python文件
cd ~/Download
sudo curl -O https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
1.2.2 解压源码包
sudo tar Jxvf Python-3.7.1.tar.xz
cd Python-3.7.1
1.2.3 创建python安装路径
sudo mkdir /usr/python37
1.2.4 安装python
sudo ./configure --enable-optimizations --prefix=/usr/python37
sudo make && sudo make install
这个过程非常漫长,大概需要3-4个小时才能执行完毕,所以大家可以去喝杯茶,泡个咖啡啥的休息一下^ _ ^。
安装完成以后,大家可以去设置一些什么环境变量啊啥的,但是和后续的使用没有太大关联,在这里我就不做说明了,有需要的同学请查阅其他资料。
二、安装VirtualEnv
为了使得系统可以兼容之前的环境,我们安装了VirtualEnv来配置环境。
2.1 安装VirtualEnv
sudo apt-get install virtualenv
2.2 创建虚拟环境
在目录下创建
virtualenv -p /usr/python37/bin/python3.7 ~/py37env
三、安装Tensorflow
3.1 下载Tensorflow2.2.0安装文件
首先,到 https://github.com/lhelontra/tensorflow-on-arm/releases/tag/v2.2.0 下载Python3.7版本的aarch64版本的whl文件。
3.2 依赖库安装
sudo apt-get install libhdf5-dev
sudo apt-get install gfortran
3.3 在虚拟环境下安装Cython
此时一定要确定是在之前创建的虚拟环境下安装,因为只有虚拟环境才是Python3.7,如果不是,需要执行如下语句确定。
source ~/py37env/bin/activate
然后安装Cython
pip install Cython
3.3 安装Tensorflow
准备工作差不多了,接下来就可以安装tensorflow了
找到tensorflow whl文件下载的目录
pip install tensorflow-2.2.0-cp37-none-linux_aarch64.whl
pip会自动解决tensorflow的依赖库,这个过程时间非常漫长。
四、树莓派摄像头
本步骤是针对树莓派CSI摄像头的驱动,如果使用usb摄像头则跳过此步骤。
4.1 依赖库安装
这一步很关键,如果没有安装这个库依然可以配置树莓派,但是可能导致开机直接死机,那么只能重装系统了,那就又要折腾很长时间。。。
sudo apt-get install lua5.1
4.2 在ubuntuserver上安装raspi-config
启动摄像头需要用到官方的raspi-config配置程序,进入官网地址,下载最新的deb程序。
wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200817_all.deb
4.3 安装raspi-config
sudo dpkg -i raspi-config_20170926_all.deb
4.4 加载 /boot 分区
在配置的时候,如果没有加载 /boot 分区,会出现如下错误:
Your firmwave appears to be out of date (no start_x.elf). Please update
所以,配置之前需要先查看一下分区
df -h
将该设备号挂载在/boot上
sudo mount /dev/mmcblk0p1 /boot
4.5 设置raspi-config
启动raspi-config
sudo raspi-config
选择第5项,交互设置:
选择第1项:
随后会出现是否设置为enabled,选择yes。
等待树莓派重启。
重启后检查是否有摄像头设备:
ls -al /dev/ | grep video
安装完毕。
五、系统重启后,就可以安装donkeycar了
Donkey Car源码安装和官网一样,但是摄像头需要利用opencv方能打开。因此,首先安装donkeycar源码。
5.1 切换至虚拟环境
因为donkeycar用到tensorflow,是在python3.7的环境下,因此我们需要先切换至python3.7的系统环境。
source ~/py37env/bin/activate
5.2 下载DonkeyCar源码
git clone https://github.com/autorope/donkeycar
cd donkeycar
git checkout master
pip install -e .
这期间如果缺少某些库,按照提示pip install安装即可。
5.3 安装opencv和依赖库
pip install opencv-python
pip install pandas
5.4 创建donkeycar文件
donkey createcar --path ~/mycar
5.5 修改摄像头模式
cd ~/mycar
vim myconfig.py
将当中的 CAMERA_TYPE = “PICAM” 修改成 CAMERA_TYPE = “CVCAM” 即可。