Versions Compared

Key

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

...

Note about CPS usage. AndreaCPS is not compatible to previous versions of ca2. Viceversa my ca2 is not compatible with previous versions 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 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 Grouped utility functions in a separate folder that is shared with the simulator. This makes the code more modular.
  • implemented Implemented a new target detection algorithm that allow the car to work with the path with lots of points.
  • steer 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 path-dependent compensator has been added. The compensator can be configured through the path specification file (See #COMPENSATOR DIRECTIVES).
  • implemented Implemented a new filter for the heading measure to cancel the effect of leaps (See #HEADING FILTERING).
  • set Set the limit of steer input to (-100,100) since the curvature radius saturates above it.
  • Implemented the online estimation of the engine gain parameter (fitness) (See #FITNESS ESTIMATION).

CPS

  • fixed Fixed a bug that affected the initial target dectection for cars that were not tracked by computer 0 .and buffer overflow bug.
  • Implemented
  • 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.
  • implemented linear error correction for the computation of camera position. This visibly improves the path following of cars. See section #CAMERA MEASUREMENT ERROR CORRECTION.
  • The computer that sends the data to cars is now computer 1 (not the slower computer 0 anymore). This is easily configurable through the constant SENDER_COMP_NUM in CPS.h.
  • The sender computer now knows which camera is currently tracking which car and this information is send to cars.

Communication protocol

  • Now the car sends its personal data (encoder speed, estimated fitness, desired pwm, etc.) to CPS that forwards this data to all the cars. If the encoder of a car does not work you can set to 0 the constant USE_ENCODER in "Andrea/src/car_src/const_car.h" and the CPS will estimate the car speed from differentials which is currently not that accurate (See #CPS MEASURED 2D SPEED).
  • Each car listen on a different port (base_port_number + car_number). This was required to make the simulator handle multiple cars and I extended it to the CPS for coherence.
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.

...