The simulator has been tested in Ubuntu Linux from 9.10 to 12.04. However, it should work on other linux-based distributions. MacOS and Windows have not been tested for now, but it should be possible to run UWSim also on these systems, since all the libraries used are also available for them.
You will need a decent PC, with a good graphics card. It should work well on recent NVidia and ATI cards with good driver support in GNU/Linux. Have a look to the list of cards that are known to be working. If you see strange visualization effects, or it just crashes before beginning, it probably means your card does not meet the requirements (if this is the case, try with the --disableShaders option). As an example, it runs fluently on a MacBook Pro 2.26 Ghz Intel Core 2 Duo, 4 GB DDR3 with an NVIDIA GeForce 9400M, running Ubuntu 11.04.
Finally, you will also need ROS. It has been tested on ROS cturtle, diamondback, electric, fuerte and groovy
The core of UWSim depends on OpenSceneGraph and osgOcean. The ROS packages have been configured to automatically download and install these dependencies for you. Build with physics support is still not fully integrated.
You will need a supported ROS distribution (e.g. cturtle, diamondback, electric, fuerte or groovy). Please follow the instructions at:
Download the underwater_simulation stack to a folder in your ROS_PACKAGE_PATH:
Configure & build
First install the UWSim dependencies with the following command:
rosdep install UWSim
This will ask for your password in order to install all the necessary packages with apt-get. After this, you can build the simulator:
This will first download and compile osgOcean. After that the UWSim package will be built.
First be sure that a roscore is already running. If not, start it:
After that, the following command should start UWSim:
rosrun UWSim UWSim
A window should appear showing a default scenario and robot. Inside the simulator, you can freely move the camera with the mouse. With the simulator running, you can check the list of ROS topics involved:
and subscribe/publish to them with rostopic and rospub, or with your custom ros control nodes. The are some example ROS interface nodes in the interface_examples folder. For example, the following command should update the vehicle position in the default scenario (2 meters along positive X axis):
rosrun UWSim setVehiclePosition /dataNavigator 2 0 0 0 0 0