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:
- Joint 1 (Base/Shoulder): Rotation about base axis, enabling horizontal sweep
- Joint 2 (Shoulder): Elevation or lowering of the entire arm in vertical plane
- Joint 3 (Elbow): Further movement in vertical plane, extending or retracting
- Joint 4 (Wrist Pitch): Up/down pitch of the wrist, helping align approach angle
- Joint 5 (Wrist Yaw): Twisting the wrist side to side
- Joint 6 (Wrist Roll): Rotation about the tool axis for fine-orientation control
Joint Types Comparison
| Joint Type | Motion Allowed | DOF per Joint |
|---|---|---|
| Revolute (R) | Rotation about axis | 1 |
| Prismatic (P) | Translation along axis | 1 |
| Spherical (S) | Rotation about all axes | 3 |
| Cylindrical (C) | Rotation + translation | 2 |
| Universal | Two rotations | 2 |
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_msgspackage 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.pyUse 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
rcommand 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.
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