Ubuntu18.04安装ROS melodic
ROS(Robot Operating System,机器人操作系统)是一款开源的软件平台,旨在为机器人系统开发提供通用的操作系统功能和库支持。ROS提供了一系列工具和库,使得机器人开发者能够更轻松地开发、测试和部署机器人应用程序。
最近在做视觉和惯导结合的SLAM,目前做的比较好的VINS-mono、VINS-Fusion和DynaVINS都是在基于ROS进行设计的;此外,使用安卓手机收集视频和IMU制作数据集也需要用到ROS,因此简单记录一下ROS的安装过程。
实验环境
我用的是虚拟机VMware运行的
Ubuntu版本是18.04
主要参考官网安装教程http://wiki.ros.org/melodic/Installation/Ubuntu以及一篇博客https://blog.csdn.net/DDonggggg/article/details/115798335
安装
- 配置Ubuntu软件仓库
点击Ubuntu左下角的9个点,找到software & update 选项,单击打开。
我的界面是汉化过的,所以显示的是软件和更新,如下图
打开后按照下图进行配置(确保"restricted", “universe,” 和 "multiverse."前是打上勾的)
然后点击关闭,会弹出一个弹窗,点击重新载入(reload)
2. 设置sources.list
设置电脑以安装来自packages.ros.org的软件
打开一个终端,输入下面这条指令
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
若下载速度缓慢,选择就近一个镜像源替换上面的命令,在官网教程中给出几个镜像源的链接
这里我选择清华大学的镜像源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
- 设置密钥
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
- 安装
首先,对源列表进行更新
sudo apt update
然后,安装ROS,选择桌面完整版
sudo apt install ros-melodic-desktop-full
- 环境设置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 用于生成包的依赖项
安装依赖项
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
初始化rosdep
sudo rosdep init
rosdep update
我执行这两条指令发生报错,如下图
解决方法参考这篇博客中的方法一
https://blog.csdn.net/DDonggggg/article/details/115798335
具体如下:
1)修改rosdep下载资源的脚本文件sources_list.py(301行左右)
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
将下面这行代码加到脚本中的download_rosdep_data()函数中,以应用ghproxy代理服务(注意根据函数名称找对应位置)
url="https://ghproxy.com/"+url
更改后内容如下
2)同样的方法修改__init__.py(68行左右)
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
将里面DEFAULT_INDEX_URL的参数修改为下面这个
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
我是将原来代码注释直接粘贴上述代码
3)同样的方法将下面这个代码添加到gbpdistro_support.py(36行左右)、sources_list.py(64行左右)、rep3.py(36行左右) 、github.py(68行 119行左右)文件的https://raw~前
https://ghproxy.com/
使用以下指令打开文件
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
4)在gbpdistro_support.py文件( 204行左右)
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
添加如下代码
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
修改后执行
sudo apt-get update
rosdep update
成功更新后终端显示
- 测试
运行小乌龟进行测试
分别打开三个终端,分别运行以下三条指令
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
出现小乌龟,在第三个终端可以控制小乌龟运动即表示安装成功