单系统 + Ubuntu18.04 + ROS Melodic 完整安装 + 解决 rosdep init 方法【一站式解决】
(1)安装Ubuntu18.04;
(2)安装ROS Melodic;
(3)解决安装ROS过程中出现的 rosdep init 和 update 出现的网络连接问题。
(1) 腾出一个笔记本,安装单一 Ubuntu 系统,版本选择 18.04 。
(2) 在 Ubuntu18.04 中,安装 ROS Melodic 版本,用于硬件的驱动和 SLAM 工具包。
难度不大。参考这个博客,容易复现。
https://blog.csdn.net/baidu_36602427/article/details/86548203
TODO:后期补充。
难度不大。
参考这两个博客,容易复现。
仅在初始化步骤困难,在本文第(3)中详细说明了解决方法。
https://blog.csdn.net/qq_44830040/article/details/106049992
在编译过程中发现在ROS下需要用到rosdep命令:
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.
本节参考内容链接:
https://blog.csdn.net/weixin_42584917/article/details/114448355
https://blog.csdn.net/weixin_43311920/article/details/114796748
rosdep init 和 rosdep update 一直是安装ROS过程中,困扰和报错最多的部分,感谢作者(发哥爱开源)的贡献 和 CCsherlock 的整理。
将rosdistro clone到本地,两种方式
git clone https://github.com/ros/rosdistro.git
百度网盘链接:
链接:https://pan.baidu.com/s/1IvNfKau8E4ILh-X3iT57EA
提取码:nemo
git或百度网盘下载后,放到/home文件夹下:
/home/nemo/rosdistro
多说两句:(百度网盘下载后)将文件解压,解压后的文件夹,放到/home下就可以了,如果不放心,存放之后,右键文件夹查看属性,文件位置应该是上面显示的/home/nemo/rosdistro,其中nemo是安装ubuntu时,自定义的计算机名。
#TODO:图片下次安装时补充。
这部分一共有四个文件需要替换内容,要非常仔细,是关键步骤。
终端打开刚刚下载(clone)下来的rosdistro文件夹
cd /home/yourname/rosdistro/rosdep/sources.list.d/
打开文件一:
sudo gedit 20-default.list
把所有yourname 改成自己的计算机名。
这是模板:
# os-specific listings first
yaml file:///home/yourname/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/yourname/rosdistro/rosdep/base.yaml
yaml file:///home/yourname/rosdistro/rosdep/python.yaml
yaml file:///home/yourname/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/yourname/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
我改完之后的效果(我的计算机名设置为 nemo):
# os-specific listings first
yaml file:///home/nemo/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/nemo/rosdistro/rosdep/base.yaml
yaml file:///home/nemo/rosdistro/rosdep/python.yaml
yaml file:///home/nemo/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/nemo/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/yourname/rosdistro/' \
'releases/fuerte.yaml'
同样的,yourname改成自己的计算机名。我的是nemo。
**我第一次装错,就是把整个文件都删掉,只留下这两行了。结果只能重新来过。**
打开终端输入:
cd /usr/lib/python2.7/dist-packages/rosdep2/
打开第二个要修改的文件:
sudo gedit rep3.py
这个文件中,只替换这一行:
REP3_TARGETS_URL = 'file:///home/yourname/rosdistro/releases/targets.yaml'
同样的,yourname改成自己的计算机名。我的是nemo。
打开终端输入:
cd /usr/lib/python2.7/dist-packages/rosdistro/
打开第二个要修改的文件:
sudo gedit __init__.py
这里我跟作者CCsherlock的文件是一样的,也有说法是init.py文件。
这个文件中,只替换这一行:
DEFAULT_INDEX_URL = 'file:///home/yourname/rosdistro/index-v4.yaml'
同样的,yourname改成自己的计算机名。我的是nemo。
装了很多次 Ubuntu 和 ROS,记录一下安装路径。
重新安装 ROS 时,出现了新问题:
Command ‘roscore’ not found, but can be installed with:
sudo apt install python-roslaunch
按照提示安装时,出现:
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
python-roslaunch : 依赖: python-roslib 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
下面链接能够解决,是环境变量的问题:
https://blog.csdn.net/m0_51684563/article/details/115771657?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162537973716780255294751%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162537973716780255294751&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-115771657.first_rank_v2_pc_rank_v29&utm_term=Command+%27roscore%27+not+found%2C+but+can+be+installed+with%3A++sudo+apt+install+python-roslaunch&spm=1018.2226.3001.4187