We have chosen the recently released Microsoft Robotics Studio as our software framework for the 2007 Urban Challenge. Robotics systems in MSRS are composed of independent services which communicate in real time to achieve a desired goal. MSRS is composed of two main components: The Coordination and Concurrency Runtime (CCR), and the Decentralized Software Services Protocol (DSSP). The CCR provides powerful concurrency primitives that allow us to take full advantage of our dual-core machines. The DSSP handles messaging between services and across computers.
When all our code has been implemented, we will have over 25 MSRS services running across our five dual-core servers. To the best of our knowledge, this is the most demanding demonstration of MSRS’s capabilities to date.
The services in our vehicle are decomposed into three regimes: Sensing, Planning, and Acting. The overall structure is shown below.
Sensor inputs are processed by the top layer and fused to form an estimate of the robot’s surroundings. The middle layer is responsible for determining a desired path based on the current sensory information. The lowest level implements the desired path, and comprises all the software modules responsible for communicating with the Escape’s electronic actuators.