Experiment 3: Inverse Kinematics (IK) for the Cobot-C1

Determine the joint angles required for the end-effector to reach a desired position and orientation.

Objectives

  • Build proficiency in controlling the Cobot-C1 by commanding end-effector target positions
  • Link theory and hands-on application by applying mathematical IK concepts to a real robot
  • Test and compare various IK solutions for selected end-effector poses
  • Bridge the gap between task space goals and joint space commands

Key Concepts

  • Inverse Kinematics: Reverse of forward kinematics - finding joint angles from desired pose
  • Task Space to Joint Space: Converting Cartesian goals into joint commands
  • Analytical vs. Numerical Methods: Different approaches to solving IK equations
  • Multiple Solutions: Handling configurations like elbow-up vs. elbow-down
  • Workspace Limitations: Understanding unreachable poses

Theory

What is Inverse Kinematics?

Inverse kinematics (IK) is a fundamental problem in robotics involving kinematic chains. It is the mathematical procedure used to determine the joint variables (angles or displacements) required to achieve the desired position and orientation of the robot's end-effector relative to its base.

Unlike forward kinematics, which deterministically computes the pose given joint values, inverse kinematics works in reverse: it calculates the necessary joint configurations to realize a known end-effector pose. This is crucial because actions are performed by the end-effector, but control inputs are applied at the joints.

How Does Inverse Kinematics Work?

  • Input: Desired end-effector position and orientation (pose in 3D space)
  • Output: One or more sets of joint variables that position the end-effector at the target
  • Process: Solve nonlinear equations derived from forward kinematics
  • Multiple or No Solutions: Different joint configurations may produce the same pose; some poses may be unreachable
  • Solution Methods: Analytical (geometric/algebraic) or numerical (Newton-Raphson, Jacobian-based, optimization)

Inverse Kinematics Equations

Note: The following equations use a simplified 4-DOF model for clarity. The concepts extend to the full 6-DOF Cobot-C1.

Given

Desired end-effector pose: (x, y, z, φ)

Goal

Find joint angles: θ₁, θ₂, θ₃, θ₄

Solution Steps

Step 1 - Base Joint Angle

θ₁ = arctan2(y, x)

Step 2 - Effective Reach and Vertical Offset

r = √(x² + y²) z' = z - L₁

Step 3 - Distance from Shoulder to Wrist

D = √(r² + (z')²)

Step 4 - Elbow Joint (Law of Cosines)

cos(θ₃) = (D² - L₂² - (L₃ + L₄)²) / (2L₂(L₃ + L₄)) θ₃ = arccos((D² - L₂² - (L₃ + L₄)²) / (2L₂(L₃ + L₄)))

Step 5 - Shoulder Joint (Planar Triangle Geometry)

α = arctan2(z', r) β = arccos((L₂² + D² - (L₃ + L₄)²) / (2L₂D)) θ₂ = α - β

Step 6 - Wrist Joint (End-Effector Orientation)

θ₄ = φ - θ₂ - θ₃

Solution Steps Summary

StepDescription
1Compute θ₁: arctan2(y, x)
2Find planar distance r: √(x² + y²)
3Compute z': z - L₁
4Use law of cosines for θ₃ (elbow)
5Use geometry and law of sines/cosines for θ₂ (shoulder)
6Solve orientation constraint for θ₄ (wrist)

Prerequisites

  • Connection of the Cobot-C1 robot to the workstation and initialization of software stack
  • Calibration of joint encoders and configuration of end-effector position readout
  • Completion of environment and safety checks for the workspace
  • Availability of code or GUI tools for inputting and recording positions and angles
  • Review of basic forward kinematics concepts and familiarity with coordinate convention

Procedure

Step 1: Launch the EE (XYZ) Control GUI

cd dev/MRL/cobot-C1/src/cobo_control/src/ python3 indendcontrol.py

Step 2: Safety Preparation

  • Wait for automatic movement to safe startup position
  • Verify GUI status shows "Ready for safe EE control"
  • Ensure workspace is clear

Step 3: Move the Cobot Using End-Effector Controls

  • Use GUI and keyboard (WASDQE keys) to move end-effector in Cartesian (X, Y, Z) space
  • Joints 4, 5, and 6 are locked for safety
  • Move incrementally and observe EE position values in GUI

Step 4: Record End-Effector Position and Joint Angles

  • Record EE Position from GUI (X, Y, Z in mm, phi and psi/orientation)
  • Press J key to print all six joint angles (degrees/radians)
  • Write down both EE pose and joint angles

Step 5: Use IK Equations to Validate Joint Angles

Apply the IK equations to calculate expected joint angles from the recorded end-effector position.

Step 6: Compare Results

Compare IK-derived angles with actual recorded angles and note any discrepancies.

Step 7: Repeat

Repeat steps 2-6 for different end-effector poses throughout the workspace.

Observations Table

TrialRecorded Joint AnglesRecorded EE LocationCalculated Joint Angles (IK)Notes
1
2
3
4
5
6

Sources of Error and Precautions

Common Sources of Error

  • Measurement Inaccuracies: Mistakes when recording EE position or joint angles; lag or drift may affect readings
  • Numerical Approximation: Rounding errors during IK calculations
  • Model Simplifications: Mathematical models may ignore mechanical flex or sensor offsets
  • Unreachable Poses: Commanding EE positions outside robot's workspace results in no solution
  • Multiple IK Solutions: Some EE positions correspond to multiple valid joint configurations

Precautions

  • Verify input values: Double-check all EE positions and joint angles, note correct units
  • Move safely: Perform small, incremental EE moves and visually confirm robot configuration
  • Stay within workspace: Ensure all EE poses are within specified workspace
  • Repeat measurements: For each pose, repeat measurements for consistency
  • Interpret IK solutions carefully: For multiple solutions, select the one matching the real robot arrangement

Learning Outcomes

  • Appreciate the principles of inverse kinematics for serial manipulators
  • Recognize methods for determining joint values required to achieve specific end-effector poses
  • Identify challenges in solving inverse kinematics, such as multiple solutions and workspace limitations
  • Understand the interplay between analytical solutions and numerical approaches
  • Observe typical discrepancies between ideal models and hardware outcomes