You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: examples/10_use_so100.md
+95-32Lines changed: 95 additions & 32 deletions
Original file line number
Diff line number
Diff line change
@@ -1,63 +1,91 @@
1
1
# Using the [SO-100](https://github.com/TheRobotStudio/SO-ARM100) with LeRobot
2
2
3
+
## Table of Contents
4
+
5
+
-[A. Source the parts](#a-source-the-parts)
6
+
-[B. Install LeRobot](#b-install-lerobot)
7
+
-[C. Configure the motors](#c-configure-the-motors)
8
+
-[D. Assemble the arms](#d-assemble-the-arms)
9
+
-[E. Calibrate](#e-calibrate)
10
+
-[F. Teleoperate](#f-teleoperate)
11
+
-[G. Record a dataset](#g-record-a-dataset)
12
+
-[H. Visualize a dataset](#h-visualize-a-dataset)
13
+
-[I. Replay an episode](#i-replay-an-episode)
14
+
-[J. Train a policy](#j-train-a-policy)
15
+
-[K. Evaluate your policy](#k-evaluate-your-policy)
16
+
-[L. More Information](#l-more-information)
3
17
4
18
## A. Source the parts
5
19
6
-
Follow this [README](https://github.com/TheRobotStudio/SO-ARM100). It contains the bill of materials, with link to source the parts, as well as the instructions to 3D print the parts, and advices if it's your first time printing or if you don't own a 3D printer already.
20
+
Follow this [README](https://github.com/TheRobotStudio/SO-ARM100). It contains the bill of materials, with a link to source the parts, as well as the instructions to 3D print the parts,
21
+
and advice if it's your first time printing or if you don't own a 3D printer.
7
22
8
-
**Important**: Before assembling, you will first need to configure your motors. To this end, we provide a nice script, so let's first install LeRobot. After configuration, we will also guide you through assembly.
23
+
Before assembling, you will first need to configure your motors. To this end, we provide a nice script, so let's first install LeRobot. After configuration, we will also guide you through assembly.
9
24
10
25
## B. Install LeRobot
11
26
27
+
> [!TIP]
28
+
> We use the Command Prompt (cmd) quite a lot. If you are not comfortable using the cmd or want to brush up using the command line you can have a look here: [Command line crash course](https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Environment_setup/Command_line)
5. Install LeRobot with dependencies for the feetech motors:
60
+
#### 5. Install LeRobot with dependencies for the feetech motors:
41
61
```bash
42
62
cd~/lerobot && pip install -e ".[feetech]"
43
63
```
44
64
45
-
*For Linux only (not Mac)*: install extra dependencies for recording datasets:
65
+
*EXTRA: For Linux only (not Mac)*: install extra dependencies for recording datasets:
46
66
```bash
47
67
conda install -y -c conda-forge ffmpeg
48
68
pip uninstall -y opencv-python
49
69
conda install -y -c conda-forge "opencv>=4.10.0"
50
70
```
51
-
71
+
Great :hugs:! You are now done installing LeRobot and we can begin assembling the SO100 arms :robot:.
72
+
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.
52
73
## C. Configure the motors
53
74
75
+
> [!NOTE]
76
+
> Throughout this tutorial you will find videos on how to do the steps, the full video tutorial can be found here: [assembly video](https://www.youtube.com/watch?v=FioA2oeFZ5I).
77
+
54
78
### 1. Find the USB ports associated to each arm
55
79
56
-
Designate one bus servo adapter and 6 motors for your leader arm, and similarly the other bus servo adapter and 6 motors for the follower arm.
80
+
Designate one bus servo adapter and 6 motors for your leader arm, and similarly the other bus servo adapter and 6 motors for the follower arm. It's convenient to label them and write on each motor if it's for the follower `F` or for the leader `L` and it's ID from 1 to 6 (F1...F6 and L1...L6).
57
81
58
-
#### a. Run the script to find ports
82
+
#### a. Run the script to find port
59
83
60
-
Follow Step 1 of the [assembly video](https://www.youtube.com/watch?v=FioA2oeFZ5I), which illustrates the use of our scripts below.
Plug your first motor F1 and run this script to set its ID to 1. It will also set its present position to 2048, so expect your motor to rotate. Replace the text after --port to the corresponding follower control board port and run this command in cmd:
*Note: These motors are currently limitated. They can take values between 0 and 4096 only, which corresponds to a full turn. They can't turn more than that. 2048 is at the middle of this range, so we can take -2048 steps (180 degrees anticlockwise) and reach the maximum range, or take +2048 steps (180 degrees clockwise) and reach the maximum range. The configuration step also sets the homing offset to 0, so that if you misassembled the arm, you can always update the homing offset to account for a shift up to ± 2048 steps (± 180 degrees).*
196
+
> [!NOTE]
197
+
> These motors are currently limited. They can take values between 0 and 4096 only, which corresponds to a full turn. They can't turn more than that. 2048 is at the middle of this range, so we can take -2048 steps (180 degrees anticlockwise) and reach the maximum range, or take +2048 steps (180 degrees clockwise) and reach the maximum range. The configuration step also sets the homing offset to 0, so that if you misassembled the arm, you can always update the homing offset to account for a shift up to ± 2048 steps (± 180 degrees).
161
198
162
199
Then unplug your motor and plug the second motor and set its ID to 2.
163
200
```bash
@@ -174,22 +211,47 @@ Redo the process for all your motors until ID 6. Do the same for the 6 motors of
174
211
175
212
#### b. Remove the gears of the 6 leader motors
176
213
177
-
Follow step 2 of the [assembly video](https://youtu.be/FioA2oeFZ5I?t=248). You need to remove the gear for the motors of the leader arm. As a result, you will only use the position encoding of the motor and reduce friction to more easily operate the leader arm.
Follow the video for removing gears. You need to remove the gear for the motors of the leader arm. As a result, you will only use the position encoding of the motor and reduce friction to more easily operate the leader arm.
178
223
179
224
#### c. Add motor horn to all 12 motors
180
-
Follow step 3 of the [assembly video](https://youtu.be/FioA2oeFZ5I?t=569). For SO-100, you need to align the holes on the motor horn to the motor spline to be approximately 1:30, 4:30, 7:30 and 10:30.
225
+
226
+
<details>
227
+
<summary><strong>Video adding motor horn</strong></summary>
Follow the video for adding the motor horn. For SO-100, you need to align the holes on the motor horn to the motor spline to be approximately 1:30, 4:30, 7:30 and 10:30.
181
234
Try to avoid rotating the motor while doing so to keep position 2048 set during configuration. It is especially tricky for the leader motors as it is more sensible without the gears, but it's ok if it's a bit rotated.
182
235
183
236
## D. Assemble the arms
184
237
185
-
Follow step 4 of the [assembly video](https://youtu.be/FioA2oeFZ5I?t=610). The first arm should take a bit more than 1 hour to assemble, but once you get use to it, you can do it under 1 hour for the second arm.
Follow the video for assembling the arms. It is important to insert the cables into the motor that is being assembled before you assemble the motor into the arm! Inserting the cables beforehand is much easier than doing this afterward. The first arm should take a bit more than 1 hour to assemble, but once you get used to it, you can do it under 1 hour for the second arm.
186
246
187
247
## E. Calibrate
188
248
189
249
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.
190
250
191
251
#### a. Manual calibration of follower arm
192
-
/!\ Contrarily to step 6 of the [assembly video](https://youtu.be/FioA2oeFZ5I?t=724) which illustrates the auto calibration, we will actually do manual calibration of follower for now.
252
+
253
+
> [!IMPORTANT]
254
+
> Contrarily to step 6 of the [assembly video](https://youtu.be/FioA2oeFZ5I?t=724) which illustrates the auto calibration, we will actually do manual calibration of follower for now.
193
255
194
256
You will need to move the follower arm to these positions sequentially:
195
257
@@ -353,4 +415,5 @@ As you can see, it's almost the same command as previously used to record your t
353
415
354
416
Follow this [previous tutorial](https://github.com/huggingface/lerobot/blob/main/examples/7_get_started_with_real_robot.md#4-train-a-policy-on-your-data) for a more in-depth tutorial on controlling real robots with LeRobot.
355
417
356
-
If you have any question or need help, please reach out on Discord in the channel [`#so100-arm`](https://discord.com/channels/1216765309076115607/1237741463832363039).
418
+
> [!TIP]
419
+
> If you have any questions or need help, please reach out on Discord in the channel [`#so100-arm`](https://discord.com/channels/1216765309076115607/1237741463832363039).
0 commit comments