Merging Clothoids with B-Splines
|Title||Merging Clothoids with B-Splines|
|Summary||Develop an approach to create natural clothoidal lane-change maneuvers for automobiles on lanes that are specified using B-splines.|
|Keywords||Parametric curves, computational geometry, vehicle planning and control|
|Prerequisites||Solid programming skills in Python, Matlab, or similar scientific computing language; foundations in analytical geometry|
B-splines are a very popular and expressive way to create smooth curves in computer graphics, industrial design, and other domains. They are also used in some vehicle control algorithms to specify a path to follow. However, splines are not the most natural way that cars and similar vehicles are actually driven around by humans. Clothoids provide a much more appropriate formalism for this, because the curvature varies monotonically (linearly in fact). This is why highways are designed with clothoids (in combination with straight lines and circular arcs). A lot of work in path planning and control for vehicles thus relies on clothoids, creating a bit of a dichotomy when we want to leverage the geometrical power of splines with the kinodynamic smoothness of clothoids.
One of the technical challenges that upcoming advanced safety systems for cars will need to face is the opportunity of using lane-change maneuvers to avoid dangerous situations. Similarly, in order to fulfill the dream of autonomous cars, such maneuvers will need to become commonplace and fully accepted by the human passengers. In this project, the candidate will survey previous work in path planning and control which uses either splines or clothoids, and also at planning methods which work in the space of control trajectories in order to produce work-space trajectories which natural smoothness properties. The candidate will then work on an approach to create a natural lane-change maneuver from one lane of traffic to another. The lanes will be specified using splines, and the vehicle motion will be specified using chunk-wise monotonically varying curvature, thus the relevance of clothoids.
This work has a large theoretical proportion, from understanding prior work to formulating mathematical foundations to bridge the gap between two somewhat contradictory maneuver generation approaches. Programming will be limited to rapid prototyping in a high-level language, such as Matlab or Python with numpy/matplotlib.