2. Jetson平台基础
在机载计算与PX4集成的工程链路中,Jetson并不是一块“更快的树莓派”,而是一台带有GPU、统一内存架构和完整Linux生态的边缘AI计算机。理解它的硬件分层、软件栈和远程开发方式,是后续部署视觉推理、SLAM、MAVLink桥接与实时控制的前提。本节从硬件规格、JetPack SDK、Ubuntu环境配置和远程开发四个角度建立Jetson平台的整体认知。
一、Jetson系列硬件规格与选型逻辑
Jetson家族按算力、功耗和接口能力大致分为三条线:Nano/TX2系列面向入门与低功耗场景,Xavier NX/AGX Xavier面向中端机器人平台,Orin Nano/Orin NX/AGX Orin面向新一代高算力边缘AI。机载场景最关注的不是峰值TOPS,而是功耗、重量、接口、内存带宽和散热的平衡。
以常见的Orin NX 16GB为例,它提供100 TOPS(INT8)算力、16GB LPDDR5统一内存、PCIe Gen4、千兆网口和CSI摄像头接口,典型功耗10–25W。统一内存意味着CPU与GPU共享同一块物理内存,CUDA零拷贝和TensorRT推理可以避免主机与设备之间的显式拷贝,这对延迟敏感的视觉闭环非常关键。
| 型号 | AI算力(INT8) | 内存 | 典型功耗 | 适用场景 |
|---|---|---|---|---|
| Jetson Nano | 0.5 TOPS | 4GB LPDDR4 | 5–10W | 教学、轻量视觉 |
| Xavier NX | 21 TOPS | 8/16GB | 10–20W | 中型无人机、机器人 |
| Orin Nano | 40 TOPS | 8GB | 7–15W | 入门级边缘AI |
| Orin NX | 100 TOPS | 8/16GB | 10–25W | 机载视觉、SLAM |
| AGX Orin | 275 TOPS | 32/64GB | 15–60W | 高算力无人平台 |
选型时先确定推理模型规模与帧率,再反推算力和内存,最后核对功耗与散热。若模型需要TensorRT INT8且帧率30FPS以上,Orin NX通常是机载平台的性价比拐点。
二、JetPack SDK:从驱动到推理的完整栈
JetPack是NVIDIA为Jetson提供的官方SDK,它把L4T(Linux for Tegra)、CUDA、cuDNN、TensorRT、VisionWorks、DeepStream和多媒体API打包在一起。JetPack版本与L4T版本严格对应,例如JetPack 5.x对应L4T 35.x(Ubuntu 20.04),JetPack 6.x对应L4T 36.x(Ubuntu 22.04)。
安装JetPack有两种主流方式:一是使用NVIDIA SDK Manager在Ubuntu主机上刷写,适合首次部署和完整环境;二是使用预制的SD卡镜像,适合快速验证。刷机后必须确认以下组件版本一致:
# 查看L4T版本
cat /etc/nv_tegra_release
# 查看CUDA与TensorRT
nvcc --version
dpkg -l | grep tensorrt
# 查看JetPack版本
apt-cache show nvidia-jetpack | grep Version
在机载集成中,JetPack版本决定了可用的CUDA算子和TensorRT版本,而TensorRT版本又直接影响ONNX模型转换的成功率。因此,先锁定JetPack版本,再选择模型和推理框架,是避免后期返工的关键顺序。
三、Ubuntu环境配置与远程开发方法
Jetson默认运行Ubuntu,但机载设备通常没有显示器和键鼠,因此远程开发是常态。推荐采用“SSH + VSCode Remote + 串口/网络双通道”的组合:SSH用于日常开发,VSCode Remote提供图形化编辑与调试,串口或独立网口用于PX4飞控通信。
基础环境配置建议按以下顺序执行:
- 设置固定IP或mDNS主机名,保证机载网络稳定;
- 配置SSH密钥登录,禁用密码登录;
- 安装VSCode Remote-SSH插件,在Jetson上运行Python/C++调试;
- 配置NTP或chrony时间同步,避免MAVLink时间戳错乱;
- 设置CPU/GPU功耗模式,如
nvpmodel和jetson_clocks。
# 查看当前功耗模式
sudo nvpmodel -q
# 设置为最大性能模式(Orin NX为0)
sudo nvpmodel -m 0
sudo jetson_clocks
# 查看温度与频率
tegrastats
四、典型场景与常见误区
一个典型的机载视觉场景是:Jetson Orin NX通过CSI摄像头采集图像,TensorRT运行YOLO检测,结果通过MAVLink发送给PX4,PX4执行位置控制。此时Jetson负责感知与决策,PX4负责实时控制,两者通过UART或UDP通信。若Jetson端推理延迟超过50ms,整个闭环就会出现明显滞后,因此必须用tegrastats和TensorRT的profiler持续监控。
常见误区包括:
- 只看TOPS不看内存带宽:大模型推理常受限于内存带宽而非算力;
- 忽略JetPack与L4T版本对应关系:导致CUDA或TensorRT无法安装;
- 在机载端使用桌面版Ubuntu源:可能破坏L4T驱动;
- 不做功耗与散热验证:高负载下Jetson降频,推理帧率骤降;
- 远程开发时直接暴露SSH到公网:存在安全风险,应使用VPN或跳板机。
总结来看,Jetson平台的基础可以归纳为“硬件选型—JetPack版本锁定—Ubuntu环境配置—远程开发链路”四步。只有把这条链路打通,后续的TensorRT部署、ROS2节点和PX4集成才有稳定的运行基础。