ROS2与Gazebo11入门教程-动画盒子
说明:
- 介绍如何创建动画盒子
概述
本节教程将创建带有一个简单盒子的仿真世界,该盒子以10秒的频率重复循环一个动画,在动画中该盒子会在地面上四处滑动
本节教程还展示了使用Gazebo可执行文件或者用户自定义可执行文件查看仿真、访问仿真及与仿真进行交互的几种不同方式
在仿真中该盒子会广播其位姿,而且会创建一个回调函数来接收其位姿并打印出该盒子的位置和时间戳
设置
- 创建一个工作目录并进入该目录,命令为:
mkdir ~/gazebo_animatedbox_tutorial
cd ~/gazebo_animatedbox_tutorial
动画盒子代码
- 将animated_box.cc, independent_listener.cc, integrated_main.cc, CMakeLists.txt和animated_box.world文件复制到当前目录中,命令如下(在OS X操作系统中,可以用curl -OL替换掉wget):
wget http://github.com/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/animated_box.cc
wget http://github.com/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/independent_listener.cc
wget http://github.com/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/integrated_main.cc
wget http://github.com/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/CMakeLists.txt
wget http://github.com/osrf/gazebo/
- 构建该插件,命令如下:
mkdir build
cd build
cmake ../
make
- 为确保Gazebo后面可以加载该插件,请运行以下命令:
export GAZEBO_PLUGIN_PATH=`pwd`:$GAZEBO_PLUGIN_PATH
用Gazebo进行仿真
- 本示例将展示如何使用带有插件的Gazebo普通可执行文件
- 使用以下命令运行Gazebo :
cd ~/gazebo_animatedbox_tutorial
gazebo animated_box.world
- 在另一个终端中,使用“gz topic”用户接口来查看盒子的位姿:
gz topic -v /gazebo/animated_box_world/pose/info
- 您应该会看到一个显示该盒子位姿的图形界面。
用您自己的可执行文件连接仿真
请确保Gazebo没有运行。
我们会像上面那样启动Gazebo,然后运行连接到Gazebo的独立侦听器可执行文件。独立的侦听器会接收该盒子的位置和时间戳消息,并将其打印出来。
cd ~/gazebo_animatedbox_tutorial
gazebo animated_box.world & ./build/independent_listener
运行仿真并与您自己的可执行文件连接
请确保Gazebo没有运行。
示例integrated_main将会展示以下内容:
- 开始盒子仿真。
- 将侦听器作为同一个可执行文件的一部分连接到仿真中。
- 侦听器获取时间戳和位姿消息,然后将其打印出来。
用以下命令运行integrated_main:
cd ~/gazebo_animatedbox_tutorial
./build/integrated_main animated_box.world
- 要查看该仿真效果,请运行以下命令:
gzclient
源代码
Independent_listener.cc,可执行文件,它将会连接到正在运行的仿真,接收来自盒子的位姿(pose)消息话题的更新,并打印该盒子对象的位姿。
Integrated_main.cc,可执行文件,它将会创建一个仿真,接收来自盒子位姿(pose)消息话题的更新,并打印该盒子对象的位姿。
artistic_box.cc,共享库插件,用于定义仿真的动画组件,移动仿真世界中的盒子。
artistic_box.world,定义仿真物理世界空间及其中单个盒子的XML文件。
CMakeLists.txt,CMake构建脚本文件
参考:
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号