1. 项目背景与需求解析
在边缘计算和机器人开发领域,NVIDIA Jetson Orin Nano凭借其强大的AI算力和能效比,已成为众多开发者的首选平台。而ROS(Robot Operating System)作为机器人开发的事实标准,其ROS1和ROS2两个主要版本在实际项目中常常需要共存运行。这就引出了一个关键需求:如何在Jetson Orin Nano上实现ROS1和ROS2的并行运行?
我最近在部署一个智能巡检机器人项目时就遇到了这个典型场景:部分老旧的传感器驱动仅支持ROS1,而新开发的核心算法又基于ROS2。经过多次尝试和优化,最终实现了双版本ROS的稳定共存。下面就把这套经过实战检验的方案分享给大家。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 系统环境选择
Jetson Orin Nano官方支持JetPack 5.1.2(基于Ubuntu 20.04)和JetPack 6.0(基于Ubuntu 22.04)。考虑到ROS2 Humble需要Ubuntu 22.04,而ROS1 Noetic最佳支持Ubuntu 20.04,这里推荐两种方案:
-
保守方案:使用JetPack 5.1.2 + Ubuntu 20.04
- 优点:ROS1 Noetic官方支持完善
- 缺点:需要手动编译安装ROS2 Humble
-
前瞻方案:使用JetPack 6.0 + Ubuntu 22.04
- 优点:ROS2 Humble官方支持完善
- 缺点:ROS1 Noetic需要从源码编译
提示:如果项目对ROS2依赖更强,建议选择方案2。我在实际项目中选择的是方案1,因为核心传感器驱动对ROS1兼容性要求更高。
2.2 基础环境配置
无论选择哪种方案,都需要先完成基础配置:
bash复制# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础编译工具
sudo apt install -y build-essential cmake git
# 配置交换空间(建议4GB以上)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
3. ROS1与ROS2独立安装
3.1 ROS1 Noetic安装
对于Ubuntu 20.04系统,ROS1 Noetic可以直接通过apt安装:
bash复制# 设置sources
