Open Source Code

OpenSeqSLAM2.0

OpenSeqSLAM2.0 is a MATLAB toolbox that allows users to thoroughly explore the SeqSLAM method in addressing the visual place recognition problem. The visual place recognition problem is centred around recognising a previously traversed route, regardless of whether it is seen during the day or night, in clear or inclement conditions, or in summer or winter. Recognising previously traversed routes is a crucial capability of navigating robots.

https://michaelmilford.com/seqslam/

OpenSeqSLAM

OpenSeqSLAM is an open source Matlab implementation of the original SeqSLAM algorithm published by Milford and Wyeth at ICRA12. SeqSLAM performs place recognition by matching sequences of images.

https://openslam-org.github.io/openseqslam.html

openFABMAP

This is an open and modifiable code-source which implements the Fast Appearance-based Mapping algorithm (FAB-MAP) originally developed by Mark Cummins and Paul Newman. OpenFABMAP was designed from published FAB-MAP theory and is for personal and research use.

https://code.google.com/archive/p/openfabmap/

NeuroSLAM

The NeuroSLAM Project aims to model the neural mechanisms in the brain underlying tasks like 3D navigation and 3D spatial cognition to develop new neuromorphic 3D SLAM and 3D cognitive navigation technologies for space, air, land, sea-based autonomous robots and vehicles.

https://www.neuroslam.net/?page_id=41

openRatSLAM

RatSLAM is a robot navigation and SLAM system based on computational models of the hippocampus. The approach uses a combination of appearance based visual scene matching, competitive attractor networks, and a semi-metric topological map representation. The approach has been proven in a real time 40 hour robot delivery task, mapping an entire Australian suburb and on Oxford’s New College dataset. Notably, RatSLAM works well on images obtained from cheap cameras. The RatSLAM system contrasts many of the other SLAM approaches that involve expensive precision laser sensors and occupancy grids.

https://openslam-org.github.io/openratslam.html

Robotics Toolbox for MATLAB®

The Toolbox uses a very general method of representing the kinematics and dynamics of serial-link manipulators as MATLAB®  objects –  robot objects can be created by the user for any serial-link manipulator and a number of examples are provided for well known robots from Kinova, Universal Robotics, Rethink as well as classical robots such as the Puma 560 and the Stanford arm.

The toolbox also supports mobile robots with functions for robot motion models (unicycle, bicycle), path planning algorithms (bug, distance transform, D*, PRM), kinodynamic planning (lattice, RRT), localization (EKF, particle filter), map building (EKF) and simultaneous localization and mapping (EKF), and a Simulink model a of non-holonomic vehicle.  The Toolbox also including a detailed Simulink model for a quadrotor flying robot.

https://petercorke.com/toolboxes/robotics-toolbox

Machine Vision Toolbox for MATLAB®

The Machine Vision Toolbox (MVTB) provides many functions that are useful in machine vision and vision-based control.  It is a somewhat eclectic collection reflecting my personal interest in areas of photometry, photogrammetry, colorimetry.  It includes over 100 functions spanning operations such as image file reading and writing, acquisition, display, filtering, blob, point and line feature extraction,  mathematical morphology, homographies, visual Jacobians, camera calibration and color space conversion.

The Toolbox, combined with MATLAB and a modern workstation computer, is a useful and convenient environment for investigation of machine vision algorithms.  For modest image sizes the processing rate can be sufficiently “real-time” to allow for closed-loop control.

https://petercorke.com/toolboxes/machine-vision-toolbox

Spatial Math Toolbox for MATLAB®

The toolbox contains functions and classes to represent orientation and pose in 2D and 3D (SO(2), SE(2), SO(3), SE(3)) as matrices, quaternions, twists, triple angles, and matrix exponentials. The Toolbox also provides functions for manipulating and converting between datatypes such as vectors, homogeneous transformations and unit-quaternions which are necessary to represent 3-dimensional position and orientation.

https://github.com/petercorke/spatial-math

Other Legacy Open Source Software Available Upon Request

  • pSIFT
  • AR.Drone open-source package
  • Multicamera data player
  • dc1394cam_driver
  • Automatic Multi-Camera Calibration Toolbox
  • cyphy ROS wiki page
  • MikroKopter ROS nodes
  • Braitenberg Vehicle Simulator
  • Brushless motor controller