Skip to main content

Seeed reBot Arm B601 follower integration with LeRobot

Project description

Seeed reBot Arm B601 Follower Integration with LeRobot

This repository provides the Follower Arm (Robot) integration for the reBot Arm B601 with the LeRobot framework. It enables the B601 arm to be used as a follower robot in teleoperation and data collection workflows.

Supported Hardware

  • Robot: Seeed reBot Arm B601 Series (6-DOF + Gripper)
  • Motors: Damiao (DM4340 + DM4310), RobStride
  • Communication: CAN bus via USB-CAN adapter, including SocketCAN-compatible adapters and Damiao's USB2CAN adapter

Installation

  1. Install LeRobot: Follow the instructions in the LeRobot repository to install the base library. A very quick summary is shown below.

    conda create -y -n lerobot python=3.12
    conda activate lerobot
    conda install ffmpeg -c conda-forge
    git clone https://github.com/huggingface/lerobot.git
    cd lerobot
    pip install -e .
    
  2. Install the motorbridge Python package:

    # Go to https://github.com/tianrking/motorbridge/releases
    # Download the wheel that matches your platform and Python version
    # Example for Ubuntu x86_64 with Python 3.12:
    pip install motorbridge-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    
    # TODO: switch to pip install from PyPI once published
    

    You can also install the optional motor_cli utility:

    wget https://github.com/tianrking/motorbridge/releases/download/v0.1.5/motor-cli-v0.1.5-linux-x86_64.tar.gz
    tar zxvf motor-cli-v0.1.5-linux-x86_64.tar.gz
    sudo cp motor-cli-v0.1.5-linux-x86_64/bin/motor_cli /usr/local/bin/
    sudo chmod a+x /usr/local/bin/motor_cli
    
  3. Install this package: Clone this repository and install it in editable mode:

    git clone https://github.com/Seeed-Projects/lerobot-robot-seeed-b601.git
    cd lerobot-robot-seeed-b601
    pip install -e .
    

    Or install from PyPI:

    pip install lerobot-robot-seeed-b601
    

    Upon installation, two robot variants are registered:

    • seeed_b601_dm_follower: B601 follower using Damiao motors - Primary supported path
    • seeed_b601_rs_follower: B601 follower using RobStride motors - Registered, still being refined
    # Verify that the follower configs are visible to LeRobot
    lerobot-teleoperate --help | grep SeeedB601
    
    # Expected output includes
    SeeedB601DMFollowerConfig ['robot']:
    SeeedB601RSFollowerConfig ['robot']:
    

Configuration

Default motor mapping for the B601 follower:

  • shoulder_pan: master ID 0x01, feedback ID 0x11, motor model dm4340p

  • shoulder_lift: master ID 0x02, feedback ID 0x12, motor model dm4340p

  • elbow_flex: master ID 0x03, feedback ID 0x13, motor model dm4340p

  • wrist_flex: master ID 0x04, feedback ID 0x14, motor model dm4310

  • wrist_yaw: master ID 0x05, feedback ID 0x15, motor model dm4310

  • wrist_roll: master ID 0x06, feedback ID 0x16, motor model dm4310

  • gripper: master ID 0x07, feedback ID 0x17, motor model dm4310

  • CAN adapter types:

    • socketcan: for SocketCAN-compatible adapters such as can0
    • damiao: for Damiao serial bridge adapters such as /dev/ttyACM0
    • robstride: registered in config, but the dedicated adapter path is not yet supported by the current motorbridge Python SDK integration

Make sure your actual motor names, IDs, wiring, and motor models match these defaults before running calibration or teleoperation.

Usage

Pair a follower with a B601 leader

lerobot-teleoperate \
    --robot.type=seeed_b601_dm_follower \
    --robot.id=follower1 \
    --robot.port=/dev/ttyACM4 \
    --robot.can_adapter=damiao \
    --teleop.type=seeed_b601_dm_leader \
    --teleop.id=leader1 \
    --teleop.port=/dev/ttyACM5 \
    --teleop.can_adapter=damiao

Teleoperate with follower cameras

lerobot-teleoperate \
    --robot.type=seeed_b601_dm_follower \
    --robot.id=my_b601_follower \
    --robot.port=/dev/ttyACM4 \
    --robot.can_adapter=damiao \
    --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}, side: {type: intelrealsense, serial_number_or_name: 233522074606, width: 640, height: 480, fps: 30}}" \
    --teleop.type=seeed_b601_dm_leader \
    --teleop.id=my_b601_leader \
    --teleop.port=/dev/ttyACM5 \
    --teleop.can_adapter=damiao \
    --display_data=true

Fore more lerobot operations, please refer to the lerobot official documentation:

https://huggingface.co/docs/lerobot/il_robots

Notes

  • About calibration: the reBot Arm doesn't need an explicit calibration, it only reset every motor's zero position on the launch time of the lerobot scripts.

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_robot_seeed_b601-0.1.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

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

lerobot_robot_seeed_b601-0.1.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file lerobot_robot_seeed_b601-0.1.1.tar.gz.

File metadata

  • Download URL: lerobot_robot_seeed_b601-0.1.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lerobot_robot_seeed_b601-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4ad2641e5fdc9810111c996c28668b2ee8b9e87cedbe0ef53f3ff8393cbb18d3
MD5 8caaae63f4ccf6689d0f6a8fc1a3b444
BLAKE2b-256 217ef6358cc6bdf1d0fd5a446509bc45e62fcd119464a1833f0b6067b96b46b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_robot_seeed_b601-0.1.1.tar.gz:

Publisher: python-publish.yml on Seeed-Projects/lerobot-robot-seeed-b601

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_robot_seeed_b601-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lerobot_robot_seeed_b601-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 57fb03e7122cae6b71a16e1c5a6e7339968b8dab2c4b2525998a9570d2e072ad
MD5 b89d611a70fa81812ce4aef88e8339b9
BLAKE2b-256 3c0974f39dda1e8ace92cbd30d9dfbef270221aca63238f1eff469327f91defb

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_robot_seeed_b601-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on Seeed-Projects/lerobot-robot-seeed-b601

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