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
  • leader-side joint limits are taken directly from config
  • follower-side direction mapping is configured in the follower integration
  • 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

Leader-side joint limits are defined in lerobot_teleoperator_rebot_arm_102/config_rebot_arm_102_leader.py. Follower-side direction mapping is defined in the B601 follower configuration.

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 the leader range config or the follower direction 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 mapped and follower change in the same sign direction
  • if one side increases while the other decreases, update that joint in the follower joint_directions config

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-1.0.0.tar.gz (16.2 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-1.0.0.tar.gz.

File metadata

File hashes

Hashes for lerobot_teleoperator_rebot_arm_102-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0c870ac5feb3f95be88ec010c4c527bb8b9dc7c54eaf77bb686122d62393ca9f
MD5 14b9ca6f2c55631f42193a44904caeb8
BLAKE2b-256 ad2fc04f8a1240204c89b8d1bb25d2c68bf6f21eebfce7037ed9cdb4d16b32b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_teleoperator_rebot_arm_102-1.0.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-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for lerobot_teleoperator_rebot_arm_102-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb0a91dd15adda3c25e2060bfd802725e504d507e42eda343d63b1af7c0d6bb5
MD5 f3d85241226e7ae4e4af1150ace9fd8a
BLAKE2b-256 5038cced0e305c9f7e46f2e92ab61e8382596e398c0bda2c5325ac3aad9c030f

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_teleoperator_rebot_arm_102-1.0.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