首页 /研究 /The SMACH High-Level Executive
OTHER

The SMACH High-Level Executive

Jonathan Boren, Steve Cousins

发表年份
2010
引用次数
70

摘要

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.

关键词

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

相关论文

查看 OTHER 分类全部论文