Ubuntu20.04及18.04的ROS安装教程及各种失败解决方法 (sudo rosdep init找不到命令或失败与rosdep update一直timeout,roscore找不到命令) |
您所在的位置:网站首页 › 电脑启动时一直更新配置失败怎么办 › Ubuntu20.04及18.04的ROS安装教程及各种失败解决方法 (sudo rosdep init找不到命令或失败与rosdep update一直timeout,roscore找不到命令) |
项目场景:ros安装
在安装ROS的过程中一般选择有网络非常好的网络进行安装,这样就可以全程顺利执行一次性安装成功,但不顺利也没问题这个教程将会给出解决由网络原因造成安装失败的解决方法 解决方案一:解决网络问题,使用全球互联网因为ROS 是外国研究团队进行开发的,所以绝大部分的资源都保存于国外的网站。我们在安装ROS的过程中就需要在这些国外的网站获取相关的资源,所以我们需要借助一下全球连通云去获取ROS相关的资源。 可以给大家安利一个我用了挺久,而且很便宜的全球互联工具: https://m.tb.cn/h.gW1AdAG?tk=tmvMWEcwE7i HU0854 使用全球连通云基本就可以一次性顺利安装ROS了 ,如果还是遇到错误可以参考解决方案二进行处理。 解决方案二:使用国内互联网,解决安装过程出现的错误 安装步骤:Ctrl+Alt+T打开终端 1.添加 软件源sources.list(设置你的电脑可从packages.ros.org 接收软件.) 终端输入 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' 2.添加 密钥终端输入 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654添加成功 3.从软件源更新一下软件包终端输入 sudo apt update包含ROS的软件包更新成功 4.安装ROS桌面完整版 : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知等(注意:每个Ubuntu版本需安装对应的ROS版本,以20.04安装版本: noetic为例,18.04应安装版本:melodic(18.04将下面代码中noetic改为melodic即可))终端输入 sudo apt install ros-noetic-desktop-full桌面完整版安装成功 5.初始化rosdep终端输入 sudo rosdep init 失败1.如出现sudo: rosdep:找不到命令解决办法 20.04终端输入 sudo apt install python3-rosdep218.04终端输入 sudo apt install python-rosdep2然后再次初始化rosdep sudo rosdep init 失败2.ERROR: default sources list file already exists,20-default.list已存在解决办法 终端输入 sudo rm /etc/ros/rosdep/sources.list.d/20-default.list再次sudo rosdep init 失败3.出现Website may be down.原因是https://raw.githubusercontent.com/是网址访问不稳定(可多尝试几次sudo rosdep init)如果多次尝试还是不行可尝试下边方法 解决办法 sudo gedit /etc/hosts在文件末尾添加下面这段: 151.101.84.133 raw.githubusercontent.com然后保存退出再次sudo rosdep init 如果还是不行登陆网站 The Best IP Address, Email and Networking Tools - IPAddress.com,输入raw.githubusercontent.com查询IP地址: 将查询到的IP替换上面代码的 151.101.84.133然后再次sudo rosdep init一般就会成功了 初始化rosdep成功 失败4.无论用什么方法都无法sudo rosdep init,只能祭出终极大招(自己创建20-default.list文件)(创建完成后直接进入rosdep update )终端依次输入 cd /etc/ros/rosdep/sources.list.d sudo touch 20-default.list然后打开20-default.list添加内容 终端输入 sudo gedit 20-default.list打开sudo gedit 20-default.list 后将下面内容添加到20-default.list 中然后Ctrl+S 保存退出进入第六步 # 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 6.更新rosdep终端输入 rosdep update 失败1.The read operation timed out(包括ERROR: unable to process source,ERROR: error loading sources list: ) 原因都是网址访问不稳定(可多尝试几次rosdep update ) 多次尝试依然报错可尝试下面的解决方法 解决办法 1.把相关文件下载到本地:(注意:下面代码中nice换为你的用户名) git clone https://github.com/ros/rosdistro.git /home/nice/robot如网络不好无法Git下载可以在下面我分享的百度网盘链接下载压缩包然后解压提取到主目录下 链接:https://pan.baidu.com/s/1ZjMcvqOvLRa_iTdXis8ufg 提取码:01e22.改去rosdep update获取文件的网址换为本地地址: 终端输入(注意:下面代码以Ubuntu20.04为例,18.04将下面代码中python3改为python2.7即可) sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py输入后回车会弹出rep3.py文件将原来文件中的 REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml' 替换成 REP3_TARGETS_URL = 'file:///home/nice/robot/releases/targets.yaml'(此处nice改为你的用户名因为此处的具体地址为你下载到本地的文件的地址。) Ctrl+S保存并退出 终端输入(注意:下面代码以Ubuntu20.04为例,18.04将下面代码中python3改为python2.7即可) sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py输入回车后会弹出__init__.py文件将原来文件中的 DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'替换成 DEFAULT_INDEX_URL = 'file:///home/nice/robot/index-v4.yaml'(此处nice改为你的用户名因为此处的具体地址为你下载到本地的文件的地址。) 3.修改/etc/ros/rosdep/sources.list.d/20-default.list中的网址为本地地址 终端输入 sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list输入回车后会弹出20-default.list文件将原来文件中的所有 raw.githubusercontent.com开头的网址替换成对应文件在本地的路径(可将下面代码更换20-default.list中的代码注意:代码中的nice全部更换为你的用户名) # os-specific listings first yaml file:///home/nice/robot/rosdep/osx-homebrew.yaml osx # generic yaml file:///home/nice/robot/rosdep/base.yaml yaml file:///home/nice/robot/rosdep/python.yaml yaml file:///home/nice/robot/rosdep/ruby.yaml gbpdistro file:///home/nice/robot/releases/fuerte.yaml fuerte # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead修改为如下图后保存退出(注意:代码中的nice全部更换为你的用户名) 然后再次rosdep update一般99%几率成功,如果不成功可评论或私信我 rosdep update成功 7.配置环境变量终端输入(下面代码以20.04为例18.04将下面代码中noetic改为melodic即可) echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc然后终端输入 source ~/.bashrc 8.安装rosinstall20.04终端输入 sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential18.04终端输入 sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential至此ROS安装完毕 运行一下roscore验证一下ROS是否安装成功Ctrl+Alt+T新建一个终端输入 roscore出现错误Command 'roscore' not found, 解决方法 :重新安装ROS桌面完整版即可20.04终端输入 sudo apt install ros-noetic-desktop-full18.04终端输入 sudo apt install ros-melodic-desktop-fullroscore运行成功界面 声明:码字不易,帮到你就点个赞,转载或引用请附上本文原文出处链接哦 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |