So far, I have found ROS to be logical, concise and easy to use (after going through all of the tutorials and practicing with it a bit). Honestly, I’ve found it to be more intuitive and tractable (i.e., more enjoyable to work with) than Microsoft Robotics Developer Studio; albeit, I have not yet used the 2008 R3 release and intend on giving Microsoft RDS a more concerted and focused go around. While both RDS and ROS support messaging design patterns, so far I’m leaning towards ROS as a better enabler for cleanly separating components (e.g., ROS package) from the messaging middleware.
One of the most daunting tasks of getting up to speed with ROS is learning and understanding the plethora of available commands and sequences of commands for performing common tasks. Fortunately, the ROS documentation – which is continually improving at a very fast rate – now includes a comprehensive cheat sheet for referencing ROS commands. Since I began using ROS, I’ve been maintaining my own cheat sheet which describes (my) most commonly used commands, descriptions of use, and example invocations (unsurprisingly, there is a lot of overlap with ROS’ cheat sheet).
With my spreadsheet, I’ve also begun keeping track of common sequences of commands within my cheat sheet as a quick means to look up what series of commands are necessary to perform a common task, such as creating a new service from an existing one. This kind of information is certainly available via the ROS documentation, but keeping it consolidated has been a great help in reducing searching around for it. Finally, I also like to keep track of a glossary of common terms and other useful ROS info.
As it has for me, you may find my ROS cheat sheet (an OpenOffice spreadsheet) as a useful starting point for maintaining your own list of common-sequences-of-commands and other at-your-finger-tips information for quickly navigating through ROS capabilities.