HW6: PincherX 100 and Kinova's Gen 3 6DOF Robot Arms' Forward Kinematics Using Screw Theory - madibabaiasl/kinematics-robotic-arms-modern-approach GitHub Wiki

Learning Objectives

  • Practice expressing forward kinematics using the Product of Exponentials (PoE) method in both code and physical experiments.
  • Translate MATLAB-based PoE calculations into working Python code that computes a robot’s end-effector position and orientation.
  • Apply screw theory to identify a robot’s zero pose, end-effector pose, and joint screw axes using a real or simulated robot.
  • Verify mathematical predictions with physical measurements on the PincherX 100 robot.
  • Explore how the same kinematic principles apply across different robot architectures and tools such as RViz and RoboDK.
  • Investigate how screw theory appears in current robotics research and brainstorm creative uses of forward kinematics beyond the classroom.

Learning Outcomes

By completing this homework, you will be able to:

  • Write Python functions that compute forward kinematics for open-chain robots using the PoE formulation.
  • Identify the base frame, end-effector frame, and zero configuration of a real robot arm through observation and measurement.
  • Construct and visualize all joint screw axes of the PincherX 100, and use them to predict the pose of the end-effector.
  • Verify computed poses by comparing them directly with simulation and physical robot configurations.
  • Apply the same process to the Kinova Gen3 6DOF robot.
  • Locate examples of screw theory in robotics research literature and explain how they now make sense in light of your learning.
  • Propose an original idea or application where forward kinematics could enable innovation in design, education, or automation.

Why This Matters

This homework unites every concept learned so far (rotation, pose, screw motion, and forward kinematics) into a single, practical workflow. You will see the direct connection between theory, simulation, and real hardware, building both intuition and verification habits. Writing your own code cements understanding and gives you a reusable kinematics engine for future projects.

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
  • RoboDK

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 (8 points UG, 7 points G).

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 rotation axes later to compute the screw axis) from the left-hand side of the RViz (8 points UG, 7 points G).

  • 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 (8 points UG, 7 points G).

  • 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) (8 points UG, 7 points G).

  • 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 (8 points UG, 7 points G).

  • 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}$ (8 points UG, 7 points G).

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

  • 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 (8 points UG, 7 points G).

Part 3: Forward Kinematics of Kinova's Gen 3 6DOF Robot Arm Using Screw Theory

Step 1. Open up RoboDK, go to file, and then choose open online library.

Step 2. Type Kinova in the search box and download the Kinova Gen3 6DOF:

kinova gen3 6dof robodk

Step 3. Open up the robot in the software and put it in its zero position by setting all joint angles to zero:

kinova gen3 robot arm in its zero position

Step 4. Follow the steps in the lesson to find the forward kinematics of this robot using screw theory (8 points UG, 7 points G).

Step 5. Choose a set of joint angles, calculate the transformation matrix representing the pose of the end-effector w.r.t the base frame for those angles (you can use the Python code from the lab or MATLAB code from the lesson), then set these joint angles in the RoboDK and verify that your calculation is the same as what RoboDK is showing you (8 points UG, 7 points G).

Notes:

  • you can determine the positive direction of the joints by changing the joint values in the RoboDK software
  • you can find the link lengths, etc. from the product's manual that can be found at the link below:

https://www.kinovarobotics.com/product/gen3-robots

Part 4 (required for only graduate students, extra points for undergrads): Screw Theory in Robotics in the Literature

Go to Google Scholar and search for robotics problems that are solved using screw theory. List some of those for this part. Do the calculations make sense to you now? Explain (for now, you are only interested in the forward kinematics part) (7 points G).

Part 5: Open-ended Question

Using only what you’ve learned about forward kinematics, propose one creative or entrepreneurial application where this knowledge could be useful (like for simulation, design, validation, education, planning, etc). Describe your idea in a few sentences and explain how forward kinematics plays a role in it (8 points UG, 7 points G).

Report Requirements for Homework 6

  • Submit reports individually.
  • G = Grad, UG = Undergrad
  • Title, Name (4 points UG, 5 points G)
  • Meeting the requirements of each part or question above that has points in front of it.
  • Reflection: A short reflection on any interesting observations, surprises, difficulties, new directions that can be taken and any other feedback you may have (4 points UG, 6 points G)
  • References: Note that utilizing (or not utilizing) AI should be disclosed here. You can use AI according to the allowed instances in the Syllabus (4 points UG, 5 points G).

Note: This activity is eligible for "best report" points in our reward system (see the reward system sheet for the criteria).

⚠️ **GitHub.com Fallback** ⚠️