From a6b06eac38c22965fa379a67e56e91670f7c12ce Mon Sep 17 00:00:00 2001 From: HUANG TZU-CHUN Date: Thu, 30 Jul 2026 16:53:27 +0800 Subject: [PATCH] docs: fix env processor code fences and minor doc errors (#3953) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: fix code fences in env processor guide The "Flexibility and Reusability" section wrapped a duplicated example in a four-backtick fence and left a following block unclosed, so the stray closing fence matched a later block. Everything in between rendered as one code block that swallowed the surrounding prose. Remove the duplicated block, add the missing closing fence after the first example, and normalize the four-backtick fences to three so all fences pair correctly. * docs(pi0fast): fix typo 40kk -> 40k steps * docs(integrate-hardware): fix so101 follower source link * docs(hope_jr): fix dataset example link The "example" link in the Record section pointed at the dataset's `/settings` page, which returns HTTP 403 for readers. Drop the `/settings` suffix so it links to the public dataset page the sentence describes. * docs(lekiwi): render emoji shortcodes as unicode MDX does not expand `:hugs:` / `:robot:` shortcodes, so they showed as literal text in the rendered install step. Replace them with the 🤗 and 🤖 unicode characters, matching how the other robot pages write emoji. * docs(smolvla): anchor record link to its section The "Record a dataset" link dropped readers at the top of the il_robots page instead of the relevant section. Point it at the `#record-a-dataset` anchor (the `## Record a dataset` heading in il_robots.mdx) so the link lands on the step it names. --- docs/source/env_processor.mdx | 17 ++--------------- docs/source/hope_jr.mdx | 2 +- docs/source/integrate_hardware.mdx | 2 +- docs/source/lekiwi.mdx | 2 +- docs/source/pi0fast.mdx | 2 +- docs/source/smolvla.mdx | 2 +- 6 files changed, 7 insertions(+), 20 deletions(-) diff --git a/docs/source/env_processor.mdx b/docs/source/env_processor.mdx index 8bfafdfb9..a82dff6e5 100644 --- a/docs/source/env_processor.mdx +++ b/docs/source/env_processor.mdx @@ -88,20 +88,6 @@ policy_preprocessor = NormalizerProcessorStep(stats=dataset_stats) The same policy can work with different environment processors, and the same environment processor can work with different policies: -````python -# Use SmolVLA policy with LIBERO environment -# Use SmolVLA policy with LIBERO environment -libero_preprocessor, libero_postprocessor = make_env_pre_post_processors( - env_cfg=libero_cfg, - policy_cfg=smolvla_cfg, -) -smolvla_preprocessor, smolvla_postprocessor = make_pre_post_processors(smolvla_cfg) -# Or use ACT policy with the same LIBERO environment -libero_preprocessor, libero_postprocessor = make_env_pre_post_processors( - env_cfg=libero_cfg, - policy_cfg=act_cfg, -) -act_preprocessor, act_postprocessor = make_pre_post_processors(act_cfg) ```python # Use SmolVLA policy with LIBERO environment libero_preprocessor, libero_postprocessor = make_env_pre_post_processors( @@ -116,6 +102,7 @@ libero_preprocessor, libero_postprocessor = make_env_pre_post_processors( policy_cfg=act_cfg, ) act_preprocessor, act_postprocessor = make_pre_post_processors(act_cfg) +``` ### 3. **Easier Experimentation** @@ -145,7 +132,7 @@ class LiberoVelocityProcessorStep(ObservationProcessorStep): state = torch.cat([eef_pos, eef_axisangle, eef_vel, gripper_pos, gripper_vel], dim=-1) # 14D return state -```` +``` ### 4. **Cleaner Environment Code** diff --git a/docs/source/hope_jr.mdx b/docs/source/hope_jr.mdx index c29a9f216..6bf601bd3 100644 --- a/docs/source/hope_jr.mdx +++ b/docs/source/hope_jr.mdx @@ -211,7 +211,7 @@ Record, Replay and Train with Hope-JR is still experimental. ### Record -This step records the dataset, which can be seen as an example [here](https://huggingface.co/datasets/nepyope/hand_record_test_with_video_data/settings). +This step records the dataset, which can be seen as an example [here](https://huggingface.co/datasets/nepyope/hand_record_test_with_video_data). ```bash lerobot-record \ diff --git a/docs/source/integrate_hardware.mdx b/docs/source/integrate_hardware.mdx index fa36e7170..af4219b19 100644 --- a/docs/source/integrate_hardware.mdx +++ b/docs/source/integrate_hardware.mdx @@ -18,7 +18,7 @@ If you're using Feetech or Dynamixel motors, LeRobot provides built-in bus inter - [`DynamixelMotorsBus`](https://github.com/huggingface/lerobot/blob/main/src/lerobot/motors/dynamixel/dynamixel.py) – for controlling Dynamixel servos Please refer to the [`MotorsBus`](https://github.com/huggingface/lerobot/blob/main/src/lerobot/motors/motors_bus.py) abstract class to learn about its API. -For a good example of how it can be used, you can have a look at our own [SO101 follower implementation](https://github.com/huggingface/lerobot/blob/main/src/lerobot/robots/so_follower/so101_follower/so101_follower.py) +For a good example of how it can be used, you can have a look at our own [SO101 follower implementation](https://github.com/huggingface/lerobot/blob/main/src/lerobot/robots/so_follower/so_follower.py) Use these if compatible. Otherwise, you'll need to find or write a Python interface (not covered in this tutorial): diff --git a/docs/source/lekiwi.mdx b/docs/source/lekiwi.mdx index 739073b65..5700b192f 100644 --- a/docs/source/lekiwi.mdx +++ b/docs/source/lekiwi.mdx @@ -51,7 +51,7 @@ In addition to these instructions, you need to install the Feetech SDK & ZeroMQ pip install -e ".[lekiwi]" ``` -Great :hugs:! You are now done installing LeRobot, and we can begin assembling the SO100/SO101 arms and the mobile base :robot:. +Great 🤗! You are now done installing LeRobot, and we can begin assembling the SO100/SO101 arms and the mobile base 🤖. Every time you now want to use LeRobot, you can go to the `~/lerobot` folder where we installed LeRobot and run one of the commands. # Step-by-Step Assembly Instructions diff --git a/docs/source/pi0fast.mdx b/docs/source/pi0fast.mdx index 15dff8071..30b95aaf6 100644 --- a/docs/source/pi0fast.mdx +++ b/docs/source/pi0fast.mdx @@ -174,7 +174,7 @@ The model takes images, text instructions, and robot state as input, and outputs ## Reproducing π₀Fast results -We reproduce the results of π₀Fast on the LIBERO benchmark using the LeRobot implementation. We take the LeRobot PiFast base model [lerobot/pi0fast-base](https://huggingface.co/lerobot/pi0fast-base) and finetune for an additional 40kk steps in bfloat16, with batch size of 256 on 8 H100 GPUs using the [HuggingFace LIBERO dataset](https://huggingface.co/datasets/HuggingFaceVLA/libero). +We reproduce the results of π₀Fast on the LIBERO benchmark using the LeRobot implementation. We take the LeRobot PiFast base model [lerobot/pi0fast-base](https://huggingface.co/lerobot/pi0fast-base) and finetune for an additional 40k steps in bfloat16, with batch size of 256 on 8 H100 GPUs using the [HuggingFace LIBERO dataset](https://huggingface.co/datasets/HuggingFaceVLA/libero). The finetuned model can be found here: diff --git a/docs/source/smolvla.mdx b/docs/source/smolvla.mdx index e28270c9b..aa7bb5def 100644 --- a/docs/source/smolvla.mdx +++ b/docs/source/smolvla.mdx @@ -93,7 +93,7 @@ lerobot-train --help ## Evaluate the finetuned model and run it in real-time -Similarly for when recording an episode, it is recommended that you are logged in to the HuggingFace Hub. You can follow the corresponding steps: [Record a dataset](./il_robots). +Similarly for when recording an episode, it is recommended that you are logged in to the HuggingFace Hub. You can follow the corresponding steps: [Record a dataset](./il_robots#record-a-dataset). Once you are logged in, you can run inference in your setup by doing: ```bash