Thursday, May 3, 2012

Thoughts About the Shift in Monterey's Design

When I first set out to write a FOSS ROV controller, I wanted to make it as customizable as possible.  I wanted the user to be able to change pretty much everything under the sun without ever having to open up an IDE and recompile the code.  I did that.  I did write that code, and more importantly, I used it myself.  After spending some time with that (and directly using it as a code base for my code that I wrote for my robotics team this year), I learned a few things about Monterey.

For instance, it was too customizable.  There were too many options!  The customization code was messy (my fault) and cumbersome.  It just wasn't worth the gain when it was just as easy to change one line on the bottomside Arduino code to get the same net effect.  Not only that, but it scared off new users.  Between its messy UI and plethora of options and tabs and QLineEdits, new users were put off.

Because of my lessons learned on Monterey 1.0 and Catalina (my team's topside code), I have decided to make Monterey 2.0 less customizable, but easier to use (don't worry!  The application will still be useful and feature-filled!),  I think that this will make it less daunting for new users.  Also, by cleaning up my source code (after learning more about composition), I have made it easier for people to edit the source themselves if all else fails.

My goal is to provide, for free, the best available ROV controller for inspection-class (micro, mini and general class) ROVs* and I will do what it takes to accomplish that goal.  In doing so, I hope that hobbyists not interested or knowledgable in programming, but who are quite gifted when it comes to mechanical and electrical design, will be able to build more advanced and creative ROVs.

Thanks for stopping by!

Chris K

*I will still keep this hobbyist oriented, though.

P.S.  While working on my QML tic tac toe game, I came up with the idea of rewriting Monterey's GUI in QML to help give it a uniform look and feel across all OSes.  I'm still thinking about doing that, but that would be a later branch.  I want to hit my June release date, so I'm past the point of major designs shifts like that for the 2.0 release.  I also have a few other QML applications to make before then.

No comments:

Post a Comment