Task Workspace of the 3R Robotic System

Background
I completed this project for a robotics course I took during my last semester at Northeastern; It allowed me to exercise knowledge in dissecting a physical robotic system through homogenous transformations, inverse kinematics, and trajectory planning, and developing a electro-mechanical robotic system complete with modes of actuation (eg. stepper motors) and control schemes (eg. PID). 



Objective
The goal of this project was to design this robot so that it can perform a pick-and-place task from Location 1 to Location 2 without touching the orange obstacles in the environment as shown in the image above. 



Variables, Assumptions, and Design Constraints
1.  The dimensions of the robot were given as: 100 cm, 50 cm, and 40 cm for Links 1, 2, and 3, respectively. 
2.  It's assumed that the object to be picked up is a sphere with a diameter of 10 cm, and that the gripper is small enough that  it can go in between the obstacles without touching them. 
3.  The robot can't touch the obstacles at any point during the pick-and-place task, and the 3rd Link must reach a vertical  configuration at the time of pick up and drop off.

Design Process
The project was divided into 2 parts

Part 1
The first part of the project focused on analyzing the robot with inverse kinematics to find the angle measures of each link (q1, q2, q3) that are needed to perform the pick-and-place task while adhering to the design constraints mentioned above.

  What I did   

• Created a MATLAB script that calculated the link angle measures using inverse kinematics at the pick up and drop off locations
• Built a physical model of the robot in Simscape, input the angle measures into each revolute joint of the links, and simulated the robot's geometry at the start and end locations of the pick-and-place task



Code for Part 1 including Inverse Kinematics

Part 2
Continuing off of the work done in Part 1, the second part of the project focused on building a trajectory for the robot travelling from Location 1 to Location 2 and applying it to a complete electro-mechanical robotic system in Simulink. 

  What I did   

• Built MATLAB code that created a string of angle values for the links as it moves from the pick up to the drop off location
• Expanded the physical model of the robot in Simscape to include DC motors and power supplies that drive each link, converting the angle measurements into torques and voltages, and simulated the robot completing the pick-and-place task
• Incorporated closed-loop control with PID control to tune the "actual" or experimental angle values so that they are closely aligned with the desired angle values


Code for Part 2 including Trajectory and Inverse Kinematics function

Final Result

Through completing each part, I was able to simulate a 3R robot completing the pick-and-place task and satisfies the design constraints. 

What I Learned
How to build a robotic system in Simscape complete with physical components and electronics
How to analyze a robotic system with inverse kinematics using MATLAB
Path-planning and building a trajectory using MATLAB
Understand the relationship between mechanical and electrical quantities in the context of driving robotic systems 

Pick-and-Place Simulation (Desired Behavior)

Skills Developed
MATLAB
Simscape & Simulink
Analyzing robotic systems
Controls and implementing closed-loop feedback 



Pick-and-Place Simulation (Actual Behavior)

Project Gallery
Location 1 "Pick Up" Angle Measures
Location 1 "Pick Up" Angle Measures
Simulation of Robot Geometry (blue = location 1, green = location 2)
Simulation of Robot Geometry (blue = location 1, green = location 2)
Location 2 "Drop Off" Angle Measures
Location 2 "Drop Off" Angle Measures
Simulink Model (Part 1)
Simulink Model (Part 1)
Simscape Model of 3R Robot with DC motors and Closed-Loop Control
Simscape Model of 3R Robot with DC motors and Closed-Loop Control
Actual vs. Desired Trajectory for Link 1 (theta vs. time)
Actual vs. Desired Trajectory for Link 1 (theta vs. time)
Actual vs. Desired Trajectory for Link 2 (theta vs. time)
Actual vs. Desired Trajectory for Link 2 (theta vs. time)
Actual vs. Desired Trajectory for Link 3 (theta vs. time)
Actual vs. Desired Trajectory for Link 3 (theta vs. time)
Back to Top