PUMA 6-DOF Robot Arm - Forward & Inverse Kinematics
A live 3D MATLAB simulator for FK, IK, and joint control.

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.
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++ and OpenCV vision system that estimates a landing perch's 3D position and orientation from one monocular camera. It uses image moments, covariance eigendecomposition, and focal-length triangulation for closed-loop quadrotor control.
RC Fixed-Wing Glider - Servo Actuation & Aerodynamics
Fixed-wing RC glider with two servos for roll and pitch, a brushless DC motor, and an ESC for forward thrust. Flight-tested outdoors.
Interested in this work?
I can walk through the architecture and code during an interview.