在树莓派上搭建Donkeycar开发环境

  • 在树莓派上搭建Donkeycar开发环境
    • 1 系统安装与SSH配置
    • 2 更新系统
    • 3 配置树莓派
    • 4 安装依赖包
    • 5 安装Python的虚拟环境
    • 6 安装 Donkeycar 的源码包
      • 6.1 创建项目目录
      • 6.2 克隆仓库源码
        • 6.2.1 在GitHub上fork仓库到自己的账户下
        • 6.2.2 将自己GitHub上的仓库导入到自己的码云仓库里
        • 6.2.3 克隆仓库源码到本地
      • 6.3 以可编辑模式安装项目
      • 6.4 安装 TensorFlow
      • 6.5 安装 numpy
      • 6.6 验证 TensorFlow 是否安装成功
    • 7 安装OpenCV
    • 8 安装 OLED 显示服务
    • 9 从模板创建Donkeycar实例

在树莓派上搭建Donkeycar开发环境

1 系统安装与SSH配置

在树莓派上最好安装Lite版的系统,占用空间相对较小。我这里选择的是2020-08-20-raspios-buster-armhf-lite.zip ,可以从清华源上下载这个安装镜像压缩文件,然后使用Raspberry Pi Image 工具进行烧写。

由于没有显示设备,需要通过ssh的方式访问树莓派,所以在TF卡烧写完成后,需要在 boot 根目录下创建 ssh 空白文件,保存后,将TF卡从PC上拔出,然后安插在树莓派上。

本次网络操作选用以太网的网线连接树莓派的以太网网卡接口,在配置好Donkeycar环境之前先不配置WiFi。

2 更新系统

所有的镜像都滞后于软件包的更新,所以烧写好镜像,并通过ssh进入树莓派后要进行更新,这里需要提前换源,建议换成清华的源。

pi@raspberrypi:~ $ sudo nano /etc/apt/sources.list

将文件中原来的源注释掉,在文件开头添加如下内容:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

键盘CTRL-O回车执行保存,CTRL-X退出文件。

pi@raspberrypi:~ $ sudo nano /etc/apt/sources.list.d/raspi.list

将文件中原来的源注释掉,在文件开头添加如下内容:

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

键盘CTRL-O回车执行保存,CTRL-X退出文件。

换好源之后就可以更新系统了。

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get upgrade

等待系统更新完成。

3 配置树莓派

pi@raspberrypi:~ $ sudo raspi-config

启动树莓派配置界面,依次进行如下操作:

开启I2C功能



开启 Camera 功能




选择 Expand Filesystem



选择 Finish 并且按照指示完成系统重启。


4 安装依赖包

要安装的东西很多,但是因为换了国内的源,所以还是很快的。

pi@raspberrypi:~ $ 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 git ntp

安装OpenCV依赖包

pi@raspberrypi:~ $ sudo apt-get install libilmbase-dev libopenexr-dev libgstreamer1.0-dev libjasper-dev libwebp-dev libatlas-base-dev libavcodec-dev libavformat-dev libswscale-dev libqtgui4 libqt4-test

5 安装Python的虚拟环境

刚才上面的依赖包中已经安装了 python3-virtualenv ,以下需要使用 virtualenv 命令来创建一个Python的虚拟环境了。

在当前目录下创建一个名字叫“env”的Python虚拟机,命令如下(但千万先不要执行这条命令)

pi@raspberrypi:~ $ virtualenv --system-site-packages -p python3 env

这条命令执行时会出现很多的问题,最主要的原因就是网速。首先安装 setuptools,请在树莓派终端执行这条命令:

pi@raspberrypi:~ $ sudo pip3 install setuptools

接着如果马上再试着执行刚才创建虚拟机的命令,发现还是会报错(所以,依然不要执行那条创建虚拟机的命令)

OSError: Command /home/pi/env/bin/python3 - setuptools pkg_resources pip wheel failed with error code 2

上面的错误经过搜索之后说是pip没有更新到最新版。

于是再执行更新 pip3 的命令,请在树莓派终端执行这条命令

pi@raspberrypi:~ $ sudo pip3 install pip -U

然后再试着执行刚才创建虚拟机的命令,依然报错!!(所以,仍然不要执行那条创建虚拟机的命令)

继续搜索可行的方案,GitHub上有人说是没有配置locale的问题,然后请在树莓派终端执行下面的命令:

pi@raspberrypi:~ $ export LC_ALL="en_US.UTF-8"
pi@raspberrypi:~ $ export LC_CTYPE="en_US.UTF-8"

之后,再次执行创建虚拟机的命令

pi@raspberrypi:~ $ virtualenv --system-site-packages -p python3 env

然后,成功了~~~!如果上面的命令提示找不到 virtualenv 命令的话,那就执行下面的命令

pi@raspberrypi:~ $ python3 -m virtualenv --system-site-packages -p python3 env

这时,可以在当前目录下看到 env 文件夹下的 bin 文件夹里有了 activate 命令。

如果这时还是出错的话,那就再次更新 setuptools 和 virtualenv,也就是在中断里再次执行

pi@raspberrypi:~ $ pip3 install setuptools -U -i https://pypi.tuna.tsinghua.edu.cn/simple
pi@raspberrypi:~ $ pip3 install virtualenv -U -i https://pypi.tuna.tsinghua.edu.cn/simple

上面的命令执行完成后,再次在终端里执行建立虚拟机的命令

pi@raspberrypi:~ $ python3 -m virtualenv --system-site-packages -p python3 env

然后就能看到下图这个美丽的界面了!

如果要进入这个虚拟机,可以执行以下命令

pi@raspberrypi:~ $ source ~/env/bin/activate

然后就可以看到自己的终端命令提示符前出现了 (env) 字样,表示我们成功进入Python的虚拟机了。

(env)pi@raspberrypi:~ $

如果需要经常在Python的这个虚拟机下操作的话,可以把刚才那条命令放在环境变量里,这样开机就能直接进入这个虚拟机。

如果你现在在Python的虚拟机下,那么首先输入deactivate 命令退出虚拟机。然后执行以下命令修改环境变量(注意命令行开头没有虚拟机的名字,表示我们已经退出虚拟机):

pi@raspberrypi:~ $ sudo echo "source ~/env/bin/activate" >> ~/.bashrc
pi@raspberrypi:~ $ source ~/.bashrc

如果要退出,需要输入 deactivate 命令。

6 安装 Donkeycar 的源码包

6.1 创建项目目录

(env)pi@raspberrypi:~ $ mkdir projects
(env)pi@raspberrypi:~ $ cd projects

6.2 克隆仓库源码

这个源码包部署在GitHub上,微雪提供的那份也是从Donkeycar的仓库上fork的,为了让源码下载更顺利,我把微雪的那份从GitHub上迁移到自己的码云上。

自己没有仓库,也不懂什么叫仓库的同学可以直接去 6.2.3 那里

6.2.1 在GitHub上fork仓库到自己的账户下

先登录自己的GitHub账号,访问微雪的 Donkeycar 仓库,然后点击 fork ,把仓库 fork到自己的账户上。(如果没有GitHub账户好像也没事,直接去码云上操作下面的步骤,只不过把GitHub仓库的地址选择成微雪那份也行。)

6.2.2 将自己GitHub上的仓库导入到自己的码云仓库里

接着登录自己的码云,点击右上角的 + 号,选择最后一项“从GitHub / GitLab 导入仓库”

然后输入GitHub上自己仓库的地址

之后点击“导入”按钮,等待导入完成,就可以进入导入过来的仓库页面了。在这个页面上点击“克隆 / 下载”按钮,选择“HTTPS”方式的地址,点击“复制”,然后使用 git clone 命令把仓库克隆到树莓派上。

6.2.3 克隆仓库源码到本地

我已经把这个仓库导入到了自己的码云上,仓库是公开的,可以直接克隆,所以没有码云的同学可以直接执行下面的命令。

(env)pi@raspberrypi:projects $ git clone https://gitee.com/ursaminor68/donkeycar.git
(env)pi@raspberrypi:projects $ cd donkeycar
(env)pi@raspberrypi:donkeycar $ git checkout master

6.3 以可编辑模式安装项目

接下来需要以可编辑模式安装项目,需要执行的指令是:

(env)pi@raspberrypi:donkeycar $ pip install -e .[pi]

这条命令执行起来简直是要了命了,一个名叫 h5py-3.1.0-cp37-cp37m-linux_armv7l.whl的文件 5.1MB,但就是下载不下来,www.piwheels.org 速度太慢了,总是超时,国内目前没有这个网站的镜像源。

下载慢就不要这样等待了,直接 CTRL-C 退出指令执行,在终端中复制 h5py-3.1.0-cp37-cp37m-linux_armv7l.whl 文件的下载路径,然后用Chrome把这个文件下载到本机,并使用 scp 命令把文件传到树莓派上单独安装。

请在PC机上打开另一个终端,进入刚才文件下载到的路径中(我这里是Mac系统,直接下载到了用户目录的Download文件夹里,所以我的命令提示符前显示的是“Download”,请你在执行scp命令前一定要先进入到所下载的文件的路径下,然后再去执行scp命令),执行下面的命令

➜  Download scp -P 22 h5py-3.1.0-cp37-cp37m-linux_armv7l.whl pi@192.168.31.187:/home/pi/projects/donkeycar/

然后在树莓派终端中执行安装命令

(env)pi@raspberrypi:donkeycar $ pip install h5py-3.1.0-cp37-cp37m-linux_armv7l.whl

等待安装完成后,再执行那条可编辑模式安装项目的命令即可(这里还指定了清华源,速度会稍微快一些。)

(env)pi@raspberrypi:donkeycar $ pip install -e .[pi] -i https://pypi.tuna.tsinghua.edu.cn/simple

6.4 安装 TensorFlow

TensorFlow的安装过程中同样会需要几个比较大的 .whl 文件,所以统一需要先用浏览器把这几个文件先下载到PC机上,然后通过 scp 命令传输到树莓派上离线安装。

PC上下载的文件有:

https://www.piwheels.org/simple/grpcio/grpcio-1.33.2-cp37-cp37m-linux_armv7l.whl

https://www.piwheels.org/simple/tensorflow/tensorflow-1.13.1-cp37-none-linux_armv7l.whl

首先上传 grpcio-1.33.2-cp37-cp37m-linux_armv7l.whl

在PC端执行

➜  Download scp -P 22 grpcio-1.33.2-cp37-cp37m-linux_armv7l.whl pi@192.168.31.187:/home/pi/projects/donkeycar/

上传完成后,在树莓派端执行

(env)pi@raspberrypi:donkeycar $ pip install grpcio-1.33.2-cp37-cp37m-linux_armv7l.whl

接着上传 tensorflow-1.13.1-cp37-none-linux_armv7l.whl

在PC端执行

➜  Download scp -P 22 tensorflow-1.13.1-cp37-none-linux_armv7l.whl pi@192.168.31.187:/home/pi/projects/donkeycar/

上传完成后,在树莓派端执行

(env)pi@raspberrypi:donkeycar $ pip install tensorflow-1.13.1-cp37-none-linux_armv7l.whl

6.5 安装 numpy

同样先用Chrome下载文件到PC机本地

numpy-1.19.4-cp37-cp37m-linux_armv7l.whl

通过PC端上传到树莓派

➜  Download scp -P 22 numpy-1.19.4-cp37-cp37m-linux_armv7l.whl pi@192.168.31.187:/home/pi/projects/donkeycar/

上传完成后在树莓派终端执行安装命令

(env)pi@raspberrypi:donkeycar $ pip install numpy-1.19.4-cp37-cp37m-linux_armv7l.whl

6.6 验证 TensorFlow 是否安装成功

在树莓派终端运行

(env)pi@raspberrypi:donkeycar $ python -c "import tensorflow"

可能会出现一堆的 Warrning,但我觉得应该是成功了。

7 安装OpenCV

(env)pi@raspberrypi:donkeycar $ sudo apt-get install python3-opencv

安装完成后测试一下。

(env)pi@raspberrypi:donkeycar $ python -c "import cv2"

如果没有任何错误返回,表明安装成功。

8 安装 OLED 显示服务

这个源码也是在GitHub上,需要参考6中的操作,把GitHub上的源码导入到码云上,然后再使用git克隆到本地。

(env)pi@raspberrypi:donkeycar $ cd ~
(env)pi@raspberrypi:~ $ git clone https://gitee.com/ursaminor68/pi-display.git
(env)pi@raspberrypi:~ $ cd pi-display
(env)pi@raspberrypi:pi-display $ sudo ./install.sh

9 从模板创建Donkeycar实例

(env)pi@raspberrypi:donkeycar $ donkeycar createcar --path ~/mycar

等待创建完成,就可以在用户目录下看到新创建的 mycar 项目了。

Done~!

Raspberry Pi 4B(4GB版)上搭建Donkeycar开发环境相关推荐

  1. 我的Go+语言初体验——iPad上搭建Go+开发环境(ish版)

    目录 欢迎来到用iPad来学习Go+之旅 一.在 iPad 安装 Go+ 前的准备 1. iSH Shell 的作用 2. 安装 iSH Shell 3. 在 iSH 里安装一些常用软件 apk 命令 ...

  2. 在CentOS 6.2上搭建vim开发环境

    在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...

  3. nodejs mac java home_Mac上搭建nodejs开发环境

    ###Mac上搭建nodejs开发环境 ####安装homebrew 1 2 3ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...

  4. ubuntu16.04上搭建stm32f4开发环境

    ubuntu16.04上搭建stm32f4开发环境 工程源码的地址 https://github.com/txson/ubuntu-stm32 欢迎大家参与修改 搭建交叉编译环境 stm32 属于ar ...

  5. 在Windows上搭建Rust开发环境——Clion篇

    文章目录 在Windows上搭建Rust开发环境--Clion篇 安装mingw64 安装Rust hello world 安装Clion 使用Clion创建并调试项目 在Windows上搭建Rust ...

  6. VSCode上搭建MDK开发环境

    VSCode上搭建MDK开发环境 提示:需先安装MDK编译器(Keil5) 目的:在使用Keil5开发程序中若要使用"Go to"功能需要打开"Browse Inform ...

  7. VM上搭建IPhone开发环境

    Windows平台上安装搭建iPhone/iPad的开发环境 一棵树技术分享2010/09/09给我留言8,644 views 来自 http://bbs.ldci.com.cn/read.php?t ...

  8. 使用R7版NDK搭建Android开发环境[不使用Cgywin]

    废话不多说,只说几句. 写这个的初衷是因为公司的项目需要,领导要求我搭建一个Android的开发环境(Eclipse + NDK),我算上找资料,下载,安装,配置环境及写文档,正好用了一个工作日.先把 ...

  9. Ubuntu 11.04上搭建Android开发环境

    本文给大家讲解下如何在Ubuntu 11.04环境下使用Eclipse, Android SDK和 PhoneGap搭建Android开发环境. #1,安装Eclipse 和 Android SDK/ ...

最新文章

  1. 阻止应用继承的NTFS权限
  2. php大商创 安装,大商创X2020最新纯净服务器安装教程
  3. html让a标签左右一样宽,button和a标签设置相同的css样式,但是宽度不同
  4. 我想要一种语言,只需对它说我要干什么就行
  5. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
  6. 17 FI配置-财务会计-定义雇员的容差组
  7. Python中的闭包与装饰器及工厂模式
  8. mysql8.0.11创建用户报错_mysql8.0.11修改root密码,其他创建用户和删除用户
  9. 荣耀note10升级android9.0,荣耀Note 10成为办公“超神”利器,只需要升级EMUI 9.0就够了!...
  10. STM32单片机启动文件startup_stm32f10x_hd.s详解
  11. java记住用户名和密码_JAVA--高级基础开发Cookie实现记住用户名和密码
  12. JDK动态代理的使用,以及可以解决哪些问题和优点,什么是动态代理
  13. 应用统计学学什么科目_应用统计学专业考研需考哪些科目
  14. 【笔记】WGS84转GCj02
  15. 红色警戒2兼容性补丁、联网补丁、全屏显示设置
  16. php算法----队列
  17. 《APP开发》APP规范实例-详细的UI设计方法
  18. SAP S4HANA1610/Fiori安装过程全记录
  19. Java Scaner小问题
  20. 华为p10 android几,华为p10国行版和海外版有什么区别 配置参数对比评测

热门文章

  1. IDEA配置PHP项目
  2. 原理+代码,总结了 11 种回归模型
  3. Photoshop文字之——打造立体的金属网格字
  4. 解决不能打开网站但能ping通
  5. python n个人围成一圈_Python练习实例69 | 有n个人围成一圈,顺序排号。从第一
  6. zigbee智能家居系统转载文章
  7. JUC并发编程-CompletableFuture
  8. vxWorks驱动文件结构
  9. idea控制台输出日志过多,修改log4j日志级别去掉没用的
  10. TFT-LCD显示技术类型详述