Skip to content

Commit 82a6ae0

Browse files
committed
[Fix] Move back to manual calibration (#488)
1 parent 9e77d18 commit 82a6ae0

File tree

9 files changed

+18
-25
lines changed

9 files changed

+18
-25
lines changed

examples/10_use_so100.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,22 @@ Follow step 4 of the [assembly video](https://www.youtube.com/watch?v=FioA2oeFZ5
123123

124124
Next, you'll need to calibrate your SO-100 robot to ensure that the leader and follower arms have the same position values when they are in the same physical position. This calibration is essential because it allows a neural network trained on one SO-100 robot to work on another.
125125

126-
**Auto-calibration of follower arm**
127-
Follow step 5 of the [assembly video](https://www.youtube.com/watch?v=FioA2oeFZ5I) which illustrates the auto-calibration of the follower arm. You first need to manually move your follower arm to this initial position:
126+
**Manual calibration of follower arm**
127+
/!\ Contrarily to step 6 of the [assembly video](https://www.youtube.com/watch?v=FioA2oeFZ5I) which illustrates the auto calibration, we will actually do manual calibration of follower for now.
128128

129-
<div style="text-align:center;">
130-
<img src="../media/so100/follower_initial.webp?raw=true" alt="SO-100 follower arm initial position" title="SO-100 follower arm initial position" width="50%">
131-
</div>
129+
You will need to move the follower arm to these positions sequentially:
132130

133-
Then run this script to launch auto-calibration:
131+
| 1. Zero position | 2. Rotated position | 3. Rest position |
132+
|---|---|---|
133+
| <img src="../media/so100/follower_zero.webp?raw=true" alt="SO-100 follower arm zero position" title="SO-100 follower arm zero position" style="width:100%;"> | <img src="../media/so100/follower_rotated.webp?raw=true" alt="SO-100 follower arm rotated position" title="SO-100 follower arm rotated position" style="width:100%;"> | <img src="../media/so100/follower_rest.webp?raw=true" alt="SO-100 follower arm rest position" title="SO-100 follower arm rest position" style="width:100%;"> |
134+
135+
Make sure both arms are connected and run this script to launch manual calibration:
134136
```bash
135137
python lerobot/scripts/control_robot.py calibrate \
136-
--robot-path lerobot/configs/robot/so100.yaml \
138+
--robot-path lerobot/configs/robot/moss.yaml \
137139
--robot-overrides '~cameras' --arms main_follower
138140
```
139141

140-
Note: You can't run auto-calibration for the leader arm, since we removed the gears. Thus, you will need to manually calibrate the leader arm. It's less precise than auto-calibration, but precision is not as critical for the leader arm.
141-
142142
**Manual calibration of leader arm**
143143
Follow step 6 of the [assembly video](https://www.youtube.com/watch?v=FioA2oeFZ5I) which illustrates the manual calibration. You will need to move the leader arm to these positions sequentially:
144144

examples/11_use_moss.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,22 @@ Follow step 4 of the [assembly video](https://www.youtube.com/watch?v=DA91NJOtMi
123123

124124
Next, you'll need to calibrate your Moss v1 robot to ensure that the leader and follower arms have the same position values when they are in the same physical position. This calibration is essential because it allows a neural network trained on one Moss v1 robot to work on another.
125125

126-
**Auto-calibration of follower arm**
127-
Follow step 5 of the [assembly video](https://www.youtube.com/watch?v=DA91NJOtMic) which illustrates the auto-calibration of the follower arm. You first need to manually move your follower arm to this initial position:
126+
**Manual calibration of follower arm**
127+
/!\ Contrarily to step 6 of the [assembly video](https://www.youtube.com/watch?v=DA91NJOtMic) which illustrates the auto calibration, we will actually do manual calibration of follower for now.
128128

129-
<div style="text-align:center;">
130-
<img src="../media/moss/follower_initial.webp?raw=true" alt="Moss v1 follower arm initial position" title="Moss v1 follower arm initial position" width="50%">
131-
</div>
129+
You will need to move the follower arm to these positions sequentially:
132130

133-
Then run this script to launch auto-calibration:
131+
| 1. Zero position | 2. Rotated position | 3. Rest position |
132+
|---|---|---|
133+
| <img src="../media/moss/follower_zero.webp?raw=true" alt="Moss v1 follower arm zero position" title="Moss v1 follower arm zero position" style="width:100%;"> | <img src="../media/moss/follower_rotated.webp?raw=true" alt="Moss v1 follower arm rotated position" title="Moss v1 follower arm rotated position" style="width:100%;"> | <img src="../media/moss/follower_rest.webp?raw=true" alt="Moss v1 follower arm rest position" title="Moss v1 follower arm rest position" style="width:100%;"> |
134+
135+
Make sure both arms are connected and run this script to launch manual calibration:
134136
```bash
135137
python lerobot/scripts/control_robot.py calibrate \
136138
--robot-path lerobot/configs/robot/moss.yaml \
137139
--robot-overrides '~cameras' --arms main_follower
138140
```
139141

140-
Note: You can't run auto-calibration for the leader arm, since we removed the gears. Thus, you will need to manually calibrate the leader arm. It's less precise than auto-calibration, but precision is not as critical for the leader arm.
141-
142142
**Manual calibration of leader arm**
143143
Follow step 6 of the [assembly video](https://www.youtube.com/watch?v=DA91NJOtMic) which illustrates the manual calibration. You will need to move the leader arm to these positions sequentially:
144144

lerobot/common/robot_devices/robots/manipulator.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,17 +338,10 @@ def load_or_run_calibration_(name, arm, arm_type):
338338

339339
elif self.robot_type in ["so100", "moss"]:
340340
from lerobot.common.robot_devices.robots.feetech_calibration import (
341-
run_arm_auto_calibration,
342341
run_arm_manual_calibration,
343342
)
344343

345-
# TODO(rcadene): better way to handle mocking + test run_arm_auto_calibration
346-
if arm_type == "leader" or arm.mock:
347-
calibration = run_arm_manual_calibration(arm, self.robot_type, name, arm_type)
348-
elif arm_type == "follower":
349-
calibration = run_arm_auto_calibration(arm, self.robot_type, name, arm_type)
350-
else:
351-
raise ValueError(arm_type)
344+
calibration = run_arm_manual_calibration(arm, self.robot_type, name, arm_type)
352345

353346
print(f"Calibration is done! Saving calibration file '{arm_calib_path}'")
354347
arm_calib_path.parent.mkdir(parents=True, exist_ok=True)

media/moss/follower_rest.webp

153 KB
Loading

media/moss/follower_rotated.webp

208 KB
Loading

media/moss/follower_zero.webp

296 KB
Loading

media/so100/follower_rest.webp

145 KB
Loading

media/so100/follower_rotated.webp

95.1 KB
Loading

media/so100/follower_zero.webp

134 KB
Loading

0 commit comments

Comments
 (0)