"""Minimal test script for Damiao motor with ID 3.""" import pytest from lerobot.utils.import_utils import _can_available if not _can_available: pytest.skip("python-can not available", allow_module_level=True) from lerobot.motors import Motor from lerobot.motors.damiao import DamiaoMotorsBus @pytest.mark.skip(reason="Requires physical Damiao motor and CAN interface") def test_damiao_motor(): motors = { "joint_3": Motor( id=0x03, model="damiao", norm_mode="degrees", motor_type_str="dm4310", recv_id=0x13, ), } bus = DamiaoMotorsBus(port="can0", motors=motors) try: print("Connecting...") bus.connect() print("✓ Connected") print("Enabling torque...") bus.enable_torque() print("✓ Torque enabled") print("Reading all states...") states = bus.sync_read_all_states() print(f"✓ States: {states}") print("Reading position...") positions = bus.sync_read("Present_Position") print(f"✓ Position: {positions}") print("Testing MIT control batch...") current_pos = states["joint_3"]["position"] commands = {"joint_3": (10.0, 0.5, current_pos, 0.0, 0.0)} bus._mit_control_batch(commands) print("✓ MIT control batch sent") print("Disabling torque...") bus.disable_torque() print("✓ Torque disabled") print("Setting zero position...") bus.set_zero_position() print("✓ Zero position set") finally: print("Disconnecting...") bus.disconnect(disable_torque=True) print("✓ Disconnected") if __name__ == "__main__": test_damiao_motor()