Home | Tutorials | Wiki | Issues
Ask Your Question

Running Gazebo (>1.9) on different host (Mac OS X10.9) than where gazebo_ros_pkgs are installed (Ubuntu12.10)

asked 2014-01-11 07:03:13 -0600

kpykc gravatar image

updated 2014-01-19 10:16:51 -0600

I want to use setup like described below:

  • Gazebo 2.1.0 installed on Mac OS X 10.9 Mavericks host;
  • ROS Groovy is installed in VirtualBox Ubuntu 12.10 guest VM.

This layout is interesting as Ubuntu platform is one that best supported by ROS, but Gazebo running in virtualised environment will have problems with 3D performance if will work at all.

Actually i already read almost all tutorials from Gazebo documentation wiki site, but as i am new to Gazebo not all info for now settled in my head. I will be thankful for proposals about what i should study to run setup described above.

Main point as i understood is to setup ROS environment in a way that it will be able to communicate with Gazebo, to publish and subscribe to topics. But gazebo_ros_pkgs is tailored for running Gazebo installed on the same host as ROS.

UPD: As i understood from gazebo_ros_pkgs code there is no actual way to do this directly, as ROS plugins should be loaded by Gazebo, so they should be compiled for Mac OS X. But still as Gazebo communicate over network theoretically some plugin can be developed that don't depend on ROS but do the job. Though, this can be unreasonable, hard and pointless.

UPD 2 (on solution): There is no easy and fast solution for this case. It was easier for me just to find another PC with 50Gb of disk space, install Ubuntu and all packages required for my current task. But according to my current knowledge on topic, the answer (proposal on writing e.g. some ROS node that doing the job of ROS Gazebo plugins seems realistic) which i chosen is actually one i was interested in.

edit retag flag offensive close merge delete


I'm not so sure that such a plugin would be "unreasonable, hard and pointless" for many applications it may be more feasible than the ros_package since all Gazebo uses aren't ROS users.

SL Remy gravatar imageSL Remy ( 2014-01-16 08:25:14 -0600 )edit

I wrote "unreasonable, hard and pointless", because one actually need to convert data streams between Gazebo and ROS, which is actually the work of the Gazebo ROS plugins, so one need to write a replacement for them which does not depend on ROS code, so reimplement all ROS code in plugins.

kpykc gravatar imagekpykc ( 2014-01-19 10:04:59 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2014-01-17 11:20:42 -0600

Jose Luis Rivero gravatar image

Some random ideas:

You want to connect two systems with different levels of communication. Gazebo uses gztopics and ROS uses ROS topics. So I believe that you have two logical ways of trying to do that and one exotic option. The two ways:

  • Use ros-gazebo-pkgs in your Mac machine and convert gztopics into ROS topics (the option you have described).
  • Connect from the virtual machine to the gztopics used by the Mac system and try to map them into ROS in the virtual machine. I've never done that, but sound feasible

Another exotic option could be create your own bridge on Mac to connect gztopics to the ROS topic system, maybe the ideas from embedded ROS could be used as a starting point.

Saying all this, probably the easier approach is the one said by Steven before, try to compile all the ROS support needed in the Mac.

edit flag offensive delete link more


Thanks, for the 2nd idea, seems it's really have sense. 1st one is not really an option, because it's actually equivalent of building ROS on Mac host.

kpykc gravatar imagekpykc ( 2014-01-19 10:06:34 -0600 )edit

I also have no deep understanding about interaction of gazebo client and server, so may be it is possible to run server on VM (if plugins are loaded by the server) and client on host. Or may be it's possible to run headless simulation on VM and somehow sync it with simulation on host. Again, this requires a lot more work, than setting up Ubuntu installation on other PC.

kpykc gravatar imagekpykc ( 2014-01-19 10:26:55 -0600 )edit

answered 2014-01-14 17:51:46 -0600

scpeters gravatar image

I don't have anything enlightening to say about interfacing with a virtual machine, but as an alternative, you may consider building ROS directly on Mac OSX using homebrew or MacPorts. Those are experimental build instructions, and 10.9 is likely to be even more difficult than 10.8, but it's another option to consider.

edit flag offensive delete link more


Thanks for answer. For me now building ROS is not an option, due to: 1). low capacity of my macbook pro hard drive (128Gb/~5Gb free); 2). i have no time to fight with build process right now, rather i need to do some explicit work.

kpykc gravatar imagekpykc ( 2014-01-19 10:07:14 -0600 )edit

But, i didn't tried to check actual dependencies of gazebo plugins, so it is may be the case that they are actually only have dependencies only on some very base ROS packages and due to that it can be easy to build only required code and not the one that has known problems or bugs.

kpykc gravatar imagekpykc ( 2014-01-19 10:19:52 -0600 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2014-01-11 07:03:13 -0600

Seen: 1,365 times

Last updated: Jan 19 '14