Jetson AGX Orin 安装 ROS
实践笔记,参考:https://blog.csdn.net/qq_44998513/article/details/133768756
一、前言
本文主要介绍如何将 Jetson AGX Orin 作为自主无人机的机载电脑,因此需要 ROS 操作系统来实现各个模块的衔接,ROS 支持在Linux系统上安装部署,因为ROS与Ubuntu兼容性最好,使用它的首选开发平台是Ubuntu,并且 Ubuntu 版本和 ROS 版本要一致。
需要特别注意的是 Ubuntu 18.04 对应 melodic 版本的 ROS 系统, Ubuntu 20.04 对应 noetic 版本的 ROS 系统,而之前我们安装的 Jetack 5.1.2 对应的是 Ubuntu 20.04,因此我们需要安装 noetic 版本的 ROS 系统。
二、安装 ROS 系统
参考 ROS 官网的 noetic 安装教程
noetic/Installation/Ubuntu - ROS Wiki
2.1 设置源
使得 Jetson Orin NX 的系统能够接受 packages.ros.org.
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ cat /etc/apt/sources.list.d/ros-latest.list
deb http://packages.ros.org/ros/ubuntu focal main
2.2 设置 keys
安装 curl 功能包
$ sudo apt install curl -y
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
遇到问题:curl 下载命令因为网络问题卡住。需要开 科学软件。
然后再次运行可能出现:
gpg: no valid OpenPGP data found.
那么,需要在命令行需要设置代理(替换为你的 IP):
$ export http_proxy=[you ip]:7890
$ export https_proxy=[you ip]:7890
curl 即可成功执行,并且输出 OK
2.3 开始安装
首先更新源
$ sudo apt update
接下来开始安装 ROS 桌面完全版
$ sudo apt install ros-noetic-desktop-full -y
...
Setting up ros-noetic-perception (1.5.0-1focal.20231013.233450) ...
Setting up ros-noetic-viz (1.5.0-1focal.20231013.235115) ...
Setting up ros-noetic-desktop (1.5.0-1focal.20231014.001820) ...
Setting up ros-noetic-simulators (1.5.0-1focal.20231014.000337) ...
Setting up ros-noetic-desktop-full (1.5.0-1focal.20231030.165143) ...
Processing triggers for libc-bin (2.31-0ubuntu9.14) ...
2.4 环境设置
安装完成后将其路径添加到 ~/.bashrc
中
$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ cat ~/.bashrc # 查看下是否将路径添加成功
source /opt/ros/noetic/setup.bash
然后 source 一下使其生效
$ source ~/.bashrc
2.5 安装构建功能包所需的依赖
安装相关你依赖包
$ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y
安装 rosdep
$ sudo apt install python3-rosdep -y
输入以下命令初始化 rosdep
报错:
$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
解决:
$ sudo apt-get install python3-pip
$ sudo pip3 install 6-rosdep
$ sudo 6-rosdep
--------------------------------------------------------------------------------
感谢赵虚左老师提供的解题思路。感谢鱼香ROS大佬的引导启发。
愿天下道友再无 rosdep 之烦恼~
欢迎加QQ群【869643967】
--------------------------------------------------------------------------------
检测到是 Noetic 版本 (Ubuntu 20.04),准备列阵……
打开文件:/usr/lib/python3/dist-packages/rosdistro/__init__.py
将 rosdep 修改为国内的资源~
打开文件:/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
将 rosdep 修改为国内的资源~
打开文件:/usr/lib/python3/dist-packages/rosdep2/rep3.py
将 rosdep 修改为国内的资源~
打开文件:/usr/lib/python3/dist-packages/rosdep2/sources_list.py
将 rosdep 修改为国内的资源~
--------------------------------------------------------------------------------
若遇到任何问题,欢迎进入微信公众号【六部工坊】进行反馈,我们会及时为道友解忧~
更多精彩 ROS 教学视频,请关注B站频道【六部工坊】
--------------------------------------------------------------------------------
列阵完毕~道友可运行如下指令开始渡劫……
sudo rosdep init
rosdep update
然后:
$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run
rosdep update
rosdep update
可能会失败,需要多运行几次该命令。
成功:
$ rosdep update
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/nvidia/.ros/rosdep/sources.cache
至此 ROS 系统就安装完成了。
终端输入 roscore
测试以下 ROS 系统是否安装成功
$ roscore
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ubuntu:38621/
ros_comm version 1.16.0
SUMMARY
========
PARAMETERS
* /rosdistro: noetic
* /rosversion: 1.16.0
NODES
auto-starting new master
process[master]: started with pid [461974]
ROS_MASTER_URI=http://ubuntu:11311/
setting /run_id to ea7db2f0-b44a-11ee-acbd-90e8688444e9
process[rosout-1]: started with pid [461984]
started core service [/rosout]
roscore 启动成功,至此 ROS 系统就安装完成啦!
ROS 命令
rosbag play input.bag -s 550 --duration=180
rosbag filter input.bag output.bag "t.to_sec() >= 550 and t.to_sec() < 730"
rosbag info mydata_filtered.bag