...
Code Block | ||||
---|---|---|---|---|
| ||||
set_units("mm", "deg") # set the linear and angular unit types for the program # waypoints are defined in the header of the program waypoint_1 = j[0.764, 1.64, 0.741, 0.433, 0.140, 2.74] waypoint_2 = p[361.53,947.19, 937.11, 45, 0, 0] # the main function contains the program code def main(): movel(waypoint_1) # a linear move command sleep(0.5) # wait for 0.5 seconds movej(waypoint_2) # a joint move command sleep(0.5) # wait for 0.5 seconds |
Stubs
Linear and Angular Units
The TRPL supports multiple linear and angular measurement units. It is advised to define the units used in a program as the first line of the program. Changing units at runtime is supported, but highly discouraged.
...
classAnchor robot_command.rpl.Joints robot_command.rpl.Joints robot_command.rpl.
Joints
(j1: float = 0.0, j2: float = 0.0, j3: float = 0.0, j4: float = 0.0, j5: float = 0.0, j6: float = 0.0)The Joints object consists of six joint position values to be used as target for move commands or to represent the current robot joint state.
Examples
Code Block language python linenumbers false waypoint_1 = Joint(323.62, 345.37, 477.76, 431.10, 918.62) waypoint_2 = Joint(j3=0.543) # all other joint positions are 0.0 by default
Anchor robot_command.rpl.Joints.copy robot_command.rpl.Joints.copy copy
() -> robot_command.rpl.joints.JointsCreates a copy of the joints object.
Returns: Copy of the joints object.
staticAnchor robot_command.rpl.Joints.from_list robot_command.rpl.Joints.from_list from_list
(joint_list: List[float]) -> robot_command.rpl.joints.JointsCreates a new joint object from a list of joint positions.
Parameters: joint_list – List of the six joint positions.
Returns: New joints object.
Anchor robot_command.rpl.Joints.from_ros_units robot_command.rpl.Joints.from_ros_units from_ros_units
(angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None)Converts the joints object from native ROS units to the target units, removing the unit type if any.
Parameters: angular_unit – Unit type for the angular joint positions.
Returns: The resulting joints object.
Anchor robot_command.rpl.Joints.to_list robot_command.rpl.Joints.to_list to_list
() -> List[float]Convert the joints object to a list of joint positions.
Returns: List of the six joint positions.
Anchor robot_command.rpl.Joints.to_ros_units robot_command.rpl.Joints.to_ros_units to_ros_units
(angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None) -> robot_command.rpl.joints.JointsConverts the joints object to native ROS units, removing the unit type if any. This is useful if you want to send the resulting data to a ROS service.
Parameters: angular_unit – Unit type for the angular joint positions.
Returns: The resulting joints object.
Anchor robot_command.rpl.Joints.with_units robot_command.rpl.Joints.with_units with_units
(angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None) -> robot_command.rpl.joints.JointsAdds a unit type to all positions of the joints object. The defaults are the native ROS units. In case a joint position already has units, the unit type is converted accordingly.
Parameters: angular_unit – Unit type for the angular joint positions.
Returns: The resulting joints object.
Anchor robot_command.rpl.Joints.without_units robot_command.rpl.Joints.without_units without_units
(angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None) -> robot_command.rpl.joints.JointsRemoves units from the joint positions if any. If no unit type is specified ROS units are assumed.
Parameters: angular_unit – Unit type for the angular joint positions.
Returns: The resulting joints object.
...
Anchor robot_command.rpl.get_joint_values robot_command.rpl.get_joint_values robot_command.rpl.
get_joint_values
() -> robot_command.rpl.joints.JointsReturns the current joint values.
Returns: Current joint values.
Examples
Code Block language python linenumbers false joint_value = get_joint_values()
...
classAnchor robot_command.rpl.Pose robot_command.rpl.Pose robot_command.rpl.
Pose
(x: Union[numbers.Number, pint.quantity.build_quantity_class.<locals>.Quantity] = 0.0, y: Union[numbers.Number, pint.quantity.build_quantity_class.<locals>.Quantity] = 0.0, z: Union[numbers.Number, pint.quantity.build_quantity_class.<locals>.Quantity] = 0.0, a: Union[numbers.Number, pint.quantity.build_quantity_class.<locals>.Quantity] = 0.0, b: Union[numbers.Number, pint.quantity.build_quantity_class.<locals>.Quantity] = 0.0, c: Union[numbers.Number, pint.quantity.build_quantity_class.<locals>.Quantity] = 0.0, offset: str = '')A robot pose consists of XYZ position ABC orientation parameters.
Optionally, an offset frame can be recorded with a waypoint.
Examples
Code Block language python linenumbers false waypoint_1 = Pose(483.21, 34.21, 21.59, 42.03, 71.14) waypoint_2 = Pose(a=0.543) # all other coordinate values are 0.0 per default.
Anchor robot_command.rpl.Pose.__mul__ robot_command.rpl.Pose.__mul__ __mul__
(other: robot_command.rpl.pose.Pose) -> robot_command.rpl.pose.PoseUse KDL frame multiplication to apply an offset to a pose.
Parameters: other – Other pose.
Returns: New pose object.
Code Block language python linenumbers false new_wp = waypoint_1 * Pose(x=10) # translates waypoint_1 by x=10 old_wp = new_wp * Pose(x=10).inverse() # translates new_wp back
Anchor robot_command.rpl.Pose.copy robot_command.rpl.Pose.copy copy
() -> robot_command.rpl.pose.PoseCreates a copy of the pose object.
Returns: A copy of the pose.
staticAnchor robot_command.rpl.Pose.from_kdl_frame robot_command.rpl.Pose.from_kdl_frame from_kdl_frame
(frame: PyKDL.Frame) -> robot_command.rpl.pose.PoseConverts a KDL frame to a pose object.
Parameters: frame – KDL frame.
Returns: New pose object.
staticAnchor robot_command.rpl.Pose.from_list robot_command.rpl.Pose.from_list from_list
(pose_list: List[float]) -> robot_command.rpl.pose.PoseCreates a new pose object from a list of coordinates.
Parameters: pose_list – List of the six coordinates.
Returns: New pose object.
staticAnchor robot_command.rpl.Pose.from_ros_pose robot_command.rpl.Pose.from_ros_pose from_ros_pose
(pose: Union[geometry_msgs.msg._Pose.Pose, geometry_msgs.msg._PoseStamped.PoseStamped]) -> robot_command.rpl.pose.PoseConverts a ROS native pose to a pose object.
Parameters: pose – The ROS stamped pose.
Returns: New pose object.
Anchor robot_command.rpl.Pose.from_ros_units robot_command.rpl.Pose.from_ros_units from_ros_units
(linear_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None, angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None)Converts the pose from native ROS units to the target units, removing the unit type.
Parameters: linear_unit – Unit type for linear coordinates.
angular_unit – Unit type for angular coordinates.
Returns: The resulting pose.
Anchor robot_command.rpl.Pose.inverse robot_command.rpl.Pose.inverse inverse
() -> robot_command.rpl.pose.PoseCreates the inverse of the pose. Useful for calculating offset.
Returns: New pose object.
Anchor robot_command.rpl.Pose.to_kdl_frame robot_command.rpl.Pose.to_kdl_frame to_kdl_frame
() -> PyKDL.FrameConverts the pose object to a KDL frame.
Returns: KDL frame.
Anchor robot_command.rpl.Pose.to_list robot_command.rpl.Pose.to_list to_list
() -> List[float]Convert the pose to a list of the coordinates. :return: List of the six coordinates.
Anchor robot_command.rpl.Pose.to_ros_pose robot_command.rpl.Pose.to_ros_pose to_ros_pose
() -> geometry_msgs.msg._Pose.PoseConverts the pose object to a native ROS pose.
Returns: ROS pose.
Anchor robot_command.rpl.Pose.to_ros_units robot_command.rpl.Pose.to_ros_units to_ros_units
(linear_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None, angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None) -> robot_command.rpl.pose.PoseConverts the pose to native ROS units, removing the unit type if any. This is useful if you want to send the resulting data to a ROS service.
Parameters: linear_unit – Unit type for linear coordinates.
angular_unit – Unit type for angular coordinates.
Returns: The resulting pose.
Anchor robot_command.rpl.Pose.with_units robot_command.rpl.Pose.with_units with_units
(linear_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None, angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None) -> robot_command.rpl.pose.PoseAdds a unit type to all coordinates of the pose. The defaults are the native ROS units. In case a coordinate already has units, the unit type is converted accordingly.
Parameters: linear_unit – Unit type for linear coordinates.
angular_unit – Unit type for angular coordinates.
Returns: The resulting pose.
Anchor robot_command.rpl.Pose.without_units robot_command.rpl.Pose.without_units without_units
(linear_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None, angular_unit: Optional[Union[str, pint.util.SharedRegistryObject]] = None) -> robot_command.rpl.pose.PoseRemoves units from the coordinates if any. If no unit type is specified ROS units are assumed.
Parameters: linear_unit – Unit type for linear coordinates.
angular_unit – Unit type for angular coordinates.
Returns: The resulting pose.
...
Anchor robot_command.rpl.get_pose robot_command.rpl.get_pose robot_command.rpl.
get_pose
(apply_work_offset: bool = True, apply_tool_offset: bool = True) -> robot_command.rpl.pose.PoseReturns the current robot pose.
Parameters: apply_work_offset – Applies the active work offset to the world pose.
apply_tool_offset – Applies the active tool offset to the world pose.
Returns: Current robot pose.
Examples
Code Block language python linenumbers false current_pose = get_pose()
...
Anchor robot_command.rpl.movej robot_command.rpl.movej robot_command.rpl.
movej
(target: Union[robot_command.rpl.pose.Pose, robot_command.rpl.joints.Joints], v: float = 1.0, probe: int = 0) -> Optional[Tuple[int, rospy.rostime.Time, robot_command.rpl.joints.Joints, robot_command.rpl.pose.Pose]]Moves the robot end effector to the target waypoint with a joints move. Targets can be local waypoints or global waypoints defined as pose or joints.
Parameters: target – target target
v – scale factor for velocity (default is full speed)
probe – specify the probe mode (2-6, or 0 for no probing) Probe mode 2: look for rising edge on probe signal (i.e. contact), raise ProbeFailedError if move completes without seeing a rising edge Probe mode 3: like mode 2 but does not raise error if move completes without rising edge Probe mode 4: like mode 2 but looks for falling edge Probe mode 5: like mode 4 but does not raise an error if move completes without falling edge Probe mode 6: “retract” mode, ignore falling edges and allow motion while probe signal is active, but raise ProbeUnexpectedContactError if a rising edge is seen
Returns: tuple of probe results (for probing mode 2,3,4,5) or None: (probe contact type (0 = no contact, 1 = rising, 2 = falling), time of probe contact, Joint positions at probe contact, End-effector position / orientation pose at probe contact)
Examples
Code Block language python linenumbers false movej(waypoint_1) movej("global_waypoint_1") movej(p[0, 100, 0, 90, 20, 0])
...
Anchor robot_command.rpl.movel robot_command.rpl.movel robot_command.rpl.
movel
(target: Union[robot_command.rpl.pose.Pose, robot_command.rpl.joints.Joints], a: float = 0.5, v: float = 0.5, probe: int = 0) -> Optional[Tuple[int, rospy.rostime.Time, robot_command.rpl.joints.Joints, robot_command.rpl.pose.Pose]]Moves the robot end effector in a straight line from the current position to the target waypoint. Targets can be local waypoints or global waypoints defined as pose or joints.
Parameters: target – target target
v – move velocity scaling factor 0.0 - 1.0
a – move acceleration scaling factor 0.0 - 1.0
probe – specify the probe mode (2-6, or 0 for no probing) Probe mode 2: look for rising edge on probe signal (i.e. contact), raise ProbeFailedError if move completes without seeing a rising edge Probe mode 3: like mode 2 but does not raise error if move completes without rising edge Probe mode 4: like mode 2 but looks for falling edge Probe mode 5: like mode 4 but does not raise an error if move completes without falling edge Probe mode 6: “retract” mode, ignore falling edges and allow motion while probe signal is active, but raise ProbeUnexpectedContactError if a rising edge is seen
Returns: tuple of probe results: (probe contact type (0 = no contact, 1 = rising, 2 = falling), time of probe contact, Joint positions at probe contact, End-effector position / orientation pose at probe contact)
Examples
Code Block language python linenumbers false movel(waypoint_1) movel("global_waypoint_1", a=0.4, v=0.2) movel(j[0.764, 1.64, 0.741, 0.433, 0.140, 2.74])
...
Anchor robot_command.rpl.movec robot_command.rpl.movec robot_command.rpl.
movec
(interim: Union[robot_command.rpl.pose.Pose, robot_command.rpl.joints.Joints], target: Union[robot_command.rpl.pose.Pose, robot_command.rpl.joints.Joints], a: float = 0.5, v: float = 0.5, probe: int = 0) -> Optional[Tuple[int, rospy.rostime.Time, robot_command.rpl.joints.Joints, robot_command.rpl.pose.Pose]]Circular/Arc move command.
Parameters: interim – interim waypoint
target – target waypoint
v – move velocity scaling factor 0.0 - 1.0
a – move acceleration scaling factor 0.0 - 1.0
probe – specify the probe mode (2-6, or 0 for no probing) Probe mode 2: look for rising edge on probe signal (i.e. contact), raise ProbeFailedError if move completes without seeing a rising edge Probe mode 3: like mode 2 but does not raise error if move completes without rising edge Probe mode 4: like mode 2 but looks for falling edge Probe mode 5: like mode 4 but does not raise an error if move completes without falling edge Probe mode 6: “retract” mode, ignore falling edges and allow motion while probe signal is active, but raise ProbeUnexpectedContactError if a rising edge is seen
Returns: tuple of probe results (for probing mode 2,3,4,5) or None: (probe contact type (0 = no contact, 1 = rising, 2 = falling), time of probe contact, Joint positions at probe contact, End-effector position / orientation pose at probe contact)
...
Anchor robot_command.rpl.movef robot_command.rpl.movef robot_command.rpl.
movef
(target: Union[robot_command.rpl.pose.Pose, robot_command.rpl.joints.Joints]) -> NoneFree move command.
Parameters: target – target target
...
Anchor robot_command.rpl.set_work_offset robot_command.rpl.set_work_offset robot_command.rpl.
set_work_offset
(name: str, pose: Optional[Union[robot_command.rpl.pose.Pose, str]] = None, position: Optional[Union[robot_command.rpl.pose.Pose, str]] = None, orientation: Optional[Union[robot_command.rpl.pose.Pose, str]] = None) -> NoneSets a work offset using a pose, position or orientation or clears an offset.
The position and orientation arguments can be combined to overwrite the pose’s position or orientation.
Parameters: name – Name of the work offset
pose – Pose to use for the work offset
position – Use the position of this pose to override the position of the pose.
orientation – Use the orientation of this pose to override the orientation of the pose.
Examples
Code Block language python linenumbers false set_work_offset("table", p[0, 100, 0, 0, 0, 0]) set_work_offset("offset_1", waypoint_2, orientation=Pose(a=90)) set_work_offset("offset_1") # clears offset_1
Anchor robot_command.rpl.get_work_offset robot_command.rpl.get_work_offset robot_command.rpl.
get_work_offset
(name: str) -> Optional[robot_command.rpl.pose.Pose]Returns the pose of a work offset.
Parameters: name – Name of the work offset.
Returns: Pose of the work offset.
Raises: TypeError – if no work offset with the name is found
Examples
Code Block language python linenumbers false pose = get_work_offset("table")
...
Anchor robot_command.rpl.set_tool_offset robot_command.rpl.set_tool_offset robot_command.rpl.
set_tool_offset
(name: str, pose: Union[robot_command.rpl.pose.Pose, str] = None, position: Union[robot_command.rpl.pose.Pose, str] = None, orientation: Union[robot_command.rpl.pose.Pose, str] = None) -> NoneSets a tool offset using a pose, position or orientation or clears an offset.
The position and orientation arguments can be combined to overwrite the pose’s position or orientation.
Parameters: name – Name of the tool offset
pose – Pose to use for the tool offset
position – Use the position of this pose to override the position of the pose.
orientation – Use the orientation of this pose to override the orientation of the pose.
Examples
Code Block language python linenumbers false set_tool_offset("some_tool", p[0, 0, 100, 0, 0, 0]) set_tool_offset("other_tool", waypoint_2, position=Pose(z=0.1)) set_tool_offset("other_tool") # clears offset other_tool
Anchor robot_command.rpl.get_tool_offset robot_command.rpl.get_tool_offset robot_command.rpl.
get_tool_offset
(name: str) -> Optional[robot_command.rpl.pose.Pose]Returns the pose of a tool offset.
Parameters: name – Name of the tool offset.
Returns: Pose of the work offset or None if it does not exist.
Raises: TypeError – if no tool offset with the name is found
Examples
Code Block language python linenumbers false pose = get_tool_offset("tool1")
...
Anchor robot_command.rpl.set_machine_offset robot_command.rpl.set_machine_offset robot_command.rpl.
set_machine_offset
(pose: Union[robot_command.rpl.pose.Pose, str], instance: str = '') -> NoneSets the origin offset for the 3D visualization of the PathPilot remote machine model.
Parameters: pose – Pose to use for the machine offset.
instance – Optional machine instance name. If not given, default instance is used.
Examples
Code Block language python linenumbers false set_machine_offset(p[0,0,0,90,0,0], "instance") set_machine_offset(Pose(x=100)) # sets offset for default instance
...
Anchor robot_command.rpl.probel robot_command.rpl.probel robot_command.rpl.
probel
(target: Union[robot_command.rpl.pose.Pose, robot_command.rpl.joints.Joints, str], a: float = 0.5, v: float = 0.1, v_retract: float = 0.1, away: bool = False) -> robot_command.rpl.pose.PoseSimple probing cycle that returns to the initial pose (regardless of the probe result). The sequence is:
Linear move at specified vel / accel scale towards the target position
Stop at probe contact, error condition, or motion end
Retract to original position
Raise any errors from the cycle, or return the probe result
Parameters: target – end point of probing motion (probe cycle uses movel internally)
v – move velocity scaling factor 0.0 - 1.0
a – move acceleration scaling factor 0.0 - 1.0
v_retract – velocity scaling factor to use during retract phase
away – Probe towards work (default) if False, otherwise probe away from work
Info assumes mode 2/4 for probing, meaning an error will be thrown if it reaches the end without contact. Caller can catch this exception if they want mode 3/5 functionality
Examples
Code Block language python linenumbers false contact_pose = probel(probe_goal_pose, a=0.5, v=0.01, v_retract=0.1, away=False)
...
Anchor robot_command.calibration.calculate_tool_offset_4 robot_command.calibration.calculate_tool_offset_4 robot_command.calibration.
calculate_tool_offset_4
(wp1: robot_command.rpl.pose.Pose, wp2: robot_command.rpl.pose.Pose, wp3: robot_command.rpl.pose.Pose, wp4: robot_command.rpl.pose.Pose) -> robot_command.rpl.pose.PoseCalculate the XYZ coordinates of the tool offset using 4 waypoints using the center of sphere method.
Parameters: wp1 – Waypoint 1
wp2 – Waypoint 2
wp3 – Waypoint 3
wp4 – Waypoint 4
Returns: The tool offset pose containing the XYZ tool offset.
Anchor robot_command.calibration.calculate_work_offset_3 robot_command.calibration.calculate_work_offset_3 robot_command.calibration.
calculate_work_offset_3
(origin_wp: robot_command.rpl.pose.Pose, x_axis_wp: robot_command.rpl.pose.Pose, y_axis_wp: robot_command.rpl.pose.Pose) -> robot_command.rpl.pose.PoseCalculates the work offset origin pose based on 3 waypoints that lie on a plane.
The angular unit of all input poses must be in radians.
Parameters: origin_wp – Origin of the plane.
x_axis_wp – A waypoint that lies on the X-axis of the plane.
y_axis_wp – A waypoint that lies in the direction of the Y-axis of the plane.
Returns: Origin waypoint of the constructed work offset.
Anchor robot_command.calibration.calculate_work_offset_4 robot_command.calibration.calculate_work_offset_4 robot_command.calibration.
calculate_work_offset_4
(origin_wp: robot_command.rpl.pose.Pose, x_axis_wp: robot_command.rpl.pose.Pose, y_axis_wp: robot_command.rpl.pose.Pose, position_wp: robot_command.rpl.pose.Pose) -> robot_command.rpl.pose.PoseCalculates the work offset origin pose based on 3 waypoints that lie on a plane and one additional waypoint which is used to define the origin location.
The angular unit of all input poses must be in radians.
Parameters: origin_wp – Origin of the plane.
x_axis_wp – A waypoint that lies on the X-axis of the plane.
y_axis_wp – A waypoint that lies in the direction of the Y-axis of the plane.
position_wp – Origin location of the new work offset.
Returns: Origin waypoint of the constructed work offset.