Home /Research /The SMACH High-Level Executive
OTHER

The SMACH High-Level Executive

Jonathan Boren, Steve Cousins

Year
2010
Citations
70

Abstract

Personal robotics applications often require the integration of hundreds of components. In robot operating systems (ROSs), such subsystems and primitive capabilities are usually encapsulated in ROS nodes. Even with encapsulation and well-documented messaging interfaces, writing maintainable code to make a large set of ROS nodes to act together to solve a problem is difficult. Solution strategies range from writing code in big if/else cascades and nested switch statements to using more powerful inference and task-planning systems. In this column, we introduce an approach based on nested state machines that has proven very effective at building real-ROS applications. Complex Appications Over the past couple of years, we have been exploring the trade-offs between task scripting and task planning for highlevel control in robot applications written on top of ROS. Scripting approaches let the programmer not only say exactly what the robot should do, but also require the programmer to explicitly describe recovery logic for all failure modes. Although these methods can be rapid for developing small applications, they do not scale well. When failures arise, robots are not like pure software systems: they cannot just reset the state of the world and retry. As a result, autonomous robotics applications require a large amount of additional work to describe how to recover from these failures in addition to the application’s nominal execution. Furthermore, our experience has shown that maintaining, extending, and fixing such scripts over time makes it more and more challenging to analyze or model the application. On the other end of the spectrum, instead of explicitly describing which actions to execute in an imperative programming language, more autonomy can be given to the robot to plan and execute tasks. There exist model-based task planning and inference systems based on classic artificial intelligence (AI), constraint satisfaction, and model checking. The model, in this case, describes constraints and relations relevant to the set of actions at the robot’s disposal. These systems aim to shift the burden of solving the application-specific problems from the developer to the autonomous system.

Keywords

ProgrammerComputer scienceScripting languageRobotTask (project management)RoboticsSoftware engineeringArtificial intelligenceProgramming languageDistributed computing

Related papers

Browse all OTHER papers