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.1.tar.gz (13.0 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.1.tar.gz.

File metadata

File hashes

Hashes for lerobot_teleoperator_rebot_arm_102-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2259e154837376bc2e7647f77456ec0e48990100eb20b0843bd513e84704116c
MD5 c8034dcaf7ceb6f4a6e3e0a7c80cb613
BLAKE2b-256 eef48f775843792a6cabe3bdc43a44293497cb82b22c6c2cc920e23726719556

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lerobot_teleoperator_rebot_arm_102-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7be9c58e8fe68527b8d80228bd178944d1c67cf110a3f2bda91f18ef515931f0
MD5 c0f04eed80e48b6f4350b9017ef38963
BLAKE2b-256 9bf96e7e020499cdc7370d418e4f24092ee347f5540d48d54dce3dbc84cee021

See more details on using hashes here.

Provenance

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