制作一个车载机器人
如今,GPU 可用于各种模式识别任务。NVIDIA Jetson Nano 是一款非常出色的开发板,将 GPU 计算能力带到了边缘设备上。开发者套件配备的是支持 CUDA 的 GPU,可直接在边缘端运行深度学习应用。
目标
今天我将向你展示如何将 Jetson Nano 用作机器人的“大脑”。如果你已经拥有一个基于 Arduino 的机器人或小车,可以轻松地将 Jetson Nano 添加为高级决策电路,使其能够根据图像、视频、声音等各类传感器数据做出判断和决策。
代码的第一部分是一个 Arduino 蓝牙程序,演示了如何使用简单的二进制通信协议来发送和接收整数、浮点数等数据。这里的 Arduino 作为客户端,而 communication.h 文件定义了发送传感器数据的接口。
服务器则由 Jetson Nano 提供,它负责处理数据并响应指令,控制机器人执行相应操作。communication.py 文件包含收集、处理传感器信息并返回命令的代码。
让我们来回顾一下我为探测车搭建的总体结构。
结构
探测车的基本结构如下:
需要注意的是,Jetson Nano 的安装螺丝是 M2,而我手头的垫片均为 M3。我在 M3 垫片顶部用超胶粘贴了一些 M2 螺母,于是就得到了 M3-M2 混合型垫片!
步骤1:收集电路所需部件
定制电路板的主要部分是一个单层覆铜板,安装在探测车底盘上方作为第一层。该层包括:
1. Arduino
2. 磁力计/惯性测量单元
3. 距离传感器(HC-04)
4. 电机驱动器 L293D
5. 开关
6. 电位器调节器
7. 其他需要添加的特定应用硬件
步骤2:焊接原型电路
这一步根据机器人的用途而有所不同。我并未附上自己制作的机器人电路图,但大致结构如下所示。
步骤3:安装硬件
1. 组装机架——对于零件清单中提到的Adafruit机架,我需要将铝板与电机中间进行组装。安装车轮,并将光学旋转编码器和圆盘一起固定。此时也应安装电池座和锂离子电池。
2. 使用垫片将PCB板安装在机箱顶部。
步骤4:安装Jetson Nano
1. 接下来,使用另一组4个垫片将Jetson Nano安装在PCB板的顶部。
2. 然后使用USB线将Jetson Nano连接到Arduino板,使Jetson能够通过其串行端口 `/dev/ttyUSB0` 与Arduino进行通信。
3. 连接 Raspberry Pi 摄像头模块 v2 和 4G/WiFi 路由器
现在你应该拥有一些类似这样的设备:
步骤 5:在 Arduino 上刷入代码
将 ino 文件刷入 Arduino。
步骤 6:使用 Jetcard 刷入 Jetson
使用 Balena Etcher 将 JetCard 镜像刷入 32GB/64GB 的 MicroSD 卡。该镜像已为 Jetson Nano 准备好,包含 AI/深度学习所需的必要库。
同时安装以下 Python 库:pyserial。
步骤 7:在 Jetson Nano 上运行代码
链接的 roverCode 仓库中包含代码,它会根据 Arduino 提供的传感器信息计算磁偏角,并返回命令,以最短转弯方式导航至磁北方向。
1. 将仓库克隆到 Jetson Nano 上
2. 切换目录到 jetson-nano-plastic-detector/serial-communication
3. 以下命令将运行 Jetson 代码,控制机器人自动导航至磁北极。
本文编译自hackster.io





