Linux 35.5 + JetPack v5.1.3@ros-noetic安装
- 1. 源由
- 2. 调研
- 3. 安装
- Step 1:安装Linux 35.5.0
- Step 2:设置安装源
- Step 3:添加秘钥
- Step 4:Linux系统更新
- Step 5:ros-noetic安装
- Step 6:环境设置
- 4. 组件安装
- 4.1 组件搜索
- 4.2 组件安装
- 5. 总结
1. 源由
因为目前香港HKUST Aerial Robotics Group开发了一系列基础技术,使空中无人机能够在复杂环境中自主运行。研究涵盖了空中自主导航建模比较完整技术栈,重点在于状态估计、地图绘制、轨迹规划、多机协调以及使用低成本传感和计算组件进行测试平台开发,其代码也被开源在Github - HKUST-Aerial-Robotics。
若能很好的借鉴并应用上述技术,在实际领域进行应用拓展,将会对无人机的应用得到显著提升,进而突破闭源商业系统的垄断地位。
问题是,目前该代码基于ROS系统,ROS2上不支持,当然据悉后续会进行移植和兼容性拓展。
因此,目前比较现实的问题就是在我们Jetson Orin Nao上进行ROS系统的安装,以支持上述技术栈代码的测试、应用、以及二次开发。
2. 调研
- ROS Noetic NinjemysMay, 2025 Focal(ubuntu 20.04) EOL
- Jetson Orin 系列对于ROS原生态的安装到Linux 36.2/36.3 Jammy(ubuntu 22.04)开始就不再支持。
- Jetson Orin 系列对于ROS在Jammy上有容器支持的尝试,目前尚未过编译。
- How to install ROS Noetic (Ubuntu 20.04) or ROS Melodic (Ubuntu 18.04) on Jetson Orin JetPack v6.0?
- ROS Noetic docker container on Jetpack 6.0
- 在Jetson Archived Documentation中,我们可以找到最近的Linux 35.5.0,该版本是基于Focal的版本,因此直接支持ROS。
3. 安装
Step 1:安装Linux 35.5.0
略,参考《Linux 36.3@Jetson Orin Nano之系统安装》
注:请注意章节5.4中所述问题,每个版本之间安装命令差异会导致安装失败,切记!
Step 2:设置安装源
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Step 3:添加秘钥
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
或者
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc -o ros.asc
$ sudo apt-key add ros.asc
若发现仍然无法下载,可能是“墙”有关系,可以采用curl代理方式。其中192.168.1.10:808
是各位自己的代理服务器,请根据实际情况设置。
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc -o ros.asc -x http://192.168.1.10:808
$ sudo apt-key add ros.asc
Step 4:Linux系统更新
$ sudo apt update
Step 5:ros-noetic安装
- 全部安装
$ sudo apt install ros-noetic-desktop-full
- 高完整度安装
$ sudo apt install ros-noetic-desktop
- 基础安装 //这个是作为开发者比较推荐的,这样可以很好的知道依赖关系,以及软件包开发脚本的不完整性。
$ sudo apt install ros-noetic-ros-base
Step 6:环境设置
$ source /opt/ros/noetic/setup.bash
- bash自动脚本
$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
- zsh 自动脚本
$ echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
$ source ~/.zshrc
4. 组件安装
4.1 组件搜索
$ apt search ros-noetic-PACKAGE
4.2 组件安装
$ sudo apt install ros-noetic-PACKAGE
例如:
$ sudo apt install ros-noetic-slam-gmapping
5. 总结
综合上面所有的信息,我们采用最为方便直接的方法,另外,也考虑了后备方案。
- 采用Jetson Orin Nano Linux 35.5.0版本进行前期验证;
- 若后续(Plan A):Jetson Orin Nano上容器版本能够支持ROS系列,那么可以更新系统功能;
- 若后续(Plan B):HKUST-Aerial-Robotics能够支持ROS2系统,那么可以直接更新到最新的Jammy系统
- 若后续A/B方案都未实现,那么我们可以采用Plan C(暂时保密,呵呵)//我们始终有备用方案可用