Source code for pyniryo2.saved_poses.saved_poses

# Communication imports
from pyniryo2.robot_commander import RobotCommander
from pyniryo2.objects import PoseObject

from .services import SavedPosesServices


[docs]class SavedPoses(RobotCommander): # --- Public functions --- # def __init__(self, client): super(SavedPoses, self).__init__(client) self._services = SavedPosesServices(self._client)
[docs] def get_pose_saved(self, pose_name): """ Get pose saved in from Ned's memory Examples: :: pose = saved_poses.get_pose_saved("pose1") :param pose_name: Pose name in robot's memory :type pose_name: str :return: Pose associated to pose_name :rtype: PoseObject """ self._check_type(pose_name, str) req = self._services.get_saved_pose_request(pose_name) resp = self._services.get_pose_service.call(req) self._check_result_status(resp) return self._services.get_saved_pose_response_to_pose(resp)
[docs] def save_pose(self, pose_name, *args): """ Save pose (x, y, z, roll, pitch, yaw) in robot's memory Examples: :: saved_poses.save_pose("pose1", 0.3, 0.0, 0.3, 0.0, 1.57, 0.0) saved_poses.save_pose("pose1", [0.3, 0.0, 0.3, 0.0, 1.57, 0.0]) saved_poses.save_pose("pose1", PoseObject(0.3, 0.0, 0.3, 0.0, 1.57, 0.0)) :type pose_name: str :param args: either 6 args (1 for each coordinates) or a list of 6 coordinates or a PoseObject :type args: Union[list[float], tuple[float], PoseObject] :rtype: None """ self._check_type(pose_name, str) req = self._services.save_pose_request(pose_name, self._args_pose_to_list(*args)) resp = self._services.manage_pose_service.call(req) self._check_result_status(resp)
[docs] def delete_pose(self, pose_name): """ Delete pose from robot's memory Examples: :: if "pose1" in saved_poses.get_saved_pose_list(): saved_poses.delete_pose("pose1") :type pose_name: str :rtype: None """ self._check_type(pose_name, str) req = self._services.delete_pose_request(pose_name) resp = self._services.manage_pose_service.call(req) self._check_result_status(resp)
[docs] def get_saved_pose_list(self): """ Get list of poses' name saved in robot memory Examples: :: >> print(saved_poses.get_saved_pose_list()) ["pose1", "pose2", "pose3"] :rtype: list[str] """ req = self._services.get_pose_list_request() resp = self._services.get_pose_list_service.call(req) return self._services.get_saved_pose_list_response_to_list(resp)