SO100/SO101 Arm Examples#

Keyboard Joint Control#

The most basic control method using direct joint angle manipulation. Run 0_so100_keyboard_joint_control.py for manual control of individual joint positions using keyboard inputs. This provides direct access to each joint’s movement without inverse kinematics calculations.

Keyboard End-Effector Control#

Advanced control using inverse kinematics to move the end-effector in Cartesian space. Run 1_so100_keyboard_ee_control.py for intuitive control where keyboard inputs control the end-effector position (X, Y coordinates) rather than individual joints.

Dual-Arm Keyboard Control#

Simultaneous control of two SO100 arms connected via different serial ports (/dev/ttyACM0 and /dev/ttyACM1). Run 2_dual_so100_keyboard_ee_control.py for coordinated dual-arm manipulation with separate keyboard mappings for each arm.

Vision-based Object Following#

YOLO-powered object detection and tracking system. Run 3_so100_yolo_ee_control.py to enable the robot to automatically follow detected objects (such as bottles) using computer vision. This demo requires no training and combines real-time object detection with end-effector control.

You can check Ultralytics official website to try all kinds of different Vision-related models and applications in an extremely easy way.