0


ROS安装与报错的解决办法

    作者在安装ROS的过程中,几乎步步出错,后文汇总了出错的解决办法,文章参考了众多博客。

1、安装步骤

(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'

(2)添加秘钥

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

(3)安装ROS

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

    ros版本需要和Ubuntu版本一致才行。
     Ubuntu18.04:melodic
     Ubuntu16.04: kinetic
     Ubuntu14.04: indigo

(4)初始化rosdep

    sudo rosdep init
     rosdep update

(5)设置环境变量

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

(6)安装rosinstall

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

2、安装报错解决办法

(1)添加ROS软件源

(2)添加秘钥

** 问题1:**Executing: /tmp/apt-key-gpghome.xFJY0Xqqye/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg: 从公钥服务器接收失败:服务器故障

***@vmware:~$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

Executing: /tmp/apt-key-gpghome.xFJY0Xqqye/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg: 从公钥服务器接收失败:服务器故障

** 问题1 解决方法:**

    报错原因虚拟机没有连接上网络

    (1)换用手机热点。

    (2)打开计算机管理 -> 服务与应用程序 -> 检查关于vMware服务是否都处于开启状态.

(3)安装ROS

** 问题2:**E: 无法获得锁 /var/lib/apt/lists/lock。锁正由进程 5167(apt-get)持有
N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
E: 无法对目录 /var/lib/apt/lists/ 加锁

***@vmware:~$ sudo apt update
正在读取软件包列表... 完成
E: 无法获得锁 /var/lib/apt/lists/lock。锁正由进程 5167(apt-get)持有
N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
E: 无法对目录 /var/lib/apt/lists/ 加锁
     **问题2 解决方法:**

    执行命令:sudo rm /var/lib/apt/lists/lock

** 问题3:**E: 无法定位软件包 ros-melodic-desktop-full

***@vmware:~$ sudo apt install ros-melodic-desktop-full
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
E: 无法定位软件包 ros-melodic-desktop-full

** 问题3 解决方法:**

    检查Ubuntu版本,20.04版对应ros的noetic。sudo apt install ros-noetic-desktop-full

(4)初始化rosdep

** 问题4:**执行rosdep update,sudo: rosdep:找不到命令

sudo: rosdep:找不到命令
    **问题4 解决方法:**

    20.04终端输入:sudo apt install python3-rosdep2

    18.04终端输入:sudo apt install python-rosdep2

    然后再次初始化rosdep: sudo rosdep init

** 问题5:** ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.list Please delete if you wish to re-initialize

***@vmware:~$ sudo rosdep init
ERROR: default sources list file already exists:
    /etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize

** 问题5 解决方法:**

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

** 问题6:** ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

***@vmware:~$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

** 问题6 解决方法:**

    出现Website may be down,原因是https://raw.githubusercontent.com/是外网网址访问不稳定(可多尝试几次sudo rosdep init)

    如果多次尝试还是不行可尝试下边方法:
     1)执行:sudo gedit /etc/hosts
      在文件末尾添加下面这段:151.101.84.133 raw.githubusercontent.com
     2)然后保存退出再次sudo rosdep init如果还是不行登陆IPAdress网站https://www.ipaddress.com/输入raw.githubusercontent.com查询到真实IP地址:

    将查询到的IP替换上面代码的 151.101.84.133然后再次sudo rosdep init一般就会成功了

    

** 问题7:**<urlopen error timed out>

***@vmware:~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: unable to process source 
...
[https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]:
    Failed to download target platform data for gbpdistro:
    <urlopen error timed out>
]]]

** 问题7 解决方法:**

参考链接:https://blog.csdn.net/weixin_44023934/article/details/121242176

(5)设置环境变量

** 问题8:**bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录

***@vmware:~$ source ~/.bashrc
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
     **问题8 解决方法:参考文章**

    1)打开虚拟机终端,输入 :gedit .bashrc

    弹出一个文件,找到最后一行,如图所示:

     2)ros版本需要和Ubuntu版本一致才行。
     Ubuntu18.04:melodic
     Ubuntu16.04: kinetic
     Ubuntu14.04: indigo

    是把文件中的melodic改成了自己对应的版本,重复的都删了,之后保存,再打开终端,就好了。

(6)安装rosinstall

** 问题9 :**软件包 python-rosinstall 没有可安装候选

***@vmware:~$ sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
没有可用的软件包 python-rosinstall,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
然而下列软件包会取代它:
  python3-rosinstall
...
E: 软件包 python-rosinstall 没有可安装候选
E: 软件包 python-rosinstall-generator 没有可安装候选
E: 软件包 python-wstool 没有可安装候选

** 问题9 解决方法:**

    根据提示,python的版本不对

    输入改为:sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
标签: ubuntu

本文转载自: https://blog.csdn.net/qq_41921826/article/details/128417100
版权归原作者 几度春风里 所有, 如有侵权,请联系我们删除。

“ROS安装与报错的解决办法”的评论:

还没有评论