Jetbot实战系列02:软件环境安装

本次Jetbot实验全程都在 Jetson Nano 2GB 开发套件上面运行。在组装Jetbot教学系统之前,最好先把Jetbot系安装到Jetson Nano 2GB上,这样可以先对每个元件进行独立的测试,确认元件能正确工作之后再进行组装的步骤。

本次Jetbot实验全程都在 Jetson Nano 2GB 开发套件上面运行。在组装Jetbot教学系统之前,最好先把Jetbot系安装到Jetson Nano 2GB上,这样可以先对每个元件进行独立的测试,确认元件能正确工作之后再进行组装的步骤。

否则一旦先组装好再测试的话,如果发现某个元件有问题,或者线路(杜邦线、电源线)没接好,就得拆下来测试后再组装,这个过程非常折磨人,因此建议在组装之前,先个别测试每个元件之后再进行组装,会减少很多麻烦。

Jetbot需要与很多周边设备互动,并且使用很多深度学习框架以及Jupyter交互界面进行操作,因此需要安装与调试的内容很多,主要包括以下部分:

  1. jtop性能监控软件:这个软件对于熟悉Jetson设备的人来说是非常熟悉的。
  2. 摄像头调用库:独立支持CSI摄像头的接口
  3. 深度学习工具:包括Python相关库,以及pytorchtorchvision库与TensorFlow模型仓、torch2trt工具等
  4. Jupyter交互环境:包括Jupyter LabJupyter Clickable Image Widget以及一些扩展包
  5. 周边调用库:包括支持I2C接口的python3-smbus库、创建支持PiOLED显示的服务与对PCA9685+TBB6612控制板的调用。
  6. 添加4GB SWAPFILE与修正一些小错误:
  7. 其他

为了减少使用者的逐步安装之苦,Jetbot提供三种安装方式,现在就一一为大家说明,请任选其中一种就可以。

  • 完整镜像安装Jetbot

这是Jetbot一开始推出来的时候所使用的方法,至今还继续沿用。执行步骤如下:

  1. 下载Jetbot镜像:

根据所使用的机型是Jetson Nano2GB版本,选择对应的下载路径,目前最新版本是基于Jetpack 4.5的基础上搭建,然后打包成镜像文件提供下载。请到https://jetbot.org/master/software_setup/sd_card.html(下图)点选:

Jetbot实战系列02:软件环境安装

下面也将这两个链接复制一份在这里

这种方式最常遇到的问题,就是镜像文件存放在Google Drive上,国内下载可能会出现阻碍,目前也没找到任何Mirror站提供这两个镜像文件,这是用户需要自行客服的部分。

  1. 准备一张32GB以上的TF卡,用Etcher将上面下载的镜像烧录进TF卡;
  2. TF卡插入设备后开机即可使用,系统用户名、密码以及Jupyter界面的密码都是 ”jetbot”

对于Ubuntu操作系统不是太熟的使用者,推荐使用这种方法是最单纯的

  • 在原有系统上创建:

如果您已经在Jetson Nano(含2GB)上开发某些深度学习应用,并计划与Jetbot进行整合,那么前面一种方式就需要您将现有项目全部移植到Jetbot的环境里,这并不是一种非常理想的方式。

这里有两种方法能在您现有的Jetapck开发环境中,安装Jetbot智能无人车项目,不过请确认您的TF卡还有足够的空间,如果将SWAP挡一起算进去,建议至少有10GB空间是比较保险的。

第一件事情,就是将Github的开源代码,复制一份到您的Jetson Nano(含2GB)上,请执行以下指令:

$

$

cd ~ && git clone http://github.com/NVIDIA-AI-IOT/jetbot.git

cd jetbot

接下来看看这两种可以操作的方式,Jetbot项目都为我们准备好对应的脚本,因此只要执行这些脚本就可以,只是有些小地方需要做点修正就可以:

  1. 在系统上直接用脚本安装

jetbot/scripts里有个”create-sdcard-image-from-scratch.sh”脚本,将所有Jetbot所需要的依赖库、软件与环境调试步骤,全部写在这个脚本里面,只要执行以下指令就能自动执行。

$

$

$

$

cd scripts

sudo ./create-sdcard-image-from-scratch.sh

./scripts/configure_jetson.sh  # 关闭图形桌面,并设定成10W运行模式

./scripts/enable_swap.sh      # 添加SWAP空间

但这种方法存在一个比较大的风险,就是安装过程中,有些Python库版本会与您原本调试好的版本产生冲突的可能,特别是numpy版本以及tensorflowpytorch相关的库,一旦造成冲突,要重新还原是个大工程。

除非您对这些库之间的版本依赖比较熟悉,否则并不推荐使用这个方式,虽然这种安装所需要的时间最短,但是潜藏的风险是最大的。

  1. 使用Docker容器技术:

这是实用性最高的方式,不仅Docker集成技术会将Jetbot操作环境与实体环境进行隔离,避开软件版本冲突的风险,还能与您现有开发环境共存,进一步将Jetson Nano 2GB上所开发的项目有效集成,也让TF卡利用率能发挥到最高,是我们比较推荐的一种安装方式。

创建Jetbot容器的脚本在目录下的docker目录里,请先将工作位置移到这里:

$

cd ~/jetbot/docker

这个安装过程,最好先用USB或网络(有线或WIFI)与Jetson Nano 2GB连线,透过SSH远程操作会比较合适,因为过程会将Jetson Nano(含2GB)的图形桌面关闭,并且最后需要在PC上用浏览器开启Jupyter操作界面。

Jetbot团队提供创建Docker版本的脚本是基于Jetpack 4.4版本,如果您目前使用Jetpack 4.5以上版本的话,需要对configure.sh脚本以及<base><camera><display><jupyter><models>下面的Dockerfile进行小幅度修改。下面以Jetpack 4.5版本为例:

    1. configure.sh15行添加以下内容:

15

16

17

elif [[ "$L4T_VERSION" == "32.5.0" ]]

then

     JETBOT_BASE_IMAGE=nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.6-py3

储存修改后,执行以下指令:

$

source configure.sh

    1. 修改base/Dockerfile文件的两行设定值:
  • 将第1 r32.4.3-pth1.6-py3 改成r32.5.0-pth1.6-py3
  • 102 ”RUN apt install -y python3-smbus && pip3 install pyzmq”提前到jupyter的安装之前,例如移到第77
  • 为前一个安装行最后的 ”pyzmq” 指定版本改成pyzmq==22.0.0
    1. 修改modelsdisplayjupytercamera下面的Dockerfile
  • 将“base:jp44”改成“base:$JETBOT_VERSION-$L4T_VERSION

全部修改存档后,回到docker目录下执行创建脚本:

$

./build

整个过程在Jetson Nano 2GB上大约需要90分钟,会创建或下载以下6个镜像文件:

  1. nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.6-py3:从NVIDIA的镜像仓中下载,作为Jetbot镜像的基础,因为这是Jetbot深度学习的基础环境。
  2. jetbot/jetbot:base-0.4.3-r32.5.0:提供深度学习环境与周边调度管理机制
  3. jetbot/jetbot:jupyter-0.4.3-r32.5.0Jupyter互动式操作嗯环境
  4. jetbot/jetbot:display-0.4.3-r32.5.0负责在PiOLED显示内容
  5. jetbot/jetbot:camera-0.4.3-r32.5.0:负责摄像头调度的功能
  6. jetbot/jetbot:model-0.4.3-r32.5.0:存放项目需要的预训练模型

创建完毕之后,执行以下指令看看是否创建齐全:

$

docker images

Jetbot实战系列02:软件环境安装

后面所显示的 “SIZE” 是叠加上去的,全部实际所占用的空间大约5GB,所以不用太担心TF卡空间是否会不足。

最后设置Jetbot相关环境,并重启设备:

$

$

$

./scripts/configure_jetson.sh  # 关闭图形桌面,并设定为10W执行模式

./scripts/enable_swap.sh      # 创建4GBSWAP 空间

sudo reboot

接下去就启动Jetbot软件,执行以下指令将启动位置设为在 $HOME/jetbot

$

$

cd ~/jetbot/docker

./enable $HOME/jetbot

检查系统是否启动?可以用docker ps指令看看服务是否正常允许,如果显示以下信息,表示这个系统已经启动。

Jetbot实战系列02:软件环境安装

到这里就完成DockerJetbot系统的安装。

  • 登陆Jupyter操作界面:

这里需要一台Jetson Nano 2GB以外的电脑,可以是WindowsLinuxMac操作系统的PC机,透过网络连线的方式,用浏览器登陆Jupyter界面来操作Jetbot

必须确保两台电脑在同一个网段,而且可以互相访问(ping),最简单的方式就是用具备数据传输的Micro USB 连接线,将Jetson Nano 2GB PC 之间进行直连(如下图),当连线成功之后,Jetson Nano 2GB就能有”192.168.55.1”这个固定的IP,这样的出来是最简便的。

Jetbot实战系列02:软件环境安装

只要在PC上执行 “ping 192.168.55.1” 能正确通信,接下去就可以在PC上开启一个浏览器(推荐用Chrome)输入”<IP_OF_JETSON_NANO_2GB>:8888”,例如这里就在浏览器网址输入框输入 ”192.168.55.1:8888” 就可以。

第一次进入的时候会要求输入密码,系统预设为“jetbot”,输入之后就能进入下面画面的Jupyter操作界面,这里的根目录就是 ”enable.sh” 后面跟随参数所指定的路径,可以自行调整。

Jetbot实战系列02:软件环境安装

如果能打开的话,就表示这台Jetbot已经处于能工作的状态,就可以开始进入后面的内容。关于Jupyter的操作,请自行在网上查找,这里不单独提供使用说明。接下去的内容就会在这个界面上进行操作。[]

来源:业界供稿

0赞

好文章,需要你的鼓励

2021

12/07

11:37

分享

点赞

邮件订阅
白皮书