520 likes | 815 Views
Automated Pedestrian Collision Avoidance System (APCAS-3). Team ARBY members: Brandon Waterloo – Project Manager Anthony Donofrio – Project Facilitator Raymond Heldt – Customer Liaison Yevgeny Khessin – Artifacts Manager.
E N D
Automated Pedestrian Collision Avoidance System (APCAS-3) • Team ARBY members: • Brandon Waterloo – Project Manager • Anthony Donofrio – Project Facilitator • Raymond Heldt – Customer Liaison • Yevgeny Khessin – Artifacts Manager Any questions/concerns regarding this project should be directed to the course instructor, Dr. Betty H.C. Cheng (chengb at cse dot msu dot edu).
What is APCAS? • Safety system embedded in a car which avoids hitting pedestrians. • Auto-brakes when collision is imminent. • Autonomous cruise velocity when road is clear.
Motivation • Human drivers crash • Can get distracted while driving • Talking on phone • Might be asleep • Slower reaction time than computers • Can’t calculate trajectories in less than 1/10 of a second
Motivation • Slamming on brakes isn’t always optimal • Loses time • Blocks traffic from behind • Can cause rear-end collisions • Ideal APCAS only brakes enough to avoid collision
APCAS – Main Goals • Safety • Automatically brakes to avoid collision with pedestrians • Efficiency • Doesn’t brake more than what is necessary to avoid collision
Project Constraints • Doesn’t have auto-steering • Can’t overcome hardware failures • Auto-shuts off in the event of improperly functioning hardware • Sensor breaks down • Camera lens obstructed • Driver is notified
Security • Can’t be hacked by outside source • Only accepted input is from the car’s sensor and the car itself (velocity) • Information sent is hard-wired, not wireless
What does it look like? Pedestrian Vehicle APCAS controller Camera/Sensor Brake-by-wire actuator
How does it work? Pedestrian’s info: location, velocity Sensor gets information about nearby pedestrians every 100 milliseconds (ms) APCAS controller takes that information to calculate possibility of collision every 100 ms Vehicle’s info: current speed in kilometers per hour (kph) Brake-by-wire actuator gets messages to brake when necessary
Requirement Specifications (drawings not to scale) Vehicle Specs Acceleration to get up to speed: 0.25g • (g = 9.8 m/s2) Normal cruising speed: 50 kph Vehicle has width of 2 meters (m) Maximum braking force: 0.85g
Requirement Specifications Pedestrian Specs (drawings not to scale) Pedestrian is considered a circle with size 0.5m diameter Pedestrian’s speed: 0 or 10 kph (Margin of error: +/- 0.2 kph) 0.5m Pedestrian’s direction of movement: at a right angle relative to the car’s path (Margin of error: +/- 5 degrees)
Requirement Specifications (drawings not to scale) Pedestrian Specs Margin of error in pedestrian’s location: +/- 0.5m
Demonstration of Prototype http://www.cse.msu.edu/~cse435/Projects/F2012/APCAS-3/Prototype/
Key classes used in APCAS • Sensor • Calculates location and velocity of sensed pedestrians. • Car • The vehicle being driven. • BBWSystem • The autonomous braking system used by this system. Gets messages from Car to apply brakes when necessary. • APCAController • Core of APCAS. Takes all info generated and calculates collision state, as well as what action to take.
Key functions • Car::GetCarVelocity() • Returns as output the car’s current speed (kph) • APCAController::HandlePacket() • Accepts as input a packet of data about nearby pedestrians generated in the past 100ms • Uses this info and the Car’s velocity to calculate possibility of collision. • Tells Car to brake or accelerate if necessary
Sequence Diagrams Collision Imminent
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is imminent
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is imminent • APCAController gets Car’s velocity again
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is imminent • APCAController gets Car’s velocity again • APCAController tells Car to brake by a certain amount(hard brake – more than 0.25g)
Sequence Diagram Collision ImminentSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is imminent • APCAController gets Car’s velocity again • APCAController tells Car to brake by a certain amount(hard brake – more than 0.25g) • Car tells BBWSystem to apply brakes by that same amount
Sequence Diagram Collision Possible
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is possible
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is possible • APCAController gets Car’s velocity again
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is possible • APCAController gets Car’s velocity again • APCAController gets Car’s initial velocity
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is possible • APCAController gets Car’s velocity again • APCAController gets Car’s initial velocity • APCAController tells Car to brake by a certain amount(soft brake – no more than 0.25g)
Sequence Diagram Collision PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision is possible • APCAController gets Car’s velocity again • APCAController gets Car’s initial velocity • APCAController tells Car to brake by a certain amount(hard brake – more than 0.25g) • Car tells BBWSystem to apply brakes by that same amount
Sequence Diagram Collision Not Possible
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision Not Possible
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision Not Possible • APCAController tells Car to Resume Initial Velocity(50 kph)
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision Not Possible • APCAController tells Car to Resume Initial Velocity(50 kph) • Car tells BBWSystem to apply no brakes
Sequence Diagram Collision Not PossibleSequence of Events: • Driver starts Car • Car gets latest packet of pedestrians from Sensor • APCAController gets this packet from Car • APCAController gets Car’s velocity • APCAController calculates Collision Not Possible • APCAController tells Car to Resume Initial Velocity(50 kph) • Car tells BBWSystem to apply no brakes • Car accelerates to get up to 50 kph
State Diagram • State of the system is based on the current collision state • Can switch from any state to any other state (including itself)