Skip to content

Conversation

@alexschmander
Copy link
Contributor

@alexschmander alexschmander commented Oct 8, 2025

Why? What?

We are moving robot platforms to the Booster Robotics K1. To facilitate this change, we have decided to fully move our codebase to this new platform and discontinue our development on the NAO Platform.

This PR removes the hulk_nao binary crate, the hulk_webots crate as well as some related ones. In exchange it adds a hulk_mujoco binary crate. This is a binary that executes the framework and robotics code while providing a hardware interface to a mujoco simulator and is comparable in use case to the hulk_webots crate, which it replaces. The mujoco simulator is currently being developed here.

The CI has also been changed to not build the hulk_nao and hulk_webots crate and instead build the hulk_mujoco crate.

Additionally the test job was temporarily disabled, since the execution of the bevyhavior simulator scenarios depend on parameters which were NAO specific. The bevyhavior simulator is definitely still useful for the new platform, but extensive rework is required there and that is out of scope for this PR, since the behavior simulation is not as crucial for now.

ToDo / Known Issues

If this is a WIP describe which problems are to be fixed.

Ideas for Next Iterations (Not This PR)

How to Test

  • In a separate worktree pull the above mentioned mujoco simulator branch.
    • On that branch, in mujoco-simulator run uv run main.py to start the simulator.
    • Additionally, in tools/mujoco-rust-server/frontend/ run npm i and then npm run dev to start the simulator visualizer.
  • Then run ./pepsi run mujoco

@github-project-automation github-project-automation bot moved this to Request for Review in Development Oct 8, 2025
@alexschmander alexschmander force-pushed the minimal-booster-framework branch 5 times, most recently from a1ace88 to b861543 Compare October 8, 2025 18:11
@alexschmander alexschmander marked this pull request as ready for review October 8, 2025 18:23
@alexschmander alexschmander changed the title Minimal booster framework Minimal viable booster framework Oct 8, 2025
@alexschmander alexschmander added the tools:Simulator Bevyhavior Simulator, etc label Oct 8, 2025
@alexschmander alexschmander force-pushed the minimal-booster-framework branch 2 times, most recently from d66567b to c69d509 Compare October 9, 2025 16:58
@oleflb
Copy link
Contributor

oleflb commented Oct 10, 2025

lol, casually deletes default.json 😮

@alexschmander
Copy link
Contributor Author

lol, casually deletes default.json 😮

I mean, those were all NAO related parameters, right? In the spirit of starting of clean, doing this seems right imo. Every parameter we still need we can simply bring it back, when we implement something that does need it.

vivi-enne and others added 10 commits October 10, 2025 17:19
Co-authored-by: pejotejo <149575214+pejotejo@users.noreply.github.com>
Co-authored-by: pejotejo <149575214+pejotejo@users.noreply.github.com>

better naming and docs

Co-authored-by: pejotejo <149575214+pejotejo@users.noreply.github.com>
Add mujoco connection test

Add time stamped message type

--wip--
Co-authored-by: Rasmus Mecklenburg <42248344+rmburg@users.noreply.github.com>
Co-authored-by: Julian Schuler <31921487+julianschuler@users.noreply.github.com>
Co-authored-by: knoellle <33729490+knoellle@users.noreply.github.com>
Co-authored-by: knoellle <33729490+knoellle@users.noreply.github.com>
@alexschmander alexschmander force-pushed the minimal-booster-framework branch from 0a183fb to 531aa48 Compare October 10, 2025 15:28
@schluis
Copy link
Contributor

schluis commented Oct 11, 2025

lol, casually deletes default.json 😮

I mean, those were all NAO related parameters, right? In the spirit of starting of clean, doing this seems right imo. Every parameter we still need we can simply bring it back, when we implement something that does need it.

In my experience, restoring lost functionality can sometimes be more difficult than expected. Our old walking engine had fairly good catching steps. It took us two? years to restore them.
This example might not be a perfect fit, but please don't take the decision lightly to get rid of this...

@alexschmander alexschmander force-pushed the minimal-booster-framework branch from 823c457 to d835fc2 Compare October 11, 2025 10:27
@alexschmander
Copy link
Contributor Author

lol, casually deletes default.json 😮

I mean, those were all NAO related parameters, right? In the spirit of starting of clean, doing this seems right imo. Every parameter we still need we can simply bring it back, when we implement something that does need it.

In my experience, restoring lost functionality can sometimes be more difficult than expected. Our old walking engine had fairly good catching steps. It took us two? years to restore them. This example might not be a perfect fit, but please don't take the decision lightly to get rid of this...

I understand your hesitance to simply get rid of the result of years of tuning trial and error. I would really like to stress, that the information in the default.json is not supposed to simply be tossed out. We made the decision to make a clean start and only bring NAO code back, when specifically adapted to the booster to avoid dead, unused or even false information.
But we should definitely consult the old parameters, when introducing new booster related ones. I'm not sure what the best workflow would be to make sure that actually happens.

Those are my two cents, but this is absolutely still up for discussion. Any other opinions/arguments from the team?

@alexschmander alexschmander force-pushed the minimal-booster-framework branch from d835fc2 to 8cefebd Compare October 11, 2025 10:45
@oleflb
Copy link
Contributor

oleflb commented Oct 14, 2025

lol, casually deletes default.json 😮

I mean, those were all NAO related parameters, right? In the spirit of starting of clean, doing this seems right imo. Every parameter we still need we can simply bring it back, when we implement something that does need it.

In my experience, restoring lost functionality can sometimes be more difficult than expected. Our old walking engine had fairly good catching steps. It took us two? years to restore them. This example might not be a perfect fit, but please don't take the decision lightly to get rid of this...

We talked extensively about how to handle the transition to K1 last wednesday and came to the conclusion that deleting stuff is better than keeping things where we don't know if it still works.
This is because getting back deleted stuff is relatively easy with git, whereas finding broken behavior can be quite time-consuming.
Therefore, we definitely do not want to introduce any silent bugs and I agree with @alexschmander.

@alexschmander alexschmander force-pushed the minimal-booster-framework branch from 8cefebd to 6056097 Compare October 14, 2025 16:30
@alexschmander
Copy link
Contributor Author

Someone with the correct permission has to change the required CI jobs for this to be able to merge.

@alexschmander alexschmander force-pushed the minimal-booster-framework branch from 6056097 to 84d1620 Compare October 14, 2025 16:33
@pejotejo pejotejo added this to the Booster milestone Oct 15, 2025
@alexschmander alexschmander added this pull request to the merge queue Oct 15, 2025
Merged via the queue into HULKs:main with commit 8f9d901 Oct 15, 2025
25 checks passed
@alexschmander alexschmander deleted the minimal-booster-framework branch October 15, 2025 15:25
@github-project-automation github-project-automation bot moved this from Request for Review to Done in Development Oct 15, 2025
@pejotejo pejotejo modified the milestones: Booster, Booster 0 Oct 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants