Car with Trailer Trajectories

Directives

This project was conducted by me and two friends in the context of our Robotics Movement Planing course at the ENS. The directives were to implement computations and visualisations for the trajectory planing of a car with a trailer from a state to another. Those trajectories shall avoid collisions and wheel drifting. The methods used were mostly inspired from a research paper (Motion Planning and Control for Hilare Pulling a Trailer).

Model

The model used was a bit more simple than a car. It is a robot that with two motorized wheels and some other wheels or balls that can rotate freely. The trailer is attached to the center of the axis joining the motorized wheels and has two wheels itself. Such a robot can have any angle with its trailer and can follow curves of arbitrary curvature (it can even turn on itself).

    alt
The Car in Unity

A Trajectory with Drifting

The first step to go from a state to another is to find a trajectory where wheels can drift (it would be a movement that avoid collisions but cannot physically happen). Considering a sequence of states we can get a trajectory by linearly interpolating positions and rotations.

Linear Interpolation

To find those trajectories, we can use two methods. The first method samples random configurations (trailer positions (x, y) rotation (θ) and car rotation (φ)) and creates a visibility graph. The second method approximates the obstacles by a grid (in 4 dimensions) and computes a potential that guides towards the goal. We can then use gradient descend and random walks to get out of local minima.

Find Trajectory
    alt
    alt
Computed Potential

A Trajectory without Drifting

Each linearly interpolated section can be made admissible on its own. To do so, we do as described in the paper: we combine canonical curves (curves onto which φ is constant) and try cusp points and dichotomy until there is a path without collision. More details can be found in the paper.

Admissible Trajectories

Optimized Trajectory

The admissible trajectory can be overly-complicated. Therefore, we do a final pass were we try to shortcut through the trajectory.

Optimized Trajectory
Marc Ducret copyright © 2024