6-DOF Desktop Robotic Arm with ROS 2 & MoveIt 2
Build a precision 6-axis robotic manipulator using smart serial bus servos, 3D printed cycloidal gearboxes, and MoveIt 2 motion planning.
A comprehensive engineering build guide for creating an industrial-style 6-axis desktop robotic arm. Features custom 3D printed mechanical links, daisy-chained RS-485/half-duplex UART smart servos, forward/inverse kinematics in C++, and integration with MoveIt 2 and RViz 2.
Bill of Materials (BOM) & Components
| Component | Specifications | Qty | Estimated Cost |
|---|---|---|---|
| Feetech STS3215 / Dynamixel XL430 Smart Servos | 19kg.cm torque, 12V serial bus with magnetic encoders | 6 | $210 |
| ESP32-S3 or Raspberry Pi 5 Companion Computer | Host ROS 2 nodes & micro-ROS bus transceiver | 1 | $65 |
| 3D Printed Chassis Parts (PETG / Polycarbonate) | High-rigidity joint links with embedded 608RS bearings | 1 | $30 |
| 12V 10A DC Power Supply & High-Current Distribution Board | Regulated switching power with flyback capacitor bank | 1 | $28 |
| M3 / M4 Stainless Steel Hardware & Brass Heat-Set Inserts | Assorted hex bolts, locknuts, M3 threaded inserts | 1 | $15 |
Electrical & Architecture Summary
Serial half-duplex UART daisy-chain connects all 6 servos to an ESP32 micro-ROS bridge. The ESP32 communicates over high-speed USB-serial (921600 baud) to the ROS 2 MoveIt 2 controller running on the host Ubuntu computer.
Step-by-Step Assembly & Configuration
3D Printing Structural Frames & Press-Fitting Bearings
Print all link models with at least 5 perimeters and 40% gyroid infill using PETG or Carbon-Fiber PETG to withstand torsional joint moments. Press-fit 608RS dual ball bearings into joint pivots.
- Calibrate 3D printer dimensional accuracy using test cubes.
- Print Base, Shoulder, Elbow, Forearm, Wrist, and Gripper links.
- Install M3 brass heat-set inserts using a soldering iron set to 220°C.
Wiring Power Distribution & Serial Servo Bus ID Configuration
Assign unique hardware IDs (1 to 6) and baud rates (1,000,000 baud) to each servo before mechanical assembly using the configuration software.
- Connect each servo individually to the USB-to-UART programmer.
- Set IDs sequentially from Base (ID 1) to End-Effector Gripper (ID 6).
- Calibrate hardware zero-angle offsets.
URDF Modeling & MoveIt 2 Configuration Package
Generate the complete URDF/Xacro kinematic description with accurate joint limits and inertial properties, then launch the MoveIt Setup Assistant.
- Create `arm_description` package with STL visual and simplified collision meshes.
- Configure the `arm` planning group in MoveIt Setup Assistant using the KDL kinematic solver.
- Define standard named poses (`home`, `ready`, `pick_pose`, `place_pose`).
ROS 2 Control Loop & Real-Time Pick and Place Testing
Deploy the joint_trajectory_controller and execute autonomous path planning with collision avoidance in RViz 2.
- Launch `ros2 launch myrobopath_arm_moveit moveit.launch.py`.
- Drag the 6-DOF interactive marker in RViz and click Plan & Execute.
- Verify that the physical arm mirrors simulated trajectory with zero joint oscillations.