feathersdk.robot.robot Module¶
- exception feathersdk.robot.robot.ActuatorNotFoundError¶
Bases:
ExceptionRaised when accessing a non-existent actuator, or when an actuator cannot be found on any CAN interfaces.
- class feathersdk.robot.robot.FeatherRobotConfig(*, version, set_atexit_handler=True, set_signal_handlers=True, enable_cans_during_find=False, kill_on_failed_abort=True, skip_initialization=False, logging_config, comms_manager_config, data_monitor_service_config, battery_service_config, neck_system_config, torso_system_config, navigation_system_config, arms_system_config, manipulation_system_config)¶
Bases:
PyDFrozenBaseModelConfiguration for a full FeatherRobot.
- Parameters:
version (Version)
set_atexit_handler (bool)
set_signal_handlers (bool)
enable_cans_during_find (bool)
kill_on_failed_abort (bool)
skip_initialization (bool)
logging_config (LoggingConfig | None)
comms_manager_config (CommsManagerConfig | None)
data_monitor_service_config (DataMonitorServiceConfig | None)
battery_service_config (BatteryServiceConfig | None)
neck_system_config (NeckSystemConfig | None)
torso_system_config (TorsoSystemConfig | None)
navigation_system_config (NavigationSystemConfig | None)
arms_system_config (ArmsSystemConfig | None)
manipulation_system_config (ManipulationSystemConfig | None)
- version: Version¶
The version of the Feather system.
- enable_cans_during_find: bool¶
Whether to enable all CAN interfaces when attempting to find motors. Requires sudo privileges.
- kill_on_failed_abort: bool¶
Whether to kill the process if the robot fails to abort cleanly, to avoid hanging processes.
- skip_initialization: bool¶
Whether to skip the initialization of the robot. This is useful for debugging purposes, flashing the motor firmware, etc. The robot will stop initialization after finding all motors, but not initializing them.
- comms_manager_config: CommsManagerConfig | None¶
The configuration for the comms manager.
- data_monitor_service_config: DataMonitorServiceConfig | None¶
The configuration for the data monitor service, or None to disable
- battery_service_config: BatteryServiceConfig | None¶
The configuration for the battery service, or None to disable
- neck_system_config: NeckSystemConfig | None¶
The configuration for the neck system, or None to disable
- torso_system_config: TorsoSystemConfig | None¶
The configuration for the torso system, or None to disable
The configuration for the navigation system, or None to disable
- arms_system_config: ArmsSystemConfig | None¶
The configuration for the arms system, or None to disable
- manipulation_system_config: ManipulationSystemConfig | None¶
The configuration for the manipulation system, or None to disable
- model_config: ClassVar[ConfigDict] = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class feathersdk.robot.robot.FeatherRobot(config, *args, **kwargs)¶
Bases:
Abortable,Configurable[FeatherRobotConfig]A Feather robot.
- Parameters:
config (FeatherRobotConfig) – The configuration for the robot.
_client (Optional["FeatherClient"] = None) – Do not set manually! Only used internally by the FeatherClient. Initializes the robot instance assuming it is just meant for data storage and API interfacing instead of controlling the physical robot.
- data_monitor_service: DataMonitorService | None¶
Manages the data monitoring and robot telemetry gathering, if using.
- battery_service: BatteryService | None¶
Manages the battery state and detects power events like hitting the estop, if using.
- neck_system: NeckSystem | None¶
Manages the neck, if using.
- torso_system: TorsoSystem | None¶
Manages the torso lift, if using.
Manages the navigation, if using.
- arms_system: ArmsSystem | None¶
Manages the arms, if using.
- modules: dict[str, RobotModule[TRobotModuleConfig]]¶
Dictionary of module name to module.
- actuator_systems: dict[str, ActuatorSystem[TActuatorSystemConfig]]¶
Dictionary of actuator system name to actuator system.
- actuators_by_id: dict[int, Actuator[TActuatorConfig]]¶
Dictionary of actuator integer ID to actuator.
- message_router: MessageRouter¶
Routes socket result messages to the appropriate actuator handlers.
- feathersdk.robot.robot.initialize_feather_system(config_or_path, ros_node=None)¶
Initialize the feather system from a config file.
- Parameters:
config_or_path (FeatherRobotConfig | Path | str) – The configuration for the robot, or the path to a config file.
ros_node (Any | None) – If using ROS, pass the ROS node here. This is mainly used to set the ROS logger for logging.
- Return type: