Skip to content

StarArm 102 - Robotic Arm Teleoperation System

Programming Language Framework Hardware OS License


๐Ÿ“– Project Overview

StarArm 102 is a 6+1 DOF robotic arm teleoperation project that lets a Leader Arm remotely control a Follower Arm in real time. The project provides three control methods for robotics research, teleoperation training, AI dataset collection, and similar scenarios.

โœจ Key Features

  • ๐Ÿ”“ Open source, low cost, and easy to access

A fully open-source design that lowers the barrier to learning and deployment.

Available in two purchase options: a pre-assembled system for out-of-the-box use, or a DIY kit for teaching and hands-on practice.

  • โš™๏ธ High control frequency

6 active joints + 1 end effector.

The joint configuration strictly follows the Pieper criterion and supports analytical inverse kinematics, making the algorithms transparent and easy to teach or extend.

  • ๐Ÿ•น๏ธ Cross-platform compatibility and plug-and-play operation

Supports direct bare-metal teleoperation without extra software.

Deeply compatible with both LeRobot and ROS2 ecosystems.

Covers the full real-robot workflow: data collection -> simulation -> model training -> physical deployment.

  • ๐Ÿ“š Complete learning resources

Includes tutorials, API documentation, and example code from beginner to advanced levels.

Suitable for university teaching, research experiments, and self-learning by individual developers.

  • ๐Ÿ”— LD model: a highly compatible teleoperation leader arm

Star Arm 102-LD can perfectly teleoperate the FL model in the same series.

It is also directly compatible with reBot and other robotic arms that share the same or a similar kinematic structure.

One leader arm can drive multiple arms, greatly reducing the cost of building a teleoperation system.


๐Ÿ”ง Arm Specifications

Star Arm 102-LD Star Arm 102-FL
DOF 6+1 6+1
Accuracy - 5-8mm
Suggested Maximum Payload - 300g
Joint Range Joint 0: ยฑ120ยฐ
Joint 1: ยฑ163ยฐ
Joint 2: 0ยฐ~270ยฐ
Joint 3: ยฑ88ยฐ
Joint 4: ยฑ66ยฐ
Joint 5: ยฑ168ยฐ
Gripper: 0~336ยฐ
Joint 0: ยฑ120ยฐ
Joint 1: ยฑ163ยฐ
Joint 2: 0ยฐ~270ยฐ
Joint 3: ยฑ88ยฐ
Joint 4: ยฑ66ยฐ
Joint 5: ยฑ168ยฐ
Gripper: 0~200ยฐ
Servos RA8-U01H-M for joints #0, #1, #2, and #3;
RA8-U02H-M for joint #4;
RA8-U03H-M for joints #5 and #6;
RA8-U25H-M for joints #0, #3, #5, and #6;
RX8-U45H-M for joints #1 and #2;
RA8-U25H-M for joint #4;
Communication Hub UC-01 UC-01
Communication Method UART UART
Power Supply (optional) 12V2A / XT30 12V10A / XT30
Tools and Bolts Screws, threadlocker, woodworking clamp, spare PCB (UC01), DC power pigtail (5.5ร—2.5mm jack), 200mm servo lead wire Screws, threadlocker, woodworking clamp, spare PCB (UC01), DC power pigtail (5.5ร—2.5mm jack), 200mm servo lead wire
Angle Sensor 12-bit magnetic encoder 12-bit magnetic encoder
Weight 663g 791g
Recommended Operating Temperature Range 0-40ยฐC 0-40ยฐC
Works with LeRobot โœ“ โœ“
Works with ROS 2 โœ“ โœ“
Works with MoveIt - โœ“
Works with Gazebo - โœ“

๐Ÿš€ Quick Start

System Requirements

Item Requirement
Operating System Ubuntu 22.04
ROS Version ROS2 Humble
Hardware StarArm 102 robotic arm (Leader + Follower)
Driver CH340 USB Driver

Installation Methods

# 1. ๅฎ‰่ฃ…ไพ่ต–
pip install pyserial fashionstar-uart-sdk

# 2. ่ฟ่กŒ็จ‹ๅบ
sudo chmod 777 /dev/ttyUSB*
python3 ./Python_SDK/stararm102_ro.py

Method 2: ROS2 HUMBLE

# ๅ‚่€ƒ ROS2_HUMBLE/README.md ้…็ฝฎ่ฏดๆ˜Ž

Method 3: LeRobot framework

# ๅ‚่€ƒ Lerobot/README.md ้…็ฝฎ่ฏดๆ˜Ž

๐Ÿ“‚ Project Structure

Star-Arm-102/
โ”œโ”€โ”€ Python_SDK/                              # Python SDK ๆŽงๅˆถๆ–นๅผ
โ”‚   โ”œโ”€โ”€ stararm102_ro.py                     # ไธปไปŽๆŽงๅˆถ็จ‹ๅบ
โ”‚   โ””โ”€โ”€ README.md                            # ่ฏฆ็ป†ไฝฟ็”จๆ–‡ๆกฃ
โ”œโ”€โ”€ ROS2_HUMBLE/                             # ROS2 ๆŽงๅˆถๆ–นๅผ
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ robo_driver/                     # ๆœบๆขฐ่‡‚็กฌไปถ้ฉฑๅŠจ่Š‚็‚น
โ”‚       โ”œโ”€โ”€ stararm102_description/          # ๆœบๆขฐ่‡‚URDFๆจกๅž‹ๆ่ฟฐ
โ”‚       โ”œโ”€โ”€ stararm102_gazebo/               # Gazeboไปฟ็œŸ็Žฏๅขƒ้…็ฝฎ
โ”‚       โ”œโ”€โ”€ stararm102_moveit_config/        # MoveIt2่ฟๅŠจ่ง„ๅˆ’้…็ฝฎ
โ”‚       โ”œโ”€โ”€ stararm102_controller/           # ๆœบๆขฐ่‡‚ๆŽงๅˆถๅ™จ
โ”‚       โ”œโ”€โ”€ arm_moveit_read/                 # ไฝๅงฟ่ฏปๅ–่Š‚็‚น
โ”‚       โ”œโ”€โ”€ arm_moveit_write/                # ไฝๅงฟๅ†™ๅ…ฅ่Š‚็‚น
โ”‚       โ”œโ”€โ”€ arm_read_pose/                   # ๅฎžๆ—ถไฝๅงฟ่ฏปๅ–
โ”‚       โ”œโ”€โ”€ ros2_bag_recorder/               # ็คบๆ•™่ฝจ่ฟนๅฝ•ๅˆถ
โ”‚       โ””โ”€โ”€ robo_interfaces/                 # ่‡ชๅฎšไน‰ROS2ๆŽฅๅฃ
โ”œโ”€โ”€ Lerobot/                                 # Lerobot ๆก†ๆžถๆŽงๅˆถๆ–นๅผ
โ”‚   โ”œโ”€โ”€ lerobot-robot-stararm102/            # Follower ๆœบๅ™จไบบ้…็ฝฎ
โ”‚   โ”œโ”€โ”€ lerobot-teleoperator-stararm102/     # Leader ้ฅๆ“ไฝœๅ™จ
โ”‚   โ”œโ”€โ”€ stararm102_en.md                     # Lerobot ไฝฟ็”จๆ–‡ๆกฃ๏ผˆ่‹ฑๆ–‡๏ผ‰
โ”‚   โ”œโ”€โ”€ stararm102.md                        # Lerobot ไฝฟ็”จๆ–‡ๆกฃ
โ”‚   โ””โ”€โ”€ README.md                            # ไฝฟ็”จๆญฅ้ชค
โ””โ”€โ”€ README.md                                # ๆœฌๆ–‡ๆกฃ

๐ŸŽฏ Control Method Comparison

Feature Python SDK ROS2 HUMBLE Lerobot
Difficulty โญ Easy โญโญโญ Medium โญโญโญโญโญ Advanced
Real-time Performance โญโญโญโญโญ โญโญโญ โญโญโญ
Extensibility โญโญ โญโญโญโญโญ โญโญโญโญ
Typical Use Cases Quick testing, education Robotic system integration AI training, research

๐Ÿ”ง Hardware Connection

Connection Topology

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚                 โ”‚
                    โ”‚      ่ฎก็ฎ—ๆœบ      โ”‚
                    โ”‚ (Ubuntu 22.04)  โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
             USB                           USB
              โ”‚                             โ”‚
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”               โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚             โ”‚               โ”‚               โ”‚
       โ”‚ Leader Arm  โ”‚               โ”‚ Follower Arm  โ”‚
       โ”‚(StarArm 102)โ”‚               โ”‚ (StarArm 102) โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜               โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Device Detection

# ๆŸฅ็œ‹ๆ‰€ๆœ‰ USB ่ฎพๅค‡
lsusb

# ๆŸฅ็œ‹ไธฒๅฃ่ฎพๅค‡
ls -l /dev/ttyUSB*

# ่ต‹ไบˆๆƒ้™
sudo chmod 777 /dev/ttyUSB*

๐Ÿ“Š Joint Mapping

The StarArm102 robotic arm has 7 joints in total (6 DOF + 1 rotating gripper):

Joint Angle Range Description
Joint1 -130ยฐ ~ 130ยฐ Base rotation
Joint2 -90ยฐ ~ 90ยฐ Shoulder pitch
Joint3 -90ยฐ ~ 90ยฐ Elbow pitch
Joint4 -90ยฐ ~ 90ยฐ Wrist rotation
Joint5 -90ยฐ ~ 90ยฐ Wrist pitch
Joint6 -130ยฐ ~ 130ยฐ Wrist yaw
Gripper (joint7_left) -90ยฐ ~ 90ยฐ Rotating gripper

๐Ÿ“ Note: The rotating gripper is controlled through joint7_left, while joint7_right is the linked joint that automatically mirrors the motion in reverse.


โš ๏ธ Safety Notes

  1. Check before operation: Make sure there are no obstacles around the robotic arm and that the workspace is safe.
  2. Emergency stop: Press Ctrl+C at any time while the program is running to stop immediately.
  3. Joint limits: Safe angle limits are configured automatically to prevent out-of-range motion.
  4. Power management: Ensure stable power delivery to the robotic arm and avoid voltage fluctuations.

๐Ÿ› Troubleshooting

Common Issues

Q1: Cannot find the /dev/ttyUSB0 device?

# ๆฃ€ๆŸฅ USB ่ฎพๅค‡
ls -l /dev/ttyUSB*

# ๆฃ€ๆŸฅ USB ่ฎพๅค‡ไฟกๆฏ
lsusb

# ๆŸฅ็œ‹ไธฒๅฃๆ—ฅๅฟ—
sudo dmesg | grep ttyUSB

# ๅฆ‚ๆžœ่ขซ brltty ๅ ็”จ๏ผŒๅธ่ฝฝๅฎƒ
sudo apt remove brltty

# ่ต‹ไบˆๆƒ้™
sudo chmod 777 /dev/ttyUSB*

Q2: serial port connection failed?

  • Check whether the USB cable is loose.
  • Confirm that the robotic arm is powered on.
  • Try a different USB port.
  • Verify that the driver is installed correctly.

Q3: Control frequency is too low?

  • Check whether serial port communication is working properly.
  • Reduce the load from other running programs.
  • Use a USB 3.0 port for better performance.

Q4: Robotic arm connection failed?

  • Check whether the USB cable is properly connected.
  • Confirm that the robotic arm is powered on.
  • Check the servo communication status.
  • Try a different USB port.

๐Ÿ“– Detailed Documentation

Choose the control method you need:

๐Ÿ“„ License

This project is open sourced under the MIT License.


๐Ÿ‘ฅ Acknowledgments

  • Thanks to FashionStar for the hardware support and SDK.