PUMA 6-DOF Robot Arm — Forward & Inverse Kinematics
From DH parameters to a live 3D robot simulator — FK, IK, and real-time joint control in MATLAB.
Joint Space
IK Enumeration
Research Lab
Tech Stack
The Problem
Tell a robot arm to reach a point in space, and there isn't just one way to do it — there can be multiple valid joint configurations that all land the arm at the same position. The challenge is figuring out which solution is physically possible, and which ones would snap a joint past its mechanical limit.
The Challenge
Building a correct inverse kinematics solver for a 6-joint robot arm means handling the inherent ambiguity of IK — a single Cartesian target can be reached by multiple joint configurations. The PUMA 762 IK has two sign choices (sqrt can be + or −) for θ1 and θ3, yielding up to 4 distinct solution branches. The solver must enumerate all branches, evaluate the full 6-joint angle set for each, and select the first solution where every joint stays within its physical travel limits.
Architecture & System Design

Robot arm kinematics from Denavit-Hartenberg parameters: forward kinematics calculates end-effector pose from joint angles. Inverse kinematics solver evaluates multiple solution branches respecting physical joint limits. 3D simulator with collision detection.
Forward kinematics uses the standard Denavit-Hartenberg chain: each joint contributes a 4×4 homogeneous transform, and the end-effector pose is the product of all six. Link parameters: a₂=650mm, a₃=0, d₃=190mm, d₄=600mm. The IK solver loops over all 4 sign-combination branches, computing θ1 and θ3 from the geometric decoupling solution, then back-solving θ2 from the joint-2/3 coupled equation, and finally resolving θ4–θ6 from the wrist orientation matrix. The 3D GUI (puma3d.m) renders the full arm model using capsule primitives, with interactive sliders for each joint, a motion trail renderer, and collision detection via capsule-capsule intersection tests.
Code Walkthrough
3-step walk-through of the production implementation — file paths and intent shown above each block.
Results
The simulator correctly solves FK and IK for any reachable workspace point, selecting joint configurations that satisfy all six physical travel limits. The interactive GUI runs in real time, allowing the user to drag joint sliders or click a target position and watch the full arm animate to the solution. Collision detection via capsule-capsule intersection tests flags self-collisions during motion. The project formed the foundation for subsequent robot control research at the University of Utah.
More from University of Utah
Vision-Based Autonomous Quadrotor
MS thesis project: a quadrotor capable of autonomously taking off, navigating, and perching on branch-like structures using only visual feedback — designed for autonomous crop monitoring in agricultural fields.
Multi-Arm Coordination — 2-DOF QUANSER
Dual-arm robotic manipulation system using 2-DOF QUANSER robots with a master-slave architecture — one arm controlling position, the other controlling force — to collaboratively manipulate objects with precision.
Adaptive Backstepping — Indoor Micro-Quadrotor
Nonlinear controller design for an indoor micro-quadrotor with a suspended pendulum mass — a highly unstable configuration. Adaptive backstepping outperformed classical PID in robustness tests across multiple flight regimes.
Sensor-Based SLAM Navigation — iRobot Create
Autonomous mapping and navigation system on an iRobot Create platform using IR rangefinders and servo-mounted sensors for 360° SLAM — with RRT path planning to navigate complex maze environments.
Sampling-Based & Graph-Search Motion Planning
MATLAB implementations of four canonical path-planning algorithms — Dijkstra, A*, PRM, and RRT — applied to a differential-drive robot navigating bitmap maps in configuration space, with real hardware execution on an iRobot Create.
Monocular Depth Estimation for UAV Perch Landing
C++/OpenCV vision system that estimates the 3D position and orientation of a landing perch from a single monocular camera — using image moments, covariance eigendecomposition for attitude, and focal-length triangulation for depth — enabling closed-loop visual servoing on a quadrotor.
RC Fixed-Wing Glider — Servo Actuation & Aerodynamics
Fixed-wing RC glider designed and built from scratch — two servos providing roll and pitch authority via aileron and flap control surfaces, with a brushless DC motor and ESC delivering forward thrust. Flight-tested outdoors.
Interested in this work?
Full architecture walkthrough and code review available during interviews.