mirror of
https://github.com/TheRobotStudio/SO-ARM100.git
synced 2026-01-09 07:17:58 -05:00
Merge branch 'main' of https://github.com/TheRobotStudio/SO-ARM100
This commit is contained in:
72
Optional/Overhead_Cam_Mount/README.md
Normal file
72
Optional/Overhead_Cam_Mount/README.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Overhead Camera Installation Guide for SO-100
|
||||
<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" />
|
||||
<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" />
|
||||
<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" />
|
||||
|
||||
## Overview
|
||||
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**.
|
||||
|
||||
|
||||
## Design Goals
|
||||
|
||||
1. Provide overhead view of entire manipulation space
|
||||
2. Support both single follower arm and double follower ("bi-manual") arm setups
|
||||
3. Ensure consistent data across SO-100 arm users through standardized camera positioning and arm spacing (bi-manual)
|
||||
|
||||
## Required Components
|
||||
- **Web Camera** (1) - this is the [recommended model](https://www.amazon.com/dp/B082X91MPP)
|
||||
- **3D-printed parts**
|
||||
- [Arm Base](stl/arm_base.stl) (1 per follower arm)
|
||||
- [Camera Mount Bottom](stl/cam_mount_bottom.stl) (1)
|
||||
- [Camera Mount Top](stl/cam_mount_top.stl) (1)
|
||||
- **M2 Screws** (8) - these are the smaller screws that came with your Feetech servos.
|
||||
|
||||
|
||||
<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" />
|
||||
|
||||
## Assembly Instructions
|
||||
### Step 1: Remove the existing base from the **Webcam**
|
||||
<img height="250" src="https://github.com/user-attachments/assets/89226328-16bf-41e2-b2e2-260352597b61" /> </br>
|
||||
Take the **Webcam** out of its package, and:
|
||||
1. Remove the soft plastic cover from the joint.
|
||||
2. Unscrew/remove the screw in the joint.
|
||||
3. Remove the base from the camera module.
|
||||
|
||||
|
||||
### Step 2: Attach the **Webcam** onto the **Camera Mount Top**
|
||||
<img height="250" src="https://github.com/user-attachments/assets/051ebe6b-9548-47a0-81f7-df60a1ea5fad" /> </br>
|
||||
|
||||
1. Push the **Webcam** into the **Camera Mount Top** by aligning the round joint holes.
|
||||
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.
|
||||
### Step 3: Attach the **Camera Mount Top** to the **Camera Mount Bottom**.
|
||||
<img height="250" src="https://github.com/user-attachments/assets/434e4423-bf8a-4a36-95fb-d3c4283381a9" />
|
||||
|
||||
|
||||
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**.
|
||||
2. Screw an **M2 screw** into each of the 4 holes in the linear joint.
|
||||
### Step 4: Attach the **Arm Base** to the **Camera Mount Bottom**.
|
||||
<img height="250" src="https://github.com/user-attachments/assets/732977ac-dd4a-4289-9d9c-8752c0369ff0"/></br>
|
||||
1. Push the **Arm Base** into the joint lines on the side of the **Camera Mount Bottom**. (Repeat if you have 2 follower arms.)
|
||||
### Step 5: Attach the **SO-100 follower arm** to the **Arm Base**.
|
||||
<img height="250" src="https://github.com/user-attachments/assets/24b4c0ce-e62b-4fd6-963c-09448e7ae6f9" /></br>
|
||||
1. Align the bottom of the **SO-100 follower arm** with the top of the **Arm Base**. (Repeat if you have 2 follower arms.)
|
||||
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.
|
||||
|
||||
### Step 6: Configure Software
|
||||
1. In your software, add your overhead cam, including setting its resolution and FPS.
|
||||
- **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.
|
||||
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).
|
||||
|
||||
<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" />
|
||||
<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>
|
||||
|
||||
### Step 7: (Optional) Add Gripper Cameras
|
||||
<img height="250" src="https://github.com/user-attachments/assets/8e8fbf60-f62e-4d8c-8451-3ca5a864497c"/></br>
|
||||
1. For optimal training data, add [**Gripper Cameras**](../Wrist_Cam_Mount_32x32_UVC_Module) designed specifically alongside this camera mount setup.
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
- Conor Mc Gartoll
|
||||
- Design and R & D
|
||||
- Philip Fung
|
||||
- R & D
|
||||
BIN
Optional/Overhead_Cam_Mount/stl/arm_base.stl
Normal file
BIN
Optional/Overhead_Cam_Mount/stl/arm_base.stl
Normal file
Binary file not shown.
BIN
Optional/Overhead_Cam_Mount/stl/cam_mount_bottom.stl
Normal file
BIN
Optional/Overhead_Cam_Mount/stl/cam_mount_bottom.stl
Normal file
Binary file not shown.
BIN
Optional/Overhead_Cam_Mount/stl/cam_mount_top.stl
Normal file
BIN
Optional/Overhead_Cam_Mount/stl/cam_mount_top.stl
Normal file
Binary file not shown.
56
Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/README.md
Normal file
56
Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module/README.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Plug Wrist Camera (MF) Installation Guide for SO-100
|
||||
|
||||
<img height="300" src="https://github.com/user-attachments/assets/139be1c3-d446-4304-b0f4-c90a996789d6" />
|
||||
<img height="300" src="https://github.com/user-attachments/assets/6c2f0f47-9663-4224-ac4e-220d1d71c162" />
|
||||
|
||||
## Overview
|
||||
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**.
|
||||
|
||||
This an adapatation of [Wrist Camera (MF) UVC Module](../Wrist_Cam_Mount_32x32_UVC_Module/)
|
||||
|
||||
## Comparison to Main Design
|
||||
#### Advantages:
|
||||
- smaller
|
||||
- fewer parts
|
||||
- no additional screws/hardware needed to attach camera
|
||||
- no removal/replacement of existing pieces
|
||||
- easy removal/replacement
|
||||
|
||||
#### Disdvantages:
|
||||
- still require to adapt to new camera
|
||||
|
||||
## Required Components
|
||||
### Hardware:
|
||||
- **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
|
||||
- [3D-printed Plugin camera attachment](stl/SO-ARM100_Plug_camera.stl) (1)
|
||||
- I recommend printing it as oriented in the STL using tree supports. 40% infill is recommended to increase sturdiness and avoid wobbling
|
||||
- **M2 Screws** (8) - these are the smaller screws that came with your Feetech servos.
|
||||
|
||||
|
||||
<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" />
|
||||
|
||||
## Assembly Instructions
|
||||
### Step 1: Plug the new camera module to the Gripper
|
||||
|
||||
2. 3D print the **Plugin camera attachment**.
|
||||
|
||||
3. Attach the **Plugin camera attachment**.
|
||||
1. The hole fit into the [Gripper hole](../../STEP/Follower_specific/Moving_Jaw_08d%20v1.step)
|
||||
|
||||
4. Secure it with the M2 screws
|
||||
|
||||
|
||||
|
||||
|
||||
### Step 2: Install the Camera
|
||||
1. Take out the **Camera Module**.
|
||||
2. Align the 4 holes of the **Camera Module** with the **Moving Jaw Replacement**, and attach using 4 **M2 Screws**.
|
||||
|
||||
<img height="300" src="https://github.com/user-attachments/assets/ea5af652-9311-44c7-8ae8-525f42cb4703" />
|
||||
|
||||
|
||||
### Step 3: Configure Software and Adjust Focus
|
||||
1. In your software, set your resolution and FPS.
|
||||
- **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.
|
||||
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).
|
||||
- **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.
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
48
README.md
48
README.md
@@ -103,25 +103,49 @@ Follow the [complete guide of LeRobot](https://github.com/huggingface/lerobot/bl
|
||||
It points to [our video tutorial](https://www.youtube.com/watch?v=FioA2oeFZ5I&ab_channel=HuggingFace).
|
||||
Note: we removed to auto-calibration at the end in favor of manual calibration which is more robust.
|
||||
|
||||
## Other
|
||||
## Optional Hardware
|
||||
|
||||
### Hardware
|
||||
#### Back Plate Motor Attachment
|
||||
You can [attach the WaveShare servo bus controller to you back plate](Optional/Backplate_ServoBus/WaveShare_Mounting_Plate.stl) (with smaller holes).
|
||||
|
||||
**Wrist Cameras**
|
||||
| Webcam (Vinmooog) | 32x32mm UVC Module | RealSense™ D405 |
|
||||
| --- | ---| --- |
|
||||
| <img src="media/cam_mount2.jpg" height="150" > | <img height="150" src="media/UVC_cam_mount.jpeg" /> | <img src="media/d405_mount.jpg" height="150"/> |
|
||||
| [Instructions](Optional/Wrist_Cam_Mount_Vinmooog_Webcam) | [Instructions](Optional/Wrist_Cam_Mount_32x32_UVC_Module) | [Instructions](Optional/Wrist_Cam_Mount_RealSense_D405) |
|
||||
<img height="150" src="media/backplate_motor_attachment.png" />
|
||||
|
||||
**Mount helper**: You can print this part to make your so100 easier to assemble here: `Optional/Mount_Helper/stl/mount_helper v2.stl`
|
||||
#### Mount Helper
|
||||
Print this [mount helper](Optional/Mount_Helper/README.md) to make your SO-100 easier to assemble.
|
||||
|
||||
**Tactile sensing**: You can find an AnySkin tactile sensor for the SO100 here: [WOWROBO](https://shop.wowrobo.com/products/enhanced-anyskin-premium-crafted-editionwowskin)
|
||||
<img height="150" src="media/mount_helper.png" />
|
||||
|
||||
**Raised leader base**: You can raise the base of leader arm for easier teleoperation near the ground plane by printing this extension: `Optional/Raised_Leader_Base_SO100/SO100 Leader Base Extension.stl`
|
||||
#### Overhead Camera Mount
|
||||
You can [mount an overhead camera](Optional/Overhead_Cam_Mount/README.md) for one or two (bi-manual) arm setups.
|
||||
|
||||
- **Back plate motor attachement**: You can attach the WaveShare servo bus controller to you back plate (with smaller holes) by printing it here: `Optional/Backplate_ServoBus/WaveShare_Mounting_Plate.stl`
|
||||
<img height="150" src="https://github.com/user-attachments/assets/a652e133-8672-448d-baa0-bdd494a0a515" />
|
||||
|
||||
### Software
|
||||
#### Raised Leader Base
|
||||
You can [raise the base of leader arm](Optional/Raised_Leader_Base_SO100/SO100%20Leader%20Base%20Extension.stl) for easier teleoperation near the ground plane.
|
||||
|
||||
<img height="150" src="media/raised_leader_base.png" />
|
||||
|
||||
#### Tactile Sensing
|
||||
You can find an AnySkin tactile sensor for the SO-100 at [WOWROBO](https://shop.wowrobo.com/products/enhanced-anyskin-premium-crafted-editionwowskin).
|
||||
|
||||
<img height="150" src="media/tactile_sensor_anyskin.png" />
|
||||
|
||||
#### Wrist Cameras
|
||||
| Webcam (Vinmooog) | 32x32mm UVC Module | 32x32mm UVC Module (Plugin) | RealSense™ D405 |
|
||||
| --- | ---| --- | --- |
|
||||
| <img src="media/cam_mount2.jpg" height="150" > | <img height="150" src="media/UVC_cam_mount.jpeg" /> | <img height="150" src="media/UVC_cam_mount_plugin.jpg" /> | <img src="media/d405_mount.jpg" height="150"/> |
|
||||
| [Instructions](Optional/Wrist_Cam_Mount_Vinmooog_Webcam) | [Instructions](Optional/Wrist_Cam_Mount_32x32_UVC_Module) | [Instructions](Optional/Wrist_Cam_Plug_Mount_32x32_UVC_Module) | [Instructions](Optional/Wrist_Cam_Mount_RealSense_D405) |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Optional Software
|
||||
|
||||
Check out this Handy [URDF viewer](https://gkjohnson.github.io/urdf-loaders/).
|
||||
|
||||
|
||||
BIN
media/UVC_cam_mount_plugin.jpg
Normal file
BIN
media/UVC_cam_mount_plugin.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
BIN
media/backplate_motor_attachment.png
Normal file
BIN
media/backplate_motor_attachment.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
BIN
media/mount_helper.png
Normal file
BIN
media/mount_helper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 458 KiB |
BIN
media/raised_leader_base.png
Normal file
BIN
media/raised_leader_base.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
BIN
media/tactile_sensor_anyskin.png
Normal file
BIN
media/tactile_sensor_anyskin.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
Reference in New Issue
Block a user