# Robot Arm

## Overview
I am building / setting up a low-cost real robot arm platform to implement and test robotics papers in the real world.

This includes:
- an **SO100-style / hobby-servo arm direction**
- a broader custom robot-arm build workflow
- using the platform for robot policy experiments, calibration, and data collection

The point is not just to own a robot arm. The point is to build a practical research platform I can iterate on quickly.

## Why I am doing this
I realized I need to become strong at **real-world robot policy training**, not just simulation or abstract model ideas.

My plan is to:
- read the core robot policy papers deeply
- implement them
- test ideas on real hardware
- use a cheap arm so iteration is accessible

This robot arm is part of that transition from 3D research into hands-on robotics.

## Current status
- I bought an **SO100 arm** and have been getting it set up
- I am also interested in a more custom hobby-servo robot-arm build direction
- I want to use the arm as a real-world platform for implementing papers and collecting data
- I have been steadily making physical progress rather than waiting for a perfect final design

## Broader hardware philosophy
I care about:
- fast iteration
- affordability
- being able to modify parts myself
- being able to print custom components
- having a platform that is "research friendly" rather than polished consumer hardware

## Hardware / build direction
A lot of this is based around hobby servos and custom printed parts.

Known components / direction:
- Feetech / hobby-servo style components
- STS3215-style servo workflow has been part of my build thinking
- need for longer servo cables / extension solutions when link lengths increase
- focus on arm geometry, mounts, cable practicality, and real usability

## CAD / design workflow
My preferred workflow is pragmatic rather than overly formal.

### General process
I usually think in this order:
1. design around the motor first
2. create the motor mount
3. add arm links
4. assemble joints
5. iterate on fit, strength, and usability

### Tools
- **Blender**: preferred for quick modeling, visual prototyping, booleans, and mesh editing
- more formal CAD tools are useful for precise parametric parts, but I am especially comfortable moving quickly in Blender

### Typical mount workflow
For a servo-based part:
- import the servo mesh / STEP-derived mesh
- create a larger block for the mount
- boolean-difference the servo cavity
- add clearance
- add screw holes / counterbores
- export STL for printing

## Printing workflow
I use 3D printing as a core part of the process.

Known printers:
- **Bambu X1 Carbon**
- **Bambu A1 Mini**

General printing priorities:
- parts that fit snugly but are not impossible to assemble
- enough stiffness to avoid wobble / flex
- avoid unnecessary weight
- iterate quickly when a part fails or is awkward

## Practical print/design notes
Important considerations:
- leave tolerance / clearance around inserted parts
- maintain enough wall thickness around screw holes
- think about stiffness vs weight
- mounts and base structures should avoid flex, especially if calibration matters
- bad first layers / adhesion issues can waste a lot of time, so print reliability matters

## Calibration / perception integration
This arm is not just a mechanical object. It is part of a perception + control stack.

I care about integrating:
- camera-based robot perception
- fiducials / ArUco markers
- calibration-friendly geometry
- simulation models that match the real robot

I have also thought about:
- adding marker holders or fiducial-friendly surfaces to the robot base
- making printed parts that allow stable marker placement
- designing the robot and its accessories so calibration is easier and more repeatable

## Simulation / software integration
I want the robot to exist in both:
- the real world
- simulation

Typical workflow I like:
- design parts
- export meshes
- hand-author or edit URDF / MuJoCo / simulator descriptions
- keep the simulated geometry aligned with the real build

This matters because I want to:
- test ideas in sim
- compare against real hardware
- maintain a coherent development loop

## Research use cases
I want to use the robot arm for:
- implementing core robot policy papers
- data collection for imitation learning
- testing viewpoint robustness ideas
- calibration experiments
- evaluating policy representations like PARA on real hardware

## Design priorities
The arm should be:
- cheap enough to modify freely
- sturdy enough to be usable
- simple enough to repair
- open enough that I can redesign pieces
- good enough for research, not necessarily polished like a commercial robot

## Current / likely bottlenecks
- physical setup and assembly
- cable length / connector practicality
- mount stiffness
- getting simulation and real geometry aligned
- making calibration easy
- getting from “assembled hardware” to “usable research pipeline”

## Immediate next steps
- finish the SO100 / hobby-servo setup enough for reliable experiments
- finalize mechanical parts that are still awkward or weak
- solve cable / connector extensions where needed
- make the arm calibration-friendly
- connect it cleanly to the perception / policy pipeline
- start implementing and testing real-world policy papers on it

## Agent notes
When helping me on robot-arm tasks:
- optimize for rapid iteration, not perfection
- prioritize parts that are printable and easy to modify
- remember this is a research platform
- think jointly about mechanics, calibration, and policy use
- prefer solutions that reduce friction from idea -> print -> test -> deploy
