EDIT: I've been asked by the coach of my robotics team to take down the Monterey code until the end of this MATE Season. In about July 2012 I'll re-upload Monterey with new features!
Sorry for this confusion,
Hey openROV community,
I've been working on writing an open source topside application in Qt for the past few months, and I think it is finally ready to be released. It uses a USB joystick to drive the motors on an ROV, and it talks to the ROV over ethernet (using UDP). It has a bunch of fancy features (a PID algorithm for holding depth, vector drive support, tank drive support, etc), which you can find out about here: http://code.google.com/p/rov-suite/wiki/Monterey
It uses a UDP to communicate to the ROV, which means that it would be extremely easy to write your own bottomside application that interfaces with Monterey. However, if that is not your cup of tea, there is an already working bottomside application (CoreBuild), but it does not support all of the features of Monterey. Instead, I recommend that you use CoreBuild with LegacyController. But like I said, interfacing with Monterey via the UDP packet is extremely easy and I'd be more than happy to answer any questions regarding it.
The compiled application is Windows specific right now, but the source is available here: http://code.google.com/p/rov-suite/source/checkout and is able to be compiled on Linux and OSX.
The joystick is read using QJoystick (found here: http://code.google.com/p/joypick/), which uses SDL, which means that it is cross-platform as well.
If you have any questions regarding the application at all, please don't hesitate to ask me. If you'd like to port it to another platform or would to like help out with it, please let me know!
Have fun and happy ROVing!
Edit: I forgot to mention that if you have any input or feature suggestions, I'd love to hear them! Thanks!