前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NVIDIA JetBot系列教程(2):软件环境安装

NVIDIA JetBot系列教程(2):软件环境安装

作者头像
GPUS Lady
发布2021-11-08 15:13:06
1.3K0
发布2021-11-08 15:13:06
举报
文章被收录于专栏:GPUS开发者GPUS开发者

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

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

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

1. jtop性能监控软件:这个软件对于熟悉Jetson设备的人来说是非常熟悉的。

2. 摄像头调用库:独立支持CSI摄像头的接口

3. 深度学习工具:包括Python相关库,以及pytorch、torchvision库与TensorFlow模型仓、torch2trt工具等

4. Jupyter交互环境:包括Jupyter Lab、Jupyter Clickable ImageWidget以及一些扩展包

5. 周边调用库:包括支持I2C接口的python3-smbus库、创建支持PiOLED显示的服务与对PCA9685+TBB6612控制板的调用。

6. 添加4GB SWAPFILE与修正一些小错误:

7. 其他

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

完整镜像安装Jetbot

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

(1) 下载Jetbot镜像:

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

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

(1) 准备一张32GB以上的TF卡,用Etcher将上面下载的镜像烧录进TF卡;

(2) 将TF卡插入设备后开机即可使用,系统用户名、密码以及Jupyter界面的密码都是 ”jetbot”

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

l 在原有系统上创建:

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

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

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

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

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

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

代码语言:javascript
复制
$ cd scripts
$ sudo ./create-sdcard-image-from-scratch.sh
$./scripts/configure_jetson.sh  # 关闭图形桌面,并设定成10W运行模式
$./scripts/enable_swap.sh      # 添加SWAP空间

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

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

2. 使用Docker容器技术:

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

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

代码语言:javascript
复制
$  cd ~/jetbot/docker

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

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

(1) 修改base/build.sh:删除 ”BASE_IMAGE=$JETBOT_BASE_IMAGE”

(2) 修改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”

(3) 修改models、display、jupyter、camera下面的Dockerfile:

Ø 执行以下指令就可执行替换任务:

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

整个过程在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.0:Jupyter互动式操作嗯环境

(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:存放项目需要的预训练模型

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

代码语言:javascript
复制
$  docker images

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

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

代码语言:javascript
复制
$ ./scripts/configure_jetson.sh  # 关闭图形桌面,并设定为10W执行模式
$ ./scripts/enable_swap.sh      # 创建4GBSWAP 空间
$ sudo reboot

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

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

到这里就完成Docker版Jetbot系统的安装。

登陆Jupyter操作界面

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档