Robotics StackExchange | Archived questions

ROS-Gazebo-Stage compatibility

Hello,

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?

Asked by AGasi on 2013-06-20 07:43:32 UTC

Comments

Answers

Gazebo is ROS compatible: http://gazebosim.org/wiki/Tutorials#ROS_Integration

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: http://www.ros.org/wiki/stage

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

Asked by nkoenig on 2013-06-20 10:48:26 UTC

Comments

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?

Asked by AGasi on 2013-06-20 12:47:19 UTC

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

Asked by Ben B on 2013-06-20 19:29:23 UTC

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.

Asked by joq on 2013-06-20 21:18:01 UTC

Stage has moved over to https://github.com/rtv/Stage

Asked by SL Remy on 2013-06-23 20:34:52 UTC

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

Asked by nkoenig on 2013-06-27 18:15:07 UTC

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.

Asked by joq on 2013-06-24 07:35:34 UTC

Comments