ROS Gazebo Simulation
Tower of Hanoi Puzzle Demo
Derive and implement forward and inverse kinematics for a UR3e robot arm in order to solve a block puzzleย
This project was especially engaging because the lecture material aligned perfectly with our lab work, allowing us to apply newly learned math concepts to a real system. Learning linear algebra and immediately using it in practice made for an effective and rewarding experience.
We began with forward kinematics and coordinate frame transformations to establish a foundation. Once we understood these, we explored inverse kinematics and the different techniques roboticists use to handle problems with infinite or no solutions. In the lab, we derived these equations and verified their accuracy by commanding the robot to specific positions and physically measuring the end effector's coordinates. For our project, however, the inverse kinematics were simplified into a geometry problem due to set constraints. Once derived, we could precisely control the robotโs movements.
Robot arms run into singularities frequently
Linear algebra is incredibly powerful
Keep a safe distance from robot arms
Programming physical systems to function predictably and accurately is incredibly fulfilling
Forward Kinematics
The DH table is derived from the 3-axis of each joint and measurements of each link length/distance. Each row in the table represents a linear transformation from the reference frame of one link to the reference frame of the next. The variable ๐ represents the current rotation of each joint. Combining all the transformations with their respective ๐ values results in the position and orientation of the end effector. This method is known as Forward Kinematics.
Inverse Kinematics Derivation
Forward Kinematics are useful to know where the arm will be, but if you want to tell the arm to go somewhere, what are the ๐ values required for each joint? Inverse Kinematics is the method of calculating the angle of each joint in order for the arm to reach a desired position. This process is much more complex than Forward Kinematics, but in this project was simplified to a simple geometric solution.
Close form solution given certain constraints:
Elbow always up position between Links 3 and 5
Pitch and roll of the end effector are fixedย
Link 5 is always parallel to the baseplate
๐5 is always -90
Calculating xyz of cen
Calculating ๐6
Calculating ๐1
Calculating xyz of 3end
Calculating ๐2, ๐3, and ๐4
Note: The output ๐ values from the derived equations were tested by using Forward Kinematics to backcheck the input coordinates
The derived equations were implemented into our code and tested first in a Gazebo simulation and next using the actual UR3e Arm. We physically measured the position of the end effector and compared to the input coordinates. The low errors show that we successfully moved the robot to the correct position.