这也是我在Ubuntu里面安装ROS的第N次,以前每次安装过程都忘记总结了,导致每次安装ROS都浪费了很多的时间用来解决各种问题。为了避免自己以后出现问题需要再安装,所以写这篇博客总结一下,这次是我安装最快,问题最少也最好解决的一次,在网上看了好多安装方法,有些会出现问题,不知道什么原因,解决办法也有点复杂,因此希望这个对大家有用!

一、Ubuntu不同的版本对应ROS不同的版本

操作系统为Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。在这里插入图片描述

二、配置Ubuntu软件库

配置Ubuntu存储库以允许"main", “restricted” ,“universe,” and “multiverse”,如图所示
在这里插入图片描述

三、安装过程及问题解决

1.设置安装源

  • 避免后面会出现无法定位软件包的错误,这里ROS提供了国内的安装源,添加国内安装源命令
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.设置密钥

  • 若密钥服务器hkp://ha.pool.sks-keyservers.com:80无法添加成功,则可以尝试hkp://pgp.mit.edu:80或者hkp://keyserver.ubuntu.net:80
  • 我使用的是下面这句命令是执行成功了的
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

在这里插入图片描述
3.更新Ubuntu 18.04 LTS的最新可用软件包列表

sudo apt update

在这里插入图片描述

  • 如果出现如下错误
    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
    在这里插入图片描述
    4.开始安装ROS Melodic
sudo apt-get install ros-melodic-desktop-full
  • 如果出现如下问题
    E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
    E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
    在这里插入图片描述
    解决办法,执行如下命令,删除 /var/lib/dpkg/lock-frontend - open
ls /var/lib/dpkg/lock-frontend
sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo  rm  -r -f /var/lib/dpkg/lock

在这里插入图片描述
再执行sudo apt-get install ros-melodic-desktop-full命令,成功运行如图所示
在这里插入图片描述

🚩

  • 避免后面出现sudo rosdep:找不到命令提示,这里需要执行如下命令

    sudo apt install python-rosdep

5.初始化rosdep
开始使用ROS之前,先初始化rosdep,rosdep能够轻松地安装要编译的源代码的系统依赖关系,rosdep是ROS核心组件运行的基础

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.
    在这里插入图片描述
    解决办法,执行如下命令
cd /etc
sudo gedit hosts

在这里插入图片描述
在文件末尾添加

151.101.84.133 raw.githubusercontent.com

在这里插入图片描述
然后保存文件退出即可。

  • 如果出现错误(我觉得这个错误是我在网上搜解决办法的时候自己手动新建了/etc/ros/rosdep/sources.list.d目录,并且还在这个目录下编辑了20-default.list的相关内容,我通过上面的方法正确解决了之后,产生了相同的文件20-default.list,二者发生冲突。嗯…就是需要删掉以前强制新建的。)
    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

然后再重新运行命令sudo rosdep init,可见就成功解决了!
在这里插入图片描述
6.执行rosdep update更新

rosdep update

在这里插入图片描述

  • 如果出现如下错误
ERROR: error loading sources list:
	('The read operation timed out',)

解决办法:大概是网络的问题,反复执行rosdep update命令即可
(如图,我执行了几次rosdep update命令运行成功!)
在这里插入图片描述
7.添加ros环境变量

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

8.为了构建和管理开发者自己的ROS工作空间,还需安装rosinstall

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

在这里插入图片描述
第一次启动ROS时,需要进行环境变量配置,执行如下命令

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

在这里插入图片描述

四、启动运行小海龟例子

1.第一个终端运行如下命令

roscore

在这里插入图片描述
2.打开第二个终端,也可以利用 Ctrl+Shift+T 快捷键打开一个新的终端,运行如下命令,这时你会看见一只静止的小海龟

rosrun turtlesim turtlesim_node

在这里插入图片描述
3.如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key,运行如下命令

rosrun turtlesim turtle_teleop_key

💥(这里你的鼠标要停留在当前这个终端界面,按键盘上面的 上下左右 来控制小海龟的移动)

键盘上面的“上下左右”小海龟移动情况
前进
后退
原地向左转
原地向右转
在这里插入图片描述
在当前终端下,按住方向键即可控制小海龟移动,我控制的小海龟移动情况如下
在这里插入图片描述
就这样,可以看见我控制的小海龟移动的轨迹图,有点好玩,大家快去试试吧,加油!⚡️


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐