随着ROS2的发展,越来越多ROS2工程将于Foxy之后的版本开发。在Ubuntu操作系统上,ROS2 Foxy及之后的版本都依赖于Ubuntu20.04,但是Jetson系列硬件如Nano、TX2、NX和AGX的官方版本仅支持Ubuntu18.04,也并未提供官方的系统升级。
因此,要在Jetson Family上完美运行ROS2 Foxy及其之后的ROS2版本,我们需要手动升级Ubuntu操作系统并在其基础之上完成对应版本ROS2的安装。以基于Jetson NX(可推广到其它Jetson系列硬件)的ROS2 Foxy安装为例:
① 首先,我们手动将Ubuntu18.04升级到Ubuntu20.04:https://zhuanlan.zhihu.com/p/411447206
② 在升级后的Ubuntu20.04系统上安装ROS2 Foxy:https://www.guyuehome.com/10226
其中,你可能会遇到密钥错误的一步,请参考:https://zhuanlan.zhihu.com/p/411447206
③ 最后,手动安装的ROS2 Foxy不自带其编译工具colcon,使用如下命令进行安装即可:sudo apt install python3-colcon-common-extensions
通过上述步骤,我们就可以在Jetson系列硬件上编译/运行ROS2 Foxy及其后续版本的工程。
为了验证安装ROS2 Foxy的可用性,我们借助下面的“基于ROS2和YOLO的目标检测”工程来进行测试。
① 这里我们使用来自Ar-Ray提供的开源工程,链接如下:Ar-Ray-code/YOLOX-ROS: YOLOX + ROS2 object detection package (github.com)
ps:推荐使用git命令下载完整代码(如果只是从网站下载zip包不能同时下载相关链接代码,需要手动下载和配置)。
② 按照其提供的Readme.md完成整个工程的配置。
ps:在colcon编译的过程中,将会根据用户设置自动下载对应YOLO模型的权重,如果网络不佳将导致权重下载不完整从而在后续运行时出错(因此可以提前在YOLO官方代码库中下载好对应权重:https://github.com/Megvii-BaseDetection/YOLOX)。
③ source激活环境,ros2 launch运行(用户可选是否使用摄像头)。
至此,你可以体验到用Jetson硬件在ROS2上完成深度学习任务(目标检测)的流程,体验整个流程中的“工作空间搭建(此处我们借用了别人的开源代码) → colcon编译工作空间 → run/launch运行功能包”。在拥有一定的熟练程度后,你可以手动编写和修改工程中的工作空间,添加或完善你所需要的功能。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!