Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Concert Service Gazebo Overview
Description: Describes design flow of concert service gazeboKeywords: rocon concert app_manager simulation multirobot
Tutorial Level: BEGINNER
Next Tutorial: How to add a new robot type
Overview
Concert Service Gazebo helps to utilise simulated robots in concert with gazebo simulation. This tutorial guides how to add a new type of gazebo robot in concert. This assumes that you understand concert framework and rappable robot system. Please check out rocon_concert and rocon_app_platform if you have not completed.
Related Components
.concert_gazebo
- concert_gazebo file describes a gazebo-spawnable robot type. robot's type, gazebo plugin launcher, and flip_rule are included. For example. the following example is turtlebot gazebo spawner.
More examples,
Service Parameter
Concert Service Gazebo takes the following parameters to configure gazebo instance. It should provide world_file to load and robots to spawn. The following example is default gazebo_robot_world parameter setting. It simulates one kobuki named guimul and one turtlebot named gamza in playground world.
1 robots:
2 - name: guimul
3 type: kobuki
4 robot_rapp_whitelist: [rocon_apps, kobuki_rapps]
5 location: [0.0, 0.0, 0.0]
6 - name: gamza
7 type: turtlebot
8 robot_rapp_whitelist: [rocon_apps, turtlebot_rapps]
9 location: [0.0, -2.0, 3.14159265359]
10 world_file: concert_service_gazebo/playground.world
Rapp launcher
Rapp manager and Rapp are designed to use for both simulation and real robot. The spawned rapp manager by gazebo service is configured to add simulation=true roslaunch arg. So a rapp developer can control rapp behavior if robot is simulation.
1 <!-- Example Rapp launcher format -->
2 <launch>
3 <arg name="application_namespace"/>
4 <arg name="simulation" default="false"/> <!-- gazebo service configure this as true -->
5 <group unless="$(arg simulation)"> <!-- if it is real robot -->
6 <!-- Start nodes for real robot-->
7 </group>
8 <group if="$(arg simulation)">
9 <!-- Start nodes for simulated robot -->
10 </group>
11 </launch>
Also check the turtlebot rapp examples: