wandelbots_api_client 26.3.0.dev29__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wandelbots_api_client/__init__.py +48 -0
- wandelbots_api_client/api/__init__.py +63 -0
- wandelbots_api_client/api/application_api.py +1514 -0
- wandelbots_api_client/api/cell_api.py +1424 -0
- wandelbots_api_client/api/controller_api.py +2951 -0
- wandelbots_api_client/api/controller_ios_api.py +1205 -0
- wandelbots_api_client/api/coordinate_systems_api.py +1267 -0
- wandelbots_api_client/api/device_configuration_api.py +1193 -0
- wandelbots_api_client/api/library_program_api.py +1326 -0
- wandelbots_api_client/api/library_program_metadata_api.py +1090 -0
- wandelbots_api_client/api/library_recipe_api.py +1351 -0
- wandelbots_api_client/api/library_recipe_metadata_api.py +1050 -0
- wandelbots_api_client/api/license_api.py +865 -0
- wandelbots_api_client/api/motion_api.py +3596 -0
- wandelbots_api_client/api/motion_group_api.py +956 -0
- wandelbots_api_client/api/motion_group_infos_api.py +2611 -0
- wandelbots_api_client/api/motion_group_jogging_api.py +685 -0
- wandelbots_api_client/api/motion_group_kinematic_api.py +1055 -0
- wandelbots_api_client/api/program_api.py +1987 -0
- wandelbots_api_client/api/program_operator_api.py +1881 -0
- wandelbots_api_client/api/program_values_api.py +1444 -0
- wandelbots_api_client/api/store_collision_components_api.py +3074 -0
- wandelbots_api_client/api/store_collision_scenes_api.py +951 -0
- wandelbots_api_client/api/store_object_api.py +1387 -0
- wandelbots_api_client/api/system_api.py +1075 -0
- wandelbots_api_client/api/version_api.py +237 -0
- wandelbots_api_client/api/virtual_robot_api.py +1583 -0
- wandelbots_api_client/api/virtual_robot_behavior_api.py +649 -0
- wandelbots_api_client/api/virtual_robot_mode_api.py +1467 -0
- wandelbots_api_client/api/virtual_robot_setup_api.py +2116 -0
- wandelbots_api_client/api_client.py +688 -0
- wandelbots_api_client/api_response.py +20 -0
- wandelbots_api_client/authorization.py +243 -0
- wandelbots_api_client/configuration.py +579 -0
- wandelbots_api_client/exceptions.py +216 -0
- wandelbots_api_client/models/__init__.py +316 -0
- wandelbots_api_client/models/abb_controller.py +112 -0
- wandelbots_api_client/models/abb_controller_egm_server.py +87 -0
- wandelbots_api_client/models/activate_license_request.py +86 -0
- wandelbots_api_client/models/add_request.py +95 -0
- wandelbots_api_client/models/all_joint_positions_request.py +96 -0
- wandelbots_api_client/models/all_joint_positions_response.py +109 -0
- wandelbots_api_client/models/api_version.py +86 -0
- wandelbots_api_client/models/app.py +148 -0
- wandelbots_api_client/models/array_input.py +114 -0
- wandelbots_api_client/models/array_output.py +116 -0
- wandelbots_api_client/models/behavior.py +35 -0
- wandelbots_api_client/models/blending_auto.py +99 -0
- wandelbots_api_client/models/blending_position.py +97 -0
- wandelbots_api_client/models/box.py +98 -0
- wandelbots_api_client/models/box2.py +112 -0
- wandelbots_api_client/models/box3.py +112 -0
- wandelbots_api_client/models/capsule.py +87 -0
- wandelbots_api_client/models/capsule2.py +97 -0
- wandelbots_api_client/models/capsule3.py +101 -0
- wandelbots_api_client/models/capture.py +86 -0
- wandelbots_api_client/models/cell.py +142 -0
- wandelbots_api_client/models/circle.py +99 -0
- wandelbots_api_client/models/code_with_arguments.py +108 -0
- wandelbots_api_client/models/collection_value.py +322 -0
- wandelbots_api_client/models/collider.py +105 -0
- wandelbots_api_client/models/collider_input.py +105 -0
- wandelbots_api_client/models/collider_output.py +105 -0
- wandelbots_api_client/models/collider_output_shape.py +242 -0
- wandelbots_api_client/models/collider_shape.py +280 -0
- wandelbots_api_client/models/collision.py +110 -0
- wandelbots_api_client/models/collision_contact.py +92 -0
- wandelbots_api_client/models/collision_motion_group.py +124 -0
- wandelbots_api_client/models/collision_motion_group_assembly.py +128 -0
- wandelbots_api_client/models/collision_robot_configuration_input.py +121 -0
- wandelbots_api_client/models/collision_robot_configuration_output.py +121 -0
- wandelbots_api_client/models/collision_scene.py +117 -0
- wandelbots_api_client/models/collision_scene_assembly.py +133 -0
- wandelbots_api_client/models/command.py +140 -0
- wandelbots_api_client/models/command_settings.py +104 -0
- wandelbots_api_client/models/comparator.py +39 -0
- wandelbots_api_client/models/compound.py +114 -0
- wandelbots_api_client/models/container_environment_inner.py +87 -0
- wandelbots_api_client/models/container_image.py +122 -0
- wandelbots_api_client/models/container_image_secrets_inner.py +86 -0
- wandelbots_api_client/models/container_resources.py +89 -0
- wandelbots_api_client/models/container_storage.py +97 -0
- wandelbots_api_client/models/controller_capabilities.py +89 -0
- wandelbots_api_client/models/controller_instance.py +148 -0
- wandelbots_api_client/models/controller_instance_list.py +109 -0
- wandelbots_api_client/models/convex_hull.py +109 -0
- wandelbots_api_client/models/convex_hull2.py +97 -0
- wandelbots_api_client/models/convex_hull3.py +97 -0
- wandelbots_api_client/models/coordinate_system.py +108 -0
- wandelbots_api_client/models/coordinate_systems.py +109 -0
- wandelbots_api_client/models/create_program_run200_response.py +88 -0
- wandelbots_api_client/models/create_program_run_request.py +86 -0
- wandelbots_api_client/models/create_trigger200_response.py +86 -0
- wandelbots_api_client/models/create_trigger_request.py +101 -0
- wandelbots_api_client/models/cubic_spline.py +109 -0
- wandelbots_api_client/models/cubic_spline_cubic_spline_parameter.py +93 -0
- wandelbots_api_client/models/cubic_spline_parameter.py +93 -0
- wandelbots_api_client/models/cycle_time.py +86 -0
- wandelbots_api_client/models/cylinder.py +87 -0
- wandelbots_api_client/models/cylinder2.py +95 -0
- wandelbots_api_client/models/cylinder3.py +101 -0
- wandelbots_api_client/models/devices_inner.py +321 -0
- wandelbots_api_client/models/dh_parameter.py +98 -0
- wandelbots_api_client/models/direction.py +34 -0
- wandelbots_api_client/models/direction_jogging_request.py +136 -0
- wandelbots_api_client/models/error.py +87 -0
- wandelbots_api_client/models/execute_trajectory_request.py +182 -0
- wandelbots_api_client/models/execute_trajectory_response.py +223 -0
- wandelbots_api_client/models/execution_result.py +113 -0
- wandelbots_api_client/models/external_joint_stream_datapoint.py +96 -0
- wandelbots_api_client/models/external_joint_stream_datapoint_value.py +96 -0
- wandelbots_api_client/models/fanuc_controller.py +99 -0
- wandelbots_api_client/models/feedback_collision.py +126 -0
- wandelbots_api_client/models/feedback_joint_limit_exceeded.py +101 -0
- wandelbots_api_client/models/feedback_out_of_workspace.py +103 -0
- wandelbots_api_client/models/feedback_singularity.py +102 -0
- wandelbots_api_client/models/flag.py +86 -0
- wandelbots_api_client/models/force_vector.py +103 -0
- wandelbots_api_client/models/geometry.py +167 -0
- wandelbots_api_client/models/get_all_program_runs200_response.py +109 -0
- wandelbots_api_client/models/get_all_triggers200_response.py +109 -0
- wandelbots_api_client/models/get_mode_response.py +87 -0
- wandelbots_api_client/models/get_trajectory_response.py +112 -0
- wandelbots_api_client/models/get_trajectory_sample_response.py +90 -0
- wandelbots_api_client/models/google_protobuf_any.py +102 -0
- wandelbots_api_client/models/http_exception_response.py +86 -0
- wandelbots_api_client/models/http_validation_error.py +109 -0
- wandelbots_api_client/models/http_validation_error2.py +109 -0
- wandelbots_api_client/models/image_credentials.py +88 -0
- wandelbots_api_client/models/info_service_capabilities.py +110 -0
- wandelbots_api_client/models/initialize_movement_request.py +111 -0
- wandelbots_api_client/models/initialize_movement_response.py +96 -0
- wandelbots_api_client/models/initialize_movement_response_init_response.py +89 -0
- wandelbots_api_client/models/io.py +105 -0
- wandelbots_api_client/models/io_description.py +156 -0
- wandelbots_api_client/models/io_value.py +104 -0
- wandelbots_api_client/models/ios.py +109 -0
- wandelbots_api_client/models/jogging_response.py +117 -0
- wandelbots_api_client/models/jogging_service_capabilities.py +87 -0
- wandelbots_api_client/models/joint_jogging_request.py +108 -0
- wandelbots_api_client/models/joint_limit.py +123 -0
- wandelbots_api_client/models/joint_limit_exceeded.py +96 -0
- wandelbots_api_client/models/joint_position_request.py +104 -0
- wandelbots_api_client/models/joint_trajectory.py +117 -0
- wandelbots_api_client/models/joints.py +86 -0
- wandelbots_api_client/models/kinematic_service_capabilities.py +96 -0
- wandelbots_api_client/models/kuka_controller.py +112 -0
- wandelbots_api_client/models/kuka_controller_rsi_server.py +92 -0
- wandelbots_api_client/models/license.py +124 -0
- wandelbots_api_client/models/license_status.py +88 -0
- wandelbots_api_client/models/license_status_enum.py +37 -0
- wandelbots_api_client/models/limit_settings.py +223 -0
- wandelbots_api_client/models/limits_override.py +132 -0
- wandelbots_api_client/models/list_io_descriptions_response.py +109 -0
- wandelbots_api_client/models/list_io_values_response.py +109 -0
- wandelbots_api_client/models/list_payloads_response.py +109 -0
- wandelbots_api_client/models/list_program_metadata_response.py +109 -0
- wandelbots_api_client/models/list_recipe_metadata_response.py +109 -0
- wandelbots_api_client/models/list_response.py +109 -0
- wandelbots_api_client/models/list_tcps_response.py +112 -0
- wandelbots_api_client/models/location_inner.py +153 -0
- wandelbots_api_client/models/location_inner1.py +142 -0
- wandelbots_api_client/models/manufacturer.py +37 -0
- wandelbots_api_client/models/mode_change_response.py +97 -0
- wandelbots_api_client/models/motion_command.py +109 -0
- wandelbots_api_client/models/motion_command_blending.py +164 -0
- wandelbots_api_client/models/motion_command_path.py +221 -0
- wandelbots_api_client/models/motion_group_behavior_getter.py +87 -0
- wandelbots_api_client/models/motion_group_info.py +88 -0
- wandelbots_api_client/models/motion_group_infos.py +109 -0
- wandelbots_api_client/models/motion_group_instance.py +101 -0
- wandelbots_api_client/models/motion_group_instance_list.py +109 -0
- wandelbots_api_client/models/motion_group_joints.py +100 -0
- wandelbots_api_client/models/motion_group_physical.py +105 -0
- wandelbots_api_client/models/motion_group_specification.py +136 -0
- wandelbots_api_client/models/motion_group_state.py +180 -0
- wandelbots_api_client/models/motion_group_state_joint_limit_reached.py +86 -0
- wandelbots_api_client/models/motion_group_state_response.py +103 -0
- wandelbots_api_client/models/motion_id.py +88 -0
- wandelbots_api_client/models/motion_ids_list_response.py +89 -0
- wandelbots_api_client/models/motion_vector.py +103 -0
- wandelbots_api_client/models/mounting.py +98 -0
- wandelbots_api_client/models/move_request.py +162 -0
- wandelbots_api_client/models/move_response.py +91 -0
- wandelbots_api_client/models/move_to_trajectory_via_joint_ptp_request.py +107 -0
- wandelbots_api_client/models/movement.py +90 -0
- wandelbots_api_client/models/movement_error.py +90 -0
- wandelbots_api_client/models/movement_error_error.py +86 -0
- wandelbots_api_client/models/movement_movement.py +98 -0
- wandelbots_api_client/models/op_mode.py +93 -0
- wandelbots_api_client/models/opcua_node_value_trigger_config.py +100 -0
- wandelbots_api_client/models/opcua_node_value_trigger_config_node_value.py +159 -0
- wandelbots_api_client/models/optimizer_setup.py +145 -0
- wandelbots_api_client/models/out_of_workspace.py +92 -0
- wandelbots_api_client/models/path.py +109 -0
- wandelbots_api_client/models/path_cartesian_ptp.py +103 -0
- wandelbots_api_client/models/path_circle.py +108 -0
- wandelbots_api_client/models/path_cubic_spline.py +118 -0
- wandelbots_api_client/models/path_joint_ptp.py +96 -0
- wandelbots_api_client/models/path_line.py +103 -0
- wandelbots_api_client/models/pause_movement_request.py +95 -0
- wandelbots_api_client/models/pause_movement_response.py +96 -0
- wandelbots_api_client/models/pause_movement_response_pause_response.py +89 -0
- wandelbots_api_client/models/pause_on_io.py +96 -0
- wandelbots_api_client/models/payload.py +103 -0
- wandelbots_api_client/models/plan_collision_free_ptp_request.py +131 -0
- wandelbots_api_client/models/plan_collision_free_ptp_request_target.py +150 -0
- wandelbots_api_client/models/plan_failed_on_trajectory_response.py +149 -0
- wandelbots_api_client/models/plan_failed_response.py +136 -0
- wandelbots_api_client/models/plan_request.py +127 -0
- wandelbots_api_client/models/plan_response.py +112 -0
- wandelbots_api_client/models/plan_successful_response.py +100 -0
- wandelbots_api_client/models/plan_trajectory_failed_response.py +106 -0
- wandelbots_api_client/models/plan_trajectory_failed_response_error_feedback.py +209 -0
- wandelbots_api_client/models/plan_trajectory_request.py +154 -0
- wandelbots_api_client/models/plan_trajectory_response.py +92 -0
- wandelbots_api_client/models/plan_trajectory_response_response.py +147 -0
- wandelbots_api_client/models/plane2.py +93 -0
- wandelbots_api_client/models/plane3.py +93 -0
- wandelbots_api_client/models/planned_motion.py +125 -0
- wandelbots_api_client/models/planner_pose.py +100 -0
- wandelbots_api_client/models/planning_limits.py +168 -0
- wandelbots_api_client/models/planning_limits_limit_range.py +87 -0
- wandelbots_api_client/models/playback_speed_request.py +94 -0
- wandelbots_api_client/models/playback_speed_response.py +96 -0
- wandelbots_api_client/models/playback_speed_response_playback_speed_response.py +86 -0
- wandelbots_api_client/models/point_cloud.py +86 -0
- wandelbots_api_client/models/pose.py +107 -0
- wandelbots_api_client/models/pose2.py +93 -0
- wandelbots_api_client/models/program_metadata.py +100 -0
- wandelbots_api_client/models/program_run.py +168 -0
- wandelbots_api_client/models/program_run_object.py +103 -0
- wandelbots_api_client/models/program_run_state.py +37 -0
- wandelbots_api_client/models/program_runner_reference.py +88 -0
- wandelbots_api_client/models/pyjectory_datatypes_core_pose.py +88 -0
- wandelbots_api_client/models/pyjectory_datatypes_serializer_orientation.py +87 -0
- wandelbots_api_client/models/pyjectory_datatypes_serializer_pose.py +87 -0
- wandelbots_api_client/models/pyjectory_datatypes_serializer_position.py +87 -0
- wandelbots_api_client/models/pyriphery_etcd_etcd_configuration.py +101 -0
- wandelbots_api_client/models/pyriphery_hardware_isaac_isaac_configuration.py +101 -0
- wandelbots_api_client/models/pyriphery_opcua_opcua_configuration.py +99 -0
- wandelbots_api_client/models/pyriphery_pyrae_controller_controller_configuration.py +107 -0
- wandelbots_api_client/models/pyriphery_pyrae_robot_robot_configuration.py +119 -0
- wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_input.py +130 -0
- wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_output.py +130 -0
- wandelbots_api_client/models/pyriphery_robotics_robotcell_timer_configuration.py +102 -0
- wandelbots_api_client/models/pyriphery_robotics_simulation_robot_with_view_open3d_configuration.py +99 -0
- wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_io_configuration.py +94 -0
- wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_opcua_configuration.py +94 -0
- wandelbots_api_client/models/quaternion.py +89 -0
- wandelbots_api_client/models/recipe_metadata.py +102 -0
- wandelbots_api_client/models/rectangle.py +87 -0
- wandelbots_api_client/models/rectangle2.py +95 -0
- wandelbots_api_client/models/rectangle3.py +101 -0
- wandelbots_api_client/models/rectangular_capsule.py +94 -0
- wandelbots_api_client/models/rectangular_capsule2.py +103 -0
- wandelbots_api_client/models/rectangular_capsule3.py +103 -0
- wandelbots_api_client/models/release_channel.py +34 -0
- wandelbots_api_client/models/request.py +142 -0
- wandelbots_api_client/models/request1.py +140 -0
- wandelbots_api_client/models/response_get_devices_devices_get_inner.py +321 -0
- wandelbots_api_client/models/response_get_value_programs_values_key_get.py +317 -0
- wandelbots_api_client/models/response_get_values_programs_values_get_value.py +322 -0
- wandelbots_api_client/models/robot_controller.py +108 -0
- wandelbots_api_client/models/robot_controller_configuration.py +262 -0
- wandelbots_api_client/models/robot_controller_state.py +191 -0
- wandelbots_api_client/models/robot_link_geometry.py +98 -0
- wandelbots_api_client/models/robot_state.py +101 -0
- wandelbots_api_client/models/robot_system_mode.py +37 -0
- wandelbots_api_client/models/robot_tcp.py +104 -0
- wandelbots_api_client/models/robot_tcps.py +109 -0
- wandelbots_api_client/models/rotation_angle_types.py +58 -0
- wandelbots_api_client/models/rotation_angles.py +91 -0
- wandelbots_api_client/models/safety_configuration.py +182 -0
- wandelbots_api_client/models/safety_setup.py +172 -0
- wandelbots_api_client/models/safety_setup_safety_settings.py +106 -0
- wandelbots_api_client/models/safety_setup_safety_zone.py +103 -0
- wandelbots_api_client/models/safety_zone.py +98 -0
- wandelbots_api_client/models/safety_zone_limits.py +96 -0
- wandelbots_api_client/models/safety_zone_violation.py +86 -0
- wandelbots_api_client/models/service_status.py +96 -0
- wandelbots_api_client/models/service_status_phase.py +46 -0
- wandelbots_api_client/models/service_status_severity.py +35 -0
- wandelbots_api_client/models/service_status_status.py +90 -0
- wandelbots_api_client/models/set_io.py +93 -0
- wandelbots_api_client/models/set_playback_speed.py +91 -0
- wandelbots_api_client/models/single_joint_limit.py +112 -0
- wandelbots_api_client/models/singularity.py +110 -0
- wandelbots_api_client/models/singularity_type_enum.py +35 -0
- wandelbots_api_client/models/sphere.py +86 -0
- wandelbots_api_client/models/sphere2.py +94 -0
- wandelbots_api_client/models/sphere3.py +96 -0
- wandelbots_api_client/models/standstill.py +92 -0
- wandelbots_api_client/models/standstill_reason.py +36 -0
- wandelbots_api_client/models/standstill_standstill.py +99 -0
- wandelbots_api_client/models/start_movement_request.py +135 -0
- wandelbots_api_client/models/start_on_io.py +96 -0
- wandelbots_api_client/models/status.py +119 -0
- wandelbots_api_client/models/stop_response.py +109 -0
- wandelbots_api_client/models/store_value.py +349 -0
- wandelbots_api_client/models/stream_move_backward.py +90 -0
- wandelbots_api_client/models/stream_move_forward.py +90 -0
- wandelbots_api_client/models/stream_move_playback_speed.py +92 -0
- wandelbots_api_client/models/stream_move_request.py +207 -0
- wandelbots_api_client/models/stream_move_response.py +110 -0
- wandelbots_api_client/models/stream_move_to_trajectory.py +96 -0
- wandelbots_api_client/models/stream_stop.py +90 -0
- wandelbots_api_client/models/tcp_pose.py +105 -0
- wandelbots_api_client/models/tcp_pose_request.py +106 -0
- wandelbots_api_client/models/tool_geometry.py +111 -0
- wandelbots_api_client/models/trajectory_sample.py +139 -0
- wandelbots_api_client/models/trigger_object.py +110 -0
- wandelbots_api_client/models/trigger_type.py +33 -0
- wandelbots_api_client/models/universalrobots_controller.py +102 -0
- wandelbots_api_client/models/update_nova_version_request.py +87 -0
- wandelbots_api_client/models/update_program_metadata_request.py +88 -0
- wandelbots_api_client/models/update_recipe_metadata_request.py +88 -0
- wandelbots_api_client/models/update_trigger_request.py +100 -0
- wandelbots_api_client/models/validation_error.py +113 -0
- wandelbots_api_client/models/validation_error2.py +113 -0
- wandelbots_api_client/models/value.py +317 -0
- wandelbots_api_client/models/vector3d.py +88 -0
- wandelbots_api_client/models/version_number.py +113 -0
- wandelbots_api_client/models/virtual_controller.py +117 -0
- wandelbots_api_client/models/virtual_controller_types.py +153 -0
- wandelbots_api_client/models/virtual_robot_configuration.py +91 -0
- wandelbots_api_client/models/yaskawa_controller.py +99 -0
- wandelbots_api_client/py.typed +0 -0
- wandelbots_api_client/rest.py +188 -0
- wandelbots_api_client/v2/__init__.py +49 -0
- wandelbots_api_client/v2/api/__init__.py +55 -0
- wandelbots_api_client/v2/api/application_api.py +1532 -0
- wandelbots_api_client/v2/api/bus_inputs_outputs_api.py +4534 -0
- wandelbots_api_client/v2/api/cell_api.py +2163 -0
- wandelbots_api_client/v2/api/controller_api.py +3238 -0
- wandelbots_api_client/v2/api/controller_inputs_outputs_api.py +1244 -0
- wandelbots_api_client/v2/api/jogging_api.py +113 -0
- wandelbots_api_client/v2/api/kinematics_api.py +555 -0
- wandelbots_api_client/v2/api/license_api.py +877 -0
- wandelbots_api_client/v2/api/motion_group_api.py +689 -0
- wandelbots_api_client/v2/api/motion_group_models_api.py +1222 -0
- wandelbots_api_client/v2/api/nova_cloud_api.py +760 -0
- wandelbots_api_client/v2/api/program_api.py +988 -0
- wandelbots_api_client/v2/api/robot_configurations_api.py +485 -0
- wandelbots_api_client/v2/api/store_collision_components_api.py +3479 -0
- wandelbots_api_client/v2/api/store_collision_setups_api.py +1169 -0
- wandelbots_api_client/v2/api/store_object_api.py +1414 -0
- wandelbots_api_client/v2/api/system_api.py +2696 -0
- wandelbots_api_client/v2/api/trajectory_caching_api.py +1339 -0
- wandelbots_api_client/v2/api/trajectory_execution_api.py +115 -0
- wandelbots_api_client/v2/api/trajectory_planning_api.py +811 -0
- wandelbots_api_client/v2/api/version_api.py +240 -0
- wandelbots_api_client/v2/api/virtual_controller_api.py +4534 -0
- wandelbots_api_client/v2/api/virtual_controller_behavior_api.py +863 -0
- wandelbots_api_client/v2/api/virtual_controller_inputs_outputs_api.py +895 -0
- wandelbots_api_client/v2/api_client.py +692 -0
- wandelbots_api_client/v2/api_response.py +20 -0
- wandelbots_api_client/v2/configuration.py +579 -0
- wandelbots_api_client/v2/exceptions.py +216 -0
- wandelbots_api_client/v2/models/__init__.py +317 -0
- wandelbots_api_client/v2/models/abb_controller.py +104 -0
- wandelbots_api_client/v2/models/abb_controller_egm_server.py +84 -0
- wandelbots_api_client/v2/models/activate_license_request.py +83 -0
- wandelbots_api_client/v2/models/add_trajectory_error.py +95 -0
- wandelbots_api_client/v2/models/add_trajectory_error_data.py +298 -0
- wandelbots_api_client/v2/models/add_trajectory_request.py +97 -0
- wandelbots_api_client/v2/models/add_trajectory_response.py +99 -0
- wandelbots_api_client/v2/models/add_virtual_controller_motion_group_request.py +147 -0
- wandelbots_api_client/v2/models/api_version.py +83 -0
- wandelbots_api_client/v2/models/app.py +156 -0
- wandelbots_api_client/v2/models/behavior.py +35 -0
- wandelbots_api_client/v2/models/blending_auto.py +97 -0
- wandelbots_api_client/v2/models/blending_position.py +143 -0
- wandelbots_api_client/v2/models/blending_space.py +34 -0
- wandelbots_api_client/v2/models/boolean_value.py +91 -0
- wandelbots_api_client/v2/models/box.py +109 -0
- wandelbots_api_client/v2/models/bus_io_description.py +111 -0
- wandelbots_api_client/v2/models/bus_io_modbus_client.py +100 -0
- wandelbots_api_client/v2/models/bus_io_modbus_server.py +127 -0
- wandelbots_api_client/v2/models/bus_io_modbus_tcp_client.py +98 -0
- wandelbots_api_client/v2/models/bus_io_modbus_tcp_server.py +97 -0
- wandelbots_api_client/v2/models/bus_io_modbus_virtual.py +90 -0
- wandelbots_api_client/v2/models/bus_io_profinet.py +131 -0
- wandelbots_api_client/v2/models/bus_io_profinet_default_route.py +84 -0
- wandelbots_api_client/v2/models/bus_io_profinet_ip_config.py +85 -0
- wandelbots_api_client/v2/models/bus_io_profinet_network.py +101 -0
- wandelbots_api_client/v2/models/bus_io_profinet_slot.py +92 -0
- wandelbots_api_client/v2/models/bus_io_profinet_virtual.py +90 -0
- wandelbots_api_client/v2/models/bus_io_type.py +223 -0
- wandelbots_api_client/v2/models/bus_ios_state.py +88 -0
- wandelbots_api_client/v2/models/bus_ios_state_enum.py +36 -0
- wandelbots_api_client/v2/models/capsule.py +94 -0
- wandelbots_api_client/v2/models/cartesian_limits.py +108 -0
- wandelbots_api_client/v2/models/cell.py +127 -0
- wandelbots_api_client/v2/models/cloud_config_status.py +164 -0
- wandelbots_api_client/v2/models/cloud_config_status_configured.py +97 -0
- wandelbots_api_client/v2/models/cloud_config_status_not_configured.py +90 -0
- wandelbots_api_client/v2/models/cloud_configuration.py +84 -0
- wandelbots_api_client/v2/models/cloud_connection_error.py +87 -0
- wandelbots_api_client/v2/models/cloud_connection_error_error.py +275 -0
- wandelbots_api_client/v2/models/cloud_connection_error_invalid_token.py +102 -0
- wandelbots_api_client/v2/models/cloud_connection_error_invalid_token_details.py +95 -0
- wandelbots_api_client/v2/models/cloud_connection_error_invalid_token_details_cloud_response.py +90 -0
- wandelbots_api_client/v2/models/cloud_connection_error_leafnode_connection_error.py +106 -0
- wandelbots_api_client/v2/models/cloud_connection_error_leafnode_connection_error_details.py +83 -0
- wandelbots_api_client/v2/models/cloud_connection_error_leafnode_connection_timeout.py +91 -0
- wandelbots_api_client/v2/models/cloud_connection_error_leafnode_restart_timeout.py +91 -0
- wandelbots_api_client/v2/models/cloud_connection_error_nats_failed.py +102 -0
- wandelbots_api_client/v2/models/cloud_connection_error_nats_failed_details.py +84 -0
- wandelbots_api_client/v2/models/cloud_connection_error_unexpected_response.py +104 -0
- wandelbots_api_client/v2/models/cloud_connection_error_unexpected_response_details.py +95 -0
- wandelbots_api_client/v2/models/cloud_connection_error_unexpected_response_details_cloud_response.py +85 -0
- wandelbots_api_client/v2/models/cloud_connection_request.py +98 -0
- wandelbots_api_client/v2/models/cloud_disconnection_error.py +89 -0
- wandelbots_api_client/v2/models/cloud_disconnection_status_disconnected.py +90 -0
- wandelbots_api_client/v2/models/cloud_disconnection_status_disconnecting.py +90 -0
- wandelbots_api_client/v2/models/cloud_registration_success_response.py +83 -0
- wandelbots_api_client/v2/models/collider.py +102 -0
- wandelbots_api_client/v2/models/collider_shape.py +278 -0
- wandelbots_api_client/v2/models/collision.py +107 -0
- wandelbots_api_client/v2/models/collision_contact.py +89 -0
- wandelbots_api_client/v2/models/collision_error.py +100 -0
- wandelbots_api_client/v2/models/collision_free_algorithm.py +164 -0
- wandelbots_api_client/v2/models/collision_setup.py +130 -0
- wandelbots_api_client/v2/models/comparator.py +38 -0
- wandelbots_api_client/v2/models/configuration_archive_status.py +197 -0
- wandelbots_api_client/v2/models/configuration_archive_status_creating.py +94 -0
- wandelbots_api_client/v2/models/configuration_archive_status_error.py +91 -0
- wandelbots_api_client/v2/models/configuration_archive_status_success.py +90 -0
- wandelbots_api_client/v2/models/configuration_resource.py +104 -0
- wandelbots_api_client/v2/models/container_environment_inner.py +84 -0
- wandelbots_api_client/v2/models/container_image.py +110 -0
- wandelbots_api_client/v2/models/container_image_secrets_inner.py +83 -0
- wandelbots_api_client/v2/models/container_resources.py +87 -0
- wandelbots_api_client/v2/models/container_storage.py +94 -0
- wandelbots_api_client/v2/models/controller_description.py +97 -0
- wandelbots_api_client/v2/models/convex_hull.py +94 -0
- wandelbots_api_client/v2/models/coordinate_system.py +115 -0
- wandelbots_api_client/v2/models/coordinate_system_data.py +106 -0
- wandelbots_api_client/v2/models/cubic_spline_parameter.py +90 -0
- wandelbots_api_client/v2/models/cycle_time.py +86 -0
- wandelbots_api_client/v2/models/cylinder.py +92 -0
- wandelbots_api_client/v2/models/dh_parameter.py +98 -0
- wandelbots_api_client/v2/models/direction.py +34 -0
- wandelbots_api_client/v2/models/error.py +84 -0
- wandelbots_api_client/v2/models/error_invalid_joint_count.py +98 -0
- wandelbots_api_client/v2/models/error_joint_limit_exceeded.py +103 -0
- wandelbots_api_client/v2/models/error_joint_position_collision.py +106 -0
- wandelbots_api_client/v2/models/error_max_iterations_exceeded.py +91 -0
- wandelbots_api_client/v2/models/execute.py +95 -0
- wandelbots_api_client/v2/models/execute_details.py +164 -0
- wandelbots_api_client/v2/models/execute_jogging_request.py +204 -0
- wandelbots_api_client/v2/models/execute_jogging_response.py +246 -0
- wandelbots_api_client/v2/models/execute_trajectory_request.py +209 -0
- wandelbots_api_client/v2/models/execute_trajectory_response.py +246 -0
- wandelbots_api_client/v2/models/external_joint_stream_datapoint.py +93 -0
- wandelbots_api_client/v2/models/external_joint_stream_request.py +97 -0
- wandelbots_api_client/v2/models/fanuc_controller.py +91 -0
- wandelbots_api_client/v2/models/feedback_collision.py +112 -0
- wandelbots_api_client/v2/models/feedback_joint_limit_exceeded.py +99 -0
- wandelbots_api_client/v2/models/feedback_no_solution_in_current_configuration.py +100 -0
- wandelbots_api_client/v2/models/feedback_out_of_workspace.py +100 -0
- wandelbots_api_client/v2/models/feedback_singularity.py +99 -0
- wandelbots_api_client/v2/models/flag.py +83 -0
- wandelbots_api_client/v2/models/flange_payload.py +98 -0
- wandelbots_api_client/v2/models/float_value.py +91 -0
- wandelbots_api_client/v2/models/forward_kinematics422_response.py +97 -0
- wandelbots_api_client/v2/models/forward_kinematics_request.py +104 -0
- wandelbots_api_client/v2/models/forward_kinematics_response.py +93 -0
- wandelbots_api_client/v2/models/forward_kinematics_validation_error.py +107 -0
- wandelbots_api_client/v2/models/get_trajectory_response.py +97 -0
- wandelbots_api_client/v2/models/http_validation_error.py +93 -0
- wandelbots_api_client/v2/models/image_credentials.py +85 -0
- wandelbots_api_client/v2/models/inconsistent_trajectory_size_error.py +106 -0
- wandelbots_api_client/v2/models/inconsistent_trajectory_size_error_inconsistent_trajectory_size.py +91 -0
- wandelbots_api_client/v2/models/initialize_jogging_request.py +95 -0
- wandelbots_api_client/v2/models/initialize_jogging_response.py +91 -0
- wandelbots_api_client/v2/models/initialize_movement_request.py +112 -0
- wandelbots_api_client/v2/models/initialize_movement_request_trajectory.py +164 -0
- wandelbots_api_client/v2/models/initialize_movement_response.py +107 -0
- wandelbots_api_client/v2/models/integer_value.py +91 -0
- wandelbots_api_client/v2/models/invalid_dof_error.py +100 -0
- wandelbots_api_client/v2/models/invalid_dof_error_invalid_dof.py +86 -0
- wandelbots_api_client/v2/models/inverse_kinematics422_response.py +97 -0
- wandelbots_api_client/v2/models/inverse_kinematics_request.py +152 -0
- wandelbots_api_client/v2/models/inverse_kinematics_response.py +83 -0
- wandelbots_api_client/v2/models/inverse_kinematics_validation_error.py +107 -0
- wandelbots_api_client/v2/models/inverse_kinematics_validation_error_all_of_data.py +164 -0
- wandelbots_api_client/v2/models/io_boolean_value.py +92 -0
- wandelbots_api_client/v2/models/io_boundary.py +183 -0
- wandelbots_api_client/v2/models/io_description.py +116 -0
- wandelbots_api_client/v2/models/io_direction.py +34 -0
- wandelbots_api_client/v2/models/io_float_value.py +92 -0
- wandelbots_api_client/v2/models/io_integer_value.py +94 -0
- wandelbots_api_client/v2/models/io_origin.py +34 -0
- wandelbots_api_client/v2/models/io_value.py +183 -0
- wandelbots_api_client/v2/models/io_value_type.py +35 -0
- wandelbots_api_client/v2/models/jogging_details.py +97 -0
- wandelbots_api_client/v2/models/jogging_details_state.py +275 -0
- wandelbots_api_client/v2/models/jogging_paused_by_user.py +90 -0
- wandelbots_api_client/v2/models/jogging_paused_near_collision.py +91 -0
- wandelbots_api_client/v2/models/jogging_paused_near_joint_limit.py +92 -0
- wandelbots_api_client/v2/models/jogging_paused_near_singularity.py +91 -0
- wandelbots_api_client/v2/models/jogging_paused_on_io.py +90 -0
- wandelbots_api_client/v2/models/jogging_running.py +90 -0
- wandelbots_api_client/v2/models/joint_limit_exceeded_error.py +102 -0
- wandelbots_api_client/v2/models/joint_limits.py +101 -0
- wandelbots_api_client/v2/models/joint_trajectory.py +89 -0
- wandelbots_api_client/v2/models/joint_type_enum.py +34 -0
- wandelbots_api_client/v2/models/joint_velocity_request.py +91 -0
- wandelbots_api_client/v2/models/joint_velocity_response.py +91 -0
- wandelbots_api_client/v2/models/kinematic_model.py +118 -0
- wandelbots_api_client/v2/models/kuka_controller.py +106 -0
- wandelbots_api_client/v2/models/kuka_controller_rsi_server.py +89 -0
- wandelbots_api_client/v2/models/license.py +121 -0
- wandelbots_api_client/v2/models/license_status.py +85 -0
- wandelbots_api_client/v2/models/license_status_enum.py +37 -0
- wandelbots_api_client/v2/models/limit_range.py +84 -0
- wandelbots_api_client/v2/models/limit_set.py +118 -0
- wandelbots_api_client/v2/models/limits_override.py +136 -0
- wandelbots_api_client/v2/models/list_trajectories_response.py +86 -0
- wandelbots_api_client/v2/models/location1_inner.py +153 -0
- wandelbots_api_client/v2/models/manufacturer.py +37 -0
- wandelbots_api_client/v2/models/merge_trajectories422_response.py +97 -0
- wandelbots_api_client/v2/models/merge_trajectories_error.py +97 -0
- wandelbots_api_client/v2/models/merge_trajectories_error_error_feedback.py +209 -0
- wandelbots_api_client/v2/models/merge_trajectories_request.py +107 -0
- wandelbots_api_client/v2/models/merge_trajectories_response.py +109 -0
- wandelbots_api_client/v2/models/merge_trajectories_response_feedback_inner.py +147 -0
- wandelbots_api_client/v2/models/merge_trajectories_segment.py +126 -0
- wandelbots_api_client/v2/models/merge_trajectories_validation_error.py +109 -0
- wandelbots_api_client/v2/models/midpoint_insertion_algorithm.py +102 -0
- wandelbots_api_client/v2/models/modbus_io.py +109 -0
- wandelbots_api_client/v2/models/modbus_io_area.py +37 -0
- wandelbots_api_client/v2/models/modbus_io_byte_order.py +37 -0
- wandelbots_api_client/v2/models/modbus_io_data.py +105 -0
- wandelbots_api_client/v2/models/modbus_io_type_enum.py +36 -0
- wandelbots_api_client/v2/models/motion_command.py +106 -0
- wandelbots_api_client/v2/models/motion_command_blending.py +164 -0
- wandelbots_api_client/v2/models/motion_command_path.py +221 -0
- wandelbots_api_client/v2/models/motion_group_description.py +235 -0
- wandelbots_api_client/v2/models/motion_group_from_json.py +100 -0
- wandelbots_api_client/v2/models/motion_group_from_type.py +96 -0
- wandelbots_api_client/v2/models/motion_group_info.py +90 -0
- wandelbots_api_client/v2/models/motion_group_joints.py +97 -0
- wandelbots_api_client/v2/models/motion_group_setup.py +140 -0
- wandelbots_api_client/v2/models/motion_group_state.py +182 -0
- wandelbots_api_client/v2/models/motion_group_state_joint_limit_reached.py +83 -0
- wandelbots_api_client/v2/models/movement_error_response.py +91 -0
- wandelbots_api_client/v2/models/nan_value_error.py +100 -0
- wandelbots_api_client/v2/models/nan_value_error_nan_value.py +85 -0
- wandelbots_api_client/v2/models/network_device.py +85 -0
- wandelbots_api_client/v2/models/network_interface.py +86 -0
- wandelbots_api_client/v2/models/network_state.py +125 -0
- wandelbots_api_client/v2/models/op_mode.py +84 -0
- wandelbots_api_client/v2/models/operating_state.py +34 -0
- wandelbots_api_client/v2/models/operation_limits.py +106 -0
- wandelbots_api_client/v2/models/operation_mode.py +42 -0
- wandelbots_api_client/v2/models/orientation_type.py +58 -0
- wandelbots_api_client/v2/models/path_cartesian_ptp.py +100 -0
- wandelbots_api_client/v2/models/path_circle.py +105 -0
- wandelbots_api_client/v2/models/path_cubic_spline.py +106 -0
- wandelbots_api_client/v2/models/path_joint_ptp.py +93 -0
- wandelbots_api_client/v2/models/path_line.py +100 -0
- wandelbots_api_client/v2/models/pause_jogging_request.py +90 -0
- wandelbots_api_client/v2/models/pause_jogging_response.py +91 -0
- wandelbots_api_client/v2/models/pause_movement_request.py +90 -0
- wandelbots_api_client/v2/models/pause_movement_response.py +91 -0
- wandelbots_api_client/v2/models/pause_on_io.py +99 -0
- wandelbots_api_client/v2/models/payload.py +98 -0
- wandelbots_api_client/v2/models/plan422_response.py +93 -0
- wandelbots_api_client/v2/models/plan_collision_free_failed_response.py +93 -0
- wandelbots_api_client/v2/models/plan_collision_free_request.py +109 -0
- wandelbots_api_client/v2/models/plan_collision_free_response.py +89 -0
- wandelbots_api_client/v2/models/plan_collision_free_response_response.py +147 -0
- wandelbots_api_client/v2/models/plan_trajectory_failed_response.py +105 -0
- wandelbots_api_client/v2/models/plan_trajectory_failed_response_error_feedback.py +252 -0
- wandelbots_api_client/v2/models/plan_trajectory_request.py +113 -0
- wandelbots_api_client/v2/models/plan_trajectory_response.py +89 -0
- wandelbots_api_client/v2/models/plan_trajectory_response_response.py +147 -0
- wandelbots_api_client/v2/models/plan_validation_error.py +107 -0
- wandelbots_api_client/v2/models/plan_validation_error_all_of_data.py +183 -0
- wandelbots_api_client/v2/models/plane.py +90 -0
- wandelbots_api_client/v2/models/playback_speed_request.py +96 -0
- wandelbots_api_client/v2/models/playback_speed_response.py +91 -0
- wandelbots_api_client/v2/models/pose.py +90 -0
- wandelbots_api_client/v2/models/profinet_description.py +112 -0
- wandelbots_api_client/v2/models/profinet_input_output_config.py +98 -0
- wandelbots_api_client/v2/models/profinet_io.py +109 -0
- wandelbots_api_client/v2/models/profinet_io_data.py +105 -0
- wandelbots_api_client/v2/models/profinet_io_direction.py +35 -0
- wandelbots_api_client/v2/models/profinet_io_type_enum.py +42 -0
- wandelbots_api_client/v2/models/profinet_slot_description.py +106 -0
- wandelbots_api_client/v2/models/profinet_sub_slot_description.py +92 -0
- wandelbots_api_client/v2/models/program.py +105 -0
- wandelbots_api_client/v2/models/program_run.py +124 -0
- wandelbots_api_client/v2/models/program_run_state.py +37 -0
- wandelbots_api_client/v2/models/program_start_request.py +83 -0
- wandelbots_api_client/v2/models/rectangle.py +92 -0
- wandelbots_api_client/v2/models/rectangular_capsule.py +100 -0
- wandelbots_api_client/v2/models/release_channel.py +34 -0
- wandelbots_api_client/v2/models/robot_controller.py +105 -0
- wandelbots_api_client/v2/models/robot_controller_configuration.py +262 -0
- wandelbots_api_client/v2/models/robot_controller_configuration_request.py +99 -0
- wandelbots_api_client/v2/models/robot_controller_state.py +138 -0
- wandelbots_api_client/v2/models/robot_system_mode.py +37 -0
- wandelbots_api_client/v2/models/robot_tcp.py +110 -0
- wandelbots_api_client/v2/models/robot_tcp_data.py +108 -0
- wandelbots_api_client/v2/models/rrt_connect_algorithm.py +127 -0
- wandelbots_api_client/v2/models/safety_state_type.py +48 -0
- wandelbots_api_client/v2/models/service_group.py +36 -0
- wandelbots_api_client/v2/models/service_status.py +96 -0
- wandelbots_api_client/v2/models/service_status_phase.py +46 -0
- wandelbots_api_client/v2/models/service_status_response.py +100 -0
- wandelbots_api_client/v2/models/service_status_severity.py +35 -0
- wandelbots_api_client/v2/models/service_status_status.py +87 -0
- wandelbots_api_client/v2/models/set_io.py +96 -0
- wandelbots_api_client/v2/models/settable_robot_system_mode.py +36 -0
- wandelbots_api_client/v2/models/singularity_type_enum.py +35 -0
- wandelbots_api_client/v2/models/sphere.py +91 -0
- wandelbots_api_client/v2/models/start_movement_request.py +133 -0
- wandelbots_api_client/v2/models/start_movement_response.py +91 -0
- wandelbots_api_client/v2/models/start_on_io.py +99 -0
- wandelbots_api_client/v2/models/stream_io_values_response.py +103 -0
- wandelbots_api_client/v2/models/tcp_offset.py +88 -0
- wandelbots_api_client/v2/models/tcp_required_error.py +96 -0
- wandelbots_api_client/v2/models/tcp_velocity_request.py +110 -0
- wandelbots_api_client/v2/models/tcp_velocity_response.py +91 -0
- wandelbots_api_client/v2/models/torque_exceeded_error.py +102 -0
- wandelbots_api_client/v2/models/torque_exceeded_error_torque_exceeded.py +86 -0
- wandelbots_api_client/v2/models/trajectory_data.py +106 -0
- wandelbots_api_client/v2/models/trajectory_details.py +106 -0
- wandelbots_api_client/v2/models/trajectory_details_state.py +239 -0
- wandelbots_api_client/v2/models/trajectory_ended.py +90 -0
- wandelbots_api_client/v2/models/trajectory_id.py +93 -0
- wandelbots_api_client/v2/models/trajectory_paused_by_user.py +90 -0
- wandelbots_api_client/v2/models/trajectory_paused_on_io.py +90 -0
- wandelbots_api_client/v2/models/trajectory_running.py +94 -0
- wandelbots_api_client/v2/models/trajectory_section.py +84 -0
- wandelbots_api_client/v2/models/trajectory_wait_for_io.py +90 -0
- wandelbots_api_client/v2/models/unit_type.py +42 -0
- wandelbots_api_client/v2/models/universalrobots_controller.py +91 -0
- wandelbots_api_client/v2/models/update_cell_version_request.py +84 -0
- wandelbots_api_client/v2/models/update_nova_version_request.py +90 -0
- wandelbots_api_client/v2/models/validation_error.py +101 -0
- wandelbots_api_client/v2/models/validation_error2.py +85 -0
- wandelbots_api_client/v2/models/virtual_controller.py +113 -0
- wandelbots_api_client/v2/models/virtual_robot_configuration.py +88 -0
- wandelbots_api_client/v2/models/wait_for_io_event_request.py +93 -0
- wandelbots_api_client/v2/models/yaskawa_controller.py +91 -0
- wandelbots_api_client/v2/models/zod_validation_error.py +87 -0
- wandelbots_api_client/v2/models/zod_validation_error_error.py +108 -0
- wandelbots_api_client/v2/models/zod_validation_error_error_details_inner.py +101 -0
- wandelbots_api_client/v2/models/zod_validation_error_error_details_inner_path_inner.py +153 -0
- wandelbots_api_client/v2/py.typed +0 -0
- wandelbots_api_client/v2/rest.py +188 -0
- wandelbots_api_client/v2_pydantic/__init__.py +49 -0
- wandelbots_api_client/v2_pydantic/api/__init__.py +55 -0
- wandelbots_api_client/v2_pydantic/api/application_api.py +1532 -0
- wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py +4534 -0
- wandelbots_api_client/v2_pydantic/api/cell_api.py +2163 -0
- wandelbots_api_client/v2_pydantic/api/controller_api.py +3238 -0
- wandelbots_api_client/v2_pydantic/api/controller_inputs_outputs_api.py +1244 -0
- wandelbots_api_client/v2_pydantic/api/jogging_api.py +113 -0
- wandelbots_api_client/v2_pydantic/api/kinematics_api.py +555 -0
- wandelbots_api_client/v2_pydantic/api/license_api.py +877 -0
- wandelbots_api_client/v2_pydantic/api/motion_group_api.py +689 -0
- wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +1222 -0
- wandelbots_api_client/v2_pydantic/api/nova_cloud_api.py +760 -0
- wandelbots_api_client/v2_pydantic/api/program_api.py +988 -0
- wandelbots_api_client/v2_pydantic/api/robot_configurations_api.py +485 -0
- wandelbots_api_client/v2_pydantic/api/store_collision_components_api.py +3479 -0
- wandelbots_api_client/v2_pydantic/api/store_collision_setups_api.py +1169 -0
- wandelbots_api_client/v2_pydantic/api/store_object_api.py +1414 -0
- wandelbots_api_client/v2_pydantic/api/system_api.py +2696 -0
- wandelbots_api_client/v2_pydantic/api/trajectory_caching_api.py +1339 -0
- wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +115 -0
- wandelbots_api_client/v2_pydantic/api/trajectory_planning_api.py +811 -0
- wandelbots_api_client/v2_pydantic/api/version_api.py +240 -0
- wandelbots_api_client/v2_pydantic/api/virtual_controller_api.py +4534 -0
- wandelbots_api_client/v2_pydantic/api/virtual_controller_behavior_api.py +863 -0
- wandelbots_api_client/v2_pydantic/api/virtual_controller_inputs_outputs_api.py +895 -0
- wandelbots_api_client/v2_pydantic/api_client.py +692 -0
- wandelbots_api_client/v2_pydantic/api_response.py +20 -0
- wandelbots_api_client/v2_pydantic/configuration.py +579 -0
- wandelbots_api_client/v2_pydantic/exceptions.py +216 -0
- wandelbots_api_client/v2_pydantic/models/__init__.py +642 -0
- wandelbots_api_client/v2_pydantic/models/models.py +5090 -0
- wandelbots_api_client/v2_pydantic/py.typed +0 -0
- wandelbots_api_client/v2_pydantic/rest.py +188 -0
- wandelbots_api_client-26.3.0.dev29.dist-info/METADATA +241 -0
- wandelbots_api_client-26.3.0.dev29.dist-info/RECORD +693 -0
- wandelbots_api_client-26.3.0.dev29.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,3596 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Wandelbots NOVA API
|
|
5
|
+
|
|
6
|
+
Interact with robots in an easy and intuitive way.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.4.0 dev
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from furl import furl
|
|
15
|
+
import json
|
|
16
|
+
import humps
|
|
17
|
+
import re
|
|
18
|
+
import warnings
|
|
19
|
+
import websockets
|
|
20
|
+
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
|
21
|
+
from typing import Any, AsyncGenerator, Callable, Dict, List, Optional, Tuple, Union
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
|
+
from urllib.parse import quote
|
|
24
|
+
|
|
25
|
+
from pydantic import Field, StrictFloat, StrictInt, StrictStr
|
|
26
|
+
from typing import List, Optional, Union
|
|
27
|
+
from typing_extensions import Annotated
|
|
28
|
+
from wandelbots_api_client.models.execute_trajectory_request import ExecuteTrajectoryRequest
|
|
29
|
+
from wandelbots_api_client.models.execute_trajectory_response import ExecuteTrajectoryResponse
|
|
30
|
+
from wandelbots_api_client.models.get_trajectory_response import GetTrajectoryResponse
|
|
31
|
+
from wandelbots_api_client.models.get_trajectory_sample_response import GetTrajectorySampleResponse
|
|
32
|
+
from wandelbots_api_client.models.motion_ids_list_response import MotionIdsListResponse
|
|
33
|
+
from wandelbots_api_client.models.plan_collision_free_ptp_request import PlanCollisionFreePTPRequest
|
|
34
|
+
from wandelbots_api_client.models.plan_request import PlanRequest
|
|
35
|
+
from wandelbots_api_client.models.plan_response import PlanResponse
|
|
36
|
+
from wandelbots_api_client.models.plan_trajectory_request import PlanTrajectoryRequest
|
|
37
|
+
from wandelbots_api_client.models.plan_trajectory_response import PlanTrajectoryResponse
|
|
38
|
+
from wandelbots_api_client.models.planned_motion import PlannedMotion
|
|
39
|
+
from wandelbots_api_client.models.stream_move_request import StreamMoveRequest
|
|
40
|
+
from wandelbots_api_client.models.stream_move_response import StreamMoveResponse
|
|
41
|
+
|
|
42
|
+
from wandelbots_api_client.api_client import ApiClient, RequestSerialized
|
|
43
|
+
from wandelbots_api_client.api_response import ApiResponse
|
|
44
|
+
from wandelbots_api_client.rest import RESTResponseType
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class MotionApi:
|
|
48
|
+
"""NOTE: This class is auto generated by OpenAPI Generator
|
|
49
|
+
Ref: https://openapi-generator.tech
|
|
50
|
+
|
|
51
|
+
Do not edit the class manually.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
def __init__(self, api_client=None) -> None:
|
|
55
|
+
if api_client is None:
|
|
56
|
+
api_client = ApiClient.get_default()
|
|
57
|
+
self.api_client = api_client
|
|
58
|
+
|
|
59
|
+
@validate_call
|
|
60
|
+
async def delete_all_motions(
|
|
61
|
+
self,
|
|
62
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
63
|
+
_request_timeout: Union[
|
|
64
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
65
|
+
] = None,
|
|
66
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
67
|
+
_content_type: Optional[StrictStr] = None,
|
|
68
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
69
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
70
|
+
) -> None:
|
|
71
|
+
"""All Motions
|
|
72
|
+
|
|
73
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete all registered motions.
|
|
74
|
+
|
|
75
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
76
|
+
:type cell: str
|
|
77
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
78
|
+
number provided, it will be total request
|
|
79
|
+
timeout. It can also be a pair (tuple) of
|
|
80
|
+
(connection, read) timeouts.
|
|
81
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
82
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
83
|
+
request; this effectively ignores the
|
|
84
|
+
authentication in the spec for a single request.
|
|
85
|
+
:type _request_auth: dict, optional
|
|
86
|
+
:param _content_type: force content-type for the request.
|
|
87
|
+
:type _content_type: str, Optional
|
|
88
|
+
:param _headers: set to override the headers for a single
|
|
89
|
+
request; this effectively ignores the headers
|
|
90
|
+
in the spec for a single request.
|
|
91
|
+
:type _headers: dict, optional
|
|
92
|
+
:param _host_index: set to override the host_index for a single
|
|
93
|
+
request; this effectively ignores the host_index
|
|
94
|
+
in the spec for a single request.
|
|
95
|
+
:type _host_index: int, optional
|
|
96
|
+
:return: Returns the result object.
|
|
97
|
+
""" # noqa: E501
|
|
98
|
+
|
|
99
|
+
_param = self._delete_all_motions_serialize(
|
|
100
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
104
|
+
"200": None,
|
|
105
|
+
}
|
|
106
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
107
|
+
await response_data.read()
|
|
108
|
+
return self.api_client.response_deserialize(
|
|
109
|
+
response_data=response_data,
|
|
110
|
+
response_types_map=_response_types_map,
|
|
111
|
+
).data
|
|
112
|
+
|
|
113
|
+
@validate_call
|
|
114
|
+
async def delete_all_motions_with_http_info(
|
|
115
|
+
self,
|
|
116
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
117
|
+
_request_timeout: Union[
|
|
118
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
119
|
+
] = None,
|
|
120
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
121
|
+
_content_type: Optional[StrictStr] = None,
|
|
122
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
123
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
124
|
+
) -> ApiResponse[None]:
|
|
125
|
+
"""All Motions
|
|
126
|
+
|
|
127
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete all registered motions.
|
|
128
|
+
|
|
129
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
130
|
+
:type cell: str
|
|
131
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
132
|
+
number provided, it will be total request
|
|
133
|
+
timeout. It can also be a pair (tuple) of
|
|
134
|
+
(connection, read) timeouts.
|
|
135
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
136
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
137
|
+
request; this effectively ignores the
|
|
138
|
+
authentication in the spec for a single request.
|
|
139
|
+
:type _request_auth: dict, optional
|
|
140
|
+
:param _content_type: force content-type for the request.
|
|
141
|
+
:type _content_type: str, Optional
|
|
142
|
+
:param _headers: set to override the headers for a single
|
|
143
|
+
request; this effectively ignores the headers
|
|
144
|
+
in the spec for a single request.
|
|
145
|
+
:type _headers: dict, optional
|
|
146
|
+
:param _host_index: set to override the host_index for a single
|
|
147
|
+
request; this effectively ignores the host_index
|
|
148
|
+
in the spec for a single request.
|
|
149
|
+
:type _host_index: int, optional
|
|
150
|
+
:return: Returns the result object.
|
|
151
|
+
""" # noqa: E501
|
|
152
|
+
|
|
153
|
+
_param = self._delete_all_motions_serialize(
|
|
154
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
158
|
+
"200": None,
|
|
159
|
+
}
|
|
160
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
161
|
+
await response_data.read()
|
|
162
|
+
return self.api_client.response_deserialize(
|
|
163
|
+
response_data=response_data,
|
|
164
|
+
response_types_map=_response_types_map,
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
@validate_call
|
|
168
|
+
async def delete_all_motions_without_preload_content(
|
|
169
|
+
self,
|
|
170
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
171
|
+
_request_timeout: Union[
|
|
172
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
173
|
+
] = None,
|
|
174
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
175
|
+
_content_type: Optional[StrictStr] = None,
|
|
176
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
177
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
178
|
+
) -> RESTResponseType:
|
|
179
|
+
"""All Motions
|
|
180
|
+
|
|
181
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete all registered motions.
|
|
182
|
+
|
|
183
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
184
|
+
:type cell: str
|
|
185
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
186
|
+
number provided, it will be total request
|
|
187
|
+
timeout. It can also be a pair (tuple) of
|
|
188
|
+
(connection, read) timeouts.
|
|
189
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
190
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
191
|
+
request; this effectively ignores the
|
|
192
|
+
authentication in the spec for a single request.
|
|
193
|
+
:type _request_auth: dict, optional
|
|
194
|
+
:param _content_type: force content-type for the request.
|
|
195
|
+
:type _content_type: str, Optional
|
|
196
|
+
:param _headers: set to override the headers for a single
|
|
197
|
+
request; this effectively ignores the headers
|
|
198
|
+
in the spec for a single request.
|
|
199
|
+
:type _headers: dict, optional
|
|
200
|
+
:param _host_index: set to override the host_index for a single
|
|
201
|
+
request; this effectively ignores the host_index
|
|
202
|
+
in the spec for a single request.
|
|
203
|
+
:type _host_index: int, optional
|
|
204
|
+
:return: Returns the result object.
|
|
205
|
+
""" # noqa: E501
|
|
206
|
+
|
|
207
|
+
_param = self._delete_all_motions_serialize(
|
|
208
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
212
|
+
"200": None,
|
|
213
|
+
}
|
|
214
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
215
|
+
return response_data.response
|
|
216
|
+
|
|
217
|
+
def _delete_all_motions_serialize(
|
|
218
|
+
self,
|
|
219
|
+
cell,
|
|
220
|
+
_request_auth,
|
|
221
|
+
_content_type,
|
|
222
|
+
_headers,
|
|
223
|
+
_host_index,
|
|
224
|
+
) -> RequestSerialized:
|
|
225
|
+
|
|
226
|
+
_host = None
|
|
227
|
+
|
|
228
|
+
_collection_formats: Dict[str, str] = {}
|
|
229
|
+
|
|
230
|
+
_path_params: Dict[str, str] = {}
|
|
231
|
+
_query_params: List[Tuple[str, str]] = []
|
|
232
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
233
|
+
_form_params: List[Tuple[str, str]] = []
|
|
234
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
235
|
+
_body_params: Optional[bytes] = None
|
|
236
|
+
|
|
237
|
+
# process the path parameters
|
|
238
|
+
if cell is not None:
|
|
239
|
+
_path_params["cell"] = cell
|
|
240
|
+
# process the query parameters
|
|
241
|
+
# process the header parameters
|
|
242
|
+
# process the form parameters
|
|
243
|
+
# process the body parameter
|
|
244
|
+
|
|
245
|
+
# set the HTTP header `Accept`
|
|
246
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
247
|
+
|
|
248
|
+
# authentication setting
|
|
249
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
250
|
+
|
|
251
|
+
return self.api_client.param_serialize(
|
|
252
|
+
method="DELETE",
|
|
253
|
+
resource_path="/cells/{cell}/motions",
|
|
254
|
+
path_params=_path_params,
|
|
255
|
+
query_params=_query_params,
|
|
256
|
+
header_params=_header_params,
|
|
257
|
+
body=_body_params,
|
|
258
|
+
post_params=_form_params,
|
|
259
|
+
files=_files,
|
|
260
|
+
auth_settings=_auth_settings,
|
|
261
|
+
collection_formats=_collection_formats,
|
|
262
|
+
_host=_host,
|
|
263
|
+
_request_auth=_request_auth,
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
@validate_call
|
|
267
|
+
async def delete_motion(
|
|
268
|
+
self,
|
|
269
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
270
|
+
motion: Annotated[
|
|
271
|
+
StrictStr,
|
|
272
|
+
Field(
|
|
273
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
274
|
+
),
|
|
275
|
+
],
|
|
276
|
+
_request_timeout: Union[
|
|
277
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
278
|
+
] = None,
|
|
279
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
280
|
+
_content_type: Optional[StrictStr] = None,
|
|
281
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
282
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
283
|
+
) -> None:
|
|
284
|
+
"""Remove
|
|
285
|
+
|
|
286
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Remove a previously created motion from cache. Use [listMotions](#/operations/listMotions) to list all available motions. Motions are removed automatically if the motion group or the corresponding controller is disconnected.
|
|
287
|
+
|
|
288
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
289
|
+
:type cell: str
|
|
290
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
291
|
+
:type motion: str
|
|
292
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
293
|
+
number provided, it will be total request
|
|
294
|
+
timeout. It can also be a pair (tuple) of
|
|
295
|
+
(connection, read) timeouts.
|
|
296
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
297
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
298
|
+
request; this effectively ignores the
|
|
299
|
+
authentication in the spec for a single request.
|
|
300
|
+
:type _request_auth: dict, optional
|
|
301
|
+
:param _content_type: force content-type for the request.
|
|
302
|
+
:type _content_type: str, Optional
|
|
303
|
+
:param _headers: set to override the headers for a single
|
|
304
|
+
request; this effectively ignores the headers
|
|
305
|
+
in the spec for a single request.
|
|
306
|
+
:type _headers: dict, optional
|
|
307
|
+
:param _host_index: set to override the host_index for a single
|
|
308
|
+
request; this effectively ignores the host_index
|
|
309
|
+
in the spec for a single request.
|
|
310
|
+
:type _host_index: int, optional
|
|
311
|
+
:return: Returns the result object.
|
|
312
|
+
""" # noqa: E501
|
|
313
|
+
|
|
314
|
+
_param = self._delete_motion_serialize(
|
|
315
|
+
cell=cell, motion=motion, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
319
|
+
"200": None,
|
|
320
|
+
}
|
|
321
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
322
|
+
await response_data.read()
|
|
323
|
+
return self.api_client.response_deserialize(
|
|
324
|
+
response_data=response_data,
|
|
325
|
+
response_types_map=_response_types_map,
|
|
326
|
+
).data
|
|
327
|
+
|
|
328
|
+
@validate_call
|
|
329
|
+
async def delete_motion_with_http_info(
|
|
330
|
+
self,
|
|
331
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
332
|
+
motion: Annotated[
|
|
333
|
+
StrictStr,
|
|
334
|
+
Field(
|
|
335
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
336
|
+
),
|
|
337
|
+
],
|
|
338
|
+
_request_timeout: Union[
|
|
339
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
340
|
+
] = None,
|
|
341
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
342
|
+
_content_type: Optional[StrictStr] = None,
|
|
343
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
344
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
345
|
+
) -> ApiResponse[None]:
|
|
346
|
+
"""Remove
|
|
347
|
+
|
|
348
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Remove a previously created motion from cache. Use [listMotions](#/operations/listMotions) to list all available motions. Motions are removed automatically if the motion group or the corresponding controller is disconnected.
|
|
349
|
+
|
|
350
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
351
|
+
:type cell: str
|
|
352
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
353
|
+
:type motion: str
|
|
354
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
355
|
+
number provided, it will be total request
|
|
356
|
+
timeout. It can also be a pair (tuple) of
|
|
357
|
+
(connection, read) timeouts.
|
|
358
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
359
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
360
|
+
request; this effectively ignores the
|
|
361
|
+
authentication in the spec for a single request.
|
|
362
|
+
:type _request_auth: dict, optional
|
|
363
|
+
:param _content_type: force content-type for the request.
|
|
364
|
+
:type _content_type: str, Optional
|
|
365
|
+
:param _headers: set to override the headers for a single
|
|
366
|
+
request; this effectively ignores the headers
|
|
367
|
+
in the spec for a single request.
|
|
368
|
+
:type _headers: dict, optional
|
|
369
|
+
:param _host_index: set to override the host_index for a single
|
|
370
|
+
request; this effectively ignores the host_index
|
|
371
|
+
in the spec for a single request.
|
|
372
|
+
:type _host_index: int, optional
|
|
373
|
+
:return: Returns the result object.
|
|
374
|
+
""" # noqa: E501
|
|
375
|
+
|
|
376
|
+
_param = self._delete_motion_serialize(
|
|
377
|
+
cell=cell, motion=motion, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
381
|
+
"200": None,
|
|
382
|
+
}
|
|
383
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
384
|
+
await response_data.read()
|
|
385
|
+
return self.api_client.response_deserialize(
|
|
386
|
+
response_data=response_data,
|
|
387
|
+
response_types_map=_response_types_map,
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
@validate_call
|
|
391
|
+
async def delete_motion_without_preload_content(
|
|
392
|
+
self,
|
|
393
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
394
|
+
motion: Annotated[
|
|
395
|
+
StrictStr,
|
|
396
|
+
Field(
|
|
397
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
398
|
+
),
|
|
399
|
+
],
|
|
400
|
+
_request_timeout: Union[
|
|
401
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
402
|
+
] = None,
|
|
403
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
404
|
+
_content_type: Optional[StrictStr] = None,
|
|
405
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
406
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
407
|
+
) -> RESTResponseType:
|
|
408
|
+
"""Remove
|
|
409
|
+
|
|
410
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Remove a previously created motion from cache. Use [listMotions](#/operations/listMotions) to list all available motions. Motions are removed automatically if the motion group or the corresponding controller is disconnected.
|
|
411
|
+
|
|
412
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
413
|
+
:type cell: str
|
|
414
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
415
|
+
:type motion: str
|
|
416
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
417
|
+
number provided, it will be total request
|
|
418
|
+
timeout. It can also be a pair (tuple) of
|
|
419
|
+
(connection, read) timeouts.
|
|
420
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
421
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
422
|
+
request; this effectively ignores the
|
|
423
|
+
authentication in the spec for a single request.
|
|
424
|
+
:type _request_auth: dict, optional
|
|
425
|
+
:param _content_type: force content-type for the request.
|
|
426
|
+
:type _content_type: str, Optional
|
|
427
|
+
:param _headers: set to override the headers for a single
|
|
428
|
+
request; this effectively ignores the headers
|
|
429
|
+
in the spec for a single request.
|
|
430
|
+
:type _headers: dict, optional
|
|
431
|
+
:param _host_index: set to override the host_index for a single
|
|
432
|
+
request; this effectively ignores the host_index
|
|
433
|
+
in the spec for a single request.
|
|
434
|
+
:type _host_index: int, optional
|
|
435
|
+
:return: Returns the result object.
|
|
436
|
+
""" # noqa: E501
|
|
437
|
+
|
|
438
|
+
_param = self._delete_motion_serialize(
|
|
439
|
+
cell=cell, motion=motion, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
443
|
+
"200": None,
|
|
444
|
+
}
|
|
445
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
446
|
+
return response_data.response
|
|
447
|
+
|
|
448
|
+
def _delete_motion_serialize(
|
|
449
|
+
self,
|
|
450
|
+
cell,
|
|
451
|
+
motion,
|
|
452
|
+
_request_auth,
|
|
453
|
+
_content_type,
|
|
454
|
+
_headers,
|
|
455
|
+
_host_index,
|
|
456
|
+
) -> RequestSerialized:
|
|
457
|
+
|
|
458
|
+
_host = None
|
|
459
|
+
|
|
460
|
+
_collection_formats: Dict[str, str] = {}
|
|
461
|
+
|
|
462
|
+
_path_params: Dict[str, str] = {}
|
|
463
|
+
_query_params: List[Tuple[str, str]] = []
|
|
464
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
465
|
+
_form_params: List[Tuple[str, str]] = []
|
|
466
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
467
|
+
_body_params: Optional[bytes] = None
|
|
468
|
+
|
|
469
|
+
# process the path parameters
|
|
470
|
+
if cell is not None:
|
|
471
|
+
_path_params["cell"] = cell
|
|
472
|
+
if motion is not None:
|
|
473
|
+
_path_params["motion"] = motion
|
|
474
|
+
# process the query parameters
|
|
475
|
+
# process the header parameters
|
|
476
|
+
# process the form parameters
|
|
477
|
+
# process the body parameter
|
|
478
|
+
|
|
479
|
+
# set the HTTP header `Accept`
|
|
480
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
481
|
+
|
|
482
|
+
# authentication setting
|
|
483
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
484
|
+
|
|
485
|
+
return self.api_client.param_serialize(
|
|
486
|
+
method="DELETE",
|
|
487
|
+
resource_path="/cells/{cell}/motions/{motion}/delete",
|
|
488
|
+
path_params=_path_params,
|
|
489
|
+
query_params=_query_params,
|
|
490
|
+
header_params=_header_params,
|
|
491
|
+
body=_body_params,
|
|
492
|
+
post_params=_form_params,
|
|
493
|
+
files=_files,
|
|
494
|
+
auth_settings=_auth_settings,
|
|
495
|
+
collection_formats=_collection_formats,
|
|
496
|
+
_host=_host,
|
|
497
|
+
_request_auth=_request_auth,
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
@validate_call
|
|
501
|
+
async def execute_trajectory(
|
|
502
|
+
self,
|
|
503
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
504
|
+
client_request_generator: Callable[
|
|
505
|
+
[AsyncGenerator[ExecuteTrajectoryResponse, None]], AsyncGenerator[ExecuteTrajectoryRequest, None]
|
|
506
|
+
],
|
|
507
|
+
) -> None: # noqa: E501
|
|
508
|
+
"""Execute Trajectory # noqa: E501
|
|
509
|
+
|
|
510
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: danger --> > Websocket endpoint Provide execution control over a previously planned trajectory. Enable the caller to attach I/O actions to the trajectory. Understanding the concept of location: The location or path parameter specifies the exact position along a trajectory. The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g. line, p2p, etc. See [planMotion](#/operations/planMotion). Each integer value of the location corresponds to one motion command, e.g. 3.0 to 3.999 could be a line. ### Preconditions - The motion group's control mode is not claimed by any other endpoint. - The motion group's joint position is at the start location specified with InitializeMovementRequest. ### Requests #### 1. Send InitializeMovementRequest to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time and not unlocked anymore. To execute another trajectory, a new connection must be established. #### 2. Send StartMovementRequest to start the movement - Sets direction of movement, default is forward. #### **Optional** - To pause, send PauseMovementRequest before the movement has reached its end location. - Change the movement's velocity with PlaybackSpeedRequest after initializing the movement with InitializeMovementRequest. ### Responses - InitializeMovementResponse is sent to signal the success or failure of the InitializeMovementRequest. - Movement responses are streamed after a StartMovementRequest successfully started the movement. Movement responses are streamed in a rate that is defined as the multiple of the controller step-rate closest to but not exceeding the rate configured by InitializeMovementRequest. - Standstill response is sent once the movement has finished or has come to a standstill due to a pause. - PauseMovementResponse is sent to signal the success of the PauseMovementRequest. It does not signal the end of the movement. End of movement is signaled by standstill response. - PlaybackSpeedResponse is sent to signal the success of the PlaybackSpeedRequest. - MovementError with error details is sent in case of an unexpected error, e.g. controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending PauseMovementRequest and StartMovementRequest. - Send PlaybackSpeedRequest before StartMovementRequest to reduce the velocity of the movement before it starts. - Send PlaybackSpeedRequest repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send PlaybackSpeedRequest with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending StartMovementRequest after the movement has finished. # noqa: E501
|
|
511
|
+
:param client_request_generator: An AsyncGenerator that yields request of type ExecuteTrajectoryRequest and takes an AsyncGenerator of ExecuteTrajectoryResponse as an input argument (required)
|
|
512
|
+
:info All responses from the server will be yielded to client_request_generator through the (AsyncGenerator[ExecuteTrajectoryResponse, None])
|
|
513
|
+
:type AsyncGenerator[ExecuteTrajectoryRequest, None]
|
|
514
|
+
"""
|
|
515
|
+
|
|
516
|
+
def format_path_parameters(path):
|
|
517
|
+
# Find all substrings that are enclosed in brackets
|
|
518
|
+
bracket_contents = re.findall(r"\{(.*?)\}", path)
|
|
519
|
+
|
|
520
|
+
# For each found substring, alter it to match the python variable name
|
|
521
|
+
for content in bracket_contents:
|
|
522
|
+
content = "{" + content + "}"
|
|
523
|
+
modified_content = humps.dekebabize(content)
|
|
524
|
+
path = path.replace(content, modified_content)
|
|
525
|
+
|
|
526
|
+
return path
|
|
527
|
+
|
|
528
|
+
async def iterate_responses(ws) -> AsyncGenerator[ExecuteTrajectoryResponse, None]:
|
|
529
|
+
async for response in ws:
|
|
530
|
+
if "Cancelled on the server side" in response:
|
|
531
|
+
break
|
|
532
|
+
response_data = json.loads(response)
|
|
533
|
+
if "result" not in response_data:
|
|
534
|
+
raise Exception(response_data)
|
|
535
|
+
result_data = response_data["result"]
|
|
536
|
+
if isinstance(result_data, list):
|
|
537
|
+
# Handle list of objects
|
|
538
|
+
import re
|
|
539
|
+
|
|
540
|
+
# Extract the base type from List[BaseType] pattern
|
|
541
|
+
return_type_str = "ExecuteTrajectoryResponse"
|
|
542
|
+
if return_type_str.startswith("List[") and return_type_str.endswith("]"):
|
|
543
|
+
base_type_name = return_type_str[5:-1] # Remove "List[" and "]"
|
|
544
|
+
# Get the actual class from the module
|
|
545
|
+
base_type_class = globals().get(base_type_name)
|
|
546
|
+
if base_type_class and hasattr(base_type_class, "from_dict"):
|
|
547
|
+
result_list = [base_type_class.from_dict(item) for item in result_data]
|
|
548
|
+
yield result_list
|
|
549
|
+
else:
|
|
550
|
+
yield result_data
|
|
551
|
+
else:
|
|
552
|
+
yield result_data
|
|
553
|
+
else:
|
|
554
|
+
# Handle single object
|
|
555
|
+
yield ExecuteTrajectoryResponse.from_dict(result_data)
|
|
556
|
+
|
|
557
|
+
path = format_path_parameters("/cells/{cell}/motions/executetrajectory")
|
|
558
|
+
path = path.format(
|
|
559
|
+
cell=cell,
|
|
560
|
+
)
|
|
561
|
+
|
|
562
|
+
headers = websockets.Headers()
|
|
563
|
+
tmp_host = self.api_client.configuration.host
|
|
564
|
+
if self.api_client.configuration.host.startswith("https://"):
|
|
565
|
+
# Basic Auth
|
|
566
|
+
if self.api_client.configuration.username:
|
|
567
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
568
|
+
tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
|
|
569
|
+
|
|
570
|
+
# OAuth2
|
|
571
|
+
elif self.api_client.configuration.access_token:
|
|
572
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
573
|
+
tmp_host = f"wss://{tmp_host}"
|
|
574
|
+
headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
|
|
575
|
+
else:
|
|
576
|
+
tmp_host = tmp_host.replace("http://", "ws://")
|
|
577
|
+
|
|
578
|
+
full_url = furl(tmp_host + path)
|
|
579
|
+
|
|
580
|
+
async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
|
|
581
|
+
try:
|
|
582
|
+
async for request in client_request_generator(iterate_responses(websocket)):
|
|
583
|
+
await websocket.send(request.to_json())
|
|
584
|
+
finally:
|
|
585
|
+
await websocket.close()
|
|
586
|
+
|
|
587
|
+
@validate_call
|
|
588
|
+
async def get_motion_trajectory(
|
|
589
|
+
self,
|
|
590
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
591
|
+
motion: Annotated[
|
|
592
|
+
StrictStr,
|
|
593
|
+
Field(
|
|
594
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
595
|
+
),
|
|
596
|
+
],
|
|
597
|
+
sample_time: Annotated[
|
|
598
|
+
StrictInt,
|
|
599
|
+
Field(description="The value of `sample_time` is the time in milliseconds (ms) between each point in the trajectory. "),
|
|
600
|
+
],
|
|
601
|
+
responses_coordinate_system: Annotated[
|
|
602
|
+
Optional[StrictStr],
|
|
603
|
+
Field(
|
|
604
|
+
description="Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default: world coordinate system. "
|
|
605
|
+
),
|
|
606
|
+
] = None,
|
|
607
|
+
_request_timeout: Union[
|
|
608
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
609
|
+
] = None,
|
|
610
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
611
|
+
_content_type: Optional[StrictStr] = None,
|
|
612
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
613
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
614
|
+
) -> GetTrajectoryResponse:
|
|
615
|
+
"""Get Trajectory
|
|
616
|
+
|
|
617
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the trajectory of a planned motion with defined `sample_time` in milliseconds (ms). The trajectory is a list of points containing cartesian and joint data. The cartesian data is in the requested coordinate system. To get a single point of the trajectory, please use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
|
|
618
|
+
|
|
619
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
620
|
+
:type cell: str
|
|
621
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
622
|
+
:type motion: str
|
|
623
|
+
:param sample_time: The value of `sample_time` is the time in milliseconds (ms) between each point in the trajectory. (required)
|
|
624
|
+
:type sample_time: int
|
|
625
|
+
:param responses_coordinate_system: Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default: world coordinate system.
|
|
626
|
+
:type responses_coordinate_system: str
|
|
627
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
628
|
+
number provided, it will be total request
|
|
629
|
+
timeout. It can also be a pair (tuple) of
|
|
630
|
+
(connection, read) timeouts.
|
|
631
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
632
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
633
|
+
request; this effectively ignores the
|
|
634
|
+
authentication in the spec for a single request.
|
|
635
|
+
:type _request_auth: dict, optional
|
|
636
|
+
:param _content_type: force content-type for the request.
|
|
637
|
+
:type _content_type: str, Optional
|
|
638
|
+
:param _headers: set to override the headers for a single
|
|
639
|
+
request; this effectively ignores the headers
|
|
640
|
+
in the spec for a single request.
|
|
641
|
+
:type _headers: dict, optional
|
|
642
|
+
:param _host_index: set to override the host_index for a single
|
|
643
|
+
request; this effectively ignores the host_index
|
|
644
|
+
in the spec for a single request.
|
|
645
|
+
:type _host_index: int, optional
|
|
646
|
+
:return: Returns the result object.
|
|
647
|
+
""" # noqa: E501
|
|
648
|
+
|
|
649
|
+
_param = self._get_motion_trajectory_serialize(
|
|
650
|
+
cell=cell,
|
|
651
|
+
motion=motion,
|
|
652
|
+
sample_time=sample_time,
|
|
653
|
+
responses_coordinate_system=responses_coordinate_system,
|
|
654
|
+
_request_auth=_request_auth,
|
|
655
|
+
_content_type=_content_type,
|
|
656
|
+
_headers=_headers,
|
|
657
|
+
_host_index=_host_index,
|
|
658
|
+
)
|
|
659
|
+
|
|
660
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
661
|
+
"200": "GetTrajectoryResponse",
|
|
662
|
+
}
|
|
663
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
664
|
+
await response_data.read()
|
|
665
|
+
return self.api_client.response_deserialize(
|
|
666
|
+
response_data=response_data,
|
|
667
|
+
response_types_map=_response_types_map,
|
|
668
|
+
).data
|
|
669
|
+
|
|
670
|
+
@validate_call
|
|
671
|
+
async def get_motion_trajectory_with_http_info(
|
|
672
|
+
self,
|
|
673
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
674
|
+
motion: Annotated[
|
|
675
|
+
StrictStr,
|
|
676
|
+
Field(
|
|
677
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
678
|
+
),
|
|
679
|
+
],
|
|
680
|
+
sample_time: Annotated[
|
|
681
|
+
StrictInt,
|
|
682
|
+
Field(description="The value of `sample_time` is the time in milliseconds (ms) between each point in the trajectory. "),
|
|
683
|
+
],
|
|
684
|
+
responses_coordinate_system: Annotated[
|
|
685
|
+
Optional[StrictStr],
|
|
686
|
+
Field(
|
|
687
|
+
description="Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default: world coordinate system. "
|
|
688
|
+
),
|
|
689
|
+
] = None,
|
|
690
|
+
_request_timeout: Union[
|
|
691
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
692
|
+
] = None,
|
|
693
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
694
|
+
_content_type: Optional[StrictStr] = None,
|
|
695
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
696
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
697
|
+
) -> ApiResponse[GetTrajectoryResponse]:
|
|
698
|
+
"""Get Trajectory
|
|
699
|
+
|
|
700
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the trajectory of a planned motion with defined `sample_time` in milliseconds (ms). The trajectory is a list of points containing cartesian and joint data. The cartesian data is in the requested coordinate system. To get a single point of the trajectory, please use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
|
|
701
|
+
|
|
702
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
703
|
+
:type cell: str
|
|
704
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
705
|
+
:type motion: str
|
|
706
|
+
:param sample_time: The value of `sample_time` is the time in milliseconds (ms) between each point in the trajectory. (required)
|
|
707
|
+
:type sample_time: int
|
|
708
|
+
:param responses_coordinate_system: Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default: world coordinate system.
|
|
709
|
+
:type responses_coordinate_system: str
|
|
710
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
711
|
+
number provided, it will be total request
|
|
712
|
+
timeout. It can also be a pair (tuple) of
|
|
713
|
+
(connection, read) timeouts.
|
|
714
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
715
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
716
|
+
request; this effectively ignores the
|
|
717
|
+
authentication in the spec for a single request.
|
|
718
|
+
:type _request_auth: dict, optional
|
|
719
|
+
:param _content_type: force content-type for the request.
|
|
720
|
+
:type _content_type: str, Optional
|
|
721
|
+
:param _headers: set to override the headers for a single
|
|
722
|
+
request; this effectively ignores the headers
|
|
723
|
+
in the spec for a single request.
|
|
724
|
+
:type _headers: dict, optional
|
|
725
|
+
:param _host_index: set to override the host_index for a single
|
|
726
|
+
request; this effectively ignores the host_index
|
|
727
|
+
in the spec for a single request.
|
|
728
|
+
:type _host_index: int, optional
|
|
729
|
+
:return: Returns the result object.
|
|
730
|
+
""" # noqa: E501
|
|
731
|
+
|
|
732
|
+
_param = self._get_motion_trajectory_serialize(
|
|
733
|
+
cell=cell,
|
|
734
|
+
motion=motion,
|
|
735
|
+
sample_time=sample_time,
|
|
736
|
+
responses_coordinate_system=responses_coordinate_system,
|
|
737
|
+
_request_auth=_request_auth,
|
|
738
|
+
_content_type=_content_type,
|
|
739
|
+
_headers=_headers,
|
|
740
|
+
_host_index=_host_index,
|
|
741
|
+
)
|
|
742
|
+
|
|
743
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
744
|
+
"200": "GetTrajectoryResponse",
|
|
745
|
+
}
|
|
746
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
747
|
+
await response_data.read()
|
|
748
|
+
return self.api_client.response_deserialize(
|
|
749
|
+
response_data=response_data,
|
|
750
|
+
response_types_map=_response_types_map,
|
|
751
|
+
)
|
|
752
|
+
|
|
753
|
+
@validate_call
|
|
754
|
+
async def get_motion_trajectory_without_preload_content(
|
|
755
|
+
self,
|
|
756
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
757
|
+
motion: Annotated[
|
|
758
|
+
StrictStr,
|
|
759
|
+
Field(
|
|
760
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
761
|
+
),
|
|
762
|
+
],
|
|
763
|
+
sample_time: Annotated[
|
|
764
|
+
StrictInt,
|
|
765
|
+
Field(description="The value of `sample_time` is the time in milliseconds (ms) between each point in the trajectory. "),
|
|
766
|
+
],
|
|
767
|
+
responses_coordinate_system: Annotated[
|
|
768
|
+
Optional[StrictStr],
|
|
769
|
+
Field(
|
|
770
|
+
description="Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default: world coordinate system. "
|
|
771
|
+
),
|
|
772
|
+
] = None,
|
|
773
|
+
_request_timeout: Union[
|
|
774
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
775
|
+
] = None,
|
|
776
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
777
|
+
_content_type: Optional[StrictStr] = None,
|
|
778
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
779
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
780
|
+
) -> RESTResponseType:
|
|
781
|
+
"""Get Trajectory
|
|
782
|
+
|
|
783
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the trajectory of a planned motion with defined `sample_time` in milliseconds (ms). The trajectory is a list of points containing cartesian and joint data. The cartesian data is in the requested coordinate system. To get a single point of the trajectory, please use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
|
|
784
|
+
|
|
785
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
786
|
+
:type cell: str
|
|
787
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
788
|
+
:type motion: str
|
|
789
|
+
:param sample_time: The value of `sample_time` is the time in milliseconds (ms) between each point in the trajectory. (required)
|
|
790
|
+
:type sample_time: int
|
|
791
|
+
:param responses_coordinate_system: Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default: world coordinate system.
|
|
792
|
+
:type responses_coordinate_system: str
|
|
793
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
794
|
+
number provided, it will be total request
|
|
795
|
+
timeout. It can also be a pair (tuple) of
|
|
796
|
+
(connection, read) timeouts.
|
|
797
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
798
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
799
|
+
request; this effectively ignores the
|
|
800
|
+
authentication in the spec for a single request.
|
|
801
|
+
:type _request_auth: dict, optional
|
|
802
|
+
:param _content_type: force content-type for the request.
|
|
803
|
+
:type _content_type: str, Optional
|
|
804
|
+
:param _headers: set to override the headers for a single
|
|
805
|
+
request; this effectively ignores the headers
|
|
806
|
+
in the spec for a single request.
|
|
807
|
+
:type _headers: dict, optional
|
|
808
|
+
:param _host_index: set to override the host_index for a single
|
|
809
|
+
request; this effectively ignores the host_index
|
|
810
|
+
in the spec for a single request.
|
|
811
|
+
:type _host_index: int, optional
|
|
812
|
+
:return: Returns the result object.
|
|
813
|
+
""" # noqa: E501
|
|
814
|
+
|
|
815
|
+
_param = self._get_motion_trajectory_serialize(
|
|
816
|
+
cell=cell,
|
|
817
|
+
motion=motion,
|
|
818
|
+
sample_time=sample_time,
|
|
819
|
+
responses_coordinate_system=responses_coordinate_system,
|
|
820
|
+
_request_auth=_request_auth,
|
|
821
|
+
_content_type=_content_type,
|
|
822
|
+
_headers=_headers,
|
|
823
|
+
_host_index=_host_index,
|
|
824
|
+
)
|
|
825
|
+
|
|
826
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
827
|
+
"200": "GetTrajectoryResponse",
|
|
828
|
+
}
|
|
829
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
830
|
+
return response_data.response
|
|
831
|
+
|
|
832
|
+
def _get_motion_trajectory_serialize(
|
|
833
|
+
self,
|
|
834
|
+
cell,
|
|
835
|
+
motion,
|
|
836
|
+
sample_time,
|
|
837
|
+
responses_coordinate_system,
|
|
838
|
+
_request_auth,
|
|
839
|
+
_content_type,
|
|
840
|
+
_headers,
|
|
841
|
+
_host_index,
|
|
842
|
+
) -> RequestSerialized:
|
|
843
|
+
|
|
844
|
+
_host = None
|
|
845
|
+
|
|
846
|
+
_collection_formats: Dict[str, str] = {}
|
|
847
|
+
|
|
848
|
+
_path_params: Dict[str, str] = {}
|
|
849
|
+
_query_params: List[Tuple[str, str]] = []
|
|
850
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
851
|
+
_form_params: List[Tuple[str, str]] = []
|
|
852
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
853
|
+
_body_params: Optional[bytes] = None
|
|
854
|
+
|
|
855
|
+
# process the path parameters
|
|
856
|
+
if cell is not None:
|
|
857
|
+
_path_params["cell"] = cell
|
|
858
|
+
if motion is not None:
|
|
859
|
+
_path_params["motion"] = motion
|
|
860
|
+
# process the query parameters
|
|
861
|
+
if sample_time is not None:
|
|
862
|
+
_query_params.append(("sample_time", sample_time))
|
|
863
|
+
|
|
864
|
+
if responses_coordinate_system is not None:
|
|
865
|
+
_query_params.append(("responses_coordinate_system", responses_coordinate_system))
|
|
866
|
+
|
|
867
|
+
# process the header parameters
|
|
868
|
+
# process the form parameters
|
|
869
|
+
# process the body parameter
|
|
870
|
+
|
|
871
|
+
# set the HTTP header `Accept`
|
|
872
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
873
|
+
|
|
874
|
+
# authentication setting
|
|
875
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
876
|
+
|
|
877
|
+
return self.api_client.param_serialize(
|
|
878
|
+
method="GET",
|
|
879
|
+
resource_path="/cells/{cell}/motions/{motion}/trajectory",
|
|
880
|
+
path_params=_path_params,
|
|
881
|
+
query_params=_query_params,
|
|
882
|
+
header_params=_header_params,
|
|
883
|
+
body=_body_params,
|
|
884
|
+
post_params=_form_params,
|
|
885
|
+
files=_files,
|
|
886
|
+
auth_settings=_auth_settings,
|
|
887
|
+
collection_formats=_collection_formats,
|
|
888
|
+
_host=_host,
|
|
889
|
+
_request_auth=_request_auth,
|
|
890
|
+
)
|
|
891
|
+
|
|
892
|
+
@validate_call
|
|
893
|
+
async def get_motion_trajectory_sample(
|
|
894
|
+
self,
|
|
895
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
896
|
+
motion: Annotated[
|
|
897
|
+
StrictStr,
|
|
898
|
+
Field(
|
|
899
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
900
|
+
),
|
|
901
|
+
],
|
|
902
|
+
location_on_trajectory: Optional[Union[StrictFloat, StrictInt]] = None,
|
|
903
|
+
response_coordinate_system: Annotated[
|
|
904
|
+
Optional[StrictStr],
|
|
905
|
+
Field(
|
|
906
|
+
description="Unique identifier addressing a coordinate system for which the cartesian data of the response should be converted to. Default is the world coordinate system."
|
|
907
|
+
),
|
|
908
|
+
] = None,
|
|
909
|
+
_request_timeout: Union[
|
|
910
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
911
|
+
] = None,
|
|
912
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
913
|
+
_content_type: Optional[StrictStr] = None,
|
|
914
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
915
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
916
|
+
) -> GetTrajectorySampleResponse:
|
|
917
|
+
"""Get Trajectory Sample
|
|
918
|
+
|
|
919
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a single point at a certain location of a planned motion. To get the whole trajectory, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint.
|
|
920
|
+
|
|
921
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
922
|
+
:type cell: str
|
|
923
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
924
|
+
:type motion: str
|
|
925
|
+
:param location_on_trajectory:
|
|
926
|
+
:type location_on_trajectory: float
|
|
927
|
+
:param response_coordinate_system: Unique identifier addressing a coordinate system for which the cartesian data of the response should be converted to. Default is the world coordinate system.
|
|
928
|
+
:type response_coordinate_system: str
|
|
929
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
930
|
+
number provided, it will be total request
|
|
931
|
+
timeout. It can also be a pair (tuple) of
|
|
932
|
+
(connection, read) timeouts.
|
|
933
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
934
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
935
|
+
request; this effectively ignores the
|
|
936
|
+
authentication in the spec for a single request.
|
|
937
|
+
:type _request_auth: dict, optional
|
|
938
|
+
:param _content_type: force content-type for the request.
|
|
939
|
+
:type _content_type: str, Optional
|
|
940
|
+
:param _headers: set to override the headers for a single
|
|
941
|
+
request; this effectively ignores the headers
|
|
942
|
+
in the spec for a single request.
|
|
943
|
+
:type _headers: dict, optional
|
|
944
|
+
:param _host_index: set to override the host_index for a single
|
|
945
|
+
request; this effectively ignores the host_index
|
|
946
|
+
in the spec for a single request.
|
|
947
|
+
:type _host_index: int, optional
|
|
948
|
+
:return: Returns the result object.
|
|
949
|
+
""" # noqa: E501
|
|
950
|
+
|
|
951
|
+
_param = self._get_motion_trajectory_sample_serialize(
|
|
952
|
+
cell=cell,
|
|
953
|
+
motion=motion,
|
|
954
|
+
location_on_trajectory=location_on_trajectory,
|
|
955
|
+
response_coordinate_system=response_coordinate_system,
|
|
956
|
+
_request_auth=_request_auth,
|
|
957
|
+
_content_type=_content_type,
|
|
958
|
+
_headers=_headers,
|
|
959
|
+
_host_index=_host_index,
|
|
960
|
+
)
|
|
961
|
+
|
|
962
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
963
|
+
"200": "GetTrajectorySampleResponse",
|
|
964
|
+
}
|
|
965
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
966
|
+
await response_data.read()
|
|
967
|
+
return self.api_client.response_deserialize(
|
|
968
|
+
response_data=response_data,
|
|
969
|
+
response_types_map=_response_types_map,
|
|
970
|
+
).data
|
|
971
|
+
|
|
972
|
+
@validate_call
|
|
973
|
+
async def get_motion_trajectory_sample_with_http_info(
|
|
974
|
+
self,
|
|
975
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
976
|
+
motion: Annotated[
|
|
977
|
+
StrictStr,
|
|
978
|
+
Field(
|
|
979
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
980
|
+
),
|
|
981
|
+
],
|
|
982
|
+
location_on_trajectory: Optional[Union[StrictFloat, StrictInt]] = None,
|
|
983
|
+
response_coordinate_system: Annotated[
|
|
984
|
+
Optional[StrictStr],
|
|
985
|
+
Field(
|
|
986
|
+
description="Unique identifier addressing a coordinate system for which the cartesian data of the response should be converted to. Default is the world coordinate system."
|
|
987
|
+
),
|
|
988
|
+
] = None,
|
|
989
|
+
_request_timeout: Union[
|
|
990
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
991
|
+
] = None,
|
|
992
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
993
|
+
_content_type: Optional[StrictStr] = None,
|
|
994
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
995
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
996
|
+
) -> ApiResponse[GetTrajectorySampleResponse]:
|
|
997
|
+
"""Get Trajectory Sample
|
|
998
|
+
|
|
999
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a single point at a certain location of a planned motion. To get the whole trajectory, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint.
|
|
1000
|
+
|
|
1001
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1002
|
+
:type cell: str
|
|
1003
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
1004
|
+
:type motion: str
|
|
1005
|
+
:param location_on_trajectory:
|
|
1006
|
+
:type location_on_trajectory: float
|
|
1007
|
+
:param response_coordinate_system: Unique identifier addressing a coordinate system for which the cartesian data of the response should be converted to. Default is the world coordinate system.
|
|
1008
|
+
:type response_coordinate_system: str
|
|
1009
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1010
|
+
number provided, it will be total request
|
|
1011
|
+
timeout. It can also be a pair (tuple) of
|
|
1012
|
+
(connection, read) timeouts.
|
|
1013
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1014
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1015
|
+
request; this effectively ignores the
|
|
1016
|
+
authentication in the spec for a single request.
|
|
1017
|
+
:type _request_auth: dict, optional
|
|
1018
|
+
:param _content_type: force content-type for the request.
|
|
1019
|
+
:type _content_type: str, Optional
|
|
1020
|
+
:param _headers: set to override the headers for a single
|
|
1021
|
+
request; this effectively ignores the headers
|
|
1022
|
+
in the spec for a single request.
|
|
1023
|
+
:type _headers: dict, optional
|
|
1024
|
+
:param _host_index: set to override the host_index for a single
|
|
1025
|
+
request; this effectively ignores the host_index
|
|
1026
|
+
in the spec for a single request.
|
|
1027
|
+
:type _host_index: int, optional
|
|
1028
|
+
:return: Returns the result object.
|
|
1029
|
+
""" # noqa: E501
|
|
1030
|
+
|
|
1031
|
+
_param = self._get_motion_trajectory_sample_serialize(
|
|
1032
|
+
cell=cell,
|
|
1033
|
+
motion=motion,
|
|
1034
|
+
location_on_trajectory=location_on_trajectory,
|
|
1035
|
+
response_coordinate_system=response_coordinate_system,
|
|
1036
|
+
_request_auth=_request_auth,
|
|
1037
|
+
_content_type=_content_type,
|
|
1038
|
+
_headers=_headers,
|
|
1039
|
+
_host_index=_host_index,
|
|
1040
|
+
)
|
|
1041
|
+
|
|
1042
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1043
|
+
"200": "GetTrajectorySampleResponse",
|
|
1044
|
+
}
|
|
1045
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1046
|
+
await response_data.read()
|
|
1047
|
+
return self.api_client.response_deserialize(
|
|
1048
|
+
response_data=response_data,
|
|
1049
|
+
response_types_map=_response_types_map,
|
|
1050
|
+
)
|
|
1051
|
+
|
|
1052
|
+
@validate_call
|
|
1053
|
+
async def get_motion_trajectory_sample_without_preload_content(
|
|
1054
|
+
self,
|
|
1055
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1056
|
+
motion: Annotated[
|
|
1057
|
+
StrictStr,
|
|
1058
|
+
Field(
|
|
1059
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
1060
|
+
),
|
|
1061
|
+
],
|
|
1062
|
+
location_on_trajectory: Optional[Union[StrictFloat, StrictInt]] = None,
|
|
1063
|
+
response_coordinate_system: Annotated[
|
|
1064
|
+
Optional[StrictStr],
|
|
1065
|
+
Field(
|
|
1066
|
+
description="Unique identifier addressing a coordinate system for which the cartesian data of the response should be converted to. Default is the world coordinate system."
|
|
1067
|
+
),
|
|
1068
|
+
] = None,
|
|
1069
|
+
_request_timeout: Union[
|
|
1070
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1071
|
+
] = None,
|
|
1072
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1073
|
+
_content_type: Optional[StrictStr] = None,
|
|
1074
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1075
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1076
|
+
) -> RESTResponseType:
|
|
1077
|
+
"""Get Trajectory Sample
|
|
1078
|
+
|
|
1079
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a single point at a certain location of a planned motion. To get the whole trajectory, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint.
|
|
1080
|
+
|
|
1081
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1082
|
+
:type cell: str
|
|
1083
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
1084
|
+
:type motion: str
|
|
1085
|
+
:param location_on_trajectory:
|
|
1086
|
+
:type location_on_trajectory: float
|
|
1087
|
+
:param response_coordinate_system: Unique identifier addressing a coordinate system for which the cartesian data of the response should be converted to. Default is the world coordinate system.
|
|
1088
|
+
:type response_coordinate_system: str
|
|
1089
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1090
|
+
number provided, it will be total request
|
|
1091
|
+
timeout. It can also be a pair (tuple) of
|
|
1092
|
+
(connection, read) timeouts.
|
|
1093
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1094
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1095
|
+
request; this effectively ignores the
|
|
1096
|
+
authentication in the spec for a single request.
|
|
1097
|
+
:type _request_auth: dict, optional
|
|
1098
|
+
:param _content_type: force content-type for the request.
|
|
1099
|
+
:type _content_type: str, Optional
|
|
1100
|
+
:param _headers: set to override the headers for a single
|
|
1101
|
+
request; this effectively ignores the headers
|
|
1102
|
+
in the spec for a single request.
|
|
1103
|
+
:type _headers: dict, optional
|
|
1104
|
+
:param _host_index: set to override the host_index for a single
|
|
1105
|
+
request; this effectively ignores the host_index
|
|
1106
|
+
in the spec for a single request.
|
|
1107
|
+
:type _host_index: int, optional
|
|
1108
|
+
:return: Returns the result object.
|
|
1109
|
+
""" # noqa: E501
|
|
1110
|
+
|
|
1111
|
+
_param = self._get_motion_trajectory_sample_serialize(
|
|
1112
|
+
cell=cell,
|
|
1113
|
+
motion=motion,
|
|
1114
|
+
location_on_trajectory=location_on_trajectory,
|
|
1115
|
+
response_coordinate_system=response_coordinate_system,
|
|
1116
|
+
_request_auth=_request_auth,
|
|
1117
|
+
_content_type=_content_type,
|
|
1118
|
+
_headers=_headers,
|
|
1119
|
+
_host_index=_host_index,
|
|
1120
|
+
)
|
|
1121
|
+
|
|
1122
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1123
|
+
"200": "GetTrajectorySampleResponse",
|
|
1124
|
+
}
|
|
1125
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1126
|
+
return response_data.response
|
|
1127
|
+
|
|
1128
|
+
def _get_motion_trajectory_sample_serialize(
|
|
1129
|
+
self,
|
|
1130
|
+
cell,
|
|
1131
|
+
motion,
|
|
1132
|
+
location_on_trajectory,
|
|
1133
|
+
response_coordinate_system,
|
|
1134
|
+
_request_auth,
|
|
1135
|
+
_content_type,
|
|
1136
|
+
_headers,
|
|
1137
|
+
_host_index,
|
|
1138
|
+
) -> RequestSerialized:
|
|
1139
|
+
|
|
1140
|
+
_host = None
|
|
1141
|
+
|
|
1142
|
+
_collection_formats: Dict[str, str] = {}
|
|
1143
|
+
|
|
1144
|
+
_path_params: Dict[str, str] = {}
|
|
1145
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1146
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1147
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1148
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
1149
|
+
_body_params: Optional[bytes] = None
|
|
1150
|
+
|
|
1151
|
+
# process the path parameters
|
|
1152
|
+
if cell is not None:
|
|
1153
|
+
_path_params["cell"] = cell
|
|
1154
|
+
if motion is not None:
|
|
1155
|
+
_path_params["motion"] = motion
|
|
1156
|
+
# process the query parameters
|
|
1157
|
+
if location_on_trajectory is not None:
|
|
1158
|
+
_query_params.append(("location_on_trajectory", location_on_trajectory))
|
|
1159
|
+
|
|
1160
|
+
if response_coordinate_system is not None:
|
|
1161
|
+
_query_params.append(("response_coordinate_system", response_coordinate_system))
|
|
1162
|
+
|
|
1163
|
+
# process the header parameters
|
|
1164
|
+
# process the form parameters
|
|
1165
|
+
# process the body parameter
|
|
1166
|
+
|
|
1167
|
+
# set the HTTP header `Accept`
|
|
1168
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
1169
|
+
|
|
1170
|
+
# authentication setting
|
|
1171
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
1172
|
+
|
|
1173
|
+
return self.api_client.param_serialize(
|
|
1174
|
+
method="GET",
|
|
1175
|
+
resource_path="/cells/{cell}/motions/{motion}/trajectorysample",
|
|
1176
|
+
path_params=_path_params,
|
|
1177
|
+
query_params=_query_params,
|
|
1178
|
+
header_params=_header_params,
|
|
1179
|
+
body=_body_params,
|
|
1180
|
+
post_params=_form_params,
|
|
1181
|
+
files=_files,
|
|
1182
|
+
auth_settings=_auth_settings,
|
|
1183
|
+
collection_formats=_collection_formats,
|
|
1184
|
+
_host=_host,
|
|
1185
|
+
_request_auth=_request_auth,
|
|
1186
|
+
)
|
|
1187
|
+
|
|
1188
|
+
@validate_call
|
|
1189
|
+
async def get_planned_motion(
|
|
1190
|
+
self,
|
|
1191
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1192
|
+
motion: Annotated[
|
|
1193
|
+
StrictStr,
|
|
1194
|
+
Field(
|
|
1195
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
1196
|
+
),
|
|
1197
|
+
],
|
|
1198
|
+
sample_time: Annotated[
|
|
1199
|
+
Optional[StrictInt],
|
|
1200
|
+
Field(
|
|
1201
|
+
description="-| The value of `sample_time` is the time in milliseconds (ms) between each datapoint of the planned motion. Optional. If not provided, the data is returned as it is stored internally and equidistant sampling is not guaranteed."
|
|
1202
|
+
),
|
|
1203
|
+
] = None,
|
|
1204
|
+
_request_timeout: Union[
|
|
1205
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1206
|
+
] = None,
|
|
1207
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1208
|
+
_content_type: Optional[StrictStr] = None,
|
|
1209
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1210
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1211
|
+
) -> PlannedMotion:
|
|
1212
|
+
"""Get Planned Motion
|
|
1213
|
+
|
|
1214
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the joint data of a planned motion. The planned motion contains only the joint information, to persistently store and reload it later. The data will be sampled equidistantly with defined `sample_time` in milliseconds (ms). If not provided, the data is returned as it is stored on Wandelbots NOVA system. To request cartesian data for visualization purposes, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint. To get a single point of the planned motion, use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
|
|
1215
|
+
|
|
1216
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1217
|
+
:type cell: str
|
|
1218
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
1219
|
+
:type motion: str
|
|
1220
|
+
:param sample_time: -| The value of `sample_time` is the time in milliseconds (ms) between each datapoint of the planned motion. Optional. If not provided, the data is returned as it is stored internally and equidistant sampling is not guaranteed.
|
|
1221
|
+
:type sample_time: int
|
|
1222
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1223
|
+
number provided, it will be total request
|
|
1224
|
+
timeout. It can also be a pair (tuple) of
|
|
1225
|
+
(connection, read) timeouts.
|
|
1226
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1227
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1228
|
+
request; this effectively ignores the
|
|
1229
|
+
authentication in the spec for a single request.
|
|
1230
|
+
:type _request_auth: dict, optional
|
|
1231
|
+
:param _content_type: force content-type for the request.
|
|
1232
|
+
:type _content_type: str, Optional
|
|
1233
|
+
:param _headers: set to override the headers for a single
|
|
1234
|
+
request; this effectively ignores the headers
|
|
1235
|
+
in the spec for a single request.
|
|
1236
|
+
:type _headers: dict, optional
|
|
1237
|
+
:param _host_index: set to override the host_index for a single
|
|
1238
|
+
request; this effectively ignores the host_index
|
|
1239
|
+
in the spec for a single request.
|
|
1240
|
+
:type _host_index: int, optional
|
|
1241
|
+
:return: Returns the result object.
|
|
1242
|
+
""" # noqa: E501
|
|
1243
|
+
|
|
1244
|
+
_param = self._get_planned_motion_serialize(
|
|
1245
|
+
cell=cell,
|
|
1246
|
+
motion=motion,
|
|
1247
|
+
sample_time=sample_time,
|
|
1248
|
+
_request_auth=_request_auth,
|
|
1249
|
+
_content_type=_content_type,
|
|
1250
|
+
_headers=_headers,
|
|
1251
|
+
_host_index=_host_index,
|
|
1252
|
+
)
|
|
1253
|
+
|
|
1254
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1255
|
+
"200": "PlannedMotion",
|
|
1256
|
+
}
|
|
1257
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1258
|
+
await response_data.read()
|
|
1259
|
+
return self.api_client.response_deserialize(
|
|
1260
|
+
response_data=response_data,
|
|
1261
|
+
response_types_map=_response_types_map,
|
|
1262
|
+
).data
|
|
1263
|
+
|
|
1264
|
+
@validate_call
|
|
1265
|
+
async def get_planned_motion_with_http_info(
|
|
1266
|
+
self,
|
|
1267
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1268
|
+
motion: Annotated[
|
|
1269
|
+
StrictStr,
|
|
1270
|
+
Field(
|
|
1271
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
1272
|
+
),
|
|
1273
|
+
],
|
|
1274
|
+
sample_time: Annotated[
|
|
1275
|
+
Optional[StrictInt],
|
|
1276
|
+
Field(
|
|
1277
|
+
description="-| The value of `sample_time` is the time in milliseconds (ms) between each datapoint of the planned motion. Optional. If not provided, the data is returned as it is stored internally and equidistant sampling is not guaranteed."
|
|
1278
|
+
),
|
|
1279
|
+
] = None,
|
|
1280
|
+
_request_timeout: Union[
|
|
1281
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1282
|
+
] = None,
|
|
1283
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1284
|
+
_content_type: Optional[StrictStr] = None,
|
|
1285
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1286
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1287
|
+
) -> ApiResponse[PlannedMotion]:
|
|
1288
|
+
"""Get Planned Motion
|
|
1289
|
+
|
|
1290
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the joint data of a planned motion. The planned motion contains only the joint information, to persistently store and reload it later. The data will be sampled equidistantly with defined `sample_time` in milliseconds (ms). If not provided, the data is returned as it is stored on Wandelbots NOVA system. To request cartesian data for visualization purposes, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint. To get a single point of the planned motion, use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
|
|
1291
|
+
|
|
1292
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1293
|
+
:type cell: str
|
|
1294
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
1295
|
+
:type motion: str
|
|
1296
|
+
:param sample_time: -| The value of `sample_time` is the time in milliseconds (ms) between each datapoint of the planned motion. Optional. If not provided, the data is returned as it is stored internally and equidistant sampling is not guaranteed.
|
|
1297
|
+
:type sample_time: int
|
|
1298
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1299
|
+
number provided, it will be total request
|
|
1300
|
+
timeout. It can also be a pair (tuple) of
|
|
1301
|
+
(connection, read) timeouts.
|
|
1302
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1303
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1304
|
+
request; this effectively ignores the
|
|
1305
|
+
authentication in the spec for a single request.
|
|
1306
|
+
:type _request_auth: dict, optional
|
|
1307
|
+
:param _content_type: force content-type for the request.
|
|
1308
|
+
:type _content_type: str, Optional
|
|
1309
|
+
:param _headers: set to override the headers for a single
|
|
1310
|
+
request; this effectively ignores the headers
|
|
1311
|
+
in the spec for a single request.
|
|
1312
|
+
:type _headers: dict, optional
|
|
1313
|
+
:param _host_index: set to override the host_index for a single
|
|
1314
|
+
request; this effectively ignores the host_index
|
|
1315
|
+
in the spec for a single request.
|
|
1316
|
+
:type _host_index: int, optional
|
|
1317
|
+
:return: Returns the result object.
|
|
1318
|
+
""" # noqa: E501
|
|
1319
|
+
|
|
1320
|
+
_param = self._get_planned_motion_serialize(
|
|
1321
|
+
cell=cell,
|
|
1322
|
+
motion=motion,
|
|
1323
|
+
sample_time=sample_time,
|
|
1324
|
+
_request_auth=_request_auth,
|
|
1325
|
+
_content_type=_content_type,
|
|
1326
|
+
_headers=_headers,
|
|
1327
|
+
_host_index=_host_index,
|
|
1328
|
+
)
|
|
1329
|
+
|
|
1330
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1331
|
+
"200": "PlannedMotion",
|
|
1332
|
+
}
|
|
1333
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1334
|
+
await response_data.read()
|
|
1335
|
+
return self.api_client.response_deserialize(
|
|
1336
|
+
response_data=response_data,
|
|
1337
|
+
response_types_map=_response_types_map,
|
|
1338
|
+
)
|
|
1339
|
+
|
|
1340
|
+
@validate_call
|
|
1341
|
+
async def get_planned_motion_without_preload_content(
|
|
1342
|
+
self,
|
|
1343
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1344
|
+
motion: Annotated[
|
|
1345
|
+
StrictStr,
|
|
1346
|
+
Field(
|
|
1347
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
1348
|
+
),
|
|
1349
|
+
],
|
|
1350
|
+
sample_time: Annotated[
|
|
1351
|
+
Optional[StrictInt],
|
|
1352
|
+
Field(
|
|
1353
|
+
description="-| The value of `sample_time` is the time in milliseconds (ms) between each datapoint of the planned motion. Optional. If not provided, the data is returned as it is stored internally and equidistant sampling is not guaranteed."
|
|
1354
|
+
),
|
|
1355
|
+
] = None,
|
|
1356
|
+
_request_timeout: Union[
|
|
1357
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1358
|
+
] = None,
|
|
1359
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1360
|
+
_content_type: Optional[StrictStr] = None,
|
|
1361
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1362
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1363
|
+
) -> RESTResponseType:
|
|
1364
|
+
"""Get Planned Motion
|
|
1365
|
+
|
|
1366
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the joint data of a planned motion. The planned motion contains only the joint information, to persistently store and reload it later. The data will be sampled equidistantly with defined `sample_time` in milliseconds (ms). If not provided, the data is returned as it is stored on Wandelbots NOVA system. To request cartesian data for visualization purposes, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint. To get a single point of the planned motion, use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
|
|
1367
|
+
|
|
1368
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1369
|
+
:type cell: str
|
|
1370
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
1371
|
+
:type motion: str
|
|
1372
|
+
:param sample_time: -| The value of `sample_time` is the time in milliseconds (ms) between each datapoint of the planned motion. Optional. If not provided, the data is returned as it is stored internally and equidistant sampling is not guaranteed.
|
|
1373
|
+
:type sample_time: int
|
|
1374
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1375
|
+
number provided, it will be total request
|
|
1376
|
+
timeout. It can also be a pair (tuple) of
|
|
1377
|
+
(connection, read) timeouts.
|
|
1378
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1379
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1380
|
+
request; this effectively ignores the
|
|
1381
|
+
authentication in the spec for a single request.
|
|
1382
|
+
:type _request_auth: dict, optional
|
|
1383
|
+
:param _content_type: force content-type for the request.
|
|
1384
|
+
:type _content_type: str, Optional
|
|
1385
|
+
:param _headers: set to override the headers for a single
|
|
1386
|
+
request; this effectively ignores the headers
|
|
1387
|
+
in the spec for a single request.
|
|
1388
|
+
:type _headers: dict, optional
|
|
1389
|
+
:param _host_index: set to override the host_index for a single
|
|
1390
|
+
request; this effectively ignores the host_index
|
|
1391
|
+
in the spec for a single request.
|
|
1392
|
+
:type _host_index: int, optional
|
|
1393
|
+
:return: Returns the result object.
|
|
1394
|
+
""" # noqa: E501
|
|
1395
|
+
|
|
1396
|
+
_param = self._get_planned_motion_serialize(
|
|
1397
|
+
cell=cell,
|
|
1398
|
+
motion=motion,
|
|
1399
|
+
sample_time=sample_time,
|
|
1400
|
+
_request_auth=_request_auth,
|
|
1401
|
+
_content_type=_content_type,
|
|
1402
|
+
_headers=_headers,
|
|
1403
|
+
_host_index=_host_index,
|
|
1404
|
+
)
|
|
1405
|
+
|
|
1406
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1407
|
+
"200": "PlannedMotion",
|
|
1408
|
+
}
|
|
1409
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1410
|
+
return response_data.response
|
|
1411
|
+
|
|
1412
|
+
def _get_planned_motion_serialize(
|
|
1413
|
+
self,
|
|
1414
|
+
cell,
|
|
1415
|
+
motion,
|
|
1416
|
+
sample_time,
|
|
1417
|
+
_request_auth,
|
|
1418
|
+
_content_type,
|
|
1419
|
+
_headers,
|
|
1420
|
+
_host_index,
|
|
1421
|
+
) -> RequestSerialized:
|
|
1422
|
+
|
|
1423
|
+
_host = None
|
|
1424
|
+
|
|
1425
|
+
_collection_formats: Dict[str, str] = {}
|
|
1426
|
+
|
|
1427
|
+
_path_params: Dict[str, str] = {}
|
|
1428
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1429
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1430
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1431
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
1432
|
+
_body_params: Optional[bytes] = None
|
|
1433
|
+
|
|
1434
|
+
# process the path parameters
|
|
1435
|
+
if cell is not None:
|
|
1436
|
+
_path_params["cell"] = cell
|
|
1437
|
+
if motion is not None:
|
|
1438
|
+
_path_params["motion"] = motion
|
|
1439
|
+
# process the query parameters
|
|
1440
|
+
if sample_time is not None:
|
|
1441
|
+
_query_params.append(("sample_time", sample_time))
|
|
1442
|
+
|
|
1443
|
+
# process the header parameters
|
|
1444
|
+
# process the form parameters
|
|
1445
|
+
# process the body parameter
|
|
1446
|
+
|
|
1447
|
+
# set the HTTP header `Accept`
|
|
1448
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
1449
|
+
|
|
1450
|
+
# authentication setting
|
|
1451
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
1452
|
+
|
|
1453
|
+
return self.api_client.param_serialize(
|
|
1454
|
+
method="GET",
|
|
1455
|
+
resource_path="/cells/{cell}/motions/{motion}/planned-motion",
|
|
1456
|
+
path_params=_path_params,
|
|
1457
|
+
query_params=_query_params,
|
|
1458
|
+
header_params=_header_params,
|
|
1459
|
+
body=_body_params,
|
|
1460
|
+
post_params=_form_params,
|
|
1461
|
+
files=_files,
|
|
1462
|
+
auth_settings=_auth_settings,
|
|
1463
|
+
collection_formats=_collection_formats,
|
|
1464
|
+
_host=_host,
|
|
1465
|
+
_request_auth=_request_auth,
|
|
1466
|
+
)
|
|
1467
|
+
|
|
1468
|
+
@validate_call
|
|
1469
|
+
async def get_planning_motion_group_models(
|
|
1470
|
+
self,
|
|
1471
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1472
|
+
_request_timeout: Union[
|
|
1473
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1474
|
+
] = None,
|
|
1475
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1476
|
+
_content_type: Optional[StrictStr] = None,
|
|
1477
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1478
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1479
|
+
) -> List[str]:
|
|
1480
|
+
"""Motion Group Models for Planning
|
|
1481
|
+
|
|
1482
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns motion group models that are supported for planning.
|
|
1483
|
+
|
|
1484
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1485
|
+
:type cell: str
|
|
1486
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1487
|
+
number provided, it will be total request
|
|
1488
|
+
timeout. It can also be a pair (tuple) of
|
|
1489
|
+
(connection, read) timeouts.
|
|
1490
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1491
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1492
|
+
request; this effectively ignores the
|
|
1493
|
+
authentication in the spec for a single request.
|
|
1494
|
+
:type _request_auth: dict, optional
|
|
1495
|
+
:param _content_type: force content-type for the request.
|
|
1496
|
+
:type _content_type: str, Optional
|
|
1497
|
+
:param _headers: set to override the headers for a single
|
|
1498
|
+
request; this effectively ignores the headers
|
|
1499
|
+
in the spec for a single request.
|
|
1500
|
+
:type _headers: dict, optional
|
|
1501
|
+
:param _host_index: set to override the host_index for a single
|
|
1502
|
+
request; this effectively ignores the host_index
|
|
1503
|
+
in the spec for a single request.
|
|
1504
|
+
:type _host_index: int, optional
|
|
1505
|
+
:return: Returns the result object.
|
|
1506
|
+
""" # noqa: E501
|
|
1507
|
+
|
|
1508
|
+
_param = self._get_planning_motion_group_models_serialize(
|
|
1509
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
1510
|
+
)
|
|
1511
|
+
|
|
1512
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1513
|
+
"200": "List[str]",
|
|
1514
|
+
"404": None,
|
|
1515
|
+
"422": "HTTPValidationError",
|
|
1516
|
+
"500": None,
|
|
1517
|
+
}
|
|
1518
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1519
|
+
await response_data.read()
|
|
1520
|
+
return self.api_client.response_deserialize(
|
|
1521
|
+
response_data=response_data,
|
|
1522
|
+
response_types_map=_response_types_map,
|
|
1523
|
+
).data
|
|
1524
|
+
|
|
1525
|
+
@validate_call
|
|
1526
|
+
async def get_planning_motion_group_models_with_http_info(
|
|
1527
|
+
self,
|
|
1528
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1529
|
+
_request_timeout: Union[
|
|
1530
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1531
|
+
] = None,
|
|
1532
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1533
|
+
_content_type: Optional[StrictStr] = None,
|
|
1534
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1535
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1536
|
+
) -> ApiResponse[List[str]]:
|
|
1537
|
+
"""Motion Group Models for Planning
|
|
1538
|
+
|
|
1539
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns motion group models that are supported for planning.
|
|
1540
|
+
|
|
1541
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1542
|
+
:type cell: str
|
|
1543
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1544
|
+
number provided, it will be total request
|
|
1545
|
+
timeout. It can also be a pair (tuple) of
|
|
1546
|
+
(connection, read) timeouts.
|
|
1547
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1548
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1549
|
+
request; this effectively ignores the
|
|
1550
|
+
authentication in the spec for a single request.
|
|
1551
|
+
:type _request_auth: dict, optional
|
|
1552
|
+
:param _content_type: force content-type for the request.
|
|
1553
|
+
:type _content_type: str, Optional
|
|
1554
|
+
:param _headers: set to override the headers for a single
|
|
1555
|
+
request; this effectively ignores the headers
|
|
1556
|
+
in the spec for a single request.
|
|
1557
|
+
:type _headers: dict, optional
|
|
1558
|
+
:param _host_index: set to override the host_index for a single
|
|
1559
|
+
request; this effectively ignores the host_index
|
|
1560
|
+
in the spec for a single request.
|
|
1561
|
+
:type _host_index: int, optional
|
|
1562
|
+
:return: Returns the result object.
|
|
1563
|
+
""" # noqa: E501
|
|
1564
|
+
|
|
1565
|
+
_param = self._get_planning_motion_group_models_serialize(
|
|
1566
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
1567
|
+
)
|
|
1568
|
+
|
|
1569
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1570
|
+
"200": "List[str]",
|
|
1571
|
+
"404": None,
|
|
1572
|
+
"422": "HTTPValidationError",
|
|
1573
|
+
"500": None,
|
|
1574
|
+
}
|
|
1575
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1576
|
+
await response_data.read()
|
|
1577
|
+
return self.api_client.response_deserialize(
|
|
1578
|
+
response_data=response_data,
|
|
1579
|
+
response_types_map=_response_types_map,
|
|
1580
|
+
)
|
|
1581
|
+
|
|
1582
|
+
@validate_call
|
|
1583
|
+
async def get_planning_motion_group_models_without_preload_content(
|
|
1584
|
+
self,
|
|
1585
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1586
|
+
_request_timeout: Union[
|
|
1587
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1588
|
+
] = None,
|
|
1589
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1590
|
+
_content_type: Optional[StrictStr] = None,
|
|
1591
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1592
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1593
|
+
) -> RESTResponseType:
|
|
1594
|
+
"""Motion Group Models for Planning
|
|
1595
|
+
|
|
1596
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns motion group models that are supported for planning.
|
|
1597
|
+
|
|
1598
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1599
|
+
:type cell: str
|
|
1600
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1601
|
+
number provided, it will be total request
|
|
1602
|
+
timeout. It can also be a pair (tuple) of
|
|
1603
|
+
(connection, read) timeouts.
|
|
1604
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1605
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1606
|
+
request; this effectively ignores the
|
|
1607
|
+
authentication in the spec for a single request.
|
|
1608
|
+
:type _request_auth: dict, optional
|
|
1609
|
+
:param _content_type: force content-type for the request.
|
|
1610
|
+
:type _content_type: str, Optional
|
|
1611
|
+
:param _headers: set to override the headers for a single
|
|
1612
|
+
request; this effectively ignores the headers
|
|
1613
|
+
in the spec for a single request.
|
|
1614
|
+
:type _headers: dict, optional
|
|
1615
|
+
:param _host_index: set to override the host_index for a single
|
|
1616
|
+
request; this effectively ignores the host_index
|
|
1617
|
+
in the spec for a single request.
|
|
1618
|
+
:type _host_index: int, optional
|
|
1619
|
+
:return: Returns the result object.
|
|
1620
|
+
""" # noqa: E501
|
|
1621
|
+
|
|
1622
|
+
_param = self._get_planning_motion_group_models_serialize(
|
|
1623
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
1624
|
+
)
|
|
1625
|
+
|
|
1626
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1627
|
+
"200": "List[str]",
|
|
1628
|
+
"404": None,
|
|
1629
|
+
"422": "HTTPValidationError",
|
|
1630
|
+
"500": None,
|
|
1631
|
+
}
|
|
1632
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1633
|
+
return response_data.response
|
|
1634
|
+
|
|
1635
|
+
def _get_planning_motion_group_models_serialize(
|
|
1636
|
+
self,
|
|
1637
|
+
cell,
|
|
1638
|
+
_request_auth,
|
|
1639
|
+
_content_type,
|
|
1640
|
+
_headers,
|
|
1641
|
+
_host_index,
|
|
1642
|
+
) -> RequestSerialized:
|
|
1643
|
+
|
|
1644
|
+
_host = None
|
|
1645
|
+
|
|
1646
|
+
_collection_formats: Dict[str, str] = {}
|
|
1647
|
+
|
|
1648
|
+
_path_params: Dict[str, str] = {}
|
|
1649
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1650
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1651
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1652
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
1653
|
+
_body_params: Optional[bytes] = None
|
|
1654
|
+
|
|
1655
|
+
# process the path parameters
|
|
1656
|
+
if cell is not None:
|
|
1657
|
+
_path_params["cell"] = cell
|
|
1658
|
+
# process the query parameters
|
|
1659
|
+
# process the header parameters
|
|
1660
|
+
# process the form parameters
|
|
1661
|
+
# process the body parameter
|
|
1662
|
+
|
|
1663
|
+
# set the HTTP header `Accept`
|
|
1664
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
1665
|
+
|
|
1666
|
+
# authentication setting
|
|
1667
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
1668
|
+
|
|
1669
|
+
return self.api_client.param_serialize(
|
|
1670
|
+
method="GET",
|
|
1671
|
+
resource_path="/cells/{cell}/motion-planning/motion-group-models",
|
|
1672
|
+
path_params=_path_params,
|
|
1673
|
+
query_params=_query_params,
|
|
1674
|
+
header_params=_header_params,
|
|
1675
|
+
body=_body_params,
|
|
1676
|
+
post_params=_form_params,
|
|
1677
|
+
files=_files,
|
|
1678
|
+
auth_settings=_auth_settings,
|
|
1679
|
+
collection_formats=_collection_formats,
|
|
1680
|
+
_host=_host,
|
|
1681
|
+
_request_auth=_request_auth,
|
|
1682
|
+
)
|
|
1683
|
+
|
|
1684
|
+
@validate_call
|
|
1685
|
+
async def list_motions(
|
|
1686
|
+
self,
|
|
1687
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1688
|
+
_request_timeout: Union[
|
|
1689
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1690
|
+
] = None,
|
|
1691
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1692
|
+
_content_type: Optional[StrictStr] = None,
|
|
1693
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1694
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1695
|
+
) -> MotionIdsListResponse:
|
|
1696
|
+
"""List All Motions
|
|
1697
|
+
|
|
1698
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all currently planned and available motions. Use [planMotion](#/operations/planMotion) to plan a new motion. Motions are removed if the corresponding motion group or controller disconnects.
|
|
1699
|
+
|
|
1700
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1701
|
+
:type cell: str
|
|
1702
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1703
|
+
number provided, it will be total request
|
|
1704
|
+
timeout. It can also be a pair (tuple) of
|
|
1705
|
+
(connection, read) timeouts.
|
|
1706
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1707
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1708
|
+
request; this effectively ignores the
|
|
1709
|
+
authentication in the spec for a single request.
|
|
1710
|
+
:type _request_auth: dict, optional
|
|
1711
|
+
:param _content_type: force content-type for the request.
|
|
1712
|
+
:type _content_type: str, Optional
|
|
1713
|
+
:param _headers: set to override the headers for a single
|
|
1714
|
+
request; this effectively ignores the headers
|
|
1715
|
+
in the spec for a single request.
|
|
1716
|
+
:type _headers: dict, optional
|
|
1717
|
+
:param _host_index: set to override the host_index for a single
|
|
1718
|
+
request; this effectively ignores the host_index
|
|
1719
|
+
in the spec for a single request.
|
|
1720
|
+
:type _host_index: int, optional
|
|
1721
|
+
:return: Returns the result object.
|
|
1722
|
+
""" # noqa: E501
|
|
1723
|
+
|
|
1724
|
+
_param = self._list_motions_serialize(
|
|
1725
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
1726
|
+
)
|
|
1727
|
+
|
|
1728
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1729
|
+
"200": "MotionIdsListResponse",
|
|
1730
|
+
}
|
|
1731
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1732
|
+
await response_data.read()
|
|
1733
|
+
return self.api_client.response_deserialize(
|
|
1734
|
+
response_data=response_data,
|
|
1735
|
+
response_types_map=_response_types_map,
|
|
1736
|
+
).data
|
|
1737
|
+
|
|
1738
|
+
@validate_call
|
|
1739
|
+
async def list_motions_with_http_info(
|
|
1740
|
+
self,
|
|
1741
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1742
|
+
_request_timeout: Union[
|
|
1743
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1744
|
+
] = None,
|
|
1745
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1746
|
+
_content_type: Optional[StrictStr] = None,
|
|
1747
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1748
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1749
|
+
) -> ApiResponse[MotionIdsListResponse]:
|
|
1750
|
+
"""List All Motions
|
|
1751
|
+
|
|
1752
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all currently planned and available motions. Use [planMotion](#/operations/planMotion) to plan a new motion. Motions are removed if the corresponding motion group or controller disconnects.
|
|
1753
|
+
|
|
1754
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1755
|
+
:type cell: str
|
|
1756
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1757
|
+
number provided, it will be total request
|
|
1758
|
+
timeout. It can also be a pair (tuple) of
|
|
1759
|
+
(connection, read) timeouts.
|
|
1760
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1761
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1762
|
+
request; this effectively ignores the
|
|
1763
|
+
authentication in the spec for a single request.
|
|
1764
|
+
:type _request_auth: dict, optional
|
|
1765
|
+
:param _content_type: force content-type for the request.
|
|
1766
|
+
:type _content_type: str, Optional
|
|
1767
|
+
:param _headers: set to override the headers for a single
|
|
1768
|
+
request; this effectively ignores the headers
|
|
1769
|
+
in the spec for a single request.
|
|
1770
|
+
:type _headers: dict, optional
|
|
1771
|
+
:param _host_index: set to override the host_index for a single
|
|
1772
|
+
request; this effectively ignores the host_index
|
|
1773
|
+
in the spec for a single request.
|
|
1774
|
+
:type _host_index: int, optional
|
|
1775
|
+
:return: Returns the result object.
|
|
1776
|
+
""" # noqa: E501
|
|
1777
|
+
|
|
1778
|
+
_param = self._list_motions_serialize(
|
|
1779
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
1780
|
+
)
|
|
1781
|
+
|
|
1782
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1783
|
+
"200": "MotionIdsListResponse",
|
|
1784
|
+
}
|
|
1785
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1786
|
+
await response_data.read()
|
|
1787
|
+
return self.api_client.response_deserialize(
|
|
1788
|
+
response_data=response_data,
|
|
1789
|
+
response_types_map=_response_types_map,
|
|
1790
|
+
)
|
|
1791
|
+
|
|
1792
|
+
@validate_call
|
|
1793
|
+
async def list_motions_without_preload_content(
|
|
1794
|
+
self,
|
|
1795
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1796
|
+
_request_timeout: Union[
|
|
1797
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1798
|
+
] = None,
|
|
1799
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1800
|
+
_content_type: Optional[StrictStr] = None,
|
|
1801
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1802
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1803
|
+
) -> RESTResponseType:
|
|
1804
|
+
"""List All Motions
|
|
1805
|
+
|
|
1806
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all currently planned and available motions. Use [planMotion](#/operations/planMotion) to plan a new motion. Motions are removed if the corresponding motion group or controller disconnects.
|
|
1807
|
+
|
|
1808
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1809
|
+
:type cell: str
|
|
1810
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1811
|
+
number provided, it will be total request
|
|
1812
|
+
timeout. It can also be a pair (tuple) of
|
|
1813
|
+
(connection, read) timeouts.
|
|
1814
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1815
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1816
|
+
request; this effectively ignores the
|
|
1817
|
+
authentication in the spec for a single request.
|
|
1818
|
+
:type _request_auth: dict, optional
|
|
1819
|
+
:param _content_type: force content-type for the request.
|
|
1820
|
+
:type _content_type: str, Optional
|
|
1821
|
+
:param _headers: set to override the headers for a single
|
|
1822
|
+
request; this effectively ignores the headers
|
|
1823
|
+
in the spec for a single request.
|
|
1824
|
+
:type _headers: dict, optional
|
|
1825
|
+
:param _host_index: set to override the host_index for a single
|
|
1826
|
+
request; this effectively ignores the host_index
|
|
1827
|
+
in the spec for a single request.
|
|
1828
|
+
:type _host_index: int, optional
|
|
1829
|
+
:return: Returns the result object.
|
|
1830
|
+
""" # noqa: E501
|
|
1831
|
+
|
|
1832
|
+
_param = self._list_motions_serialize(
|
|
1833
|
+
cell=cell, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
1834
|
+
)
|
|
1835
|
+
|
|
1836
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1837
|
+
"200": "MotionIdsListResponse",
|
|
1838
|
+
}
|
|
1839
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1840
|
+
return response_data.response
|
|
1841
|
+
|
|
1842
|
+
def _list_motions_serialize(
|
|
1843
|
+
self,
|
|
1844
|
+
cell,
|
|
1845
|
+
_request_auth,
|
|
1846
|
+
_content_type,
|
|
1847
|
+
_headers,
|
|
1848
|
+
_host_index,
|
|
1849
|
+
) -> RequestSerialized:
|
|
1850
|
+
|
|
1851
|
+
_host = None
|
|
1852
|
+
|
|
1853
|
+
_collection_formats: Dict[str, str] = {}
|
|
1854
|
+
|
|
1855
|
+
_path_params: Dict[str, str] = {}
|
|
1856
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1857
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1858
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1859
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
1860
|
+
_body_params: Optional[bytes] = None
|
|
1861
|
+
|
|
1862
|
+
# process the path parameters
|
|
1863
|
+
if cell is not None:
|
|
1864
|
+
_path_params["cell"] = cell
|
|
1865
|
+
# process the query parameters
|
|
1866
|
+
# process the header parameters
|
|
1867
|
+
# process the form parameters
|
|
1868
|
+
# process the body parameter
|
|
1869
|
+
|
|
1870
|
+
# set the HTTP header `Accept`
|
|
1871
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
1872
|
+
|
|
1873
|
+
# authentication setting
|
|
1874
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
1875
|
+
|
|
1876
|
+
return self.api_client.param_serialize(
|
|
1877
|
+
method="GET",
|
|
1878
|
+
resource_path="/cells/{cell}/motions",
|
|
1879
|
+
path_params=_path_params,
|
|
1880
|
+
query_params=_query_params,
|
|
1881
|
+
header_params=_header_params,
|
|
1882
|
+
body=_body_params,
|
|
1883
|
+
post_params=_form_params,
|
|
1884
|
+
files=_files,
|
|
1885
|
+
auth_settings=_auth_settings,
|
|
1886
|
+
collection_formats=_collection_formats,
|
|
1887
|
+
_host=_host,
|
|
1888
|
+
_request_auth=_request_auth,
|
|
1889
|
+
)
|
|
1890
|
+
|
|
1891
|
+
@validate_call
|
|
1892
|
+
async def load_planned_motion(
|
|
1893
|
+
self,
|
|
1894
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1895
|
+
planned_motion: PlannedMotion,
|
|
1896
|
+
_request_timeout: Union[
|
|
1897
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1898
|
+
] = None,
|
|
1899
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1900
|
+
_content_type: Optional[StrictStr] = None,
|
|
1901
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1902
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1903
|
+
) -> PlanResponse:
|
|
1904
|
+
"""Load Planned Motion
|
|
1905
|
+
|
|
1906
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a planned motion into a motion session. The response contains information about the validated motion. Validation can lead to three different results: - Fully valid: The whole planned motion can be executed from start to end. The response will contain the session to move the robot. - Partially valid: Only parts of the planned motion can be executed. The response will contain the session to move the robot and information about the failure for the part that is not executable. - Invalid: The planned motion can not be executed. The response will tell you, which information about the reason of failure. If the motion is at least partially valid, the parts of the motion that are valid can be executed using the [streamMoveForward](#/operations/streamMoveForward) endpoint. You can use the following workflows: - Plan motions using the [planMotion](#/operations/planMotion) endpoint, - Store the planned motion persistently, - Use this endpoint to reload the stored motion and get a motion session for it. - Execute the loaded motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. OR: - Generate a planned motion with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the planned motion to this endpoint to validate it and get a motion session for it, - Execute your motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. Once a planned motion is validated, it is treated like a motion session and will appear in the list of available motions, see [listMotions](#/operations/listMotions) endpoint. You can then execute a motion session with the [streamMoveForward](#/operations/streamMoveForward) endpoint.
|
|
1907
|
+
|
|
1908
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1909
|
+
:type cell: str
|
|
1910
|
+
:param planned_motion: (required)
|
|
1911
|
+
:type planned_motion: PlannedMotion
|
|
1912
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1913
|
+
number provided, it will be total request
|
|
1914
|
+
timeout. It can also be a pair (tuple) of
|
|
1915
|
+
(connection, read) timeouts.
|
|
1916
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1917
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1918
|
+
request; this effectively ignores the
|
|
1919
|
+
authentication in the spec for a single request.
|
|
1920
|
+
:type _request_auth: dict, optional
|
|
1921
|
+
:param _content_type: force content-type for the request.
|
|
1922
|
+
:type _content_type: str, Optional
|
|
1923
|
+
:param _headers: set to override the headers for a single
|
|
1924
|
+
request; this effectively ignores the headers
|
|
1925
|
+
in the spec for a single request.
|
|
1926
|
+
:type _headers: dict, optional
|
|
1927
|
+
:param _host_index: set to override the host_index for a single
|
|
1928
|
+
request; this effectively ignores the host_index
|
|
1929
|
+
in the spec for a single request.
|
|
1930
|
+
:type _host_index: int, optional
|
|
1931
|
+
:return: Returns the result object.
|
|
1932
|
+
""" # noqa: E501
|
|
1933
|
+
|
|
1934
|
+
_param = self._load_planned_motion_serialize(
|
|
1935
|
+
cell=cell,
|
|
1936
|
+
planned_motion=planned_motion,
|
|
1937
|
+
_request_auth=_request_auth,
|
|
1938
|
+
_content_type=_content_type,
|
|
1939
|
+
_headers=_headers,
|
|
1940
|
+
_host_index=_host_index,
|
|
1941
|
+
)
|
|
1942
|
+
|
|
1943
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1944
|
+
"200": "PlanResponse",
|
|
1945
|
+
}
|
|
1946
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
1947
|
+
await response_data.read()
|
|
1948
|
+
return self.api_client.response_deserialize(
|
|
1949
|
+
response_data=response_data,
|
|
1950
|
+
response_types_map=_response_types_map,
|
|
1951
|
+
).data
|
|
1952
|
+
|
|
1953
|
+
@validate_call
|
|
1954
|
+
async def load_planned_motion_with_http_info(
|
|
1955
|
+
self,
|
|
1956
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
1957
|
+
planned_motion: PlannedMotion,
|
|
1958
|
+
_request_timeout: Union[
|
|
1959
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
1960
|
+
] = None,
|
|
1961
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1962
|
+
_content_type: Optional[StrictStr] = None,
|
|
1963
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1964
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1965
|
+
) -> ApiResponse[PlanResponse]:
|
|
1966
|
+
"""Load Planned Motion
|
|
1967
|
+
|
|
1968
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a planned motion into a motion session. The response contains information about the validated motion. Validation can lead to three different results: - Fully valid: The whole planned motion can be executed from start to end. The response will contain the session to move the robot. - Partially valid: Only parts of the planned motion can be executed. The response will contain the session to move the robot and information about the failure for the part that is not executable. - Invalid: The planned motion can not be executed. The response will tell you, which information about the reason of failure. If the motion is at least partially valid, the parts of the motion that are valid can be executed using the [streamMoveForward](#/operations/streamMoveForward) endpoint. You can use the following workflows: - Plan motions using the [planMotion](#/operations/planMotion) endpoint, - Store the planned motion persistently, - Use this endpoint to reload the stored motion and get a motion session for it. - Execute the loaded motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. OR: - Generate a planned motion with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the planned motion to this endpoint to validate it and get a motion session for it, - Execute your motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. Once a planned motion is validated, it is treated like a motion session and will appear in the list of available motions, see [listMotions](#/operations/listMotions) endpoint. You can then execute a motion session with the [streamMoveForward](#/operations/streamMoveForward) endpoint.
|
|
1969
|
+
|
|
1970
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
1971
|
+
:type cell: str
|
|
1972
|
+
:param planned_motion: (required)
|
|
1973
|
+
:type planned_motion: PlannedMotion
|
|
1974
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1975
|
+
number provided, it will be total request
|
|
1976
|
+
timeout. It can also be a pair (tuple) of
|
|
1977
|
+
(connection, read) timeouts.
|
|
1978
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1979
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1980
|
+
request; this effectively ignores the
|
|
1981
|
+
authentication in the spec for a single request.
|
|
1982
|
+
:type _request_auth: dict, optional
|
|
1983
|
+
:param _content_type: force content-type for the request.
|
|
1984
|
+
:type _content_type: str, Optional
|
|
1985
|
+
:param _headers: set to override the headers for a single
|
|
1986
|
+
request; this effectively ignores the headers
|
|
1987
|
+
in the spec for a single request.
|
|
1988
|
+
:type _headers: dict, optional
|
|
1989
|
+
:param _host_index: set to override the host_index for a single
|
|
1990
|
+
request; this effectively ignores the host_index
|
|
1991
|
+
in the spec for a single request.
|
|
1992
|
+
:type _host_index: int, optional
|
|
1993
|
+
:return: Returns the result object.
|
|
1994
|
+
""" # noqa: E501
|
|
1995
|
+
|
|
1996
|
+
_param = self._load_planned_motion_serialize(
|
|
1997
|
+
cell=cell,
|
|
1998
|
+
planned_motion=planned_motion,
|
|
1999
|
+
_request_auth=_request_auth,
|
|
2000
|
+
_content_type=_content_type,
|
|
2001
|
+
_headers=_headers,
|
|
2002
|
+
_host_index=_host_index,
|
|
2003
|
+
)
|
|
2004
|
+
|
|
2005
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2006
|
+
"200": "PlanResponse",
|
|
2007
|
+
}
|
|
2008
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2009
|
+
await response_data.read()
|
|
2010
|
+
return self.api_client.response_deserialize(
|
|
2011
|
+
response_data=response_data,
|
|
2012
|
+
response_types_map=_response_types_map,
|
|
2013
|
+
)
|
|
2014
|
+
|
|
2015
|
+
@validate_call
|
|
2016
|
+
async def load_planned_motion_without_preload_content(
|
|
2017
|
+
self,
|
|
2018
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2019
|
+
planned_motion: PlannedMotion,
|
|
2020
|
+
_request_timeout: Union[
|
|
2021
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2022
|
+
] = None,
|
|
2023
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2024
|
+
_content_type: Optional[StrictStr] = None,
|
|
2025
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2026
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2027
|
+
) -> RESTResponseType:
|
|
2028
|
+
"""Load Planned Motion
|
|
2029
|
+
|
|
2030
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a planned motion into a motion session. The response contains information about the validated motion. Validation can lead to three different results: - Fully valid: The whole planned motion can be executed from start to end. The response will contain the session to move the robot. - Partially valid: Only parts of the planned motion can be executed. The response will contain the session to move the robot and information about the failure for the part that is not executable. - Invalid: The planned motion can not be executed. The response will tell you, which information about the reason of failure. If the motion is at least partially valid, the parts of the motion that are valid can be executed using the [streamMoveForward](#/operations/streamMoveForward) endpoint. You can use the following workflows: - Plan motions using the [planMotion](#/operations/planMotion) endpoint, - Store the planned motion persistently, - Use this endpoint to reload the stored motion and get a motion session for it. - Execute the loaded motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. OR: - Generate a planned motion with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the planned motion to this endpoint to validate it and get a motion session for it, - Execute your motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. Once a planned motion is validated, it is treated like a motion session and will appear in the list of available motions, see [listMotions](#/operations/listMotions) endpoint. You can then execute a motion session with the [streamMoveForward](#/operations/streamMoveForward) endpoint.
|
|
2031
|
+
|
|
2032
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2033
|
+
:type cell: str
|
|
2034
|
+
:param planned_motion: (required)
|
|
2035
|
+
:type planned_motion: PlannedMotion
|
|
2036
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2037
|
+
number provided, it will be total request
|
|
2038
|
+
timeout. It can also be a pair (tuple) of
|
|
2039
|
+
(connection, read) timeouts.
|
|
2040
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2041
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2042
|
+
request; this effectively ignores the
|
|
2043
|
+
authentication in the spec for a single request.
|
|
2044
|
+
:type _request_auth: dict, optional
|
|
2045
|
+
:param _content_type: force content-type for the request.
|
|
2046
|
+
:type _content_type: str, Optional
|
|
2047
|
+
:param _headers: set to override the headers for a single
|
|
2048
|
+
request; this effectively ignores the headers
|
|
2049
|
+
in the spec for a single request.
|
|
2050
|
+
:type _headers: dict, optional
|
|
2051
|
+
:param _host_index: set to override the host_index for a single
|
|
2052
|
+
request; this effectively ignores the host_index
|
|
2053
|
+
in the spec for a single request.
|
|
2054
|
+
:type _host_index: int, optional
|
|
2055
|
+
:return: Returns the result object.
|
|
2056
|
+
""" # noqa: E501
|
|
2057
|
+
|
|
2058
|
+
_param = self._load_planned_motion_serialize(
|
|
2059
|
+
cell=cell,
|
|
2060
|
+
planned_motion=planned_motion,
|
|
2061
|
+
_request_auth=_request_auth,
|
|
2062
|
+
_content_type=_content_type,
|
|
2063
|
+
_headers=_headers,
|
|
2064
|
+
_host_index=_host_index,
|
|
2065
|
+
)
|
|
2066
|
+
|
|
2067
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2068
|
+
"200": "PlanResponse",
|
|
2069
|
+
}
|
|
2070
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2071
|
+
return response_data.response
|
|
2072
|
+
|
|
2073
|
+
def _load_planned_motion_serialize(
|
|
2074
|
+
self,
|
|
2075
|
+
cell,
|
|
2076
|
+
planned_motion,
|
|
2077
|
+
_request_auth,
|
|
2078
|
+
_content_type,
|
|
2079
|
+
_headers,
|
|
2080
|
+
_host_index,
|
|
2081
|
+
) -> RequestSerialized:
|
|
2082
|
+
|
|
2083
|
+
_host = None
|
|
2084
|
+
|
|
2085
|
+
_collection_formats: Dict[str, str] = {}
|
|
2086
|
+
|
|
2087
|
+
_path_params: Dict[str, str] = {}
|
|
2088
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2089
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2090
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2091
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
2092
|
+
_body_params: Optional[bytes] = None
|
|
2093
|
+
|
|
2094
|
+
# process the path parameters
|
|
2095
|
+
if cell is not None:
|
|
2096
|
+
_path_params["cell"] = cell
|
|
2097
|
+
# process the query parameters
|
|
2098
|
+
# process the header parameters
|
|
2099
|
+
# process the form parameters
|
|
2100
|
+
# process the body parameter
|
|
2101
|
+
if planned_motion is not None:
|
|
2102
|
+
_body_params = planned_motion
|
|
2103
|
+
|
|
2104
|
+
# set the HTTP header `Accept`
|
|
2105
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
2106
|
+
|
|
2107
|
+
# set the HTTP header `Content-Type`
|
|
2108
|
+
if _content_type:
|
|
2109
|
+
_header_params["Content-Type"] = _content_type
|
|
2110
|
+
else:
|
|
2111
|
+
_default_content_type = self.api_client.select_header_content_type(["application/json"])
|
|
2112
|
+
if _default_content_type is not None:
|
|
2113
|
+
_header_params["Content-Type"] = _default_content_type
|
|
2114
|
+
|
|
2115
|
+
# authentication setting
|
|
2116
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
2117
|
+
|
|
2118
|
+
return self.api_client.param_serialize(
|
|
2119
|
+
method="POST",
|
|
2120
|
+
resource_path="/cells/{cell}/planned-motions",
|
|
2121
|
+
path_params=_path_params,
|
|
2122
|
+
query_params=_query_params,
|
|
2123
|
+
header_params=_header_params,
|
|
2124
|
+
body=_body_params,
|
|
2125
|
+
post_params=_form_params,
|
|
2126
|
+
files=_files,
|
|
2127
|
+
auth_settings=_auth_settings,
|
|
2128
|
+
collection_formats=_collection_formats,
|
|
2129
|
+
_host=_host,
|
|
2130
|
+
_request_auth=_request_auth,
|
|
2131
|
+
)
|
|
2132
|
+
|
|
2133
|
+
@validate_call
|
|
2134
|
+
async def plan_collision_free_ptp(
|
|
2135
|
+
self,
|
|
2136
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2137
|
+
plan_collision_free_ptp_request: Optional[PlanCollisionFreePTPRequest] = None,
|
|
2138
|
+
_request_timeout: Union[
|
|
2139
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2140
|
+
] = None,
|
|
2141
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2142
|
+
_content_type: Optional[StrictStr] = None,
|
|
2143
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2144
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2145
|
+
) -> PlanTrajectoryResponse:
|
|
2146
|
+
"""Plan Collision Free PTP
|
|
2147
|
+
|
|
2148
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Plans a collision-free PTP motion for a single motion group. Use the following workflow to execute a planned trajectory: 1. Plan a collision-free movement/motion. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint.
|
|
2149
|
+
|
|
2150
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2151
|
+
:type cell: str
|
|
2152
|
+
:param plan_collision_free_ptp_request:
|
|
2153
|
+
:type plan_collision_free_ptp_request: PlanCollisionFreePTPRequest
|
|
2154
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2155
|
+
number provided, it will be total request
|
|
2156
|
+
timeout. It can also be a pair (tuple) of
|
|
2157
|
+
(connection, read) timeouts.
|
|
2158
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2159
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2160
|
+
request; this effectively ignores the
|
|
2161
|
+
authentication in the spec for a single request.
|
|
2162
|
+
:type _request_auth: dict, optional
|
|
2163
|
+
:param _content_type: force content-type for the request.
|
|
2164
|
+
:type _content_type: str, Optional
|
|
2165
|
+
:param _headers: set to override the headers for a single
|
|
2166
|
+
request; this effectively ignores the headers
|
|
2167
|
+
in the spec for a single request.
|
|
2168
|
+
:type _headers: dict, optional
|
|
2169
|
+
:param _host_index: set to override the host_index for a single
|
|
2170
|
+
request; this effectively ignores the host_index
|
|
2171
|
+
in the spec for a single request.
|
|
2172
|
+
:type _host_index: int, optional
|
|
2173
|
+
:return: Returns the result object.
|
|
2174
|
+
""" # noqa: E501
|
|
2175
|
+
|
|
2176
|
+
_param = self._plan_collision_free_ptp_serialize(
|
|
2177
|
+
cell=cell,
|
|
2178
|
+
plan_collision_free_ptp_request=plan_collision_free_ptp_request,
|
|
2179
|
+
_request_auth=_request_auth,
|
|
2180
|
+
_content_type=_content_type,
|
|
2181
|
+
_headers=_headers,
|
|
2182
|
+
_host_index=_host_index,
|
|
2183
|
+
)
|
|
2184
|
+
|
|
2185
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2186
|
+
"200": "PlanTrajectoryResponse",
|
|
2187
|
+
"404": None,
|
|
2188
|
+
"422": "HTTPValidationError",
|
|
2189
|
+
"500": None,
|
|
2190
|
+
}
|
|
2191
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2192
|
+
await response_data.read()
|
|
2193
|
+
return self.api_client.response_deserialize(
|
|
2194
|
+
response_data=response_data,
|
|
2195
|
+
response_types_map=_response_types_map,
|
|
2196
|
+
).data
|
|
2197
|
+
|
|
2198
|
+
@validate_call
|
|
2199
|
+
async def plan_collision_free_ptp_with_http_info(
|
|
2200
|
+
self,
|
|
2201
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2202
|
+
plan_collision_free_ptp_request: Optional[PlanCollisionFreePTPRequest] = None,
|
|
2203
|
+
_request_timeout: Union[
|
|
2204
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2205
|
+
] = None,
|
|
2206
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2207
|
+
_content_type: Optional[StrictStr] = None,
|
|
2208
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2209
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2210
|
+
) -> ApiResponse[PlanTrajectoryResponse]:
|
|
2211
|
+
"""Plan Collision Free PTP
|
|
2212
|
+
|
|
2213
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Plans a collision-free PTP motion for a single motion group. Use the following workflow to execute a planned trajectory: 1. Plan a collision-free movement/motion. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint.
|
|
2214
|
+
|
|
2215
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2216
|
+
:type cell: str
|
|
2217
|
+
:param plan_collision_free_ptp_request:
|
|
2218
|
+
:type plan_collision_free_ptp_request: PlanCollisionFreePTPRequest
|
|
2219
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2220
|
+
number provided, it will be total request
|
|
2221
|
+
timeout. It can also be a pair (tuple) of
|
|
2222
|
+
(connection, read) timeouts.
|
|
2223
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2224
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2225
|
+
request; this effectively ignores the
|
|
2226
|
+
authentication in the spec for a single request.
|
|
2227
|
+
:type _request_auth: dict, optional
|
|
2228
|
+
:param _content_type: force content-type for the request.
|
|
2229
|
+
:type _content_type: str, Optional
|
|
2230
|
+
:param _headers: set to override the headers for a single
|
|
2231
|
+
request; this effectively ignores the headers
|
|
2232
|
+
in the spec for a single request.
|
|
2233
|
+
:type _headers: dict, optional
|
|
2234
|
+
:param _host_index: set to override the host_index for a single
|
|
2235
|
+
request; this effectively ignores the host_index
|
|
2236
|
+
in the spec for a single request.
|
|
2237
|
+
:type _host_index: int, optional
|
|
2238
|
+
:return: Returns the result object.
|
|
2239
|
+
""" # noqa: E501
|
|
2240
|
+
|
|
2241
|
+
_param = self._plan_collision_free_ptp_serialize(
|
|
2242
|
+
cell=cell,
|
|
2243
|
+
plan_collision_free_ptp_request=plan_collision_free_ptp_request,
|
|
2244
|
+
_request_auth=_request_auth,
|
|
2245
|
+
_content_type=_content_type,
|
|
2246
|
+
_headers=_headers,
|
|
2247
|
+
_host_index=_host_index,
|
|
2248
|
+
)
|
|
2249
|
+
|
|
2250
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2251
|
+
"200": "PlanTrajectoryResponse",
|
|
2252
|
+
"404": None,
|
|
2253
|
+
"422": "HTTPValidationError",
|
|
2254
|
+
"500": None,
|
|
2255
|
+
}
|
|
2256
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2257
|
+
await response_data.read()
|
|
2258
|
+
return self.api_client.response_deserialize(
|
|
2259
|
+
response_data=response_data,
|
|
2260
|
+
response_types_map=_response_types_map,
|
|
2261
|
+
)
|
|
2262
|
+
|
|
2263
|
+
@validate_call
|
|
2264
|
+
async def plan_collision_free_ptp_without_preload_content(
|
|
2265
|
+
self,
|
|
2266
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2267
|
+
plan_collision_free_ptp_request: Optional[PlanCollisionFreePTPRequest] = None,
|
|
2268
|
+
_request_timeout: Union[
|
|
2269
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2270
|
+
] = None,
|
|
2271
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2272
|
+
_content_type: Optional[StrictStr] = None,
|
|
2273
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2274
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2275
|
+
) -> RESTResponseType:
|
|
2276
|
+
"""Plan Collision Free PTP
|
|
2277
|
+
|
|
2278
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Plans a collision-free PTP motion for a single motion group. Use the following workflow to execute a planned trajectory: 1. Plan a collision-free movement/motion. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint.
|
|
2279
|
+
|
|
2280
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2281
|
+
:type cell: str
|
|
2282
|
+
:param plan_collision_free_ptp_request:
|
|
2283
|
+
:type plan_collision_free_ptp_request: PlanCollisionFreePTPRequest
|
|
2284
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2285
|
+
number provided, it will be total request
|
|
2286
|
+
timeout. It can also be a pair (tuple) of
|
|
2287
|
+
(connection, read) timeouts.
|
|
2288
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2289
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2290
|
+
request; this effectively ignores the
|
|
2291
|
+
authentication in the spec for a single request.
|
|
2292
|
+
:type _request_auth: dict, optional
|
|
2293
|
+
:param _content_type: force content-type for the request.
|
|
2294
|
+
:type _content_type: str, Optional
|
|
2295
|
+
:param _headers: set to override the headers for a single
|
|
2296
|
+
request; this effectively ignores the headers
|
|
2297
|
+
in the spec for a single request.
|
|
2298
|
+
:type _headers: dict, optional
|
|
2299
|
+
:param _host_index: set to override the host_index for a single
|
|
2300
|
+
request; this effectively ignores the host_index
|
|
2301
|
+
in the spec for a single request.
|
|
2302
|
+
:type _host_index: int, optional
|
|
2303
|
+
:return: Returns the result object.
|
|
2304
|
+
""" # noqa: E501
|
|
2305
|
+
|
|
2306
|
+
_param = self._plan_collision_free_ptp_serialize(
|
|
2307
|
+
cell=cell,
|
|
2308
|
+
plan_collision_free_ptp_request=plan_collision_free_ptp_request,
|
|
2309
|
+
_request_auth=_request_auth,
|
|
2310
|
+
_content_type=_content_type,
|
|
2311
|
+
_headers=_headers,
|
|
2312
|
+
_host_index=_host_index,
|
|
2313
|
+
)
|
|
2314
|
+
|
|
2315
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2316
|
+
"200": "PlanTrajectoryResponse",
|
|
2317
|
+
"404": None,
|
|
2318
|
+
"422": "HTTPValidationError",
|
|
2319
|
+
"500": None,
|
|
2320
|
+
}
|
|
2321
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2322
|
+
return response_data.response
|
|
2323
|
+
|
|
2324
|
+
def _plan_collision_free_ptp_serialize(
|
|
2325
|
+
self,
|
|
2326
|
+
cell,
|
|
2327
|
+
plan_collision_free_ptp_request,
|
|
2328
|
+
_request_auth,
|
|
2329
|
+
_content_type,
|
|
2330
|
+
_headers,
|
|
2331
|
+
_host_index,
|
|
2332
|
+
) -> RequestSerialized:
|
|
2333
|
+
|
|
2334
|
+
_host = None
|
|
2335
|
+
|
|
2336
|
+
_collection_formats: Dict[str, str] = {}
|
|
2337
|
+
|
|
2338
|
+
_path_params: Dict[str, str] = {}
|
|
2339
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2340
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2341
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2342
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
2343
|
+
_body_params: Optional[bytes] = None
|
|
2344
|
+
|
|
2345
|
+
# process the path parameters
|
|
2346
|
+
if cell is not None:
|
|
2347
|
+
_path_params["cell"] = cell
|
|
2348
|
+
# process the query parameters
|
|
2349
|
+
# process the header parameters
|
|
2350
|
+
# process the form parameters
|
|
2351
|
+
# process the body parameter
|
|
2352
|
+
if plan_collision_free_ptp_request is not None:
|
|
2353
|
+
_body_params = plan_collision_free_ptp_request
|
|
2354
|
+
|
|
2355
|
+
# set the HTTP header `Accept`
|
|
2356
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
2357
|
+
|
|
2358
|
+
# set the HTTP header `Content-Type`
|
|
2359
|
+
if _content_type:
|
|
2360
|
+
_header_params["Content-Type"] = _content_type
|
|
2361
|
+
else:
|
|
2362
|
+
_default_content_type = self.api_client.select_header_content_type(["application/json"])
|
|
2363
|
+
if _default_content_type is not None:
|
|
2364
|
+
_header_params["Content-Type"] = _default_content_type
|
|
2365
|
+
|
|
2366
|
+
# authentication setting
|
|
2367
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
2368
|
+
|
|
2369
|
+
return self.api_client.param_serialize(
|
|
2370
|
+
method="POST",
|
|
2371
|
+
resource_path="/cells/{cell}/motion-planning/plan-collision-free-ptp",
|
|
2372
|
+
path_params=_path_params,
|
|
2373
|
+
query_params=_query_params,
|
|
2374
|
+
header_params=_header_params,
|
|
2375
|
+
body=_body_params,
|
|
2376
|
+
post_params=_form_params,
|
|
2377
|
+
files=_files,
|
|
2378
|
+
auth_settings=_auth_settings,
|
|
2379
|
+
collection_formats=_collection_formats,
|
|
2380
|
+
_host=_host,
|
|
2381
|
+
_request_auth=_request_auth,
|
|
2382
|
+
)
|
|
2383
|
+
|
|
2384
|
+
@validate_call
|
|
2385
|
+
async def plan_motion(
|
|
2386
|
+
self,
|
|
2387
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2388
|
+
plan_request: PlanRequest,
|
|
2389
|
+
_request_timeout: Union[
|
|
2390
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2391
|
+
] = None,
|
|
2392
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2393
|
+
_content_type: Optional[StrictStr] = None,
|
|
2394
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2395
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2396
|
+
) -> PlanResponse:
|
|
2397
|
+
"""(Deprecated) Plan Motion
|
|
2398
|
+
|
|
2399
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use [planTrajectory](#/operations/planTrajectory) and [loadPlannedMotion](#/operations/loadPlannedMotion) instead. Plans a new motion for a single previously configured [motion group](#/operations/listMotionGroups). Motions are described by a sequence of motion commands starting with start joints. A motion is planned from standstill to standstill. A single motion has constant TCP and payload. Currently, I/O actions can't be attached to a motion to execute the action in realtime while a motion is executed. If an I/O is needed at a specific point, multiple motions need to be planned. If an I/O is needed to be set while a motion is executed, the endpoint [setOutputValues](#/operations/setOutputValues) could be used.
|
|
2400
|
+
|
|
2401
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2402
|
+
:type cell: str
|
|
2403
|
+
:param plan_request: (required)
|
|
2404
|
+
:type plan_request: PlanRequest
|
|
2405
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2406
|
+
number provided, it will be total request
|
|
2407
|
+
timeout. It can also be a pair (tuple) of
|
|
2408
|
+
(connection, read) timeouts.
|
|
2409
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2410
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2411
|
+
request; this effectively ignores the
|
|
2412
|
+
authentication in the spec for a single request.
|
|
2413
|
+
:type _request_auth: dict, optional
|
|
2414
|
+
:param _content_type: force content-type for the request.
|
|
2415
|
+
:type _content_type: str, Optional
|
|
2416
|
+
:param _headers: set to override the headers for a single
|
|
2417
|
+
request; this effectively ignores the headers
|
|
2418
|
+
in the spec for a single request.
|
|
2419
|
+
:type _headers: dict, optional
|
|
2420
|
+
:param _host_index: set to override the host_index for a single
|
|
2421
|
+
request; this effectively ignores the host_index
|
|
2422
|
+
in the spec for a single request.
|
|
2423
|
+
:type _host_index: int, optional
|
|
2424
|
+
:return: Returns the result object.
|
|
2425
|
+
""" # noqa: E501
|
|
2426
|
+
warnings.warn("POST /cells/{cell}/motions is deprecated.", DeprecationWarning)
|
|
2427
|
+
|
|
2428
|
+
_param = self._plan_motion_serialize(
|
|
2429
|
+
cell=cell,
|
|
2430
|
+
plan_request=plan_request,
|
|
2431
|
+
_request_auth=_request_auth,
|
|
2432
|
+
_content_type=_content_type,
|
|
2433
|
+
_headers=_headers,
|
|
2434
|
+
_host_index=_host_index,
|
|
2435
|
+
)
|
|
2436
|
+
|
|
2437
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2438
|
+
"200": "PlanResponse",
|
|
2439
|
+
}
|
|
2440
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2441
|
+
await response_data.read()
|
|
2442
|
+
return self.api_client.response_deserialize(
|
|
2443
|
+
response_data=response_data,
|
|
2444
|
+
response_types_map=_response_types_map,
|
|
2445
|
+
).data
|
|
2446
|
+
|
|
2447
|
+
@validate_call
|
|
2448
|
+
async def plan_motion_with_http_info(
|
|
2449
|
+
self,
|
|
2450
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2451
|
+
plan_request: PlanRequest,
|
|
2452
|
+
_request_timeout: Union[
|
|
2453
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2454
|
+
] = None,
|
|
2455
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2456
|
+
_content_type: Optional[StrictStr] = None,
|
|
2457
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2458
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2459
|
+
) -> ApiResponse[PlanResponse]:
|
|
2460
|
+
"""(Deprecated) Plan Motion
|
|
2461
|
+
|
|
2462
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use [planTrajectory](#/operations/planTrajectory) and [loadPlannedMotion](#/operations/loadPlannedMotion) instead. Plans a new motion for a single previously configured [motion group](#/operations/listMotionGroups). Motions are described by a sequence of motion commands starting with start joints. A motion is planned from standstill to standstill. A single motion has constant TCP and payload. Currently, I/O actions can't be attached to a motion to execute the action in realtime while a motion is executed. If an I/O is needed at a specific point, multiple motions need to be planned. If an I/O is needed to be set while a motion is executed, the endpoint [setOutputValues](#/operations/setOutputValues) could be used.
|
|
2463
|
+
|
|
2464
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2465
|
+
:type cell: str
|
|
2466
|
+
:param plan_request: (required)
|
|
2467
|
+
:type plan_request: PlanRequest
|
|
2468
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2469
|
+
number provided, it will be total request
|
|
2470
|
+
timeout. It can also be a pair (tuple) of
|
|
2471
|
+
(connection, read) timeouts.
|
|
2472
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2473
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2474
|
+
request; this effectively ignores the
|
|
2475
|
+
authentication in the spec for a single request.
|
|
2476
|
+
:type _request_auth: dict, optional
|
|
2477
|
+
:param _content_type: force content-type for the request.
|
|
2478
|
+
:type _content_type: str, Optional
|
|
2479
|
+
:param _headers: set to override the headers for a single
|
|
2480
|
+
request; this effectively ignores the headers
|
|
2481
|
+
in the spec for a single request.
|
|
2482
|
+
:type _headers: dict, optional
|
|
2483
|
+
:param _host_index: set to override the host_index for a single
|
|
2484
|
+
request; this effectively ignores the host_index
|
|
2485
|
+
in the spec for a single request.
|
|
2486
|
+
:type _host_index: int, optional
|
|
2487
|
+
:return: Returns the result object.
|
|
2488
|
+
""" # noqa: E501
|
|
2489
|
+
warnings.warn("POST /cells/{cell}/motions is deprecated.", DeprecationWarning)
|
|
2490
|
+
|
|
2491
|
+
_param = self._plan_motion_serialize(
|
|
2492
|
+
cell=cell,
|
|
2493
|
+
plan_request=plan_request,
|
|
2494
|
+
_request_auth=_request_auth,
|
|
2495
|
+
_content_type=_content_type,
|
|
2496
|
+
_headers=_headers,
|
|
2497
|
+
_host_index=_host_index,
|
|
2498
|
+
)
|
|
2499
|
+
|
|
2500
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2501
|
+
"200": "PlanResponse",
|
|
2502
|
+
}
|
|
2503
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2504
|
+
await response_data.read()
|
|
2505
|
+
return self.api_client.response_deserialize(
|
|
2506
|
+
response_data=response_data,
|
|
2507
|
+
response_types_map=_response_types_map,
|
|
2508
|
+
)
|
|
2509
|
+
|
|
2510
|
+
@validate_call
|
|
2511
|
+
async def plan_motion_without_preload_content(
|
|
2512
|
+
self,
|
|
2513
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2514
|
+
plan_request: PlanRequest,
|
|
2515
|
+
_request_timeout: Union[
|
|
2516
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2517
|
+
] = None,
|
|
2518
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2519
|
+
_content_type: Optional[StrictStr] = None,
|
|
2520
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2521
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2522
|
+
) -> RESTResponseType:
|
|
2523
|
+
"""(Deprecated) Plan Motion
|
|
2524
|
+
|
|
2525
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use [planTrajectory](#/operations/planTrajectory) and [loadPlannedMotion](#/operations/loadPlannedMotion) instead. Plans a new motion for a single previously configured [motion group](#/operations/listMotionGroups). Motions are described by a sequence of motion commands starting with start joints. A motion is planned from standstill to standstill. A single motion has constant TCP and payload. Currently, I/O actions can't be attached to a motion to execute the action in realtime while a motion is executed. If an I/O is needed at a specific point, multiple motions need to be planned. If an I/O is needed to be set while a motion is executed, the endpoint [setOutputValues](#/operations/setOutputValues) could be used.
|
|
2526
|
+
|
|
2527
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2528
|
+
:type cell: str
|
|
2529
|
+
:param plan_request: (required)
|
|
2530
|
+
:type plan_request: PlanRequest
|
|
2531
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2532
|
+
number provided, it will be total request
|
|
2533
|
+
timeout. It can also be a pair (tuple) of
|
|
2534
|
+
(connection, read) timeouts.
|
|
2535
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2536
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2537
|
+
request; this effectively ignores the
|
|
2538
|
+
authentication in the spec for a single request.
|
|
2539
|
+
:type _request_auth: dict, optional
|
|
2540
|
+
:param _content_type: force content-type for the request.
|
|
2541
|
+
:type _content_type: str, Optional
|
|
2542
|
+
:param _headers: set to override the headers for a single
|
|
2543
|
+
request; this effectively ignores the headers
|
|
2544
|
+
in the spec for a single request.
|
|
2545
|
+
:type _headers: dict, optional
|
|
2546
|
+
:param _host_index: set to override the host_index for a single
|
|
2547
|
+
request; this effectively ignores the host_index
|
|
2548
|
+
in the spec for a single request.
|
|
2549
|
+
:type _host_index: int, optional
|
|
2550
|
+
:return: Returns the result object.
|
|
2551
|
+
""" # noqa: E501
|
|
2552
|
+
warnings.warn("POST /cells/{cell}/motions is deprecated.", DeprecationWarning)
|
|
2553
|
+
|
|
2554
|
+
_param = self._plan_motion_serialize(
|
|
2555
|
+
cell=cell,
|
|
2556
|
+
plan_request=plan_request,
|
|
2557
|
+
_request_auth=_request_auth,
|
|
2558
|
+
_content_type=_content_type,
|
|
2559
|
+
_headers=_headers,
|
|
2560
|
+
_host_index=_host_index,
|
|
2561
|
+
)
|
|
2562
|
+
|
|
2563
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2564
|
+
"200": "PlanResponse",
|
|
2565
|
+
}
|
|
2566
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2567
|
+
return response_data.response
|
|
2568
|
+
|
|
2569
|
+
def _plan_motion_serialize(
|
|
2570
|
+
self,
|
|
2571
|
+
cell,
|
|
2572
|
+
plan_request,
|
|
2573
|
+
_request_auth,
|
|
2574
|
+
_content_type,
|
|
2575
|
+
_headers,
|
|
2576
|
+
_host_index,
|
|
2577
|
+
) -> RequestSerialized:
|
|
2578
|
+
|
|
2579
|
+
_host = None
|
|
2580
|
+
|
|
2581
|
+
_collection_formats: Dict[str, str] = {}
|
|
2582
|
+
|
|
2583
|
+
_path_params: Dict[str, str] = {}
|
|
2584
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2585
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2586
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2587
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
2588
|
+
_body_params: Optional[bytes] = None
|
|
2589
|
+
|
|
2590
|
+
# process the path parameters
|
|
2591
|
+
if cell is not None:
|
|
2592
|
+
_path_params["cell"] = cell
|
|
2593
|
+
# process the query parameters
|
|
2594
|
+
# process the header parameters
|
|
2595
|
+
# process the form parameters
|
|
2596
|
+
# process the body parameter
|
|
2597
|
+
if plan_request is not None:
|
|
2598
|
+
_body_params = plan_request
|
|
2599
|
+
|
|
2600
|
+
# set the HTTP header `Accept`
|
|
2601
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
2602
|
+
|
|
2603
|
+
# set the HTTP header `Content-Type`
|
|
2604
|
+
if _content_type:
|
|
2605
|
+
_header_params["Content-Type"] = _content_type
|
|
2606
|
+
else:
|
|
2607
|
+
_default_content_type = self.api_client.select_header_content_type(["application/json"])
|
|
2608
|
+
if _default_content_type is not None:
|
|
2609
|
+
_header_params["Content-Type"] = _default_content_type
|
|
2610
|
+
|
|
2611
|
+
# authentication setting
|
|
2612
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
2613
|
+
|
|
2614
|
+
return self.api_client.param_serialize(
|
|
2615
|
+
method="POST",
|
|
2616
|
+
resource_path="/cells/{cell}/motions",
|
|
2617
|
+
path_params=_path_params,
|
|
2618
|
+
query_params=_query_params,
|
|
2619
|
+
header_params=_header_params,
|
|
2620
|
+
body=_body_params,
|
|
2621
|
+
post_params=_form_params,
|
|
2622
|
+
files=_files,
|
|
2623
|
+
auth_settings=_auth_settings,
|
|
2624
|
+
collection_formats=_collection_formats,
|
|
2625
|
+
_host=_host,
|
|
2626
|
+
_request_auth=_request_auth,
|
|
2627
|
+
)
|
|
2628
|
+
|
|
2629
|
+
@validate_call
|
|
2630
|
+
async def plan_trajectory(
|
|
2631
|
+
self,
|
|
2632
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2633
|
+
plan_trajectory_request: Optional[PlanTrajectoryRequest] = None,
|
|
2634
|
+
_request_timeout: Union[
|
|
2635
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2636
|
+
] = None,
|
|
2637
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2638
|
+
_content_type: Optional[StrictStr] = None,
|
|
2639
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2640
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2641
|
+
) -> PlanTrajectoryResponse:
|
|
2642
|
+
"""Plan Trajectory
|
|
2643
|
+
|
|
2644
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint. If the trajectory is not executable, the PlanTrajectoryFailedResponse will contain the joint trajectory up until the error (e.g. a collision) occurred. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
|
|
2645
|
+
|
|
2646
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2647
|
+
:type cell: str
|
|
2648
|
+
:param plan_trajectory_request:
|
|
2649
|
+
:type plan_trajectory_request: PlanTrajectoryRequest
|
|
2650
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2651
|
+
number provided, it will be total request
|
|
2652
|
+
timeout. It can also be a pair (tuple) of
|
|
2653
|
+
(connection, read) timeouts.
|
|
2654
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2655
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2656
|
+
request; this effectively ignores the
|
|
2657
|
+
authentication in the spec for a single request.
|
|
2658
|
+
:type _request_auth: dict, optional
|
|
2659
|
+
:param _content_type: force content-type for the request.
|
|
2660
|
+
:type _content_type: str, Optional
|
|
2661
|
+
:param _headers: set to override the headers for a single
|
|
2662
|
+
request; this effectively ignores the headers
|
|
2663
|
+
in the spec for a single request.
|
|
2664
|
+
:type _headers: dict, optional
|
|
2665
|
+
:param _host_index: set to override the host_index for a single
|
|
2666
|
+
request; this effectively ignores the host_index
|
|
2667
|
+
in the spec for a single request.
|
|
2668
|
+
:type _host_index: int, optional
|
|
2669
|
+
:return: Returns the result object.
|
|
2670
|
+
""" # noqa: E501
|
|
2671
|
+
|
|
2672
|
+
_param = self._plan_trajectory_serialize(
|
|
2673
|
+
cell=cell,
|
|
2674
|
+
plan_trajectory_request=plan_trajectory_request,
|
|
2675
|
+
_request_auth=_request_auth,
|
|
2676
|
+
_content_type=_content_type,
|
|
2677
|
+
_headers=_headers,
|
|
2678
|
+
_host_index=_host_index,
|
|
2679
|
+
)
|
|
2680
|
+
|
|
2681
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2682
|
+
"200": "PlanTrajectoryResponse",
|
|
2683
|
+
"404": None,
|
|
2684
|
+
"422": "HTTPValidationError",
|
|
2685
|
+
"500": None,
|
|
2686
|
+
}
|
|
2687
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2688
|
+
await response_data.read()
|
|
2689
|
+
return self.api_client.response_deserialize(
|
|
2690
|
+
response_data=response_data,
|
|
2691
|
+
response_types_map=_response_types_map,
|
|
2692
|
+
).data
|
|
2693
|
+
|
|
2694
|
+
@validate_call
|
|
2695
|
+
async def plan_trajectory_with_http_info(
|
|
2696
|
+
self,
|
|
2697
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2698
|
+
plan_trajectory_request: Optional[PlanTrajectoryRequest] = None,
|
|
2699
|
+
_request_timeout: Union[
|
|
2700
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2701
|
+
] = None,
|
|
2702
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2703
|
+
_content_type: Optional[StrictStr] = None,
|
|
2704
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2705
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2706
|
+
) -> ApiResponse[PlanTrajectoryResponse]:
|
|
2707
|
+
"""Plan Trajectory
|
|
2708
|
+
|
|
2709
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint. If the trajectory is not executable, the PlanTrajectoryFailedResponse will contain the joint trajectory up until the error (e.g. a collision) occurred. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
|
|
2710
|
+
|
|
2711
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2712
|
+
:type cell: str
|
|
2713
|
+
:param plan_trajectory_request:
|
|
2714
|
+
:type plan_trajectory_request: PlanTrajectoryRequest
|
|
2715
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2716
|
+
number provided, it will be total request
|
|
2717
|
+
timeout. It can also be a pair (tuple) of
|
|
2718
|
+
(connection, read) timeouts.
|
|
2719
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2720
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2721
|
+
request; this effectively ignores the
|
|
2722
|
+
authentication in the spec for a single request.
|
|
2723
|
+
:type _request_auth: dict, optional
|
|
2724
|
+
:param _content_type: force content-type for the request.
|
|
2725
|
+
:type _content_type: str, Optional
|
|
2726
|
+
:param _headers: set to override the headers for a single
|
|
2727
|
+
request; this effectively ignores the headers
|
|
2728
|
+
in the spec for a single request.
|
|
2729
|
+
:type _headers: dict, optional
|
|
2730
|
+
:param _host_index: set to override the host_index for a single
|
|
2731
|
+
request; this effectively ignores the host_index
|
|
2732
|
+
in the spec for a single request.
|
|
2733
|
+
:type _host_index: int, optional
|
|
2734
|
+
:return: Returns the result object.
|
|
2735
|
+
""" # noqa: E501
|
|
2736
|
+
|
|
2737
|
+
_param = self._plan_trajectory_serialize(
|
|
2738
|
+
cell=cell,
|
|
2739
|
+
plan_trajectory_request=plan_trajectory_request,
|
|
2740
|
+
_request_auth=_request_auth,
|
|
2741
|
+
_content_type=_content_type,
|
|
2742
|
+
_headers=_headers,
|
|
2743
|
+
_host_index=_host_index,
|
|
2744
|
+
)
|
|
2745
|
+
|
|
2746
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2747
|
+
"200": "PlanTrajectoryResponse",
|
|
2748
|
+
"404": None,
|
|
2749
|
+
"422": "HTTPValidationError",
|
|
2750
|
+
"500": None,
|
|
2751
|
+
}
|
|
2752
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2753
|
+
await response_data.read()
|
|
2754
|
+
return self.api_client.response_deserialize(
|
|
2755
|
+
response_data=response_data,
|
|
2756
|
+
response_types_map=_response_types_map,
|
|
2757
|
+
)
|
|
2758
|
+
|
|
2759
|
+
@validate_call
|
|
2760
|
+
async def plan_trajectory_without_preload_content(
|
|
2761
|
+
self,
|
|
2762
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2763
|
+
plan_trajectory_request: Optional[PlanTrajectoryRequest] = None,
|
|
2764
|
+
_request_timeout: Union[
|
|
2765
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2766
|
+
] = None,
|
|
2767
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2768
|
+
_content_type: Optional[StrictStr] = None,
|
|
2769
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2770
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2771
|
+
) -> RESTResponseType:
|
|
2772
|
+
"""Plan Trajectory
|
|
2773
|
+
|
|
2774
|
+
**Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint. If the trajectory is not executable, the PlanTrajectoryFailedResponse will contain the joint trajectory up until the error (e.g. a collision) occurred. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
|
|
2775
|
+
|
|
2776
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2777
|
+
:type cell: str
|
|
2778
|
+
:param plan_trajectory_request:
|
|
2779
|
+
:type plan_trajectory_request: PlanTrajectoryRequest
|
|
2780
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2781
|
+
number provided, it will be total request
|
|
2782
|
+
timeout. It can also be a pair (tuple) of
|
|
2783
|
+
(connection, read) timeouts.
|
|
2784
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2785
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2786
|
+
request; this effectively ignores the
|
|
2787
|
+
authentication in the spec for a single request.
|
|
2788
|
+
:type _request_auth: dict, optional
|
|
2789
|
+
:param _content_type: force content-type for the request.
|
|
2790
|
+
:type _content_type: str, Optional
|
|
2791
|
+
:param _headers: set to override the headers for a single
|
|
2792
|
+
request; this effectively ignores the headers
|
|
2793
|
+
in the spec for a single request.
|
|
2794
|
+
:type _headers: dict, optional
|
|
2795
|
+
:param _host_index: set to override the host_index for a single
|
|
2796
|
+
request; this effectively ignores the host_index
|
|
2797
|
+
in the spec for a single request.
|
|
2798
|
+
:type _host_index: int, optional
|
|
2799
|
+
:return: Returns the result object.
|
|
2800
|
+
""" # noqa: E501
|
|
2801
|
+
|
|
2802
|
+
_param = self._plan_trajectory_serialize(
|
|
2803
|
+
cell=cell,
|
|
2804
|
+
plan_trajectory_request=plan_trajectory_request,
|
|
2805
|
+
_request_auth=_request_auth,
|
|
2806
|
+
_content_type=_content_type,
|
|
2807
|
+
_headers=_headers,
|
|
2808
|
+
_host_index=_host_index,
|
|
2809
|
+
)
|
|
2810
|
+
|
|
2811
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2812
|
+
"200": "PlanTrajectoryResponse",
|
|
2813
|
+
"404": None,
|
|
2814
|
+
"422": "HTTPValidationError",
|
|
2815
|
+
"500": None,
|
|
2816
|
+
}
|
|
2817
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2818
|
+
return response_data.response
|
|
2819
|
+
|
|
2820
|
+
def _plan_trajectory_serialize(
|
|
2821
|
+
self,
|
|
2822
|
+
cell,
|
|
2823
|
+
plan_trajectory_request,
|
|
2824
|
+
_request_auth,
|
|
2825
|
+
_content_type,
|
|
2826
|
+
_headers,
|
|
2827
|
+
_host_index,
|
|
2828
|
+
) -> RequestSerialized:
|
|
2829
|
+
|
|
2830
|
+
_host = None
|
|
2831
|
+
|
|
2832
|
+
_collection_formats: Dict[str, str] = {}
|
|
2833
|
+
|
|
2834
|
+
_path_params: Dict[str, str] = {}
|
|
2835
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2836
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2837
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2838
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
2839
|
+
_body_params: Optional[bytes] = None
|
|
2840
|
+
|
|
2841
|
+
# process the path parameters
|
|
2842
|
+
if cell is not None:
|
|
2843
|
+
_path_params["cell"] = cell
|
|
2844
|
+
# process the query parameters
|
|
2845
|
+
# process the header parameters
|
|
2846
|
+
# process the form parameters
|
|
2847
|
+
# process the body parameter
|
|
2848
|
+
if plan_trajectory_request is not None:
|
|
2849
|
+
_body_params = plan_trajectory_request
|
|
2850
|
+
|
|
2851
|
+
# set the HTTP header `Accept`
|
|
2852
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
2853
|
+
|
|
2854
|
+
# set the HTTP header `Content-Type`
|
|
2855
|
+
if _content_type:
|
|
2856
|
+
_header_params["Content-Type"] = _content_type
|
|
2857
|
+
else:
|
|
2858
|
+
_default_content_type = self.api_client.select_header_content_type(["application/json"])
|
|
2859
|
+
if _default_content_type is not None:
|
|
2860
|
+
_header_params["Content-Type"] = _default_content_type
|
|
2861
|
+
|
|
2862
|
+
# authentication setting
|
|
2863
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
2864
|
+
|
|
2865
|
+
return self.api_client.param_serialize(
|
|
2866
|
+
method="POST",
|
|
2867
|
+
resource_path="/cells/{cell}/motion-planning/plan-trajectory",
|
|
2868
|
+
path_params=_path_params,
|
|
2869
|
+
query_params=_query_params,
|
|
2870
|
+
header_params=_header_params,
|
|
2871
|
+
body=_body_params,
|
|
2872
|
+
post_params=_form_params,
|
|
2873
|
+
files=_files,
|
|
2874
|
+
auth_settings=_auth_settings,
|
|
2875
|
+
collection_formats=_collection_formats,
|
|
2876
|
+
_host=_host,
|
|
2877
|
+
_request_auth=_request_auth,
|
|
2878
|
+
)
|
|
2879
|
+
|
|
2880
|
+
@validate_call
|
|
2881
|
+
async def stop_execution(
|
|
2882
|
+
self,
|
|
2883
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2884
|
+
motion: Annotated[
|
|
2885
|
+
StrictStr,
|
|
2886
|
+
Field(
|
|
2887
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
2888
|
+
),
|
|
2889
|
+
],
|
|
2890
|
+
_request_timeout: Union[
|
|
2891
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2892
|
+
] = None,
|
|
2893
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2894
|
+
_content_type: Optional[StrictStr] = None,
|
|
2895
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2896
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2897
|
+
) -> None:
|
|
2898
|
+
"""Stop
|
|
2899
|
+
|
|
2900
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an active motion gracefully with deceleration until standstill while staying on the planned trajectory. When an active movement is stopped any further update request will be rejected. This call will immediately return even if the deceleration is still in progress. The active movement stream returns responses until the robot has reached standstill. Currently it is not possible to restart the motion. Please send in a feature request if you need to restart/continue the motion.
|
|
2901
|
+
|
|
2902
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2903
|
+
:type cell: str
|
|
2904
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
2905
|
+
:type motion: str
|
|
2906
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2907
|
+
number provided, it will be total request
|
|
2908
|
+
timeout. It can also be a pair (tuple) of
|
|
2909
|
+
(connection, read) timeouts.
|
|
2910
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2911
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2912
|
+
request; this effectively ignores the
|
|
2913
|
+
authentication in the spec for a single request.
|
|
2914
|
+
:type _request_auth: dict, optional
|
|
2915
|
+
:param _content_type: force content-type for the request.
|
|
2916
|
+
:type _content_type: str, Optional
|
|
2917
|
+
:param _headers: set to override the headers for a single
|
|
2918
|
+
request; this effectively ignores the headers
|
|
2919
|
+
in the spec for a single request.
|
|
2920
|
+
:type _headers: dict, optional
|
|
2921
|
+
:param _host_index: set to override the host_index for a single
|
|
2922
|
+
request; this effectively ignores the host_index
|
|
2923
|
+
in the spec for a single request.
|
|
2924
|
+
:type _host_index: int, optional
|
|
2925
|
+
:return: Returns the result object.
|
|
2926
|
+
""" # noqa: E501
|
|
2927
|
+
|
|
2928
|
+
_param = self._stop_execution_serialize(
|
|
2929
|
+
cell=cell, motion=motion, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
2930
|
+
)
|
|
2931
|
+
|
|
2932
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2933
|
+
"200": None,
|
|
2934
|
+
}
|
|
2935
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2936
|
+
await response_data.read()
|
|
2937
|
+
return self.api_client.response_deserialize(
|
|
2938
|
+
response_data=response_data,
|
|
2939
|
+
response_types_map=_response_types_map,
|
|
2940
|
+
).data
|
|
2941
|
+
|
|
2942
|
+
@validate_call
|
|
2943
|
+
async def stop_execution_with_http_info(
|
|
2944
|
+
self,
|
|
2945
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
2946
|
+
motion: Annotated[
|
|
2947
|
+
StrictStr,
|
|
2948
|
+
Field(
|
|
2949
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
2950
|
+
),
|
|
2951
|
+
],
|
|
2952
|
+
_request_timeout: Union[
|
|
2953
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
2954
|
+
] = None,
|
|
2955
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
2956
|
+
_content_type: Optional[StrictStr] = None,
|
|
2957
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2958
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2959
|
+
) -> ApiResponse[None]:
|
|
2960
|
+
"""Stop
|
|
2961
|
+
|
|
2962
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an active motion gracefully with deceleration until standstill while staying on the planned trajectory. When an active movement is stopped any further update request will be rejected. This call will immediately return even if the deceleration is still in progress. The active movement stream returns responses until the robot has reached standstill. Currently it is not possible to restart the motion. Please send in a feature request if you need to restart/continue the motion.
|
|
2963
|
+
|
|
2964
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
2965
|
+
:type cell: str
|
|
2966
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
2967
|
+
:type motion: str
|
|
2968
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
2969
|
+
number provided, it will be total request
|
|
2970
|
+
timeout. It can also be a pair (tuple) of
|
|
2971
|
+
(connection, read) timeouts.
|
|
2972
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
2973
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
2974
|
+
request; this effectively ignores the
|
|
2975
|
+
authentication in the spec for a single request.
|
|
2976
|
+
:type _request_auth: dict, optional
|
|
2977
|
+
:param _content_type: force content-type for the request.
|
|
2978
|
+
:type _content_type: str, Optional
|
|
2979
|
+
:param _headers: set to override the headers for a single
|
|
2980
|
+
request; this effectively ignores the headers
|
|
2981
|
+
in the spec for a single request.
|
|
2982
|
+
:type _headers: dict, optional
|
|
2983
|
+
:param _host_index: set to override the host_index for a single
|
|
2984
|
+
request; this effectively ignores the host_index
|
|
2985
|
+
in the spec for a single request.
|
|
2986
|
+
:type _host_index: int, optional
|
|
2987
|
+
:return: Returns the result object.
|
|
2988
|
+
""" # noqa: E501
|
|
2989
|
+
|
|
2990
|
+
_param = self._stop_execution_serialize(
|
|
2991
|
+
cell=cell, motion=motion, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
2992
|
+
)
|
|
2993
|
+
|
|
2994
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2995
|
+
"200": None,
|
|
2996
|
+
}
|
|
2997
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
2998
|
+
await response_data.read()
|
|
2999
|
+
return self.api_client.response_deserialize(
|
|
3000
|
+
response_data=response_data,
|
|
3001
|
+
response_types_map=_response_types_map,
|
|
3002
|
+
)
|
|
3003
|
+
|
|
3004
|
+
@validate_call
|
|
3005
|
+
async def stop_execution_without_preload_content(
|
|
3006
|
+
self,
|
|
3007
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3008
|
+
motion: Annotated[
|
|
3009
|
+
StrictStr,
|
|
3010
|
+
Field(
|
|
3011
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
3012
|
+
),
|
|
3013
|
+
],
|
|
3014
|
+
_request_timeout: Union[
|
|
3015
|
+
None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
|
|
3016
|
+
] = None,
|
|
3017
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
3018
|
+
_content_type: Optional[StrictStr] = None,
|
|
3019
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
3020
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
3021
|
+
) -> RESTResponseType:
|
|
3022
|
+
"""Stop
|
|
3023
|
+
|
|
3024
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an active motion gracefully with deceleration until standstill while staying on the planned trajectory. When an active movement is stopped any further update request will be rejected. This call will immediately return even if the deceleration is still in progress. The active movement stream returns responses until the robot has reached standstill. Currently it is not possible to restart the motion. Please send in a feature request if you need to restart/continue the motion.
|
|
3025
|
+
|
|
3026
|
+
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3027
|
+
:type cell: str
|
|
3028
|
+
:param motion: This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion. (required)
|
|
3029
|
+
:type motion: str
|
|
3030
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
3031
|
+
number provided, it will be total request
|
|
3032
|
+
timeout. It can also be a pair (tuple) of
|
|
3033
|
+
(connection, read) timeouts.
|
|
3034
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
3035
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
3036
|
+
request; this effectively ignores the
|
|
3037
|
+
authentication in the spec for a single request.
|
|
3038
|
+
:type _request_auth: dict, optional
|
|
3039
|
+
:param _content_type: force content-type for the request.
|
|
3040
|
+
:type _content_type: str, Optional
|
|
3041
|
+
:param _headers: set to override the headers for a single
|
|
3042
|
+
request; this effectively ignores the headers
|
|
3043
|
+
in the spec for a single request.
|
|
3044
|
+
:type _headers: dict, optional
|
|
3045
|
+
:param _host_index: set to override the host_index for a single
|
|
3046
|
+
request; this effectively ignores the host_index
|
|
3047
|
+
in the spec for a single request.
|
|
3048
|
+
:type _host_index: int, optional
|
|
3049
|
+
:return: Returns the result object.
|
|
3050
|
+
""" # noqa: E501
|
|
3051
|
+
|
|
3052
|
+
_param = self._stop_execution_serialize(
|
|
3053
|
+
cell=cell, motion=motion, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index
|
|
3054
|
+
)
|
|
3055
|
+
|
|
3056
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
3057
|
+
"200": None,
|
|
3058
|
+
}
|
|
3059
|
+
response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
|
|
3060
|
+
return response_data.response
|
|
3061
|
+
|
|
3062
|
+
def _stop_execution_serialize(
|
|
3063
|
+
self,
|
|
3064
|
+
cell,
|
|
3065
|
+
motion,
|
|
3066
|
+
_request_auth,
|
|
3067
|
+
_content_type,
|
|
3068
|
+
_headers,
|
|
3069
|
+
_host_index,
|
|
3070
|
+
) -> RequestSerialized:
|
|
3071
|
+
|
|
3072
|
+
_host = None
|
|
3073
|
+
|
|
3074
|
+
_collection_formats: Dict[str, str] = {}
|
|
3075
|
+
|
|
3076
|
+
_path_params: Dict[str, str] = {}
|
|
3077
|
+
_query_params: List[Tuple[str, str]] = []
|
|
3078
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
3079
|
+
_form_params: List[Tuple[str, str]] = []
|
|
3080
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
3081
|
+
_body_params: Optional[bytes] = None
|
|
3082
|
+
|
|
3083
|
+
# process the path parameters
|
|
3084
|
+
if cell is not None:
|
|
3085
|
+
_path_params["cell"] = cell
|
|
3086
|
+
if motion is not None:
|
|
3087
|
+
_path_params["motion"] = motion
|
|
3088
|
+
# process the query parameters
|
|
3089
|
+
# process the header parameters
|
|
3090
|
+
# process the form parameters
|
|
3091
|
+
# process the body parameter
|
|
3092
|
+
|
|
3093
|
+
# set the HTTP header `Accept`
|
|
3094
|
+
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
|
|
3095
|
+
|
|
3096
|
+
# authentication setting
|
|
3097
|
+
_auth_settings: List[str] = ["BearerAuth"]
|
|
3098
|
+
|
|
3099
|
+
return self.api_client.param_serialize(
|
|
3100
|
+
method="PUT",
|
|
3101
|
+
resource_path="/cells/{cell}/motions/{motion}/stop",
|
|
3102
|
+
path_params=_path_params,
|
|
3103
|
+
query_params=_query_params,
|
|
3104
|
+
header_params=_header_params,
|
|
3105
|
+
body=_body_params,
|
|
3106
|
+
post_params=_form_params,
|
|
3107
|
+
files=_files,
|
|
3108
|
+
auth_settings=_auth_settings,
|
|
3109
|
+
collection_formats=_collection_formats,
|
|
3110
|
+
_host=_host,
|
|
3111
|
+
_request_auth=_request_auth,
|
|
3112
|
+
)
|
|
3113
|
+
|
|
3114
|
+
@validate_call
|
|
3115
|
+
async def stream_move(
|
|
3116
|
+
self,
|
|
3117
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3118
|
+
client_request_generator: Callable[[AsyncGenerator[StreamMoveResponse, None]], AsyncGenerator[StreamMoveRequest, None]],
|
|
3119
|
+
) -> None: # noqa: E501
|
|
3120
|
+
"""(Deprecated) Stream Move # noqa: E501
|
|
3121
|
+
|
|
3122
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use `executeTrajectory` instead. Moves the motion group forward or backward along a previously planned motion. Or request to move the motion group via joint point-to-point to a given location on a planned motion. Or set the playback speed of the motion. Or stop the motion execution. # noqa: E501
|
|
3123
|
+
:param client_request_generator: An AsyncGenerator that yields request of type StreamMoveRequest and takes an AsyncGenerator of StreamMoveResponse as an input argument (required)
|
|
3124
|
+
:info All responses from the server will be yielded to client_request_generator through the (AsyncGenerator[StreamMoveResponse, None])
|
|
3125
|
+
:type AsyncGenerator[StreamMoveRequest, None]
|
|
3126
|
+
"""
|
|
3127
|
+
|
|
3128
|
+
def format_path_parameters(path):
|
|
3129
|
+
# Find all substrings that are enclosed in brackets
|
|
3130
|
+
bracket_contents = re.findall(r"\{(.*?)\}", path)
|
|
3131
|
+
|
|
3132
|
+
# For each found substring, alter it to match the python variable name
|
|
3133
|
+
for content in bracket_contents:
|
|
3134
|
+
content = "{" + content + "}"
|
|
3135
|
+
modified_content = humps.dekebabize(content)
|
|
3136
|
+
path = path.replace(content, modified_content)
|
|
3137
|
+
|
|
3138
|
+
return path
|
|
3139
|
+
|
|
3140
|
+
async def iterate_responses(ws) -> AsyncGenerator[StreamMoveResponse, None]:
|
|
3141
|
+
async for response in ws:
|
|
3142
|
+
if "Cancelled on the server side" in response:
|
|
3143
|
+
break
|
|
3144
|
+
response_data = json.loads(response)
|
|
3145
|
+
if "result" not in response_data:
|
|
3146
|
+
raise Exception(response_data)
|
|
3147
|
+
result_data = response_data["result"]
|
|
3148
|
+
if isinstance(result_data, list):
|
|
3149
|
+
# Handle list of objects
|
|
3150
|
+
import re
|
|
3151
|
+
|
|
3152
|
+
# Extract the base type from List[BaseType] pattern
|
|
3153
|
+
return_type_str = "StreamMoveResponse"
|
|
3154
|
+
if return_type_str.startswith("List[") and return_type_str.endswith("]"):
|
|
3155
|
+
base_type_name = return_type_str[5:-1] # Remove "List[" and "]"
|
|
3156
|
+
# Get the actual class from the module
|
|
3157
|
+
base_type_class = globals().get(base_type_name)
|
|
3158
|
+
if base_type_class and hasattr(base_type_class, "from_dict"):
|
|
3159
|
+
result_list = [base_type_class.from_dict(item) for item in result_data]
|
|
3160
|
+
yield result_list
|
|
3161
|
+
else:
|
|
3162
|
+
yield result_data
|
|
3163
|
+
else:
|
|
3164
|
+
yield result_data
|
|
3165
|
+
else:
|
|
3166
|
+
# Handle single object
|
|
3167
|
+
yield StreamMoveResponse.from_dict(result_data)
|
|
3168
|
+
|
|
3169
|
+
path = format_path_parameters("/cells/{cell}/motions/streammove")
|
|
3170
|
+
path = path.format(
|
|
3171
|
+
cell=cell,
|
|
3172
|
+
)
|
|
3173
|
+
|
|
3174
|
+
headers = websockets.Headers()
|
|
3175
|
+
tmp_host = self.api_client.configuration.host
|
|
3176
|
+
if self.api_client.configuration.host.startswith("https://"):
|
|
3177
|
+
# Basic Auth
|
|
3178
|
+
if self.api_client.configuration.username:
|
|
3179
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3180
|
+
tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
|
|
3181
|
+
|
|
3182
|
+
# OAuth2
|
|
3183
|
+
elif self.api_client.configuration.access_token:
|
|
3184
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3185
|
+
tmp_host = f"wss://{tmp_host}"
|
|
3186
|
+
headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
|
|
3187
|
+
else:
|
|
3188
|
+
tmp_host = tmp_host.replace("http://", "ws://")
|
|
3189
|
+
|
|
3190
|
+
full_url = furl(tmp_host + path)
|
|
3191
|
+
|
|
3192
|
+
async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
|
|
3193
|
+
try:
|
|
3194
|
+
async for request in client_request_generator(iterate_responses(websocket)):
|
|
3195
|
+
await websocket.send(request.to_json())
|
|
3196
|
+
finally:
|
|
3197
|
+
await websocket.close()
|
|
3198
|
+
|
|
3199
|
+
@validate_call
|
|
3200
|
+
async def stream_move_backward(
|
|
3201
|
+
self,
|
|
3202
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3203
|
+
motion: Annotated[
|
|
3204
|
+
StrictStr,
|
|
3205
|
+
Field(
|
|
3206
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
3207
|
+
),
|
|
3208
|
+
],
|
|
3209
|
+
playback_speed_in_percent: Annotated[
|
|
3210
|
+
StrictInt,
|
|
3211
|
+
Field(
|
|
3212
|
+
description="Set the velocity for executed movements of the motion in percent. A percentage of 100% means that the robot moves as fast as possible without violating the limits. Setting this value does not affect the overall shape of the velocity profile. Everything is slowed down by the same factor. Therefore, this should only be used for teaching and trajectory evaluation purposes. If the process requires a certain velocity, the respective limits should be set when planning the motion. This will not change the velocity override of the controller. The controller velocity override value shall be 100% to ensure controllability of the motion group. "
|
|
3213
|
+
),
|
|
3214
|
+
],
|
|
3215
|
+
response_rate: Annotated[
|
|
3216
|
+
Optional[StrictInt],
|
|
3217
|
+
Field(
|
|
3218
|
+
description="Update rate for the response message in milliseconds (ms). Default is 200 ms. We recommend to use the step rate of the controller or a multiple of the step rate as NOVA updates the state in the controller's step rate as well. Minimal response rate is the step rate of controller."
|
|
3219
|
+
),
|
|
3220
|
+
] = None,
|
|
3221
|
+
response_coordinate_system: Annotated[
|
|
3222
|
+
Optional[StrictStr],
|
|
3223
|
+
Field(
|
|
3224
|
+
description="Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default is the world coordinate system. "
|
|
3225
|
+
),
|
|
3226
|
+
] = None,
|
|
3227
|
+
start_location_on_trajectory: Annotated[
|
|
3228
|
+
Optional[Union[StrictFloat, StrictInt]],
|
|
3229
|
+
Field(
|
|
3230
|
+
description="Location the motion is requested to start at. The default value is the end of the trajectory. The location is a scalar value that defines a position along a path, typically ranging from 0 to `n`, where `n` denotes the number of motion commands. Each integer value of the location corresponds to a specific motion command, while non-integer values interpolate positions within the segments. The location is calculated from the joint path. "
|
|
3231
|
+
),
|
|
3232
|
+
] = None,
|
|
3233
|
+
) -> AsyncGenerator[StreamMoveResponse, None]: # noqa: E501
|
|
3234
|
+
"""(Deprecated) Stream Backward # noqa: E501
|
|
3235
|
+
|
|
3236
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use the [executeTrajectory](#/operations/executeTrajectory) endpoint instead. Request to move the motion group backward along a previously planned motion. Once started, you can stop a motion using the [stopExecution](#/operations/stopExecution) endpoint. Prerequisites, before starting the motion execution: - The motion group is currently at the endpoint of the planned motion OR - The motion was stopped using [stopExecution](#/operations/stopExecution) endpoint. Then it is possible to resume the motion execution from where it stopped OR - The motion group was moved onto the motion using the [streamMoveToTrajectoryViaJointP2P](#/operations/streamMoveToTrajectoryViaJointP2P) endpoint. # noqa: E501
|
|
3237
|
+
:param request: A StreamMoveBackwardRequest
|
|
3238
|
+
:info All responses from the server will be yielded
|
|
3239
|
+
:type StreamMoveBackwardRequest
|
|
3240
|
+
"""
|
|
3241
|
+
|
|
3242
|
+
def format_path_parameters(path):
|
|
3243
|
+
# Find all substrings that are enclosed in brackets
|
|
3244
|
+
bracket_contents = re.findall(r"\{(.*?)\}", path)
|
|
3245
|
+
|
|
3246
|
+
# For each found substring, replace underscores with spaces
|
|
3247
|
+
for content in bracket_contents:
|
|
3248
|
+
content = "{" + content + "}"
|
|
3249
|
+
modified_content = humps.dekebabize(content)
|
|
3250
|
+
path = path.replace(content, modified_content)
|
|
3251
|
+
|
|
3252
|
+
return path
|
|
3253
|
+
|
|
3254
|
+
def append_parameter_connector(url_schema):
|
|
3255
|
+
if not "?" in url_schema:
|
|
3256
|
+
url_schema += "?"
|
|
3257
|
+
else:
|
|
3258
|
+
url_schema += "&"
|
|
3259
|
+
return url_schema
|
|
3260
|
+
|
|
3261
|
+
path = format_path_parameters("/cells/{cell}/motions/{motion}/executebackward")
|
|
3262
|
+
path = path.format(
|
|
3263
|
+
cell=cell,
|
|
3264
|
+
motion=motion,
|
|
3265
|
+
)
|
|
3266
|
+
|
|
3267
|
+
headers = websockets.Headers()
|
|
3268
|
+
tmp_host = self.api_client.configuration.host
|
|
3269
|
+
if self.api_client.configuration.host.startswith("https://"):
|
|
3270
|
+
# Basic Auth
|
|
3271
|
+
if self.api_client.configuration.username:
|
|
3272
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3273
|
+
tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
|
|
3274
|
+
|
|
3275
|
+
# OAuth2
|
|
3276
|
+
elif self.api_client.configuration.access_token:
|
|
3277
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3278
|
+
tmp_host = f"wss://{tmp_host}"
|
|
3279
|
+
headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
|
|
3280
|
+
else:
|
|
3281
|
+
tmp_host = tmp_host.replace("http://", "ws://")
|
|
3282
|
+
|
|
3283
|
+
url_schema = tmp_host + path
|
|
3284
|
+
if locals().get("playback_speed_in_percent") is not None:
|
|
3285
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3286
|
+
if isinstance(playback_speed_in_percent, list):
|
|
3287
|
+
url_schema += "&".join(["playback_speed_in_percent=" + s for s in playback_speed_in_percent])
|
|
3288
|
+
else:
|
|
3289
|
+
url_schema += "playback_speed_in_percent=" + str(playback_speed_in_percent)
|
|
3290
|
+
if locals().get("response_rate") is not None:
|
|
3291
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3292
|
+
if isinstance(response_rate, list):
|
|
3293
|
+
url_schema += "&".join(["response_rate=" + s for s in response_rate])
|
|
3294
|
+
else:
|
|
3295
|
+
url_schema += "response_rate=" + str(response_rate)
|
|
3296
|
+
if locals().get("response_coordinate_system") is not None:
|
|
3297
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3298
|
+
if isinstance(response_coordinate_system, list):
|
|
3299
|
+
url_schema += "&".join(["response_coordinate_system=" + s for s in response_coordinate_system])
|
|
3300
|
+
else:
|
|
3301
|
+
url_schema += "response_coordinate_system=" + str(response_coordinate_system)
|
|
3302
|
+
if locals().get("start_location_on_trajectory") is not None:
|
|
3303
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3304
|
+
if isinstance(start_location_on_trajectory, list):
|
|
3305
|
+
url_schema += "&".join(["start_location_on_trajectory=" + s for s in start_location_on_trajectory])
|
|
3306
|
+
else:
|
|
3307
|
+
url_schema += "start_location_on_trajectory=" + str(start_location_on_trajectory)
|
|
3308
|
+
full_url = furl(url_schema)
|
|
3309
|
+
|
|
3310
|
+
async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
|
|
3311
|
+
try:
|
|
3312
|
+
async for response in websocket:
|
|
3313
|
+
response_data = json.loads(response)
|
|
3314
|
+
if "result" not in response_data:
|
|
3315
|
+
raise Exception(response_data)
|
|
3316
|
+
yield StreamMoveResponse.from_dict(response_data["result"])
|
|
3317
|
+
except websockets.exceptions.ConnectionClosed:
|
|
3318
|
+
return
|
|
3319
|
+
finally:
|
|
3320
|
+
await websocket.close()
|
|
3321
|
+
|
|
3322
|
+
@validate_call
|
|
3323
|
+
async def stream_move_forward(
|
|
3324
|
+
self,
|
|
3325
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3326
|
+
motion: Annotated[
|
|
3327
|
+
StrictStr,
|
|
3328
|
+
Field(
|
|
3329
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
3330
|
+
),
|
|
3331
|
+
],
|
|
3332
|
+
playback_speed_in_percent: Annotated[
|
|
3333
|
+
StrictInt,
|
|
3334
|
+
Field(
|
|
3335
|
+
description="Set the velocity for executed movements of the motion in percent. A percentage of 100% means that the robot moves as fast as possible without violating the limits. Setting this value does not affect the overall shape of the velocity profile. Everything is slowed down by the same factor. Therefore, this should only be used for teaching and trajectory evaluation purposes. If the process requires a certain velocity, the respective limits should be set when planning the motion. This will not change the velocity override of the controller. The controller velocity override value shall be 100% to ensure controllability of the motion group. "
|
|
3336
|
+
),
|
|
3337
|
+
],
|
|
3338
|
+
response_rate: Annotated[
|
|
3339
|
+
Optional[StrictInt],
|
|
3340
|
+
Field(
|
|
3341
|
+
description="Update rate for the response message in milliseconds (ms). Default is 200 ms. We recommend to use the step rate of the controller or a multiple of the step rate as NOVA updates the state in the controller's step rate as well. Minimal response rate is the step rate of controller."
|
|
3342
|
+
),
|
|
3343
|
+
] = None,
|
|
3344
|
+
response_coordinate_system: Annotated[
|
|
3345
|
+
Optional[StrictStr],
|
|
3346
|
+
Field(
|
|
3347
|
+
description="Unique identifier addressing a coordinate system to which the cartesian data of the responses should be converted. Default is the world coordinate system. "
|
|
3348
|
+
),
|
|
3349
|
+
] = None,
|
|
3350
|
+
start_location_on_trajectory: Annotated[
|
|
3351
|
+
Optional[Union[StrictFloat, StrictInt]],
|
|
3352
|
+
Field(
|
|
3353
|
+
description="Location the motion is requested to start at. The default value is the beginning of the trajectory. The location is a scalar value that defines a position along a path, typically ranging from 0 to `n`, where `n` denotes the number of motion commands. Each integer value of the location corresponds to a specific motion command, while non-integer values interpolate positions within the segments. The location is calculated from the joint path. "
|
|
3354
|
+
),
|
|
3355
|
+
] = None,
|
|
3356
|
+
) -> AsyncGenerator[StreamMoveResponse, None]: # noqa: E501
|
|
3357
|
+
"""(Deprecated) Stream Forward # noqa: E501
|
|
3358
|
+
|
|
3359
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use the [executeTrajectory](#/operations/executeTrajectory) endpoint instead. Move the motion group forward along a previously planned motion. Once started, you can stop a motion using the [stopExecution](#/operations/stopExecution) endpoint. Prerequisites, before starting the motion execution: - The motion group is currently at the start point of the planned motion OR - The motion was stopped using [stopExecution](#/operations/stopExecution) endpoint. Then it is possible to resume the motion execution from where it stopped OR - The motion group was moved onto the motion using the [streamMoveToTrajectoryViaJointP2P](#/operations/streamMoveToTrajectoryViaJointP2P) endpoint. # noqa: E501
|
|
3360
|
+
:param request: A StreamMoveForwardRequest
|
|
3361
|
+
:info All responses from the server will be yielded
|
|
3362
|
+
:type StreamMoveForwardRequest
|
|
3363
|
+
"""
|
|
3364
|
+
|
|
3365
|
+
def format_path_parameters(path):
|
|
3366
|
+
# Find all substrings that are enclosed in brackets
|
|
3367
|
+
bracket_contents = re.findall(r"\{(.*?)\}", path)
|
|
3368
|
+
|
|
3369
|
+
# For each found substring, replace underscores with spaces
|
|
3370
|
+
for content in bracket_contents:
|
|
3371
|
+
content = "{" + content + "}"
|
|
3372
|
+
modified_content = humps.dekebabize(content)
|
|
3373
|
+
path = path.replace(content, modified_content)
|
|
3374
|
+
|
|
3375
|
+
return path
|
|
3376
|
+
|
|
3377
|
+
def append_parameter_connector(url_schema):
|
|
3378
|
+
if not "?" in url_schema:
|
|
3379
|
+
url_schema += "?"
|
|
3380
|
+
else:
|
|
3381
|
+
url_schema += "&"
|
|
3382
|
+
return url_schema
|
|
3383
|
+
|
|
3384
|
+
path = format_path_parameters("/cells/{cell}/motions/{motion}/executeforward")
|
|
3385
|
+
path = path.format(
|
|
3386
|
+
cell=cell,
|
|
3387
|
+
motion=motion,
|
|
3388
|
+
)
|
|
3389
|
+
|
|
3390
|
+
headers = websockets.Headers()
|
|
3391
|
+
tmp_host = self.api_client.configuration.host
|
|
3392
|
+
if self.api_client.configuration.host.startswith("https://"):
|
|
3393
|
+
# Basic Auth
|
|
3394
|
+
if self.api_client.configuration.username:
|
|
3395
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3396
|
+
tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
|
|
3397
|
+
|
|
3398
|
+
# OAuth2
|
|
3399
|
+
elif self.api_client.configuration.access_token:
|
|
3400
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3401
|
+
tmp_host = f"wss://{tmp_host}"
|
|
3402
|
+
headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
|
|
3403
|
+
else:
|
|
3404
|
+
tmp_host = tmp_host.replace("http://", "ws://")
|
|
3405
|
+
|
|
3406
|
+
url_schema = tmp_host + path
|
|
3407
|
+
if locals().get("playback_speed_in_percent") is not None:
|
|
3408
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3409
|
+
if isinstance(playback_speed_in_percent, list):
|
|
3410
|
+
url_schema += "&".join(["playback_speed_in_percent=" + s for s in playback_speed_in_percent])
|
|
3411
|
+
else:
|
|
3412
|
+
url_schema += "playback_speed_in_percent=" + str(playback_speed_in_percent)
|
|
3413
|
+
if locals().get("response_rate") is not None:
|
|
3414
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3415
|
+
if isinstance(response_rate, list):
|
|
3416
|
+
url_schema += "&".join(["response_rate=" + s for s in response_rate])
|
|
3417
|
+
else:
|
|
3418
|
+
url_schema += "response_rate=" + str(response_rate)
|
|
3419
|
+
if locals().get("response_coordinate_system") is not None:
|
|
3420
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3421
|
+
if isinstance(response_coordinate_system, list):
|
|
3422
|
+
url_schema += "&".join(["response_coordinate_system=" + s for s in response_coordinate_system])
|
|
3423
|
+
else:
|
|
3424
|
+
url_schema += "response_coordinate_system=" + str(response_coordinate_system)
|
|
3425
|
+
if locals().get("start_location_on_trajectory") is not None:
|
|
3426
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3427
|
+
if isinstance(start_location_on_trajectory, list):
|
|
3428
|
+
url_schema += "&".join(["start_location_on_trajectory=" + s for s in start_location_on_trajectory])
|
|
3429
|
+
else:
|
|
3430
|
+
url_schema += "start_location_on_trajectory=" + str(start_location_on_trajectory)
|
|
3431
|
+
full_url = furl(url_schema)
|
|
3432
|
+
|
|
3433
|
+
async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
|
|
3434
|
+
try:
|
|
3435
|
+
async for response in websocket:
|
|
3436
|
+
response_data = json.loads(response)
|
|
3437
|
+
if "result" not in response_data:
|
|
3438
|
+
raise Exception(response_data)
|
|
3439
|
+
yield StreamMoveResponse.from_dict(response_data["result"])
|
|
3440
|
+
except websockets.exceptions.ConnectionClosed:
|
|
3441
|
+
return
|
|
3442
|
+
finally:
|
|
3443
|
+
await websocket.close()
|
|
3444
|
+
|
|
3445
|
+
@validate_call
|
|
3446
|
+
async def stream_move_to_trajectory_via_joint_ptp(
|
|
3447
|
+
self,
|
|
3448
|
+
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3449
|
+
motion: Annotated[
|
|
3450
|
+
StrictStr,
|
|
3451
|
+
Field(
|
|
3452
|
+
description="This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion."
|
|
3453
|
+
),
|
|
3454
|
+
],
|
|
3455
|
+
location_on_trajectory: Union[StrictFloat, StrictInt],
|
|
3456
|
+
limit_override_joint_velocity_limits_joints: Annotated[
|
|
3457
|
+
Optional[List[Union[StrictFloat, StrictInt]]],
|
|
3458
|
+
Field(description="The joint velocity limits for the p2p motion to a previously planned motion."),
|
|
3459
|
+
] = None,
|
|
3460
|
+
limit_override_joint_acceleration_limits_joints: Annotated[
|
|
3461
|
+
Optional[List[Union[StrictFloat, StrictInt]]],
|
|
3462
|
+
Field(description="The joint acceleration limits for the p2p motion to a previously planned motion."),
|
|
3463
|
+
] = None,
|
|
3464
|
+
limit_override_tcp_velocity_limit: Annotated[
|
|
3465
|
+
Optional[Union[StrictFloat, StrictInt]], Field(description="Maximum allowed TCP velocity in [mm/s].")
|
|
3466
|
+
] = None,
|
|
3467
|
+
limit_override_tcp_acceleration_limit: Annotated[
|
|
3468
|
+
Optional[Union[StrictFloat, StrictInt]], Field(description="Maximum allowed TCP acceleration in [mm/s^2].")
|
|
3469
|
+
] = None,
|
|
3470
|
+
limit_override_tcp_orientation_velocity_limit: Annotated[
|
|
3471
|
+
Optional[Union[StrictFloat, StrictInt]], Field(description="Maximum allowed TCP rotation velocity in [rad/s].")
|
|
3472
|
+
] = None,
|
|
3473
|
+
limit_override_tcp_orientation_acceleration_limit: Annotated[
|
|
3474
|
+
Optional[Union[StrictFloat, StrictInt]], Field(description="Maximum allowed TCP rotation acceleration in [rad/s^2].")
|
|
3475
|
+
] = None,
|
|
3476
|
+
responses_coordinate_system: Optional[StrictStr] = None,
|
|
3477
|
+
) -> AsyncGenerator[StreamMoveResponse, None]: # noqa: E501
|
|
3478
|
+
"""Stream to Trajectory # noqa: E501
|
|
3479
|
+
|
|
3480
|
+
**Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Request to move the motion group via joint point-to-point to a given location on a planned motion. You must use this endpoint in order to start moving from an arbritrary location of the trajectory. Afterwards, you are able to call [streamMoveForward](#/operations/streamMoveForward) or [streamMoveBackward](#/operations/streamMoveBackward) to move along planned motion. Use the [stopExecution](#/operations/stopExecution) endpoint to stop the motion gracefully. # noqa: E501
|
|
3481
|
+
:param request: A StreamMoveToTrajectoryViaJointPtpRequest
|
|
3482
|
+
:info All responses from the server will be yielded
|
|
3483
|
+
:type StreamMoveToTrajectoryViaJointPtpRequest
|
|
3484
|
+
"""
|
|
3485
|
+
|
|
3486
|
+
def format_path_parameters(path):
|
|
3487
|
+
# Find all substrings that are enclosed in brackets
|
|
3488
|
+
bracket_contents = re.findall(r"\{(.*?)\}", path)
|
|
3489
|
+
|
|
3490
|
+
# For each found substring, replace underscores with spaces
|
|
3491
|
+
for content in bracket_contents:
|
|
3492
|
+
content = "{" + content + "}"
|
|
3493
|
+
modified_content = humps.dekebabize(content)
|
|
3494
|
+
path = path.replace(content, modified_content)
|
|
3495
|
+
|
|
3496
|
+
return path
|
|
3497
|
+
|
|
3498
|
+
def append_parameter_connector(url_schema):
|
|
3499
|
+
if not "?" in url_schema:
|
|
3500
|
+
url_schema += "?"
|
|
3501
|
+
else:
|
|
3502
|
+
url_schema += "&"
|
|
3503
|
+
return url_schema
|
|
3504
|
+
|
|
3505
|
+
path = format_path_parameters("/cells/{cell}/motions/{motion}/executetotrajectory")
|
|
3506
|
+
path = path.format(
|
|
3507
|
+
cell=cell,
|
|
3508
|
+
motion=motion,
|
|
3509
|
+
)
|
|
3510
|
+
|
|
3511
|
+
headers = websockets.Headers()
|
|
3512
|
+
tmp_host = self.api_client.configuration.host
|
|
3513
|
+
if self.api_client.configuration.host.startswith("https://"):
|
|
3514
|
+
# Basic Auth
|
|
3515
|
+
if self.api_client.configuration.username:
|
|
3516
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3517
|
+
tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
|
|
3518
|
+
|
|
3519
|
+
# OAuth2
|
|
3520
|
+
elif self.api_client.configuration.access_token:
|
|
3521
|
+
tmp_host = self.api_client.configuration.host.replace("https://", "")
|
|
3522
|
+
tmp_host = f"wss://{tmp_host}"
|
|
3523
|
+
headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
|
|
3524
|
+
else:
|
|
3525
|
+
tmp_host = tmp_host.replace("http://", "ws://")
|
|
3526
|
+
|
|
3527
|
+
url_schema = tmp_host + path
|
|
3528
|
+
if locals().get("location_on_trajectory") is not None:
|
|
3529
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3530
|
+
if isinstance(location_on_trajectory, list):
|
|
3531
|
+
url_schema += "&".join(["location_on_trajectory=" + s for s in location_on_trajectory])
|
|
3532
|
+
else:
|
|
3533
|
+
url_schema += "location_on_trajectory=" + str(location_on_trajectory)
|
|
3534
|
+
if locals().get("limit_override_joint_velocity_limits_joints") is not None:
|
|
3535
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3536
|
+
if isinstance(limit_override_joint_velocity_limits_joints, list):
|
|
3537
|
+
url_schema += "&".join(
|
|
3538
|
+
["limit_override.joint_velocity_limits.joints=" + s for s in limit_override_joint_velocity_limits_joints]
|
|
3539
|
+
)
|
|
3540
|
+
else:
|
|
3541
|
+
url_schema += "limit_override.joint_velocity_limits.joints=" + str(limit_override_joint_velocity_limits_joints)
|
|
3542
|
+
if locals().get("limit_override_joint_acceleration_limits_joints") is not None:
|
|
3543
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3544
|
+
if isinstance(limit_override_joint_acceleration_limits_joints, list):
|
|
3545
|
+
url_schema += "&".join(
|
|
3546
|
+
["limit_override.joint_acceleration_limits.joints=" + s for s in limit_override_joint_acceleration_limits_joints]
|
|
3547
|
+
)
|
|
3548
|
+
else:
|
|
3549
|
+
url_schema += "limit_override.joint_acceleration_limits.joints=" + str(limit_override_joint_acceleration_limits_joints)
|
|
3550
|
+
if locals().get("limit_override_tcp_velocity_limit") is not None:
|
|
3551
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3552
|
+
if isinstance(limit_override_tcp_velocity_limit, list):
|
|
3553
|
+
url_schema += "&".join(["limit_override.tcp_velocity_limit=" + s for s in limit_override_tcp_velocity_limit])
|
|
3554
|
+
else:
|
|
3555
|
+
url_schema += "limit_override.tcp_velocity_limit=" + str(limit_override_tcp_velocity_limit)
|
|
3556
|
+
if locals().get("limit_override_tcp_acceleration_limit") is not None:
|
|
3557
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3558
|
+
if isinstance(limit_override_tcp_acceleration_limit, list):
|
|
3559
|
+
url_schema += "&".join(["limit_override.tcp_acceleration_limit=" + s for s in limit_override_tcp_acceleration_limit])
|
|
3560
|
+
else:
|
|
3561
|
+
url_schema += "limit_override.tcp_acceleration_limit=" + str(limit_override_tcp_acceleration_limit)
|
|
3562
|
+
if locals().get("limit_override_tcp_orientation_velocity_limit") is not None:
|
|
3563
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3564
|
+
if isinstance(limit_override_tcp_orientation_velocity_limit, list):
|
|
3565
|
+
url_schema += "&".join(
|
|
3566
|
+
["limit_override.tcp_orientation_velocity_limit=" + s for s in limit_override_tcp_orientation_velocity_limit]
|
|
3567
|
+
)
|
|
3568
|
+
else:
|
|
3569
|
+
url_schema += "limit_override.tcp_orientation_velocity_limit=" + str(limit_override_tcp_orientation_velocity_limit)
|
|
3570
|
+
if locals().get("limit_override_tcp_orientation_acceleration_limit") is not None:
|
|
3571
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3572
|
+
if isinstance(limit_override_tcp_orientation_acceleration_limit, list):
|
|
3573
|
+
url_schema += "&".join(
|
|
3574
|
+
["limit_override.tcp_orientation_acceleration_limit=" + s for s in limit_override_tcp_orientation_acceleration_limit]
|
|
3575
|
+
)
|
|
3576
|
+
else:
|
|
3577
|
+
url_schema += "limit_override.tcp_orientation_acceleration_limit=" + str(limit_override_tcp_orientation_acceleration_limit)
|
|
3578
|
+
if locals().get("responses_coordinate_system") is not None:
|
|
3579
|
+
url_schema = append_parameter_connector(url_schema)
|
|
3580
|
+
if isinstance(responses_coordinate_system, list):
|
|
3581
|
+
url_schema += "&".join(["responses_coordinate_system=" + s for s in responses_coordinate_system])
|
|
3582
|
+
else:
|
|
3583
|
+
url_schema += "responses_coordinate_system=" + str(responses_coordinate_system)
|
|
3584
|
+
full_url = furl(url_schema)
|
|
3585
|
+
|
|
3586
|
+
async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
|
|
3587
|
+
try:
|
|
3588
|
+
async for response in websocket:
|
|
3589
|
+
response_data = json.loads(response)
|
|
3590
|
+
if "result" not in response_data:
|
|
3591
|
+
raise Exception(response_data)
|
|
3592
|
+
yield StreamMoveResponse.from_dict(response_data["result"])
|
|
3593
|
+
except websockets.exceptions.ConnectionClosed:
|
|
3594
|
+
return
|
|
3595
|
+
finally:
|
|
3596
|
+
await websocket.close()
|