Skip to content

Lab 10: PincherX 100 Robot Arm's Forward Kinematics Using Screw Theory

Madi Babaiasl edited this page Mar 27, 2024 · 4 revisions

Objective of lab 10

  • To understand and calculate the forward kinematics of the PincherX 100 robot arm using the Product of Exponentials (PoE) formula based on screw theory and validating it using the physical robot arm.

Here are some implementations by students in the previous semesters in case you are interested:

https://youtu.be/5JvvGXkB1fk

Required hardware and software

  • PincherX 100 robot arm
  • Computer running Ubuntu 22.04 and RViz where control software for the robot are installed
  • A ruler or any measurement tool
  • Pen and paper for calculations and notes

Part 1: Python Version of the MATLAB Code for POE Formula for Forward Kinematics

Study the MATLAB code that is given to you in Lesson 7: Forward Kinematics of Robot Arms Using Screw Theory, and develop the Python version of this code that calculates the position and orientation of the end-effector frame in the base frame using the PoE formula.

Part 2: Pincherx 100 Robot Arm's Forward Kinematics Using Screw Theory

  • Run the robot in simulation, put the robot in zero configuration, and hide the robot arm and all other frames but the base frame and the end-effector frame (you may also leave other links in case you need to use one axis later for the rotation axis. This is not required but it is nice if everyone gets the same transformation at the end) from the left-hand side of the RViz.

  • Find M which is the pose of the end-effector of the robot w.r.t the base frame in the robot's zero configuration. Use the robot's technical drawing for the measurements or simply measure the link lengths etc. using a ruler/measurement tape.

  • Determine, draw, and calculate all the screw axes (the direction of the screw axis should be in the positive movement of the joint based on the RHR).

  • Now use the Product of Exponentials (PoE) formula to find the pose of the end-effector with respect to the base frame. You do not need to do the matrix multiplication.

  • Use the code that you wrote in part 1 and find the transformation matrix representing the pose of the end-effector in the base frame for $\theta_1 = 0^{0}, \theta_2 = 0^{0}, \theta_3 = -90^{0}, \theta_4 = 90^{0}$.

  • Now, attach the physical robot, first go to the home pose, and from there put the robot in the above configuration (set the joint values to the above given values). Physically show that the transformation matrix that you calculated is the same as the physical robot's end effector's position and orientation.

  • Choose another set of angles (pay attention to the joint limits of the robot) and verify that your calculation is the same as the physical position and orientation of the robot.

Guidelines for Lab 10 report

  • Submit one report per group. Note that each member of the group should have an equal contribution to completing the lab and documenting and writing the report (as always be an ethical engineer and disclose all your collaborators including the AI ones).
  • Submit a lot of descriptive figures
  • Again, if you are short of time, it is OK to write math, etc. by hand. If you do so, make sure to take a photo and submit all of them in just one PDF.
  • Submit a 1-3 minute video showing that you give a set of angles to the robot arm and the physical position and orientation of the robot match your calculation.

Pat yourself on the back for completing Lab 10! You've done a fantastic job.

Clone this wiki locally