Autonomous Ground Vehicle Navigation and Control Simulation Examples in Python
THIS PROJECT IS CURRENTLY A WORK IN PROGRESS AND THUS THIS REPOSITORY IS INCOMPLETE
This is a repository of introductory autonomous ground vehicle (i.e., wheeled mobile robot) simulation examples in Python. The purpose of these examples is to provide easy-to-follow code that is illustrative of a number of fundamental mobile robot modelling, control, and navigation (localization, mapping) concepts. Motion planning problems lie beyond the scope of this example set. The focus here is on ground vehicles, although the presented techniques are also applicable more broadly. This code was initially developed to supplement topics covered in the course ELEC 845 Autonomous Vehicle Control & Navigation in the Department of Electrical & Computer Engineering at Queen's University.
MoBotPy Package
The repository also includes a supporting Python package MoBotPy (mobotpy
) that contains some code that is used repeatedly. Code developed in the worked examples is subsequently added to MoBotPy.
Module Filename | Description |
---|---|
integration.py | Provides basic Runge-Kutta and Euler integration functions. |
models.py | Provides standard vehicle models, plotting, and animation methods. |
graphics.py | Provides some basic shape plotting functions (used by models.py). |
Tables of Examples in this Repository
This section provides a list of the examples in this repository.
Introductory Linear System Examples
These examples provide a review of basic concepts from control systems engineering in preparation for more advanced methods.
Filename | Description |
---|---|
oneD_kinematic.py | Simulation of a linear 1D kinematic vehicle. |
oneD_dynamic.py | Simulation of a linear 1D dynamic vehicle. |
oneD_kinematic_control.py | Point stabilization of a linear 1D kinematic vehicle. |
oneD_dynamic_control.py | Point stabilization of a linear 1D dynamic vehicle. |
oneD_discrete_control.py | Point stabilization of a linear 1D dynamic vehicle in discrete time. |
oneD_integral_control.py | Example illustrating integral action for disturbance rejection. |
oneD_dynamic_observer.py | State estimation for a linear 1D dynamic vehicle. |
oneD_combined_control.py | Example illustrating control combined with a state estimator. |
Vehicle Modelling Examples
These examples provide simple models for a variety of commonly used wheeled vehicles.
Filename | Description |
---|---|
diffdrive_kinematic.py | Simulation of a differential drive vehicle's kinematics. |
tricycle_kinematic.py | Simulation of a tricycle vehicle's kinematics. |
ackermann_kinematic.py | Simulation of an Ackermann steered (car-like) vehicle's kinematics. |
Cite this Work
You may wish to cite this work in your publications.
Joshua A. Marshall, Autonomous Ground Vehicle Navigation and Control Simulation Examples in Python, 2021, URL: https://github.com/botprof/agv-examples.
You might also use the BibTeX entry below.
@misc{Marshall2021,
author = {Marshall, Joshua A.},
title = {Autonomous Ground Vehicle Navigation and Control Simulation Examples in Python},
year = {2021},
howpublished = {\url{https://github.com/botprof/agv-examples}}
}
Contact the Author
Joshua A. Marshall, PhD, PEng
Department of Electrical & Computer Engineering
Queen's University
Kingston, ON K7L 3N6 Canada
+1 (613) 533-2921
[email protected]
License
Source code examples in this notebook are subject to an MIT License.