Safe Collaborative Driving Systems NSF 1035178 and 1329593 Nick Maxemchuk Columbia University Engineering is the Art of Managing Complexity Photograph.

Slides:



Advertisements
Similar presentations
Synthesis of Protocol Converter Using Timed Petri-Nets Anh Dang Balaji Krishnamoorthy Manoj Iyer Presented by:
Advertisements

Remus: High Availability via Asynchronous Virtual Machine Replication
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
Mahadevan Subramaniam and Bo Guo University of Nebraska at Omaha An Approach for Selecting Tests with Provable Guarantees.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Software Requirements Engineering
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Distributed systems Module 2 -Distributed algorithms Teaching unit 1 – Basic techniques Ernesto Damiani University of Bozen Lesson 3 – Distributed Systems.
CPSC 668Set 16: Distributed Shared Memory1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
Presented by: Hatem Halaoui
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
1 I/O Management in Representative Operating Systems.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Software Testing & Strategies
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Software Testing and QA Theory and Practice (Chapter 10: Test Generation from FSM Models) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory.
Chapter 13 & 14 Software Testing Strategies and Techniques
What is it? A mobile robotics system controls a manned or partially manned vehicle-car, submarine, space vehicle | Website for Students.
1 Physical Clocks need for time in distributed systems physical clocks and their problems synchronizing physical clocks u coordinated universal time (UTC)
Lect11.ppt - 03/15/05 CDA 6505 Network Architecture and Client/Server Computing Lecture 11 Link-Level Flow and Error Control by Zornitza Genova Prodanoff.
Link-Level Flow and Error Control
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
ISO Layer Model Lecture 9 October 16, The Need for Protocols Multiple hardware platforms need to have the ability to communicate. Writing communications.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Protocol Architectures. Simple Protocol Architecture Not an actual architecture, but a model for how they work Similar to “pseudocode,” used for teaching.
Protocols and the TCP/IP Suite
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
University of the Western Cape Chapter 12: The Transport Layer.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing and Quality Assurance Software Quality Assurance 1.
Databases Illuminated
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Commit Algorithms Hamid Al-Hamadi CS 5204 November 17, 2009.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
By Fernan Naderzad.  Today we’ll go over: Von Neumann Architecture, Hardware and Software Approaches, Computer Functions, Interrupts, and Buses.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Stack Processing Algorithm for Go Back N protocol Team Members: Vinti (vv2236) Garvit Singh (gs2731) Pramod Nayak (ppn2106) Vidhatre Gathey (vvg2111)
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Relying on Safe Distance to Achieve Strong Partitionable Group Membership in Ad Hoc Networks Authors: Q. Huang, C. Julien, G. Roman Presented By: Jeff.
EEC 688/788 Secure and Dependable Computing Lecture 10 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Group mambers: Maira Naseer (BCS ).
Hardware & Software Reliability
Wireless Sensor Network Architectures
Levels Of Testing and Special Tests
Chapter 13 & 14 Software Testing Strategies and Techniques
Transport Layer Unit 5.
Software testing strategies 2
Lecture 09:Software Testing
Software testing.
EEC 688/788 Secure and Dependable Computing
Chapter 10 – Software Testing
Calibration and Validation
Integration Testing CS 4311
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Safe Collaborative Driving Systems NSF and Nick Maxemchuk Columbia University Engineering is the Art of Managing Complexity Photograph courtesy of NASA

Example – A Collaborative Merge Protocol Car 1 signals its intent to merge between cars 2 and 3 Car 2 uses intelligent cruise control to maintain a safe gap behind both cars F and B Car 3 increases the gap to car 3 to 2*safe gap + car length Car 1 uses intelligent cruise control to maintain a safe gap behind car B and create a safe gap behind car 2 When the gaps are safe, the driver in car 1 receives a signal to merge. Objective: To prove that the protocol will not cause an accident for combinations of failures, including 1) mechanical failures, 2) loss of communications, 3) unexpected obstacles in the roadway, 4) non- participating drivers who move into the gap, …

Managing Complexity 1.An architecture that partitions the problem into smaller, more manageable pieces 2.Eliminate ambiguities -- replace timers that are initiated over an unreliable channel with deadlines based on synchronized clocks 3.Reducing pairwise verification of a large number of implementations by checking a single model and a single conformance test of each implementation

Objectives of an Architecture Lessons from Communications Architectures Break a big design problem into smaller, more manageable modules – A stack architecture with well defined interfaces Stack Architectures – A subset of possible modular architectures – Re-use the modules in many applications – Modify modules independently – as long as services are preserved Stacks also partition testing into smaller pieces  The services provided by a layer are verified. o A higher layer is verified assuming the services from the lower layer  Black box conformance testing at the service interfaces

An Intelligent Vehicle Architecture  Multiple Stack architecture with Well Defined Interfaces  One stack for each interaction with the physical world  Use services from lower layer in the same stack or any layer in another stack In order to guarantee that we can design, verify and modify components independently, we must verify that there are no loops Example: o There is an implicit loop between anti-lock braking and measurements. Feed back control must be considered when designing anti-lock brakes o If a broadcast protocol transmits messages at specified times, and the broadcast protocol is used to synchronize clocks, then the implementations must be designed together. Services are provided to specific protocols in a layer, not to the layer o The figure shows the services in the merge protocol

Architecture

Synchronized Clocks 1.Time is a critical component in coordinated driving maneuvers – Vehicles must start and complete maneuvers according to a planned schedule – In the merge protocol, cars commit to the operation for a specified time, and abort the maneuver if the gap isn’t created by a deadline before the end of the commit time 2.Recent advances make synchronized clocks the new capability in protocols – Inexpensive, accurate, atomic clocks are distributed by GPS – Crystal oscillators maintain clocks while GPS isn’t available – NTP and PTP can synchronize nearby vehicles when necessary 3.Synchronization can reduce the possible protocol sequences – Timers that are set over an unreliable communications channel can start at different times in different vehicles – which results in different execution sequences – Synchronized clocks can guarantee a unique sequences – For instance, attacking armies synchronize their watches 4.Synchronization can provide guarantees that cannot be obtained without synchronization – A Lock Protocol

A Safe Lock Protocol –Using Synchronized Clocks Before merge protocol is used, 3 cars must obtain a lock – Each Accepts only 1 lock Simultaneously Release the lock at an absolute time deadline Merging car – the master - does not use the lock without receiving acks from the other two

Proving the Safety of Intelligent Vehicles 1.The case for model checking and conformance testing rather than pair wise testing – The number of different manufacturers, models per manufacturer, and model years (generations per model) will make pair wise testing unsustainable – N different implementations of a system with k participants may require N k pair wise tests. Formal methods require 1 model check and N conformance tests – procedure used for the telephone network – Formal testing procedures allow us to only test the new components in an architecture, rather than the entire vehicle 2.The case for probabilistic testing rather than test tracks – You cannot operate a vehicle on a test track for a day and guarantee that it will not crash in the real world less than once every 10 or 20 years – Probabilistic verification is a directed simulation that has guaranteed less than one failure per 100 years in communications protocols

Pair Wise Testing of Implementations vs. Model checking + Conformance Testing of Implementations 4 Makes 3 Models

Pairwise Verification

FSM Specification Conformance Testing

Method: Model Checking and Conformance Testing of Protocols 1.Unambiguous model of the interactions between users Finite state machines (FSM, EFSM) – component machine (Also SDL, Pseudo code, Petri nets, …) 2. Verification of the model Look at sequences of interactions - (Instead of proof systems) Composite Machine - 4 participants with 10 states each may have 10,000 states (Number of execution sequences is much larger) Differs from program verification (both execution sequences and data values) 3. Conformance testing Prove that the implementation of the component machine for each user correctly and completely implements the model Argue that all N implementations will work together because they all implement the same model, that has been verified

Engineering Applied To Verification How to solve problems that mathematicians consider intractable 1.Probabilistic Verification: Explore most likely sequences first  Don’t reconsider high probability paths many times  As in simulations and on test tracks Upper bound on probability that an unexplored sequence will occur  Unexplored paths are unlikely in the life-time of the machine 2.Multi-dimensional Architecture: Partition verification into smaller, more manageable pieces  The services provided by a layer are verified.  The next layer is verified assuming those services 3.Time Synchronized Protocols: Removes time from the finite state machine  Continuous values of time is similar to data in program verification Reduces the number of sequences that must be explored

Example: Probabilistic Checking of an ARQ protocol Composite Machine – Combination of all interactions Search the sequence without errors only once If P <= 10 -3, one message is transmitted every 1 sec, and we search 5 levels, Each unexplored path occurs less than once every 100 billion years

Conformance Testing Objective: To guarantee that the hardware or software implementation of a protocol matches the model that has been verified Test that every edge from every state in the FSM is initiated by the proper input, issues the proper output, and leads to the proper state.  The final state is tested using a UIO sequence, that ends in another state.  A minimal test sequence is constructed with the Rural Chinese Postman Algorithm When an implementation matches the model it will interoperate with any other implementation that matches the model  The implementations of a protocol by different manufacturers will operate together  For N implementations, interoperability is guaranteed with N tests of the component machine, instead of N i i-party tests (composite machine)

Conformance Testing in Intelligent Vehicles We test the component machine (one vehicle) rather than the composite machine ( the interaction between a number of vehicles) We test the the procedures in one layer in one stack by applying the inputs and observing the outputs across the well defined interfaces, rather than the entire vehicle – Since the same communications routine is used for every collaborative application,( cooperative braking, merges, intelligent cruise control), it isn’t necessary to check the communications multiple times. Problem: The postman algorithm that was used for communications protocols does not consider time critical events – The only timers were for retransmissions. The timer was set and the machine stayed in the state until a message was received or a timeout occurred

Time in Conformance Tests If the transition between two states occurs because of a time-out, in order to test the edge we must: 1)Execute a transfer sequence to the edge where the time-out is set, and set the time out 2)Execute a transfer sequence to the state where the time out occurs. 3)Wait for the timer to expire – The transfer sequences may also contain edges with time-outs that need to be set and waited for. The sequence that can successfully exercise the current time out may be difficult to find, and the waits may be excessive A strategy with accurate clocks: 1)A shared memory between processes stores the time of occurrence for all time related events – timeouts are set as outputs from a module 2)In any module, timeouts are an external input from the shared memory 3)To test an edge, the input to the module is just the input that is received from the shared memory We are designing a shared memory for timeouts, sensor readings, … Each memory elements has guarantees for the element Which participants definitely have the value, which participants know which other participants have the element, …

Result: A Fail Safe Assisted Merge Protocol Operation: Notify the driver when there is a safe gap. If there is uncertainty about safety, notify the driver and implement automated spacing, and lane maintenance Dependent on: Intelligence cruise control: – Maintains distance to more than one car – spacing between cars can be set A shared memory of the map of vehicles and the deadlines The lock protocol A fail-safe, reliable broadcast protocol – If anyone cannot recover a message, everyone knows -- quickly – Scheduled message and ack transmissions – token passing – If a scheduled message is not recovered, stop transmitting, so that no one can recover your scheduled message.