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