
Open-Source Projects.
It all begins with an idea or a problem.
Below is a selected list of open-source projects I’ve created.
Navigation2 (aka Nav2)
ROS 2’s navigation framework and system, the successor to the ROS Navigation Stack. Includes new algorithms including Hybrid-A*, MPC Controllers, Regulated Pure Pursuit, Waypoint Task Executors, Behavior Tree Navigator, Keepout and Speed Limited Zones, and more!
S Macenski, F Martín, R White, JG Clavero, “The Marathon 2: A Navigation System“, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2020.
Smac Planner
A templated A*-based planning framework containing a 2D A*, Hybrid-A*, and State Lattice planner implementations. It covers the niche of supporting Ackermann (car-like), Legged, and non-circular Differential and Omnidirectional robots in the ROS Navigation ecosystem for the first time.
It is heavily optimized with precomputations and caching to ensure a real-time planning analogous to other algorithms available. It also has approximate paths within tolerances and analytic expansions to significantly accelerate planning.
Paper to be prepared in 2022
SLAM Toolbox
A toolbox for 2D Lidar SLAM and the default SLAM vendor for ROS 2. Enables editing of maps and continuation of prior mapping sessions to continue refining the map or accounting for changes in the environment.
It includes synchronous and asynchronous modes for offline and live processing. It contains heavily tuned parameters to work well out of the box for a broad number of robots and significant speed ups in the core SLAM algorithms.
Macenski, S., Jambrecic I., "SLAM Toolbox: SLAM for the dynamic world", Journal of Open Source Software, 6(61), 2783, 2021.
Macenski, S., "On Use of SLAM Toolbox, A fresh(er) look at mapping and localization for the dynamic world", ROSCon 2019.
Model Predictive Path Integral Controller
The Model Predictive Path Integral (MPPI) Controller is a Model Predictive Control (MPC) variant that optimizes a trajectory inter-iteration instead of intra-iteration by introducing random perturbations to the previous optimal trajectory at a high rate. These trajectory samples are then scored by a set of objective functions to create the desired behavior.
A key benefit of this approach is the use of objective functions that are not required to be convex or differentiable, creating greater latitude for an algorithm or behavior designer. This algorithm is fully reconfigurable, including plugin-based critic functions for customizable behavior.
Paper to be prepared in 2023
Spatio-Temporal Voxel Layer
A 3D voxel layer with temporal decay for highly dynamic environments. This uses OpenVDB, a 3D voxel representation made by Dreamworks Animations for films, to represent the spatial grid. Then leverages novel decay functions and sensor models to retain a locally accurate representation of the environment from many sensors in dynamic scenes.
Macenski S, Tsai D, Feinberg M., “Spatio-temporal voxel layer: A view on robot perception for the dynamic world”, International Journal of Advanced Robotic Systems, 2020.
Regulated Pure Pursuit Controller
This is a path tracking controller based on the Pure Pursuit algorithm with additional ‘regulation’ heuristics controlling the translational velocity to slow when navigating around sharp turns or when close to the environment where collisions may be possible (as a practical matter of safety in human filled environments and dynamics effects).
It can process at > 1kHz, has predictive collision detection, and dynamically adjustable lookahead distances based on speed.
Paper in review