A Teleo-Reactive Architecture for Fast, Reactive and Robust Control of Mobile Robots
|
|
- Bartholomew Daniel
- 5 years ago
- Views:
Transcription
1 A Teleo-Reactive Architecture for Fast, Reactive and Robust Control of Mobile Robots Gerhard Gubisch, Gerald Steinbauer, Martin Weiglhofer, and Franz Wotawa Institute for Software Technology, Graz University of Technology Inffeldgasse 16b/II, A-8010 Graz, Austria Abstract. One of the elementary tasks of an autonomous mobile robot is the execution of different behavior patterns in order to fulfill a given task. The complexity of this problem is especially high if the robot operates in a dynamic, unpredictable environment and requires the parallel control of multiple actuators. In this paper we present a novel architecture for robust and fast mobile robot control. The architecture is based on Teleo-Reactive Programs. We discuss the benefits and drawbacks of such programs, extend the basic definition for the parallel control of multiple actuators, and propose a new language and a compiler for extended Teleo-Reactive Programs. These tools simplify the creation of new behavior patterns and increase the runtime performance. Finally, we discuss implementation issues of the architecture when applying it to RoboCup Middle-Size soccer robots. Key words: autonomous agents, control architecture, teleo-reactive programs, parallel actions, teleo-reactive program compilation 1 Introduction The execution of different behavior patterns in order to achieve a given task is one of the fundamental prerequisites of an autonomous mobile robot. Once a robot has derived a plan to achieve its task, some mechanism is needed to execute the plan. Such a mechanism has to be flexible in order to allow the execution of different plans, sub-plans or behavior patterns. This requires an appropriate description or programming language. In addition, the mechanism has to be robust against failure. Even in situations which are new to the robot, the execution of behavior patterns should not fail. There is a great number of proposed mechanisms to organize, structure and describe the task execution of autonomous robots. On the highest level these mechanisms can be divided into three major groups: (1) the reactive paradigm, (2) the deliberative paradigm and (3) the hybrid paradigm. Mechanisms of the first group commonly use sets of simple reactive behavior and setup more complex behavior patterns by blending these simple ones. The advantage of these Authors are listed in alphabetical order.
2 mechanisms is their quick response to changes in the sensory input. The second group uses planning and reasoning capabilities in order to derive sequential plans. Mechanisms of this group are able to handle very complex tasks but suffer from performance issues when deriving appropriate plans. The last group merges the advantages of the first two. It provides fast reaction on sensory input and the capability to plan in domains of greater complexity. In this paper we present a framework to organize and execute behavior patterns in a flexible and robust way using the hybrid paradigm. The organization of the reactive part is based on Teleo-Reactive (TR) Programs proposed by Nilsson [1]. TR-Programs are ordered lists of condition-action pairs, which ensure robustness in dynamic environments. Because basic TR-Programs are not able to deal with parallel actions, we introduce extended TR-Programs. Such TR-Programs serve as actions for a higher-level planning module. In order to improve the runtime performance and ease the use of extended TR-Programs we define a description language for the TR-Programs. Furthermore we show how a compiler can convert an extended TR-Program into native C++ code. This paper continues as follows: In the next section we discuss TR-Programs and introduce extended TR-Programs. In Section 3 we present the design of the proposed framework, our language for extended TR-Programs and a compiler for converting extended TR-Programs to C++. Section 4 discusses an implementation of the framework for our RoboCup Middle-Size soccer robots. Section 5 shows an overview of related research. Finally, we draw our conclusions in Section 6. 2 Teleo-Reactive Programs Teleo-Reactive Programs are a formalism to control mobile robots in dynamic environments. They address the problem of plan execution in a real world environment. In such dynamic environments the effect of an executed action may be changed or canceled by exogenous events. Thus, the execution of a plan will fail if the control software of the robot relies on the successful execution of an action. Teleo-Reactive Programs provide a solution to this problem. According to [1] a Teleo-Reactive Sequence is an ordered set of production rules, where K i denotes a first order logic condition and a i denotes an executable action: K 1 a 1,...,K i a i,...,k m a m. Formally a Teleo-Reactive Program can be defined as follows: Definition 1 (Teleo-Reactive Sequence) A Teleo-Reactive Sequence τ is a finite ordered list of m condition-action pairs (K i,a i ) with i {1,...,m} and a i A where A = A disc A dura T S is the union of the disjoint sets of discrete actions A disc, durative actions A dura and all Teleo-Reactive Sequences T S: τ = (K 1,a 1 ),...,(K i,a i ),...,(K m,a m )
3 Definition 2 (Teleo-Reactive Program) A Teleo-Reactive Program is a Teleo- Reactive Sequence with variables. When the sequence is called, the variables are bound to either constant values or to entities that are computed continuously. The execution of such a sequence is simple. The interpreter scans the production rules from left to right. It chooses an action for execution if the according condition is the first one which is satisfied. TR-Sequences can be organized hierarchically, i.e. the actions a i of a TR-Sequence can be Teleo-Reactive Sequences themselves. The primitive actions of a TR-Sequence can be either discrete or durative. A durative action a i is executed continuously as long as K i remains the first true condition in the list. In contrast to that, a discrete action is called once, as soon as the first true condition in the list is the action s condition. Assume, that S holds the initial truth values of the predicates which are used to formulate the conditions. effect(a i ) returns the effect in terms of predicate truth values when executing action a i. A B = B {l l A l / B} represents a state update operator and Φ(K i,s) = ( j<i K j S) K i S represents the condition check. obs() denotes a function which returns the currently observed state. Then the formal semantics of a Teleo-Reactive Sequence τ = (K 1,a 1 ),...,(K i,a i ),...,(K m,a m ) is given as follows (where denotes the interpretation function): τ (S) = (K 1,a 1 ),...,(K m,a m ) ( (K i,a i ) (S)) if Φ(K i,s) a i (S) if a i T S (K i,a i ) (S) = a i disc (S) if a i A disc (K i,a i ) dura (S) if a i A dura { S if effect(a i ) S Φ(K i,s) (K i,a i ) dura (S) = (K i,a i ) dura ( a i dura ) otherwise a i disc (S) = S effect(a i ) a i dura (S) = S obs() The robustness of the execution of TR-Programs comes from two properties. The regression property ensures that the conditions in the list are regressive. That means, that each action a i should activate a condition K j with j < i. The regression property ensures that the agent proceeds towards the goal. A TR- Program is complete if the disjunction of all condition forms a tautology, which ensures, that there is always one action that can be executed. A TR-Program which has both properties is called a universal TR-Program. Beside the advantages of TR-Programs there is one major drawback that comes with the original formalism, which is the lack of support for simultaneous action execution. Assume the two scenarios illustrated in Figure 1. The appliance of TR-Programs will fail if an agent has to start action a i at time t while the currently active action a j should not be stopped before t with t > t. For example action a 2 runs simultaneously with action a 1 between t 1 and t 2 in Figure 1. One practical example of such a setting is a robot equipped with a gripper operating
4 Fig. 1. Example of the simultaneous action problem. in a ware-house environment. The task of the robot is to pick up packages from a moving conveyor belt. While the robot waits for the package it pre-positions its gripper (action a 1 ). If the package appears on the conveyor belt the robot starts moving parallel to the package (action a 2 ) and simultaneously grabbing the object of interest. When the packages has been taken, the gripper can be frozen (time t 2 ) while the robot drives towards it final position (action a 2 ). Another problematic setting is, if action a j should be started at time t 1 and stopped at t 2 while action a i is active all the time (e.g. a 3 and a 4 in Figure 1). That is, for example if a soccer robot should dribble (action a 3 ) and kick (action a 4 ). If the robot stops dribbling in order to prepare kicking, the ball will roll away from the robot. Thus, the robot has to kick while it concurrently dribbles. 2.1 Extended Teleo-Reactive Programs To address the problem of simultaneous action execution we extend the basic definition of a TR-Programs. Therefore, we introduce an additional operator that can be used within the action parts of a TR-Sequence. Definition 3 (Parallel Composition Operator) Given two actions a i and a j with i j, then the composition with the -operator a i a j is again a valid action denoting the parallel execution of the two actions. The parallel execution of actions a i and a j still has to satisfy the regression property. In the following we will write A i to denote either a single action a i or a parallel composition of n actions a i1 a i2... a in. We use lower case letters a i for single actions. A denotes the set of all actions. Definition 4 (Extended Teleo-Reactive Sequence) An extended Teleo-Reactive Sequence τ e is a finite ordered list of m condition-action pairs (K i,a i ) where A i = a i a i A or A i = a i1... a in with j=1...n a ij A. The semantics of an extended Teleo-Reactive Sequence is given by e. Definition 5 An extended Teleo-Reactive Program is an extended Teleo-Reactive Sequence with variables. When the sequence is called, the variables are bound to either constant values or to entities that are computed continuously.
5 The use of the -operator extends the semantics for a Teleo-Reactive Sequence τ e to the semantics e as follows: τ e e (S) = (K 1,A 1 ),...,(K m,a m ) e ( (K i,a i ) e (S)) if Φ(K i,s) (K i,a i ) e (S) = a i A i (K i,a i ) (S) Note, that any basic Teleo-Reactive Program can be interpreted by e. Thus, the set of all basic Teleo-Reactive Programs T RP is a subset of all extended Teleo-Reactive Programs T RP ext, i.e., T RP T RP ext. An extended Teleo-Reactive Program encoding the action sequence of Figure 1 looks like following: K e a 3, K d a 3 a 4, K c a 3, K b a 2, K a a 1 a 2, true a 1 Extended TR-Programs are appropriate for the description of the behavior of a robot for a wide range of tasks. But there are two issues that have to be solved when applying TR-Programs for mobile robot control. First, for complex high level tasks some deliberative component is needed in order to enable the robot to fulfil the task. TR-Programs are valuable for the execution of the behavior but the gap to the deliberative component has to be filled. Second, the execution of Teleo-Reactive Programs must be fast such that reactions to changes in the environment are taken into account immediately. We will now introduce a framework for mobile robot control, which addresses these two issues. 3 Organization and Specification of Behaviors Fig. 2. Schematic overview of the proposed framework. Figure 2 shows an overview of our architecture for robust control of mobile robots. The central elements within this architecture are extended Teleo-Reactive Programs that are translated to native C++ code. During the runtime a high
6 level planning module selects the currently best Teleo-Reactive Program for a given situation from a list of predefined TR-Programs. Thus, the Teleo-Reactive Programs are actions for a high level planning module. The Teleo-Reactive compiler uses predicates, actions and algorithms, and translates a given extended Teleo-Reactive Program into C++. This code is compiled by a standard C++-Compiler into executable object code and linked into the robot control software. The translation of extended TR-Programs from a native language to object code has two major advantages. First, it simplifies the process of writing a extended Teleo-Reactive Program where the programmer does not have to care about complex features of modern programming languages. Second, we have experienced a significant improvement in the run-time performance when executing compiled Teleo-Reactive Programs instead of interpreting Teleo-Reactive Programs. The reasoning within the TR-Program happens over values from the configuration, over data from the world model and over parameters retrieved from the planning module. Every durative action is implemented in a separate flow of control, i.e., a separate thread. The action-interfaces used by the TR compiler communicate with that thread by sending start commands and stop commands with parameters. Beside the advantage of having several actions executed simultaneously, this separation of actions has an additional benefit: Because there is only one instance of every action, the action can remember previous parameter values and can benefit from the history of parameters. 3.1 Teleo-Reactive Program/C++ Transformation Algorithm 3 translates any non-hierarchical extended Teleo-Reactive Program into a C++ program. An example is illustrated in Figure 4. As Figure 4 shows, function transform( (K 1, A 1),..., (K m, A m) ) A := S i=1,...,m Ai; writeln "void main() { while(true) evaluate(); }" writeln "void evaluate() {" for i = 1 to m do writeln "if (K i) {" for all a j A \ A i do writeln "a j.stop();" done for all a k A i do writeln "a k.start();" done writeln "return; }" done writeln "}" Fig. 3. Algorithm for the translation of extended Teleo-Reactive Programs into C++. the resulting C++ code consists of two functions. The main loop calls the evaluate function continuously. The evaluate function contains a list of if-then statements. Each condition-action pair corresponds to one if-then-statement.
7 The condition of a (K i,a i )-tuple forms the condition in the if-clause. The thenbranch is built by starting and stopping the actions of A i (functions start() and stop()). These functions start and stop durative actions in a separate thread. Note, that the functions are called multiple times, where the parameters to those functions may be changed. Thus, start functions should start the thread only if it is not running yet. If the thread is already running, the functions should only exchange the old parameters with the new ones. For discrete actions, the start function runs the action once and refuses execution if called multiple times until the stop function has been invoked. The resulting C++ program does not interrupt durative actions and start them immediately again, which would break a continuous execution. Thus the C++ program starts an action a i for a conditionaction pair (K i,a i ) if a i A i. An action a j is stopped in the then-branch of a condition-action pair (K k,a k ) iff a j A k.from the semantical point of view, Scored nil, InRange(Goal) DribbleTo(Goal) Kick(), true DribbleTo(Goal) void main() { while(true) evaluate(); } void evaluate() { if(scored.eval()){dribbleto.stop();kick.stop();return;} if(inrange.eval(goal)){dribbleto.start(goal);kick.start();return;} if(true){dribbleto.start(goal);kick.stop();return;} } Fig. 4. Translation of an extended Teleo-Reactive Program for a scoring behavior (top) into C++ code (bottom). the two versions of TR-Programs in Figure 4 are equivalent. Both versions of the TR-Program will execute A i if ( j<i K j ) K i. If the Teleo-Reactive Program is complete, i.e., K 1 K 2 K i K m is a tautology, there will be always one action that is selected for execution in both versions of the TR-Program. If the Teleo-Reactive Program satisfies the regression property, the C++ version will satisfy this property as well, because we do not change the order of the condition-action pairs. 3.2 Teleo-Reactive Language In this section we propose a programming language for TR-Programs, which is related to the imperative programming paradigm. According to the grammar of Figure 5, a TR-Program comprises two sections. One section contains the global variables, i.e., variables that are used as parameters in conditions or in more than one action block. The other section comprises the list of conditionaction pairs that forms the body of the TR-Program. Conditions are built by combining the predicates of the control framework with the boolean operators and, or and not. In contrast to the Teleo-Reactive Language defined in [2], this grammar provides a more flexible form of writing actions. Instead of having a single object which is called for execution, an action is built by a code block. This code block can either be the name of one of the basic actions, or it can be a
8 program ::= TR-PROGRAM : globals section tr stmt section globals section ::= GLOBAL : ( var decl+ ǫ ) var decl ::= type id = param expr ; param expr ::= float integer string param funcall var param ::= object(id) param(id) config(id(.id)*) random(paramlist) tr stmt section ::= TELEO-REACTIVE : tr stmt+ tr stmt ::= task name : condition : action* ; condition ::= predicate ((and or) predicate)* predicate ::= true false (! ǫ) funcall (! ǫ) ( condition ) action ::= var decl function call; funcall ::= id ( paramlist ǫ ) paramlist ::= param expr (, param expr )* Fig. 5. Grammar of the Teleo-Reactive language. code block that uses algorithms, local variables and action objects. An algorithm does not execute any action but calculates parameters needed by some action. This is, why we propose to split up actions and algorithms. Each action and each algorithm should provide an atomic piece of operation. In that way new behavior can be composed without adding new functionality to the framework. In addition, the modular action block allows to use more than one basic action within such a block. The given basic actions are executed in parallel using the semantics of extended Teleo-Reactive Programs. 4 Applying the Framework to Mobile Soccer Robots This section discusses an implementation of the proposed architecture for our RoboCup Middle-Size soccer robots. The planning module of Figure 2 is realized as a hierarchical state machine, which uses extended TR-Programs as actions. One extended TR-Program is mapped to one C++ class. The list of if-then statements is encoded in an execute method. The main loop which calls this execute method is located in a controller class. This controller is responsible for switching between TR-Programs selected by the hierarchical state machine. Our compiler 1 is implemented in C++ using of the Boost Spirit Library 2 for parsing, and implements simple type checking. For our mobile soccer robots, the framework is currently equipped with two predicates (IsAtPosition(pos) and IsAtScoringPosition()), two actions (GotoPosition(pos) and KickTheBall), and the four algorithms (Scanline: calculate a heading of the robot, where there is a maximum distance along the soccer field width between two obstacles, CalcKickerParams: determine currently optimal kick strength, CalcStrategicPosition: calculate a global position and a heading, which is strategically advantageous based on the work of [3], CalcGrabBallPosition: calculate position and heading for graping the ball such that the robot does not push the ball out of the field, CalcGoalBlockingPosition: calculates an intercept position for the goalkeeper if the ball rolls towards the goal)
9 Currently we use 15 different teleo-reactive programs for our RoboCup Middle- Size soccer robots. The average number of used condition-action pairs is 2.13 per TR-program. At maximum we use 4 condition-action pairs per TR-program. The smallest TR-program, which prevents the robot from doing anything (i.e. the idle TR-program) comprises only one condition-action pair. In four cases we make use of parallel actions. These TR-programs are basically all programs where some ball handling actions are involved. 5 Related Research Brooks proposed in [4] to blend simple behaviors, which provide a fast coupling of sensors and actuators, in order to get more complex behaviors. The basic behaviors are always active, receive their sensory input and immediately calculate their desired output for the actuators. An arbiter takes care about which output or which mixture of outputs are feed to the actuators. In difference to that, extended Teleo-Reactive programs only execute actions concurrently if required. Furthermore, the outcome of the actions are not merged by the use of an arbiter. The Miro robot software framework provides a so called BAP framework in order to organize and execute behaviors [5]. The framework allows to arrange continuous and event-driven behaviors into behavior patterns and to blend the individual behaviors trough the use of different arbiters. The authors of [6] presented an approach for robust plan execution in dynamic environments. The approach is based on a hybrid architecture and uses classical STRIPS planning. The behavioral level is organized using the framework of Miro. The robustness of the plan execution derives from the use of plan invariants, which are conditions that have to be true throughout the execution of the entire plan. Such condition can be used to monitor plan execution in order to detect infeasible or faulty plans. In [7] Beetz presented a control architecture for mobile robots, which comprises a plan-based high-level control. The controller monitors the execution of plans by the use of prediction models of the behavior of actions. In the case of a problem the controller can react by modifying plans on the fly. Furthermore, the controller is able to execute concurrent plans and may postpone the execution of plans until some conditions are satisfied again. In [8] Nilsson proposed the triple-tower architecture for the control of autonomous robots. The architecture is guided by the hybrid paradigm and comprises three towers for sensing, reasoning and acting. The acting tower is responsible for the execution of behaviors and comprises one or more TR-Programs. The higher level decision process is implemented by the reasoning tower which performs logical reasoning about the state of the world and the agents task. The Task Description Language (TDL) proposed by Simmons [9] is a tasklevel programming language for robots. It is a extension to the C++ language and supports task decomposition, synchronization and exception handling. The authors provide a compiler to convert the TDL program into a native C++ code.
10 6 Conclusion In this paper we have presented a novel architecture for fast, reactive and robust control of mobile robots. The architecture is based on an extension of TR- Programs. Beside the benefits of basic TR-Programs, extended TR-Programs allow the robust execution of concurrent actions. Furthermore, we introduced a description language for extended TR-Programs and showed how to transform extended TR-Programs to native C++ code. We have implemented the proposed architecture for our autonomous mobile soccer robots which led to promising results. By the use of this architecture our robots are able to react fast to changes in the environment. The main advantages of our architecture based on compiled extended TR-Programs can be summarized as: Fast and robust execution: Because of the indirect compilation to object code the time consumed by program management during the execution of TR-Programs is negligibly small. The execution is robust in highly dynamic environments, where exogenous events may cancel effects of actions. Simultaneous actions: Our approach is able to control multiple actuators in parallel by executing actions simultaneously. Simple behavior pattern creation By providing the user an intuitive language it is easy to create new behavior patterns. Further Research Currently, we require that parallel actions do not contradict with each other. We need to investigate in some technique that allows to detect such contradicting actions. References 1. Nilsson, N.J.: Teleo-reactive programs for agent control. JAIR 1 (1994) Nilsson, N.J.: Toward agent programs with circuit semantics. Technical Report STAN-CS , Standford University (1992) 3. Tews, A., Wyeth, G.: Thinking as one: Coordination of multiple mobile robots by shared representations. In: IROS. (2000) Brooks, R.A.: A robust layered control system for a mobile robot. IEEE Jornal of Robotics and Automation RA-2 (1986) Utz, H.: Advanced Software Concepts and Technologies for Autonomous Mobile Robotics. PhD thesis, University of Ulm, Neuroinformatics (2005) 6. Fraser, G., Steinbauer, G., Wotawa, F.: Plan execution in dynamic environments. In: 18th International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems., Bari, Italy, Springer (2005) Beetz, M.: Plan-Based Control of Robotics Agents, Improving the Capabilities of Autonomous Robots. Volume 2554 of LNAI. Springer (2002) 8. Nilsson, N.J.: Teleo-reactive programs and the triple-tower architecture. Electronic Transactions on Artificial Intelligence 5 (2001) Simmons, R., Apfelbaum, D.: A task description language for robot control. In: Conference on Intelligent Robotics and Systems. (1998)
Evolving Hierarchical and Recursive Teleo-reactive Programs through Genetic Programming
Evolving Hierarchical and Recursive Teleo-reactive Programs through Genetic Programming Mykel J. Kochenderfer Department of Computer Science Stanford University Stanford, California 94305 mykel@cs.stanford.edu
More informationA multi-threaded architecture for cognitive robotics. Keith Clark Imperial College London
A multi-threaded architecture for cognitive robotics Keith Clark Imperial College London Overview of talk Nilsson s Teleo-Reactive (TR) Procedures Simulation demo of TR controlled can collecting robot
More informationBehavior Programming Language and Automated Code Generation for Agent Behavior Control
Behavior Programming Language and Automated Code Generation for Agent Behavior Control Thuc Vu, Manuela Veloso tdv@andrew.cmu.edu, mmv@cs.cmu.edu Carnegie Mellon University 5000 Forbes Avenue Pittsburgh,
More information3 No-Wait Job Shops with Variable Processing Times
3 No-Wait Job Shops with Variable Processing Times In this chapter we assume that, on top of the classical no-wait job shop setting, we are given a set of processing times for each operation. We may select
More informationEvolving Teleo-Reactive Programs for Block Stacking using Indexicals through Genetic Programming
Evolving Teleo-Reactive Programs for Block Stacking using Indexicals through Genetic Programming Mykel J. Kochenderfer 6 Abrams Court, Apt. 6F Stanford, CA 95 65-97-75 mykel@cs.stanford.edu Abstract This
More informationCIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)
By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable
More informationIntermediate Code Generation
Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target
More information1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.
1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered
More informationCS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)
CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going
More information2.2 Syntax Definition
42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions
More informationState Machine Diagrams
State Machine Diagrams Introduction A state machine diagram, models the dynamic aspects of the system by showing the flow of control from state to state for a particular class. 2 Introduction Whereas an
More informationPropositional Logic. Part I
Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.
More informationLexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a
More informationDecaf Language Reference Manual
Decaf Language Reference Manual C. R. Ramakrishnan Department of Computer Science SUNY at Stony Brook Stony Brook, NY 11794-4400 cram@cs.stonybrook.edu February 12, 2012 Decaf is a small object oriented
More informationComplex behavior emergent from simpler ones
Reactive Paradigm: Basics Based on ethology Vertical decomposition, as opposed to horizontal decomposition of hierarchical model Primitive behaviors at bottom Higher behaviors at top Each layer has independent
More informationMovement Prediction from real-world Images using a Liquid State Machine
Movement Prediction from real-world Images using a Liquid State Machine Harald Burgsteiner 1, Mark Kröll 2, Alexander Leopold 2, and Gerald Steinbauer 3 1 InfoMed / Health Care Engineering, Graz University
More informationRobotics Programming Laboratory
Chair of Software Engineering Robotics Programming Laboratory Bertrand Meyer Jiwon Shin Lecture 9: Software Architecture in Robotics Control and navigation architecture Serial architecture action Module
More informationANSI C CODE SYNTHESIS FOR MLDESIGNER FINITE STATE MACHINES
49. Internationales Wissenschaftliches Kolloquium Technische Universität Ilmenau 27.-30. September 2004 Holger Rath / Horst Salzwedel ANSI C CODE SYNTHESIS FOR MLDESIGNER FINITE STATE MACHINES Abstract
More informationCAMBADA 2016: Team Description Paper
CAMBADA 2016: Team Description Paper R. Dias, F. Amaral, J. L. Azevedo, B. Cunha, P. Dias, N. Lau, A. J. R. Neves, E. Pedrosa, A. Pereira, J. Silva and A. Trifan Intelligent Robotics and Intelligent Systems
More information1 Lexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler
More informationSoftware Architecture--Continued. Another Software Architecture Example
Software Architecture--Continued References for Software Architecture examples: Software Architecture, Perspectives on an Emerging Discipline, by Mary Shaw and David Garlin, Prentice Hall, 1996. B. Hayes-Roth,
More informationLecture 3: Recursion; Structural Induction
15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion
More informationCom S 541. Programming Languages I
Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR
More informationDebugging Program Slicing
Debugging Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at 1 What is a Slice? A Slice is a reduced
More informationAutomating Test Driven Development with Grammatical Evolution
http://excel.fit.vutbr.cz Automating Test Driven Development with Grammatical Evolution Jan Svoboda* Abstract Test driven development is a widely used process of creating software products with automated
More informationControl Structures. Lecture 4 COP 3014 Fall September 18, 2017
Control Structures Lecture 4 COP 3014 Fall 2017 September 18, 2017 Control Flow Control flow refers to the specification of the order in which the individual statements, instructions or function calls
More informationAnalysis and Design with the Universal Design Pattern
Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software
More informationNuBot Team Description Paper 2013
NuBot Team Description Paper 2013 Zhiwen Zeng, Dan Xiong, Qinghua Yu, Kaihong Huang, Shuai Cheng, Huimin Lu, Xiangke Wang, Hui Zhang, Xun Li, Zhiqiang Zheng College of Mechatronics and Automation, National
More informationContemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.
Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful
More informationMobile robots control architectures
1 Mobile robots control architectures Dimitri Popov Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Department Informatik Integriertes Seminar Intelligent Robotics 10 1.
More informationMulti Domain Logic and its Applications to SAT
Multi Domain Logic and its Applications to SAT Tudor Jebelean RISC Linz, Austria Tudor.Jebelean@risc.uni-linz.ac.at Gábor Kusper Eszterházy Károly College gkusper@aries.ektf.hu Abstract We describe a new
More informationCS4514 Real-Time Systems and Modeling
CS4514 Real-Time Systems and Modeling Fall 2015 José M. Garrido Department of Computer Science College of Computing and Software Engineering Kennesaw State University Real-Time Systems RTS are computer
More informationDefining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1
Defining Program Syntax Chapter Two Modern Programming Languages, 2nd ed. 1 Syntax And Semantics Programming language syntax: how programs look, their form and structure Syntax is defined using a kind
More informationLexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler
More informationLESSON 13: LANGUAGE TRANSLATION
LESSON 13: LANGUAGE TRANSLATION Objective Interpreters and Compilers. Language Translation Phases. Interpreters and Compilers A COMPILER is a program that translates a complete source program into machine
More informationTHE CONCEPT OF OBJECT
THE CONCEPT OF OBJECT An object may be defined as a service center equipped with a visible part (interface) and an hidden part Operation A Operation B Operation C Service center Hidden part Visible part
More informationProcessing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer
Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Mariano Tucat 1 Alejandro J. García 2 Artificial Intelligence Research and Development Laboratory Department
More informationProcessing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer
Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Mariano Tucat Alejandro J. García mt@cs.uns.edu.ar ajg@cs.uns.edu.ar Consejo Nacional de Investigaciones
More informationCSCI 445 Amin Atrash. Control Architectures. Introduction to Robotics L. Itti, M. J. Mataric
Introduction to Robotics CSCI 445 Amin Atrash Control Architectures The Story So Far Definitions and history Locomotion and manipulation Sensors and actuators Control => Essential building blocks Today
More informationAI-Planning in a Mobile Autonomous Robot with Degraded Software Capabilities
AI-Planning in a Mobile Autonomous Robot with Degraded Software Capabilities Jörg Weber and Franz Wotawa Technische Universität Graz Institute for Software Technology 8010 Graz, Inffeldgasse 16b/2, Austria
More information: Principles of Automated Reasoning and Decision Making Midterm
16.410-13: Principles of Automated Reasoning and Decision Making Midterm October 20 th, 2003 Name E-mail Note: Budget your time wisely. Some parts of this quiz could take you much longer than others. Move
More informationPropositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson
Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and
More informationASML Language Reference Manual
ASML Language Reference Manual Tim Favorite (tuf1) & Frank Smith (fas2114) - Team SoundHammer Columbia University COMS W4115 - Programming Languages & Translators 1. Introduction The purpose of Atomic
More informationTriadic Formal Concept Analysis within Multi Agent Systems
Triadic Formal Concept Analysis within Multi Agent Systems Petr Gajdoš, Pavel Děrgel Department of Computer Science, VŠB - Technical University of Ostrava, tř. 17. listopadu 15, 708 33 Ostrava-Poruba Czech
More informationChapter 8: Data Abstractions
Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
More informationCS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities
More informationSimulation of LET Models in Simulink and Ptolemy
Simulation of LET Models in Simulink and Ptolemy P. Derler, A. Naderlinger, W. Pree, S. Resmerita, J. Templ Monterey Workshop 2008, Budapest, Sept. 24-26, 2008 C. Doppler Laboratory Embedded Software Systems
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationCYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms
CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms Raju Pandey J. C. Browne Department of Computer Sciences The University of Texas at Austin Austin, TX 78712 fraju, browneg@cs.utexas.edu
More informationSIR C R REDDY COLLEGE OF ENGINEERING
SIR C R REDDY COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY Course Outcomes II YEAR 1 st SEMESTER Subject: Data Structures (CSE 2.1.1) 1. Describe how arrays, records, linked structures,
More informationCOMS 1003 Fall Introduction to Computer Programming in C. Bits, Boolean Logic & Discrete Math. September 13 th
COMS 1003 Fall 2005 Introduction to Computer Programming in C Bits, Boolean Logic & Discrete Math September 13 th Hello World! Logistics See the website: http://www.cs.columbia.edu/~locasto/ Course Web
More informationDISCRETE-event dynamic systems (DEDS) are dynamic
IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 7, NO. 2, MARCH 1999 175 The Supervised Control of Discrete-Event Dynamic Systems François Charbonnier, Hassane Alla, and René David Abstract The supervisory
More informationM/s. Managing distributed workloads. Language Reference Manual. Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567)
1 M/s Managing distributed workloads Language Reference Manual Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567) Table of Contents 1. Introduction 2. Lexical elements 2.1 Comments 2.2
More informationGoals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1
Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal
More informationSymbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is
More informationMobile robots and appliances to support the elderly people
Microsoft Research Embedded Systems Invitation for Proposal Mobile robots and appliances to support the elderly people Luca Iocchi, Daniele Nardi Dipartimento di Informatica e Sistemistica Università di
More informationReactive and Hybrid Agents. Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge
Reactive and Hybrid Agents Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge Reactive Architectures Problems with symbolic/logical approaches (transduction, computational
More informationHandout 9: Imperative Programs and State
06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative
More informationAGENT-BASED SOFTWARE ARCHITECTURE FOR MULTI-ROBOT TEAMS. João Frazão, Pedro Lima
AGENT-BASED SOFTWARE ARCHITECTURE FOR MULTI-ROBOT TEAMS João Frazão, Pedro Lima Institute for Systems and Robotics Instituto Superior Técnico, Av. Rovisco Pais, 1049-001 Lisboa, Portugal {jfrazao,pal}@isr.ist.utl.pt
More informationCSC 501 Semantics of Programming Languages
CSC 501 Semantics of Programming Languages Subtitle: An Introduction to Formal Methods. Instructor: Dr. Lutz Hamel Email: hamel@cs.uri.edu Office: Tyler, Rm 251 Books There are no required books in this
More informationProgramming Safe Agents in Blueprint. Alex Muscar University of Craiova
Programming Safe Agents in Blueprint Alex Muscar University of Craiova Programmers are craftsmen, and, as such, they are only as productive as theirs tools allow them to be Introduction Agent Oriented
More informationShared Variables and Interference
Illinois Institute of Technology Lecture 24 Shared Variables and Interference CS 536: Science of Programming, Spring 2018 A. Why Parallel programs can coordinate their work using shared variables, but
More informationESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents
From: AAAI Technical Report FS-96-01. Compilation copyright 1996, AAAI (www.aaai.org). All rights reserved. ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents Erann Gat
More informationDriving Vision Systems by Communication
Driving Vision Systems by Communication Thorsten Graf and Alois Knoll University of Bielefeld, Faculty of Technology P.O.Box 10 01 31, D-33501 Bielefeld, Germany E-mail: fgraf,knollg@techfak.uni-bielefeld.de
More informationReflection in the Chomsky Hierarchy
Reflection in the Chomsky Hierarchy Henk Barendregt Venanzio Capretta Dexter Kozen 1 Introduction We investigate which classes of formal languages in the Chomsky hierarchy are reflexive, that is, contain
More information«Computer Science» Requirements for applicants by Innopolis University
«Computer Science» Requirements for applicants by Innopolis University Contents Architecture and Organization... 2 Digital Logic and Digital Systems... 2 Machine Level Representation of Data... 2 Assembly
More informationCrafting a Compiler with C (II) Compiler V. S. Interpreter
Crafting a Compiler with C (II) 資科系 林偉川 Compiler V S Interpreter Compilation - Translate high-level program to machine code Lexical Analyzer, Syntax Analyzer, Intermediate code generator(semantics Analyzer),
More informationAutomating Unpredictable Processes:
Automating Unpredictable Processes: Building Responsive Apps using Business Rules By Carl Hewitt, Chief Architect, Decisions and Heath Oderman, CTO, Decisions Copyright 2016 Building Responsive Apps: Comparing
More informationProblem Solving Agents Solving Problems through Search CIS 32
Problem Solving Agents Solving Problems through Search CIS 32 Today: Behavior Based AI Functionally Next Class - In 2 Wednesdays (Could Meet on Tuesday Next Week) No Thursday Office Hours (any more) -
More informationSymbolic Execution and Proof of Properties
Chapter 7 Symbolic Execution and Proof of Properties Symbolic execution builds predicates that characterize the conditions under which execution paths can be taken and the effect of the execution on program
More informationResearch Collection. Overapproximating the Cost of Loops. Master Thesis. ETH Library. Author(s): Schweizer, Daniel. Publication Date: 2013
Research Collection Master Thesis Overapproximating the Cost of Loops Author(s): Schweizer, Daniel Publication Date: 2013 Permanent Link: https://doi.org/10.3929/ethz-a-009767769 Rights / License: In Copyright
More information11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e
CS-3160 Concepts of Programming Languages Spring 2015 EXAM #1 (Chapters 1-6) Name: SCORES MC: /75 PROB #1: /15 PROB #2: /10 TOTAL: /100 Multiple Choice Responses Each multiple choice question in the separate
More informationTowards a formal model of object-oriented hyperslices
Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This
More informationProgramming Lecture 3
Programming Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic expressions Operator precedence Assignment statements
More informationModule 5. Function-Oriented Software Design. Version 2 CSE IIT, Kharagpur
Module 5 Function-Oriented Software Design Lesson 12 Structured Design Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the aim of structured design. Explain
More informationSyntax Analysis Check syntax and construct abstract syntax tree
Syntax Analysis Check syntax and construct abstract syntax tree if == = ; b 0 a b Error reporting and recovery Model using context free grammars Recognize using Push down automata/table Driven Parsers
More informationFall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives
CS 6A Scheme Fall 208 Discussion 8: October 24, 208 Solutions Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write
More informationProgramming Languages Third Edition. Chapter 7 Basic Semantics
Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol
More informationRobotic Behaviors. Potential Field Methods
Robotic Behaviors Potential field techniques - trajectory generation - closed feedback-loop control Design of variety of behaviors - motivated by potential field based approach steering behaviors Closed
More informationProgramming Language Concepts, cs2104 Lecture 04 ( )
Programming Language Concepts, cs2104 Lecture 04 (2003-08-29) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2003-09-05 S. Haridi, CS2104, L04 (slides: C. Schulte, S. Haridi) 1
More informationSpring 2018 Discussion 7: March 21, Introduction. 2 Primitives
CS 61A Scheme Spring 2018 Discussion 7: March 21, 2018 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme
More informationfor (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; }
Ex: The difference between Compiler and Interpreter The interpreter actually carries out the computations specified in the source program. In other words, the output of a compiler is a program, whereas
More informationProgramming Languages, Summary CSC419; Odelia Schwartz
Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design
More informationConceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework
7th WSEAS International Conference on APPLIED COMPUTER SCIENCE, Venice, Italy, November 21-23, 2007 253 Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework
More informationShared Variables and Interference
Solved Shared Variables and Interference CS 536: Science of Programming, Fall 2018 A. Why Parallel programs can coordinate their work using shared variables, but it s important for threads to not interfere
More informationActor-Oriented Design: Concurrent Models as Programs
Actor-Oriented Design: Concurrent Models as Programs Edward A. Lee Professor, UC Berkeley Director, Center for Hybrid and Embedded Software Systems (CHESS) Parc Forum Palo Alto, CA May 13, 2004 Abstract
More information2 Background: Service Oriented Network Architectures
2 Background: Service Oriented Network Architectures Most of the issues in the Internet arise because of inflexibility and rigidness attributes of the network architecture, which is built upon a protocol
More informationCOMP 181 Compilers. Administrative. Last time. Prelude. Compilation strategy. Translation strategy. Lecture 2 Overview
COMP 181 Compilers Lecture 2 Overview September 7, 2006 Administrative Book? Hopefully: Compilers by Aho, Lam, Sethi, Ullman Mailing list Handouts? Programming assignments For next time, write a hello,
More informationESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents
ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents Erann Gat Jet Propulsion Laboratory California Institute of Technology 4800 Oak Grove Drive Pasadena, CA 91109 gat@jpl.nasa.gov
More information10/18/18. Outline. Semantic Analysis. Two types of semantic rules. Syntax vs. Semantics. Static Semantics. Static Semantics.
Outline Semantic Analysis In Text: Chapter 3 Static semantics Attribute grammars Dynamic semantics Operational semantics Denotational semantics N. Meng, S. Arthur 2 Syntax vs. Semantics Syntax concerns
More informationChapter 3: Propositional Languages
Chapter 3: Propositional Languages We define here a general notion of a propositional language. We show how to obtain, as specific cases, various languages for propositional classical logic and some non-classical
More informationA Type-2 Fuzzy Planner with Semi Qualitative World Model for Robocup Domain
Proceedings of the 3rd Annual IEEE Conference on Automation Science and Engineering Scottsdale, AZ, USA, Sept 22-25, 2007 MoRP-B06.6 A Type-2 Fuzzy Planner with Semi Qualitative World Model for Robocup
More informationSemantic Analysis Type Checking
Semantic Analysis Type Checking Maryam Siahbani CMPT 379 * Slides are modified version of Schwarz s compiler course at Stanford 4/8/2016 1 Type Checking Type errors arise when operations are performed
More informationNote that in this definition, n + m denotes the syntactic expression with three symbols n, +, and m, not to the number that is the sum of n and m.
CS 6110 S18 Lecture 8 Structural Operational Semantics and IMP Today we introduce a very simple imperative language, IMP, along with two systems of rules for evaluation called small-step and big-step semantics.
More informationInterprocess Communication By: Kaushik Vaghani
Interprocess Communication By: Kaushik Vaghani Background Race Condition: A situation where several processes access and manipulate the same data concurrently and the outcome of execution depends on the
More informationA Short Summary of Javali
A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler
More informationInterprocStack analyzer for recursive programs with finite-type and numerical variables
InterprocStack analyzer for recursive programs with finite-type and numerical variables Bertrand Jeannet Contents 1 Invoking InterprocStack 1 2 The Simple language 2 2.1 Syntax and informal semantics.........................
More informationSafety SPL/2010 SPL/20 1
Safety 1 system designing for concurrent execution environments system: collection of objects and their interactions system properties: Safety - nothing bad ever happens Liveness - anything ever happens
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing
More informationThe Object Model Overview. Contents. Section Title
The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group
More information