A framework of safe robot planning Roland Pihlakas Institute of Technology in University of Tartu august 2008.

Slides:



Advertisements
Similar presentations
Generating Ideas #1: Research Patterns
Advertisements

Requirements gathering
Planning
Computer Science CPSC 322 Lecture 25 Top Down Proof Procedure (Ch 5.2.2)
Planning with Non-Deterministic Uncertainty (Where failure is not an option) R&N: Chap. 12, Sect (+ Chap. 10, Sect 10.7)
Planning Module THREE: Planning, Production Systems,Expert Systems, Uncertainty Dr M M Awais.
Planning Module THREE: Planning, Production Systems,Expert Systems, Uncertainty Dr M M Awais.
CS107 Introduction to Computer Science Lecture 2.
PROBLEM SOLVING AND SEARCH
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
1Notes  Handing assignment 0 back (at the front of the room)  Read the newsgroup!  Planning to put 16mm films on the web soon (possibly tomorrow)
CSE 471/598, CBS 598 Intelligent Agents TIP We’re intelligent agents, aren’t we? Fall 2004.
Artificial Intelligence 2005/06
1 Using Search in Problem Solving Part II. 2 Basic Concepts Basic concepts: Initial state Goal/Target state Intermediate states Path from the initial.
Brent Dingle Marco A. Morales Texas A&M University, Spring 2002
Writing a Complete Program
CSE 471/598 Intelligent Agents TIP We’re intelligent agents, aren’t we? Spring 2004.
Physics and Measurements.
CHAPTER 10 Recursion. 2 Recursive Thinking Recursion is a programming technique in which a method can call itself to solve a problem A recursive definition.
What is it? A mobile robotics system controls a manned or partially manned vehicle-car, submarine, space vehicle | Website for Students.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
MCU: Interrupts and Timers Ganesh Pitchiah. What’s an MCU ?
Knowledge based Humans use heuristics a great deal in their problem solving. Of course, if the heuristic does fail, it is necessary for the problem solver.
Types of IP Models All-integer linear programs Mixed integer linear programs (MILP) Binary integer linear programs, mixed or all integer: some or all of.
COMPUTER PROGRAMMING. Control Structures A program is usually not limited to a linear sequence of instructions. During its process it may repeat code.
Planning, page 1 CSI 4106, Winter 2005 Planning Points Elements of a planning problem Planning as resolution Conditional plans Actions as preconditions.
 Architecture and Description Of Module Architecture and Description Of Module  KNOWLEDGE BASE KNOWLEDGE BASE  PRODUCTION RULES PRODUCTION RULES 
Planning (Chapter 10)
ProgrammingLanguages Programming Languages The Extended Design Principles This lecture introduces a list of more specific principles that can be an aid.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Deadlocks II.
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
COM362 Knowledge Engineering Inferencing 1 Inferencing: Forward and Backward Chaining John MacIntyre
Object Management. Constructors –Compiler-generated –The Initializer List –Copy Constructors –Single-arg (conversion ctors) The Assignment Operator.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
A FIRST BOOK OF C++ CHAPTER 6 MODULARITY USING FUNCTIONS.
Yonglei Tao School of Computing & Info Systems GVSU Ch 7 Design Guidelines.
Chapter 7 Problem Solving with Loops
Think Possibility 1 Iterative Constructs ITERATION / LOOPS C provides three loop structures: the for-loop, the while-loop, and the do-while-loop. Each.
COMP 2208 Dr. Long Tran-Thanh University of Southampton Decision Trees.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
CSE 471/598 Intelligent Agents TIP We’re intelligent agents, aren’t we?
Lecture 2: Review of Object Orientation. © Lethbridge/La ganière 2005 Chapter 2: Review of Object Orientation What is Object Orientation? Procedural.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
1 COS 260 DAY 12 Tony Gauvin. 2 Agenda Questions? 5 th Mini quiz –Chapter 5 40 min Assignment 3 Due Assignment 4 will be posted later (next week) –If.
Review: What is a logic? A formal language –Syntax – what expressions are legal –Semantics – what legal expressions mean –Proof system – a way of manipulating.
Lecture 15 Page 1 CS 236 Online Evaluating Running Systems Evaluating system security requires knowing what’s going on Many steps are necessary for a full.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Designing classes How to write classes in a way that they are easily understandable, maintainable and reusable 6.0.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
How I cope with stress - I believe you can cope too
Introduction To Repetition The for loop
Component Based Software Engineering
Sentinel logic, flags, break Taken from notes by Dr. Neil Moore
Objects First with Java
Sentinel logic, flags, break Taken from notes by Dr. Neil Moore
T. Jumana Abu Shmais – AOU - Riyadh
Algorithm and Ambiguity
Writing a Complete Program
Chapter 3: Selection Structures: Making Decisions
Boolean Expressions to Make Comparisons
Chapter 3: Selection Structures: Making Decisions
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Presentation transcript:

A framework of safe robot planning Roland Pihlakas Institute of Technology in University of Tartu august 2008

What is safe Safe action or state is: –a goal which is explicitly given to the robot; –explicitly permitted change in the robot’s environment. Everything else is unknown and possibly unsafe. Therefore should not be caused. Some automatically calculated sub-goals can be unsafe too, unless permitted.

The problem Why not to enumerate bad states: –too much work –humans are poor at systematically predicting things. Especially when they are not directly interested in that Why not to tell the robot all the sub-goals / steps towards the goal: –too much work –again, unexpected consequences of given steps

The problem Opposed interests: –to let the human get the job of robot configuration / instruction done quickly –to still have control and no surprises

Proposed solution Bad is implicit Usually enumerate only: –goals; –“okay” changes => permissions Perhaps simpler to enumerate Analogy: public vs private law

A second analogy Three laws in the order of priority: –Do not do anything that is not explicitly permitted. –Fulfill the goals that are given to you. –Optionally fulfill the optional goals.

An useful concept If you can undo something, it is usually safe, assuming that current state is safe. From that follows: –the principle of avoiding irreversible actions –two special classes for actions and their corresponding results, called “irreversible actions” and “reversible actions”.

Few motivating examples Street cleaning Room cleaning Making room on harddisk Littering crap

About permissions The permissions are usually for: –changes in given dimensions –usually not about specific actions

A simple language example Goal x = 2; Allow y = any; Reverse z; Dontdisturb w; Guarantee for q1 = 44 is q2 = 37; Context a = 177; Askauth allow b = any;

Data flow Sensors, certain functions calculating some value etc… The configuration Three datastructures: - preconditions / context - keep-always conditions - goal conditions Automatic plan generation Precondition checking Causal relations / prediction module

Adding optional goals to the language An example: Obligatory { Goal robot.location = “in front of TV”; } Optional { Goal floor.still_clean = yes; }

Second extension – cost calculation Lets add budget for achieving optional goals: Optional { Goal x4 = 3; Cost x4 = 10; Scale x4 = *;//infinite resolution Dontdisturb x3; Cost x3 = 4; [Scale x3 = per unit]; } Budget = 55; Max steps = 20; Max time = 10min;

The protocol When giving permissions, make sure that context is correctly specified! Opposing interests of human user: –to give many permissions and get quickly rid of the job –giving only necessary permissions and to specify their proper context Selinux analogy

Robot learning The sandbox Levels of sandboxes Bonus: understanding the concept of reversibilities helps to repeat motor actions until the coordination is good enough

“Passive” safety Distinguishes user’s commands from auto- generated ones; does not override users: –The robot distinguishes clearly between the orders that were given and the sub-goals it has set to itself. –By default avoids only own mistakes. –Even more: the robot may refuse to act. But will not do anything else than what humans have permitted.

Planning module Uses minimax search: –In case of uncertainties assumes worst –Optimises the cost of the plan

Errata May stop when encountering unexpected / unknown situations, unless instructed otherwise using context-specific goals.

Implementation language Prolog: –has built-in parser (for configuration processing) –has variable data type –automatic memory management –has useful data types for expressing constraints, or uncertainty –conveniently short syntax for failing function calls and resuming alternatives at upper levels in the planning module –“scriptable”

Future Multiple contexts / goal sets Online planning, partial plans Online diagnostics and remedy taking in case of danger, faults etc. Automatically finding unnecessary rights More powerful prediction module Time constraints

Future Asking for authorisation during planning –Askauth allow x = any; Asking the user to choose and authorise one plan from a set of automatically proposed alternatives Different userlevels Understanding changes caused by external agents or natural forces

Immediate future Prediction module – using high-dimensional regression Planning module – planning / search to be done backwards from the goal, not by breath-first or depth- first search. –This also allows breaking the planning task to independent parts Perception module – hierarchical composition of entities in the sensory space-time and assigning some of them to keywords. –Bonus: the same structure can possibly also be used for plan- generation / constraint satisfaction