Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • "Andrea/src": contains the C code divided in 3 folders
    • "Andrea/src/car_src": contains the code specific for the car, the ca2 program (See #CA2).
    • "Andrea/src/sim_src": contains the code of the simulator (See #SIMULATOR).
    • "Andrea/src/util": contains the code shared between the car and the simulator (See #C UTILITIES).
  • "Andrea/script": contains all the python scripts that can be used to compile the simulator, identify parameters and debug the experiment (See #SCRIPTS).
  • "Andrea/paths": contains the new paths definition files used by the cars which specify also the steer compensator directives and the path-dependent disturbances functions (See #PATH SPECIFICATION).
  • "Andrea/data": various data gathered during experiments on the test-bed.
SUMMARY OF CHANGES

...

...

Note about CPS usage. Since CPS now compute and send the 2D speed to cars, AndreaCPS is not compatible to previous ca2 versions. Viceversa my ca2 is not compatible with previous version of CPS. This is because the communication protocol between CPS and ca2 is now a little bit different. In general I would suggest using AndreaCPS instead of KevinCPS or LeoCPS. This because of the bug that involved the initial target detection. I did not check CPS versions that are previous to KevinCPS but it is likely that those versions do not have this bug since computer 1 and 2 do not send their information to computer 0 before sending them to cars.

  • ca2: grouped utility functions in a separate folder that is shared with the simulator. This makes the code more modular.
  • ca2: partially implemented a Kalman filter in the attempt to remove part of the measurement noise of cameras. The model must be refined for it to prove its real effectiveness.
  • ca2: implemented a new target detection algorithm that allow the car to work with the path with lots of points.
  • ca2: steer controller has been reworked, the monodimensional speed has been substituted by the one read from the encoder, the PD has been calibrated and a compensator has been added.
  • ca2: modified paths to add compensator directives (See #COMPENSATOR DIRECTIVES).
  • ca2: implemented a new filter for the heading measure to cancel the effect of leaps (See #HEADING FILTERING).
  • ca2: set the limit of steer input to (-100,100) since the curvature radius saturates above it.
  • CPS: fixed a bug that affected the initial target dectection for cars that were not tracked by computer 0.
  • CPS: now compute and send also the 2D speed of the cars. This is likely to be needed for the predictor in the future. See also section #CPS MEASURED 2D SPEED.
  • CPS: implemented linear error correction for the computation of camera position. This visibly improves the path following of cars. See section #CAMERA MEASUREMENT ERROR CORRECTION.of cars. See section #CAMERA MEASUREMENT ERROR CORRECTION.

...

C UTILITIES

...

CA2

...

SIMULATOR

...

Implemented a simulator in C for Linux. This is integrated with the code used on cars (ca2). It simulates the cars dynamics and the behavior of the Camera Positioning Systems (CPS). Besides being very useful to verify the system model, it makes easy to test changes to code and the controller before applying those changes to cars.

...

SCRIPTS

...

Implemented a script to visually debug cars behavior. It works both with the simulator and test-bed experiments data.Note about CPS usage. Since CPS now compute and send the 2D speed to cars, AndreaCPS is not compatible to previous ca2 versions. Viceversa my ca2 is not compatible with previous version of CPS. This is because the communication protocol between CPS and ca2 is now a little bit different. In general I would suggest using AndreaCPS instead of KevinCPS or LeoCPS. This because of the bug that involved the initial target detection. I did not check CPS versions that are previous to KevinCPS but it is likely that those versions do not have this bug since computer 1 and 2 do not send their information to computer 0 before sending them to cars.

DISTURBANCES ANALYSIS

In this section a quantitative analysis of the disturbances in the system is attempted. In order to deal in an easier way with the assumption of monotonicity and with the coupling between the steer and the motor input, the model is linearized and the lateral and the longitudinal components are separated. The coupling effect is seen as a disturbance. In the following the coordinate system will be relative to the path as represented in Figure coord_sys.jpg. In other words, y represents the position along the path while x the lateral distance from the path.

...

Figure distold.png shows the error of the distance with the old controller instead. In curve the average error was about 180mm. It should be noted that this is the distance measured with the cameras which is affected by an error.

PATH SPECIFICATION

COMPENSATOR DIRECTIVES

In order to apply the compensation, the controller must know the curvature radius of the path. You can specify it by adding to the directive to the path definition file. For example, in fig8CL.txt the first two lines are now

...