Ubuntu18.04 安装ros全过程及各种问题骨灰级解决方法
ROS版本选择
操作系统为Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。
配置Ubuntu软件库
点击Show Applications在software updater中设置Ubuntu Software如下图:
选中Source code,然后选择服务器镜像,这也很重要,国内清华和阿里云速度快一些,这里我选择了阿里云,但是我推荐清华,比较稳定,原因是我选择了阿里云,后面有一些小问题,需要修改DNS,后面会讲到。
重新加载软件源地址:
安装过程及问题解决
下面详细记录安装过程以及遇到的问题解决方法。
1. 设置安装源
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 421C365BD9FF1F717815A3895523BAEEB01FA116
3. 更新可升级列表
sudo apt update
接下来有可能会遇到问题:
出现错误:由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
解决方法:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo apt update
4. 安装ROS Melodic
sudo apt-get install ros-melodic-desktop-full
下面就静静的等待,别以为很顺利,错误又产生了:
Failed to fetch 错误
提示访问不了阿里云服务器,有部分资源无法获取,强迫症绝不容许忽略处理。
解决方法:修改DNS文件
sudo gedit /etc/resolv.conf
在resolv.conf里面添加阿里DNS
nameserver 223.5.5.5
nameserver 223.6.6.6
文件保存后,重新更新列表
sudo apt update
继续重新安装ROS:
sudo apt-get install ros-melodic-desktop-full
又是漫长的等待,期待不会出现其他问题,谢天谢地谢网友,看到正常的结果了。
可别高兴太早,后面还有很多问题
5. 安装rosdep
别偷懒,必须装。
sudo apt install python-rosdep
还好没出错,继续…
6. rosdep初始化
sudo rosdep init
又失败了:
关于这个问题,网上大部分是修改系统hosts文件,
再/etc/hosts中添加:
151.101.84.133 raw.githubusercontent.com
151.101.84.133 这个ip有可能会变,所以通过 ip.cn查询最新的ip。
但是很遗憾,尝试了很多次,依然不能解决问题,果断放弃。解决这个问题也是花费时间最长的。强烈推荐下面的方法,感谢强大的网友。
git clone https://github.com/ros/rosdistro.git 到 /home/gjw/git/
这个是本地rosdistro路径。
如果git不下来,直接用浏览器打开:https://github.com/ros/rosdistro
手动下载。
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/main.py /usr/lib/python2.7/dist-packages/rosdep2/main.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/rep3.py /usr/lib/python2.7/dist-packages/rosdep2/rep3.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdistro/init.py /usr/lib/python2.7/dist-packages/rosdistro/init.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py.bak
备份好了以后,并把里面的https://raw.githubusercontent.com/ros/rosdistro/master全部替换为 file:///home/gjw/git/rosdistro
注意路径要用自己实际的路径
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/main.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/init.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
运行
sudo rosdep init
秒成功,但是可别高兴太早,继续修改。
sudo cp /etc/ros/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/20-default.list.bak
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
并将 https://raw.githubusercontent.com/ros/rosdistro/master 全部替换为 file:///home/gjw/git/rosdistro
然后,运行
rosdep update
成功了,不过还没结束,继续…
7. 配置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
还还还没结束,继续…
8. 安装依赖包
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
安装成功以后,可以在新的终端启动roscore了
roscore
有的网友反应,提示找不到roscore命令。反正我没遇到。
如果有这个问题,下面方法可以解决:
Ubuntu18.04 ROS填坑之 roscore Command ‘roscore‘ not found
以上为全部安装过程,最总运行roscore,看到:
可喜可贺,终于完工。
ros的安装和系统环境、网络环境关系很大,过程也很繁琐。没办法,我要用呀。
参考资料
Ubuntu18.04安装ROS Melodic步骤、问题及其解决方法记录
Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)
https://blog.youkuaiyun.com/qq_17685565/article/details/105741864
https://www.cnblogs.com/RobustFresher/p/14501660.html
Ubuntu出现E: Failed to fetch问题解决