Gazebo | Ignition | Community
Ask Your Question

ROS-Gazebo-Stage compatibility

asked 2013-06-20 07:43:32 -0600

AGasi gravatar image


I am very beginner user of ROS-Gazebo-Stage. I would like to know if both Gazebo and Stage are ROS compatible? And if yes (I think it is 'yes') could I use Python for all these products? It is important because Python is much easier than C++.

Second question is, could I write sth in ROS and then without great changes try it on Stage or Gazebo or use it in real robot? How difficult is to choose and to modify ROS program to use in these options?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2013-06-20 10:48:26 -0600

nkoenig gravatar image

Gazebo is ROS compatible:

I haven't used Stage is a long time, so I can't speak about its current status within ROS. Here is the ROS Stage page:

The goal of Gazebo to to all easy switching between simulation and real robot. This is very easy with Gazebo and ROS.

edit flag offensive delete link more


Thank you for your quick answer. If you could tell me also something about the language of Gazebo. I think you are the best person I could ask. What programming languages supports Gazebo? Is there also Python?

AGasi gravatar imageAGasi ( 2013-06-20 12:47:19 -0600 )edit

AFAIK, Gazebo is C++ only. My strategy for using Python with Gazebo is this: write a Gazebo plugin that listens to a ROS topic. Then you can write a node to publish to that ROS topic in whatever language you choose (including Python).

Ben B gravatar imageBen B ( 2013-06-20 19:29:23 -0600 )edit

Stage works reasonably well with ROS, but is not very actively maintained. The wiki page Nate mentions is slightly out of date: the latest ROS version of stage is 4.0.x, not 3.2.1.

joq gravatar imagejoq ( 2013-06-20 21:18:01 -0600 )edit

Stage has moved over to

SL Remy gravatar imageSL Remy ( 2013-06-23 20:34:52 -0600 )edit

Python interfaces to Gazebo will come eventually. Currently everything is C++.

nkoenig gravatar imagenkoenig ( 2013-06-27 18:15:07 -0600 )edit

answered 2013-06-24 07:35:34 -0600

joq gravatar image

I don't have the karma to upvote Nate's answer, but I agree with it.

I have used both Stage and Gazebo with ROS and real robots, both successfully.

Currently, the ROS/Gazebo interface is more actively maintained than ROS/Stage. Knowing nothing specific about your system and its requirements, I would recommend Gazebo. But, there are valid reasons to use Stage, either instead of or in addition to Gazebo.

Generally, I use different top-level roslaunch scripts for running on Stage, Gazebo or the real robot. Best practice is to create a hierarchy of roslaunch scripts. Most components of your system should run the same in either case. Some specific low-level components like device drivers and the robot interface itself, will work differently or not be used at all when running in simulation.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools


Asked: 2013-06-20 07:43:32 -0600

Seen: 875 times

Last updated: Jun 24 '13