(!) 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 gazebo

Keywords: 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.

alt text

.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.

   1 name: turtlebot
   2 launch: concert_service_gazebo/turtlebot.launch
   3 flip_rule:
   4   pub:
   5     - odom
   6     - camera/.*
   7     - scan
   8     - mobile_base/.*
   9   sub:
  10     - cmd_vel_mux/.*

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:

What's Next?

Wiki: concert_service_gazebo/Tutorials/indigo/Overview (last edited 2015-06-09 06:27:02 by jihoonl)