Skip to main content

reBot Arm 102 teleoperator integration with LeRobot

Project description

reBot Arm 102 Teleoperator for reBot B601

中文版说明

This repository provides a LeRobot teleoperator integration for the reBot Arm 102 leader arm, intended to be paired with the Seeed reBot B601 follower arm.

The implementation is intentionally opinionated:

  • joint names are aligned to reBot B601
  • joint directions are configured in code
  • joint limits are taken directly from config
  • each startup calibration sets the current servo origin to zero

Supported Setup

  • Leader: reBot Arm 102
  • Follower: Seeed reBot B601
  • Communication: UART for reBot Arm 102, CAN or Damiao serial bridge for B601

Installation

Install LeRobot first, then install this package in editable mode:

cd lerobot-teleoperator-rebot-arm-102
pip install -e .

This package registers one teleoperator type:

  • rebot_arm_102_leader

Default Mapping

  • shoulder_pan -> servo ID 0
  • shoulder_lift -> servo ID 1
  • elbow_flex -> servo ID 2
  • wrist_flex -> servo ID 3
  • wrist_yaw -> servo ID 4
  • wrist_roll -> servo ID 5
  • gripper -> servo ID 6

Joint directions and joint limits are defined in lerobot_teleoperator_rebot_arm_102/config_rebot_arm_102_leader.py.

Usage

Standard teleoperation:

lerobot-teleoperate \
  --teleop.type=rebot_arm_102_leader \
  --teleop.id=rebot_arm_102_leader \
  --teleop.port=/dev/ttyUSB0 \
  --robot.type=seeed_b601_dm_follower \
    --robot.id=follower1 \
    --robot.port=/dev/ttyACM4 \
    --robot.can_adapter=damiao

Example Scripts

read_raw_angles.py

Purpose:

  • read raw reBot Arm 102 servo angles directly from the Fashion Star SDK
  • verify servo ID to joint mapping
  • check whether a given joint is actually changing at the hardware level

Usage:

cd lerobot-teleoperator-rebot-arm-102
python examples/read_raw_angles.py --port /dev/ttyUSB0

What to look for:

  • move only one joint at a time
  • confirm the expected joint column changes
  • if raw values change but teleop behavior is wrong, the problem is usually direction or range config, not the SDK readout

read_leader_follower_compare.py

Purpose:

  • read reBot Arm 102 leader output and B601 follower observation side by side
  • compare leader, follower, and delta per joint
  • debug direction mismatches safely without sending follower commands

Prerequisite:

Behavior:

  • after connecting the B601 follower, it disables torque so the arm can be moved by hand
  • it does not send action commands to the follower

Usage with a Damiao follower on can0:

cd lerobot-teleoperator-rebot-arm-102
python examples/read_leader_follower_compare.py --leader-port /dev/ttyUSB0 --follower-port can0 --follower-type dm

Usage with a Damiao follower through a Damiao serial bridge:

cd lerobot-teleoperator-rebot-arm-102
python examples/read_leader_follower_compare.py --leader-port /dev/ttyUSB0 --follower-port /dev/ttyACM0 --follower-type dm --follower-can-adapter damiao

What to look for:

  • move one joint on the leader
  • move the same joint by hand on the follower if needed
  • compare whether leader and follower change in the same sign direction
  • if one side increases while the other decreases, flip that joint in joint_directions

Notes

  • Under the current implementation, startup calibration resets each reBot Arm 102 servo origin to the current pose.
  • joint_ranges are taken from config, not from calibration data.
  • If a joint appears stuck near one limit, check joint_ranges first.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lerobot_teleoperator_rebot_arm_102-0.1.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file lerobot_teleoperator_rebot_arm_102-0.1.0.tar.gz.

File metadata

File hashes

Hashes for lerobot_teleoperator_rebot_arm_102-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d102b7d2a0171fbabf8a2eb3e8ae03cba9f9e0a251e2351c6f2f18551e9af100
MD5 0822af6773b895a42ee3c8a2373c1e05
BLAKE2b-256 ee5de6e02e1161b3f097d6ea2c913030514075c299eb7d10d968c2bfb8647206

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_teleoperator_rebot_arm_102-0.1.0.tar.gz:

Publisher: python-publish.yml on Seeed-Projects/lerobot-teleoperator-rebot-arm-102

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lerobot_teleoperator_rebot_arm_102-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for lerobot_teleoperator_rebot_arm_102-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a890f2080fe55dbc9705b97a1ba6be6a181615539a671ef3faf5937f1269cccf
MD5 74b5cd6f69dfc9984d9ca57e63616882
BLAKE2b-256 3856867561b4248a2caff89851aa9fd40f40e616e03a8828348c41b1e7bb4ff3

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_teleoperator_rebot_arm_102-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on Seeed-Projects/lerobot-teleoperator-rebot-arm-102

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page