Technologies
From Princeton Autonomous Vehicle Engineering
List of common technologies PAVE is using, with applicable descriptions, troubleshooting tips and FAQs.
Contents |
Languages
Libraries
Interprocess Communication Package (IPC) (All winning DARPA Challenge teams have used it)
Robotics Suites
Microsoft Robotics Studio (MSRS)
Hardware
Bumblebee XB3 Flea
Algorithms
State Estimation/Observers
Kalman filter--for a basic introduction to the theory [1]
Sigma point kalman filter--handles nonlinear systems, derivative free (eg you don't have to calculate a jacobian), square root versions are numerically stable and efficient [2]
Control Systems
Proportional Integral Derivative (PID) controller--how to make the steering wheel go to a desired angle [3][4]
Path Planning
High level "Macro Planning"
- A* (A-star)
- D* (Dynamic A-star). Allows efficient replanning when costs change.
- Dynamic Programming. A general optimization strategy that can be applied to path planning. What Stanford used.
Low level "Micro Planning"
Rapidly-exploring Random Trees (RRTs) seem to be the current favorite.
They are often paired with probabilistic roadmaps.
Caltech's nonlinear trajectory generation approach.
Lab group doing research into motion planning [5]. In particular look at OBRRT, OBPRM, and RRT for carlike robots. They drop hints about an OBPRM C++ library but I couldn't locate it.
Excellent list of links to various courses, topics, and code libraries related to motion planning.
Keneo is the company that does this in the real world. They use RRTs/PRMs or something similar. They have an SDK which might be useful.
A very comprehensive book covering many motion/path planning related topics, including RRTs, optimization, dealing with errors in the environment etc. A lot of academic discussions and few implementation/technical details.
Libraries
C++:
- Nonlinear Trajectory Generation (NTG) from Caltech
- POSEMATH. Pose mathematics library for 3D pose manipulation. Probably not too useful.
Matlab:
- Nonlinear Trajectory Generation similar to NTG.
Computer Vision
See [6] for a bunch of techniques
Of note, we use:
RANSAC--robustly fit a model to data, i.e., extract lane lines from lane points in a heat map
boosting--learns classification tasks, eg, car detection [7]
Scale Invariant Feature Transform (SIFT)--A feature descriptor that is all the rage in object recognition (can be used with the above)
Utilities
Mechanical Design programs
Main article: Inventor
Autodesk Inventor - Inventor is a solid body CAD development environment. It is relatively easy to use and learn. It allows for reasonably robust mechanism design as well. It can be downloaded for free by students at this location: http://students4.autodesk.com/?lbon=1
To run on Mac OS X or Linux, see Virtualization.
