< >
Home » ROS2与Gazebo11入门教程 » ROS2与Gazebo11入门教程-安装gazebo_ros_pkgs(ROS 2)

ROS2与Gazebo11入门教程-安装gazebo_ros_pkgs(ROS 2)

说明:

  • 介绍安装gazebo_ros_pkgs(ROS 2)

简介

  • 用于与Gazebo交互的一组ROS 2软件包是包含在一个名为gazebo_ros_pkgs的元软件包中。

  • 在继续本节教程之前,请参阅前一节教程“ROS 2概述”以获取相关背景信息。

  • 这些软件包支持ROS 2 Crystal和更高版本以及Gazebo 9和更高版本,而且可以从debian软件包安装或者从源代码安装。

前提条件

安装ROS 2

  • 可以通过二进制安装包安装ROS2,或者从源代码安装ROS 2,具体安装方法请参阅ROS 2安装页面。

  • 当前ROS 2的稳定发行版是Foxy。

  • 提示:不要忘记按照ROS安装页面上的说明来对setup.bash脚本进行source。确切的命令会根据安装方法不同而有所不同。

安装Gazebo

  • 可以从源代码安装Gazebo,或者从预编译的软件包安装Gazebo。具体安装方法请参阅“安装Gazebo”教程。

  • 应该安装Gazebo 9或更高版本。如果从源代码安装,请确保构建正确的分支,例如用于Gazebo 版本11的gazebo11。

  • 如果难以找到插件和其他资源,则可能需要对Gazebo的安装文件进行source。例如:source /usr/share/gazebo/setup.sh。

安装gazebo_ros_pkgs

  • 按照以下任何一个安装说明,从debian软件包安装gazebo_ros_pkgs,或者从源代码安装该软件包。

  • 从debian软件包安装(在Ubuntu操作系统上)

  • 假设您已经安装了一些ROS 2 Foxy debian软件包,请用下面的命令安装gazebo_ros_pkgs:

sudo apt install ros-foxy-gazebo-ros-pkgs

从源代码安装(在Ubuntu操作系统上)

  • 如果您是一位活跃的开发人员,致力于为代码库做贡献,那么建议您从源代码安装,因为这样会拥有对工作流的更多访问和控制权。

  • 这些从源代码安装的说明要求使用colcon构建工具,而colcon是ROS 2中使用的标准构建工具。

  • 需要根据您所使用的ROS 2发行版选择相应的gazebo_ros_pkgs分支。目前支持的分支有:

    • dashing分支:适用于ROS 2 Dashing发行版的debians安装包,或者Dashing的源代码安装存储库ros2.repos。

    • eloquent分支:适用于ROS 2 Eloquent发行版的debians安装包,或者Eloquent的源代码安装存储库ros2.repos。

    • ros2分支:指向下一个即将发行的ROS 2发行版,当前为Foxy。适用于主分支的源代码安装存储库ros2.repos。

  • 以下安装假定使用的是gazebo_ros_pkgs的ros2分支进行安装。

  • 确保在您的Ubuntu系统中安装了git工具:

sudo apt install git
  • 为colcon工作空间创建一个目录并进入到该目录中,命令为:
mkdir -p ~/ws/src

cd ~/ws/
  • 复制这个文件,获取所需的gazebo_ros_pkgs和其他软件包:
wget https://raw.githubusercontent.com/ros-simulation/gazebo_ros_pkgs/ros2/gazebo_ros_pkgs.repos
  • 注:yaml文件中的version标签表示在为特定存储库检出的具体分支,例如version:ros2会检出ros2分支。

  • 将各个软件包放入到src目录中:

vcs import src < gazebo_ros_pkgs.repos
  • 切换到与您的ROS发行版匹配的分支:
vcs custom --args checkout foxy
  • 安装所有依赖包:
cd ~/ws

rosdep install --from-paths src --ignore-src -r -y
  • 然后构建所有软件包:
colcon build --symlink-install
  • 构建之前,请确保正确地对ROS 2环境进行了source。

  • 如果在构建时遇到任何问题,请务必在answer.gazebosim.org网站上寻求帮助。

  • 请确保为打开的每个新终端都对此工作空间的安装设置脚本进行source,命令为:

source ~/ws/install/setup.bash
  • 可以通过仅运行echo "source ~/ws/install/setup.bash" >> ~/.bashrc命令一次,就可以为每个打开的新终端自动地进行source

对Gazebo和ROS 2的集成进行测试

  • 假设已经正确设置和构建好了ROS 2和Gazebo环境,现在就应该可以加载包含ROS 2插件的Gazebo仿真世界,并且可以在Gazebo运行时插入具有ROS 2插件的模型。

  • Gazebo ROS软件包提供了多个演示仿真世界,以使您可以快速开始使用这些插件。

  • 演示仿真世界可以在这里找到,并且默认情况下它们会被安装在/opt/ros/foxy/share/gazebo_plugins/worlds/目录下。

  • 每个仿真世界文件的开头都有一些示例命令说明,可以运行这些示例命令来测试其功能,请务必检查一下!

  • 现在来尝试加载其中一个演示仿真世界!其步骤如下:

  • 打开一个新的终端

  • 按照安装ROS 2时的说明对ROS 2安装脚本进行source。

  • 请确保已安装了一些核心工具:

sudo apt install ros-foxy-ros-core ros-foxy-geometry2
  • 如果是从源代码安装gazebo_ros_pkgs的,则对其工作空间进行source,命令如下:
. ~/ws/install/setup.bash
  • 用Gazebo加载差分驱动仿真世界,命令为:
gazebo --verbose /opt/ros/foxy/share/gazebo_plugins/worlds/gazebo_ros_diff_drive_demo.world
  • 这样Gazebo GUI应该就会显现出来,并且在其场景中有一个简单的汽车,如下图所示:

请输入图片描述

  • 在一个新的终端(这是第二个终端)中,运行以下命令以查看该仿真世界文件的内容:
gedit /opt/ros/foxy/share/gazebo_plugins/worlds/gazebo_ros_diff_drive_demo.world
  • 看见顶部的代码块有一些示例命令了吗?现在来打开第三个终端,再次如上所述,对ROS 2和gazebo_ros_pkgs的工作空间进行source。

  • 然后运行其中一个示例命令,例如:

ros2 topic pub /demo/cmd_demo geometry_msgs/Twist '{linear: {x: 1.0}}' -1
  • 这样就会看到该汽车正在向前移动,如下图所示:

请输入图片描述

  • 尝试运行该仿真世界文件中列出的其他示例命令,并尝试修改这些示例命令中的值以了解其工作原理。还可以尝试其他演示仿真世界!

  • 在上面运行的这个示例命令中,因为在yaml文件格式的消息中只指定了线速度linear值(x或y轴方向上),这样汽车就会沿x或y轴直线行驶;如果在消息中只指定了角速度angular(一般是z轴),则汽车会原地打转;如果在消息中同时指定了线速度和角速度,则汽车会以某个半径(与线速度和角速度有关)从原点出发绕一个圆圈行驶

参考:

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与gazebo11入门教程