背景
Jetson Nano Developer Kits安装系统为:Ubuntu 18.04——ROS Melodic
用到的硬件:Jetson Nano B01,ASUS VivoBook S5300U
内存卡:SanDisk Ultra 128G
1. 备份source.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2. 更改软件源
sudo gedit /etc/apt/sources.list
将其中内容全部删除,修改为:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
由于nano为ARM 64 架构,双系统为x86/x64架构,如果在双系统上安装ROS,修改为:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
3. 进行软件更新
sudo apt-get update
至此,jetson nano部分配置完毕,接下来进行ros安装。
4. 添加ROS软件源
将下面这条命令复制到ubuntu的终端执行
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
5. 添加密匙
将下面这条命令复制到ubuntu的终端执行
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
出现如下界面,则表示成功
6. 更新ros软件源
将以下命令复制到ubuntu的终端执行(在这里顺便说一下,如果用wifi更新慢或者失败的话,切换至手机热点,再执行下面的命令试一下)
sudo apt update
如果成功会出现如下界面
7. 安装
sudo apt install ros-melodic-desktop-full
输入后会出现如下界面
下载完成后出现如下界面
8. 初始化rosdep(这个地方特别容易一定会出错!!!)
首先安装依赖:
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
基本可以确定,这一步很重要。原版出现问题的如下( sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool)后来发现存在依赖,无法进行安装。不理解可以参看官网教程melodic/Installation/Ubuntu - ROS Wiki新版如上。
依赖安装完毕,输入终端如下:
sudo rosdep init
提示:翻墙A国节点一次成功!!!不会报错!!!!!!
如果报错,报错总共分为三类。
8.1 错误1:找不到命令
输入:
sudo apt install python-rosdep
如果还是一样的报错,试试sudo apt install python-rosdep2
8.2 错误2:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.
输入以下命令:
sudo gedit /etc/hosts
然后在打开的hosts文件中添加如下的内容,然后保存退出
199.232.28.133 raw.githubusercontent.com
其中橙色部分不固定,域名一直在变化,登陆IPAdress网站https://www.ipaddress.com/输入raw.githubusercontent.com查询到真实IP地址,替换橙色部分。
8.3 错误3:ERROR: default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize
输入以下命令:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
到这里如果再输入sudo rosdep init命令试试,应该就会出现了之前介绍的我们想要的界面了。
9. rosdep update(这个地方特别容易一定会出错!!!)
终端输入:
rosdep update
如果成功了跳步骤(10),大概率失败,连接网络超时,具体应该是github与国内连接不稳定等原因。默认连接时间是15s,曾经改过好几分钟,该不成功就是不会成功,具体成功方法如下,无视网络原因。
9.1 修改rosdep下载资源的脚本文件:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
把以下行添加到脚本中的download_rosdep_data()函数中,以应用代理服务:
url="https://ghproxy.com/"+url
不同版本会有少许的差异,下面是另一个版本。
9.2 用同样的方法修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
里面的DEFAULT_INDEX_URL参数,如下:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
9.3 同样的方法把“https://ghproxy.com/”添加到gbpdistro_support.py(36行左右)、sources_list.py(72行左右)、rep3.py(39行左右) 、github.py(68行 119行左右)文件的https://raw~前:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py #36行
# 搜索https://raw,# 添加https://ghproxy.com/
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py #72行
# 搜索https://raw,# 添加https://ghproxy.com/
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py #39行
# 搜索https://raw,# 添加https://ghproxy.com/
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py #68行 119行
# 搜索https://raw,# 添加https://ghproxy.com/
形式如
9.4 在 /usr/lib/python2.7/dist- packages/ rosdep2 /gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
第204行添加如下代码:
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
修改后执行
sudo apt-get update
rosdep update
不出意外应该就成功了。
10. ros编译环境配置
终端输入:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
使编译环境生效。
11. 最后一步ROS的测试
输入:
roscore
如果可以正常运行那么就okk了,如果依旧报错,再输入一遍:
sudo apt install ros-melodic-desktop-full
可能是某些东西没下全的原因,应该还会下载点东西,需要你输入y确认。再roscore一下应该就有了。至此ROS下载成功。
对下面的博客表示真诚的感谢
(2条消息) 步骤一:Jetson Nano安装ROS步骤,及相关错误分析_jetson nano ros_doki2022的博客-CSDN博客