0. 概述目的
基于Jetson orin nano的Ubuntu22.04系统,由于官方不再维护,通常情况下Ubuntu22.04无法安装ROS1。介绍如何在Ubuntu22.04上安装ROS1的教程有很多,但是经过测试,均不能在ARM架构下正常安装。因此考虑到兼容性和后续学习,直接安装ROS2,再通过docker部署ROS1的镜像容器,ROS1和ROS2均可运行,后续也可进行相互通信。话不多说,具体看下面的说明。
1. Ubuntu22.04 安装 ROS2-humble
利用鱼香ROS提供的工具一键安装:
wget http://fishros.com/install -O fishros && . fishros
按照终端提示分别选择:
选择安装ROS2-humble:
若无法正常安装,大概率是rosdep的问题,重新运行上述的工具,选择一键rosdep后,再次安装。
2. Ubuntu22.04 安装 Docker
由于科学上网的原因,docker镜像源会经常失效,因此需要根据情况设置有效的镜像源。
目前,发现轩辕大佬这个docker镜像源全面且比较稳定:
DockerHub镜像加速器 - 免费Docker镜像源国内加速 - DockerHub加速国内解决方案https://docker.xuanyuan.me/同样利用上述的一键安装工具:
wget http://fishros.com/install -O fishros && . fishros
首先,选择一键安装Docker:
然后,配置Docker代理,需要再次运行工具:
wget http://fishros.com/install -O fishros && . fishros
选择一键配置:Docker代理:
选择服务模式:
输入上述的代理网址:
3. Ubuntu22.04 安装 Docker-ROS1
安装docker ros,再次运行安装工具,选择一键安装:ROS Docker版:
在这里,选择安装了noetic(ROS1):
安装完毕!
4. 测试 ROS2 和 ROS1
4.1 ROS2 测试
在这里,验证一下ROS2的功能是否正常,经典乌龟测试:
启动新终端:
ros2 run turtlesim turtlesim_node
显示小乌龟的界面:
再启动新终端,打开键盘控制:
ros2 run turtlesim turtle_teleop_key
鼠标光标置于终端内,键盘方向键控制小乌龟的移动(↑ ↓ ← →)
4.2 ROS1 测试
进入Docker,测试ROS1安装是否成功:
我的镜像容器命名为 noetic-image,启动容器,选择启动(s),然后进入,roscore:
Docker内 ROS1的基本功能正常!
5. 小结
上述流程是针对基于ARM的系统进行的,AMD架构的系统安装ROS1是比较简单的。不过,目前还存在一些问题,大部分ROS1的镜像源都是阉割版的,仅包含ROS核心组件,没有rviz和gazebo等必要组件,只能做一些特定任务,如果有更高的需求,可以自行替换desktop-full的镜像源。后续可能会再写一篇如何替换镜像源的说明。