Microsoft Robotics Developer Studio (MRDS) is Microsoft’s answer to the rise in interest of robots. MRDS is a major commitment by Microsoft and a big chunk of software—although the large portion (over 800 pages) of the book reflects the complexity that MRDS brings to the table.
The complexity of MRDS is one reason to check out this offering from Johns and Taylor. There are plenty of examples within the book but a significant chunk is dedicated to explaining how MRDS works and how to use it. This includes the simulation support and Visual Programming Language (VPL).
The first few chapters introduce the two underlying subsystems: the Concurrency and Coordination (CCR) system and the Decentralized Software Services (DSS). CCR and DSS can be used by themselves, so non-robotic developers may find this book of interest. These technologies were adopted by the Microsoft robot gurus and it is the first place they are employed, but they are also finding their way into all sorts of applications from stock trading to network applications.
The rest of the book continues this building approach, so reading from front to back makes sense if you have not worked with MRDS before. The next half dozen chapters target the MRDS simulation support. This is not a bad idea since testing MRDS applications is easily done using simulation, rather than real hardware. Using the simulation tools is getting better as new versions of MRDS are released, but the complexity of the system, and the problems, are reflected in the details that the authors highlight. Plenty of figures and sample code definitely help.
The Visual Programming Language basics are introduced next. Entire books are dedicated to VPL but this coverage is more than sufficient for those who have never had their hands on a visual programming system. After giving VPL basics, the authors turn to robots and MRDS. VPL can be used for general applications, but for now VPL and MRDS are almost guaranteed to show up in the same discussion. What I did find interesting was the amount of non-graphical code in this chapter. This is more of an issue with MRDS than its treatment in the book.
The last third of the book finally takes a look at robotic hardware and more concrete examples of mechatronics. Unfortunately, there is only a bare mention of techniques such as behavior-based programming, but the book is large enough as is. Instead, the end of the book concentrates on common functionality such as teleoperation and its associated support. Coverage of sensor interfaces and hardware services are addressed in more detail.
Overall, MRDS users will find this book to be invaluable in getting up and running. It is possible to cherry pick chapters if you have used MRDS before. Still, even more experienced developers will benefit from a close reading given the nuances and complexity of MRDS.