在Ubuntu18.04系统安装ROS Melodic以及问题解决方案

引言

安装时碰到了很多问题,搜索了很多方案,这里只是总结了下,来源我也不记得了,欢迎大家指出来源。

设置ROS软件源

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

(为了提高软件下载,安装进度,可用国内的镜像源)

  1. Ubuntu 官方源服务器在欧洲,国内访问很慢,所以这里有必要将软件源更换为国内的源。国内源很多,我们选择阿里云与清华大学的 Ubuntu 源:

    阿里云源

    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-backports main restricted universe multiverse

    清华大学源

    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/bionic-security main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

  2. Ubuntu 的源存放在在 /etc/apt/ 目录下的 sources.list 文件中,修改前我们先备份,在终端中执行以下命令:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    
  3. 然后执行下面的命令打开 sources.list 文件,清空里面的内容,把上面阿里云与清华大学的 Ubuntu 源复制进去,保存后退出。

    sudo gedit /etc/apt/sources.list
    
  4. 接着在终端上执行以下命令更新软件列表,检测出可以更新的软件:

    sudo apt-get update
    
  5. 最后在终端上执行以下命令进行软件更新:

    sudo apt-get upgrade
    

添加公钥

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

(如果失败则参考**问题1及解决方案**)

安装ROS

  • 更新package:

    sudo apt-get update

  • 安装ROS Kinetic完整包:

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

  • 初始化rosdep:

    sudo rosdep init

    (如果失败则参考**问题2及解决方案**)

    rosdep update

    (如果失败则参考**问题3及解决方案**)

  • 配置ROS环境:

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

    source ~/.bashrc

  • 安装依赖项–rosinstall工具,可用来下载和安装ROS中的功能包程序:

    sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

  • 测试ROS是否安装成功:

    roscore

    如果出现安装ROS的版本、节点等信息,则证明ROS安装成功,如果ROS安装失败,请按照上述步骤重新进行安装。

出现的问题以及解决方案

问题1及解决方案:

  • **问题:**公钥添加失败
  • **方案:**将sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654中的公钥服务器更换为hkp://pgp.mit.edu:80

问题2及解决方案:

  • 问题: 初始化rosdep失败

  • 方案:

    #打开hosts文件(用gedit/vi/vim都可)
    sudo gedit /etc/hosts
    #在文件最后面加上如下这一行:
    199.232.96.133 raw.githubusercontent.com
    #保存后退出再尝试初始化rosdep
    

    注:上面的ip地址是和后面的网址对应的,这个IP地址可能会变,可在下面的网站上查询网址对应的ip地址:

    www.ipaddress.com

问题3及解决方案:

  • 问题: cannot download default sources list ,由于墙的缘故,无法正常访问github的用户数据服务器

  • 方案:

    替换rosdep的网络映射地址为本地的地址:
    下载rosdistro文件夹,可以去github上ROS开源包中下载,也可以下载我提供的资源

修改下载的文件夹里面的以下内容:(路径注意替换成你们本地的)

  • 第一个文件:
cd home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/sources.list.d/
sudo gedit 20-default.list 

将里面的raw.githubusercontent.com替换为本地映射地址:

# os-specific listings first
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/base.yaml
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/python.yaml
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/releases/fuerte.yaml fuerte

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

(注意地址为真实的本地文件地址,需要根据实际情况进行替换)

  • 第二个文件:
cd /usr/lib/python2.7/dist-packages/rosdep2/
sudo gedit gbpdistro_support.py

同样的替换

FUERTE_GBPDISTRO_URL = 'file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/' \
    'releases/fuerte.yaml'
  • 第三个文件:
cd /usr/lib/python2.7/dist-packages/rosdep2/
sudo gedit rep3.py

同样的替换

REP3_TARGETS_URL = 'file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/releases/targets.yaml'
  • 第四个文件:
cd /usr/lib/python2.7/dist-packages/rosdistro/
sudo gedit __init__.py

同样的替换

DEFAULT_INDEX_URL = 'file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/index-v4.yaml'
  • 打开终端执行以下指令创建root并切换至root用户
sudo su //输入你的密码切换至root
sudo mkdir -p /etc/ros/rosdep/sources.list.d   
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list

将以下内容复制进20-default.list

#os-specific listings first
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/base.yaml
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/python.yaml
yaml file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/username/ROS-DAQ_V1.0/doc/03开发文档/rosdistro/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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值