安装 (Windows)

目标: 安装 ``webots_ros2``包并在 Windows 上运行模拟示例。

教程级别: 高级

时间: 10 分钟

Background

webots_ros2 包提供了 ROS 2 和 Webots 之间的接口。 它包含几个子包,包括 webots_ros2_driver,允许 ROS 节点与 Webots 通信。 其他子包主要是使用接口展示多种可能实现的示例。 在本教程中,您将安装该包并学习如何运行其中一个示例。

先决条件

建议了解初学者中涵盖的基本 ROS 原理 教程. 尤其, 创建工作区 and 创建包 are useful prerequisites.

Webots 是使用“webots_ros2”包的先决条件。 您可以关注 installation procedure or build it from sources.

或者,您也可以让“webots_ros2”自动下载 Webots。 当您启动包的示例并且未找到 Webots 安装时,会出现此选项。

Webots 的多个安装

如果您安装了多个 Webots,ROS 2 将在以下位置(按此顺序)查找 Webots:

  1. 如果设置了“ROS2_WEBOTS_HOME”环境变量,ROS 2 将使用此文件夹中的 Webots,无论其版本如何。

  2. 如果设置了“WEBOTS_HOME”环境变量,ROS 2 将使用此文件夹中的 Webots,无论其版本如何。

  3. 如果上述任何一点均未设置/安装,ROS 2 将在默认安装路径中查找兼容版本的 Webots:“C:Program FilesWebots”。

  4. 如果找不到 Webots,“webots_ros2”将显示一个窗口,并提供最新兼容版本的 Webots 自动安装。

任务

1 安装 WSL2

在 Windows 上,与原生 Windows 安装相比,WSL(适用于 Linux 的 Windows 子系统)改善了 ROS 2 的用户体验,因为它在 Linux 平台上运行。 使用与您的 ROS 发行版兼容的 Ubuntu 版本安装 WSL,并按照 官方 Microsoft 教程 升级到 WSL2。

2 在 WSL 中安装 ROS 2

按照 Ubuntu (deb 包) 在 Ubuntu WSL 中安装 ROS 2。

3 安装“webots_ros2”

然后,您可以从官方发布的软件包安装“webots_ros2”,也可以从“Github <https://github.com/cyberbotics/webots_ros2>”的最新源安装。

以下命令必须在 WSL 环境中运行。

Run the following command in a terminal.

sudo apt-get install ros-rolling-webots-ros2

4 启动“webots_ros2_universal_robot”示例

WSL 尚不支持硬件加速。 因此,应在 Windows 上启动 Webots,而 ROS 部分则在 WSL 内运行。 为此,必须在 WSL 环境中运行以下命令。

首先获取 ROS 2 环境(如果尚未完成)。

source /opt/ros/rolling/setup.bash

设置“WEBOTS_HOME”环境变量允许您启动特定的 Webots 安装(例如“C:Program FilesWebots”)。 使用挂载点“/mnt”来引用本机 Windows 上的路径。

export WEBOTS_HOME=/mnt/c/Program\ Files/Webots

如果从来源安装,请提供您的 ROS 2 工作区(如果尚未完成)。

cd ~/ros2_ws
source install/local_setup.bash

使用 ROS 2 启动命令启动演示包 (e.g. webots_ros2_universal_robot).

ros2 launch webots_ros2_universal_robot multirobot_launch.py

5 RViz 故障排除

使用最新版本的 WSL2,RViz 应该可以开箱即用。

您可以通过运行任何使用 RViz 的示例来检查它是否正常工作,例如:

sudo apt install ros-rolling-slam-toolbox
ros2 launch webots_ros2_tiago robot_launch.py rviz:=true slam:=true

Tiago 机器人可以使用以下方式控制:

ros2 run teleop_twist_keyboard teleop_twist_keyboard

对于较旧的 WSL 版本,RViz2 可能无法直接工作,因为没有可用的显示。要使用 RViz,您可以升级 WSL 或启用 X11 转发。

In a Windows shell:

wsl --update