Victor Stepanov

Roboticist

Pick-and-Place Robot Simulation

Simulated mobile manipulation using inverse kinematics, PI control, and trajectory planning.

🤖 Overview

As part of the Robotic Manipulation course at Northwestern University, I completed a solo capstone project that pushed me to simulate a complete robotic pick-and-place task—from kinematics to feedback control.

I was driven by a desire to better understand how planners and controllers work together in robotic manipulation. I didn’t just want to program a robot to move—I wanted to build the full pipeline: reference trajectory generation, control architecture, inverse kinematics, and simulation integration.


🎯 Objectives

The goal was to simulate a KUKA youBot mobile manipulator with mecanum wheels and a 5-DOF arm. The robot had to:

  • Navigate to a target block,
  • Grasp the block,
  • Transport it to a new location, and
  • Place it down—all autonomously.

The project needed to operate within a physics-based simulation environment - CoppeliaSim.


⚙️ What I Built

  • Kinematic Modeling & Odometry:
    • Simulated both base and arm motion using Euler integration.
    • Modeled a 13-DOF configuration space (chassis, joints, and gripper).
  • Trajectory Generation:
    • Computed an 8-segment reference trajectory for the end-effector using a mix of Cartesian paths and Screw Trajectory interpolation.
  • Feedback Control:
    • Designed a hybrid feedforward + PI controller to track the reference trajectory under physical simulation constraints.
    • Tuned gains to stabilize grasping and minimize pose error throughout the motion.
  • Inverse Kinematics:
    • Implemented a Jacobian pseudoinverse solver to compute chassis and joint velocities needed to follow the trajectory.
  • Simulation Integration:
    • Exported a detailed CSV file of robot poses per timestep to CoppeliaSim.
    • Verified and debugged the robot’s behavior in the simulator frame-by-frame.

✅ Outcome

The system successfully executed a full pick-and-place task in simulation: navigating, grasping, transporting, and placing the object at the target destination.

More importantly, this project gave me hands-on experience with the control loop between motion planning and low-level actuation. I developed a much stronger intuition for how reference trajectories are tracked in practice—and where things break when timing, kinematics, or actuation limits are overlooked.

If I were to extend the project further, I would add:

  • Joint limits and self-collision avoidance,
  • A dynamic C-space with obstacles, and
  • Integration with a motion planning algorithm like RRT or PRM.

This project helped bridge the gap between theory and application—and laid foundational insights I now apply in real-world robotics work.