Final Presentation 06/06/2005 Virtual Traffic Signal Presented by: Ron Herman Ofir Shentzer Instructor: Mr. Mony Orbach Technion – Israel Institute Of Technology Electrical Engineering Department
The Basic Idea… One of The major factors in today ’ s car accidents is driver ’ s lack of attention. a solution to this problem is a system which produces alerts in real time to the driver. The system can identify a compromising situation to the driver, according to pre-defined profiles, that characterize which approach to the traffic sign is dangerous.
Block Diagram Remote DB server GSM Card GSM HandlerGPS Handler MySQL Handler Local DB server User Interface Controller Traffic Signs Container GPS Card
Design’s Description The Local DB holds the traffic signs relevant to the vehicle’s present location. This Information is synchronized with the vehicle’s orientation. The Controller interacts with a Remote DB (holding the entire set of traffic signs) via GSM cellular communication. A request for update is sent by the Controller to the GSM card, and the relevant data is retrieved from the Remote DB, according to the current location. Each pre-defined time interval, the Controller unit Checks whether the vehicle is in a compromising situation, and if so, a warning signal is sent to the driver through the User Interface.
Class Diagram See Attached Word Document …
Class Diagram (Cont.) MySQL – the local database server. GPS – data manipulations. Controller – information processing. Signs - holds signs types. GUI – the user interface. GSM – connecting the remote DB
Class: MySQL This class enables access to a mySql server which is used as the local database. Through it we can query for specific signs ’ data necessary for the controller. This class is an object oriented wrapper for simplifying access to mySql server.
The Local Database The local DB is implemented using MySQL-server, for better performance and modularity. Each record in the DB represents a traffic sign of some sort, using the following identifiers: Area of operation: direction, location, effective- radius, opening-angle. Identity: sign-type, sign-SN. (serial number) and comment. (example in next slide…)
The Identifiers In Practice Visible in this drawing are the Area of operation (the shaded triangle), the sign’s direction, the work-angle, the effective radius.
MySQL DB screen shot
Class: GPS The GPS class handles two tasks: Retrieve GPS data samples (velocity, location, direction). Manipulate the retrieved data, such as calculating absolute distance or speed and several location vector calculations.
Class: Controller The controller processes input data from the database and the GPS. Utilize it to recognize compromising situations. If the controller decides such situation exists, it sends appropriate alerts to the user.
The “Magic” behind the decision… The Controller has to identify a compromising situation based on the car’s location and speed and a set of signs stored in the database. All the sign’s are extracted from the database. Sign’s area of operation is check to see if it holds the current car’s location. This decision is made by a special function called “isInRange”. “isInRange” gets the sign’s parameters (direction and opening angle) and checks if the car is in the sign’s view range. (see next slide for illustration)
Is In Range… ?
The “Magic”… (cont.) Once we found that the car is in the sign ’ s range of operation, “ isSafe ” method is executed, to check if the sign ’ s profile is met. If the car violates the sign ’ s profile a proper alert is invoked. The “ isSafe ” method is a member of the sign class, and will be reviewed in the following slides.
Making the decision - flow chart Get GPS sample get all sign from DB For each sign S on our road do: Is car in sign’s angle of operation Is car facing the sign? Is car in sign’s radius? S.isSafe ? Invoke alert Start No Yes
Class: Signs Signs is in fact a container which holds all the signs familiarized by the system, such as stop sign, slow sign, etc… Each sign is an object for itself. All the signs inherits from a super object while using the polymorphism mechanism.
The Sign Object Each Sign must implement a certain function called “ isSafe ”. The “ isSafe ” method is a virtual method which each sign implements differently, according to it ’ s profile. “ isSafe ” checks whether our current car ’ s status complies with the profile. (example in next slide … )
Example : “Stop Sign” Profile 100m50m This profile is based on Galileo's equation: x denotes distance and v 0 denotes speed at distance of 0 meters
Class: Graphical User Interface The user interface was implemented using MFC concepts. The interface displays the warning messages to the user. It also displays additional information for better understanding of the running simulation, such as: The current GPS sample data. a radar-like view of the surrounding signs. (100 meter radius) a view of the closest sign. (screen shot available in next slide)
GUI screen shot
Updating the local DB –“Paging” The model divides an area into 9 pages. (each on represents a 2Km by 2Km of square area). The aim is to keep the vehicle in the center page (out of the 9 squares). Each movement to an outside page leads to an update: acquiring three new pages instead of three pages that are thrown away. A page
Paging (Cont.) N Here is an example of how the model operates: A vehicle in the center page is moving north Three south pages are deleted from the local database Three new pages taken from the remote DB replace them in the north Ultimately, the vehicle remains in the center page
Frequent page swapping Problem: if the vehicle “ hops ” between the borders of a page, the mechanism will react with frequent page swapping. Produces: Downgrade in performance High and unnecessary communication traffic
Frequent page swapping (cont.) Solution: “ Schmidt Trigger ” Only when the vehicle passes the red outer border, a page swap will take place. Now, when in the new center page, only if the green border is crossed, a page swap will occur. Thus, a “Schmidt Trigger” mechanism was created. new old
Alternative Model The “moving balloon”: theoretically most effective model. The vehicle remains centered at all times. Areas are added/removed in crescent shapes. Problem: Hard to implement under current infrastructure
Algorithm Optimization The identification algorithm has been improved. Used to be: scanning all the records in the local database Problem: Requires considerable amount of computing power slow reaction time Solution: Denote each sign with a corresponding road number Keep track of the road number the vehicle is on Scan only signs which match the road Records with same road num Entire DB
Pseudo Signs The system makes use of pseudo signs These signs: Denote the road number Planted in the database. Equipped with special identity label Located at the start of every roadway Scanned like any other record There exists an insignificant tradeoff since the pseudo signs also take part in the scan.
The GPS coordinates generator In order to be independent of the GPS card, a GPS card simulator had to be built. The simulator objective is to produce a set of coordinates and corresponding velocity values which ultimately represents a route. Route is created by using time slots. Each slot represents one instruction which can be: Acceleration (negative/positive values) Turn Stop A collection of such instructions creates a single route.
The GPS coordinates generator - screen shot
06/06/2005