这也是我在Ubuntu里面安装ROS的第N次,以前每次安装过程都忘记总结了,导致每次安装ROS都浪费了很多的时间用来解决各种问题。为了避免自己以后出现问题需要再安装,所以写这篇博客总结一下,这次是我安装最快,问题最少也最好解决的一次,在网上看了好多安装方法,有些会出现问题,不知道什么原因,解决办法也有点复杂,因此希望这个对大家有用!
Ubuntu18.04安装ROS Melodic目录
一、Ubuntu不同的版本对应ROS不同的版本
二、配置Ubuntu软件库
三、安装过程及问题解决
四、启动运行小海龟例子
一、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'
1
在这里插入图片描述
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
1
在这里插入图片描述
3.更新Ubuntu 18.04 LTS的最新可用软件包列表
sudo apt update
1
在这里插入图片描述
如果出现如下错误
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
1
如果出现如下问题
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
1
2
3
在这里插入图片描述
再执行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
1
在这里插入图片描述
如果出现错误:
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
1
2
在这里插入图片描述
在文件末尾添加
151.101.84.133 raw.githubusercontent.com
1
在这里插入图片描述
然后保存文件退出即可。
如果出现错误(我觉得这个错误是我在网上搜解决办法的时候自己手动新建了/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
1
然后再重新运行命令sudo rosdep init,可见就成功解决了!
在这里插入图片描述
6.执行rosdep update更新
rosdep update
1
在这里插入图片描述
如果出现如下错误
ERROR: error loading sources list:
('The read operation timed out',)
1
2
解决办法:大概是网络的问题,反复执行rosdep update命令即可
(如图,我执行了几次rosdep update命令运行成功!)
在这里插入图片描述
7.添加ros环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
1
2
8.为了构建和管理开发者自己的ROS工作空间,还需安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
1
在这里插入图片描述
第一次启动ROS时,需要进行环境变量配置,执行如下命令
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
1
2
在这里插入图片描述
四、启动运行小海龟例子
1.第一个终端运行如下命令
roscore
1
在这里插入图片描述
2.打开第二个终端,也可以利用 Ctrl+Shift+T 快捷键打开一个新的终端,运行如下命令,这时你会看见一只静止的小海龟
rosrun turtlesim turtlesim_node
1
在这里插入图片描述
3.如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key,运行如下命令
rosrun turtlesim turtle_teleop_key
1
💥(这里你的鼠标要停留在当前这个终端界面,按键盘上面的 上下左右 来控制小海龟的移动)
键盘上面的“上下左右” 小海龟移动情况
上 前进
下 后退
左 原地向左转
右 原地向右转
在这里插入图片描述
在当前终端下,按住方向键即可控制小海龟移动,我控制的小海龟移动情况如下
在这里插入图片描述
就这样,可以看见我控制的小海龟移动的轨迹图,有点好玩,大家快去试试吧,加油!⚡️