Self-Driving Car: Design an agent that can drive itself

Introduction

The automobile is the greatest invention of the 20th century, however disadvantages of using cars have grown more obvious in the last decade being problems like accidents caused by human error most likely by fatigue, inattention or intoxicated driving. The other problem is CO2 emission accountable for the greenhouse influence which is slowly heating up the planet.

The concept of driverless agents can reduce or resolve the above issues, as the automated system will control this agent then there would be very less chances of human error as computers do not get distracted, hence reducing accidents. The CO2 emission will also decrease as the driving agent will follow normal driving concept by making sure that the speed and acceleration of the agent remains in certain limits.

Problem Setting

One of the most important concept to successfully implement the driverless agent is communication, if it can’t communicate properly with the devices such as sensors and get proper information from the vehicles dashboard then there are chances of accidents. Human being observe their surroundings, get information from the vehicle itself and take immediate decisions analyzing the situation.

Problem Difficulties

Intelligent agents can be equipped with sensors and image processing devices to help them make the driving easy and error free. Depending on the incoming sensor information the agent will adjust acceleration and path of the vehicle accordingly. But the difficulty will be to perform task, the agent must have access to several kind of information, for instance:

  1. Gathering real-time data with information about the environment around the vehicle
  2. Getting information of speed, fuel level, oil and temperature from the vehicles dashboard itself.
  3. Gathering information about the real-time driving experience of human beings and programming it into the agent’s database.
  4. Depending on other sources like radio or variable sign messages which gives traffic information on the go.

Different driving tasks

Driving tasks can be separated into three categories:

  • Strategic
  • Tactical
  • Operational

Route is planned and the target is set at the strategic level. There are several car-navigation systems available in the market now, these applications allow the agent to predefine its target and direct the vehicle using GPS.

Tactical decisions are mostly based on real-time information to achieve objectives like dealing with other vehicles, the traffic system and making the agent move on the road. Depending on the present situation the agent behaves as per the goals set at strategic level.

Operation level of driving involved controlling of the agent by using the steering wheel, accelerator, brakes and other vehicle panels. It typically involves moving the vehicle left or right, speed up or shifting of gear depending on the current situation.

Problem Solution, Design and Implementation

We will describe about the problem solution and design of the agent by explanation-based learning using tactical-level concept. Tactical-level concept is basically using knowledge based method to control a slipping car on icy roads, passing the other cars on the road by following set of rules and taking skill based decisions to negotiate driving at the intersections of familiar nature.

As we already mentioned in introduction that the aim of this project is to analyse use of agents that are capable of controlling driverless agents. The agent will make choices based on the inputs established from its sensors and the commands are sent to the vehicle controller systems explaining how to operate the vehicle as required depending on the real-time situation.

The agent must be able to select in real-time about the next course of action to be performed depending on every situation. Normally used agent practices cannot be applied in real-time implementations hence these restrictions limit our possibilities. Some of the requirements for the agent can be specified as:

  • Response: agent has to keep a watch on the inputs from sensors regularly and react as required.
  • Real-time constraint: for all real-time situations the agent should respond.
  • Safety: this is the major concern for the driverless agent and other road users, this should be assured. This will easily validate the accuracy of agent’s functionality.
  • Expandability: Modification of existing or addition of new function to the agent should be an easy task without the need to redesign it. This will make implementation of new and impending sensor or signaling possible and furthermore this will ease the testing and depending on it the functionality can be extended in iterative method until the vehicle is capable to perform required tasks without errors.
  • Understanding of the information depiction: The representation language that is to be used must be comparatively easy to grasp so as to alter knowledge base without much efforts and the functionality change effects to agent can be easily studied. Ease of knowledge base alteration without much effort which won’t effect to the agent’s functionality. Below figure shows the tactical-level design and functionality.

Agents knowledge base is divided into different segments such as behavior rules or behaviors dictating what to do in changed situations. Arbiter is the tool that determines best behaviors based on urgency and transmits them to communication unit. The communication unit interprets the instructions to messages that can be implicit by the required receiver. Examples can be message to speed up, stop, turn left or turn right. The agent has to respond in real-time hence it has to be capable of completing several cognitive cycles as required in that particular time frame.

We will assume that the sensors can only send message and not receive them. Furthermore, it can be assumed that at least the following objects and their properties can be measured or detected and messages passed onto the agent.

  1. Roads
  2. Other Vehicles
  3. Traffic lights
  4. Traffic signs  
  5. Moving objects
  6. Objects nearby

Responsiveness Design

In the response issue the agent needs to take decision for action depending upon the predefined space for which it receives details from sensors based on the scenarios in its surroundings. To determine, let us assume that the vehicle is moving on the road and the action depending on the surroundings are move forward, backward, stop and turn left or right. The conditions around the agent are listed by categorical attributes such as the distance from the vehicle in front, speed of the vehicle and its direction. Let’s consider there are n attributes such as {t1,t2,……tn} and the agent’s actions are selected on regular intervals depending  on requirements. The routing data acquired by the recordings of different volunteers is taken into consideration for mapping of actions to a specific attribute.

The aspect of response issue is greater than the routing issue. But we can use the nearby neighbor method by selecting the most alike recordings and selecting its actions. The present scenario of the car is denoted by {r1,r2,….rn}. For a single recording , the likeness can be calculated by the following:

Conclusion

In this assignment we studied the procedure of driving agent to control self-directed vehicle. We determined that the tactical-level of driving helped the agent to make short-term decisions about the vehicle manoeuvres depending on real-time situations. Performance of the agent is improved by using traffic-simulators and this the first move towards directing real-time autonomous vehicles. Experiments can be done using different scenarios to improve driving agents to regulate real-time driverless vehicles instead of virtual ones. The goal should be to study more options of simulation programs and driverless agents in demand to enhance their output. This can be done by improving driving agents behaviour to create more realistic simulations.

I’m an experienced Solution Architect with 15 years of experience in designing enterprise scale application systems using .Net and Mobile technologies for large enterprises. Skilled in cloud computing, information management, application development, and virtualization. I believe in delivering quality applications through continuous integration and focus on customer satisfaction.