finds.dev← search

// the find

rst-tu-dortmund/teb_local_planner

★ 1,316 · C++ · BSD-3-Clause · updated Jan 2026

An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands (ROS Package)

A ROS 1 local planner plugin that uses Timed Elastic Bands to optimize robot trajectories in real-time, handling obstacle avoidance and kinodynamic constraints simultaneously. It's built around g2o graph optimization and is one of the more theoretically grounded local planners in the ROS ecosystem. Aimed at robotics researchers and engineers doing autonomous mobile robot navigation.

The homotopy class planning is genuinely interesting — it explores multiple topologically distinct paths around obstacles rather than committing to one, which helps avoid local minima that kill simpler planners. The g2o edge architecture is clean: each constraint (velocity, acceleration, obstacle clearance, kinematics) is a separate edge type, making the optimization graph easy to extend without touching the core solver. Car-like (Ackermann) robot support is baked in, not bolted on. The academic backing is real — the papers are peer-reviewed and the implementation actually matches the theory.

It's ROS 1 only, with the active branch targeting Melodic (Ubuntu 18.04, EOL). Nav2 / ROS 2 users are on their own — there's a community port but this repo isn't it. The parameter surface is enormous: teb_config.h exposes ~80 tunable values and getting them right for a new robot platform is genuinely painful with little guidance beyond trial and error. Real-time performance degrades noticeably when homotopy class planning is enabled with many obstacles, and there's no documentation on when to turn it off. Last meaningful commit is 2021; the January 2026 push looks like CI or metadata only — this is effectively unmaintained for new development.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →