Constraint-based Modeling of Autonomous Vehicle Trajectories

Yegeta Zeleke (University of California, Santa Cruz), Kennon McKeever (University of Arizona)

Today, autonomous vehicles are typically programmed using a general-purpose programming language such as C++. Although this approach works, it is not efficient when pro- gramming primitive motions of autonomous vehicles. Aside from general-purpose programming languages, there are languages that are specifically designed to model autonomous vehicles, such as SHIFT, but these languages are for simulation purposes only. This project discusses the creation of a domain-specific language that allows for faster programming of autonomous vehicles. This language generates code for multiple controllers that will operate alternatively to allow for fast and effective programming of primitive motions. In addition to improving coding efficiency and reducing the number of programming errors, this adds a level of abstraction to programming autonomous vehicles, meaning the vehicle can be programmed easily by people with little knowledge of low-level details of the car’s operation. This language is meant to ensure safe operation of the vehicle by enforcing a set of constraints on the output path. The main set of constraints that are applied to every generated path have been chosen to enforce safe switching between controllers and prevent unsafe actions. It allows the user to add specific constraints for a particular path; these constraints are checked for validity after the main constraint check is performed.