A labmate (William Woodall) introduced me to an awesome new robotics simulator that is currently being developed called MORSE. It runs on Blender and after trying USARSim and Microsoft Robotics Developer Studio, it is much easier to use and extend. I’ve developed the beginnings of a middleware component for it to allow it to communicate with apps using the MOOS framework. Currently it is capable of reading velocity and yaw rate commands from the database and using them to drive a vehicle and posting the output of any sensor to the database using a generic serialization method. I’m currently working on adding the ability to specify custom database variable names for the MORSE sensor outputs.
Middlewares for MORSE are written in Python. The pymoos Python MOOS interface code developed by Ian Baldwin was used to connect to the MOOS database. MORSE and Blender require Python 3 and pymoos was written for Python 2.7 so it had to be modified slightly. The modified code is available here: pymoos_py32.tar. The pymoos code makes use of the Boost Python library which in the Ubuntu repository versions is compiled for Python 2.7. The Boost Python library compiled with the ‘–with-python-version=3.2′ option is needed to use pymoos with MORSE.
The MOOS middleware currently consists of two components the ‘moos_mw.py’ Python script and a ‘moos_empty.blend’ blender file. An example ‘tutorial-1-solved_moos.blend’ as well as the two middleware components and the modified makefiles are available here: morse_with_moos.tar.gz.
I’ve created a fork of the morse git repository that contains my MOOS additions. It is available at: git://github.com/davidhodo/morse.git It is highly recommended to use this version rather than the above linked file. The current git version has the generic parser listed above as well as specific parsers for the true simulation pose, lidar, gps, and imu sensors using the variable naming conventions used by our lab. The variable names used to post the database could, however, be easily changed.