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使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
1月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
124 4
|
1月前
|
Ubuntu Linux 网络安全
Ubuntu 22.04 LTS有哪些新特性
Ubuntu 22.04 LTS有哪些新特性
|
2月前
|
Web App开发 Ubuntu 前端开发
【踩坑记】Ubuntu 20.04.6 LTS下编译安装gcc 4.4.0
【踩坑记】Ubuntu 20.04.6 LTS下编译安装gcc 4.4.0
|
4月前
|
Ubuntu 开发者 Python
|
4月前
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
424 1
ROS2教程02 ROS2的安装、配置和测试
|
3月前
|
存储 Kubernetes Ubuntu
Ubuntu 22.04LTS版本二进制部署K8S 1.30+版本
这篇文章详细介绍了在Ubuntu 22.04 LTS系统上使用VMware Fusion虚拟化软件部署Kubernetes 1.30+版本的完整过程,包括环境准备、安装containerd、配置etcd、生成证书、部署高可用组件、启动Kubernetes核心组件以及网络插件的部署和故障排查。
237 4
|
3月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
382 3
|
3月前
|
Ubuntu 开发工具 虚拟化
MacOS系统基于VMware Fusion配置Ubuntu 22.04LTS环境
这篇文章介绍了如何在MacOS系统上使用VMware Fusion虚拟化软件配置Ubuntu 22.04 LTS环境,包括自定义VMware Fusion网段、Ubuntu系统安装、配置root用户登录、设置静态IP地址、修改默认网卡名称、配置PS1变量、设置登录界面为字符界面、修改软件源和进行vim基础优化等步骤。
429 2
|
4月前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
226 1
|
4月前
|
Ubuntu 机器人 测试技术
奥比中光 Femto Bolt相机ROS配置
这篇文章介绍了奥比中光Femto Bolt相机在ROS1 Noetic和ROS2 Humble环境下的配置过程,包括自动脚本和手动配置方法,适用于Ubuntu 20.04/22.04系统和Jetson Orin平台。
179 0
奥比中光 Femto Bolt相机ROS配置