Gazebo Answers logo

Hi everyone!

Because I am planning to write my master thesis using Gazebo and ROS I have some basic questions concerning various topics.

The objective:
My goal is the simulation of a 5dof robot arm, its mobile plattform and some sensors (laser scanner, kinect camera etc.). Based on the existing ROS-modules of our real robot the plattform and the arm should be able to move. The simulation should be used as a hardware independent development environment for our real robot.

What do I have so far:
I got an sdf description file for the arm and its plattform. So far it looks fine. I only set the basic parameter (no physical parameters, no weights, no joint engines etc.). If I start the engine the robot arm falls to the ground observing the set collision (self collide) ranges, which I think is the expected behavior.

My Questions:
(I did some research before and maybe I overlooked something, but I just want to be sure about these things before I start the real work or maybe it becomes apparent that I made some wrong assumptions.)

  1. Do I need to provide all the physical / dynamic parameter of our robot?
    We don't need a completely perfect physical behavior in the first instance. The correct movement of the plattform and the arm would be sufficient. And I fear that we dont have all the parameters needed in our robot documentation. Maybe it is possible to limit the dynamic to a minimum.

  2. What is the best strategy to start the development and control of all related control- / bahavior- / ros-parts (to control the robot)?
    My plan was to work with a few sdf-files and then use a "main" gazebo-plugin for the rest. I know that I somehow have to use diffent gazebo-plugins for sensors and ros-components etc.. Everything needed would be called from that one plugin. Or what is the best way respectively your recommandation?

  3. How to best connect the existing ros-components / ros-logic of our real robot to the gazebo-simulation?
    Can I call them just through the "main" gazebo-plugin like in the question before?

  4. What is the best way to control the joints?
    Do I have to specify a pid-controller for every joint (problem with missing infos) or would it be enough / the better way to control the joints through the physics::JointController Classes / or similar?

  5. What about that realtime-controller everybody is talking?
    Do I need such a controller to control my robot in a reasonable way? Wouldn't the control just work over input for the plugins as there are ros-components for movement and grasping which only wait for e.g. target-coordinates.

Well I think thats it for the time being.

Thank you very much for your answers once before.

Kind regards


Originally posted by Christoph on Gazebo Answers with karma: 141 on 2013-04-07

Post score: 0

Original comments

Comment by SL Remy on 2013-04-07:
What package is used to control the (real) arm?

Comment by Christoph on 2013-04-08:
Hardware specific packages (metralabs_ros) as the interface to the real hardware and arm_navigation (ros stack) for calculating the arm movement itself.


1 Answer 1


Gazebo Answers logo

I'll try to answer each of your questions in order.

  1. No, you don't need to specify all the physical properties. Gazebo will use default values in most situations.

  2. A good strategy is to look at some working code. I would recommend the DRCSim package: http://bitbucket.org/osrf/drcsim

  3. You can use ROS within a Gazebo plugin.

  4. Gazebo has a built-in PID class that you can use to control joints. You can also use more sophisticated ROS controllers.

  5. A real-time simulation is not mandatory to control a robot. Slower than real-time simulation just means that things more slow, your controller will be fine as long as you use simulation time.

Originally posted by nkoenig with karma: 7676 on 2013-04-10

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by skhan on 2013-04-11:

Thanks for asking so brief question. I got the same problem.

Comment by skhan on 2013-04-11:

How we can get that drcsim package? I installed drcsim using instructions and its running but how it can help us?

Comment by nkoenig on 2013-04-11:
Look at the source code. There is a gazebo plugin called AtlasPlugin.h that demonstrates how to use ROS inside a Gazebo plugin.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.