Running Gazebo (>1.9) on different host (Mac OS X10.9) than where gazebo_ros_pkgs are installed (Ubuntu12.10)
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.
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.
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.