安装(Windows) [3733]
**目标:**在Windows上安装``webots_ros2``包并运行仿真示例。 [3734]
教程级别: 高级 [16408]
时间: 10分钟 [16421]
内容 [16422]
背景 [16410]
webots_ros2``包提供了ROS 2和Webots之间的接口。它包括多个子包,其中包括``webots_ros2_driver
,它允许ROS节点与Webots进行通信。其他子包主要是示例,展示了使用该接口的多种可能实现。在本教程中,您将安装该包并学习如何运行其中一个示例。 [3735]
先决条件 [16411]
建议您先了解入门级ROS原理,详情请参阅初学者 教程 [3059]。特别是 创建一个工作空间 [4428] 和 创建软件包 [4496] 是有用的先决条件。 [3665]
使用``webots_ros2``包需要先安装Webots。您可以按照`安装过程 <https://cyberbotics.com/doc/guide/installation-procedure>`_ 进行安装,或者从源代码构建(从源代码构建)。 [3736]
另外,您也可以让``webots_ros2``自动下载Webots。当您启动包中的示例并且没有找到Webots安装时,将会出现此选项。 [3737]
任务 [16427]
1 安装WSL2 [3741]
在Windows上,使用WSL(Windows子系统Linux)与本机Windows安装相比,可以提升ROS 2的用户体验,因为它在Linux平台上运行。使用与您的ROS发行版兼容的Ubuntu版本安装WSL,并按照`官方Microsoft教程 <https://learn.microsoft.com/en-us/windows/wsl/install>`_ 升级到WSL2。 [3742]
2 在WSL中安装ROS 2 [3743]
在Ubuntu WSL中安装ROS 2,按照 Ubuntu (Debian 包) [17741] 进行操作。 [3744]
3 安装``webots_ros2`` [3690]
您可以选择从官方发布的软件包中安装 webots_ros2
,或者从 Github 的最新源代码中安装。 [3745]
以下命令必须在WSL环境中运行。 [3746]
在终端中运行以下命令。 [3729]
sudo apt-get install ros-humble-webots-ros2
创建一个带有``src``目录的ROS 2工作空间。 [3696]
mkdir -p ~/ros2_ws/src
源化ROS 2环境。 [3697]
source /opt/ros/humble/setup.bash
从Github获取源代码。 [3698]
cd ~/ros2_ws
git clone --recurse-submodules https://github.com/cyberbotics/webots_ros2.git src/webots_ros2
安装软件包依赖项。 [3699]
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``构建软件包。 [3700]
colcon build
在此工作空间中进行源代码配置。 [3701]
source install/local_setup.bash
4 启动``webots_ros2_universal_robot``示例。 [3702]
WSL暂时不支持硬件加速。因此,在WSL内部运行ROS部分时,Webots应该在Windows上启动。为此,必须在WSL环境中运行以下命令。 [3747]
如果尚未完成,请先启动ROS 2环境。 [3706]
source /opt/ros/humble/setup.bash
设置``WEBOTS_HOME``环境变量可以让您启动特定的Webots安装(例如``C:Program FilesWebots``)。使用挂载点"/mnt"来引用本机Windows上的路径。 [3748]
export WEBOTS_HOME=/mnt/c/Program\ Files/Webots
如果是从源代码安装的,请先启动ROS 2工作区。 [3707]
cd ~/ros2_ws
source install/local_setup.bash
使用ROS 2启动命令来启动演示包(例如``webots_ros2_universal_robot``)。 [3709]
ros2 launch webots_ros2_universal_robot multirobot_launch.py
5 RViz故障排除 [3749]
在最新版本的WSL2上,RViz应该可以直接使用。 [3750]
您可以通过运行任何使用RViz的示例来检查它是否正常工作,例如: [3751]
sudo apt install ros-humble-slam-toolbox
ros2 launch webots_ros2_tiago robot_launch.py rviz:=true slam:=true
使用 Tiago 机器人可以进行以下控制操作: [3752]
ros2 run teleop_twist_keyboard teleop_twist_keyboard
在较旧的 WSL 版本中,RViz2 可能无法直接工作,因为没有可用的显示。要使用 RViz,您可以升级 WSL 或启用 X11 转发。 [3753]
在 Windows shell 中: [3755]
wsl --update
对于旧版本的 WSL,可以按照以下步骤进行: [3757]
启动 VcXsrv。你可以保留大多数参数的默认值,只需在``Extra settings``页面中设置``Clipboard``、
Primary Selection``和``Disable access control
,并取消设置``Native opengl``。 [3759]你可以保存配置以供将来使用。 [3760]
点击
Finish
,你将看到 X11 服务器在图标托盘中运行。 [3761]在你的 WSL 环境中,导出
DISPLAY
变量。 [3762]export DISPLAY=$(ip route list default | awk '{print }'):0
你可以将这个添加到你的
.bashrc
文件中,这样它就会被设置在每个将来的 WSL 环境中。 [3763]echo "export DISPLAY=$(ip route list default | awk '{print }'):0" >> ~/.bashrc