Overview
The Mini-Arm is a portable, miniature 6-DOF robotic arm that’s 95% 3D-printable and costs under $100 to build. Running on a Raspberry Pi Pico microcontroller with CircuitPython, it features an internal inverse kinematics solver—no external computer needed for basic operation!
Key Features
- Raspberry Pi Pico 2 - Cost-effective microcontroller with CircuitPython
- Internal IK Solver - Handles joint calculations on-device using NumPy
- 95% 3D Printable - Only fasteners and servos needed
- Total Cost ≤ $100 - Accessible for education and hobbyists
- Lightweight - Weighs less than 1 lb (~0.3 kg)
- Python API -
MiniArmClientclass for serial communication - ROS2 Integration - MoveIt2 and RViz2 visualization packages
Available Commands
movemotor MOTOR VALUE | Move motor to absolute position (deg)
set_pose [X,Y,Z,R,P,Y] | Cartesian end-effector control
get_pose | Read current position & orientation
set_gripper STATE | Open/close gripper
home | Return to home position
trajectory PATTERN | Execute predefined trajectories
Quick Start
from mini_arm import MiniArmClient
# Connect to Mini-Arm
client = MiniArmClient(port='COM3', baudrate=9600, verbose=True)
# Send commands
client.send('home')
client.send('set_pose:[0.135,0.0,0.22]')
client.send('set_gripper:close')
client.disconnect()
Project Structure
Mini-Arm/
├── mini_arm.py # Python client library
├── pico/ # CircuitPython firmware
├── examples/
│ ├── 01_basic_control/
│ ├── 02_trajectory/
│ ├── 02_xbox_teleop/ # Xbox controller control
│ └── 03_analysis/ # Motion capture comparison
├── miniarm_ros/ # ROS2 packages
└── assets/ # Images, docs
Demos
- Xbox Teleop - Real-time joystick control
- Trajectory Execution - Circular and custom paths
- Motion Analysis - Compare commanded vs actual trajectories