Add CalibrationMode

This commit is contained in:
Simon Alibert 2025-03-23 10:20:08 +01:00
parent c2e761437d
commit e047074825
3 changed files with 18 additions and 17 deletions

View File

@ -74,10 +74,17 @@ class DriveMode(Enum):
class CalibrationMode(Enum): class CalibrationMode(Enum):
# Joints with rotational motions are expressed in degrees in nominal range of [-180, 180]
DEGREE = 0 DEGREE = 0
# Joints with liner motions (like gripper of Aloha) are expressed in nominal range of [0, 100] RANGE_0_100 = 1
LINEAR = 1 RANGE_M100_100 = 2
VELOCITY = 3
@dataclass
class Motor:
id: int
model: str
calibration: CalibrationMode
class JointOutOfRangeError(Exception): class JointOutOfRangeError(Exception):
@ -190,12 +197,6 @@ class GroupSyncWrite(Protocol):
def txPacket(self): ... def txPacket(self): ...
@dataclass
class Motor:
id: int
model: str
class MotorsBus(abc.ABC): class MotorsBus(abc.ABC):
"""The main LeRobot class for implementing motors buses. """The main LeRobot class for implementing motors buses.

View File

@ -5,7 +5,7 @@ from unittest.mock import patch
import dynamixel_sdk as dxl import dynamixel_sdk as dxl
import pytest import pytest
from lerobot.common.motors import Motor from lerobot.common.motors import CalibrationMode, Motor
from lerobot.common.motors.dynamixel import DynamixelMotorsBus from lerobot.common.motors.dynamixel import DynamixelMotorsBus
from tests.mocks.mock_dynamixel import MockMotors, MockPortHandler from tests.mocks.mock_dynamixel import MockMotors, MockPortHandler
@ -30,9 +30,9 @@ def mock_motors() -> Generator[MockMotors, None, None]:
@pytest.fixture @pytest.fixture
def dummy_motors() -> dict[str, Motor]: def dummy_motors() -> dict[str, Motor]:
return { return {
"dummy_1": Motor(id=1, model="xl430-w250"), "dummy_1": Motor(1, "xl430-w250", CalibrationMode.RANGE_M100_100),
"dummy_2": Motor(id=2, model="xm540-w270"), "dummy_2": Motor(2, "xm540-w270", CalibrationMode.RANGE_M100_100),
"dummy_3": Motor(id=3, model="xl330-m077"), "dummy_3": Motor(3, "xl330-m077", CalibrationMode.RANGE_M100_100),
} }

View File

@ -5,7 +5,7 @@ from unittest.mock import patch
import pytest import pytest
import scservo_sdk as scs import scservo_sdk as scs
from lerobot.common.motors import Motor from lerobot.common.motors import CalibrationMode, Motor
from lerobot.common.motors.feetech import FeetechMotorsBus from lerobot.common.motors.feetech import FeetechMotorsBus
from tests.mocks.mock_feetech import MockMotors, MockPortHandler from tests.mocks.mock_feetech import MockMotors, MockPortHandler
@ -30,9 +30,9 @@ def mock_motors() -> Generator[MockMotors, None, None]:
@pytest.fixture @pytest.fixture
def dummy_motors() -> dict[str, Motor]: def dummy_motors() -> dict[str, Motor]:
return { return {
"dummy_1": Motor(id=1, model="sts3215"), "dummy_1": Motor(1, "sts3215", CalibrationMode.RANGE_M100_100),
"dummy_2": Motor(id=2, model="sts3215"), "dummy_2": Motor(2, "sts3215", CalibrationMode.RANGE_M100_100),
"dummy_3": Motor(id=3, model="sts3215"), "dummy_3": Motor(3, "sts3215", CalibrationMode.RANGE_M100_100),
} }