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

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

Build:
DEFAULT BRANCH: main
Ran 15 Sep 2026 01:55PM 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:52PM UTC coverage: 85.568% (+1.3%) from 84.24%
34977872924

push

github

NGierden
Port the Kalman filtering stage from the baseline branch

The `baseline` branch carried a Kalman filter reworked into a usable
pipeline stage, and that work existed nowhere else: `main` has the bare
`KalmanFilter` class but no way to put it in the signal path. Ports it
onto current `main` so the branch can be retired.

From the branch:

* `KalmanFilterConfig`, a frozen config replacing five positional
  constructor arguments, matching every other filter in the package.
* `KalmanFilter.filter(angle_rad, time_difference)` and `reset()`, the
  shape the pipeline's filtering stage expects.
* `KalmanFiltering(FilteringStrategy)` and `FilteringMethod.KALMAN`, so
  the angle stage can be switched to it from `BasicConfig`.

Two defects fixed rather than carried over:

* The branch's `filter()` wrote the measured sample period into
  `config.state_space.A[0, 1]`. `frozen=True` prevents rebinding the
  field, not mutating the array inside it, and one `BasicConfig` serves
  both limbs -- so the two legs would have overwritten each other's
  model, both still producing plausible numbers. The model and the
  initial estimate are now copied per instance.
* `reset()` assigned the config's own arrays to the instance. Nothing
  mutates them in place today, so it did not corrupt anything yet; it
  now copies, so it cannot start to.

The state-space sample period is also built from the controller
frequency in `PreprocessorConfig` rather than hardcoded at 0.01.

Tests cover what the branch left untested -- `filter()` and `reset()` --
plus both defects above as regressions.

One finding is recorded rather than fixed:
`test_filtering_reduces_noise_while_walking` is xfail. With the shipped
covariances the stage lags the signal instead of cleaning it.
MEASUREMENT_NOISE = 0.75 rad^2 implies a measurement standard deviation
of 0.87 rad (~50 deg), larger than the hip angle itself, so the filter
nearly ignores the measurements and leans on the constant-velocity
model: 3 samples ... (continued)

1251 of 1462 relevant lines covered (85.57%)

0.86 hits per line

Coverage Regressions

Lines Coverage ∆ File
18
83.85
9.63% hip_controller/control/signal_processing/sensor_preprocessor.py
8
83.33
2.9% hip_controller/control/signal_processing/filtering.py
Jobs
ID Job ID Ran Files Coverage
1 34977872924.1 15 Sep 2026 01:55PM UTC 31
85.57
GitHub Action Run
Source Files on build 34977872924
  • 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 #34977872924
  • 9d74e91a on github
  • Prev Build on main (#34975336816)
  • Next Build on main (#34982017774)
  • 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