Experiment 1: Manipulator Kinematics & Anatomy of Cobot-C1

Explore how joint movements translate into end-effector positions in both simulation and real-world settings.

Objectives

  • Understand how joint angles and link lengths determine end-effector position and orientation
  • Investigate how link lengths and joint constraints define the reachable workspace
  • Practice inputting specific joint angles and observing the resulting manipulator pose

Key Concepts

  • Manipulator Kinematics - Relationship between joint angles and end-effector position/orientation
  • Robot Components - Links, joints, manipulators, wrists, end-effectors, actuators, sensors, and controllers
  • Degrees of Freedom (DOF) - Understanding 6-DOF configuration for spatial manipulation
  • Denavit-Hartenberg (DH) Convention - Systematic method for assigning coordinate frames
  • DH Parameters - Four parameters (a, α, d, θ) describing robot geometry
  • Transformation Matrices - Mathematical representation of robot kinematics
  • Workspace Analysis - Understanding reachable positions based on robot configuration

Theory

Robot Components

Links: Individual rigid bodies that make up the robot. Links are rigid members that may have relative motion with respect to other links.

Joints: Connections between two links where relative motion occurs. Joints are typically revolute (rotary) or prismatic (translational).

Manipulator: The main body of the robot, consisting of links, joints, and other structural elements.

Wrist: The section between the arm and end-effector, typically the last few joints. Often takes the form of a spherical wrist with three intersecting rotary joints.

End-effector: The tool or gripper mounted on the last link, responsible for performing the robot's tasks.

Actuators: The "muscles" of the robot, providing motion at each joint. May be electric, hydraulic, or pneumatic motors.

Sensors: Devices that detect joint position, velocity, acceleration, or force, providing feedback for control.

Controller: The decision-making unit responsible for collecting sensor information and coordinating movement.

Degrees of Freedom

A robot manipulator is comprised of a sequence of links connected by joints to form a kinematic chain. The degree of freedom (DOF) is the number of independent coordinates required to completely specify the configuration of the system.

The minimum number of DOF for a fully general spatial manipulator is six: three to control position and three to control orientation. The Cobot-C1, with six joints, is classified as a 6-DOF manipulator.

Cobot-C1's 6 DOF Breakdown:

  1. Joint 1 (Base/Shoulder): Rotation about base axis, enabling horizontal sweep
  2. Joint 2 (Shoulder): Elevation or lowering of the entire arm in vertical plane
  3. Joint 3 (Elbow): Further movement in vertical plane, extending or retracting
  4. Joint 4 (Wrist Pitch): Up/down pitch of the wrist, helping align approach angle
  5. Joint 5 (Wrist Yaw): Twisting the wrist side to side
  6. Joint 6 (Wrist Roll): Rotation about the tool axis for fine-orientation control

Joint Types Comparison

Joint TypeMotion AllowedDOF per Joint
Revolute (R)Rotation about axis1
Prismatic (P)Translation along axis1
Spherical (S)Rotation about all axes3
Cylindrical (C)Rotation + translation2
UniversalTwo rotations2

Denavit-Hartenberg Parameters

Four DH parameters describe the geometry of link i:

  • ai (Link length): Distance along xi from zi-1 to zi
  • αi (Link twist): Angle around xi from zi-1 to zi
  • di (Link offset): Distance along zi-1 from Oi-1 to the common normal
  • θi (Joint angle): Angle around zi-1 from xi-1 to xi

Prerequisites

  • Physical Cobot is powered on and connected to your computer
  • ROS (Robot Operating System) is installed
  • The cobo_msgs package is installed and sourced
  • Python 3 and required packages (numpy, rospy) are installed
  • Each terminal session must initialize: source /devel/setup.bash

Procedure

Step 1: Positioning by Inputting Coordinates

Navigate to the control script directory:

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

Use the c command to move the Cobot:

  • Enter the desired end-effector pose as six space-separated values: x y z φ θ ψ
  • Press Enter to execute the movement

Step 2: Record Joint Angles

After the Cobot-C1 moves to the desired position:

  • Use the r command and press Enter
  • This prints the current angles of joints 1–6 in both degrees and radians
  • Record these printed angles for your analysis

Step 3: Positioning by Inputting Joint Angles

Use the j command to move the Cobot by specifying joint angles:

  • Enter the angles in radians, separated by spaces
  • Press Enter to execute the movement

Step 4: Repeat

Perform the above steps for several different points to build understanding of kinematic relationships.

Important: Always return the Cobot-C1 to home position before exiting the program using the h command.

Sources of Error and Precautions

Common Sources of Error:

  • Joint angle measurement errors due to sensor noise

Precautions:

  • Repeat measurements to minimize random errors
  • Record environmental conditions that might affect the experiment
  • Always return the Cobot-C1 to home position before exiting

Learning Outcomes

  • Grasp the fundamentals of manipulator kinematics
  • Comprehend the relationship between joint angles, link lengths, and end-effector positions
  • Recognize the role of joint ranges and link dimensions in shaping the robot workspace
  • Appreciate sources of discrepancy between theoretical and observed positions
  • Develop awareness of coordinate and angle conventions in robotics control software