Academia.eduAcademia.edu

Self-Driving Car Simulator

Our paper attempts to simulate the car driving task in a partially observable, dynamic and continuous environment using a hybrid approach of rule based and case based systems in order to check its feasibility in solving a complex real world problem as quickly as possible.

Self-Driving Car Simulator Ishtiak Zaman, Shrijit Pillai, Tejas Shah Indiana University Bloomington 107 S Indiana Ave Bloomington, Indiana 47405 Abstract The Self-Driving Car is one of the most challenging and interesting topics in the field of Artificial Intelligence today. The problem is challenging as the system operates in a partially observable, continuous and dynamic environment. In such an environment, the system not only has to take care of the driving task but also should be contextually aware of the environment to the maximum possible extent. Our project attempts to simulate the car driving task in such an environment using a hybrid approach to check its feasibility in solving a complex real world problem as quickly as possible. 1. Introduction The Self-Driving Car has a very rich domain. There are a number of factors that affect the driving process such as the speed of the car, obeying the traffic rules, the position of other vehicles on the road, the speed at which those vehicles are operating and many more. The system is not fully aware of all the factors that affect its operation and many a times it is necessary to respond quickly to avoid any untoward incident. It is because of this reason that the domain is one of the most challenging and intriguing in the field of Artificial Intelligence. It is interesting to understand the underlying system that performs such complex operations. In our project, we have implemented the system using a hybrid approach of Rule based and Case based systems. The Rule based system handles the basic driving tasks such as stopping on a Red signal or a stop sign, adjusting the speed based on the speed limit sign and handling the lane change. The Case Based system handles the exceptional events such as stopping the car when a pedestrian crosses, taking evasive action upon sensing an emergency such as applying the brakes hard or steering away. The combination of the Rule based and Cased based system integrates the basic driving task with the ability to take accurate and quick decisions. Our system takes a flat file as input which contains the directions from source to destination along-with some metadata which describes the route. Our system does not make use of any hardware such as the camera or sensors to obtain Copyright c 2015, Association for the Advancement of Artificial Intelligence (www.aaai.org). All rights reserved. the state of the environment. To compensate for the lack of computer vision, our system utilizes event generators to generate random events to test the functionality of the system. Our project has two primary goals:• Realize the potential of a hybrid system operating in a partially observable, continuous and dynamic environment. • Evaluate the ability of the system to take accurate and quick decisions in such an environment. The paper is organized as follows: Section 2 discusses the motivations for our project. Section 3 describes the related work. Section 4 explains the design of our system and the justification of the system design. Section 5 describes the implementation of the system and Section 6 gives an account of the evaluation of our system in terms of performance. Section 7 highlights the future work, Section 8 is the conclusion and Section 9 is the Appendix which briefly describes the output giving an overall picture of the program. 2. Motivation i. Reduction in Accidents It is estimated that over 33000 people are killed every year in the US alone due to vehicular crashes and over a million people worldwide. Ninety percent of the accidents are due to human error. The Self-Driving Car can reduce the accidents occurring due to human error. ii. Environment-Friendly The Self-Driving Car can save 10-15% on fuel by operating at optimal speeds thereby saving fuel iii. Increased Roadway Capacity The cars can maintain a fixed distance between each other thereby increasing the road capacity. An increased road capacity results in more convenient travel and reduction in congestion. iv. Increased Productivity It is estimated that in the Unites States people who drive cars spent around 157 hours per year driving. The task of driving being taken over by the car, productive work can be done during the travel time such as replying to e-mails, preparing for a meeting, preparing slides for presentation or even take some well deserved nap. 3. Related Work The paper on Case Base Prediction of Teen Driver Behavior and Skill [1] uses case based techniques to model vehicle control behavior of teens. The paper employed a pure case based reasoning approach to predict the behavior of the driver. The problem of predicting driver behavior is the regression task of predicting the values of steer, throttle and brake for a given situation based on previous experiences of cases. Our system, although hybrid, is similar in the case based reasoning part. Based on the retrieved case, the system adjusts the speed of the car by accelerating or decelerating by an amount which is determined by the severity of the case. The paper [2] discusses a driver model which models the human driver. The paper describes the sensory limitations, steering control calculation, speed control, path planning and prediction capability of the driver model. Our project accounts for the sensory limitations using the random event generators. The prediction of the possible next state(in case of an exceptional event) and the corresponding action it should perform is handled by the case based reasoning system. The controller component of the system uses the retrieved case to manipulate the speed of the car. The paper [3] describes a number of near-collision driver behavior models such as avoidance by braking, avoidance by steering and a combination of both. The paper describes the application of these models depending on the situation. For example, if there is a scenario of head-on collision, then the best approach might be to brake as well as steer towards the left or right. This not only reduces the impact of collision(if it occurs) but by moving away from line of impact, the chances of collision are reduced. Some of cases in our case base too follows this approach to avoid a collision and if a collision does happen the severity is reduced due to the reduction in speed. The paper [4] describes Boss, an autonomous vehicle that uses on-board sensors and a three layered planning system to drive in urban environments. The first layer decides the route to take, the second layer decides the behavior of the car such as when to change lanes and the third layer performs actions to avoid obstacles. This is quite similar to the approach followed by our system. The difference is that our system does not use computer vision; the events are generated randomly to test the system and the case base system handles the functionality of the three layers in Boss. The paper [5] discusses the techniques to predict the future location and speed of a dynamic object in an urban environment so that handling of exceptional events involving the dynamic object can be performed. Our system performs this future prediction based on the similarity of the retrieved case. The retrieved case produces a plan which allows the system to determine the action to be taken to handle the event. 4. System Design The Self-Driving Car Simulator that we developed follows a Hybrid approach consisting of the Rule Based and Case Based systems. Such an approach allows for a clear division of tasks between the two systems with the Rule based system handling the basic driving rules and the Case Based system taking care of the exceptional events. Figure 1. shows the architecture of our system. Figure 1: High level system model The high-level overview of the system is as follows:The system starts by taking a text file as input which contains the directions from the source to the destination. The file contains meta-data related to the route such as the number of lanes, whether the lane is single-lane or multi-lane, whether a signal or a stop sign is present at the end of the lane, whether the lane has a speed limit and the lenth of the lane. The event generator generates exceptional events periodically. In case of a random event generated by event generator, the system checks in the case base for similar rules and retrieves the case with a similarity greater than a pre-defined threshold. The actions taken by the system is output to the console. The components of the system are as follows:i. Car Controller: The car controller is the core component which drives the system. It processes the lane related information, one lane at a time and co-ordinates the activities between the Rule based and the Case Based system. ii. Event Value Generator: It is named so because it generates values corresponding to the events and not the events. For example, if the signal is visible to the car (which is determined when the car crosses a threshold distance on that lane), the event value generator outputs a random signal value (RED, AMBER or GREEN). If the event value generator is probed again for a value, it outputs the current value based on the previous value. For example, if the previous value output was RED, then the current value will either be RED or GREEN and not AMBER. iii. Event Generator: It generates random exceptional events to test the functionality of the case based system. The event generated by the generator contains information such as the object(pedestrian, vehicle etc.), distance from the car, speed of the object and the direction with respect to the car. iv. Rule Base: It contains the rules to be matched based on the condition. v. Case Base: It contains the pre-loaded cases which will be assessed for similarity with the random case generated by the event generator It is to be noted that the Controller probes the Event Value Generator for random values corresponding to basic driving events. The data related to these events are available in the lane information. Based on the random values provided by the generator, the rule base is checked and the corresponding action is returned. For exceptional events, the Event Generator generates random cases; the Controller never probes the Event Generator. So when the Event Generator produces the events, the task is directed to the Case Base System. Rule Based System: The Rule based system consists of the Controller, the Event Value Generator and the Rule Base. The car controller operates based on the data present in the file. The controller starts the car simulator and for each related lane data in the text file, the controller controls the simulator accordingly. For example, if there is a STOP sign at the end of the lane, the car upon reaching a threshold distance (braking distance), would check the rule base for the corresponding rule and perform the necessary action, in this case, to stop the car. The controller would then probe the event value generator periodically until an ”all clear” value is provided by the generator. Case Based System: The Case based system consists of the Controller, the Exceptional Event Generator and the Case Base. The exceptional event generator generates events from a random set of events. To avoid cold start problem, the case base is preloaded with cases to start with so that it can handle the random events generated by the event generator. As accurate and quick responses are required in case of an exceptional event, the case based system assesses the similarity between a candidate case and the exceptional event until the first case which is more than 90% similar to the random event is searched. The case base might contain cases with better similarity, however, as quick response is needed, a trade-off between accuracy and retrieval time is employed. If no cases with similarity greater than the minimum threshold of 50% similarity is found, then the system defaults to applying the brakes to stop the car in the minimum possible time. The evaluation section discusses the time taken to search the entire case base and if the car can successfully handle such an exceptional event (an event for which no satisfactorily matching case is found in the case base). Each matching case retrieved from the case base goes to the modifier part of the case based system. The modifier modifies the ”priority” and required final speed of the car depending on the current state of the car to the controller. The ”priority” is rate of acceleration/deceleration which indicates the degree by which speed of the car should be increased or decreased to handle the event. Why a Hybrid System? The main advantage of the hybrid system approach is that there is a clear division of tasks between the rule based and case based systems. This allows the events to be directed towards either the rule based or the case based system depending on whether the events are basic driving rules or exceptional events. The second benefit of this approach is that the search space has been reduced. Had the exceptional events been also included in the rule base, then the number of rules would have increased. As a direct consequence of the reduced search space, the rule/case retrieval time is reduced. The hybrid approach also enabled efficient knowledge representation. Representing the cases as rules would have resulted in a large number of antecendents for the rules and would have also resulted in long chains. The hybrid approach helped to avoid such a scenario. Finally, the approach enables the system to give compelling explanations for its actions. 5. Implementation The Car simulator has been implemented using the objectoriented methodology. The object-oriented approach allows for modularity and flexibility which is essential in the development of the simulator. The controller, event value generator and the event generator are implemented as objects. The main program starts by reading the input text file and storing the information in the file to be processed by the controller. path = [{Src:’FP’, Dest:’IMU’, Dist:0.5, event: [{turn:’L’,move:0.1, lane:2, signal:True}, {turn:’R’,move:0.1, lane:2, signal:True, sign: ’speed˜40’}, {turn:’’, move:0.1, lane:1, signal:False, sign:’speed˜20’}]}] The data read from the input text file will be stored in the above format. The ’Src’ and ’Dest’ are the source and destination respectively and the ’Dist’ attribute is the total distance between the source and destination. The boolean signal attribute of ’True’ indicates the presence of the signal at the end of the lane. A ’False’ value indicates a STOP sign. The speed limit sign shows the speed limit of the lane. So speed 40 indicates the speed limit of the lane is 40 kmph. The ’turn’ attribute indicates whether the car should take a left (’L’), right (’R’) or go straight (’S’). A turn value ’D’ indicates that this is the last lane to reach the destination. The ’move’ attribute indicates the length of that particular lane. The default speed of the car is assigned to be 25 kmph or 15 mph and the default sleep time is kept to be 10ms. The sleep time is necessary to display the output to the console in a controlled manner. Rule Based System The Rule Based System handles the Lane Change, Speed Limit, Signal and the STOP sign. The Appendix (Section 9) describes the Rule Based System by showing the output of the program. The handling of these rules are explained below in detail:- Handling Lane Change After the car crosses a particular threshold (65% of lane distance), the controller probes the event value generator to give the status i.e. if it safe to change the lane or not. Based on the value the generator provides, controller searches the rule base and performs the necessary action. The action could be to change the lane, wait or no action required. If the action is to ”wait”, then the controller again probes the value generator after a set period to give status and this process repeats until the generator gives an ”all clear” value or the signal is reached. If ”no action is required” then it means that there is no need to change the lane(either the car is on the correct lane or it is a single lane path). Handling Speed Limit If the lane contains a speed limit sign, then the controller adjusts the car’s speed accordingly. The value of the speed limit is extracted from the lane information and then the speed limit is compared to the car’s current speed. The rule base is checked to retrieve the necessary action. If the car’s speed is less than the speed limit, then the car’s speed is increased else it is decreased until the speed is in the range of +1 or -1 of that of the speed limit. Handling Signal In this case, when the car reaches the braking distance, the controller probes the event value generator to give the status of the signal. If the value is ”RED”, the rule base is searched for the corresponding action. In this case, the action is to slow down the car. After a set period of time, the controller again probes the value generator for the status. If the value is ”RED”, the car keeps slowing down. The process is repeated until the car stops or a ”GREEN” signal is received. If the value is ”GREEN”, the action returned from the rule base instructs the controller to increase the speed of the car. It is to be noted that while slowing down, the car takes a long time to come to a halt. In fact the speed of the car never reaches zero but very close to zero. So to handle this issue and to make the car halt, the speed of the car is made zero once the speed becomes less than 0.35 kmph. Handling STOP Sign This is similar to handling the signal event. Only in this case, once the car crosses the braking distance, the controller does not probe the event value generator. This is because the controller is aware that there is a STOP sign at the end of the lane. This information is available from the lane data that was parsed when the text file was read. Once the car stops before the STOP sign, it probes the event value generator until an ”all clear” value is obtained. After the value is obtained, the car starts and continues its journey. (accelerate, me, priority, 40) ] The above case shows an exceptional event that there is a Bus at a distance of 20 meters to the left of our car and travelling at a speed of 30kmph. The speed of the car is assumed to be 20kmph. The corresponding action is to accelerate the car to reach the speed of 40kmph. The action has a ’priority’ and based on this value the rate of acceleration is determined. Every case will have a ’priority’ value in the action plan. It is depending on this ’priority’ value that the controller is able to accelerate or decelerate the car quickly. The Case Based system has the following two modules:i. Retriever: The retriever module performs linear search on the case base. The maximum similarity threshold limit is 90% and the minimum threshold limit is 50%. The CBR assesses the similarity between the properties (target, distance, speed) of the object in the event to that of a candidate case in the case base. Let D(c), D(q) be the distance of the object from the car in the candidate case and query event respectively. Let S(c), S(q) be the speed of the object in the candidate case and the query case respectively. Let Di(c), Di(q) be the direction of the object wrt the car in the candidate case and the query case respectively. The similarity between the properties is calculated as follows:Sim(D) = 1 - |(D(q) − D(c))/D(q)| Sim(S) = 1 - |(S(q) − S(c))/S(q)| Sim(Di) = 1 - |(Di(q) − Di(c))/Di(q)| Sim(Total) = Sim(D) + Sim(S) + Sim(Di) The Case based system maintains a mapping between the objects with the SimilarityMatrix. For instance, SimilarityMatrix[Bus][Truck]=0.95 or SimilarityMatrix[Pedestrian][Rock]=0.05. A mapping of the directions is also maintained so that if the direction in the candidate case and query event are opposite then the similarity between them will be 0. ii. Modifier: The Modifier module modifies/adapts the retrieved case to better suit the current state. It compares the distance and the speed of the object in the event with that of the object in the retrieved case. If the difference in the distance and the speed is below a threshold, then the Modifier modifies the priority attribute of the retrieved plan to adjust the car’s speed. The Appendix (Section 9) shows the output of the case based system. Case Based System The cases are stored in the following manner in the case base:[ExceptionalEvent target: Bus Distance: 20m, left Speed: me: 20kmph, Bus: 30kmph P lan 6. Evaluation The system was evaluated for accuracy as well as performance. To measure the ability of the system to take accurate decisions, we modified the random event generator to produce 25 cases per lane. There were four lanes from the source to the destination. So the total number of random cases for one run of the simulator yielded 100 cases. We ran the simulator 3 times. Thus a total of 300 cases were handled by the simulator. For each event generated, the event, the corresponding retrieved case and the similarity value were displayed to the console. We then manually compared the retrieved case with the event for all 300 cases. Since the information regarding the speed and distance of the object in question with that of our car is available, we were able to determine if an accident would take place or not based on the retrieved case. Our findings are as follows:We found out that the case based system performed well in terms of taking accurate decisions. Out of the total 300 cases, the CBR system successfully handled 298 cases. There were two cases that resulted in a collision. These two cases were the ones where the similarity value was very low. Both cases resulted in the CBR returning the default action of slowing down with the maximum priority. However, it is to be noted that there were other cases(5 cases) generated where the CBR returned the default action. But those cases did not result in a collision indicating that the default action successfully handled some cases. One of the two cases that failed involved a bus at a distance of 5 meters coming in from the left and travelling at 40 kmph. The speed of the car was 20kmph. The default case instructed the controller to apply brakes with maximum priority. Rule Based System Performance: The rule based system was evaluated to determine its response time. The response time was evaluated as the difference between the time the instruction to search the rule base was executed to the time the action was returned. It was found that for 100 executions, on average the response time was 0.078ms. The time difference was calculated using the time.clock() function in Python. Figure 3: Response Time of Case Base System Strengths: i. Emulates Real World Driving: System simulates a real world driving scenario to the maximum possible extent. The formula to accelerate/decelerate the car is the classical equation of motion. The case base was constructed based on our experience of driving a car and what we might do in case of an exceptional event. So the case base contains actual previous experiences. ii. Robust and Scalable: The accuracy of the case based system indicates good decision taking ability of the system. The failed cases can be handled by adding more cases to the case base. The priority attribute in the retrieved case in the case base handles the amount by which the speed should increase or decrease. Using this attribute alone, many of the cases can be handled by assigning an appropriate value to priority. This allows the system to be easily scaled. iii. Efficient Response Time: The evaluation of both the Rule Base and Case based system shows that the system has efficient response time. This was possible because of the Hybrid approach which enabled division of tasks between the two systems. Weakness: i. The current system is single threaded. A multi-threaded system would enable faster processing of tasks which is ideal for a real world driving scenario. Figure 2: Response Time of Rule Base System ii. All the traffic rules are not included in the rule base. The most basic and frequently followed rules are added to the rule base. Case Based System Performance: The case based system was also evaluated to determine its response time. The response time was evaluated as the difference between the time the instruction to search the case base was executed to the time the corresponding case was returned. It was found that for 100 executions, on average the response time was around 11ms. iii. There is no learning involved in the current system. Learning can be achieved only after we are certain that the action returned by the case has successfully handled the exceptional event. A multi-threaded system can easily handle this scenario wherein one thread can be assigned to check if there is a need to add the case to the case base or whether adding the case would result in redundancy. 7. Future Work i. Modify the current system to work as a multi-threaded system. ii. Incorporate computer vision to capture the images and process them and feed the necessary data to the system. The system can then handle the cases the way it is working now. iii. Learning can also be incorporated to help the system make more informed decisions. 8. Conclusion In this paper, we have implemented a hybrid system of rule based and case based components for a Self-Driving Car Simulator. We have shown that such a hybrid system is quite suitable for handling complex tasks by efficiently dividing these tasks between the rule based and case base systems. Through the implementation of the simulator, our goal of evaluating the hybrid system for handling complex tasks as well as measuring the system’s decision making capability and response time for reacting to a dynamic event has been achieved. Our findings show that the decisions taken by the system based on previous experiences is very accurate. Also, the response time of both the rule based and the case based systems is very less (0.078ms and close to 11ms respectively), thereby enabling a quick action to handle both basic driving tasks such as obeying traffic rules and complex exceptional scenarios. The project has helped us understand the working and the potential of a hybrid system in solving the complex task of driving a car. We also realized that it is important for the components of the hybrid system to be complementary to each other so that the strength of one compensates for the weakness of the other. Such an integration of components is the key to solving such complex tasks. 9. Appendix This section describes the system as a whole with the help of the output of the program. Rule Base System Lane Change A part of the output for handling the lane change is shown below:Lane Distance covered: 62.89542 Speed: 25 Remaining Lane Distance: 37.1045794753 Lane Distance covered: 64.2843 Speed: 25 Remaining Lane Distance: 35.7156905864 Lane Distance covered: 64.3537 Speed: 25 Remaining Lane Distance: 35.646246142 Attempting to change lanes... Cannot change lane right now... Attempting to change lanes... Lane change successful... The above output shows that the car is attempting to change the lane. The change lane event is triggered once the car crosses a set threshold distance. At this point, the controller probes the Event Value Generator to check if it is safe to change the lane. If the value generated indicates that it is not safe, then the controller probes the value generator again after a pre-defined period. The process continues until the value generator gives an ”all clear” signal to the controller to change the lane. Handling Signal A part of the output for handling the signal is shown below:Braking Distance Reached... Signal in view... Current Signal: RED. Reducing the speed of the car... Lane Distance covered: 97.1827817027 Speed: 7.65907105728 Remaining Lane Distance: 2.81721829734 Lane Distance covered: 97.203253565 Speed: 7.36987044997 Remaining Lane Distance: 2.79674643498 ... ... Lane Distance covered: 98.548291949 Speed: 0.261645827831 Remaining Lane Distance: 1.45170805096 Lane Distance covered: 98.5490169237 Speed: 0.26099086622 Remaining Lane Distance: 1.45098307633 Current Signal: RED. Reducing the speed of the car... Lane Distance covered: 98.563146594 Speed: 0.248486446024 Remaining Lane Distance: 1.43685340595 Lane Distance covered: 98.5638351763 Speed: 0.247889602548 Remaining Lane Distance: 1.43616482372 Lane Distance covered: 98.7155204371 Speed: 0.141649506018 Remaining Lane Distance: 1.28447956289 Lane Distance covered: 98.7186466471 Speed: 0 Remaining Lane Distance: 1.28135335295 Car STOPPED... Waiting for signal to turn GREEN... Current Signal: GREEN Lane Distance covered: 98.7312953662 Speed: 0.650505555556 Remaining Lane Distance: 1.26870463381 Lane Distance covered: 98.733241323 Speed: 0.700544444444 Remaining Lane Distance: 1.26675867702 ... ... Lane Distance covered: 99.71108461 Speed: 5.95462777778 Remaining Lane Distance: 0.288915389984 Lane Distance covered: 100.013541894 Speed: 6.80528888889 Remaining Lane Distance: -0.0135418939666 Lane Distance Reached Taking a left turn... Once the car crosses the braking distance and if there is a signal at the end of the lane, the controller probes the event value generator for the signal event. If the value generator provides the value ”RED” or ”AMBER”, the controller reduces the speed of the car and probes the value generator again after a pre-defined period. If the value provided is still ”RED”, then speed is further decreased. The process continues until the car stops. If value generated is ”GREEN”, then the controller increases the speed of the car. The value generator for the signal event is designed in such a way that it mimics an actual signal. Handling STOP Sign This is similar to handling the Signal, except that event value generator is not probed periodically prior to halting the car. Once the car has stopped, the value generator is probed to give an ”all clear” signal until then the car waits. Lane Distance covered: 96.3676427469 Speed: 25 Remaining Lane Distance: 3.63235725309 Lane Distance covered: 98.7155204371 Speed: 0.141649506018 Remaining Lane Distance: 1.28447956289 Lane Distance covered: 98.7186466471 Speed: 0 Remaining Lane Distance: 1.28135335295 Car STOPPED... Waiting to move... Lane Distance covered: 98.7312953662 Speed: 0.650505555556 Remaining Lane Distance: 1.26870463381 Lane Distance covered: 98.733241323 Speed: 0.700544444444 Remaining Lane Distance: 1.26675867702 Handling Speed Limit In the output, we see that the speed limit sign is in view, which causes the controller to increase the speed till it reaches the speed limit (20 kmph, in this case). Once the required speed limit is reached, the speed remains constant. ... ... Speed Limit Sign in view...Speed Limit: 20 Increasing speed to 20 Lane Distance covered: 1.31491080247 Speed: 12.8099555556 Remaining Lane Distance: 98.6850891975 Lane Distance covered: 1.38649421296 Speed: 12.9100333333 Remaining Lane Distance: 98.613505787 Braking Distance Reached... STOP sign in view... Lane Distance covered: 2.93491983025 Speed: 14.9115888889 Remaining Lane Distance: 97.0650801698 ... ... Lane Distance covered: 6.91050955247 Speed: 19.1148555556 Remaining Lane Distance: 93.0894904475 Lane Distance covered: 97.1827817027 Speed: 7.65907105728 Remaining Lane Distance: 2.81721829734 Lane Distance covered: 7.01712018519 Speed: 19.2149333333 Remaining Lane Distance: 92.9828798148 Lane Distance covered: 97.203253565 Speed: 7.36987044997 Remaining Lane Distance: 2.79674643498 Lane Distance covered: 9.22502209877 Speed: 20.0500388889 Remaining Lane Distance: 90.7749779012 Lane Distance covered: 97.5011292603 Speed: 4.09660659907 Remaining Lane Distance: 2.49887073973 ... ... Lane Distance covered: 9.33627220679 Speed: 20.0500388889 Remaining Lane Distance: 90.6637277932 ... ... Lane Distance covered: 96.4370871914 Speed: 25 Remaining Lane Distance: 3.56291280864 Case Based System Below is a part of the output showing the handling of an exceptional case by the Case Base System ... ... Lane Distance covered: 88.6802145569 Speed: 25 Remaining Lane Distance: 11.3197854431 Lane Distance covered: 90.0691034458 Speed: 25 Remaining Lane Distance: 9.93089655422 Lane Distance covered: 90.1385478902 Speed: 25 Remaining Lane Distance: 9.86145210978 Exceptional Event in Progress... Object: bus Object Distance from Car: 14.25 Object Speed: 7.2 Object Direction wrt Car: left Retrieved Case: Object: ’bus’ Distance from Car: 18.38 Direction wrt Car: ’left’ Speed of Car and Object: ’me’: 27.609999999999999, ’bus’: 4.5 Increasing Speed to speed limit of 28 Lane Distance covered: 90.6941034458 Speed: 25 Remaining Lane Distance: 9.30589655422 Lane Distance covered: 90.7704977359 Speed: 27.5019444444 Remaining Lane Distance: 9.2295022641 Lane Distance covered: 90.8482755137 Speed: 28 Remaining Lane Distance: 9.15172448632 Exceptional event concluded... The above output shows an exceptional event involving a bus in progress. The details of the event such as the distance of the object (bus) from our car, the speed of the object, its direction wrt our car are displayed and the corresponding case retrieved is also displayed. The retrieved case provides an action plan to the controller, which in this case is to ’accelerate’ to a speed of 28 kmph. In this case, as the bus is at a distance over 14 meters from the car and the speed of the bus (7.2 kmph) is much less than that of the car(25 kmph), the case based system based on the retrieved case instructs the controller to accelerate to 28 kmph. 10. References [1] S Ontanon, Y. Lee, S. Snodgrass, D. Bonfiglio, F. Winston, C. McDonald and A. Gonzalez, ”Case-Based Prediction of Teen Driver Behavior and Skill” ICCBR 2014, LNCS 8765, pp. 375389, 2014. [2] C. MacAdam, ”Understanding and Modeling the Human Driver” Vehicle System Dynamics 2003, Vol. 40, Nos. 13, pp. 101134 [3] G. Markkula, O Benderius, K. Wolff and M. Wahde, ”A review of near-collision driver behavior models” [4] C. Urmson, J. Anhalt, H. Bae, T. Brown, D. Demitrish, J. Struble, M. Taylor, M. Darms, D. Ferguson ,”Autonomous Driving in Urban Environments: Boss and the Urban Challenge”, June 2008. [5] D. Ferguson, M. Darms, C. Urmson and S. Kolski, ”Detection, Prediction, and Avoidance of Dynamic Obstacles in Urban Environments” [6] C. Riesbeck and R. Schank, ”Inside Case-Based Reasoning”. Erlbaum, 1989 [7] D. Leake, ”Case-Based Reasoning: Experiences, Lessons, and Future Directions”. AAAI Press, 1996 [8]D. Ferguson, T. M. Howard, M. Likhachev, ”Motion Planning in Urban Environments”, IEEE/RSJ International Conference on , vol., no., pp.1063-1069, 22-26 Sept. 2008 [9] J. Paz, S. Rodrguez, J. M. Sanchez, A. Luis, J. Corchado, ”Context Aware Hybrid Agents on Automated Dynamic Environments”, 2nd International Workshop on Hybrid Artificial Intelligence Systems, 2008