Ubuntu安装ROS

前言

由于近期的工作需要用到机器人操作系统(ROS),故写下此文章来记录学习安装ROS的过程。我用到的Linux系统为Ubuntu18.04,所以我选择了ROS Melodic版本。

在这里插入图片描述
在这里插入图片描述

前期准备

将你的 Ubuntu 存储库配置为允许“restricted”、“universe”和“multiverse”。同时,你也可以把下载源替换为国内的源,这里我选择了清华源。

打开software&updata
在这里插入图片描述
确保图片上的四项全部选中,就可以开始安装ros了。
在这里插入图片描述

在这里插入图片描述

下载安装

本次安装主要参考ROS官网安装教程:ROS官网教程

1.设置ROS下载源

设置你计算机的下载源以接受来自 packages.ros.org 的软件,下面给出了三种ROS下载源,可以根据情况,自己选择。

国外源

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.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME 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/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2.设置公钥
sudo apt install curl 
# if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
3.安装ROS

首先,确保你的 Debian 软件包索引是最新的:

sudo apt update

安装桌面完整版ROS:

sudo apt install ros-melodic-desktop-full

安装完成后,可以通过以下命令查找可用的ROS包:

apt search ros-melodic
4.设置环境变量

每次启动新的 shell 时自动将 ROS 环境变量添加到你的 bash 会话中是很方便的:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
5.安装包的依赖项

到此为止,你已经安装了运行核心 ROS 软件包所需的东西。 要创建和管理你自己的 ROS 工作区,有多种工具和要求是分开分发的。 例如,rosinstall 是一种常用的命令行工具,它使您能够通过一个命令轻松下载许多 ROS 包的源代码树。要安装此工具和其他依赖项以构建 ROS 包,请运行:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
6.初始化rosdep

在使用 ROS 工具之前,你需要初始化 rosdep。 rosdep 是在 ROS 中运行一些核心组件所必需的,并使你能轻松地为要编译的源安装系统依赖项。 如果您尚未安装 rosdep,请执行以下操作。

sudo apt install python-rosdep

你可以通过以下命令,初始化rosdep:

sudo rosdep init
rosdep update

若执行sudo rosdep init出错,可更换网络多次尝试,听说使用手机热点可以解决这个问题,我是一步直接过的。出现下图所示结果,则可以执行rosdep update。

在这里插入图片描述
我在执行rosdep update时,多次出现“time out”错误,具体如下图:

在这里插入图片描述

解决rosdep update超时问题

由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,我们通过修改rosdep源码中下载资源的函数来解决这一问题。网站https://ghproxy.com/支持github的资源代理,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。

我们需要对以下5个Python文件进行修改:

/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 
/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py	
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 

1.修改sources_list.py的可执行权限并打开,修改download_rosdep_data函数,添加一行代码来url="https://ghproxy.com/"+url应用ghproxy的代理服务,并在第72行的github地址前添加前缀https://ghproxy.com/来应用代理服务。

在终端输入以下命令打开sources_list.py:

sudo chmod 777 /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

第一处修改:
在这里插入图片描述
第二处修改:
在这里插入图片描述
2.修改__init__.py的可执行权限并打开,对里面的DEFAULT_INDEX_URL进行如下替换来应用代理服务。
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

在终端输入以下命令打开__init__.py:

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

替换DEFAULT_INDEX_URL:
在这里插入图片描述
3.修改gbpdistro_support.py的可执行权限并打开,对里面的FUERTE_GBPDISTRO_URL进行如下替换来应用代理服务:
FUERTE_GBPDISTRO_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/' \ 'master/releases/fuerte.yaml'

在终端输入以下命令打开gbpdistro_support.py:

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

替换FUERTE_GBPDISTRO_URL:
在这里插入图片描述
在第204行添加一行代码gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url

4.修改rep3.py的可执行权限并打开,对里面的REP3_TARGETS_URL进行如下替换来应用代理服务。
REP3_TARGETS_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'

在终端输入以下命令打开rep3.py:

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

替换REP3_TARGETS_URL:
在这里插入图片描述
5.修改github.py的可执行权限并打开,在第68行和第119行的github地址前添加前缀https://ghproxy.com/来应用代理服务。

在终端输入以下命令打开github.py:

sudo chmod 777 /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py

第一处修改:
在这里插入图片描述
第二处修改:
在这里插入图片描述
再次尝试执行rosdep update,成功!!!
在这里插入图片描述

小海龟测试

打开三个终端,分别在三个终端中输入以下命令:

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

在这里插入图片描述
现在,可以通过键盘来控制小海龟了。
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值