Martino Russi
8e6952150f
add sonic wbc
2026-03-26 12:35:59 +01:00
Martino Russi
4f2ef024d8
feat(robots): Unitree G1 WBC implementation ( #2876 )
...
* move locomotion from examples to robot, move controller to teleoperator class
* modify teleoperate to send back actions to robot
* whole body controller
* add holosoma to locomotros
* various updates
* update joint zeroing etc
* ensure safefail with locomotion
* add unitree locomotion
* launch camera from g1 server
* publish at varying framerates
* fix async read in camera
* attempting to fix camera lag
* test camera speedup
* training
* inference works
* remove logging from pi0
* remove logging
* push local changes
* testing
* final changes
* revert control_utils
* revert utils
* revert
* revert g1
* revert again:
* revert utils
* push recents
* remove examples
* remove junk
* remove mjlog
* revergt edit_dataset
* Update lerobot_edit_dataset.py
Signed-off-by: Martino Russi <77496684+nepyope@users.noreply.github.com >
* undo teleop changes
* revert logging
* remove loggings
* remove loogs
* revert dataset tools
* Update dataset_tools.py
Signed-off-by: Martino Russi <77496684+nepyope@users.noreply.github.com >
* move gravity to utils
* revert changes
* remove matplotlib viewer (rerun works fine)
* factory revert
* send policy action directly
* recent changes
* implement flexible action space
* send empty command if arms are missing
* rename locomotion to controller
* add init
* implement feedback
* add feedback for teleoperator
* fix ruff
* fix ruff
* use read_latest
* fix zmq camera
* revert exo_serial
* simplify PR
* revert exo_changes
* revert camera_zmq
* Update camera_zmq.py
Signed-off-by: Martino Russi <77496684+nepyope@users.noreply.github.com >
* remove frame duplication from zmq server
* revert channerfactoryinitialize
* keep channelfactoryinitialize
* remove zeroing out logic
* fix typo
* refactor teleop class
* simplify teleop further
* import armindex at the top
* fix visualizer again
* revert ik helper
* push stuff
* simplify image_server
* update image_server
* asd
* add threading logic
* simplify ik helper stuff
* simplify holosoma
* fix names
* fix docs
* revert leg override
* clean connect
* fix controller
* fix ruff
* clean teleoperator
* set_from_wireless
* avoid double initializations
* refactor robot class
* fix pre-commit
* update docs
* update docs format
* add teleop instructions
* unitree_g1 specific exception in record/teleoperate
* add thumbnail to docs
* add thumbnail to doc
* refactor(unitree): multiple improvements (#3103 )
* refactor(unitree): multiple improvements
* test(unitree): added tests + improved installation instructions
* refactor(robots): minor changes unitree robot kinematic
* chore(robots): rename g1 kinematics file
---------
Signed-off-by: Martino Russi <77496684+nepyope@users.noreply.github.com >
Signed-off-by: Steven Palma <imstevenpmwork@ieee.org >
Co-authored-by: Steven Palma <imstevenpmwork@ieee.org >
Co-authored-by: Steven Palma <steven.palma@huggingface.co >
2026-03-08 11:33:24 +01:00
Martino Russi
6b8d4c75a6
Feat/g1 improvements record sim ( #2765 )
...
This PR extends the integration of Unitree g1 with the LeRobot codebase. By converting robot state to a flat dict we can now record and replay episodes (example groot/holosoma scripts need to be adjusted as well). We also improve the simulation integration by calling .step @ _subscribe_motor_state instead of it running in a separate thread. We also add ZMQ camera to lerobot, streaming base64 images over json
2026-01-12 17:31:39 +01:00
Martino Russi
7e9d05a799
add holosoma locomotion ( #2669 )
...
Add holosoma locomotion from Amazon-FAR
Add reset method to unitree_g1
Format actions as dict
Update docs
2026-01-07 16:05:31 +01:00
Martino Russi
37f43df88a
Feat/add unitree g1 robot ( #2530 )
...
* add unitree_g1_robot_class
* finish locomotion loading code
* precommit
* separate groot locomotion logic
* remove leftover locomotion variable, unify kp kd
* format config
* properly comment config, example locomotion and unitree_g1 class
* ready to review
* download policy from the hub in `examples/unitree_g1/gr00t_locomotion`
* fix linter
* make precommit happy, add ignore flags
* linter pt3
* linter pt4
* [done] make precommit happy
* fix linter 5
* add docs
* push utils
* feat(robots): add Unitree G1 humanoid support with ZMQ bridge (#2539 )
* feat(robots): add Unitree G1 humanoid support with ZMQ bridge
- Use JSON + base64 serialization for secure communication instead of pickle
- Add documentation section
- Rename robot_server to run_g1_server
- Add dependecies to pyproject.toml
* nit in docs
* remove globals use
* cast robot data to int/float
* ensure robot is connected before changing mode
* temperature can be list, average in such case
---------
Co-authored-by: Martino Russi <nopyeps@gmail.com >
* style nit
* remove transform_imu_data
* remove scipy dependency
* modify toml, add external unitree_sdk2py dep
* return actions from send_action
* cleaning
* add instructions for local deployment
* Update src/lerobot/robots/unitree_g1/unitree_g1.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Martino Russi <77496684+nepyope@users.noreply.github.com >
* update config and readme
* update docs
* update docs
* remove torch import
* fix docs
* remove ip from docs
* add licence header
---------
Signed-off-by: Martino Russi <77496684+nepyope@users.noreply.github.com >
Co-authored-by: Michel Aractingi <michel.aractingi@huggingface.co >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-01 16:10:13 +01:00