Recent changes to the StarterKit and Code Documentation

Recent changes to the StarterKit and Code Documentation

The post concerns recent changes and patches made to the starter kit. These patches deal with recent issues that contestants were facing, regarding: stability, metrics calculations, and agent initialisation. Additionally, camera configuration interfaces were optimised for simplicity, and codebase documentation was updated and extended. Some changes included in this patch necessitate re-evaluation of previous submissions, which may affect leaderboard ranking. See below.

Changelog:

  1. Simplified the camera interface code, for environment/simulator interaction.
  2. Added additional camera configurations for other sensors that are permitted for use during training.
  3. Resolved agent initialisation issues, related to yaw ambiguity; this corrects situations where agents re-spawned with incorrect orientation after failing track segments. Previously, this produced spurious results, where agents were assigned incorrect segment-completion metrics, during evaluation. This fix may affect leaderboard results.
  4. Provided additional agent tracking information, displayed on the console during training and evaluation.
  5. Revised code documentation, to incorporate recent inquiries:
  6. [Edit, 17 Jan 2022 16:26 ET]: Migrated Anglesey track map json file from the official L2R repo to the StarterKit

We hope participants find these changes helpful.

Participants are strongly encouraged to incorporate these changes, as soon as possible. In order to do this, please initiate a merge request, from the upstream repository to your respective forked repositories. https://gitlab.aicrowd.com/learn-to-race/l2r-starter-kit

4 Likes

I found a major bug: the bounding box that checks for out-of-bound wheels is rotating in the opposite direction to the actual car. It can be fixed simply with angle *= -1.0 in l2r.envs.utils.py: Geolocation.getCorners().

It changes nothing for corners in the cardinal directions (North, East, etc.), but when going across corners oriented diagonally (South-East, North-West, etc.) the bounding box is completely sideways relative to the car and effectively 0.66 meter too wide on each side.

The yaw/angle/steering have conflicting orientations. I figured out the yaw returned in the engine observation is the angle to the right of the y-axis (clockwise) by looking at the car displacement. But the steering we give to the engine as input is positive for turning left (counter-clockwise). And the displayed “Steer” on the game GUI is positive to the right (clockwise).

Also I think the Anglesey json file should be included, but is not. The main page says:

Aside from Thruxton Circuit, additional race tracks are available in the Learn-to-Race environment for development.

3 Likes

Hi Max, I have corrected the calculation for the vehicle bounding box. Good catch!

1 Like