安装(Ubuntu) [3716]
目标: 在Ubuntu上安装``webots_ros2``软件包并运行仿真示例。 [3717]
教程级别: 高级 [16408]
时间: 10分钟 [16421]
内容 [16422]
背景 [16410]
webots_ros2``软件包提供了ROS 2和Webots之间的接口。它包括多个子软件包,包括``webots_ros2_driver
,它允许您启动Webots并与其通信。此接口在以下大多数教程中都会使用,因此在此之前需要先安装它。其他子软件包主要是使用接口展示多个可能的实现示例。在本教程中,您将安装该软件包并学习如何运行其中一个示例。 [3718]
先决条件 [16411]
建议您先了解入门级ROS原理,详情请参阅初学者 教程 [3059]。特别是 创建一个工作空间 [4428] 和 创建软件包 [4496] 是有用的先决条件。 [3665]
为了使用``webots_ros2``接口,必须安装Webots软件。您可以按照`安装过程 <https://cyberbotics.com/doc/guide/installation-procedure>`_ 或者从源代码构建它 <https://github.com/cyberbotics/webots/wiki/Linux-installation/>`_。 [3719]
或者,您还可以让``webots_ros2``自动下载并安装Webots。当您启动该软件包的示例并且没有找到Webots安装时,将会出现此选项。 [3720]
Webots的多个安装 [3721]
如果您在计算机上安装了不同版本的Webots,``webots_ros2``将按照以下顺序查找Webots: [3722]
如果设置了``ROS2_WEBOTS_HOME``环境变量,ROS 2将使用此文件夹中的Webots,而不考虑其版本。 [3723]
如果设置了``WEBOTS_HOME``环境变量,ROS 2将使用该文件夹中的Webots,而不管其版本如何。 [3724]
如果没有设置这些变量中的任何一个,
webots_ros2``将在兼容版本的默认安装路径中查找Webots:
/usr/local/webots``和``/snap/webots/current/usr/share/webots``。 [3725]如果找不到Webots,``webots_ros2``将显示一个窗口,提供自动安装最新兼容版本的Webots。 [3726]
任务 [16427]
1 安装``webots_ros2`` [3727]
您可以选择安装官方发布的软件包,或者从最新的更新源中安装,源地址为 Github。 [3728]
在终端中运行以下命令。 [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
2. 启动 webots_ros2_universal_robot
示例 [3730]
以下说明介绍了如何启动提供的示例。 [3731]
如果尚未完成,请先启动ROS 2环境。 [3706]
source /opt/ros/humble/setup.bash
设置``WEBOTS_HOME``环境变量允许您启动特定的Webots安装。 [3732]
export WEBOTS_HOME=/usr/local/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