# ethz-adrl/towr

A light-weight, Eigen-based C++ library for trajectory optimization for legged robots.

Repository: https://github.com/ethz-adrl/towr
Canonical: https://ross.abutalabs.com/products/towr
Homepage: http://wiki.ros.org/towr
Language: C++
License: BSD-3-Clause
License Family: permissive
Topics: trajectory-optimization, legged-robots, motion-planning, nonlinear-programming, ros, xpp, ifopt, ipopt, snopt, robot, biped, quadruped, collocation, physics-based-animation, computer-graphics, locomotion, eigen
Last push: 2023-04-17T14:37:35+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 3153, "days_push": 1234, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1079, forks 251 (observed 2026-08-28T04:03:30.289476+00:00)

## What it is
TOWR is a lightweight, Eigen-based C++ library for trajectory optimization of legged robots. It provides reusable variables, costs, and constraints to formulate nonlinear programming problems for motions like hopping, bipedal walking, and quadruped trotting, solved via Ipopt or Snopt through ifopt.

## Use cases
- generate walking or trotting trajectories for a quadruped robot
- optimize gait and step durations for a biped
- plan motion trajectories for legged robots with nonlinear programming
- visualize robot motion plans in rviz
- prototype trajectory optimization formulations for legged locomotion
- use trajectory optimization for physics-based animation

## When to choose
- you need fast (<100ms) trajectory optimization for monoped, biped, or quadruped motions
- you want an extensible, lightweight C++ base-set of variables, costs, and constraints for legged locomotion
- you work in a ROS/catkin environment and want rviz visualization via xpp
- you want to use high-performance NLP solvers like Ipopt or Snopt through ifopt

## When to avoid
- you need trajectory optimization for wheeled, aerial, or manipulator robots rather than legged systems
- you need a actively developed project with frequent updates (last release 2023, largely research code)
- you want a pure-Python or non-ROS workflow without building from source
- you need a full robot controller, not just motion plan generation

## Facets
- artifact type: library
- maturity: maintenance
- function: simulation, math, sdk
- domain: robotics
- platform: cpp
- tags: trajectory-optimization, legged-robots, motion-planning, nonlinear-programming, ipopt, snopt, ifopt, eigen, ros, locomotion, gait-optimization, algorithms, research, linux

## Member repositories
- ethz-adrl/towr (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:30.289476+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:53:03.693130+00:00, confidence not recorded.
  - readme: https://github.com/ethz-adrl/towr (fetched 2026-08-28T04:03:30.289476+00:00, sha 6556dfa7574c)
  - homepage: http://wiki.ros.org/towr (fetched 2026-08-29T12:54:14.698771+00:00, sha e9e81f57e5e1)
  - site_page: https://wiki.ros.org/ROS/Installation (fetched 2026-08-29T12:54:14.704110+00:00, sha 010675c2f05f)
  - site_page: http://docs.ros.org (fetched 2026-08-29T12:54:14.705726+00:00, sha 0fa467f92ffb)
  - site_page: http://docs.ros.org/en/indigo/changelogs/towr/changelog.html (fetched 2026-08-29T12:54:14.709152+00:00, sha 24e95600edab)
  - site_page: http://docs.ros.org/en/kinetic/changelogs/towr/changelog.html (fetched 2026-08-29T12:54:14.711300+00:00, sha 5e86f6b152b2)
  - site_page: http://docs.ros.org/en/lunar/changelogs/towr/changelog.html (fetched 2026-08-29T12:54:14.712999+00:00, sha 70bf9179427a)
  - site_page: http://docs.ros.org/en/melodic/changelogs/towr/changelog.html (fetched 2026-08-29T12:54:14.714700+00:00, sha b7f476d05da7)
- Data as of 2026-08-30T08:39:29.467469+00:00.
