警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
安装(视窗)
目标 安装 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(Windows Subsystem for Linux)可以改善 ROS 2 的用户体验,因为它是在 Linux 平台上运行的。将 WSL 安装到与你的 ROS 发行版兼容的 Ubuntu 版本,然后按照以下步骤升级到 WSL2 微软官方教程.
2 在 WSL 中安装 ROS 2
在 Ubuntu WSL 中安装 ROS 2,步骤如下 乌班图(Debian).
3 安装 webots_ros2
然后,您可以安装 webots_ros2
从官方发布的软件包中安装,或从以下网站的最新源代码中安装 Github.
必须在 WSL 环境中运行以下命令。
在终端中运行以下命令
sudo apt-get install ros-foxy-webots-ros2
创建一个 ROS 2 工作区,其 来源
目录。
mkdir -p ~/ros2_ws/src
ROS 2 环境的源代码。
source /opt/ros/foxy/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 foxy
使用 胶管
.
Colcon build
本工作区的来源。
source install/local_setup.bash
4 启动 webots_ros2_universal_robot
范例
WSL 尚不支持硬件加速。因此,Webots 应在 Windows 上启动,而 ROS 部分则在 WSL 内运行。为此,必须在 WSL 环境中运行以下命令。
如果还没有创建 ROS 2 环境,请先创建。
source /opt/ros/foxy/setup.bash
设置 WEBOTS_HOME
环境变量允许您启动特定的 Webots 安装(例如 C:\Program Files\Webots
).在本地 Windows 中,使用挂载点"/mnt "来指代路径。
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-foxy-slam-toolbox
ros2 launch webots_ros2_tiago robot_launch.py rviz:=true slam:=true
Tiago 机器人可通过以下方式进行控制:
ros2 运行 teleop_twist_keyboard teleop_twist_keyboard
对于旧版本的 WSL,RViz2 可能无法直接使用,因为没有显示屏。要使用 RViz,可以升级 WSL 或启用 X11 转发。
在 Windows 外壳中:
wsl --update
对于旧版本的 WSL,可按照以下步骤操作:
安装 VcXsrv.
启动 VcXsrv。大部分参数可以保持默认,除了
额外 设置
页面,您必须在该页面设置剪贴板
,小学 选择
和禁用 访问 控制权
并取消设置本地 opengl
.您可以保存配置,以便将来启动。
点击
完成
在图标托盘中运行 X11 服务器。在 WSL 环境中,导出
显示屏
变量。export DISPLAY=$(ip route list default | awk '{print }'):0
您可以将其添加到您的
.bashrc
,以便为今后的每个 WSL 环境设置。echo "export DISPLAY=$(ip route list default | awk '{print }'):0" >> ~/.bashrc