mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-24 18:26:11 +00:00
change timeout for handshake
This commit is contained in:
@@ -48,6 +48,7 @@ from .tables import (
|
|||||||
NORMALIZED_DATA,
|
NORMALIZED_DATA,
|
||||||
PARAM_TIMEOUT,
|
PARAM_TIMEOUT,
|
||||||
RUNNING_TIMEOUT,
|
RUNNING_TIMEOUT,
|
||||||
|
HANDSHAKE_TIMEOUT_S,
|
||||||
STATE_CACHE_TTL_S,
|
STATE_CACHE_TTL_S,
|
||||||
ControlMode,
|
ControlMode,
|
||||||
MotorType,
|
MotorType,
|
||||||
@@ -215,14 +216,17 @@ class RobstrideMotorsBus(MotorsBusBase):
|
|||||||
self._is_connected = False
|
self._is_connected = False
|
||||||
raise ConnectionError(f"Failed to connect to CAN bus: {e}") from e
|
raise ConnectionError(f"Failed to connect to CAN bus: {e}") from e
|
||||||
|
|
||||||
def _query_status_via_clear_fault(self, motor: NameOrID) -> tuple[bool, can.Message | None]:
|
def _query_status_via_clear_fault(
|
||||||
|
self, motor: NameOrID, timeout: float | None = None
|
||||||
|
) -> tuple[bool, can.Message | None]:
|
||||||
motor_name = self._get_motor_name(motor)
|
motor_name = self._get_motor_name(motor)
|
||||||
motor_id = self._get_motor_id(motor_name)
|
motor_id = self._get_motor_id(motor_name)
|
||||||
recv_id = self._get_motor_recv_id(motor_name)
|
recv_id = self._get_motor_recv_id(motor_name)
|
||||||
data = [0xFF] * 7 + [CAN_CMD_CLEAR_FAULT]
|
data = [0xFF] * 7 + [CAN_CMD_CLEAR_FAULT]
|
||||||
msg = can.Message(arbitration_id=motor_id, data=data, is_extended_id=False)
|
msg = can.Message(arbitration_id=motor_id, data=data, is_extended_id=False)
|
||||||
self._bus().send(msg)
|
self._bus().send(msg)
|
||||||
return self._recv_status_via_clear_fault(expected_recv_id=recv_id)
|
wait_s = RUNNING_TIMEOUT if timeout is None else float(timeout)
|
||||||
|
return self._recv_status_via_clear_fault(expected_recv_id=recv_id, timeout=wait_s)
|
||||||
|
|
||||||
def _recv_status_via_clear_fault(
|
def _recv_status_via_clear_fault(
|
||||||
self, expected_recv_id: int | None = None, timeout: float = RUNNING_TIMEOUT
|
self, expected_recv_id: int | None = None, timeout: float = RUNNING_TIMEOUT
|
||||||
@@ -280,7 +284,7 @@ class RobstrideMotorsBus(MotorsBusBase):
|
|||||||
faulted_motors = []
|
faulted_motors = []
|
||||||
|
|
||||||
for motor_name in self.motors:
|
for motor_name in self.motors:
|
||||||
has_fault, msg = self._query_status_via_clear_fault(motor_name)
|
has_fault, msg = self._query_status_via_clear_fault(motor_name, timeout=HANDSHAKE_TIMEOUT_S)
|
||||||
if msg is None:
|
if msg is None:
|
||||||
missing_motors.append(motor_name)
|
missing_motors.append(motor_name)
|
||||||
elif has_fault:
|
elif has_fault:
|
||||||
|
|||||||
@@ -114,7 +114,8 @@ CAN_CMD_SAVE_PARAM = 0xAA
|
|||||||
CAN_PARAM_ID = 0x7FF
|
CAN_PARAM_ID = 0x7FF
|
||||||
|
|
||||||
|
|
||||||
RUNNING_TIMEOUT = 0.001
|
RUNNING_TIMEOUT = 0.003
|
||||||
|
HANDSHAKE_TIMEOUT_S = 0.05
|
||||||
PARAM_TIMEOUT = 0.01
|
PARAM_TIMEOUT = 0.01
|
||||||
|
|
||||||
STATE_CACHE_TTL_S = 0.02
|
STATE_CACHE_TTL_S = 0.02
|
||||||
|
|||||||
Reference in New Issue
Block a user