1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 在Ubuntu18.04(Bionic)上安装ROS Melodic

在Ubuntu18.04(Bionic)上安装ROS Melodic

时间:2022-10-25 07:58:17

相关推荐

在Ubuntu18.04(Bionic)上安装ROS Melodic

引言

本文介绍了在Ubuntu18.04(Bionic)操作系统上安装ROS Melodic的过程,以及在安装过程中遇到的问题和解决方法。

一、官方指导文档

/melodic/Installation/Ubuntu

1、注意区分ROS仓库中的ROS功能包(original ROS packages)与Debian/Ubuntu仓库里的ROS功能包(upstream ROS packages)。

(1)Debian/Ubuntu仓库里的ROS功能包是从original ROS packages适配而来的,但并没有适配所有的original ROS packages。

(2)来自两个仓库的ROS功能包在一起工作时,可能彼此会有冲突,所以建议尽量不要将来自两个仓库的ROS功能包混在一起使用。

2、注意ROS Melodic支持的Ubuntu版本和CPU架构。

3、ROS Melodic有两种安装方式:从Ubuntu的软件仓库安装(推荐);源码安装。

下面是从Ubuntu的软件仓库安装ROS Melodic的过程:

二、安装过程

1.1 安装ROS前的准备

1、首先准备一台计算机(可以是虚拟机),CPU的架构要符合ROS Melodic的要求。

2、在计算机上安装Ubuntu 18.04操作系统。

3、打开Ubuntu的Software Updater的设置(Settings);确保勾选了 “restricted” 、"universe"和 “multiverse” ;将Ubuntu的软件仓库换成国内的仓库,如:阿里云的Ubuntu仓库;最后单击Close。

1.2 安装步骤

1.2.1 设置安装源

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

以上这个命令是将ROS的安装源设置成ROS官方的安装源,但从官方安装源安装ROS的速度可能比较慢。建议将ROS功能包的安装源设置成国内的镜像源。

/ROS/Installation/UbuntuMirrors

(1)USTC镜像

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors./ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

(2)Tsinghua University镜像

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna./ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

(3)Beijing Foreign Studies University镜像

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors./ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

(4)Shanghai Jiao Tong University镜像

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.sjtug./ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

1.2.2 设置密钥

sudo apt install curl curl -s /ros/rosdistro/master/ros.asc | sudo apt-key add -

1.2.3 安装ros-melodic-desktop-full

sudo apt install ros-melodic-desktop-full

官方提供了三种安装配置:Desktop-FullDesktopROS-Base,我们这里选择安装Desktop-Full

如果要安装某个具体的ROS功能包,可以使用以下形式的命令:

sudo apt install ros-melodic-PACKAGE

注意:PACKAGE换成ROS功能包的名字,但名字中的下划线(underscores)要用中划线(dashes)代替。例如:安装ROS包slam_gmapping的命令如下,

sudo apt install ros-melodic-slam-gmapping

查找ROS功能包的命令是:

apt search ros-melodic

1.2.4 设置环境变量

如果使用的是bash,

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

如果使用的是zsh,

echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrcsource ~/.zshrc

1.2.5 安装一些ROS工具和依赖

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

1.2.6 初始化rosdep

1、如果还没有安装python-rosdep,先用以下命令安装。

sudo apt install python-rosdep

rosdep使用python写的命令行工具,也可以下载源码安装,参见:

/rosdep/project/rosdep//ros-infrastructure/rosdep

2、执行以下命令,初始化rosdep。

sudo rosdep initrosdep update

这一步经常会因为网络问题出错,例如:执行命令sudo rosdep init的时候,可能会出现下图所示错误:

命令sudo rosdep init的作用其实就是将下面这个网站中的20-default.list文件下载到本地文件夹/etc/ros/rosdep/source.list.d里面。

/ros/rosdistro/master/rosdep/sources.list.d/20-default.list

执行rosdep update命令时,也经常因为网络问题而中断。

小伙伴们针对以上这个问题提出来很多解决方法,个人认为目前比较好的解决方法如下:

1、从下面这个网页将rosdistro下载到Ubuntu的某个文件夹(例如:/home/jzy/Downloads)。

/ros/rosdistro

注意:jzy是我的用户名,你需要换成你自己的用户名。

2、把下载到的rosdistro-master.zip解压,得到文件夹:rosdistro-master

unzip rosdistro-master.zip

3、编辑文件夹rosdistro-master/rosdep/sources.list.d中的文件20-default.list

将文件中所有的

/ros/rosdistro/master

改成

file:///home/jzy/Downloads/rosdistro-master

4、将修改过的文件20-default.list拷贝到/etc/ros/rosdep/sources.list.d目录下。

cp 20-default.list /etc/ros/rosdep/sources.list.d/

注:其实这就是命令sudo rosdep init干的事。你也可以跳过这一步操作,此后执行sudo rosdep init命令即可;否则,就不用再执行sudo rosdep init命令了。

注:如果目录/etc/ros/rosdep/sources.list.d不存在,就先创建一下。

5、修改4个文件:__init__.pygbpdistro_support.pyrep3.pysources_list.py

修改的方法都是将文件中的

/ros/rosdistro/master

改成

file:///home/jzy/Downloads/rosdistro-master

(1)修改__init__.py,位置:/usr/lib/python2.7/dist-packages/rosdistro

(2)修改gbpdistro_support.pyrep3.pysources_list.py,位置:/usr/lib/python2.7/dist-packages/rosdep2

如下图所示:

(1)__init__.py

(2)gbpdistro_support.py

(3)rep3.py

(4)sources_list.py

6、执行以下命令,初始化rosdep:

sudo rosdep init

rosdep update

如果觉得上面这个方法麻烦,也可以用国内的镜像:

/rosdep

https://mirrors.tuna./help/rosdistro/https://mirrors./help/rosdistro/

将这两个步骤:

sudo rosdep initrosdep update

更换为以下步骤:

# 手动模拟 rosdep initsudo mkdir -p /etc/ros/rosdep/sources.list.d/sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna./github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list# 为 rosdep update 换源export ROSDISTRO_INDEX_URL=https://mirrors.tuna./rosdistro/index-v4.yamlrosdep update# 每次 rosdep update 之前,均需要增加该环境变量# 为了持久化该设定,可以将其写入 .bashrc 中,例如echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna./rosdistro/index-v4.yaml' >> ~/.bashrc

或者,更换为以下步骤:

# 手动模拟 rosdep initsudo mkdir -p /etc/ros/rosdep/sources.list.d/sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors./github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list# 为 rosdep update 换源export ROSDISTRO_INDEX_URL=https://mirrors./rosdistro/index-v4.yamlrosdep update# 每次 rosdep update 之前,均需要增加该环境变量# 为了持久化该设定,可以将其写入 .bashrc 中,例如echo 'export ROSDISTRO_INDEX_URL=https://mirrors./rosdistro/index-v4.yaml' >> ~/.bashrc

三、测试

安装完毕后,可以测试一下安装是否成功。

1、打开一个终端,执行以下命令,启动roscore。

roscore

如果出现下图所示错误,说明是~/.ros文件夹下的文件的权限问题。

执行以下命令后,重新启动roscore即可。

sudo chmod 777 -R ~/.ros/

2、打开一个新的终端,启动小乌龟仿真节点。

rosrun turtlesim turtlesim_node

之前安装的ros-melodic-desktop-full应该已经集成了turtlesim功能包,如果没有可以用以下命名安装:

sudo apt install ros-melodic-turtlesim

3、再开一个新的终端,启动小乌龟的键盘控制节点。

rosrun turtlesim turtle_teleop_key

用键盘上的方向键,可以控制小乌龟的移动。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。