**Ubuntu 18.04 安装ROS Melodic 及报错解决方式(有效)完整文章比较长耐心查看!

安装步骤:

【注】此次安装必须在Ubuntu已经换源的情况下进行,安装ROS选择清华源和中科大源!换源步骤参照------ubuntu换源

错误解决在后面,需要注意按照步骤执行,遇到错误务必先解决错误!!!

Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。

第一步: 添加ROS源
添加ROS源有三种方式,一种直接采用ROS官方的源设置,另一种是采用国内的源来进行,而国内源有两种清华和科大,以下三种方式采用一种即可,但是大多数情况采用国内源。

官方:

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

清华:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

中科大:

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'

三者选1,我选用的是清华源

第二步:设置下载密钥
密钥添加必须成功,服务器密钥有两种方式可用,二者选其一,保证运行成功。

其一:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

其二:

sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

第三步:更新Ubuntu 18.04 LTS软件包

sudo apt-get update

第四步:下载安装ROS

此过程可选择的ROS包,包括三种,我们一般选用桌面完整版!

sudo apt install ros-melodic-desktop-full

可以执行下面语句,保证后续工作

sudo apt install python-rosdep

第五步:配置环境变量

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

第六步:安装依赖包

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

第七步:初始化rosdep

sudo rosdep init

第八步:rosdep更新

rosdep update

第一次启动ROS

输入:

roscore

打开新终端输入:

rosrun turtlesim turtlesim_node

再打开一个终端输入:

rosrun turtlesim turtle_teleop_key

报错解决:

**

错误1

**
第2步:更新出现错误描述:
W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
解决:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

错误2

第4步:安装ROS错误描述
E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
解决:

ls /var/lib/dpkg/lock-frontend
sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo  rm  -r -f /var/lib/dpkg/lock

解决完继续执行安装程序

错误3

第7步:错误描述
$ 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.
解决
方法1:
打开:

sudo gedit /etc/resolv.conf

注释掉:nameserver一行,添加如下

nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

保存退出,继续执行该步!

方法2:
打开:

sudo gedit /etc/hosts

文末添加:

151.101.84.133  raw.githubusercontent.com

错误描述:

~$ 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
解决:

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

错误描述:

ERROR: error loading sources list:
(‘The read operation timed out’,)

执行rosdep update网络原因多试几次