Ubunu20.04安装ROS noetic及rosdep update问题解决

一、Ubuntu20.04安装ROS noetic

注意Ubuntu版本与ROS版本对应关系

Ubunu版本ROS版本ros python版本
16.04Kineticpython2
18.04Melodicpython2
20.04Noeticpython3

1、添加ROS软件源

默认源(安装速度比较慢,不推荐)

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

采用下面国内的ROS软件源下载速度会快一些推荐

中科大USTC

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'

清华源Tsinghua

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'

2、添加Keys

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、更新软件源列表

sudo apt update

4、安装ROS

推荐安装ros桌面完整版。等待ros安装,需要花费一些时间。

sudo apt install ros-noetic-desktop-full

5、设置环境变量

通过下面的命令会将ros的环境变量 /opt/ros/noetic/setup.bash 写入到 ~/.bashrc 文件中,不用在终端中每次运行ROS功能包时再手动刷新ros的环境变量。

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6、安装编译ROS功能包的依赖

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

7、初始化rosdep

sudo rosdep init
rosdep update

如果rosdep update成功(下图),则完成ROS的安装。

在这里插入图片描述
成功后可以运行小乌龟案例进行测试验证:Ctrl + Alt + T打开三个终端,输入下面命令。

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

但是一般情况下rosdep update都会失败。

二、rosdep update解决方案

2.1 方法1-修改/etc/hosts(不太好用

可以通过网站 www.ipaddress.com 搜索 raw.githubusercontent.com 服务器的ip地址,然后在/etc/hosts文件最后一行添加相应的ip。

185.199.108.133 raw.githubusercontent.com

在这里插入图片描述

2.2 方法2-修改rosdep2等文件

需要修改/usr/lib/python3/dist-packages下的5个文件(对于Melodic版本,将pythnon3改为python2.7),具体修改如下:

修改文件修改地方
/usr/lib/python3/dist-packages/rosdep2/sources_list.py64行,301行
/usr/lib/python3/dist-packages/rosdistro/__ init __.py68行
/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py34行,203行
/usr/lib/python3/dist-packages/rosdep2/rep3.py36行
/usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py68行,119行

(1)/usr/lib/python3/dist-packages/rosdep2/sources_list.py
第64行DEFAULT_SOURCES_LIST_URL 进行替换:

DEFAULT_SOURCES_LIST_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'

第301行添加:

url="https://ghproxy.com/"+url

在这里插入图片描述

(2) /usr/lib/python3/dist-packages/rosdistro/__ init __.py
68行 将DEFAULT_INDEX_URL替换为:

DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

(3) /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
34行 FUERTE_GBPDISTRO_URL替换为:

FUERTE_GBPDISTRO_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/' \
    'master/releases/fuerte.yaml'

203行 添加:

gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url

在这里插入图片描述

(4) /usr/lib/python3/dist-packages/rosdep2/rep3.py
36行 REP3_TARGETS_URL替换为:

REP3_TARGETS_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'

(5) /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py
68行 修改为:

url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/package.xml' % (path, release_tag)

在这里插入图片描述119行 修改为:

url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/%s' % \
            (path, cache.ref(), package_xml_path + '/package.xml' if package_xml_path else 'package.xml')

在这里插入图片描述
修改完成后,在终端输入:

rosdep update

前面修改正确,便可以成功,成功界面如下:
在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值