Michel Aractingi
f4f5b26a21
Several fixes to move the actor_server and learner_server code from the maniskill environment to the real robot environment.
...
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Eugene Mironov
434d1e0614
[HIL-SERL port] Add Reward classifier benchmark tracking to chose best visual encoder ( #688 )
2025-03-28 17:18:24 +00:00
Michel Aractingi
729b4ed697
- Added lerobot/scripts/server/gym_manipulator.py that contains all the necessary wrappers to run a gym-style env around the real robot.
...
- Added `lerobot/scripts/server/find_joint_limits.py` to test the min and max angles of the motion you wish the robot to explore during RL training.
- Added logic in `manipulator.py` to limit the maximum possible joint angles to allow motion within a predefined joint position range. The limits are specified in the yaml config for each robot. Checkout the so100.yaml.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
163bcbcad4
fixed bug in crop_dataset_roi.py
...
added missing buffer.pt in server dir
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
875662f16b
Added additional wrappers for the environment: Action repeat, keyboard interface, reset wrapper
...
Tested the reset mechanism and keyboard interface and the convert wrapper on the robots.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
87c7eca582
Added crop_dataset_roi.py that allows you to load a lerobotdataset -> crop its images -> create a new lerobot dataset with the cropped and resized images.
...
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
179ee3b1f6
- Added base gym env class for the real robot environment.
...
- Added several wrappers around the base gym env robot class.
- Including: time limit, reward classifier, crop images, preprocess observations.
- Added an interactive script crop_roi.py where the user can interactively select the roi in the observation images and return the correct crop values that will improve the policy and reward classifier performance.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
b29401e4e2
- Refactor observation encoder in modeling_sac.py
...
- added `torch.compile` to the actor and learner servers.
- organized imports in `train_sac.py`
- optimized the parameters push by not sending the frozen pre-trained encoder.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
c620b0878f
Cleaned learner_server.py. Added several block function to improve readability.
...
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
2023289ce8
Added support for checkpointing the policy. We can save and load the policy state dict, optimizers state, optimization step and interaction step
...
Added functions for converting the replay buffer from and to LeRobotDataset. When we want to save the replay buffer, we convert it first to LeRobotDataset format and save it locally and vice-versa.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
9afd093030
Removed unnecessary time.sleep in the streaming server on the learner side
...
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
18207d995e
- Added additional logging information in wandb around the timings of the policy loop and optimization loop.
...
- Optimized critic design that improves the performance of the learner loop by a factor of 2
- Cleaned the code and fixed style issues
- Completed the config with actor_learner_config field that contains host-ip and port elemnts that are necessary for the actor-learner servers.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
a0a81c0c12
FREEDOM, added back the optimization loop code in learner_server.py
...
Ran experiment with pushcube env from maniskill. The learning seem to work.
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
Michel Aractingi
ef64ba91d9
Added server directory in lerobot/scripts that contains scripts and the protobuf message types to split training into two processes, acting and learning. The actor rollouts the policy and collects interaction data while the learner recieves the data, trains the policy and sends the updated parameters to the actor. The two scripts are ran simultaneously
...
Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com >
2025-03-28 17:18:24 +00:00
AdilZouitine
83dc00683c
Stable version of rlpd + drq
2025-03-28 17:18:24 +00:00
Adil Zouitine
4b78ab2789
Change SAC policy implementation with configuration and modeling classes
2025-03-28 17:18:24 +00:00
Adil Zouitine
bd8c768f62
SAC works
2025-03-28 17:18:24 +00:00
Adil Zouitine
921ed960fb
Add rlpd tricks
2025-03-28 17:18:24 +00:00
Adil Zouitine
67b64e445b
SAC works
2025-03-28 17:18:24 +00:00
Adil Zouitine
b495b19a6a
[WIP] correct sac implementation
2025-03-28 17:18:24 +00:00
Michel Aractingi
6139df553d
Extend reward classifier for multiple camera views ( #626 )
2025-03-28 17:18:24 +00:00
Eugene Mironov
b68730474a
[Port HIL_SERL] Final fixes for the Reward Classifier ( #598 )
2025-03-28 17:18:24 +00:00
Michel Aractingi
80b86e9bc3
Added normalization schemes and style checks
2025-03-28 17:18:24 +00:00
Michel Aractingi
399f834788
Update lerobot/scripts/train_hilserl_classifier.py
...
Co-authored-by: Yoel <yoel.chornton@gmail.com >
2025-03-28 17:18:24 +00:00
Eugene Mironov
df57d372d6
Fixup
2025-03-28 17:18:24 +00:00
Michel Aractingi
76234b7d14
Add human intervention mechanism and eval_robot script to evaluate policy on the robot ( #541 )
...
Co-authored-by: Yoel <yoel.chornton@gmail.com >
2025-03-28 17:18:24 +00:00
Yoel
58cc445921
Reward classifier and training ( #528 )
...
Co-authored-by: Daniel Ritchie <daniel@brainwavecollective.ai >
Co-authored-by: resolver101757 <kelster101757@hotmail.com >
Co-authored-by: Jannik Grothusen <56967823+J4nn1K@users.noreply.github.com >
Co-authored-by: Remi <re.cadene@gmail.com >
Co-authored-by: Michel Aractingi <michel.aractingi@huggingface.co >
2025-03-28 17:18:24 +00:00
Steven Palma
a6015a55f9
chore(scripts): remove deprecated script ( #887 )
2025-03-23 01:16:50 +01:00
Ermano Arruda
c37b1d45b6
parametrise tolerance_s in visualize_dataset scripts ( #716 )
2025-03-13 10:28:29 +01:00
Steven Palma
5e9473806c
refactor(config): Move device & amp args to PreTrainedConfig ( #812 )
...
Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com >
2025-03-06 17:59:28 +01:00
Harsimrat Sandhawalia
10706ed753
Support for discrete actions ( #810 )
2025-03-06 10:27:29 +01:00
Steven Palma
5d24ce3160
chore(doc): add license header to all files ( #818 )
2025-03-05 17:56:51 +01:00
Mishig
a27411022d
[visualization] Ignore 2d or 3d data for now ( #809 )
2025-03-04 10:53:01 +01:00
Simon Alibert
8861546ad8
[Security] Add Bandit ( #795 )
2025-03-01 19:19:26 +01:00
Mishig
800c4a847f
[Vizualisation] independent column names ( #783 )
2025-02-27 14:47:18 +01:00
Simon Alibert
a1809ad3de
Add typos checks ( #770 )
2025-02-25 23:51:15 +01:00
Jannik Grothusen
8699a28be0
[QOL] Enable teleoperation during environment reset ( #725 )
2025-02-25 19:28:26 +01:00
Simon Alibert
3354d919fc
LeRobotDataset v2.1 ( #711 )
...
Co-authored-by: Remi <remi.cadene@huggingface.co >
Co-authored-by: Remi Cadene <re.cadene@gmail.com >
2025-02-25 15:27:29 +01:00
Pepijn
aca464ca72
Add mobile so100 ( #724 )
2025-02-25 09:06:50 +01:00
Simon Alibert
c4c2ce04e7
Update pre-commits ( #733 )
2025-02-15 15:51:17 +01:00
Simon Alibert
b86a2c0b47
Fix wandb logging ( #730 )
2025-02-14 18:00:12 +01:00
Ilia Larchenko
c574eb4984
Fixed eval.py on MPS ( #702 )
2025-02-14 00:03:55 +01:00
Simon Alibert
e71095960f
Fixes following #670 ( #719 )
2025-02-12 12:53:55 +01:00
Simon Alibert
90e099b39f
Remove offline training, refactor train.py and logging/checkpointing ( #670 )
...
Co-authored-by: Remi <remi.cadene@huggingface.co >
2025-02-11 10:36:06 +01:00
Remi
638d411cd3
Add Pi0 ( #681 )
...
Co-authored-by: Simon Alibert <simon.alibert@huggingface.co >
Co-authored-by: Simon Alibert <75076266+aliberts@users.noreply.github.com >
Co-authored-by: Pablo <pablo.montalvo.leroux@gmail.com >
2025-02-04 18:01:04 +01:00
Pepijn
ae9605f03c
fix setting motor id with new dataclass config ( #668 )
2025-01-31 20:48:46 +01:00
Simon Alibert
3c0a209f9f
Simplify configs ( #550 )
...
Co-authored-by: Remi <remi.cadene@huggingface.co >
Co-authored-by: HUANG TZU-CHUN <137322177+tc-huang@users.noreply.github.com >
2025-01-31 13:57:37 +01:00
Morgan Redfield
4323bdce22
updating config instructions for koch 1v1 motors ( #658 )
2025-01-28 13:20:33 +01:00
HUANG TZU-CHUN
5daa45436d
Fix typos in lerobot/scripts/visualize_dataset.py ( #656 )
2025-01-28 13:07:10 +01:00
Pradeep Kadubandi
380b836eee
Fix for the issue https://github.com/huggingface/lerobot/issues/638 ( #639 )
2025-01-15 10:50:38 +01:00