由于项目需要,我应该需要用nano,然后又需要用到传说的ROS ,于是开始我的踩坑,由于伟大的阿墙哥,我的学习门槛提高了很多,让我受益匪浅呀。现在我是来记录一下是怎么安装的,避免下次骚操作之后还用重新安装。
目录
一、安装环境
二、ROS安装
1. 更换国内源
2. 更换ROS的国内源
3.获取密钥
4. 执行源软件列表更新
5. 安装ROS
6. 环境变量设置
7. 依赖项安装
8. ROS 初始化
9. ros运行测试
三、ROS 删除卸载
我用的镜像文件是 jetson-nano-2gb-jp46-sd-card-image
安装环境是 Ubuntu 18.04 LTS
ROS的安装版本应该是 Melodic !!!!(ubuntu 18.04 对应的是melodic ROS)
注意!!nano的架构是 arm64,但是网上的教程大多数是amd64 ,虽说我不知道啥差别,但是要知道一下。
理论上按照ROS官网的步骤就行,但是冥冥中有一堵墙给你设置了点门槛,所以第一步是换镜像
1)备份源,防止后面瞎操作要复原用的
cp /etc/apt/sources.list /etc/apt/sources.list.old
2) 编辑源文件,添加镜像
sudo gedit /etc/apt/sources.list
在打开的源文件中添加国内源
##清华源:
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse中间的 [arch=amd64,i386] 加不加无所谓,主要是后面的sudo apt-get update 有没有报错。
其他国内源
##阿里源: deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse ##163源: deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse #中科大源 deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
最后要在源列表添加如下命令,用于定位下载ROS安装包
deb http://packages.ros.org/ros-shadow-fixed/ubuntu bionic main
最后如下图,我添加的是清华和中科大源
3)进行源软件列表更新
桌面终端执行
sudo apt update
官网给的源如下,但是会有点慢。(服务器在国外)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
我用的中科大的源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
具体的国内源可以在官网找,如下 melodic/Installation/Ubuntu - ROS Wiki
点击上面的Mirrors 可以看到国内的源,选择你需要的
两种方法
1)官网操作
可以获取最新的密钥,不用担心过期,但是由于网络问题,不一定能成功,我只有第一次成功啦
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 -
2)网络教程
密钥可能过期,过期了就去找其他人给的,密钥都是开源的,总有个可以用的
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8D5A09DC9B929006
sudo apt update
1)安装全功能ROS执行这个命令,这个安装包很大,至少200M
Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators and 2D/3D perception
sudo apt install ros-melodic-desktop-full
2)安装核心功能ROS执行这个命令(70M大小),听说嵌入式平台安装这个好点,但是我没试
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
sudo apt install ros-melodic-desktop
ROS安装成功后,设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential vim openconnect openssh-server
8.1 看运气可能成功的方法
不知道为啥,可能代理IP失效了吧,以下方法开始看运气
这里其实就只有两个命令
sudo rosdep init rosdep update
但这里是最难受的,因为网络问题(墙墙),总是超时(time out)我在这里卡了好几天,搜罗了几种方法。
1)修改host文件
首先去一个ip地址查询的网站https://www.ip-adress.com/ip-address/lookup
查询 github.com和raw.githubusercontent.com 的ip地址
然后终端输入
sudo gedit /etc/hosts
打开hosts文件,添加相应的ip和域名
140.82.114.4 github.com
199.232.69.194 github.global.ssl.fastly.net
140.80.113.9 codeload.github.com
185.199.111.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
198.51.44.1 dns1.p01.nsone.net
205.251.199.75 ns-1867.awsdns-41.co.uk
我的如下,添加保存即可
2) 换源
执行如下三个命令,(本来有四个换源命令的,但是有一个只能 rosdep init 之后才可以成功)
sudo sed -i "s/raw.githubusercontent.com/raw.githubusercontent.serctl.com/g" /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo sed -i "s/raw.githubusercontent.com/raw.githubusercontent.serctl.com/g" /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
sudo sed -i "s/raw.githubusercontent.com/raw.githubusercontent.serctl.com/g" /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
这个时候就可以执行
sudo rosdep init
执行了这个命令之后,先不着急执行 rosdep update ,先执行剩下的最后一个换源命令
sudo sed -i "s/raw.githubusercontent.com/raw.githubusercontent.serctl.com/g" /etc/ros/rosdep/sources.list.d/20-default.list
因为20-default.list 只有在rosdep init 之后才生成,这个时候执行以上命令才能成功更换其中的源
最后执行
rosdep update
中间可能还会超时,多试试几次就行,肯定有一次是成功的,我一般不超过5次。
8.2 参考鱼哥的教程可以成功的版本
1) 安装
sudo pip install rosdepc
如果显示没有pip可以试试pip3:
sudo pip3 install rosdepc
如果pip3也没有:
sudo apt-get install python3-pip
sudo pip install rosdepc
2)使用rosdepc 进行ROS初始化
sudo rosdepc init
rosdepc update
经测试,可成功
在三个终端分别执行以下语句,测试小乌龟吧
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
能成功运行就可以啦
如果出现 Command rosrun not found 即 rosrun 命令找不到的情况,输入以下命令即可
sudo apt-get install rosbash
主要是针对后面操作不当,出现无法修复的错误进行重装使用的
输入以下命令:
sudo apt-get purge ros-*
sudo rm -rf /etc/ros
打开.bashrc文件 ,删除掉带有melodic的那一行即可
gedit ~/.bashrc
最后source一下
source ~/.bashrc
进行换源,即再次打开sources.list文件:
sudo gedit /etc/apt/sources.list
在文件最后添加以下语句,然后保存退出
deb http://packages.ros.org/ros-shadow-fixed/ubuntu bionic main
#bionic 是ubuntu的版本名称,不同版本注意替换就行
最后进行更新即可:
sudo apt-get update
首先查看rosdep 是否安装
whereis rosdep
如果如下图,没有显示任何信息,则表示没有安装
那么解决办法就是安装rosdep
sudo apt install python-rosdep2 -y
后面的 -y 表示系统后面询问是否安装时,默认选择yes