Ubuntu安装ROS

本文详细记录了在Ubuntu18.04上安装ROS Melodic的步骤,包括设置源、安装、环境变量配置以及解决rosdepupdate超时的技巧。通过修改rosdep源码中的下载函数,利用ghproxy.com作为代理,成功解决了因GithubRaw资源访问限制导致的更新失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

由于近期的工作需要用到机器人操作系统(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

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

Ubuntu安装ROS(Robot Operating System)通常需要几个步骤,以下是简要指南: 1. **更新系统**: - 打开终端并运行 `sudo apt update` 和 `sudo apt upgrade` 更新你的Ubuntu系统。 2. **安装依赖包**: - Ubuntu的官方软件仓库里并不直接包含ROS,你需要添加ROS的apt源。复制以下命令到终端: ``` sudo sh -c 'echo "deb [arch=amd64] http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` 3. **添加密钥**: - 添加ROS的GPG密钥: ``` wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add - ``` 4. **更新源列表并安装ROS**: - 运行 `sudo apt update` 确保源已更新,然后安装ROS: ``` sudo apt install ros-<distro>-desktop-full ``` 将 `<distro>` 替换为你的Ubuntu版本对应的ROS发行版,如 `noetic`, `melodic` 或 `foxy`。 5. **初始化工作空间**: -p ~/catkin_ws/src cd ~/catkin_ws catkin_init_workspace ``` 6. **安装特定的ROS包**: - 如果有特定的软件包需要安装,可以使用 `source` 命令激活工作区,然后通过 `rosdep install` 或 `sudo apt install` 来安装。 7. **配置环境变量**: - 加载ROS的环境设置,通常会在`.bashrc`或`.zshrc`文件中增加必要的路径。 8. **测试安装**: - 启动ROS节点,比如通过 `rosservice list` 或 `rostopic list` 来验证ROS是否正常运行。 **相关问题--**: 1. ROS有哪些常见发行版可供选择? 2. 在Ubuntu上如何创建和管理ROS工作空间? 3. 如果遇到依赖缺失的问题,应该如何解决?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值