安装 (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:
如果设置了“ROS2_WEBOTS_HOME”环境变量,ROS 2 将使用此文件夹中的 Webots,无论其版本如何。
如果设置了“WEBOTS_HOME”环境变量,ROS 2 将使用此文件夹中的 Webots,无论其版本如何。
如果上述任何一点均未设置/安装,ROS 2 将在默认安装路径中查找兼容版本的 Webots:“C:Program FilesWebots”。
如果找不到 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
Create a ROS 2 workspace with its src
directory.
mkdir -p ~/ros2_ws/src
Source the ROS 2 environment.
source /opt/ros/rolling/setup.bash
Retrieve the sources from Github.
cd ~/ros2_ws
git clone --recurse-submodules https://github.com/cyberbotics/webots_ros2.git src/webots_ros2
Install the package dependencies.
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
Build the package using colcon
.
colcon build
Source this workspace.
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 启动命令启动演示包 (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
For older versions of WSL, the following steps can be followed:
安装 VcXsrv。
启动 VcXsrv。您可以将大多数参数保留为默认设置,但
额外设置
页面除外,您必须在该页面中设置剪贴板
、主要选择
和禁用访问控制
并取消设置本机 opengl
。您可以保存配置以供将来启动。
单击
完成
,您将看到 X11 服务器正在图标托盘中运行。在您的 WSL 环境中,导出
DISPLAY
变量。export DISPLAY=$(ip route list default | awk '{print }'):0
You can add this to your
.bashrc
, so that it is set for every future WSL environment.echo "export DISPLAY=$(ip route list default | awk '{print }'):0" >> ~/.bashrc