Pedestrian Autonomous Emergency Brake

In city environment, due to the high number of traffic participants a short period of driver inattentiveness can lead to accidents with fatal injuries. In these situations, the level of the injury is correlating with the speed of the vehicle. The goal of the Pedestrian Autonomous Emergency Brake functionality is to reduce the velocity of the ego vehicle to mitigate the injury of the pedestrian or avoid the accident completely. The functionality is available in more and more series vehicle nowadays and it is also part of the Euro NCAP (The European New Car Assessment Programme) and to reach the maximum 5 star for a new vehicle the pedestrian protection is almost a must have.

The goal of our challenge is to model the basic functionality of the pedestrian AEB. In real world, the vehicle is equipped with sensor systems to detect the pedestrian, but in our model, the pedestrian is already detected and the position and momentum of the target is available on the server. The movement of the ego vehicle and the target pedestrian is linear to keep the task simple.

Task to define the time of the required brake trigger to avoid collision:

  • Connect to the server using socket
  • Read out the position and the momentum of the ego vehicle and the target pedestrian from the server
  • Define a simple brake model based on the given input data of a real vehicle
  • Implement a basic autonomous emergency brake functionality with the defined brake model
  • Trigger the aeb on the server to save the life of our virtual pedestrian
  • Release the brake intervention if the situation is not critical anymore (collision will not occur)

Information for the brake model:

  • To define the brake model use the brake_model.csv file
  • The cycle time is Tc=0.02s
  • Try to define a linear model based on the simulated brake characteristic

Server interface

To test your program, you must connect to using TCP protocol. There are 2 phases in the communication with the server:

  1. Login
  2. Playing scenarios
    • There are multiple scenarios
    • The build-up of the brake pressure restarts between scenarios!

Login is done by simply sending an arbitrary team ID to the server (a simple string containing only english letters, numbers and underscores), which you can use later to see the results of the test on the server’s homepage at Use the same team ID for every time you connect to the server! Playing scenarios are done by receiving the position and speed of the vehicle and the pedestrian in every cycle and you must decide if you want to brake or not.

Detailed message protocol

  1. After connection, the server expects a team ID.

  2. The server sends back a greeting:

    Hello [team ID]! Testrun ID: 32

  • Testrun ID is used to differentiate test runs when viewing them on the server. You can chose to ignore it: testrun with the highest ID will be the last.
  1. The server sends you the name of the scenario in the following form:

    {“scenario”: “scenario name”, “testrunId”: 54}

  2. The server sends you the position and speed of the vehicle and pedestrian in the following format (you can see a visual representation on the right, but you get the data in JSON string as seen on the left):

  1. You need to send back a single “0” or “1” as ASCII string (quotation marks are not included in the message):
  • “0” : no braking
  • “1” : braking
  1. Repeat from 4. until the scenario is over
  2. The server sends you the result (failed/passed) of the actual scenario. Please be aware that getting “passed” alone might not give you maximum points! (E.g. if you brake way too early, or fail to release brake after the pedestrian has already passed in front of the car.)
  3. Repeat from 3. until there are no scenarios left


  • You can connect to via telnet to see the output in action.
  • Vehicle’s speed can only have x component – in other words, it always goes in along with the x axis
pedestrian aeb vru driverassistance


  • Brake model is determined based on the input data:
  • 2 points
  • The vehicle is stopping in front of the pedestrian, no hit occurs:
  • 3 points
  • The AEB function is using the defined brake model and the function is general, not designed directly for the given situation:
  • 3 points
  • The Brake intervention is aborted if the situation is not critical anymore:
    2 points


Please show the brake model idea and discuss it with the mentors of Bosch. For the final aeb implementation trigger the server for the test environment and if it is successful show the solution to the mentors of Bosch.