Commit 27921c5
Mpc step planning (#1854)
* mpc step planning
* taplo fmt
* Nuke `traits::LossField`
* Use parameters instead of hard-coded constants
* Move test around
* Organize imports
* Add todo comment
* undo changes in golden goal
* Rename `AlignWithPath` -> `Unspecified` to reflect new semantics
* Refactor: remove `StepPlanningLossField`
* Clean up old comments
* Fix failing test
* Borrow `Path`
* Borrow `Parameters`
* Naming consistency
* Remove unused variable
* Remove another unused variable
* Add todo comment
* Remove outdated comment
* Re-implement customizable walk volume exponents
* Remove unused parameters
* Fix parameter path
* Undo accidental change
* Remove todo comment
* Remove outdated test comment
* Update todo comment
* Reduce backwards step length
* Verify path_distance gradient
* Add some new gradient types
* Pose: use `Angle` for orientation
* Add more gradient verification tests
* Use test_path fn from test_utils module
* Refactor module layout
* Update behavior sim scenarios
* Fix bugs in target orientation field
* Make learning rate configurable
* Expose current support side and draw soles in twix
* Expose step plan cost
* Also calculate greedy step plan
* Remove pub use
* Use correct norm for normalizing gradient
* Fix greedy shit
* Remove `PoseAndSupportFoot` struct
* Rename variable
* Simulate support foot switch in greedy step plan
* Remove `dbg`
* Fix incorrect fake gradient size
* --wip--
* Change mpc test scenario to use fixed path
* --wip--
* Use OpEn/PANOC solver (WIP!)
* Fix step drawing
* Improve step plan drawing
* Improve mpc demo scenario path
* Normalize gradient
* Tweak parameters
* Tweak demo scenario path
* Fix incorrect step plan drawing (again)
* Remove unused parameter
* Remove transparency of planned steps
* Paint 0th step
* Update optimization parameters
* Remove `PlannedStep`
* Remove unused parameters
* Add benchmark
* Optimization: precompute cost function parts
* Remove unused field
* Remove unused field
* Tiny refactor
* Add `EndPoints` trait
* Refactor: reuse length impl
* Tiny refactor
* impl endpoints for path
* Take direct step to target if possible
* Fix occasional instability
* Organize step planning cost factors
* Don't panic if solver fails
* Fix trailing comma
* Remove unused import
* Refactor alignment importance scaling
* Verify walk orientation gradient
* Remove hybrid alignment
* Recycle variables of previous cycle
* Forget previous step plan on support side switch
* Update step planning test scenario
* Enable walk and target orientation
* Tweak parameters to fix donking
* Add warm start parameter
* Refactor
* Greedy step plan: Clamp to anatomical constraints
* Fix missing struct field
* Twix: draw target orientation
* Refactor
* Re-add `OrientationMode::AlignWithPath`
* Change some magic numbers
* Move `WalkVolumeExtents` out of `StepPlanningOptimizationParameters`
* Use constant for number of variables per step
* Move `gradient_type` module to its own file
* Rework step planner parameters and step clamping
* Remove duplicate gradient_type module
* Add `PoseGradient::zeros()` convenience method
* Remove unneccessary check
* Fix sign flip in path alignment
* Add proptest for `OrientationMode::AlignWithPath`
* Use `OrientationMode::AlignWithPath` in `walk_to_pose`
* Remove unneccessary `abs()`
* Reduce path alignment tolerance parameter
* Add tolerance field to `OrientationMode`
* Add orientation mode parameter to `walk_to_pose`
and force kickoff striker to look towards the other field half
* Fix searching behavior
* Tweak target orientation in lost_ball
* Add todo comment
* Move `StepPlanning` out of `step_plan.rs`
* Re-add PR #1914, which was removed in a rebase
this was easier than correctly rebasing.
* Use `Path` newtype
* Fix another timing issue
* Move step planning proptest function bodies out of macro
* Reject proptest samples on test path discontinuities
* Add proptest config to increase number of samples
* Add parameter to disable MPC step planning
* Constify number of steps
* Remove todo
* Remove `max_step_size` parameter
* Add `Orientation` type
* Consolidate `WrapGradient` and `UnwrapGradient`
* Move test_path out of cfg(test) gate
Otherwise, it could not be used across crate boundaries and in external benches/tests.
* penalize orientation towards the wrong side of the path
* Pin OpEn dependency
* Remove step_planning_duration
* Clamp inside movement without anatomical constraints
* Rename `plan_step` to make intent clearer
* Adress review comments
* Remove unnecessary special case for striker walk-in
* Remove unused utilities
* Move test_utils module to its own file
* Organize imports
* Refactor: use hybrid alignment distance again
* Re-implement hybrid alignment for greedy step plan
* Refactor direct step and fix a few issues
Before, direct step was not working for the greedy step planner
* Remove leftover comment
* Naming consistency
* Use methods of `Path` type
---------
Co-authored-by: Konrad Nölle <konrad@familie-noelle.de>1 parent 6c1ed64 commit 27921c5
83 files changed
Lines changed: 4778 additions & 550 deletions
File tree
- crates
- bevyhavior_simulator
- src
- bin
- control
- src
- behavior
- motion
- geometry/src
- hulk_imagine
- hulk_replayer
- hulk
- linear_algebra/src
- path_serde/src
- step_planning_solver
- benches
- src
- step_planning
- src
- cost_fields
- geometry
- test_utils
- traits
- utils
- types/src
- walking_engine/src
- etc/parameters
- tools
- parameter_tester
- twix
- src
- panels/map
- layers
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
46 | 48 | | |
47 | 49 | | |
48 | 50 | | |
| |||
164 | 166 | | |
165 | 167 | | |
166 | 168 | | |
| 169 | + | |
167 | 170 | | |
168 | 171 | | |
169 | 172 | | |
170 | 173 | | |
171 | 174 | | |
| 175 | + | |
172 | 176 | | |
173 | 177 | | |
174 | 178 | | |
| |||
214 | 218 | | |
215 | 219 | | |
216 | 220 | | |
| 221 | + | |
| 222 | + | |
217 | 223 | | |
218 | 224 | | |
219 | 225 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
20 | | - | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
| 74 | + | |
79 | 75 | | |
80 | 76 | | |
81 | 77 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
Lines changed: 82 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
Lines changed: 101 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
41 | 43 | | |
42 | 44 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
| 72 | + | |
71 | 73 | | |
72 | 74 | | |
73 | 75 | | |
| |||
0 commit comments