安装(Windows)

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

教程级别: 高级

时间: 10分钟

背景

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

先决条件

建议您先了解入门级ROS原理,详情请参阅初学者 教程。特别是 创建一个工作空间创建软件包 是有用的先决条件。

使用``webots_ros2``包需要先安装Webots。您可以按照`安装过程 <https://cyberbotics.com/doc/guide/installation-procedure>`_ 进行安装,或者从源代码构建(从源代码构建)。

另外,您也可以让``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将在兼容版本的默认安装路径``C:Program FilesWebots``中查找Webots。

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

任务

1 安装WSL2

在Windows上,使用WSL(Windows子系统Linux)与本机Windows安装相比,可以提升ROS 2的用户体验,因为它在Linux平台上运行。使用与您的ROS发行版兼容的Ubuntu版本安装WSL,并按照`官方Microsoft教程 <https://learn.microsoft.com/en-us/windows/wsl/install>`_ 升级到WSL2。

2 在WSL中安装ROS 2

在Ubuntu WSL中安装ROS 2,按照 Ubuntu (Debian 包) 进行操作。

3 安装``webots_ros2``

您可以选择从官方发布的软件包中安装 webots_ros2,或者从 Github 的最新源代码中安装。

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

在终端中运行以下命令。

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

4 启动``webots_ros2_universal_robot``示例。

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

如果尚未完成,请先启动ROS 2环境。

source /opt/ros/humble/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启动命令来启动演示包(例如``webots_ros2_universal_robot``)。

ros2 launch webots_ros2_universal_robot multirobot_launch.py

5 RViz故障排除

在最新版本的WSL2上,RViz应该可以直接使用。

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

sudo apt install ros-humble-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 转发。

在 Windows shell 中:

wsl --update