当前位置: 代码迷 >> 综合 >> ubuntu18.04.4安装ROS Melodic
  详细解决方案

ubuntu18.04.4安装ROS Melodic

热度:38   发布时间:2024-01-09 08:19:12.0

环境

笔者安装的是Ubuntu18.04.4,对应的ROS版本是 Melodic
在这里插入图片描述

前期准备

更换软件镜像源:打开【软件和更新】,第一个标签项【Ubuntu软件】
_16)
ps:第三个选项updates中的每日日更新打开,不然后面安装时会出现错误
在这里插入图片描述

安装步骤

  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. 设置最新的密钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

在这里插入图片描述
3. 安装ROS

sudo apt-get update

在这里插入图片描述

sudo apt-get install ros-melodic-desktop-full

出现以下错误:
在这里插入图片描述
是因为未开启更新,在Ubuntu软件仓库的update中开启。之后重新安装
在这里插入图片描述

sudo apt-get install ros-melodic-rqt*
  1. 初始化rosdep
sudo rosdep init

如果出现:sudo rosdep:找不到命令提示,这里需要执行如下命令

sudo apt install python-rosdep

执行完sudo rosdep init后出现
在这里插入图片描述
在这里插入图片描述
则需要

cd /etc
sudo gedit hosts

在文件末尾加上

151.101.84.133 raw.githubusercontent.com

保存关闭重新执行sudo rosdep init
在这里插入图片描述
再次执行sudo rosdep init,出现如下即为成功在这里插入图片描述

  1. rosdep update更新
rosdep update

这里基本报的错都是网络超时,可能会在下面五个文件任何一个的下载中提示handshake timeout
sudo rosdep initrosdep update运行不了的根本原因是"raw.githubusercontent.com"这个网站不好使。
"raw.githubusercontent.com"实际上是Google GitHub的用户服务器,sudo rosdep initrosdep update都是从该网站上下载一些文件,在初次安装ROS的时候一般国内网是进不去的。
sudo rosdep init做的事情其实就是下载了一个20-default.list文件到 /etc/ros/rosdep/sources.list.d文件夹下
rosdep update做的事情就是根据20-default.list文件中的网址链接去下载相应的文件。
用到了五个文件:osx-homebrew.yawlbase.yawlpython.yawlruby.yawlfuerte.yawl,地址都在"raw.githubusercontent.com"下面,因为网络进不去所以下载不下来,rosdep update就运行不了。
raw.githubusercontent.com实际上就是github的用户数据服务器,rosdep程序下载的就是github.com/ros/rosdistro这个repository里的文件。
在这里插入图片描述
可以手动下载解决该问题,即下载软件包,采用本地模式安装。下载的文件名为rosdistro-master.zip,前面说的那些文件都在里面。
首先将这个文件解压,例如放在/etc/ros
将文件夹拷贝至/etc/ros时发现无法粘贴,需要提高权限

sudo chmod 777 /etc/ros

首先修改20-default.list,执行:

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

将里面链接到"raw.githubusercontent.com"的内容全部替换为链接到本地文件,最后20-default.list的内容是这样的
在这里插入图片描述然后修改下面三个文件,同样将其中链接到"raw.githubusercontent.com"的内容全部替换为链接到本地文件。可以使用Ctrl+F 查找 raw.githubusercontent.com,每个文件中都有一处需要修改。

 1. /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py2. /usr/lib/python2.7/dist-packages/rosdep2/rep3.py3. /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

修改gbpdistro_support.py,执行:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

在这里插入图片描述
然后弹出文本编辑器
定位到raw.githubusercontent.com这一行(使用Ctrl+F 查找),注释掉原来的链接改为本地文件,修改的内容如下面所示:
在这里插入图片描述
修改rep3.py,执行:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

同样定位到raw.githubusercontent.com这一行(使用Ctrl+F 查找),注释掉原来的链接改为本地文件,修改的内容如下面所示:
在这里插入图片描述
修改__init__.py,执行:

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

在这里插入图片描述在这里插入图片描述
再次执行rosdep update
在这里插入图片描述
9. 设置环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

在这里插入图片描述安装完成后在 其他位置/电脑/opt/ros/melodic路径下会看到
在这里插入图片描述
11.验证是否安装成功

打开三个终端,分别输入

1. roscore
2. rosrun turtlesim turtlesim_node
3. rosrun turtlesim turtle_teleop_key

在这里插入图片描述
在输入rosrun turtlesim turtlesim_node时可能出现

Command 'rosrun' not found, but can be installed with:sudo apt install rosbash

在这里插入图片描述
根据提示输入命令即可

sudo apt install rosbash

在这里插入图片描述
然后出现package 'turtlesim' not found
在这里插入图片描述

sudo apt-get install ros-melodic-ros-tutorials

在这里插入图片描述
此时输入sudo apt-get install ros-melodic-ros-tutorials即可成功
在这里插入图片描述在这里插入图片描述在第三个终端,按键盘上的上下左右箭头,控制小海龟移动
在这里插入图片描述
ps:ROS是依赖python2.7的千万不要卸载python2.7