Software
teb_local_planner
By rst-tu-dortmund, from github.com/rst-tu-dortmund/teb_local_planner (opens in a new tab)
- Navigation and mapping
- Library
- BSD-3-Clause
A ROS plugin for the 2D navigation stack that locally plans robot trajectories with Timed Elastic Band optimization. It is aimed at mobile robots that need to avoid obstacles.
Facts
- GitHub stars
- 1,366read on 6 Nov 2026
- Last update
- 21 Sept 2026Newest commit on noetic-devel
- Maintenance
- Activea commit in the last 90 days
- Difficulty
- Advanced
Checked on GitHub on 6 Nov 2026.
Licenses
- Code
- BSD-3-Clause (opens in a new tab)
Read by Robotheca from LICENSE (opens in a new tab) (BSD-3-Clause) at commit 9e55af4 (opens in a new tab), on 22 Oct 2026.
- Commercial use
- Yes
Overview
What it does: Robotheca's summary
- Plugs into the base_local_planner of the ROS 2D navigation stack as a local planner.
- Optimizes the robot's trajectory at runtime for execution time, separation from obstacles, and kinodynamic constraints.
- Dependencies are installed with rosdep, using the lists in package.xml and CMakeLists.txt.
- Build status for the melodic-devel branch is tracked on the ROS Buildfarm.
Written by Robotheca from the project's README (opens in a new tab) at commit 9e55af4, not by its creator.
The README
The creator's own README, copied as written: README.md by rst-tu-dortmund, at commit 9e55af4, under BSD-3-Clause (opens in a new tab). The original on GitHub (opens in a new tab).
Read the README here
teb_local_planner ROS Package
The teb_local_planner package implements a plugin to the base_local_planner of the 2D navigation stack. The underlying method called Timed Elastic Band locally optimizes the robot's trajectory with respect to trajectory execution time, separation from obstacles and compliance with kinodynamic constraints at runtime.
Refer to http://wiki.ros.org/teb_local_planner (opens in a new tab) for more information and tutorials.
Build status of the melodic-devel branch:
- ROS Buildfarm (Melodic): Image: Melodic Status (opens in a new tab) (opens in a new tab)
Citing the Software
Since a lot of time and effort has gone into the development, please cite at least one of the following publications if you are using the planner for your own research:
- C. Rösmann, F. Hoffmann and T. Bertram: Integrated online trajectory planning and optimization in distinctive topologies, Robotics and Autonomous Systems, Vol. 88, 2017, pp. 142–153.
- C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann and T. Bertram: Trajectory modification considering dynamic constraints of autonomous robots. Proc. 7th German Conference on Robotics, Germany, Munich, May 2012, pp 74–79.
- C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann and T. Bertram: Efficient trajectory optimization using a sparse model. Proc. IEEE European Conference on Mobile Robots, Spain, Barcelona, Sept. 2013, pp. 138–143.
- C. Rösmann, F. Hoffmann and T. Bertram: Planning of Multiple Robot Trajectories in Distinctive Topologies, Proc. IEEE European Conference on Mobile Robots, UK, Lincoln, Sept. 2015.
- C. Rösmann, F. Hoffmann and T. Bertram: Kinodynamic Trajectory Optimization and Control for Car-Like Robots, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Vancouver, BC, Canada, Sept. 2017.
Image: Buy Me A Coffee (opens in a new tab) (opens in a new tab)
Videos
The left of the following videos presents features of the package and shows examples from simulation and real robot situations. Some spoken explanations are included in the audio track of the video. The right one demonstrates features introduced in version 0.2 (supporting car-like robots and costmap conversion). Please watch the left one first.
Image: teb_local_planner - An Optimal Trajectory Planner for Mobile Robots (opens in a new tab) (opens in a new tab) Image: teb_local_planner - Car-like Robots and Costmap Conversion (opens in a new tab) (opens in a new tab)
License
The teb_local_planner package is licensed under the BSD license. It depends on other ROS packages, which are listed in the package.xml. They are also BSD licensed.
Some third-party dependencies are included that are licensed under different terms:
- Eigen, MPL2 license, http://eigen.tuxfamily.org (opens in a new tab)
- libg2o / g2o itself is licensed under BSD, but the enabled csparse_extension is licensed under LGPL3+, https://github.com/RainerKuemmerle/g2o (opens in a new tab). CSparse (opens in a new tab) is included as part of the SuiteSparse collection, http://www.suitesparse.com (opens in a new tab).
- Boost, Boost Software License, http://www.boost.org (opens in a new tab)
All packages included are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the licenses for more details.
Requirements
Install dependencies (listed in the package.xml and CMakeLists.txt file) using rosdep:
rosdep install teb_local_planner
Files and versions
- Repository on GitHubgithub.com/rst-tu-dortmund/teb_local_planner (opens in a new tab)
- The version Robotheca read9e55af4 (opens in a new tab)
- Latest release0.1.3 (20 May 2015)
Robotheca never hosts the code: each link goes to the creator's own page.
Use it
How to install it, in the creator's words: The project's README (opens in a new tab)
Robotheca doesn't review code. Read it before running it.
Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.