安装 (Windows)
目标: 安装“webots_ros2”包并在 Windows 上运行模拟示例。
教程级别: 高级
时间: 10 分钟
背景
webots_ros2
软件包提供了 ROS 2 和 Webots 之间的接口。
它包含几个子包,包括 webots_ros2_driver
,允许 ROS 节点与 Webots 通信。
其他子包主要是使用接口展示多种可能实现的示例。
在本教程中,您将安装该软件包并学习如何运行其中一个示例。
先决条件
建议了解初学者 教程 中涵盖的基本 ROS 原理。 尤其是 创建工作区 和 创建包 都是很有用的先决条件。
Webots 是使用 webots_ros2
包的先决条件。
或者,您也可以让 webots_ros2
自动下载 Webots。
当您启动包的示例并且未找到 Webots 安装时,会出现此选项。
多个 Webots 安装
如果您安装了多个 Webots,ROS 2 将在以下位置(按此顺序)查找 Webots:
如果设置了
ROS2_WEBOTS_HOME
环境变量,ROS 2 将使用此文件夹中的 Webots,无论其版本如何。如果设置了
WEBOTS_HOME
环境变量,ROS 2 将使用此文件夹中的 Webots,无论其版本如何。如果未设置/安装上述任何一点,ROS 2 将在默认安装路径中查找兼容版本的 Webots:
C:\Program Files\Webots
。如果找不到 Webots,
webots_ros2
将显示一个窗口,并提供最新兼容版本的 Webots 自动安装。
任务
1 安装 WSL2
在 Windows 上,WSL(适用于 Linux 的 Windows 子系统)与原生 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(DEB软件包) 操作。
3 安装 webots_ros2
然后,您可以从官方发布的软件包安装 webots_ros2
,也可以从 Github 的最新源安装它。
以下命令必须在 WSL 环境中运行。
在终端中运行以下命令。
sudo apt-get install ros-rolling-webots-ros2
创建一个 ROS 2 工作区及其“src”目录。
mkdir -p ~/ros2_ws/src
获取 ROS 2 环境。
source /opt/ros/rolling/setup.bash
从 Github 检索源。
cd ~/ros2_ws
git clone --recurse-submodules https://github.com/cyberbotics/webots_ros2.git src/webots_ros2
安装软件包依赖项。
sudo apt install python3-pip python3-rosdep python3-colcon-common-extensions
sudo rosdep init && rosdep update
rosdep install --from-paths src --ignore-src --rosdistro rolling
使用“colcon”构建包。
colcon build
提供该工作区。
source install/local_setup.bash
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 启动命令启动演示包(例如“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 转发。
在 Windows shell 中:
wsl --update
对于旧版本的 WSL,可以遵循以下步骤:
安装 VcXsrv。
启动 VcXsrv。您可以将大多数参数保留为默认设置,但
Extra settings
页面除外,您必须在其中设置Clipboard
、Primary Selection
和Disable access control
并取消设置Native opengl
。您可以保存配置以供将来启动。
单击
Finish
,您将看到 X11 服务器正在图标托盘中运行。在您的 WSL 环境中,导出
DISPLAY
变量。export DISPLAY=$(ip route list default | awk '{print }'):0
您可以将其添加到您的“ .bashrc”,以便为未来的每个 WSL 环境进行设置。
echo "export DISPLAY=$(ip route list default | awk '{print }'):0" >> ~/.bashrc