Seeed reBot Arm B601 Teleoperator integration with LeRobot
Project description
Seeed reBot Arm B601 Teleoperator Integration with LeRobot
This repository provides the Leader Arm (Teleoperator) integration for the reBot Arm B601 with the LeRobot framework. It enables the B601 arm to be used for teleoperation - reading human operator movements to control follower robots.
Supported Hardware
- Robot: Seeed reBot Arm B601 Series (6-DOF + Gripper)
- Motors: Damiao (DM4310 + DM4340), RobStride
- Communication: CAN Bus (via USB-CAN adapter, including Damiao's v3 USB2CAN adapter)
Installation
-
Install LeRobot: Follow the instructions in the LeRobot repository to install the base library. A very quick summary would be like the following.
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 .
-
Install motorbridge Python Package
# goto https://github.com/tianrking/motorbridge/releases # find the proper python wheel for your platform # e.g. ubuntu x86_64, python3.12, we should download https://github.com/tianrking/motorbridge/releases/download/v0.1.5/motorbridge-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl # with your conda env activated pip install motorbridge-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl # TODO: install from pypi
You could also install the
motor-clitool,a very useful motor tool.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 ## new version may be released, you should check the lates version
-
Install this package: Clone this repository and install in editable mode:
git clone https://github.com/Seeed-Projects/lerobot-teleoperator-seeed-b601.git cd lerobot-teleoperator-seeed-b601 pip install -e .
Or install from PyPI:
pip install lerobot-teleoperator-seeed-b601
Upon installation, two teleoperator variants are registered:
seeed_b601_dm_leader: B601 Leader using Damiao motors (6-DOF + Gripper) - Fully Implementedseeed_b601_rs_leader: B601 Leader using RobStride motors (6-DOF + Gripper) - Placeholder
# test if the installation is good lerobot-teleoperate --help | grep SeeedB601 # if you see the following you're good SeeedB601DMLeaderConfig ['teleop']: SeeedB601RSLeaderConfig ['teleop']:
Configuration
Default motor mapping for the B601 leader:
-
shoulder_pan: master ID0x01, feedback ID0x11, motor modeldm4340p -
shoulder_lift: master ID0x02, feedback ID0x12, motor modeldm4340p -
elbow_flex: master ID0x03, feedback ID0x13, motor modeldm4340p -
wrist_flex: master ID0x04, feedback ID0x14, motor modeldm4310 -
wrist_yaw: master ID0x05, feedback ID0x15, motor modeldm4310 -
wrist_roll: master ID0x06, feedback ID0x16, motor modeldm4310 -
gripper: master ID0x07, feedback ID0x17, motor modeldm4310 -
CAN adapter types:
socketcan: for SocketCAN-compatible adapters such ascan0damiao: for Damiao serial bridge adapters such as/dev/ttyACM0robstride: registered in config, but the dedicated adapter path is not yet supported by the currentmotorbridgePython SDK integration
Ensure your motor names, IDs, wiring, and motor models match this configuration.
TODO: Refer to the wiki page for the guide to configure the motors.
TODO: A script that utilize the motorbridge to configure the deep parameters of the motor.
Usage
lerobot-teleoperate \
--robot.id=follower1 \
--robot.type=seeed_b601_dm_follower \
--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 cameras,
lerobot-teleoperate \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM4 \
--robot.can_adapter=damiao \
--robot.id=my_awesome_follower_arm \
--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.port=/dev/ttyACM5 \
--teleop.id=my_awesome_leader_arm \
--robot.can_adapter=damiao \
--display_data=true
Fore more lerobot operations, please refer to the lerobot official documentation:
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lerobot_teleoperator_seeed_b601-0.1.2.tar.gz.
File metadata
- Download URL: lerobot_teleoperator_seeed_b601-0.1.2.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
deffd45936734e64252e3939542cd120767d679b0e244b195187df4860400604
|
|
| MD5 |
0c8855ffa32ebb3a61b70db26d3111a3
|
|
| BLAKE2b-256 |
9c7faf404b404eb77e17f789bbd264cfda5a34bef64a08e948c555f4d1f28f52
|
Provenance
The following attestation bundles were made for lerobot_teleoperator_seeed_b601-0.1.2.tar.gz:
Publisher:
python-publish.yml on Seeed-Projects/lerobot-teleoperator-seeed-b601
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lerobot_teleoperator_seeed_b601-0.1.2.tar.gz -
Subject digest:
deffd45936734e64252e3939542cd120767d679b0e244b195187df4860400604 - Sigstore transparency entry: 1260361599
- Sigstore integration time:
-
Permalink:
Seeed-Projects/lerobot-teleoperator-seeed-b601@87cb6205e68e55b09821eba4ecf330eb268bafe5 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Seeed-Projects
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@87cb6205e68e55b09821eba4ecf330eb268bafe5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lerobot_teleoperator_seeed_b601-0.1.2-py3-none-any.whl.
File metadata
- Download URL: lerobot_teleoperator_seeed_b601-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d81e76c9b5974a26c2ca56831525dd98712cdc2a577400a25a8cb1e0e8d3de2
|
|
| MD5 |
5bd2cf587c4c5caeb7a859c95933d461
|
|
| BLAKE2b-256 |
7741232914eac9c71551cc67bfe1f4b45e04f4028072f3babbc27c4ffda47c47
|
Provenance
The following attestation bundles were made for lerobot_teleoperator_seeed_b601-0.1.2-py3-none-any.whl:
Publisher:
python-publish.yml on Seeed-Projects/lerobot-teleoperator-seeed-b601
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lerobot_teleoperator_seeed_b601-0.1.2-py3-none-any.whl -
Subject digest:
6d81e76c9b5974a26c2ca56831525dd98712cdc2a577400a25a8cb1e0e8d3de2 - Sigstore transparency entry: 1260361680
- Sigstore integration time:
-
Permalink:
Seeed-Projects/lerobot-teleoperator-seeed-b601@87cb6205e68e55b09821eba4ecf330eb268bafe5 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Seeed-Projects
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@87cb6205e68e55b09821eba4ecf330eb268bafe5 -
Trigger Event:
push
-
Statement type: