What five joints can and cannot reach
With six joints, position and orientation are independent inside the workspace: you can hold the tool at a chosen point and still choose how it is angled. With five they are coupled. At most points there is a family of orientations you cannot have, and which ones are missing depends on where in the workspace you are. That is a constraint on how you lay out the task, not a wall.
| Straightforward to demonstrate | Awkward or impossible |
|---|---|
| Top-down and angled picks from a table | Holding one fixed tool angle while sweeping across the workspace |
| Placing into an open container or onto a marked area | Reorienting an object in the gripper without letting go |
| Pushing, sliding and stacking | Approaching a target from a direction the wrist cannot reach at that point |
| Opening a lid or a drawer within reach | Keeping the tool square to a surface anywhere on the table |
The way around a five joint limit is almost always the fixture rather than the model. Rotate the workpiece so that the reachable approach is also the correct one, and the arm does the task a six joint arm would have done. No amount of training data buys a joint that does not exist.
Degrees of freedom in the recorded data
| Arm | Actuators | What the action vector looks like |
|---|---|---|
| SO-100 | 5 joints plus gripper, 6 | Six values per frame |
| SO-101 | 5 joints plus gripper, 6 | Six values per frame, identical to the SO-100 |
| Koch v1.1 | 5 joints plus gripper, 6 | Six values per frame, Dynamixel servos instead of Feetech |
| LeKiwi | 5 joints plus gripper on a three-wheel holonomic base | The base adds dimensions on top of the six |
A policy trained on six dimensions has no outputs for the LeKiwi base, and a policy trained with the base produces commands a fixed arm cannot use. Datasets from a fixed arm and from a mobile base do not pool, however much arm hardware they share.
/so-100/imitation-learning goes into which tasks suit this class of arm at all, and the arm-specific training runs live under /train. The hardware differences themselves are listed on /robots.