# Truck Backer Demo

## Problem Description

The task of the truck-backer-upper problem can be outlined as follows: A truck is positioned at an arbitrary position (x,y) on a yard with an arbitrary angle of the truck cabin cabt and an arbitrary heading of trailer trailert (see figure below). The truck moves at constant speed backwards. The goal is to determine a controller that computes the steering angle u in dependence of the actual position, such that the truck is driven into the loading dock at position (0,0). Hence, a functional dependency u=g(x,y,cabt,trailert) is searched.
The functions that can be used to compose the steering controller are:
 PLUS(a,b) returns a+b MINUS(a,b) returns a-b MUL(a,b) returns a*b DIV(a,b) return a/b, if b <> 0, else 1 ATG(a,b) returns atan2(a,b), if a<> 0, else 0 IFLTZ(a,b,c) returns b, if a<0, else returns c
Several approaches to solve this problem exist. The first solution was presented in [2] using neural networks. Koza described the first experiments with Genetic Programming to solve this task [1].

## Truck Backer Demo

A preliminary demonstration of a the truck-backer-upper problem with a control function that has automatically been derived by the Genetic Programming optimization method can be tested below.

The control panel allows you to vary step size and speed of the simulation. It also displays the function that is steering the truck. Currently this formula can not be edited, so you can not enter a function on your own (maybe this feature will be implemented in the future). You can click anywhere in the area an the truck will start docking from his position. Keep the mouse button pressed and and adjust the desired starting angle.

## References

[1] John Koza. Genetic Programming. MIT-Press 1992.
[2] Derrick Nguyen and Bernard Widrow. The Truck Backer-Upper: An Example of Self-Learning in Neural Networks. Neural Networks for Control. W.T. Miller III, R.S. Sutton, P.J. Werbos (Eds), The MIT Press 1990.