genericroboticarm.robo_APIs.precise_flex.pf_implementation module

A implementation of RobotInterface for a Precise Flex 400. The current communication is designed nor non-verbose mode. Manual movement follows carthesian coordianates while automatic movements follow joint coordinates.

class genericroboticarm.robo_APIs.precise_flex.pf_implementation.MoveProfile(Speed: 'int', Speed2: 'int' = 0, Accel: 'int' = 50, AccRamp: 'float' = 0.1, Decel: 'int' = 50, DecRamp: 'float' = 0.1, InRange: 'int' = -1, Straight: 'int' = 0)[source]

Bases: object

AccRamp: float = 0.1
Accel: int = 50
DecRamp: float = 0.1
Decel: int = 50
InRange: int = -1
Speed: int
Speed2: int = 0
Straight: int = 0
class genericroboticarm.robo_APIs.precise_flex.pf_implementation.PFImplementation(start_simulating: bool = True, host: str = '10.10.0.98', port: int = 10100)[source]

Bases: InteractiveRobot

GRIPPER_CLOSED: float = 74
GRIPPER_OPEN: float = 85
MAX_Z_COORDINATE: float = 750.0
_abc_impl = <_abc._abc_data object>
cancel_transfer()[source]
Returns:

property current_coordinates: Dict[str, float]

return:

finish_movement()[source]
get_labware(intermediate_actions: List[str], device: str, position: int)[source]
Parameters:
  • position

  • device

  • intermediate_actions

Returns:

classmethod get_name() str[source]

The name will be used as parameter in command line startup (-r), as sila server name and to save the position graph. :return: the name

classmethod get_used_cli_args() dict[str, str][source]

Defines the arguments that are forwarded from the command line to the robots constructor. :return: a dictionary of type [constructor parameter name, command line argument name]

grip_close()[source]
Returns:

grip_open()[source]
Returns:

property gripper_fully_closed: bool

Tests whether the gripper is closed further

init_connection(host: str, port: int)[source]

Sets up the hardware connection :return:

property joint_names: list[str]

Returns a list of names of the individual coordinates used by the robot. For example [x, y, z, roll, pitch, grip] or [j1, j2, j3, j4, j5] :return:

move_joint(joint_index: int, target_angle: float) str[source]

Moves a specific joint to a specific angle. :param joint_index: :param target_angle: :return:

move_relative(movements: List[Tuple[str, float]], **kwargs)[source]
Parameters:

movements

Returns:

move_to_coordinates(coords: Dict[str, float], **kwargs) None[source]
Parameters:

coords

Returns:

move_to_position(target_position, offset=None)[source]
Parameters:
  • offset

  • target_position

Returns:

property name: str
property number_internal_positions: int

return:

prepare_for_input(internal_pos: int, device: str, position: int, plate_type: str) bool[source]
Parameters:
  • plate_type

  • plate_type

  • position

  • device

  • internal_pos

Returns:

prepare_for_output(internal_pos: int, device: str, position: int) bool[source]
Parameters:
  • position

  • device

  • internal_pos

Returns:

put_labware(intermediate_actions: List[str], device: str, position: int)[source]
Parameters:
  • position

  • device

  • intermediate_actions

Returns:

run_custom_command(cmd: str) str[source]

Runs a custom command on the hardware. The implementation for a specific hardware might look very different and the response must be a string. Be default returns ‘Not Implemented’. Use on your own risk. :param cmd: :return:

send_command(cmd: str, error_sensitive: bool = True) str[source]
set_acceleration(new_acceleration: float, **kwargs)[source]
Parameters:

new_acceleration

Returns:

set_speed(new_speed: float)[source]

Set the speed :param new_speed: :return:

socket: PFSocket | PFSimulation
stop_moving()[source]

Immediately(Or as quickly as possible) stops all movements :return:

class genericroboticarm.robo_APIs.precise_flex.pf_implementation.PFSocket(host: str, port: int)[source]

Bases: object

BYTES_BUFFER = 1024
configure_movement_profiles()[source]
connect()[source]

Enables the robot high power. Returns an error if power does not come on within the specified timeout. Also attaches the robot. The robot must be attached to allow motion commands.

disconnect()[source]

Also attaches the robot. The robot must be attached to allow motion commands and disables the robot high power.

error_handling(error_code, try_number: int = 0) bool[source]

Tries to fix the error and returns whether progress was made.

receive_data()[source]
send_command(cmd: str, try_number: int = 0) tuple[int, str][source]
socket: socket | None