Ubuntu 18.04.05 LTS配置ROS Melodic各种问题详细解决(填坑)

简介: Ubuntu 18.04.05 LTS配置ROS Melodic各种问题详细解决(填坑)

前言

ROS包括多个版本,适应于各不同版本的Linux系统。(查看各版本对应关系

本文主要针对:

操作系统:Ubuntu 18.04.05 LTS
ROS版本:Melodic

进行处理。

安装过程主要参考:ROS官方教程

安装过程介绍

对ROS官方教程简单介绍如下:

1) 打开“软件与更新(soft & update)”,选择"restricted," “universe,” and “multiverse.”,详细说明可见(链接)。

2) 设置下载源

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

为了避免后续出现无法定位软件包的错误可以把deb http://packages.ros.org/ros/ubuntu替换为deb http://mirrors.ustc.edu.cn/ros/ubuntu

3) 设置秘钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4) 安装ROS

首先:

sudo apt update

接着使用

sudo apt install ros-melodic-desktop-full

上述命令是安装完整的ROS,若想进行选择还可以参考下述命令:(若没有选择直接安装完整版,可以忽略以下内容)

Desktop Install: ROS, rqt, rviz, and robot-generic libraries

sudo apt install ros-melodic-desktop

ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.

sudo apt install ros-melodic-ros-base

Individual Package: You can also install a specific ROS package (replace underscores with dashes of the package name):

sudo apt install ros-melodic-PACKAGE

e.g.

sudo apt install ros-melodic-slam-gmapping

To find available packages, use:

apt search ros-melodic

5) 环境设置(添加ros环境变量)

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

6) 生成包的依赖项

安装建立ROS的工具:

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

7) 初始化rosdep

先安装一个rosdep

sudo apt install python-rosdep

接着进行初始化:

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.

这是因为国内访问外网比较慢。

**解决方法(1)**为:

#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133  raw.githubusercontent.com
#保存后退出再尝试,可以多尝试几次

出现下述界面则代表成功:

如果不行,使用解决方法(2) 为:20-default.list文件中的内容进行替换,主要是网址https://raw.githubusercontent.com

替换文件可以从这里下载,然后使用命令进行替换:

sudo cp ./20-default.list /etc/ros/rosdep/sources.list.d
#注意上述命令为:sudo cp 本机路径/20-default.list /etc/ros/rosdep/sources.list.d

或者打开20-default.list文件进行编辑

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

把全部内容修改为以下内容:

# os-specific listings first
# yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
yaml file:/etc/ros/rosdep/sources.list.d/rosdistro-master/rosdep/osx-homebrew.yaml osx
# generic
# yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
# yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
# yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
# gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
yaml file:/etc/ros/rosdep/sources.list.d/rosdistro-master/rosdep/base.yaml
yaml file:/etc/ros/rosdep/sources.list.d/rosdistro-master/rosdep/python.yaml
yaml file:/etc/ros/rosdep/sources.list.d/rosdistro-master/rosdep/ruby.yaml
gbpdistro file:/etc/ros/rosdep/sources.list.d/rosdistro-master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

修改后接着使用rosdep update命令进行更新,若出现time out的错误,还是因为访问外网的速度太慢或不能访问。

解决方案(1):增加允许尝试的时间,修改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.py、gbpdistro_support.py、rep3.py

中的DOWNLOAD_TIMEOUT = 15.0值。打开对应的文件:

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

修改DOWNLOAD_TIMEOUT = 15.0的值为DOWNLOAD_TIMEOUT = 1500.0

然后进行多次尝试,看是否能够成功,若不能则尝试解决方案(2)。


解决方案(2):采用离线下载的方式,把rosdistro-master这个文件下载到本地,然后把修改 /usr/lib/python2.7/dist-packages/rosdep2/中三个文件sources_list.py、gbpdistro_support.py、rep3.py中的位置指向本地位置。

(下载方式1 github,下载方式2 csdn)


把下载的文件解压,然后移动到对应位置:

sudo cp -r ./rosdistro-master/ /etc/ros/rosdep/sources.list.d
#注意上述命令为:sudo cp -r 本机路径/rosdistro-master/ /etc/ros/rosdep/sources.list.d

接着修改 /usr/lib/python2.7/dist-packages/rosdep2/中三个文件sources_list.py、gbpdistro_support.py、rep3.py中指向的位置:

第一个文件:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
# 修改DEFAULT_SOURCES_LIST_URL为离线路径
DEFAULT_SOURCES_LIST_URL = 'file:/etc/ros/rosdep/sources.list.d/20-default.list'

第二个文件:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
# 修改REP3_TARGETS_URL为离线路径
REP3_TARGETS_URL = 'file:/etc/ros/rosdep/sources.list.d/rosdistro-master/releases/targets.yaml'

第三个文件:

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
# 修改DEFAULT_INDEX_URL为离线路径
DEFAULT_INDEX_URL = 'file:/etc/ros/rosdep/sources.list.d/rosdistro-master/index-v4.yaml'

最后使用rosdep update命令,出现以下界面代表成功:

注意:上述rosdep init与rosdep update出现错误时,上下两个解决方案(1)是对应的(还是尝试通过访问外网实现),解决方案(2)也是对应的(把文件下载到本地,修改链接指向)

案例使用

完成上述步骤后,我们已经完成了ros安装的全过程,接着进行一个案例测试:

终端中使用命令:

roscore

Ctrl+Alt+T 快捷键打开一个新的终端,并使用命令:

rosrun turtlesim turtlesim_node

出现一个静止的小海龟界面:

Ctrl+Alt+T 快捷键再次打开一个新的终端,并使用命令:启用启动turtlesim的键盘控制节点turtle_teleop_key

rosrun turtlesim turtle_teleop_key

把鼠标放在第三个终端界面上,能够键盘上的上下左右进行控制小海龟的移动,轨迹如下。

好了,至此ROS的安装过程就全部完成了。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
目录
相关文章
|
1月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
446 1
|
1月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
204 18
|
1月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
221 17
|
1月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
290 7
|
1月前
|
消息中间件 人工智能 运维
Ubuntu环境下的 RabbitMQ 安装与配置详细教程
本文聚焦在Ubuntu下RabbitMQ安装与配置教程,旨在帮助读者快速构建稳定可用的消息队列服务。
|
2月前
|
缓存 监控 Ubuntu
在Ubuntu 16.04上配置GitLab Runner以激活GitLab CI/CD流程
完成以上步骤后,每当代码被推送到远端仓库中相对应分支上时,GitLb CI / CD 流水线就会自动触发,并由之前注册好了 GitLb runner 的机器去完成定义好了 ` .gitlabcicd.yml ` 文件里面定义好各种任务(如编译测试部署等).
93 13
|
2月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
149 13
|
Ubuntu 机器人 Linux
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
416 1
|
11月前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
392 14

热门文章

最新文章