Skip to content

Webots 安装(Ubuntu)

目标: 安装 webots_ros2 包并在 Ubuntu 上运行仿真示例。

教程级别: 进阶

预计时间: 10 分钟

webots_ros2 包提供了 ROS 2 与 Webots 之间的接口。

它包含多个子包,其中 webots_ros2_driver 用于启动 Webots 并与之通信。

本系列后续大部分教程都会用到此接口,因此需要事先安装。

其余子包主要是示例,展示该接口的各种用法。

本教程将指导你安装该包并运行其中一个示例。

建议先了解初级教程中涵盖的 ROS 基础知识。

建议先阅读 创建工作空间 和 创建你的第一个 ROS 2 包 这两篇教程。

使用 webots_ros2 接口前需要安装 Webots 软件。

你可以按照安装指南或从源码编译进行安装。

也可以让 webots_ros2 自动下载并安装 Webots。

当你启动该包的示例时,如果没有找到 Webots 安装,会自动弹出此选项。

如果你的计算机上安装了不同版本的 Webots,webots_ros2 将按以下顺序查找 Webots:

  1. 如果设置了 ROS2_WEBOTS_HOME 环境变量,ROS 2 将使用该路径下的 Webots,无论其版本如何。
  2. 如果设置了 WEBOTS_HOME 环境变量,ROS 2 将使用该路径下的 Webots,无论其版本如何。
  3. 如果以上变量都未设置,webots_ros2 会在兼容版本的默认安装路径中查找 Webots:/usr/local/webots 和 /snap/webots/current/usr/share/webots。
  4. 如果仍未找到 Webots,webots_ros2 会弹出一个窗口,提供自动安装最新兼容版本 Webots 的选项。

你可以安装官方发布的包,也可以从 Github 上的最新源码安装。

在终端中运行以下命令。

Terminal window
$ sudo apt-get install ros-{DISTRO}-webots-ros2

创建一个带有 src 目录的 ROS 2 工作空间。

Terminal window
$ mkdir -p ~/ros2_ws/src

加载 ROS 2 环境。

Terminal window
$ source /opt/ros/{DISTRO}/setup.bash

从 Github 获取源码。

Terminal window
$ cd ~/ros2_ws
$ git clone --recurse-submodules https://github.com/cyberbotics/webots_ros2.git src/webots_ros2

安装包依赖。

Terminal window
$ sudo apt install python3-pip python3-rosdep python3-colcon-common-extensions
$ sudo rosdep init && rosdep update
$ rosdep install --from-paths src --ignore-src --rosdistro {DISTRO}

使用 colcon 构建包。

Terminal window
$ colcon build

加载该工作空间。

Terminal window
$ source install/local_setup.bash

2 启动 webots_ros2_universal_robot 示例

Section titled “2 启动 webots_ros2_universal_robot 示例”

以下说明将介绍如何启动其中一个示例。

首先加载 ROS 2 环境(如果尚未加载)。

Terminal window
$ source /opt/ros/{DISTRO}/setup.bash

通过设置 WEBOTS_HOME 环境变量,可以指定要启动的 Webots 安装。

Terminal window
$ export WEBOTS_HOME=/usr/local/webots

如果是从源码安装的,请加载 ROS 2 工作空间(如果尚未加载)。

Terminal window
$ cd ~/ros2_ws
$ source install/local_setup.bash

使用 ROS 2 launch 命令启动演示包(例如 webots_ros2_universal_robot)。

Terminal window
$ ros2 launch webots_ros2_universal_robot multirobot_launch.py