LeRobot documentation
Damiao MotorsとCANバス
はじめに
チュートリアル
ロボットのための模倣学習LeLab - Lerobot GUIポリシーの追加独自のハードウェアを持ち込むRLでロボットを訓練するシミュレーションでRLを学習マルチGPUトレーニングHuman In the Loop データ収集PEFT(LoRA など)による学習Rename Map と空のカメラの使用
Compute & Hardware
Datasets
LeRobotDataset の使用トレーニングデータセットのストリーミング大規模データセットの移植Dataset Tools の使用言語カラムとレシピツールアノテーションパイプラインVideo encoding parametersストリーミング動画エンコーディング
ポリシー
ACTSmolVLAπ₀ (Pi0)π₀-FAST (Pi0Fast)π₀.₅ (Pi05)FineART-VLAMolmoAct2VLA-JEPALaWAMEO-1LingBot-VALingBot-VLA 2.0OpenGalaxea G0.5FastWAMLong-WAMFLUX 3 Action (flux3)EVO1NVIDIA GR00TX-VLAマルチタスクDiTポリシーWALL-OSSWall-OSS-0.5DM05Cosmos3
報酬モデル
推論
シミュレーション
ベンチマーク
ベンチマークの追加LIBEROLIBERO-plusMeta-WorldRoboTwin 2.0RoboCasa365RoboCerebraNVIDIA RoboLabRoboMMENVIDIA IsaacLab Arena 環境VLABench
ロボットプロセッサ
Robots
SO-101SO-100Koch v1.1LeKiwiHope JrReachy 2Unitree G1Earth Rover MiniOMXOpenArmreBot B601YAMサードパーティ製ロボットおよびテレオペレーター
テレオペレーター
センサー
リソース
概要
API リファレンス
Damiao MotorsとCANバス
このガイドでは、CANバス通信を介してLeRobotでDamiaoモーターを設定し、使用する手順について説明します。
現在、OpenArms CANアダプターにはLinux用のドライバのみが用意されているため、Linuxのみがサポートされています。
Linux CAN セットアップ
Damiaoモーターを使用する前に、Linuxシステム上でCANインターフェースを設定する必要があります。
CAN Utilitiesのインストール
sudo apt-get install can-utilsCANインターフェースの構成(手動)
標準的なCAN FDの場合(OpenArmsには推奨されます):
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can0 up標準CAN(FDなし)の場合:
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 upCANインターフェースの構成(LeRobotを使用)
LeRobotには、CANインターフェースのセットアップとテストを行うユーティリティスクリプトが提供されています:
# Setup multiple interfaces (e.g., OpenArms Followers with 2 CAN buses)
lerobot-setup-can --mode=setup --interfaces=can0,can1CAN通信のデバッグ
組み込みのデバッグツールを使用して、モーター通信をテストします:
# Test motors on all interfaces
lerobot-setup-can --mode=test --interfaces=can0,can1
# Run speed/latency test
lerobot-setup-can --mode=speed --interfaces=can0テストモードでは、モーター(ID 0x01-0x08)をスキャンし、応答するモーターを報告します。出力例:
can0: UP (CAN FD)
Motor 0x01 (joint_1): ✓ FOUND
→ Response 0x11 [FD]: 00112233...
Motor 0x02 (joint_2): ✓ FOUND
Motor 0x03 (joint_3): ✗ No response
...
Summary: 2/8 motors found使用方法
基本的なセットアップ
from lerobot.motors import Motor
from lerobot.motors.damiao import DamiaoMotorsBus
# Define your motors with send/receive CAN IDs
motors = {
"joint_1": Motor(id=0x01, motor_type_str="dm8009", recv_id=0x11),
"joint_2": Motor(id=0x02, motor_type_str="dm4340", recv_id=0x12),
"joint_3": Motor(id=0x03, motor_type_str="dm4310", recv_id=0x13),
}
# Create the bus
bus = DamiaoMotorsBus(
port="can0", # Linux socketcan interface
motors=motors,
)
# Connect
bus.connect()モーター状態の読み取り
# Read single motor position (degrees)
position = bus.read("Present_Position", "joint_1")
# Read from multiple motors
positions = bus.sync_read("Present_Position") # All motors
positions = bus.sync_read("Present_Position", ["joint_1", "joint_2"])
# Read all states at once (position, velocity, torque)
states = bus.sync_read_all_states()
# Returns: {'joint_1': {'position': 45.2, 'velocity': 1.3, 'torque': 0.5}, ...}モーターコマンドの作成
# Enable torque
bus.enable_torque()
# Set goal position (degrees)
bus.write("Goal_Position", "joint_1", 45.0)
# Set positions for multiple motors
bus.sync_write("Goal_Position", {
"joint_1": 45.0,
"joint_2": -30.0,
"joint_3": 90.0,
})
# Disable torque
bus.disable_torque()設定オプション
| パラメータ | デフォルト | 説明 |
|---|---|---|
port | - | CANインターフェース(can0)またはシリアルポート(/dev/cu.usbmodem*) |
use_can_fd | True | 高速なデータレートを実現するためにCAN FDを有効にする |
bitrate | 1000000 | 公称ビットレート (1 Mbps) |
data_bitrate | 5000000 | CAN FD データビットレート (5 Mbps) |
モーター設定
各モーターには以下が必要です:
id: コマンド送信用の CAN IDmotor_type: 対応するモータータイプのいずれか(例:"dm8009"、"dm4340")recv_id: 応答の受信に使用する CAN ID
OpenArmsのデフォルトIDは、送信IDが0x0N、受信IDが0x1Nというパターンに従います。ここでNは関節番号です。
トラブルシューティング
モーターからの応答なし
- 電力を確認する
- Verify CAN wiring: Check CAN-H, CAN-L, and GND connections
- モーターIDの確認: Damiao Debugging Toolsを使用してIDを確認/設定します
- CANインターフェースのテスト:
candump can0を実行して、メッセージが受信されているか確認します - 診断を実行する:
lerobot-setup-can --mode=test --interfaces=can0
モーターのタイムアウトパラメータ
モーターがtimeout=0で設定されている場合、コマンドに応答しません。Damiao Debugging Toolsを使用して、ゼロ以外のタイムアウト値を設定してください。
CAN FDステータスの確認
ip -d link show can0 | grep fd