• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

TUM-Aries-Lab / hip-controller / 34975336816
86%

Build:
DEFAULT BRANCH: main
Ran 15 Sep 2026 01:31PM UTC
Jobs 1
Files 31
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Sep 2026 01:29PM UTC coverage: 84.24% (+0.2%) from 84.059%
34975336816

push

github

NGierden
Add treadmill ramp inclinations to the assist-mode axis

The next project on this controller differentiates treadmill inclination
rather than locomotion mode, so the controller needs a second family of
tuned parameter sets. Adds them to the existing axis rather than
introducing a second one: the contexts are mutually exclusive -- nobody
descends stairs while on a 5% ramp -- so two orthogonal axes would only
force an invented rule for combining their parameters.

Introduces `AssistMode`, naming the values that were previously bare ints
threaded through three consumers:

    LEVEL = 0, ASCEND_STAIRS = 1, DESCEND_STAIRS = 2,
    RAMP_2_5 = 3, RAMP_5 = 4

0-2 are what the TCN classifier emits and keep their meaning exactly;
3-4 are the uphill ramps, named for their inclination in percent.
`set_locomotion_mode` still takes a plain int, since the classifier emits
integers -- the enum documents and names the values without constraining
callers, and the per-mode tables stay keyed by int so an unknown id still
reaches the level fallback.

No ramp-specific tuning has been measured yet, so all three consumers give
the ramps the level-ground parameters: level amplitude values, the level
SOGI config, and the level lookup table (ramp walking is continuous gait
with a swing phase, unlike stair climbing). They are separate, named
entries rather than a fallback so the measured values have an obvious home
and the selected mode stays visible in logs.

The amplitude and SOGI dispatches become tables instead of branch chains,
so a future mode is one entry each rather than another elif. Behaviour for
class_ids 0-2 is unchanged, including the DESCEND -> non-DESCEND SOGI state
wipe.

Tests assert the property that makes the axis extensible: every declared
mode reaches all three consumers, and an unrecognised class_id falls back
to level in each of them. A mode wired into only some consumers would
otherwise assist with one tuning while filtering with another, which no
asserti... (continued)

1208 of 1434 relevant lines covered (84.24%)

0.84 hits per line

Coverage Regressions

Lines Coverage ∆ File
27
74.22
-0.4% hip_controller/control/signal_processing/sensor_preprocessor.py
8
90.82
0.6% hip_controller/control/motor_reference_control/amplitude_modulation.py
7
90.14
0.95% hip_controller/control/app.py
1
98.08
0.04% hip_controller/control/motor_reference_control/motor_reference_controller.py
Jobs
ID Job ID Ran Files Coverage
1 34975336816.1 15 Sep 2026 01:31PM UTC 31
84.24
GitHub Action Run
Source Files on build 34975336816
  • Tree
  • List 31
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34975336816
  • a85e6d4a on github
  • Prev Build on main (#34969872797)
  • Next Build on main (#34977872924)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc