Skip to main content

Command Palette

Search for a command to run...

Implementation of a Pick-and-Place Task with a 6-Axis Robot

Published
2 min read

Related Post:

In this post, I will demonstrate a simple pick-and-place operation using a UR5e robotic arm. The sequence follows a standard workflow: starting from the home position, moving to the red box, grasping it, transferring it to the target location, and finally releasing it.

Since the UR5e features the updated offset wrist design (unlike older models), I performed some calibration for accuracy. However, please note that there is still a slight margin of error in the final movements.

This image below

The image above shows the robot's home position. First, we calculate \(\theta_1\) using the base and target coordinates. During this step, a calibration is applied based on Link 5, which serves as the virtual wrist center. Then, \(\theta_2\) and \(\theta_3\) are derived using the Law of Cosines, with a slight compensation applied to the height value.

After moving to the calculated position and grasping the box, the next coordinates are re-calculated using the same method for the transfer and release. Throughout the process, the state of each step is recorded, and subsequent commands are executed based on the displacement and the gripping force.

Below is an animation demonstrating the full pick-and-place workflow.

Post-Implementation Review

Since the UR5e doesn't have the traditional wrist design, I had to spend quite a bit of time studying and applying various calibrations. While the results weren't perfectly precise, it was a deeply rewarding experience because I learned so much by tackling the challenges head-on.

You can find the complete simulation source code here.