Project Description
3-DOF Robotic Arm
A compact robotic arm developed from the mechanical assembly through to its ROS 2 model. Base yaw, shoulder pitch, and elbow pitch position an actuated gripper for lightweight pick-and-place.
Design targets
- Reach and transfer a lightweight object with three controlled joints and an actuated gripper.
- Size each actuator from calculated joint loads rather than reusing one servo everywhere.
Mechanical Design
The SolidWorks assembly organizes the base, waist, structural links, servo models, and geared gripper as separate subsystems. Mass properties from the PLA parts supply the moving masses and center-of-mass locations for the torque analysis.
A horizontal-load calculation with a 10 g payload and a 2.0 safety factor sized the shoulder and elbow servos: 7.65 kgf-cm and 3.88 kgf-cm respectively, making the shoulder the limiting joint.
ROS 2 Robot Model
A five-link URDF/Xacro chain defines the three revolute joints with their origins, axes, limits, and transforms, on a CAD-derived 120 mm shoulder-to-elbow spacing. The full SolidWorks assembly now drives the model: nine unique meshes covering the base, waist, upper arm, forearm, wrist, and gripper, with the gear, connecting-link, and finger parts each instantiated twice from the STEP assembly.
Every mesh was checked for scale, orientation, watertightness, and origin before integration, and SolidWorks-to-ROS axis differences are corrected with URDF origin rotations rather than by editing the CAD. A Python launch file starts robot_state_publisher, the joint-state GUI, and RViz as one system; the recording below shows the base, shoulder, and elbow responding to joint-state controls.
Hardware and Validation Plan
The CAD, torque analysis, parts and power plan, and ROS 2 model are complete. The build runs MG996R servos at the shoulder and elbow and SG90s at the wrist and gripper, driven by an ESP32 and a PCA9685 PWM driver on a separate 6 V servo rail with common grounding and fused distribution.
Next is splitting the rigid wrist and gripper group into actuated joints, adding collision geometry and measured inertia per link, then a ros2_control configuration to command the servos in simulation before connecting hardware.
Skills
Technical
Professional
Explore the Full Project
Review the SolidWorks files, torque-sizing workbook, parts list, ROS 2 package, development log, and project workflow on GitHub.
View the project on GitHub