Ubuntu18.04ROS Melodic系统安装指南(Jetson nano也适用)

Ubuntu18.04ROS系统安装指南(Jetson nano也适用)

一、设置下载源和公钥

添加镜像源

为了避免麻烦,我建议把以前的源备份之后全部删除,只保留下面的源

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
deb http://ports.ubuntu.com/ubuntu-ports/ bionic multiverse restricted universe main
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic multiverse restricted universe main #Added by software-properties

然后输入

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'

接着我们要把软件和设置里的四个选项都勾上
在这里插入图片描述
勾完之后关闭,在弹出的提示页面里点击"reload"

添加密钥

输入以下命令

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

如果没有提示error则表明密钥有效,如果不幸失效的话,还请自行search。。。
最后在命令行里输入:

sudo apt-get update

以便更新我们添加的源和密钥。

二、开始下载ROS Melodic

输入命令:

sudo apt-get install ros-melodic-desktop-full

然后就是漫长的等待
有的时候安装过程可能会出现下面的情况:

下列软件包有未满足的依赖关系:
 ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装
                            依赖: ros-kinetic-perception 但是它将不会被安装
                            依赖: ros-kinetic-simulators 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这个情况有的时候是因为前面的软件更新没完全打开所致,如果已经打开,可以尝试以下办法。输入:

sudo apt-get install aptitude
sudo aptitude install ros-kinetic-desktop-full
按提示输入Y后回车,等待安装完毕即可

上面的ros-kinetic-desktop-full下载完毕后

输入

sudo apt install python-rosdep

接着运行

sudo rosdep init

在这里插入图片描述
出现这个表明你已经成功了一半了(恭喜)

注:sudo rosdep init的两个bug情况

1、如果提示"website maybe down"
请采用以下方法

sudo gedit /etc/hosts
在打开的文本里的最后一行添加:151.101.76.133 raw.githubusercontent.com
或者添加:151.101.84.133 raw.githubusercontent.com
两者根据情况自行选择
(注意:如果没有加sudo,则打开的文本是可读的,那么你将没法编辑)

添加完毕后如下,记得保存后退出
在这里插入图片描述
2、如果出现下图:
在这里插入图片描述
请输入:

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

三、ROS更新调试(这一步是卡了我最久的!!)

我们紧接着上文,如果你顺利的到达了这一步的话,按照提示我们需要输入"rosdep update"
在这里插入图片描述
但是按提示输入完命令之后,我们一般会遇到连接超时的情况:

这是因为我们更新的时候需要访问外网,但悲剧的是被墙
(这个跟你在大陆直接连Youtube然后打不开是一个道理)

所以我们需要亿点点修改,核心是利用一些支持github的资源代理来完成我们的更新
这个方法是:应用ghproxy的代理服务

方法

第一步

1、sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 按Ctrl+F 搜索"def download_rosdep_data"
然后在函数try里面添加:url="https://ghproxy.com/"+url

2、sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py  204try里面添加如下代码
gbpdistro_url = 'https://ghproxy.com/' + gbpdistro_url
###############################################################################
下面的命令则是需要在打开的文本里的对应行所在网址里添加"https://ghproxy.com/"前缀来应用代理服务
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py	39行
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 8368119

第二步
输入:

sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list

打开文本编辑器,你会看到如下文本,发现它们是不是跟超时的网站一模一样?!

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

我们把它们全部替换为下面的文本(即:加入代理前缀)

# os-specific listings first
yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

再次尝试执行rosdep update,问题基本解决(如果还是有超时就多试几次,或者尝试连接手机热点和其他wifi信号。。。我当时也是来来回回折腾了10次左右)

最后出现"updated cache in home/xxx/xxx/xxx"那么再次恭喜你,你的安装已经完成了99%了

四、设置环境变量,运行小乌龟调试

输入

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
提示找不到文件的请看清楚你装得是不是melodic版本

至此,ROS系统安装完毕

小乌龟调试

打开第一个终端,输入
roscore
接着打开第二个终端,输入
rosrun turtlesim turtlesim_node

这个时候你的小乌龟就出来了!
如果希望小乌龟能够移动,我们还需要打开第三个终端
输入

rosrun turtlesim turtle_teleop_key

这里你的鼠标要停留在当前这个终端界面,按键盘上面的 上下左右 来控制小海龟的移动.

总结

被墙的感觉真的很难受!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值