安装(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所在位置:
如果设置了``ROS2_WEBOTS_HOME``环境变量,ROS 2将使用此文件夹中的Webots,而不考虑其版本。
如果设置了``WEBOTS_HOME``环境变量,ROS 2将使用该文件夹中的Webots,而不管其版本如何。
如果前述方法均未设置或安装,ROS 2将在兼容版本的默认安装路径``C:Program FilesWebots``中查找Webots。
如果找不到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
创建一个带有``src``目录的ROS 2工作空间。
mkdir -p ~/ros2_ws/src
源化ROS 2环境。
source /opt/ros/humble/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 humble
使用``colcon``构建软件包。
colcon build
在此工作空间中进行源代码配置。
source install/local_setup.bash
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
对于旧版本的 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