NVIDIA Jetson Nano 2GB 系列文章(40):Jetbot系统介绍
在 2019 年 NVIDIA 推出 Jetson Nano 边缘计算设备之后,这套开源的 Jetbot 智能无人车教学系统也随之而生,为市场提供一套最优性价比的教学系统,不仅结合时下最先进的深度学习智能识别系统,并且使用最精简的硬件元件,让总体搭建成本锁定在 1,500 人民币以内,相较于市面上动辄 5,000 元以上的搭建成本,Jetbot 就显得十分亲民。这个项目最早出现在 NVIDIA GTC 2019 年大会上,现场演示了“避障”、“循路”与“遇障停止”等功能,吸引众多专业人士的眼球,因为 Jetbot 系统上只使用一个 CSI 摄像头,而没有其他任何距离传感设备(sensor),便能实现这些复杂的功能,这是相当神奇的一个能力,想体验 Jetbot 的功能,可以在网上找到很多关于这个项目的视频,感受一下这套小车的强大。
相较于其他智能小车,整个 Jetbot 小车大约只用了 8 个电子相关器件,以及 20 个左右的螺丝就能完成安装,如下图所示。其他小车都要使用两倍以上的元器件与螺丝,不仅成本差异非常大,并且组装过程十分繁琐。
此外,Jetbot 用 Jetson Nano(含 2GB)将计算与控制集于一身,传统小车大部分是将这两部分交由两个处理设备来独立负责,主要是因为那些计算设备的性能,不足以顺畅地同时执行计算与控制两个工作,但这样的方式会增加软件上的复杂度,也会影响系统的运行稳定性。
总的来说,Jetbot 智能车学习系统不仅在“成本、易用、稳定”这三方面都有明显的优势,还兼备“智、能、美”三大特色于一身:
智:NVIDIA 完整的 DeepLearning 资源
[*]能执行绝大部分 DeepLearning 框架
[*]TensorRT Inference Engine
[*]计算机视觉(CV)库与 Camera Subsystem
能:上手就能使用,周边扩充容易
[*]最优的计算性能与功耗平衡
[*]最丰富的开发资源与 Sample,上手就能使用
[*]能直接移植树莓派的绝大部分机电控制应用
美:造型美观、成本亲民
[*]开源流线造型 3D 打印输出
[*]使用数量最少的配设备
[*]成本最低,组装最简单
接下来的 Jetbot 系列文章,将为大家逐步揭开这个系统的神秘面纱,并引导大家一步一步地完成这个系统的搭建与实验,包括硬件系统组件的细节,以及软件系统的安装、调试与执行,毕竟这样一套模拟无人车运作的系统,必须每个细节都处理到位,任何一个小地方的疏忽都会影响系统的正常操作。
本文重点先为大家剖析一下 Jetbot 的组成元件列表,并将这些元件进行分类,这样有助于在后面分项细节说明中,清楚每个类别所扮演的角色。
1. 计算与控制设备:
这是 Jetbot 系统的核心,用 NVIDIA Jetson Nano 或 2GB 版本来担任,二者的机构尺寸与接口位置几乎一致,因此配套的装置是完全通用的。
Jetson Nano(含2GB)透过一组与树梅派兼容的 40 针扩展引脚,与电子控制设备进行互动,包括传送指令与接收信息,因此 Jetson Nano(含2GB)也同时肩负着控制的功能,这样能非常有效地降低设备之间的交互复杂度。
2. 信息接收设备:
Jetbot 只使用一个 CSI 摄像头,完全模拟人类“视觉感知”的理解方法,用最先进的深度学习“图像分类”技术来识别前方的图像,因此不需要其他声纳、红外线、激光雷达之类的空间距离传感设备,这到现在还是非常独特的做法。
目前 Jetson Nano(含2GB)支持 IMX219 芯片的摄像头,俗称“树莓派 2 代”摄像头,单价在 100 人民币左右。
3. 网络连线设备:
支持 M.2 Key-E 与 USB2/3 等接口的无线网卡,前者主要以 Intel 8265NGW 芯片为主,后者可使用多种双频的 USB 网卡。
网络设备的重点是要与上位机控制台(例如笔记本)保持连线,除了一开始透过控制台对 Jetbot 下达指令之外,还有透过前面所提到的 CSI 摄像头进行数据集采集的任务,以及 Jetbot 运行时的监控。
4. 显示设备:PiOLED
这是个树莓派领域使用率很高的设备,因为这些边缘设备并不方便连接显示器,因此需要一个小显示屏来提供一些简单的信息,特别是这个设备目前的 IP 地址,以及 CPU、内存使用率等简单信息。
这个元件如果是自行采购的话,可能需要一些基础焊接的工作,不过这个显示设备并非必要的元件,会在后面的内容中会进一步说明。
5. 电机控制设备:PCA9685+TB6612控制板、TT减速电机
这里由两个部分所组成:
[*]PCA9685 + TB6612 二合一控制版:前者负责接收来自 Jetson Nano 的 I2C 信号,后者则根据信号去提供电机所需要的电源,这个控制版的成本大约在 40 人民币左右,非常实惠。
[*]电机驱动的部分:包括两个 TT 电机与两个配套的外轮,前者接受 TB6612 供应的电流进行不同方向与速度的旋转,带动后者与地面摩擦执行 Jetbot 的行进。这部分的总成本在 20 元人民币以内。
6. 电源供应设备:
由于 Jetbot 所使用的电器设备全部都是 5V 电压,使用市面上标准的充电宝就可以,不过受到车座所留给放置电源的空间限制,对于充电宝的宽带与高度是有要求的,并且需要两个以上的供电口。
熟悉电源供应的读者,也可以自行制作 5V/3A 输出的电源方案。
7. 车座机构件:
这个在 Jetbot 小车官网上有提供开源的 3D 打印文件,读者可以下载后自行打印,或者在淘宝上这方面的服务供应商去打印也可以。
如果自己有 3D 打印机,技巧好一点的还可以打出如下图的彩色底座。
在我们完成上述所有硬件的组装之后,就能去执行 Jetbot 所提供的以下 4 个开源项目以及 2 个 Jetson Community 比较有意思的开源项目:
[*]基本运动:从 web 浏览器对 JetBot 进行编程,执行基本的电机控制;
[*]对象跟踪:使用预训练的对象检测模型,对人、杯子或狗等 80 类物件执行跟踪功能;
[*]避免碰撞:这是 Jetbot 的经典范例,使用深度学习的“图像分类”功能所实现的功能,主要分为两部分,全部透过一个 CSI 摄像头来进行:
(1) 透过 CSI 摄像头收集“障碍(block)”与“无障碍(free)”而分类图形,在 Jetson Nano(含2GB)进行模型训练,
(2) 将训练好的模型用在 Jetbot 上,对 CSI 摄像头实时读入的图像桢上进行推理识别,进而实行“避免碰撞”的功能。
[*]交通锥循路:这是 Jetson 社区里的开源项目,基于“避免碰撞”实验的扩展,将收集的数据分为“先前”、“向左”、“向右”、“障碍”四分类,执行与“避免碰撞”相同逻辑与步骤,进行数据集收集、模型训练与推理运作。
[*]道路跟踪:这是使用线性回归(linear regression)的方式来实现“循路”的功能,前提是道路上必须有分割线,才能使用这种方式实现循路的功能,过程中可以使用到游戏摇杆的协助,来收集数据集进行训练。
[*]避障与循路的结合:这也是基于 Jetson 社区的开源项目,将第 3 个“避免碰撞”与第 5 个“道路跟踪”实验相结合,是个实用性非常高的实验。
接着就开启我们的 Jetbot 系列的内容,全程在 Jetson Nano 2GB 上操作,带着大家一起轻松地玩转起来这套结构简单、成本亲民的无人车教学系统。
页:
[1]