Versions Compared

Key

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

...

  • Grouped utility functions in a separate folder that is shared with the simulator. This makes the code more modular.
  • Implemented a new target detection algorithm that allow the car to work with the path with lots of points.
  • 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 a new filter for the heading measure to cancel the effect of leaps (See #HEADING FILTERING).
  • 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).
  • Implemented speed disturbances correction which uses a path-dependent disturbance function defined in the path specification file.

CPS

  • Fixed a bug that affected the initial target dectection for cars that were not tracked by computer 0 and buffer overflow bug.
  • 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.

...

  • 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 "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.

Paths

  • Slightly narrowed the path fig0 since car3 was going too close to the computers where the camera distortion is very high and the tracking was often lost.
CONFIGURATION

There are 4 files which contains basically all the constants in the code. These should be the ones to check whenever you want to configure something.

...

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.

  • path file name changed
SCRIPTS

Implemented a script to visually debug cars behavior. It works both with the simulator and test-bed experiments data.

...