Outcome

Successfully navigate the gripper to a physical object on your desk, confirming the full IK-to-Servo control pipeline is functional.

Concepts

  • End-Effector (EE) vs. Joint Control
  • Analytical Inverse Kinematics
  • Real-time Serial Communication

Prerequisites

  • xlerobot-pro repository installed.
  • Motors configured with unique IDs (1-6).
  • Verified: Joint control script runs without errors.
Estimated Time: 10–15 Minutes

Instructions

1. Grant Serial Permissions

Ensure your compute node has permission to talk to the motor controllers over USB.

Terminal
# Allow access to all ACM devices
$ sudo chmod 666 /dev/ttyACM*

2. Launch the EE Control Script

Run the script that initializes the Analytical IK solver and waits for keyboard input.

Terminal
$ python 1_so100_keyboard_ee_control.py

3. Reach a Physical Target

Place a small object (like a cup or bottle) approximately 15-20cm in front of the robot base.

KeyAction
W / SMove Forward / Backward (X-axis)
A / DMove Left / Right (Y-axis)
R / FMove Up / Down (Z-axis)
SpaceToggle Gripper (Open/Close)
PRO TIP: Start with small taps. The script calculates the "Goal Pose" in Cartesian space and the IK solver instantly snaps the joints to reach it.

Expected Output & Validation

Physical Behavior

The arm should move in straight lines relative to the table. Accuracy should be within 1–2 cm of the target object.

Software Feedback

The terminal will print live [X, Y, Z] coordinates. Ensure the coordinates update as you press keys.

Troubleshooting

Arm jerks or moves wildly? This is usually a Motor ID mismatch or a reversed servo horn. Double check the Motor Configuration guide.