Add SO-101 env file (with LFS for ALL binaries)
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +9 -0
- SO-ARM100/.gitignore +1 -0
- SO-ARM100/3DPRINT.md +59 -0
- SO-ARM100/CHANGELOG.md +57 -0
- SO-ARM100/CITATION.cff +29 -0
- SO-ARM100/LICENSE +201 -0
- SO-ARM100/Mini/Mini_SO_100_01g.3mf +3 -0
- SO-ARM100/Mini/Mini_SO_100_01g.STL +3 -0
- SO-ARM100/Mini/readme +5 -0
- SO-ARM100/Optional/4040_Base_Mount/README.md +25 -0
- SO-ARM100/Optional/4040_Base_Mount/step/4040_base_mount.step +3 -0
- SO-ARM100/Optional/4040_Base_Mount/stl/4040_base_mount.stl +3 -0
- SO-ARM100/Optional/Compliant_Gripper/README.md +19 -0
- SO-ARM100/Optional/Compliant_Gripper/stl/Compliant_Moving_Jaw_SO101.stl +3 -0
- SO-ARM100/Optional/Compliant_Gripper/stl/Compliant_Wrist_Roll_Follower_SO101.stl +3 -0
- SO-ARM100/Optional/Mount_Helper/README.md +9 -0
- SO-ARM100/Optional/Mount_Helper/stl/mount_helper v2.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/README.md +82 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/arm_base.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/cam_mount_bottom.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/cam_mount_middle.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/cam_mount_top.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/README.md +78 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/stl/arm_base.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/stl/cam_mount_bottom.stl +3 -0
- SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/stl/cam_mount_top.stl +3 -0
- SO-ARM100/Optional/Raised_Base/Raised_Base_Extension.stl +3 -0
- SO-ARM100/Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module/README.md +60 -0
- SO-ARM100/Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module/stl/SO-ARM101_camera_wrist_mount.step +3 -0
- SO-ARM100/Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module/stl/SO-ARM101_camera_wrist_mount.stl +3 -0
- SO-ARM100/Optional/Small_Handle/Small_Leader_Handle.STL +3 -0
- SO-ARM100/Optional/Springy_Trigger/Springy_Trigger.STL +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_32x32_UVC_Module/README.md +56 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_32x32_UVC_Module/stl/Wrist_Cam_Mount_32x32_UVC_Module_SO100.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_32x32_UVC_Module/stl/Wrist_Cam_Mount_32x32_UVC_Module_SO101.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D405/README.md +12 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D405/Wrist_Roll_D405_Holder.step +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D405/Wrist_Roll_D405_Holder.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D435/README.md +36 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D435/stl/D435_Vinmooog_adapter.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D435/stl/Wrist_cam_mount_RealSense_D435.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_Vinmooog_Webcam/README.md +34 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_Vinmooog_Webcam/stl/Updated_Wrist_Camera_Insert.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Mount_Vinmooog_Webcam/stl/Webcam_Mount_Wrist.stl +3 -0
- SO-ARM100/Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/README.md +56 -0
- SO-ARM100/Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/stl/SO-ARM100 Plug camera.step +3 -0
- SO-ARM100/Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/stl/SO-ARM100_Plug_camera.stl +3 -0
- SO-ARM100/README.md +255 -0
- SO-ARM100/SO100.md +97 -0
- SO-ARM100/STEP/SO100/Base_08q.step +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,12 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
*.step filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
*.stl filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
*.STL filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
*.3mf filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
*.rrd filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
*.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
*.jpg filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
*.webp filter=lfs diff=lfs merge=lfs -text
|
SO-ARM100/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
.DS_Store
|
SO-ARM100/3DPRINT.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 3D Printing Services
|
| 2 |
+
|
| 3 |
+
There are different ways to get your parts 3D printed, below are the options and which one to choose. We will add more services once we verify them. If you tried another service please let us know so we can add it here. Additionaly SeeedStudio also sells the 3D printed parts only: [SO-ARM100 3D-Printed Enclosure](https://www.seeedstudio.com/SO-ARM100-3D-printed-Enclosure-p-6409.html).
|
| 4 |
+
|
| 5 |
+
- [Europe](#craftcloud3d) (Craftcloud3d) :fr: :de: :uk: :it: :es:
|
| 6 |
+
- [US](#craftcloud3d) (Craftcloud3d) :us:
|
| 7 |
+
- [China](#pcbway) (PCBWay) :cn:
|
| 8 |
+
|
| 9 |
+
### [Craftcloud3d](https://craftcloud3d.com)
|
| 10 |
+
**PCBWay** ships worldwide and has partners in different countries that produce the parts. This makes it flexible, although pricing can vary.
|
| 11 |
+
|
| 12 |
+
To get your parts made you can go to [craftcloud3d.com](https://craftcloud3d.com/upload) and upload all files inside these two folders (25 files in total): `stl_files_for_3dprinting/Individual/Follower` and `stl_files_for_3dprinting/Individual/Leader` here:
|
| 13 |
+
|
| 14 |
+

|
| 15 |
+
|
| 16 |
+
Then click `See Materials & Pricing` button, and on the next page select the material. In our case `PLA+`.
|
| 17 |
+
|
| 18 |
+

|
| 19 |
+
|
| 20 |
+
Click `Select Material` button and you then have to select the finish. Here choose:
|
| 21 |
+
- `Finish` = Standard
|
| 22 |
+
- `Infill` = 20% (If you don't see the infill options, wait until the price is calculated)
|
| 23 |
+
|
| 24 |
+
And click `Select Finish` to move to the next page.
|
| 25 |
+
|
| 26 |
+

|
| 27 |
+
|
| 28 |
+
Next choose the color, and click `See offers`.
|
| 29 |
+
|
| 30 |
+

|
| 31 |
+
|
| 32 |
+
Finally choose your manufacturer. You can choose manufacturer based on price, delivery date and production location.
|
| 33 |
+
|
| 34 |
+

|
| 35 |
+
|
| 36 |
+
And thats it, once the parts arrive you are ready to assemble your SO100!
|
| 37 |
+
|
| 38 |
+
### [PCBWay](pcbway.com)
|
| 39 |
+
**PCBWay** ships worldwide but outside of China import taxes should be paid. This makes it more expensive to order here.
|
| 40 |
+
|
| 41 |
+
To get your parts made you can go to [pcbway.com](https://www.pcbway.com/rapid-prototyping/manufacture/?type=2) and upload these two files `stl_files_for_3dprinting/Leader/Print_Leader_SO_ARM100_08k_Ender.STL` and `stl_files_for_3dprinting/Follower/Print_Follower_SO_ARM100_08k_Ender.STL` here:
|
| 42 |
+
|
| 43 |
+

|
| 44 |
+
|
| 45 |
+
Then select the following settings:
|
| 46 |
+
- `Quantity` = 1 for both (Or more if you need more).
|
| 47 |
+
- `Design Units` = mm
|
| 48 |
+
- `Material` -> Custom material -> and type `PLA+`
|
| 49 |
+
- `Product Desc` -> DIY Entertainment -> Robot components
|
| 50 |
+
- `Other special requests` = 'FDM, 20% infill' (And you can specify the color you want)
|
| 51 |
+
|
| 52 |
+
This tells PCBWay we want to use [FDM](https://www.hubs.com/knowledge-base/what-is-fdm-3d-printing/) 3D printing process with 20% infill. You don't need to change the rest of the options. And once you verified everything you can click `Submit`.
|
| 53 |
+
|
| 54 |
+

|
| 55 |
+
|
| 56 |
+
Now the parts will be verified and you will be given a final quotation with shipping costs. The pricing can vary but our experience was that the total for both a leader and a follower was around ~95,- dollars. You can have contact with PCBWay via their online portal.
|
| 57 |
+
|
| 58 |
+

|
| 59 |
+
|
SO-ARM100/CHANGELOG.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## [v0.1.13] - 2025-01-27
|
| 2 |
+
- Uploaded individual step files in one folder
|
| 3 |
+
|
| 4 |
+
## [v0.1.12] - 2024-10-01
|
| 5 |
+
- Uploaded URDF for early draft of 7DOF SO-Arm to allow modelling to begin.
|
| 6 |
+
|
| 7 |
+
## [v0.1.11] - 2024-10-01
|
| 8 |
+
- Reverted Waveshare mounting design to earlier version.
|
| 9 |
+
- Replaced CAD for Solidworks as zip: Version SO_5DOF_ARM100_08k
|
| 10 |
+
- Replaced stl files for leader and follower arms: Version SO_5DOF_ARM100_08k
|
| 11 |
+
|
| 12 |
+
## [v0.1.10] - 2024-09-30
|
| 13 |
+
- 2 last bug fixes!
|
| 14 |
+
- Replaced CAD for Solidworks as zip: Version SO_5DOF_ARM100_08k
|
| 15 |
+
- Replaced stl files for leader and follower arms: Version SO_5DOF_ARM100_08k
|
| 16 |
+
|
| 17 |
+
## [v0.1.9] - 2024-09-30
|
| 18 |
+
- Replaced CAD for Solidworks as zip: Version SO_5DOF_ARM100_08k
|
| 19 |
+
- Replaced stl files for leader and follower arms: Version SO_5DOF_ARM100_08k
|
| 20 |
+
|
| 21 |
+
## [v0.1.8] - 2024-09-30
|
| 22 |
+
- Uploaded CAD for Solidworks as zip: Version SO_5DOF_ARM100_08j
|
| 23 |
+
- Both follower and leader in a single assembly.
|
| 24 |
+
- Uploaded Alternative Leader Controllers with smaller sizes and sprung trigger.
|
| 25 |
+
|
| 26 |
+
## [v0.1.7] - 2024-09-27
|
| 27 |
+
- Added stl files for leader and follower arms: Version SO_5DOF_ARM100_08j
|
| 28 |
+
- Ready-to-print trays with max print areas for Ender (218mmx218mm) and Prusa/Up (202.5mm x 247.5mm).
|
| 29 |
+
|
| 30 |
+
## [v0.1.6] - 2024-09-25
|
| 31 |
+
- Added URDF for SO_5DOF_ARM100_8j
|
| 32 |
+
- Added link to URDF viewer at bottom of Readme
|
| 33 |
+
|
| 34 |
+
## [v0.1.5] - 2024-08-06
|
| 35 |
+
- Updated read.me with clearer instructions related to the new stl files.
|
| 36 |
+
|
| 37 |
+
## [v0.1.4] - 2024-08-01
|
| 38 |
+
- Deleted previous stl files for the arm
|
| 39 |
+
- Uploaded 2 stl files arranged with all parts for follower and all parts for leader as a single tray of parts with all orientations correct.
|
| 40 |
+
- Uploaded gauges for lego.
|
| 41 |
+
|
| 42 |
+
## [v0.1.3] - 2024-07-18
|
| 43 |
+
- Uploaded Gauge_tight_1
|
| 44 |
+
|
| 45 |
+
## [v0.1.2] - 2024-07-18
|
| 46 |
+
- Uploaded Gauge_0
|
| 47 |
+
|
| 48 |
+
## [v0.1.1] - 2024-05-17
|
| 49 |
+
- Changed filenames
|
| 50 |
+
- Fix removable jaw `Tip_c`
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
## [v0.1.0] - 2024-05-16
|
| 54 |
+
### Changed
|
| 55 |
+
- **Print_SO_ARM100_05c - Moving_Jaw_04f-1**: Updated the servo attachment faces to retain parts during assembly.
|
| 56 |
+
- **Print_SO_ARM100_05c - Removable_Jaws_01e-1**: Clearances added to allow attachment lateral freedom at the end of the jaws - i.e. they can be screwed in the middle or to the sides.
|
| 57 |
+
- **Print_SO_ARM100_05c - Wrist_Roll_Pitch_04c-1**: Updated the servo attachment faces to retain parts during assembly.
|
SO-ARM100/CITATION.cff
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cff-version: 1.2.0
|
| 2 |
+
date-released: 2024
|
| 3 |
+
message: "If you use this hardware, please cite it as below."
|
| 4 |
+
title: "Standard Open SO-100 & SO-101 Arms"
|
| 5 |
+
url: "https://github.com/TheRobotStudio/SO-ARM100"
|
| 6 |
+
address: "Online"
|
| 7 |
+
authors:
|
| 8 |
+
- family-names: "Knight"
|
| 9 |
+
given-names: "Rob"
|
| 10 |
+
- family-names: "Kooijmans"
|
| 11 |
+
given-names: "Pepijn"
|
| 12 |
+
- family-names: "Cadene"
|
| 13 |
+
given-names: "Remi"
|
| 14 |
+
- family-names: "Alibert"
|
| 15 |
+
given-names: "Simon"
|
| 16 |
+
- family-names: "Aractingi"
|
| 17 |
+
given-names: "Michel"
|
| 18 |
+
- family-names: "Aubakirova"
|
| 19 |
+
given-names: "Dana"
|
| 20 |
+
- family-names: "Zouitine"
|
| 21 |
+
given-names: "Adil"
|
| 22 |
+
- family-names: "Martino"
|
| 23 |
+
given-names: "Russi"
|
| 24 |
+
- family-names: "Palma"
|
| 25 |
+
given-names: "Steven"
|
| 26 |
+
- family-names: "Pascal"
|
| 27 |
+
given-names: "Caroline"
|
| 28 |
+
- family-names: Wolf
|
| 29 |
+
given-names: Thomas
|
SO-ARM100/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or
|
| 95 |
+
Derivative Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Don't include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
SO-ARM100/Mini/Mini_SO_100_01g.3mf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2bf12db70722319cc6c070642900d010012d31e880eb715e38a20dc2544f75ad
|
| 3 |
+
size 596445
|
SO-ARM100/Mini/Mini_SO_100_01g.STL
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6f0c6e950161db9cc54866561bfc20fc8e382e4c57143c34642063cca8081a32
|
| 3 |
+
size 2167184
|
SO-ARM100/Mini/readme
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This is an experiment in printing the entire SO-Arm as a single piece that can then articulate once the supports are removed.
|
| 2 |
+
The clearances are only 0.2mm between all parts which has proven to be ok in test pieces, but I find hard to believe will work on the whole thing.
|
| 3 |
+
I shall know by tomorrow morning whether it will move after printing on a Bambu A1, with a 0.4mm brass nozzle, 0.2mm layer thickness with supports above 30degrees in light green PLA+.
|
| 4 |
+
Yes, the colour of PLA effects the end result. Probably due to subtle chemical differences in the dyes but I've no clear hard evidence or research to support this guess.
|
| 5 |
+
I'd welcome any feedback on different machines and settings and whether the finished print can be made to move freely with the present clearance between parts.
|
SO-ARM100/Optional/4040_Base_Mount/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Base Mount for 4040 Aluminum Profiles
|
| 2 |
+
|
| 3 |
+
<p align="left">
|
| 4 |
+
<img src="../../media/4040_base_mount.jpg" width="300" />
|
| 5 |
+
<img src="../../media/4040_base_mount_side.jpg" width="300" />
|
| 6 |
+
</p>
|
| 7 |
+
|
| 8 |
+
This 3D-printed adapter allows you to securely attach your **SO-100 base** to standard **40×40 mm aluminum extrusion profiles** (8.2 mm slot width).
|
| 9 |
+
Perfect for building a sturdy, modular platform for your robotic arm.
|
| 10 |
+
|
| 11 |
+
- 📦 [Download STL](./stl/4040_base_mount.stl)
|
| 12 |
+
- 📐 [Download STEP](./step/4040_base_mount.step)
|
| 13 |
+
|
| 14 |
+
### 🛠 Assembly Instructions
|
| 15 |
+
|
| 16 |
+
- Use **1 × M4×16 mm bolt** and **1 × M4 T-nut (8 mm slot)** to attach the adapter to the aluminum profile.
|
| 17 |
+
- Use **4 × M4×30 mm bolts** and **4 × M4 wing nuts** to secure the **SO-100 base** to the mount.
|
| 18 |
+
> The holes are 5 mm in diameter, so M5 hardware can also be used.
|
| 19 |
+
|
| 20 |
+
### 🖨 Suggested Print Orientation
|
| 21 |
+
|
| 22 |
+
For optimal strength, print the part in the orientation shown below.
|
| 23 |
+
> Supports are required.
|
| 24 |
+
|
| 25 |
+
<img src="../../media/4040_base_mount_print_orientation.png" width="600" />
|
SO-ARM100/Optional/4040_Base_Mount/step/4040_base_mount.step
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f38348121edb18d6015db111f41dff0368376d362872de66ae797614571ee603
|
| 3 |
+
size 307606
|
SO-ARM100/Optional/4040_Base_Mount/stl/4040_base_mount.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ec3c5623977073b0e9d3244d51f77d71927c65f091a14fa8071fcec73ac88ea9
|
| 3 |
+
size 1484784
|
SO-ARM100/Optional/Compliant_Gripper/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Compliant Gripper Guide for the SO-101 Arm
|
| 2 |
+
|
| 3 |
+
<img src="https://github.com/user-attachments/assets/26de0b8c-8bd6-4651-867f-1358532e2cc6" width="500">
|
| 4 |
+
|
| 5 |
+
The compliant gripper is a modification of the original rigid gripper that is printed out of a flexible material (TPU). It uses a hollowed-out design with internal ribs to flexibly conform to the objects it grasps, thereby reducing the contact force exerted on the object. This gripper is ideal for objects with difficult geometries or fragile components (e.g., fruit) as it reduces the control precision required to safely manipulate objects.
|
| 6 |
+
|
| 7 |
+
## Printing Instructions
|
| 8 |
+
The demo compliant gripper was printed with a Bambu Lab printer using a flexible thermoplastic polyurethane (TPU) filament with Shore hardness of 95A. Printer settings included 20% and support generation. The supports were manually removed with flush cutters after printing concluded.
|
| 9 |
+
|
| 10 |
+
Not all printers are capable of printing with flexible filaments like TPU. Some printers may require modifications like upgraded printer heads. Printing with TPU may result in longer print times and often requires additional post-processing due to the difficulties in removing the support material.
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
## Installation Instructions (SO-101)
|
| 14 |
+
No modifications to the robot assembly process or installation are required with the compliant gripper. The external geometry is identical to the original gripper, outside of the removal of some holes and the addition of the cavities/ ribs.
|
| 15 |
+
|
| 16 |
+
Simply print [Compliant_Moving_Jaw_SO101.stl](stl/Compliant_Moving_Jaw_SO101.stl) and [Compliant_Wrist_Roll_Follower_SO101.stl](stl/Compliant_Wrist_Roll_Follower_SO101.stl) using TPU 95A and install as normal.
|
| 17 |
+
|
| 18 |
+
## Further details
|
| 19 |
+
This design was created during the June 2025 Hugging Face LeRobot Hackathon by Zach Tabor and Caitlin Freeman from Memphis, TN. The design is loosely inspired from a common compliant gripper design that relies on the Fin Ray Effect®, a concept that was popularized by Festo and used in their compliant grippers.
|
SO-ARM100/Optional/Compliant_Gripper/stl/Compliant_Moving_Jaw_SO101.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8bfc815bea4bc5aedcc4ca91f92dd1d94d58257f344853eb02e574fa75b48f7e
|
| 3 |
+
size 586484
|
SO-ARM100/Optional/Compliant_Gripper/stl/Compliant_Wrist_Roll_Follower_SO101.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d32dd612664b3746d194e90e576349f66c9da631e7b5f79ef6d6579c191ba366
|
| 3 |
+
size 651784
|
SO-ARM100/Optional/Mount_Helper/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Helper piece to mount your so100
|
| 2 |
+
|
| 3 |
+
Inserting the rectangular hollow pieces can be quite difficult.
|
| 4 |
+
|
| 5 |
+
To make it easier to assemble, we propose this helper piece that will allow you to push with ease.
|
| 6 |
+
|
| 7 |
+
Here's a short video of how to use it.
|
| 8 |
+
|
| 9 |
+
<video src="https://github.com/user-attachments/assets/e1095e7a-b974-4ff0-b3d9-2820359dface"></video>
|
SO-ARM100/Optional/Mount_Helper/stl/mount_helper v2.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6b952e588c88913d9a5c58dcfe3fdf190ca4567b87c623bdd5f4e7e34585f994
|
| 3 |
+
size 389084
|
SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Overhead Camera (32x32 Camera Module) Installation Guide for SO-100/101
|
| 2 |
+
<img height="200" src="../../media/overhead_cam_32x32_module.png" />
|
| 3 |
+
<img height="400" src="../../media/overhead_cam_two_followers.png" />
|
| 4 |
+
<img height="400" src="../../media/overhead_cam_one_follower.png" />
|
| 5 |
+
|
| 6 |
+
## Overview
|
| 7 |
+
This guide provides step-by-step instructions for installing an **Overhead Camera** on the SO-100/101 robot using a **32x32 Camera Module** and a 3D-printed **Arm Base** and **Camera Mount**.
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
## Related Designs
|
| 11 |
+
* [Overhead Camera w/ Webcam Installation Guide](../Overhead_Cam_Mount_Webcam/README.md)
|
| 12 |
+
|
| 13 |
+
## Design Goals
|
| 14 |
+
|
| 15 |
+
1. Ensure consistent data across SO-100 arm users through standardized camera positioning and arm spacing (for bi-manual case).
|
| 16 |
+
2. Provide an overhead view of entire manipulation space.
|
| 17 |
+
3. Support both single follower arm and double follower ("bi-manual") arm setups.
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
## Required Components
|
| 21 |
+
- **Camera Module** (1) - A 32mm x 32mm camera module. This is the [tested / recommended model](https://www.amazon.com/dp/B0CLRJZG8D), but many types are available.
|
| 22 |
+
- **3D-printed parts**
|
| 23 |
+
- [Arm Base](stl/arm_base.stl) (1 per follower arm)
|
| 24 |
+
- [Camera Mount Bottom](stl/cam_mount_bottom.stl) (1)
|
| 25 |
+
- [Camera Mount Middle](stl/cam_mount_middle.stl) (1)
|
| 26 |
+
- [Camera Mount Top](stl/cam_mount_top.stl) (1)
|
| 27 |
+
- **M2 Screws** (16) - these are the smaller screws that came with your Feetech servos.
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
<img height="200" alt="Screenshot 2025-03-04 at 7 43 33 PM" src="https://github.com/user-attachments/assets/18099e1d-754c-4877-871f-9113a0dff062" />
|
| 31 |
+
|
| 32 |
+
## Assembly Instructions
|
| 33 |
+
|
| 34 |
+
### Step 1: Attach the **Camera Module** onto the **Mount Top**
|
| 35 |
+
|
| 36 |
+
1. Push the **Camera Module** lens through the hole in **Camera Mount Top**.
|
| 37 |
+
</br><img height="250" src="../../media/overhead_cam_step1a.jpg" />
|
| 38 |
+
|
| 39 |
+
2. Use 4 screws to secure the **Camera Module** to the **Mount Top**.
|
| 40 |
+
</br><img height="250" src="../../media/overhead_cam_step1b.jpg" />
|
| 41 |
+
|
| 42 |
+
### Step 2: Attach the **Mount Middle** to the **Mount Top**.
|
| 43 |
+
|
| 44 |
+
1. Push the **Mount Middle** into the **Mount Top**.
|
| 45 |
+
2. Secure with 4 screws.
|
| 46 |
+
</br><img height="250" src="../../media/overhead_cam_step2.jpg" />
|
| 47 |
+
|
| 48 |
+
### Step 3: Attach the **Mount Bottom** to the **Mount Middle**.
|
| 49 |
+
|
| 50 |
+
1. Push the **Mount Bottom** into the **Mount Middle**.
|
| 51 |
+
2. Secure with 4 screws.
|
| 52 |
+
</br><img height="250" src="../../media/overhead_cam_step3.jpg" />
|
| 53 |
+
|
| 54 |
+
### Step 4: Attach the **Arm Base** to the **Mount Bottom**.
|
| 55 |
+
<img height="250" src="https://github.com/user-attachments/assets/732977ac-dd4a-4289-9d9c-8752c0369ff0"/></br>
|
| 56 |
+
1. Push the **Arm Base** into the joint lines on the side of the **Mount Bottom**. (Repeat if you have 2 follower arms.)
|
| 57 |
+
### Step 5: Attach the **Follower arm** to the **Arm Base**.
|
| 58 |
+
<img height="250" src="https://github.com/user-attachments/assets/24b4c0ce-e62b-4fd6-963c-09448e7ae6f9" /></br>
|
| 59 |
+
1. Align the bottom of the **Follower arm** with the top of the **Arm Base**. (Repeat if you have 2 follower arms.)
|
| 60 |
+
2. If you use clamps to hold down your **Follower arm**, clamp in the same way you've done before, and it will hold down the camera mount.
|
| 61 |
+
|
| 62 |
+
### Step 6: Configure Software
|
| 63 |
+
1. In your software, add your overhead cam, including setting its resolution and FPS.
|
| 64 |
+
- **Common Settings**:
|
| 65 |
+
- FPS: 30
|
| 66 |
+
- Resolution: 640 x 480, or 1280 x 720 if your workspace is wider.
|
| 67 |
+
2. Look at the video feed from your newly installed camera (On Mac, you can also use *QuickTime*->*New Movie Recording* to see this feed). You should be able to see the workspace of the arm(s). Set the screen resolution wider if you need to see more of the workspace.
|
| 68 |
+
|
| 69 |
+
<img height="300" alt="Screenshot 2025-04-12 at 4 48 35 PM" src="https://github.com/user-attachments/assets/a0aded4e-6abf-4d19-a514-6d4be90ebe1b" />
|
| 70 |
+
<img height="300" alt="Screenshot 2025-04-12 at 4 52 09 PM" src="https://github.com/user-attachments/assets/d33287bd-0263-4a03-b7d9-54e360ef5a36" /></br>
|
| 71 |
+
|
| 72 |
+
### Step 7: (Optional) Add Gripper Cameras
|
| 73 |
+
<img height="250" src="https://github.com/user-attachments/assets/8e8fbf60-f62e-4d8c-8451-3ca5a864497c"/></br>
|
| 74 |
+
1. For optimal training data, add [**Gripper Cameras**](../Wrist_Cam_Mount_32x32_UVC_Module) designed specifically alongside this camera mount setup.
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
## Acknowledgements
|
| 79 |
+
|
| 80 |
+
- Conor McGartoll
|
| 81 |
+
- Philip Fung
|
| 82 |
+
|
SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/arm_base.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:169adfd40bcca689334efd1188c9b42cc03c914dc0afeaa98cb5431013610833
|
| 3 |
+
size 86884
|
SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/cam_mount_bottom.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b3545b6cae437210e17b7dcfee2e12e00dc7a59ece9264f4b13ab9fd8ceb8088
|
| 3 |
+
size 48684
|
SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/cam_mount_middle.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f6f3980df74777f74cf53a4697cbb63e4e000ab53f418de209559214f733f84b
|
| 3 |
+
size 56984
|
SO-ARM100/Optional/Overhead_Cam_Mount_32x32_UVC_Module/stl/cam_mount_top.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:206762be157918967741eb53665cac796485c4609ac64d4c9444d85c7fcb2c4c
|
| 3 |
+
size 69684
|
SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/README.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Overhead Camera (Webcam) Installation Guide for SO-100/101
|
| 2 |
+
<img height="200" alt="Screenshot 2025-04-12 at 2 52 49 PM" src="../../media/overhead_cam_webcam.jpg" />
|
| 3 |
+
<img height="400" alt="Screenshot 2025-04-12 at 2 52 49 PM" src="https://github.com/user-attachments/assets/a652e133-8672-448d-baa0-bdd494a0a515" />
|
| 4 |
+
<img height="400" alt="Screenshot 2025-04-12 at 2 53 09 PM" src="https://github.com/user-attachments/assets/050387cb-b701-47ed-bfb9-dabd29689272" />
|
| 5 |
+
<img height="400" alt="Screenshot 2025-04-12 at 2 47 38 PM" src="https://github.com/user-attachments/assets/519d884d-dcb6-42a4-bff4-927858672f8b" />
|
| 6 |
+
|
| 7 |
+
## Overview
|
| 8 |
+
This guide provides step-by-step instructions for installing an **Overhead Camera** on the SO-100 robot using a **Web Camera** and a 3D-printed **Arm Base** and **Camera Mount**.
|
| 9 |
+
|
| 10 |
+
## Related Designs
|
| 11 |
+
* [Overhead Camera w/ 32x32 Camera Module](../Overhead_Cam_Mount_32x32_UVC_Module/README.md)
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
## Design Goals
|
| 15 |
+
|
| 16 |
+
1. Ensure consistent data across SO-100 arm users through standardized camera positioning and arm spacing (bi-manual).
|
| 17 |
+
2. Provide overhead view of entire manipulation space.
|
| 18 |
+
3. Support both single follower arm and double follower ("bi-manual") arm setups.
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
## Required Components
|
| 22 |
+
- **Web Camera** (1) - this is the [recommended model](https://www.amazon.com/dp/B082X91MPP).
|
| 23 |
+
- **3D-printed parts**
|
| 24 |
+
- [Arm Base](stl/arm_base.stl) (1 per follower arm)
|
| 25 |
+
- [Camera Mount Bottom](stl/cam_mount_bottom.stl) (1)
|
| 26 |
+
- [Camera Mount Top](stl/cam_mount_top.stl) (1)
|
| 27 |
+
- **M2 Screws** (8) - these are the smaller screws that came with your Feetech servos.
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
<img height="200" alt="Screenshot 2025-03-04 at 7 43 33 PM" src="https://github.com/user-attachments/assets/18099e1d-754c-4877-871f-9113a0dff062" />
|
| 31 |
+
|
| 32 |
+
## Assembly Instructions
|
| 33 |
+
### Step 1: Remove the existing base from the **Webcam**
|
| 34 |
+
<img height="250" src="https://github.com/user-attachments/assets/89226328-16bf-41e2-b2e2-260352597b61" /> </br>
|
| 35 |
+
Take the **Webcam** out of its package, and:
|
| 36 |
+
1. Remove the soft plastic cover from the joint.
|
| 37 |
+
2. Unscrew/remove the screw in the joint.
|
| 38 |
+
3. Remove the base from the camera module.
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
### Step 2: Attach the **Webcam** onto the **Camera Mount Top**
|
| 42 |
+
<img height="250" src="https://github.com/user-attachments/assets/051ebe6b-9548-47a0-81f7-df60a1ea5fad" /> </br>
|
| 43 |
+
|
| 44 |
+
1. Push the **Webcam** into the **Camera Mount Top** by aligning the round joint holes.
|
| 45 |
+
2. Place the hex bolt into the hexagon shaped-hole and screw **M2 screw** into the opposite hole of the **Camera Mount Top** round joint.
|
| 46 |
+
### Step 3: Attach the **Camera Mount Top** to the **Camera Mount Bottom**.
|
| 47 |
+
<img height="250" src="https://github.com/user-attachments/assets/434e4423-bf8a-4a36-95fb-d3c4283381a9" />
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
1. Push the **Camera Mount Top** into the **Camera Mount Bottom** by aligning the linear joint lines on the bottom of **Camera Mount Top** with the top of the **Camera Mount Bottom**.
|
| 51 |
+
2. Screw an **M2 screw** into each of the 4 holes in the linear joint.
|
| 52 |
+
### Step 4: Attach the **Arm Base** to the **Camera Mount Bottom**.
|
| 53 |
+
<img height="250" src="https://github.com/user-attachments/assets/732977ac-dd4a-4289-9d9c-8752c0369ff0"/></br>
|
| 54 |
+
1. Push the **Arm Base** into the joint lines on the side of the **Camera Mount Bottom**. (Repeat if you have 2 follower arms.)
|
| 55 |
+
### Step 5: Attach the **SO-100 follower arm** to the **Arm Base**.
|
| 56 |
+
<img height="250" src="https://github.com/user-attachments/assets/24b4c0ce-e62b-4fd6-963c-09448e7ae6f9" /></br>
|
| 57 |
+
1. Align the bottom of the **SO-100 follower arm** with the top of the **Arm Base**. (Repeat if you have 2 follower arms.)
|
| 58 |
+
2. If you use clamps to hold down your **SO-100 follower arm**, clamp in the same way you've done before, and it will hold down the camera mount.
|
| 59 |
+
|
| 60 |
+
### Step 6: Configure Software
|
| 61 |
+
1. In your software, add your overhead cam, including setting its resolution and FPS.
|
| 62 |
+
- **Note**: You will likely want to set your resolution to *640 x 480* and FPS to *30* even if the camera module's max resolution/frame rate is higher or wider, as most models work with lower resolutions and any higher will just be data bloat. This camera mount was specifically designed for 640 x 480 resolution and width.
|
| 63 |
+
2. Look at the video feed from your newly installed camera (On Mac, you can also use *QuickTime*->*New Movie Recording* to see this feed). You should be able to see the workspace of the arm(s).
|
| 64 |
+
|
| 65 |
+
<img height="300" alt="Screenshot 2025-04-12 at 4 48 35 PM" src="https://github.com/user-attachments/assets/a0aded4e-6abf-4d19-a514-6d4be90ebe1b" />
|
| 66 |
+
<img height="300" alt="Screenshot 2025-04-12 at 4 52 09 PM" src="https://github.com/user-attachments/assets/d33287bd-0263-4a03-b7d9-54e360ef5a36" /></br>
|
| 67 |
+
|
| 68 |
+
### Step 7: (Optional) Add Gripper Cameras
|
| 69 |
+
<img height="250" src="https://github.com/user-attachments/assets/8e8fbf60-f62e-4d8c-8451-3ca5a864497c"/></br>
|
| 70 |
+
1. For optimal training data, add [**Gripper Cameras**](../Wrist_Cam_Mount_32x32_UVC_Module) designed specifically alongside this camera mount setup.
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
## Acknowledgements
|
| 74 |
+
|
| 75 |
+
- Conor Mc Gartoll
|
| 76 |
+
- Design and R & D
|
| 77 |
+
- Philip Fung
|
| 78 |
+
- R & D
|
SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/stl/arm_base.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:169adfd40bcca689334efd1188c9b42cc03c914dc0afeaa98cb5431013610833
|
| 3 |
+
size 86884
|
SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/stl/cam_mount_bottom.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b3545b6cae437210e17b7dcfee2e12e00dc7a59ece9264f4b13ab9fd8ceb8088
|
| 3 |
+
size 48684
|
SO-ARM100/Optional/Overhead_Cam_Mount_Webcam/stl/cam_mount_top.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:177fbfae49cabba47b0b51811421b656d580dd1ab4f47f2248350f5184c75488
|
| 3 |
+
size 47684
|
SO-ARM100/Optional/Raised_Base/Raised_Base_Extension.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9b0885b4fa4b864eb988b28742f855796e5c53ce986055ccf2b9032b0cdc931b
|
| 3 |
+
size 68284
|
SO-ARM100/Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Hex-Nut Recess Wrist Camera (MF) Installation Guide for SO-101
|
| 2 |
+
|
| 3 |
+
<img width="300" src="https://github.com/user-attachments/assets/ef919565-230d-43b4-8363-feb26f23967c" />
|
| 4 |
+
<img width="300" src="https://github.com/user-attachments/assets/ae01ce6a-a953-4787-b792-7a17e8091094" />
|
| 5 |
+
|
| 6 |
+
## Overview
|
| 7 |
+
This guide provides step-by-step instructions for installing a **Wrist Camera** (alternate "McGartoll-Fung" design) on the SO-101 robot using a **Camera Module** and a 3D-printed **Hex-Nut Recess Camera Adapter**.
|
| 8 |
+
|
| 9 |
+
This adapts the [Wrist Camera (MF) UVC Module](../Wrist_Cam_Mount_32x32_UVC_Module/) and [Wrist Camera (MF) UVC Plug‑on Module](../Wrist_Cam_Mount_32x32_UVC_Module/).
|
| 10 |
+
|
| 11 |
+
## Comparison to Main Design
|
| 12 |
+
#### Advantages:
|
| 13 |
+
- adapted to use the hex-nut recesses on the wrist of the SO-101 follower arm
|
| 14 |
+
|
| 15 |
+
#### Disadvantages:
|
| 16 |
+
- still requires adaption to the new camera
|
| 17 |
+
- requires two screws and two nuts which are not included with the servos
|
| 18 |
+
- not backwards-compatible to the SO-100
|
| 19 |
+
|
| 20 |
+
## Required Components
|
| 21 |
+
### Hardware:
|
| 22 |
+
- **USB Camera Module** (1) - this is the [recommended model](https://www.amazon.com/innomaker-Computer-Raspberry-Support-Windows/dp/B0CNCSFQC1/ref=pd_lpo_d_sccl_3/132-7372155-9780230?pd_rd_w=eYz4L&content-id=amzn1.sym.4c8c52db-06f8-4e42-8e56-912796f2ea6c&pf_rd_p=4c8c52db-06f8-4e42-8e56-912796f2ea6c&pf_rd_r=XC3EXZRSSXKDB1G0Z5D7&pd_rd_wg=1wTpn&pd_rd_r=932b1976-9ac7-4cef-9774-f0f9c3acb804&pd_rd_i=B0CNCSFQC1&psc=1), but any 32mm x 32mm USB camera module with min 720p / 30 fps spec will likely work
|
| 23 |
+
- [3D-printed Hex-Nut Recess Camera Adapter](stl/SO-ARM101_camera_wrist_mount.stl) (1)
|
| 24 |
+
- I recommend printing it as oriented in the STL using tree supports. 40% infill is recommended to increase sturdiness and avoid wobbling
|
| 25 |
+
- **M2 Screws** (4) - these are the smaller screws that came with your Feetech servos.
|
| 26 |
+
- **M3 x 8mm Screws** (2)
|
| 27 |
+
- **M3 Hex Nuts** (2)
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
<img height="200" alt="Screenshot 2025-03-04 at 7 43 33 PM" src="https://github.com/user-attachments/assets/18099e1d-754c-4877-871f-9113a0dff062" />
|
| 31 |
+
|
| 32 |
+
## Assembly Instructions
|
| 33 |
+
### Step 1: Attach the Adapter to the Gripper
|
| 34 |
+
|
| 35 |
+
1. 3D print the **Hex-Nut Recess Camera Adapter**.
|
| 36 |
+
|
| 37 |
+
2. Remove Motor 6, you can leave the [Moving Jaw](../../STL/SO101/Individual/Moving_Jaw_SO101.stl) attached.
|
| 38 |
+
|
| 39 |
+
3. Insert the hex nuts into the recesses in the [Wrist Roll Element](../../STL/SO101/Individual/Wrist_Roll_Follower_SO101.stl).
|
| 40 |
+
|
| 41 |
+
<img width="300" src="https://github.com/user-attachments/assets/68f34831-eeb1-4e90-83a2-4e204a94ac51" />
|
| 42 |
+
|
| 43 |
+
4. Reattach Motor 6, secure it with its original M2 screws again.
|
| 44 |
+
|
| 45 |
+
5. Secure the adapter with the two M3 screws.
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
### Step 2: Install the Camera
|
| 50 |
+
1. Take out the **Camera Module**.
|
| 51 |
+
2. Align the 4 holes of the **Camera Module** with the **Camera Adapter**, and attach using 4 **M2 Screws**.
|
| 52 |
+
|
| 53 |
+
<img width="300" src="https://github.com/user-attachments/assets/baea05ba-2865-4d41-8a53-0ca6ef2b73fe" />
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
### Step 3: Configure Software and Adjust Focus
|
| 57 |
+
1. In your software, set your resolution and FPS.
|
| 58 |
+
- **Note**: You will likely want to set your resolution to *640 x 480* and FPS to *30* even if the camera module's max resolution/frame rate is higher, as most models work with lower resolutions and any higher will just be data bloat.
|
| 59 |
+
2. Turn on your arm. Look at the video feed from your newly installed camera (On Mac, you can also use *QuickTime*->*New Movie Recording* to see this feed).
|
| 60 |
+
- **Note**: The focus on the camera is manual and will look very blurry initially. Adjust the focus by twisting the lens counterclockwise or clockwise until the video feed is clear.
|
SO-ARM100/Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module/stl/SO-ARM101_camera_wrist_mount.step
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:abba98321af20b6aadf0a82ac3758a27745efae047c662489026c6991f241f38
|
| 3 |
+
size 84186
|
SO-ARM100/Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module/stl/SO-ARM101_camera_wrist_mount.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e17a626158951ac8cdf8d960962c1a3c8bf23b64635a02f88b62016fe895cef8
|
| 3 |
+
size 173884
|
SO-ARM100/Optional/Small_Handle/Small_Leader_Handle.STL
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:73dbdbc40e542adcd08e7c4e75e8cd4086e6b99fb4ff8291c902856a72f8b15a
|
| 3 |
+
size 1138984
|
SO-ARM100/Optional/Springy_Trigger/Springy_Trigger.STL
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:777d30f931558811b28d6397ec236047b706c00d6f7b7b109662e2defb00e39d
|
| 3 |
+
size 400184
|
SO-ARM100/Optional/Wrist_Cam_Mount_32x32_UVC_Module/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Wrist Camera Integrated/One-Piece Installation Guide for SO-100/SO-101
|
| 2 |
+
|
| 3 |
+
<img width="250" src="../../media/Wrist_Cam_Mount_32x32_UVC_module_1.jpg" />
|
| 4 |
+
<img width="250" src="../../media/Wrist_Cam_Mount_32x32_UVC_module_2.jpg" />
|
| 5 |
+
|
| 6 |
+
## Overview
|
| 7 |
+
This guide provides step-by-step instructions for installing a **Wrist Camera** on the SO-100/SO-101 robots using a **Camera Module** and a 3D-printed **Jaw Replacement Part**.
|
| 8 |
+
|
| 9 |
+
## Comparison to Main Design
|
| 10 |
+
#### Advantages:
|
| 11 |
+
- smaller
|
| 12 |
+
- fewer parts
|
| 13 |
+
- no additional screws/hardware needed to attach camera
|
| 14 |
+
|
| 15 |
+
#### Disdvantages:
|
| 16 |
+
- requires removal/replacement of existing **Wrist Roll** vs an add-on
|
| 17 |
+
|
| 18 |
+
## Required Components
|
| 19 |
+
### Hardware:
|
| 20 |
+
- **USB Camera Module** (1) - this is the [recommended model](https://www.amazon.com/innomaker-Computer-Raspberry-Support-Windows/dp/B0CNCSFQC1/ref=pd_lpo_d_sccl_3/132-7372155-9780230?pd_rd_w=eYz4L&content-id=amzn1.sym.4c8c52db-06f8-4e42-8e56-912796f2ea6c&pf_rd_p=4c8c52db-06f8-4e42-8e56-912796f2ea6c&pf_rd_r=XC3EXZRSSXKDB1G0Z5D7&pd_rd_wg=1wTpn&pd_rd_r=932b1976-9ac7-4cef-9774-f0f9c3acb804&pd_rd_i=B0CNCSFQC1&psc=1), but any 32mm x 32mm USB camera module with min 720p / 30 fps spec will likely work
|
| 21 |
+
- 3D-printed Wrist Roll Replacement ([SO-100](/Optional/Wrist_Cam_Mount_32x32_UVC_Module/stl/Wrist_Cam_Mount_32x32_UVC_Module_SO100.stl), [SO-101](/Optional/Wrist_Cam_Mount_32x32_UVC_Module/stl/Wrist_Cam_Mount_32x32_UVC_Module_SO101.stl)) (1)
|
| 22 |
+
- **M2 Screws** (4) - these are the smaller screws that came with your Feetech servos.
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
<img height="200" alt="Screenshot 2025-03-04 at 7 43 33 PM" src="https://github.com/user-attachments/assets/18099e1d-754c-4877-871f-9113a0dff062" />
|
| 26 |
+
|
| 27 |
+
## Assembly Instructions
|
| 28 |
+
### Step 1: Replace the [Wrist Roll](../../STL/SO101/Individual/Wrist_Roll_Follower_SO101.stl) with our new one
|
| 29 |
+
1. If a [Moving Jaw](../../STL/SO101/Individual/Moving_Jaw_SO101.stl) is already installed on the arm, leave it attached. Remove the gripper servo from the existing Wrist Roll piece by:
|
| 30 |
+
- unscrewing all 6 of **M3 Screws** from the front and back of the servo which attach it to the Wrist Roll piece
|
| 31 |
+
- gently pulling the motor out
|
| 32 |
+
- unscrew the remaining 4 **M3 Screws** holding the Wrist Roll piece to the next servo
|
| 33 |
+
|
| 34 |
+
2. 3D print the **Wrist Roll Replacement**.
|
| 35 |
+
|
| 36 |
+
3. Attach the **Wrist Roll Replacement** by doing the reverse of (1).
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
### Step 2: Install the Camera
|
| 40 |
+
1. Take out the **Camera Module**.
|
| 41 |
+
2. Align the 4 holes of the **Camera Module** with the **Moving Jaw Replacement**, and attach using 4 **M2 Screws**.
|
| 42 |
+
|
| 43 |
+
<img height="300" src="https://github.com/user-attachments/assets/ea5af652-9311-44c7-8ae8-525f42cb4703" />
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
### Step 3: Configure Software and Adjust Focus
|
| 47 |
+
1. In your software, set your resolution and FPS.
|
| 48 |
+
- **Note**: You will likely want to set your resolution to *640 x 480* and FPS to *30* even if the camera module's max resolution/frame rate is higher, as most models work with lower resolutions and any higher will just be data bloat.
|
| 49 |
+
2. Turn on your arm. Look at the video feed from your newly installed camera (On Mac, you can also use *QuickTime*->*New Movie Recording* to see this feed).
|
| 50 |
+
3. **Important** - The focus on the camera is manual and will look very blurry initially. Adjust the focus by twisting the lens counterclockwise or clockwise until the video feed is clear.
|
| 51 |
+
|
| 52 |
+
## Acknowledgements
|
| 53 |
+
|
| 54 |
+
Design & Testing
|
| 55 |
+
- Conor McGartholl
|
| 56 |
+
- Philip Fung
|
SO-ARM100/Optional/Wrist_Cam_Mount_32x32_UVC_Module/stl/Wrist_Cam_Mount_32x32_UVC_Module_SO100.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6a371846553b3a772f9bccc546da1d3e0164e9d00d14aa45d26ab34b58c9cf43
|
| 3 |
+
size 244084
|
SO-ARM100/Optional/Wrist_Cam_Mount_32x32_UVC_Module/stl/Wrist_Cam_Mount_32x32_UVC_Module_SO101.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b4345ccf23f1f2ed3f4885c205cac5afbed6ddd1b183617c4801751e3bafb7b4
|
| 3 |
+
size 5408428
|
SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D405/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Wrist Camera Mount for Intel® RealSense™ D405
|
| 2 |
+
|
| 3 |
+
<p float="left">
|
| 4 |
+
<img src="../../media/d405_mount.jpg" width="400"/>
|
| 5 |
+
<img src="../../media/d405_mount_sample_observation.jpg" width="400" />
|
| 6 |
+
</p>
|
| 7 |
+
|
| 8 |
+
Use two **DIN 912 M3x6 or M3x8** screws to mount the camera to the wrist.
|
| 9 |
+
|
| 10 |
+
### Suggested Print Orientation:
|
| 11 |
+
<img src="../../media/d405_mount_print_orientation.jpg" width="600" />
|
| 12 |
+
|
SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D405/Wrist_Roll_D405_Holder.step
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:37377fc44f2601371b25b4e0108c769e1acb17d53aa6466e4577440c463cc993
|
| 3 |
+
size 817885
|
SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D405/Wrist_Roll_D405_Holder.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ab8a3c5cf151bf812a161a89fd79119f0152f4665421cf6bf4647346cd19917e
|
| 3 |
+
size 723484
|
SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D435/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Wrist Camera Mount for Intel® RealSense™ D435/D435i
|
| 2 |
+
|
| 3 |
+
<img src="../../media/d435_mount.jpg" width="600" />
|
| 4 |
+
|
| 5 |
+
This 3D-printed mount lets you easily attach an Intel® RealSense™ D435 or D435i to the **SO-100 wrist** — no modifications or extra hardware required.
|
| 6 |
+
You can reuse the spare screws included with the Feetech servos.
|
| 7 |
+
|
| 8 |
+
👉 [Download the STL file](stl/Wrist_cam_mount_RealSense_D435.stl)
|
| 9 |
+
|
| 10 |
+
<img src="../../media/d435_mount_render.png" width="600" />
|
| 11 |
+
|
| 12 |
+
### Assembly Instructions
|
| 13 |
+
|
| 14 |
+
- Use **5 small screws** to attach the mount to the SO-100 wrist.
|
| 15 |
+
- Use **2 M3*6mm screws** to secure the Intel camera to the mount.
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
### Camera Field of View
|
| 19 |
+
<img src="../../media/d435_mount_view.png" width="600" />
|
| 20 |
+
|
| 21 |
+
> 📝 The camera is centered for **depth sensing**, but can also function with **RGB only**.
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
### Suggested Print Orientation
|
| 26 |
+
<img src="../../media/d435_mount_print_orientation.png" width="600" />
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
## Vinmooog Adapter (Optional)
|
| 31 |
+
|
| 32 |
+
You can also use this mount with a **Vinmooog camera** using the adapter below:
|
| 33 |
+
|
| 34 |
+
👉 [Download the STL file](stl/D435_Vinmooog_adapter.stl)
|
| 35 |
+
|
| 36 |
+
<img src="../../media/d435_to_vinmooog_adapter.jpg" width="600" />
|
SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D435/stl/D435_Vinmooog_adapter.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7d6483e1fd49e5e334bc4bfe52bb2508d1accd8fea51000164666db81f7e88ee
|
| 3 |
+
size 333584
|
SO-ARM100/Optional/Wrist_Cam_Mount_RealSense_D435/stl/Wrist_cam_mount_RealSense_D435.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dfaeb5ccd510e99cd718ecb59a25a1660318db0b403911f363fe5aea0685daed
|
| 3 |
+
size 431084
|
SO-ARM100/Optional/Wrist_Cam_Mount_Vinmooog_Webcam/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Wrist Camera Installation Guide for SO100
|
| 2 |
+
|
| 3 |
+
## Overview
|
| 4 |
+
This guide provides step-by-step instructions for installing a **wrist camera** on the SO100 robot using a **cheap webcam** and 3D-printed mounting parts.
|
| 5 |
+
|
| 6 |
+
## Required Components
|
| 7 |
+
### Hardware:
|
| 8 |
+
- [Vinmooog Webcam](https://www.amazon.fr/Vinmooog-equipement-Microphone-Enregistrement-conf%C3%A9rences/dp/B0BG1YJWFN/)
|
| 9 |
+
- **3D-printed parts:**
|
| 10 |
+
- [Modified wirst](Optional/Wrist_Cam_Mount_Vinmooog_Webcam/stl/Updated_Wrist_Camera_Insert.stl) (Print **1x**), not needed for SO-101
|
| 11 |
+
- [Mount](Optional/Wrist_Cam_Mount_Vinmooog_Webcam/stl/Webcam_Mount_Wrist.stl) (Print **1x**)
|
| 12 |
+
- **Fasteners:**
|
| 13 |
+
- 3x **M3 Nut**
|
| 14 |
+
- 1x **M3x12mm bolt**
|
| 15 |
+
- 2x **M3x35mm bolts**
|
| 16 |
+
|
| 17 |
+
## Assembly Instructions
|
| 18 |
+
### Step 1: Print and Prepare the Gripper Mount
|
| 19 |
+
1. 3D print the new **SO100 gripper with camera mount**.
|
| 20 |
+
2. Insert an **M3 nut** into the dedicated slot in the 3D-printed part.
|
| 21 |
+
3. Insert the **motor** into the gripper mount and attach the **gripper mechanism**.
|
| 22 |
+
|
| 23 |
+
<img src="../../media/cam_mount1.jpg" width="300" />
|
| 24 |
+
|
| 25 |
+
### Step 2: Attach the Camera Mount
|
| 26 |
+
1. Take the **3D-printed camera mount**.
|
| 27 |
+
2. Use an **M3x12mm bolt** to secure the camera mount to the **gripper mount**, ensuring that it locks into the previously inserted **M3 nut**.
|
| 28 |
+
|
| 29 |
+
### Step 3: Install the Camera
|
| 30 |
+
1. Insert the **Vinmooog webcam** into the camera mount.
|
| 31 |
+
2. Use **two M3x35mm bolts** to secure the camera from the back and insert the nuts in the slots.
|
| 32 |
+
|
| 33 |
+
<img src="../../media/cam_mount2.jpg" width="300" />
|
| 34 |
+
|
SO-ARM100/Optional/Wrist_Cam_Mount_Vinmooog_Webcam/stl/Updated_Wrist_Camera_Insert.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:71d1843207160aeb5c81680367785d207b1d4e0e73456f6314212f39f82a2c56
|
| 3 |
+
size 733084
|
SO-ARM100/Optional/Wrist_Cam_Mount_Vinmooog_Webcam/stl/Webcam_Mount_Wrist.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ec651b10feb3fb35bdf856237e9bb39199485dc54fb6eb296a10403a665e74de
|
| 3 |
+
size 150484
|
SO-ARM100/Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Plug Wrist Camera (MF) Installation Guide for SO-100
|
| 2 |
+
|
| 3 |
+
<img height="300" src="https://github.com/user-attachments/assets/139be1c3-d446-4304-b0f4-c90a996789d6" />
|
| 4 |
+
<img height="300" src="https://github.com/user-attachments/assets/6c2f0f47-9663-4224-ac4e-220d1d71c162" />
|
| 5 |
+
|
| 6 |
+
## Overview
|
| 7 |
+
This guide provides step-by-step instructions for installing a **Wrist Camera** (alternate "McGartoll-Fung" design) on the SO-100 robot using a **Camera Module** and a 3D-printed **Plug-in Camera adapter**.
|
| 8 |
+
|
| 9 |
+
This an adapatation of [Wrist Camera (MF) UVC Module](../Wrist_Cam_Mount_32x32_UVC_Module/)
|
| 10 |
+
|
| 11 |
+
## Comparison to Main Design
|
| 12 |
+
#### Advantages:
|
| 13 |
+
- smaller
|
| 14 |
+
- fewer parts
|
| 15 |
+
- no additional screws/hardware needed to attach camera
|
| 16 |
+
- no removal/replacement of existing pieces
|
| 17 |
+
- easy removal/replacement
|
| 18 |
+
|
| 19 |
+
#### Disdvantages:
|
| 20 |
+
- still require to adapt to new camera
|
| 21 |
+
|
| 22 |
+
## Required Components
|
| 23 |
+
### Hardware:
|
| 24 |
+
- **USB Camera Module** (1) - this is the [recommended model](https://www.amazon.com/innomaker-Computer-Raspberry-Support-Windows/dp/B0CNCSFQC1/ref=pd_lpo_d_sccl_3/132-7372155-9780230?pd_rd_w=eYz4L&content-id=amzn1.sym.4c8c52db-06f8-4e42-8e56-912796f2ea6c&pf_rd_p=4c8c52db-06f8-4e42-8e56-912796f2ea6c&pf_rd_r=XC3EXZRSSXKDB1G0Z5D7&pd_rd_wg=1wTpn&pd_rd_r=932b1976-9ac7-4cef-9774-f0f9c3acb804&pd_rd_i=B0CNCSFQC1&psc=1), but any 32mm x 32mm USB camera module with min 720p / 30 fps spec will likely work
|
| 25 |
+
- [3D-printed Plugin camera attachment](stl/SO-ARM100_Plug_camera.stl) (1)
|
| 26 |
+
- I recommend printing it as oriented in the STL using tree supports. 40% infill is recommended to increase sturdiness and avoid wobbling
|
| 27 |
+
- **M2 Screws** (8) - these are the smaller screws that came with your Feetech servos.
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
<img height="200" alt="Screenshot 2025-03-04 at 7 43 33 PM" src="https://github.com/user-attachments/assets/18099e1d-754c-4877-871f-9113a0dff062" />
|
| 31 |
+
|
| 32 |
+
## Assembly Instructions
|
| 33 |
+
### Step 1: Plug the new camera module to the Gripper
|
| 34 |
+
|
| 35 |
+
2. 3D print the **Plugin camera attachment**.
|
| 36 |
+
|
| 37 |
+
3. Attach the **Plugin camera attachment**.
|
| 38 |
+
1. The hole fit into the [Gripper hole](../../STEP/Follower_specific/Moving_Jaw_08d%20v1.step)
|
| 39 |
+
|
| 40 |
+
4. Secure it with the M2 screws
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
### Step 2: Install the Camera
|
| 46 |
+
1. Take out the **Camera Module**.
|
| 47 |
+
2. Align the 4 holes of the **Camera Module** with the **Moving Jaw Replacement**, and attach using 4 **M2 Screws**.
|
| 48 |
+
|
| 49 |
+
<img height="300" src="https://github.com/user-attachments/assets/ea5af652-9311-44c7-8ae8-525f42cb4703" />
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
### Step 3: Configure Software and Adjust Focus
|
| 53 |
+
1. In your software, set your resolution and FPS.
|
| 54 |
+
- **Note**: You will likely want to set your resolution to *640 x 480* and FPS to *30* even if the camera module's max resolution/frame rate is higher, as most models work with lower resolutions and any higher will just be data bloat.
|
| 55 |
+
2. Turn on your arm. Look at the video feed from your newly installed camera (On Mac, you can also use *QuickTime*->*New Movie Recording* to see this feed).
|
| 56 |
+
- **Note**: The focus on the camera is manual and will look very blurry initially. Adjust the focus by twisting the lens counterclockwise or clockwise until the video feed is clear.
|
SO-ARM100/Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/stl/SO-ARM100 Plug camera.step
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:681f65b33e8b53c49bde6b8e137009fc0e5b20789106a2face9cd4e8fe2caf03
|
| 3 |
+
size 201461
|
SO-ARM100/Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/stl/SO-ARM100_Plug_camera.stl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ed85868998c80f31c4604f8d0a27234eed0c2566ba815d25a0d27d1fe58ee83b
|
| 3 |
+
size 227084
|
SO-ARM100/README.md
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div align="center">
|
| 2 |
+
|
| 3 |
+
<h1>Standard Open SO-100 & SO-101 Arms</h1>
|
| 4 |
+
<div style="display: flex; gap: 1rem; justify-content: center; align-items: center;" >
|
| 5 |
+
<img
|
| 6 |
+
src="media/SO101_Follower.webp?raw=true"
|
| 7 |
+
alt="SO-101 follower arm"
|
| 8 |
+
title="SO-101 follower arm"
|
| 9 |
+
style="width: 40%;"
|
| 10 |
+
/>
|
| 11 |
+
<img
|
| 12 |
+
src="media/SO101_Leader.webp?raw=true"
|
| 13 |
+
alt="SO-101 leader arm"
|
| 14 |
+
title="SO-101 leader arm"
|
| 15 |
+
style="width: 40%;"
|
| 16 |
+
/>
|
| 17 |
+
</div>
|
| 18 |
+
|
| 19 |
+
<h2>
|
| 20 |
+
<p>Build Your Own SO-101 Robot!</p>
|
| 21 |
+
</h2>
|
| 22 |
+
|
| 23 |
+
The SO‑101 is the next‑generation version of the SO‑100 robot arm, originally designed by the [RobotStudio](https://www.therobotstudio.com) in collaboration with [Hugging Face](https://huggingface.co/lerobot). It has improved wiring, is easier to assemble (no gear removal) and uses updated motors for the leader arm.
|
| 24 |
+
|
| 25 |
+
These arms are designed to work seamlessly with the open‑source 🤗 LeRobot library. Join our community on [Discord](https://discord.gg/ggrqhPTsMe) to collaborate on both hardware and software, and help make end‑to‑end AI for robotics more accessible.
|
| 26 |
+
|
| 27 |
+
</div>
|
| 28 |
+
|
| 29 |
+
### Documentation 📖
|
| 30 |
+
- For the SO‑101 docs, follow this page further.
|
| 31 |
+
- Here you can find the [SO‑100 docs](SO100.md) which is deprecated.
|
| 32 |
+
|
| 33 |
+
### Getting Your Own SO‑101
|
| 34 |
+
You have two options:
|
| 35 |
+
- **Build it Yourself**
|
| 36 |
+
- Source the components from the [Bill of Materials](#sourcing-parts).
|
| 37 |
+
- 3D print the parts (or order the 3D printed parts), explained in [Printing the Parts](#printing-the-parts).
|
| 38 |
+
- Follow our [Assembly Guide](https://huggingface.co/docs/lerobot/so101).
|
| 39 |
+
- **Buy a Kit**
|
| 40 |
+
- Buy assembled arms or a parts kit from one of the vendors [here](#kits).
|
| 41 |
+
- Optionally follow our [Assembly Guide](https://huggingface.co/docs/lerobot/so101).
|
| 42 |
+
|
| 43 |
+
### Setup with LeRobot 🤗
|
| 44 |
+
After sourcing all parts you can setup your SO-101 with LeRobot [tutorial](https://huggingface.co/docs/lerobot/so101).
|
| 45 |
+
|
| 46 |
+
### Optional Hardware 🔧
|
| 47 |
+
This repository also includes a range of optional hardware designs such as a raised leader base and different camera mounts. Here you can explore the [full list](#optional-hardware).
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
## Kits
|
| 51 |
+
|
| 52 |
+
You can find all optional for SO-100/SO-101 kits here:
|
| 53 |
+
|
| 54 |
+
- from PartaBot :us: [US](https://partabot.com) (They include **assembled** versions, and also sell LeKiwi and Koch robots)
|
| 55 |
+
- from Seeed studio :earth_africa: [International](https://www.seeedstudio.com/SO-ARM100-Low-Cost-AI-Arm-Kit.html) or :cn: [China](https://item.taobao.com/item.htm?id=878010637397&skuId=5915703371829&spm=a213gs.v2success.0.0.4cbf4831mkqWLn) or :jp: [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g131169/) or [Aliexpress](https://www.aliexpress.com/item/3256808696884714.html?gatewayAdapt=4itemAdapt) (They include **3d printed kits**)
|
| 56 |
+
- from WowRobo :earth_africa: [International](https://shop.wowrobo.com/products/so-arm101-diy-kit-assembled-version-1) or :cn: [China](https://item.taobao.com/item.htm?ft=t&id=860171734711) (They include **assembled** versions)
|
| 57 |
+
- from Sudoremove :kr: [South Korea](https://smartstore.naver.com/sudoremove/products/12022333117)
|
| 58 |
+
- from NeoBot :cn: [China](https://item.taobao.com/item.htm?ft=t&id=957685951340)
|
| 59 |
+
|
| 60 |
+
Additionally you can find SO-100 follower arm kit (without leader arm) on [Phospho](https://robots.phospho.ai). It can be especially useful if you own a VR headset.
|
| 61 |
+
|
| 62 |
+
## Sourcing Parts
|
| 63 |
+
|
| 64 |
+
The follower and leader arm for this teleoperation setup will almost the same off the shelf parts (except for the motors). If you plan on creating the classic teleoperation set up to be used with the `LeRobot` library please buy from the Parts for Two Arms below.
|
| 65 |
+
|
| 66 |
+
We only have links for US, EU, CN, and JP for now. If you find links for other countries, please create an issue or PR so that we add them to the list. Note that prices and items may vary depending on geographic location.
|
| 67 |
+
|
| 68 |
+
> [!IMPORTANT]
|
| 69 |
+
> The STS3215 motors for the follower arm comes in two sizes. The 7.4V has a stall torque of 16.5kg.cm at 6V (and likely slightly less for a 5V power supply). The 12V version has a stall torque of 30kg.cm. While we found the 7.4V to be sufficient, if you would like more powerful motors you can buy the 12V version [here](https://www.alibaba.com/product-detail/6PCS-12V-30KG-STS3215-High-Torque_1601216757543.html). Note if you do this, you will also have to buy a 12V 5A+ power supply instead of a 5V one. The leader arm is always 7.4V for the SO101.
|
| 70 |
+
|
| 71 |
+
#### Parts For Two Arms (Follower and Leader Setup):
|
| 72 |
+
|
| 73 |
+
| Part | Amount | Unit Cost (US) | Buy US | Unit Cost (EU) | Buy EU | Unit Cost (RMB) | Buy CN | Unit Cost (JPY) | Buy JP |
|
| 74 |
+
| ------------------------------------------- | ------ | -------------- | --------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------- |
|
| 75 |
+
| STS3215 Servo 7.4V, 1/345 gear (C001) **<sup>[2](#leaderbundle)</sup> | 7 | $13.89 | [Alibaba](https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html) | €12.2 | [Alibaba](https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html) | ¥97.72 | [TaoBao](https://item.taobao.com/item.htm?id=712179366565&skuId=5268252241438) | ¥2,980 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g116312/) |
|
| 76 |
+
| STS3215 Servo 7.4V, 1/191 gear (C044) **<sup>[2](#leaderbundle)</sup> | 2 | $13.89 | [Alibaba](https://www.alibaba.com/product-detail/Feetech-STS3215-SO-ARM101-Servo-7_1601430747897.html?spm=a2747.product_manager.0.0.59a371d2W4e0SR) | €12.2 | [Alibaba](https://www.alibaba.com/product-detail/Feetech-STS3215-SO-ARM101-Servo-7_1601430747897.html?spm=a2747.product_manager.0.0.59a371d2W4e0SR) | ¥97.72 | - | ¥2,980 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g131131/) |
|
| 77 |
+
| STS3215 Servo 7.4V, 1/147 gear (C046) **<sup>[2](#leaderbundle)</sup> | 3 | $13.89 | [Alibaba](https://www.alibaba.com/product-detail/Feetech-STS3215-SO-ARM101-Servo-7_1601430760797.html?spm=a2747.product_manager.0.0.167371d25QeX3F) | €12.2 | [Alibaba](https://www.alibaba.com/product-detail/Feetech-STS3215-SO-ARM101-Servo-7_1601430760797.html?spm=a2747.product_manager.0.0.167371d25QeX3F) | ¥97.72 | - | ¥2,980 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g131132/) |
|
| 78 |
+
| Motor Control Board | 2 | $10.6 | [Amazon](https://www.amazon.com/Waveshare-Integrates-Control-Circuit-Supports/dp/B0CTMM4LWK/) | €11.4 | [Amazon](https://www.amazon.fr/-/en/dp/B0CJ6TP3TP/) | ¥27 | [TaoBao](https://detail.tmall.com/item.htm?id=738817173460&skuId=5096283384143) | ¥980 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g131227/) |
|
| 79 |
+
| USB-C Cable 2 pcs | 1 | $7 | [Amazon](https://www.amazon.com/Charging-etguuds-Charger-Braided-Compatible/dp/B0B8NWLLW2/?th=1) | €7 | [Amazon](https://www.amazon.fr/dp/B07BNF842T/) | ¥23.9\*2 | [TaoBao](https://detail.tmall.com/item.htm?id=44425281296&skuId=5611379016222) | ¥1,498 | [Amazon](https://www.amazon.co.jp/dp/B0C3H9L6KZ) |
|
| 80 |
+
| Power Supply | 2 | $10 | [Amazon](https://www.amazon.com/Facmogu-Switching-Transformer-Compatible-5-5x2-1mm/dp/B087LY41PV/) | €15.7 | [Amazon](https://www.amazon.fr/-/en/dp/B01HRR9GY4/) | ¥22.31 | [TaoBao](https://item.taobao.com/item.htm?id=544824248494&skuId=4974994129990) | ¥1,550 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g106238/) |
|
| 81 |
+
| Table Clamp 4pcs | 1 | $9 | [Amazon](https://www.amazon.com/TAODAN-Trigger-Ratchet-Woodworking-Processes/dp/B0DJNXF8WH?rps=1&sr=1-18) | €9.7 | [Amazon](https://www.amazon.fr/Connex-COXT865210-Lot-Serre-joints-bricolage/dp/B00NA3T2CQ) | ¥5.2*4 | [TaoBao](https://detail.tmall.com/item.htm?id=801399113134&skuId=5633627126649) | ¥2,200 | [Amazon](https://www.amazon.co.jp/dp/B0DJNXF8WH) |
|
| 82 |
+
| Screwdriver Set<sup>[1](#myfootnote1)</sup> | 1 | $6 | [Amazon](https://www.amazon.com/Precision-Phillips-Screwdriver-Electronics-Computer/dp/B0DB227RTH) | €9 | [Amazon](https://www.amazon.fr/Vinabo-Magnétique-Electronique-Réparation-Informatique/dp/B0BNQBNFFJ) | ¥14.9 | [TaoBao](https://detail.tmall.com/item.htm?id=675684600845&skuId=4856851392176) | ¥500 | [Amazon](https://www.amazon.co.jp/dp/B01MDNJVMN) |
|
| 83 |
+
| Total | --- | $229.88 | --- | €226.3 | --- | ¥1343.16 | --- | ¥44,530 | --- |
|
| 84 |
+
|
| 85 |
+
<a name="leaderbundle">2</a>: You can buy **all six STS3215 servos needed for the SO-101 leader arm**
|
| 86 |
+
(3 × 1/147 gear (C046), 2 × 1/191 gear (C044), 1 × 1/345 gear (C001)) in a single bundle on [Alibaba](https://www.alibaba.com/product-detail/6PCS-7-4V-STS3215-Servos-for_1601428584027.html?spm=a2747.product_manager.0.0.757c2c3clU7uH3).
|
| 87 |
+
|
| 88 |
+
#### Parts for One Follower Arm:
|
| 89 |
+
|
| 90 |
+
| Part | Amount | Unit Cost (US) | Buy US | Unit Cost (EU) | Buy EU | Unit Cost (RMB) | Buy CN | Unit Cost (JPY) | Buy JP |
|
| 91 |
+
| ------------------------------------------- | ------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------- |
|
| 92 |
+
| STS3215 Servo 7.4V, 1/345 gear (C001) | 6 | $13.89 | [Alibaba](https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html?spm=a2747.product_manager.0.0.11be71d2ARQb82) | €12.2 | [Alibaba](https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html?spm=a2747.product_manager.0.0.11be71d2ARQb82) | ¥97.72 | [TaoBao](https://item.taobao.com/item.htm?id=712179366565&skuId=5268252241438) | ¥2,980 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g116312/) |
|
| 93 |
+
| Motor Control Board | 1 | $10.6 | [Amazon](https://www.amazon.com/Waveshare-Integrates-Control-Circuit-Supports/dp/B0CTMM4LWK/) | €11.4 | [Amazon](https://www.amazon.fr/-/en/dp/B0CJ6TP3TP/) | ¥27 | [TaoBao](https://detail.tmall.com/item.htm?id=738817173460&skuId=5096283384143) | ¥980 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g131227/) |
|
| 94 |
+
| USB-C Cable 2 pcs | 1 | $7 | [Amazon](https://www.amazon.com/Charging-etguuds-Charger-Braided-Compatible/dp/B0B8NWLLW2/?th=1) | €7 | [Amazon](https://www.amazon.fr/dp/B07BNF842T/) | ¥23.9 | [TaoBao](https://detail.tmall.com/item.htm?id=44425281296&skuId=5611379016222) | ¥1,498 | [Amazon](https://www.amazon.co.jp/dp/B0C3H9L6KZ) |
|
| 95 |
+
| Power Supply | 1 | $10 | [Amazon](https://www.amazon.com/Facmogu-Switching-Transformer-Compatible-5-5x2-1mm/dp/B087LY41PV/) | €15.7 | [Amazon](https://www.amazon.fr/-/en/dp/B01HRR9GY4/) | ¥22.31 | [TaoBao](https://item.taobao.com/item.htm?id=544824248494&skuId=4974994129990) | ¥1,550 | [Akizuki Denshi](https://akizukidenshi.com/catalog/g/g106238/) |
|
| 96 |
+
| Table Clamp 2pcs | 1 | $5 | [Amazon](https://www.amazon.com/Mr-Pen-Carpenter-Clamp-6inch/dp/B092L925J4/) | €8 | [Amazon](https://www.amazon.fr/-/en/dp/B08HZ1QRBF/) | ¥7.8 | [TaoBao](https://detail.tmall.com/item.htm?id=738636473238&skuId=5505939904942) | ¥2,200 | [Amazon](https://www.amazon.co.jp/dp/B0DJNXF8WH) |
|
| 97 |
+
| Screwdriver Set<sup>[1](#myfootnote1)</sup> | 1 | $6 | [Amazon](https://www.amazon.com/Precision-Phillips-Screwdriver-Electronics-Computer/dp/B0DB227RTH) | €9 | [Amazon](https://www.amazon.fr/Vinabo-Magnétique-Electronique-Réparation-Informatique/dp/B0BNQBNFFJ) | ¥14.9 | [TaoBao](https://detail.tmall.com/item.htm?id=675684600845&skuId=4856851392176) | ¥500 | [Amazon](https://www.amazon.co.jp/dp/B01MDNJVMN) |
|
| 98 |
+
| Total | --- | $121.94 | --- | €124.3 | --- | ¥682.23 | --- | ¥24,414 | --- |
|
| 99 |
+
|
| 100 |
+
<a name="myfootnote1">1</a>: You do not need to use this exact screwdriver set, but it is highly recommended to have phillips head screw driver sizes #0 and #1 for easiest screw installation and removal. These are both standard sizes which will likely appear in most small screwdriver sets.
|
| 101 |
+
|
| 102 |
+
## Printing the Parts
|
| 103 |
+
|
| 104 |
+
A variety of 3D printers are acceptable to print the parts necessary of the follower and leader arm. Follow the steps below to ensure a good print.
|
| 105 |
+
|
| 106 |
+
### Step 1: Choose a Printer
|
| 107 |
+
The STL files provided are ready to print on many FDM printers. Below are the tested and suggested settings though others may work.
|
| 108 |
+
1. Material: PLA+
|
| 109 |
+
2. Nozzle Diameter and Precision: 0.4mm nozzle diameter at 0.2mm layer height or 0.6mm nozzle at 0.4mm layer height.
|
| 110 |
+
3. Infill Density: 15%
|
| 111 |
+
4. Sample Printers: [Prusa MINI+](https://www.prusa3d.com/product/original-prusa-mini-semi-assembled-3d-printer-4/), [UP Plus 2](https://shop.tiertime.com/product/tiertime-up-plus-2-3d-printer/), [Creality Ender 3](https://www.amazon.com/Comgrow-Creality-Ender-Aluminum-220x220x250mm/dp/B07BR3F9N6/), [Bambu Lab A/P/X-series](https://bambulab.com)
|
| 112 |
+
|
| 113 |
+
### Step 2: Set up the Printer
|
| 114 |
+
1. Ensure that the printer is calibrated and the bed level is correctly set using the printer specific instructions.
|
| 115 |
+
2. Clean the print bed, making sure it is free from dust, or grease. If cleaning the bed using water, or other liquid, dry the bed.
|
| 116 |
+
3. If your printer recommends it, use a standard glue stick and apply a thin, even layer of glue across the print area of the bed. Avoid clumping or uneven application.
|
| 117 |
+
4. Load the printer filament using printer specific instructions.
|
| 118 |
+
5. Ensure the printer settings match the ones suggested above (most printers have multiple settings so choose the ones that most closely match).
|
| 119 |
+
6. Set for supports everywhere but ignore slopes greater than 45 degrees to the horizontal.
|
| 120 |
+
7. There should be no supports in the screw holes with horizontal axes.
|
| 121 |
+
### Step 3: Check Printer Accuracy
|
| 122 |
+
1. In the [Gauges](STL/Gauges) folder, there are two types of gauges, one to check the size of print against a standard 4x2 lego block and one against a STS3215 servo.
|
| 123 |
+
1. If you have a STS3215 servo, print:
|
| 124 |
+
1. [Gauge Zero](STL/Gauges/Gauge_0.STL)
|
| 125 |
+
2. [Gauge Tight](STL/Gauges/Gauge_tight_1.STL)
|
| 126 |
+
2. If you have a standard lego block, print:
|
| 127 |
+
1. [Gauge Zero](STL/Gauges/Lego_Size_Test_02_zero.STL)
|
| 128 |
+
2. [Gauge -0.1](STL/Gauges/Lego_Size_Test_02_minuspoint1.STL)
|
| 129 |
+
2. Test the gauge 0 against your given object (Lego or Servo). The fit should be similar to this [tutorial](https://youtu.be/dss8E3DG2rA).
|
| 130 |
+
3. If the fit is appropriate, go onto Step 4, otherwise, change your printer settings and try again or create an issue.
|
| 131 |
+
### Step 4: Print the Parts
|
| 132 |
+
All the parts for the leader or follower are for easy 3D printing already contained in a **single file**, correctly orientated for z upwards to minimize supports.
|
| 133 |
+
1. For printer bed sizes of 220mmx220mm (such as the Ender), print these files:
|
| 134 |
+
- [Follower](STL/SO101/Follower/Ender_Follower_SO101.stl)
|
| 135 |
+
- [Leader](STL/SO101/Leader/Ender_Leader_SO101.stl)
|
| 136 |
+
2. For printer bed sizes of 205mm x 250mm (such as the Prusa/Up):
|
| 137 |
+
1. [Follower](STL/SO101/Follower/Prusa_Follower_SO101.stl)
|
| 138 |
+
2. [Leader](STL/SO101/Leader/Prusa_Leader_SO101.stl)
|
| 139 |
+
|
| 140 |
+
This table contains all individual files:
|
| 141 |
+
<details>
|
| 142 |
+
<summary>Individual Part Files</summary>
|
| 143 |
+
|
| 144 |
+
#### Common Parts
|
| 145 |
+
|
| 146 |
+
| Part | Link |
|
| 147 |
+
|-------------------------------------|------------------------------------------------------------------|
|
| 148 |
+
| Base_motor_holder_SO101.stl | [Base_motor_holder_SO101.stl](STL/SO101/Individual/Base_motor_holder_SO101.stl) |
|
| 149 |
+
| Base_SO101.stl | [Base_SO101.stl](STL/SO101/Individual/Base_SO101.stl) |
|
| 150 |
+
| Motor_holder_SO101_Base.stl | [Motor_holder_SO101_Base.stl](STL/SO101/Individual/Motor_holder_SO101_Base.stl) |
|
| 151 |
+
| Motor_holder_SO101_Wrist.stl | [Motor_holder_SO101_Wrist.stl](STL/SO101/Individual/Motor_holder_SO101_Wrist.stl) |
|
| 152 |
+
| Under_arm_SO101.stl | [Under_arm_SO101.stl](STL/SO101/Individual/Under_arm_SO101.stl) |
|
| 153 |
+
| Upper_arm_SO101.stl | [Upper_arm_SO101.stl](STL/SO101/Individual/Upper_arm_SO101.stl) |
|
| 154 |
+
| Rotation_Pitch_SO101.stl | [Rotation_Pitch_SO101.stl](STL/SO101/Individual/Rotation_Pitch_SO101.stl) |
|
| 155 |
+
| Wrist_Roll_Pitch_SO101.stl | [Wrist_Roll_Pitch_SO101.stl](STL/SO101/Individual/Wrist_Roll_Pitch_SO101.stl) |
|
| 156 |
+
| WaveShare_Mounting_Plate_SO101.stl | [WaveShare_Mounting_Plate_SO101.stl](STL/SO101/Individual/WaveShare_Mounting_Plate_SO101.stl) |
|
| 157 |
+
|
| 158 |
+
#### Leader‑Specific Parts
|
| 159 |
+
|
| 160 |
+
| Part | Link |
|
| 161 |
+
|-----------------------|------------------------------------------|
|
| 162 |
+
| Handle_SO101.stl | [Handle_SO101.stl](STL/SO101/Individual/Handle_SO101.stl) |
|
| 163 |
+
| Trigger_SO101.stl | [Trigger_SO101.stl](STL/SO101/Individual/Trigger_SO101.stl) |
|
| 164 |
+
| Wrist_Roll_SO101.stl | [Wrist_Roll_SO101.stl](STL/SO101/Individual/Wrist_Roll_SO101.stl) |
|
| 165 |
+
|
| 166 |
+
#### Follower‑Specific Parts
|
| 167 |
+
|
| 168 |
+
| Part | Link |
|
| 169 |
+
|---------------------------------|--------------------------------------------------------------|
|
| 170 |
+
| Moving_Jaw_SO101.stl | [Moving_Jaw_SO101.stl](STL/SO101/Individual/Moving_Jaw_SO101.stl) |
|
| 171 |
+
| Wrist_Roll_Follower_SO101.stl | [Wrist_Roll_Follower_SO101.stl](STL/SO101/Individual/Wrist_Roll_Follower_SO101.stl) |
|
| 172 |
+
</details>
|
| 173 |
+
|
| 174 |
+
### Step 5: Remove Supports
|
| 175 |
+
1. After the print is done, use a putty knife to scrape the the parts off the print bed.
|
| 176 |
+
2. Remove any support material from parts.
|
| 177 |
+
|
| 178 |
+
### Don't Own a 3D printer?
|
| 179 |
+
Go here: [Printing services](./3DPRINT.md)
|
| 180 |
+
|
| 181 |
+
## Optional Hardware
|
| 182 |
+
<!--Note: no hardware emoji here so links work correctly-->
|
| 183 |
+
Extend your SO‑100/SO‑101 with these add-ons.
|
| 184 |
+
<details>
|
| 185 |
+
<summary>Add‑ons</summary>
|
| 186 |
+
|
| 187 |
+
#### 0. XLeRobot
|
| 188 |
+
|
| 189 |
+
A dual-arm mobile robot for daily use, with 2x SO101 arms, 1x Lekiwi base, 1x 300Wh Anker Battery, 2x wrist RGB cameras, 1x head depth camera (with a 2-dof neck). Total cost 660$.
|
| 190 |
+
|
| 191 |
+
<img width="1725" height="1140" alt="82c2b72eab7c716b90fafac0a9caf895" src="https://github.com/user-attachments/assets/10819ef0-80a2-4cfe-be81-7daa8918cca1" />
|
| 192 |
+
|
| 193 |
+
|
| 194 |
+
[→ Full Documentation](https://xlerobot.readthedocs.io/en/latest/index.html), with detailed BOM, 3D printing models, assembly guide, simulation, and teleop guide.
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
#### 1. Mount Helper
|
| 198 |
+
Print the handy mount jig for easier alignment during assembly.
|
| 199 |
+
|
| 200 |
+
[→ View README](Optional/Mount_Helper/README.md)
|
| 201 |
+
|
| 202 |
+
<img src="media/mount_helper.png" alt="Mount Helper" width="150">
|
| 203 |
+
|
| 204 |
+
#### 2. Overhead Camera Mount
|
| 205 |
+
|
| 206 |
+
For bird’s‑eye views in single or bi‑manual setups.
|
| 207 |
+
(SO100/101)
|
| 208 |
+
|
| 209 |
+
| Webcam | 32×32 Cam Module |
|
| 210 |
+
|:---------------------:|:-------------------:|
|
| 211 |
+
<img src="https://github.com/user-attachments/assets/a652e133-8672-448d-baa0-bdd494a0a515" height="200"> | <img src="media/overhead_cam_two_followers.png" height="200">
|
| 212 |
+
| [Instructions](Optional/Overhead_Cam_Mount_Webcam/README.md) | [Instructions](Optional/Overhead_Cam_Mount_32x32_UVC_Module/README.md)
|
| 213 |
+
|
| 214 |
+
#### 3. Base Mounts
|
| 215 |
+
|
| 216 |
+
| Raised Leader Base | 4040 Aluminum Profile Mount |
|
| 217 |
+
|:-------------------:|:---------------------------:|
|
| 218 |
+
<img src="media/Raised_Base.jpeg" height="150"> | <img src="media/4040_base_mount.jpg" height="150">
|
| 219 |
+
[Download STL](Optional/Raised_Base/Raised_Base_Extension.stl) | [Instructions](Optional/4040_Base_Mount/README.md)
|
| 220 |
+
|
| 221 |
+
#### 4. Tactile Sensing (AnySkin)
|
| 222 |
+
Add touch sensing to your gripper.
|
| 223 |
+
|
| 224 |
+
[→ Find on WOWROBO](https://shop.wowrobo.com/products/enhanced-anyskin-premium-crafted-editionwowskin)
|
| 225 |
+
|
| 226 |
+
<img src="media/tactile_sensor_anyskin.png" alt="AnySkin Sensor" width="150">
|
| 227 |
+
|
| 228 |
+
|
| 229 |
+
#### 5. Wrist‑Mount Cameras
|
| 230 |
+
|
| 231 |
+
| 32×32 UVC Hex Nut (SO101) | 32×32 UVC Integrated (SO100/101) | 32×32 UVC Plug‑on | RealSense D405 | RealSense D435/D435I | Webcam (Vinmooog) |
|
| 232 |
+
| --- | --- | --- | --- | --- | --- |
|
| 233 |
+
| <img src="media/UVC_cam_mount_so101.jpg" height="100"> | <img src="media/Wrist_Cam_Mount_32x32_UVC_module_1.jpg" height="100"> | <img src="media/UVC_cam_mount_plugin.jpg" height="100"> | <img src="media/d405_mount.jpg" height="100"> | <img src="media/d435_mount.jpg" height="100"> | <img src="media/cam_mount2.jpg" height="100"> |
|
| 234 |
+
| [Instructions](Optional/SO101_Wrist_Cam_Hex-Nut_Mount_32x32_UVC_Module) | [Instructions](Optional/Wrist_Cam_Mount_32x32_UVC_Module/README.md) | [Instructions](Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module) | [Instructions](Optional/Wrist_Cam_Mount_RealSense_D405) | [Instructions](Optional/Wrist_Cam_Mount_RealSense_D435) | [Instructions](Optional/Wrist_Cam_Mount_Vinmooog_Webcam) |
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
|
| 238 |
+
#### 6. Compliant Gripper
|
| 239 |
+
Add some flexibility to your gripper by downloading the compliant gripper parts and printing them using a flexible filament like TPU 95A.
|
| 240 |
+
|
| 241 |
+
[→ View README](Optional/Compliant_Gripper/README.md).
|
| 242 |
+
|
| 243 |
+
<img src="https://github.com/user-attachments/assets/26de0b8c-8bd6-4651-867f-1358532e2cc6" width="150">
|
| 244 |
+
|
| 245 |
+
#### 7. Compliant Gripper (new)
|
| 246 |
+
Printed with TPU 95A for the finger and PLA for the base.
|
| 247 |
+
Better structure and better grasp (both precision and power). No need to print support for the TPU finger. Requires 2 additional M3 screws, optional 3M gripper tape for higher friction.
|
| 248 |
+

|
| 249 |
+
|
| 250 |
+
[→ Find on XLeRobot](https://github.com/Vector-Wangel/XLeRobot/tree/main/hardware)
|
| 251 |
+
</details>
|
| 252 |
+
|
| 253 |
+
## Debugging Motors
|
| 254 |
+
For debugging, any Windows PC can connect over USB to program the servos and to debug or do tests. To do so download [Feetech Software](https://www.feetechrc.com/software.html). For Ubuntu, you can use [FT_SCServo_Debug_Qt](https://github.com/Kotakku/FT_SCServo_Debug_Qt). Note: This step is not necessary as motors can be configured using the LeRobot Library, but this can be helpful for debugging.
|
| 255 |
+
|
SO-ARM100/SO100.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div align="center">
|
| 2 |
+
|
| 3 |
+
<h1>Standard Open SO-100 Arm</h1>
|
| 4 |
+
<div style="display: flex; gap: 1rem; justify-content: center; align-items: center;" >
|
| 5 |
+
<img src="media/Leader_And_Follower_SO100.jpg" alt="SO-101 follower arm" title="SO-101 follower arm" style="width: 70%;"/>
|
| 6 |
+
</div>
|
| 7 |
+
<br><br>
|
| 8 |
+
|
| 9 |
+
The SO-100 arm is the original robot arm designed by the [RobotStudio](https://www.therobotstudio.com) in collaboration with [Hugging Face](https://huggingface.co/lerobot).
|
| 10 |
+
</div>
|
| 11 |
+
|
| 12 |
+
## Sourcing Parts
|
| 13 |
+
|
| 14 |
+
The follower and leader arm for this teleoperation setup will almost the same off the shelf parts. If you plan on creating the classic teleoperation set up to be used with the `LeRobot` library please buy from the Parts for Two Arms below.
|
| 15 |
+
|
| 16 |
+
We only have links for US, EU and CN for now. If you find links for other countries, please create an issue or PR so that we add them to the list. Note that prices and items may vary depending on geographic location.
|
| 17 |
+
|
| 18 |
+
#### Parts For Two Arms (Standard Teleoperation Setup):
|
| 19 |
+
|
| 20 |
+
| Part | Amount | Unit Cost (US) | Buy US | Unit Cost (EU) | Buy EU | Unit Cost (RMB) | Buy CN |
|
| 21 |
+
| ------------------------------------------- | ------ | -------------- | --------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------- |
|
| 22 |
+
| STS3215 Servo<sup>[1](#myfootnote1)</sup> | 12 | $15 | [Alibaba](https://www.alibaba.com/product-detail/6PCS-7-4V-STS3215-Servos-for_1600523509006.html) | 13€ | [Alibaba](https://www.alibaba.com/product-detail/6PCS-7-4V-STS3215-Servos-for_1600523509006.html) | ¥97.72 | [TaoBao](https://item.taobao.com/item.htm?id=712179366565&skuId=5268252241438) |
|
| 23 |
+
| Motor Control Board | 2 | $11 | [Amazon](https://www.amazon.com/Waveshare-Integrates-Control-Circuit-Supports/dp/B0CTMM4LWK/) | 12€ | [Amazon](https://www.amazon.fr/-/en/dp/B0CJ6TP3TP/) | ¥27 | [TaoBao](https://detail.tmall.com/item.htm?id=738817173460&skuId=5096283384143) |
|
| 24 |
+
| USB-C Cable 2 pcs | 1 | $7 | [Amazon](https://www.amazon.com/Charging-etguuds-Charger-Braided-Compatible/dp/B0B8NWLLW2/?th=1) | 7€ | [Amazon](https://www.amazon.fr/dp/B07BNF842T/) | ¥23.9\*2 | [TaoBao](https://detail.tmall.com/item.htm?id=44425281296&skuId=5611379016222) |
|
| 25 |
+
| Power Supply<sup>[2](#myfootnote2)</sup> | 2 | $10 | [Amazon](https://www.amazon.com/Facmogu-Switching-Transformer-Compatible-5-5x2-1mm/dp/B087LY41PV/) | 13€ | [Amazon](https://www.amazon.fr/-/en/dp/B01HRR9GY4/) | ¥22.31 | [TaoBao](https://item.taobao.com/item.htm?id=544824248494&skuId=4974994129990) |
|
| 26 |
+
| Table Clamp 4pcs | 1 | $9 | [Amazon](https://www.amazon.com/TAODAN-Trigger-Ratchet-Woodworking-Processes/dp/B0DJNXF8WH?rps=1&sr=1-18) | ¥9.2 | [TaoBao](https://detail.tmall.com/item.htm?id=801399113134&skuId=5633627126649) |
|
| 27 |
+
| Screwdriver Set<sup>[3](#myfootnote3)</sup> | 1 | $6 | [Amazon](https://www.amazon.com/Precision-Phillips-Screwdriver-Electronics-Computer/dp/B0DB227RTH) | 10€ | [Amazon](https://www.amazon.fr/dp/B08ZXVMVYD/) | ¥14.9 | [TaoBao](https://detail.tmall.com/item.htm?id=675684600845&skuId=4856851392176) |
|
| 28 |
+
| Total | --- | $232 | --- | 244€ | --- | ¥1343.16 | --- |
|
| 29 |
+
|
| 30 |
+
#### Parts for One Arm:
|
| 31 |
+
|
| 32 |
+
| Part | Amount | Unit Cost (US) | Buy US | Unit Cost (EU) | Buy EU | Unit Cost (RMB) | Buy CN |
|
| 33 |
+
| ------------------------------------------- | ------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------- |
|
| 34 |
+
| STS3215 Servo<sup>[1](#myfootnote1)</sup> | 6 | $14 | [Alibaba](https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html?spm=a2747.product_manager.0.0.11be71d2ARQb82) | 13€ | [Alibaba](https://www.alibaba.com/product-detail/Top-Seller-Low-Cost-Feetech-STS3215_1600999461525.html?spm=a2747.product_manager.0.0.11be71d2ARQb82) | ¥97.72 | [TaoBao](https://item.taobao.com/item.htm?id=712179366565&skuId=5268252241438) |
|
| 35 |
+
| Motor Control Board | 1 | $11 | [Amazon](https://www.amazon.com/Waveshare-Integrates-Control-Circuit-Supports/dp/B0CTMM4LWK/) | 12€ | [Amazon](https://www.amazon.fr/-/en/dp/B0CJ6TP3TP/) | ¥27 | [TaoBao](https://detail.tmall.com/item.htm?id=738817173460&skuId=5096283384143) |
|
| 36 |
+
| USB-C Cable 2 pcs | 1 | $7 | [Amazon](https://www.amazon.com/Charging-etguuds-Charger-Braided-Compatible/dp/B0B8NWLLW2/?th=1) | 7€ | [Amazon](https://www.amazon.fr/dp/B07BNF842T/) | ¥23.9 | [TaoBao](https://detail.tmall.com/item.htm?id=44425281296&skuId=5611379016222) |
|
| 37 |
+
| Power Supply<sup>[2](#myfootnote2)</sup> | 1 | $10 | [Amazon](https://www.amazon.com/Facmogu-Switching-Transformer-Compatible-5-5x2-1mm/dp/B087LY41PV/) | 13€ | [Amazon](https://www.amazon.fr/-/en/dp/B01HRR9GY4/) | ¥22.31 | [TaoBao](https://item.taobao.com/item.htm?id=544824248494&skuId=4974994129990) |
|
| 38 |
+
| Table Clamp 2pcs | 1 | $5 | [Amazon](https://www.amazon.com/Mr-Pen-Carpenter-Clamp-6inch/dp/B092L925J4/) | 8€ | [Amazon](https://www.amazon.fr/-/en/dp/B08HZ1QRBF/) | ¥7.8 | [TaoBao](https://detail.tmall.com/item.htm?id=738636473238&skuId=5505939904942) |
|
| 39 |
+
| Screwdriver Set<sup>[3](#myfootnote3)</sup> | 1 | $6 | [Amazon](https://www.amazon.com/Precision-Phillips-Screwdriver-Electronics-Computer/dp/B0DB227RTH) | 10€ | [Amazon](https://www.amazon.fr/dp/B08ZXVMVYD/) | ¥14.9 | [TaoBao](https://detail.tmall.com/item.htm?id=675684600845&skuId=4856851392176) |
|
| 40 |
+
| Total | --- | $123 | --- | 128€ | --- | ¥682.23 | --- |
|
| 41 |
+
|
| 42 |
+
## Printing the Parts
|
| 43 |
+
|
| 44 |
+
A variety of 3D printers are acceptable to print the parts necessary of the follower and leader arm. Follow the steps below to ensure a good print.
|
| 45 |
+
|
| 46 |
+
1. Choose a printer: The STL files provided ready to print on many FDM printers. Below are the tested and suggested settings though others may work.
|
| 47 |
+
1. Material: PLA
|
| 48 |
+
2. Nozzle Diameter and Precision: 0.4mm nozzle diameter at 0.2mm layer height or 0.6mm nozzle at 0.4mm layer height.
|
| 49 |
+
3. Infill Density: 13%
|
| 50 |
+
4. Sample Printers: [Prusa MINI+](https://www.prusa3d.com/product/original-prusa-mini-semi-assembled-3d-printer-4/), [UP Plus 2](https://shop.tiertime.com/product/tiertime-up-plus-2-3d-printer/), [Creality Ender 3](https://www.amazon.com/Comgrow-Creality-Ender-Aluminum-220x220x250mm/dp/B07BR3F9N6/), [Bambu Lab A/P/X-series](https://bambulab.com)
|
| 51 |
+
2. Set up the printer
|
| 52 |
+
1. Setup and Takedown
|
| 53 |
+
1. Ensure that the printer is calibrated and the bed level is correctly set using the printer specific instructions.
|
| 54 |
+
2. Clean the print bed, making sure it is free from dust, or grease. If cleaning the bed using water, or other liquid, dry the bed.
|
| 55 |
+
3. If your printer recommends it, use a standard glue stick and apply a thin, even layer of glue across the print area of the bed. Avoid clumping or uneven application.
|
| 56 |
+
4. Load the printer filament using printer specific instructions.
|
| 57 |
+
5. Ensure the printer settings match the ones suggested above (most printers have multiple settings so choose the ones that most closely match).
|
| 58 |
+
6. Set for supports everywhere but ignore slopes greater than 45 degrees to the horizontal.
|
| 59 |
+
7. There should be no supports in the screw holes with horizontal axes.
|
| 60 |
+
3. Check Printer Accuracy
|
| 61 |
+
1. In the [Gauges](/stl_files_for_3dprinting/Gauges) folder, there are two types of gauges, one to check the size of print against a standard 4x2 lego block and one against a STS3215 servo.
|
| 62 |
+
1. If you have a STS3215 servo, print:
|
| 63 |
+
1. [Gauge Zero](/stl_files_for_3dprinting/Gauges/Gauge_0.STL)
|
| 64 |
+
2. [Gauge Tight](/stl_files_for_3dprinting/Gauges/Gauge_tight_1.STL)
|
| 65 |
+
2. If you have a standard lego block, print:
|
| 66 |
+
1. [Gauge Zero](/stl_files_for_3dprinting/Gauges/Lego_Size_Test_02_zero.STL)
|
| 67 |
+
2. [Gauge -0.1](/stl_files_for_3dprinting/Gauges/Lego_Size_Test_02_minuspoint1.STL)
|
| 68 |
+
2. Test the gauge 0 against your given object (Lego or Servo). The fit should be similar to this [tutorial](https://youtu.be/dss8E3DG2rA).
|
| 69 |
+
3. If the fit is appropriate, go onto Step 4, otherwise, change your printer settings and try again or create an issue.
|
| 70 |
+
4. Print the parts: All the parts for the leader or follower are contained in a single file, correctly orientated for z upwards to minimize supports.
|
| 71 |
+
|
| 72 |
+
1. For printer bed sizes of 220mmx220mm (such as the Ender), print these files:
|
| 73 |
+
1. [Follower](/stl_files_for_3dprinting/Follower/Print_Follower_SO_ARM100_08k_Ender.STL)
|
| 74 |
+
2. [Leader](/stl_files_for_3dprinting/Leader/Print_Leader_SO_ARM100_08k_Ender.STL)
|
| 75 |
+
2. For printer bed sizes of 205mm x 250mm (such as the Prusa/Up):
|
| 76 |
+
1. [Follower](/stl_files_for_3dprinting/Follower/Print_Follower_SO_ARM100_08k_UP_Prusa.STL)
|
| 77 |
+
2. [Leader](/stl_files_for_3dprinting/Leader/Print_Leader_SO_ARM100_08k_UP_Prusa.STL)
|
| 78 |
+
3. For Bambu Lab A-series:
|
| 79 |
+
1. Follower ([Part 1](/stl_files_for_3dprinting/Follower/Print_Follower_SO_ARM100_08k_UP_BambuLabA1Mini_part1.STL)) ([Part 2](/stl_files_for_3dprinting/Follower/Print_Follower_SO_ARM100_08k_UP_BambuLabA1Mini_part2.STL))
|
| 80 |
+
2. Leader ([Part 1](/stl_files_for_3dprinting/Leader/Print_Leader_SO_ARM100_08k_UP_BambuLabA1Mini_part1.stl)) ([Part 2](/stl_files_for_3dprinting/Leader/Print_Leader_SO_ARM100_08k_UP_BambuLabA1Mini_part2.stl))
|
| 81 |
+
4. For Bambu Lab P-series & X-series
|
| 82 |
+
1. [Follower](/stl_files_for_3dprinting/Follower/Print_Follower_Bambu_P1P.3mf)
|
| 83 |
+
2. [Leader](/stl_files_for_3dprinting/Leader/Print_Leader_Bambu_P1P.3mf)
|
| 84 |
+
|
| 85 |
+
5. Take Down
|
| 86 |
+
1. After the print is done, use a putty knife to scrape the parts off the print bed.
|
| 87 |
+
2. Remove any support material from parts.
|
| 88 |
+
|
| 89 |
+
### Don't Own a 3D printer?
|
| 90 |
+
Go here: [Printing services](./3DPRINT.md)
|
| 91 |
+
|
| 92 |
+
## Assembly tutorial, data collection and AI training
|
| 93 |
+
|
| 94 |
+
Follow the [complete guide of LeRobot](https://huggingface.co/docs/lerobot/so100).
|
| 95 |
+
|
| 96 |
+
It points to [our video tutorial](https://www.youtube.com/watch?v=FioA2oeFZ5I&ab_channel=HuggingFace).
|
| 97 |
+
Note: we removed to auto-calibration at the end in favor of manual calibration which is more robust.
|
SO-ARM100/STEP/SO100/Base_08q.step
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b2351aa80e4da4f58b7379191485376d111bd67c92dfa0d536029f7794a699a0
|
| 3 |
+
size 1146248
|