Four-lab arc on the Franka Emika Panda, a 7-DOF research manipulator (MEAM 5200, Introduction to Robotics at Penn). By the end I could plan and execute collision-free trajectories through cluttered workspaces, with secondary tasks keeping the arm clear of singularities and joint limits. Every algorithm was validated on the physical Panda, not just in sim.
- Forward kinematics via Denavit-Hartenberg parameters
- Jacobian-based velocity control with singularity handling
- Numerical inverse kinematics with secondary tasks (joint centering, manipulability)
- Motion planning with Artificial Potential Fields and RRT
- Implemented in Python, deployed on the real Panda arm
Lab 4, motion planning
Compared Artificial Potential Fields (APF) against RRT on the Panda in a static-obstacle workspace. APF is cheap but stalls in dense clutter; RRT handles high-dimensional configuration spaces reliably but needs path post-processing to smooth the output.
Lab 3, inverse kinematics with secondary tasks
Numerical IK on the 7-DOF Panda, exploiting the null space of the Jacobian for secondary tasks. Joint centering keeps the arm near a neutral pose during a vertical trace; the manipulability index flags configurations approaching singularities so the controller can back off before it loses authority.
Lab 2, Jacobians and velocity kinematics
Derived the Jacobian from first principles, then used it to track geometric paths (ellipse, figure-8, vertical line) on the real arm. Errors accumulated without secondary tasks, which is exactly what motivated the Lab 3 extension.
ellipse lab 2.mp4
Lab 1, forward kinematics
Homogeneous transformations and Denavit-Hartenberg parameter tables applied to the Panda. First hands-on validation against the physical robot, with self-collision safety as a hard constraint.





























