Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,16 +228,16 @@ the library does not yet expose. Detailed below under
- **Reuses:** [KalmanFilterBase.hpp](numerical/filters/active/KalmanFilterBase.hpp), [Cholesky](numerical/solvers/CholeskyDecomposition.hpp), item 27.

### 40. Feedback linearization *(float-first)*
- **What:** Cancel known nonlinear dynamics via a coordinate transform + inner control law so an outer linear controller can be applied.
- **Embedded value:** Exact control of robot manipulators and other structurally-known nonlinear plants.
- **What:** Cancel a control-affine system's known nonlinear dynamics via a coordinate transform + inner control law, leaving an equivalent linear system that an outer loop (PD/LQR) can drive.
- **Embedded value:** One linear gain set works across the whole operating envelope of any structurally-known nonlinear plant (robot arms, quadrotors, electromechanical drives) — no gain scheduling, no lookup tables.
- **Algorithm / paper:** A. Isidori, *Nonlinear Control Systems* (1995); Slotine & Li, *Applied Nonlinear Control*.
- **Reuses:** `dynamics/` models, `math::Matrix`, new `nonlinear_control/` module.
- **Reuses:** an injected control-affine plant model, `math::Matrix`, new `nonlinear_control/` module. (The manipulator computed-torque instance lives in robotics-toolbox-cpp.)

### 41. Backstepping controller *(float-first)*
- **What:** Recursive Lyapunov-based design for strict-feedback systems, stabilizing one integrator stage at a time.
- **Embedded value:** Systematic, provably-stable control for cascaded nonlinear plants (electromechanical, flight).
- **Algorithm / paper:** M. Krstić, I. Kanellakopoulos, P. Kokotović, *Nonlinear and Adaptive Control Design* (1995).
- **Reuses:** `dynamics/`, `math::Matrix`, new `nonlinear_control/` module.
- **Reuses:** `math::Matrix`, new `nonlinear_control/` module.

---

Expand Down
16 changes: 2 additions & 14 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ Canonical rules still apply ([AGENTS.md](AGENTS.md), [testing.instructions.md](.
| Optimization | ● | | | | ● | ● | | | |
| Regularization | ● | | | | | ● | ● | | |
| Solvers (linear / ODE / roots) | ● | | ○ | ● | ● | ● | ● | | ● |
| Dynamics & kinematics | ● | | ● | | ● | ● | ● | | |
| Neural network | ● | | | | ○ | ● | ● | | |
| Math foundation | ● | | | | | ● | ● | | ● |

Expand Down Expand Up @@ -194,18 +193,7 @@ Canonical rules still apply ([AGENTS.md](AGENTS.md), [testing.instructions.md](.
within the requested tolerance.
- **M7 conservation** — energy drift bounded for a conservative system over many steps.

### 10. Dynamics & kinematics — `dynamics/`, `kinematics/`
`ForwardKinematics`, `InverseKinematics`, `NewtonEulerSolver`, `RecursiveNewtonEuler`,
`EulerLagrangeSolver`, `ArticulatedBodyAlgorithm`.

- **M1 forward kinematics** — end-effector pose matches known geometry for canonical joint angles.
- **M5 inverse kinematics round-trip** — `FK(IK(pose)) ≈ pose`; converges within iteration budget;
handles reachable vs unreachable targets (M6).
- **M1 cross-method consistency** — `RecursiveNewtonEuler` and `EulerLagrange` produce the same joint
torques for the same state; both match the analytic torque of a simple pendulum / 2-link arm.
- **M7 energy** — conservation in free (unforced) motion; passivity of the mass matrix (SPD).

### 11. Neural network — `neural_network/`
### 10. Neural network — `neural_network/`
`activation/*`, `layer/Dense`, `losses/*`, `model/Model`.

- **M1 activation values** — reference points: `sigmoid(0)=0.5`, `tanh(0)=0`, `relu(−x)=0`,
Expand All @@ -216,7 +204,7 @@ Canonical rules still apply ([AGENTS.md](AGENTS.md), [testing.instructions.md](.
- **M1 dense layer** — `output = W·x + b`; back-prop gradient check.
- **Model (M6)** — forward pass is deterministic and equals the manual layer composition.

### 12. Math foundation — `math/`
### 11. Math foundation — `math/`
`Matrix`, `ComplexNumber`, `Quaternion`, `Cordic`, `TrigonometricFunctions`, `HyperbolicFunctions`,
`AdvancedFunctions`, `Statistics`, `LinearTimeInvariant`, `Toeplitz`, `QNumber`.

Expand Down
2 changes: 1 addition & 1 deletion roadmap/DEPLOYMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Read the spec's three files first (`implementation.md`, `tests.md`, `explanation
4. **CMake**
- Add `.hpp` to `target_sources(...)`, `.cpp` to `numerical_add_coverage_sources(...)`,
`Test<Name>.cpp` to the `_test` target's `target_sources`.
- New module (`trajectory`, `robust_control`, `nonlinear_control`, `controllers/manipulator`):
- New module (`robust_control`, `nonlinear_control`):
create `numerical/<module>/CMakeLists.txt` via `numerical_add_header_library(...)`, add a
`test/` subdir, register it in the parent `CMakeLists.txt`, and add a `doc/<module>/` folder.

Expand Down
12 changes: 0 additions & 12 deletions roadmap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,15 +112,3 @@ with `EXPECT_NEAR` and `math::Tolerance<float>()` (or an explicit tolerance).

### `solvers`
`RungeKuttaIntegrators` (24) · `QrDecomposition` (27) · `LuDecomposition` (28) · `LyapunovSylvester` (31) · `JacobiEigenSolver` (42) · `SingularValueDecomposition` (43)

### `trajectory`
`PolynomialTrajectory` (M2) · `TrapezoidalProfile` (M3) · `SCurveProfile` (M9) · `CartesianSlerpInterpolation` (M10) · `TimeOptimalPathParameterization` (M27)

### `controllers/manipulator`
`PdGravityCompensation` (M5) · `ComputedTorqueControl` (M12) · `ImpedanceControl` (M17) · `OperationalSpaceControl` (M18) · `HybridPositionForceControl` (M19) · `SlotineLiAdaptiveControl` (M20) · `CableTensionDistribution` (M25)

### `kinematics`
`DenavitHartenberg` (M7) · `SpatialJacobian` (M8) · `ManipulabilityIndex` (M11) · `PoseInverseKinematics` (M13) · `RedundancyResolution` (M14) · `ProductOfExponentials` (M15) · `AnalyticalIkPieper` (M21) · `ParallelManipulatorKinematics` (M23) · `MobileManipulatorKinematics` (M24) · `ContinuumKinematics` (M26)

### `dynamics`
`GenericJointLink` (M1) · `FrictionCompensation` (M4)

This file was deleted.

This file was deleted.

65 changes: 0 additions & 65 deletions roadmap/controllers/manipulator/CableTensionDistribution/tests.md

This file was deleted.

This file was deleted.

Loading
Loading