feathersdk.robot.manipulation_platform Module¶
- class feathersdk.robot.manipulation_platform.BimanualManipulationPlatform(motors_manager: MotorsManager, config: dict, power: BatterySystem = None, manipulator_config: dict = {})¶
Bases:
SteppableSystemCoordinates left/right arms, optional hands/grippers, and shared stepping.
subsystemslists arms first, then any initialized manipulators, forstart()and_step().- disable_arms()¶
Disable left and right arms (compliance/stop via each
ArmSystem.disable()).
- enable_arms()¶
Enable left and right arms (operation mode, with retries per
ArmSystem.enable()).
- freeze_current_arm_state(kp: float = 500, kd: float = 5)¶
Hold both arms at their current pose using the given operation gains.
- Parameters:
kp – Position gain forwarded to each
ArmSystem.freeze_current_arm_state().kd – Damping gain forwarded to each arm.
- get_state() dict¶
Merge
ArmSystem.get_state()for the right and left arms.- Returns:
Motor name → per-motor snapshot (
temp,torque,angle,velocity) as returned by each arm.- Return type:
dict
- is_calibrated(check_right: bool = True, check_left: bool = True) bool¶
Check if arms are calibrated.
- Parameters:
check_right – Check right arm calibration state
check_left – Check left arm calibration state
- Returns:
True if all specified arms are calibrated
- on_abort()¶
Disable both arms and tear down RH56F1 hands if they were initialized.
RH56F1 EtherCAT masters are released via
destroy()so a new robot instance can claim them after abort.
- start()¶
Start this platform and call
start()on any subsystem that defines it.