griip-core-dev 0.5.6.dev25546__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.
- griip_core/__init__.py +0 -0
- griip_core/generated/__init__.py +0 -0
- griip_core/generated/griip_pb2.py +147 -0
- griip_core/generated/griip_pb2.pyi +669 -0
- griip_core/generated/griip_pb2_grpc.py +721 -0
- griip_core/generated/griip_pb2_grpc.pyi +570 -0
- griip_core/hardware/__init__.py +0 -0
- griip_core/hardware/tests/__init__.py +0 -0
- griip_core/hardware/tests/test_vrmcs_registration.py +179 -0
- griip_core/hardware/vrmcs_client.py +1257 -0
- griip_core/hardware/vrmcs_client.pyi +147 -0
- griip_core/hardware/vrmcs_registration.py +129 -0
- griip_core/py.typed +0 -0
- griip_core/robot_drivers.py +6 -0
- griip_core/utils/__init__.py +0 -0
- griip_core/utils/joint_math.py +90 -0
- griip_core/utils/tests/__init__.py +0 -0
- griip_core/utils/tests/test_joint_math.py +116 -0
- griip_core/utils/transforms.py +42 -0
- griip_core_dev-0.5.6.dev25546.dist-info/METADATA +12 -0
- griip_core_dev-0.5.6.dev25546.dist-info/RECORD +22 -0
- griip_core_dev-0.5.6.dev25546.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,669 @@
|
|
|
1
|
+
from google.protobuf.internal import containers as _containers
|
|
2
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
3
|
+
from google.protobuf import descriptor as _descriptor
|
|
4
|
+
from google.protobuf import message as _message
|
|
5
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
6
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
7
|
+
|
|
8
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
9
|
+
|
|
10
|
+
class GraspMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
11
|
+
__slots__ = ()
|
|
12
|
+
GRASP_MODE_EXTERNAL: _ClassVar[GraspMode]
|
|
13
|
+
GRASP_MODE_INTERNAL: _ClassVar[GraspMode]
|
|
14
|
+
GRASP_MODE_EXTERNAL: GraspMode
|
|
15
|
+
GRASP_MODE_INTERNAL: GraspMode
|
|
16
|
+
|
|
17
|
+
class McapRecordingConfig(_message.Message):
|
|
18
|
+
__slots__ = ("enabled", "output_dir", "max_duration_s", "filename_prefix")
|
|
19
|
+
ENABLED_FIELD_NUMBER: _ClassVar[int]
|
|
20
|
+
OUTPUT_DIR_FIELD_NUMBER: _ClassVar[int]
|
|
21
|
+
MAX_DURATION_S_FIELD_NUMBER: _ClassVar[int]
|
|
22
|
+
FILENAME_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
|
23
|
+
enabled: bool
|
|
24
|
+
output_dir: str
|
|
25
|
+
max_duration_s: int
|
|
26
|
+
filename_prefix: str
|
|
27
|
+
def __init__(self, enabled: _Optional[bool] = ..., output_dir: _Optional[str] = ..., max_duration_s: _Optional[int] = ..., filename_prefix: _Optional[str] = ...) -> None: ...
|
|
28
|
+
|
|
29
|
+
class CameraCalibrationInput(_message.Message):
|
|
30
|
+
__slots__ = ("camera_intrinsics", "image_width", "image_height", "frame_id")
|
|
31
|
+
CAMERA_INTRINSICS_FIELD_NUMBER: _ClassVar[int]
|
|
32
|
+
IMAGE_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
33
|
+
IMAGE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
34
|
+
FRAME_ID_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
camera_intrinsics: _containers.RepeatedScalarFieldContainer[float]
|
|
36
|
+
image_width: int
|
|
37
|
+
image_height: int
|
|
38
|
+
frame_id: str
|
|
39
|
+
def __init__(self, camera_intrinsics: _Optional[_Iterable[float]] = ..., image_width: _Optional[int] = ..., image_height: _Optional[int] = ..., frame_id: _Optional[str] = ...) -> None: ...
|
|
40
|
+
|
|
41
|
+
class InitializeRequest(_message.Message):
|
|
42
|
+
__slots__ = ("mocks", "robot", "perception_services", "planner", "grasp_filtering", "part", "home_joint_angles", "collision_checking_line_segments", "simulated_delay_seconds", "perception_mcap", "camera_calibration")
|
|
43
|
+
MOCKS_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
ROBOT_FIELD_NUMBER: _ClassVar[int]
|
|
45
|
+
PERCEPTION_SERVICES_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
PLANNER_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
GRASP_FILTERING_FIELD_NUMBER: _ClassVar[int]
|
|
48
|
+
PART_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
HOME_JOINT_ANGLES_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
COLLISION_CHECKING_LINE_SEGMENTS_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
SIMULATED_DELAY_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
PERCEPTION_MCAP_FIELD_NUMBER: _ClassVar[int]
|
|
53
|
+
CAMERA_CALIBRATION_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
mocks: MockConfig
|
|
55
|
+
robot: RobotConfig
|
|
56
|
+
perception_services: PerceptionServicesConfig
|
|
57
|
+
planner: PlannerConfig
|
|
58
|
+
grasp_filtering: GraspFilteringConfig
|
|
59
|
+
part: PartConfig
|
|
60
|
+
home_joint_angles: JointAngles
|
|
61
|
+
collision_checking_line_segments: _containers.RepeatedCompositeFieldContainer[CollisionLineSegment]
|
|
62
|
+
simulated_delay_seconds: float
|
|
63
|
+
perception_mcap: McapRecordingConfig
|
|
64
|
+
camera_calibration: CameraCalibrationInput
|
|
65
|
+
def __init__(self, mocks: _Optional[_Union[MockConfig, _Mapping]] = ..., robot: _Optional[_Union[RobotConfig, _Mapping]] = ..., perception_services: _Optional[_Union[PerceptionServicesConfig, _Mapping]] = ..., planner: _Optional[_Union[PlannerConfig, _Mapping]] = ..., grasp_filtering: _Optional[_Union[GraspFilteringConfig, _Mapping]] = ..., part: _Optional[_Union[PartConfig, _Mapping]] = ..., home_joint_angles: _Optional[_Union[JointAngles, _Mapping]] = ..., collision_checking_line_segments: _Optional[_Iterable[_Union[CollisionLineSegment, _Mapping]]] = ..., simulated_delay_seconds: _Optional[float] = ..., perception_mcap: _Optional[_Union[McapRecordingConfig, _Mapping]] = ..., camera_calibration: _Optional[_Union[CameraCalibrationInput, _Mapping]] = ...) -> None: ...
|
|
66
|
+
|
|
67
|
+
class InitializeResponse(_message.Message):
|
|
68
|
+
__slots__ = ("status", "error_message", "tcp_to_flange_offset")
|
|
69
|
+
class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
70
|
+
__slots__ = ()
|
|
71
|
+
STATUS_UNSPECIFIED: _ClassVar[InitializeResponse.Status]
|
|
72
|
+
STATUS_OK: _ClassVar[InitializeResponse.Status]
|
|
73
|
+
STATUS_INVALID_CONFIG: _ClassVar[InitializeResponse.Status]
|
|
74
|
+
STATUS_BUILD_FAILED: _ClassVar[InitializeResponse.Status]
|
|
75
|
+
STATUS_UNSPECIFIED: InitializeResponse.Status
|
|
76
|
+
STATUS_OK: InitializeResponse.Status
|
|
77
|
+
STATUS_INVALID_CONFIG: InitializeResponse.Status
|
|
78
|
+
STATUS_BUILD_FAILED: InitializeResponse.Status
|
|
79
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
80
|
+
ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
81
|
+
TCP_TO_FLANGE_OFFSET_FIELD_NUMBER: _ClassVar[int]
|
|
82
|
+
status: InitializeResponse.Status
|
|
83
|
+
error_message: str
|
|
84
|
+
tcp_to_flange_offset: _containers.RepeatedScalarFieldContainer[float]
|
|
85
|
+
def __init__(self, status: _Optional[_Union[InitializeResponse.Status, str]] = ..., error_message: _Optional[str] = ..., tcp_to_flange_offset: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
86
|
+
|
|
87
|
+
class StartPerceptionMcapRecordingRequest(_message.Message):
|
|
88
|
+
__slots__ = ()
|
|
89
|
+
def __init__(self) -> None: ...
|
|
90
|
+
|
|
91
|
+
class StartPerceptionMcapRecordingResponse(_message.Message):
|
|
92
|
+
__slots__ = ("status", "error_message")
|
|
93
|
+
class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
94
|
+
__slots__ = ()
|
|
95
|
+
STATUS_UNSPECIFIED: _ClassVar[StartPerceptionMcapRecordingResponse.Status]
|
|
96
|
+
STATUS_OK: _ClassVar[StartPerceptionMcapRecordingResponse.Status]
|
|
97
|
+
STATUS_NOT_INITIALIZED: _ClassVar[StartPerceptionMcapRecordingResponse.Status]
|
|
98
|
+
STATUS_NOT_CONFIGURED: _ClassVar[StartPerceptionMcapRecordingResponse.Status]
|
|
99
|
+
STATUS_UNSPECIFIED: StartPerceptionMcapRecordingResponse.Status
|
|
100
|
+
STATUS_OK: StartPerceptionMcapRecordingResponse.Status
|
|
101
|
+
STATUS_NOT_INITIALIZED: StartPerceptionMcapRecordingResponse.Status
|
|
102
|
+
STATUS_NOT_CONFIGURED: StartPerceptionMcapRecordingResponse.Status
|
|
103
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
105
|
+
status: StartPerceptionMcapRecordingResponse.Status
|
|
106
|
+
error_message: str
|
|
107
|
+
def __init__(self, status: _Optional[_Union[StartPerceptionMcapRecordingResponse.Status, str]] = ..., error_message: _Optional[str] = ...) -> None: ...
|
|
108
|
+
|
|
109
|
+
class StopPerceptionMcapRecordingRequest(_message.Message):
|
|
110
|
+
__slots__ = ()
|
|
111
|
+
def __init__(self) -> None: ...
|
|
112
|
+
|
|
113
|
+
class StopPerceptionMcapRecordingResponse(_message.Message):
|
|
114
|
+
__slots__ = ("status", "error_message")
|
|
115
|
+
class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
116
|
+
__slots__ = ()
|
|
117
|
+
STATUS_UNSPECIFIED: _ClassVar[StopPerceptionMcapRecordingResponse.Status]
|
|
118
|
+
STATUS_OK: _ClassVar[StopPerceptionMcapRecordingResponse.Status]
|
|
119
|
+
STATUS_UNSPECIFIED: StopPerceptionMcapRecordingResponse.Status
|
|
120
|
+
STATUS_OK: StopPerceptionMcapRecordingResponse.Status
|
|
121
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
122
|
+
ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
123
|
+
status: StopPerceptionMcapRecordingResponse.Status
|
|
124
|
+
error_message: str
|
|
125
|
+
def __init__(self, status: _Optional[_Union[StopPerceptionMcapRecordingResponse.Status, str]] = ..., error_message: _Optional[str] = ...) -> None: ...
|
|
126
|
+
|
|
127
|
+
class MockConfig(_message.Message):
|
|
128
|
+
__slots__ = ("vamp", "vrmcs_robot", "collision_model", "sam", "foundation_pose", "foundation_stereo")
|
|
129
|
+
VAMP_FIELD_NUMBER: _ClassVar[int]
|
|
130
|
+
VRMCS_ROBOT_FIELD_NUMBER: _ClassVar[int]
|
|
131
|
+
COLLISION_MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
132
|
+
SAM_FIELD_NUMBER: _ClassVar[int]
|
|
133
|
+
FOUNDATION_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
134
|
+
FOUNDATION_STEREO_FIELD_NUMBER: _ClassVar[int]
|
|
135
|
+
vamp: bool
|
|
136
|
+
vrmcs_robot: bool
|
|
137
|
+
collision_model: bool
|
|
138
|
+
sam: bool
|
|
139
|
+
foundation_pose: bool
|
|
140
|
+
foundation_stereo: bool
|
|
141
|
+
def __init__(self, vamp: _Optional[bool] = ..., vrmcs_robot: _Optional[bool] = ..., collision_model: _Optional[bool] = ..., sam: _Optional[bool] = ..., foundation_pose: _Optional[bool] = ..., foundation_stereo: _Optional[bool] = ...) -> None: ...
|
|
142
|
+
|
|
143
|
+
class RobotConfig(_message.Message):
|
|
144
|
+
__slots__ = ("model", "driver", "vrmcs_url", "robot_ip", "joint_lower_limits", "joint_upper_limits")
|
|
145
|
+
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
146
|
+
DRIVER_FIELD_NUMBER: _ClassVar[int]
|
|
147
|
+
VRMCS_URL_FIELD_NUMBER: _ClassVar[int]
|
|
148
|
+
ROBOT_IP_FIELD_NUMBER: _ClassVar[int]
|
|
149
|
+
JOINT_LOWER_LIMITS_FIELD_NUMBER: _ClassVar[int]
|
|
150
|
+
JOINT_UPPER_LIMITS_FIELD_NUMBER: _ClassVar[int]
|
|
151
|
+
model: str
|
|
152
|
+
driver: str
|
|
153
|
+
vrmcs_url: str
|
|
154
|
+
robot_ip: str
|
|
155
|
+
joint_lower_limits: _containers.RepeatedScalarFieldContainer[float]
|
|
156
|
+
joint_upper_limits: _containers.RepeatedScalarFieldContainer[float]
|
|
157
|
+
def __init__(self, model: _Optional[str] = ..., driver: _Optional[str] = ..., vrmcs_url: _Optional[str] = ..., robot_ip: _Optional[str] = ..., joint_lower_limits: _Optional[_Iterable[float]] = ..., joint_upper_limits: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
158
|
+
|
|
159
|
+
class PerceptionServicesConfig(_message.Message):
|
|
160
|
+
__slots__ = ("sam_url", "foundation_pose_url", "foundation_stereo_url")
|
|
161
|
+
SAM_URL_FIELD_NUMBER: _ClassVar[int]
|
|
162
|
+
FOUNDATION_POSE_URL_FIELD_NUMBER: _ClassVar[int]
|
|
163
|
+
FOUNDATION_STEREO_URL_FIELD_NUMBER: _ClassVar[int]
|
|
164
|
+
sam_url: str
|
|
165
|
+
foundation_pose_url: str
|
|
166
|
+
foundation_stereo_url: str
|
|
167
|
+
def __init__(self, sam_url: _Optional[str] = ..., foundation_pose_url: _Optional[str] = ..., foundation_stereo_url: _Optional[str] = ...) -> None: ...
|
|
168
|
+
|
|
169
|
+
class PlannerConfig(_message.Message):
|
|
170
|
+
__slots__ = ("planner_name", "max_iterations", "max_samples", "range", "dynamic_domain", "radius", "start_tree_first", "simp_max_iterations", "cuboids_path")
|
|
171
|
+
PLANNER_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
172
|
+
MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
173
|
+
MAX_SAMPLES_FIELD_NUMBER: _ClassVar[int]
|
|
174
|
+
RANGE_FIELD_NUMBER: _ClassVar[int]
|
|
175
|
+
DYNAMIC_DOMAIN_FIELD_NUMBER: _ClassVar[int]
|
|
176
|
+
RADIUS_FIELD_NUMBER: _ClassVar[int]
|
|
177
|
+
START_TREE_FIRST_FIELD_NUMBER: _ClassVar[int]
|
|
178
|
+
SIMP_MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
179
|
+
CUBOIDS_PATH_FIELD_NUMBER: _ClassVar[int]
|
|
180
|
+
planner_name: str
|
|
181
|
+
max_iterations: int
|
|
182
|
+
max_samples: int
|
|
183
|
+
range: float
|
|
184
|
+
dynamic_domain: bool
|
|
185
|
+
radius: float
|
|
186
|
+
start_tree_first: bool
|
|
187
|
+
simp_max_iterations: int
|
|
188
|
+
cuboids_path: str
|
|
189
|
+
def __init__(self, planner_name: _Optional[str] = ..., max_iterations: _Optional[int] = ..., max_samples: _Optional[int] = ..., range: _Optional[float] = ..., dynamic_domain: _Optional[bool] = ..., radius: _Optional[float] = ..., start_tree_first: _Optional[bool] = ..., simp_max_iterations: _Optional[int] = ..., cuboids_path: _Optional[str] = ...) -> None: ...
|
|
190
|
+
|
|
191
|
+
class GraspFilteringConfig(_message.Message):
|
|
192
|
+
__slots__ = ("aggressive_angle_threshold_bin_floor_degrees", "aggressive_angle_threshold_gravity_axis_degrees")
|
|
193
|
+
AGGRESSIVE_ANGLE_THRESHOLD_BIN_FLOOR_DEGREES_FIELD_NUMBER: _ClassVar[int]
|
|
194
|
+
AGGRESSIVE_ANGLE_THRESHOLD_GRAVITY_AXIS_DEGREES_FIELD_NUMBER: _ClassVar[int]
|
|
195
|
+
aggressive_angle_threshold_bin_floor_degrees: float
|
|
196
|
+
aggressive_angle_threshold_gravity_axis_degrees: float
|
|
197
|
+
def __init__(self, aggressive_angle_threshold_bin_floor_degrees: _Optional[float] = ..., aggressive_angle_threshold_gravity_axis_degrees: _Optional[float] = ...) -> None: ...
|
|
198
|
+
|
|
199
|
+
class PartConfig(_message.Message):
|
|
200
|
+
__slots__ = ("part_id", "part_model_id", "tcp_offset", "grasp_definitions_json", "held_object_collision_spheres", "mesh_path", "symmetry")
|
|
201
|
+
PART_ID_FIELD_NUMBER: _ClassVar[int]
|
|
202
|
+
PART_MODEL_ID_FIELD_NUMBER: _ClassVar[int]
|
|
203
|
+
TCP_OFFSET_FIELD_NUMBER: _ClassVar[int]
|
|
204
|
+
GRASP_DEFINITIONS_JSON_FIELD_NUMBER: _ClassVar[int]
|
|
205
|
+
HELD_OBJECT_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
206
|
+
MESH_PATH_FIELD_NUMBER: _ClassVar[int]
|
|
207
|
+
SYMMETRY_FIELD_NUMBER: _ClassVar[int]
|
|
208
|
+
part_id: str
|
|
209
|
+
part_model_id: str
|
|
210
|
+
tcp_offset: _containers.RepeatedScalarFieldContainer[float]
|
|
211
|
+
grasp_definitions_json: str
|
|
212
|
+
held_object_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
213
|
+
mesh_path: str
|
|
214
|
+
symmetry: SymmetryConfig
|
|
215
|
+
def __init__(self, part_id: _Optional[str] = ..., part_model_id: _Optional[str] = ..., tcp_offset: _Optional[_Iterable[float]] = ..., grasp_definitions_json: _Optional[str] = ..., held_object_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ..., mesh_path: _Optional[str] = ..., symmetry: _Optional[_Union[SymmetryConfig, _Mapping]] = ...) -> None: ...
|
|
216
|
+
|
|
217
|
+
class SymmetryConfig(_message.Message):
|
|
218
|
+
__slots__ = ("axes", "expected_orientation")
|
|
219
|
+
AXES_FIELD_NUMBER: _ClassVar[int]
|
|
220
|
+
EXPECTED_ORIENTATION_FIELD_NUMBER: _ClassVar[int]
|
|
221
|
+
axes: _containers.RepeatedCompositeFieldContainer[Vector3]
|
|
222
|
+
expected_orientation: Quaternion
|
|
223
|
+
def __init__(self, axes: _Optional[_Iterable[_Union[Vector3, _Mapping]]] = ..., expected_orientation: _Optional[_Union[Quaternion, _Mapping]] = ...) -> None: ...
|
|
224
|
+
|
|
225
|
+
class CollisionLineSegment(_message.Message):
|
|
226
|
+
__slots__ = ("points",)
|
|
227
|
+
POINTS_FIELD_NUMBER: _ClassVar[int]
|
|
228
|
+
points: _containers.RepeatedScalarFieldContainer[float]
|
|
229
|
+
def __init__(self, points: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
230
|
+
|
|
231
|
+
class ConfigurePlannerRequest(_message.Message):
|
|
232
|
+
__slots__ = ("cuboids_path", "robot_model", "gripper_collision_spheres_path", "object_mesh_path", "tcp_to_camera_transform", "planner_max_iterations", "planner_max_cost", "gripper_collision_spheres")
|
|
233
|
+
CUBOIDS_PATH_FIELD_NUMBER: _ClassVar[int]
|
|
234
|
+
ROBOT_MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
235
|
+
GRIPPER_COLLISION_SPHERES_PATH_FIELD_NUMBER: _ClassVar[int]
|
|
236
|
+
OBJECT_MESH_PATH_FIELD_NUMBER: _ClassVar[int]
|
|
237
|
+
TCP_TO_CAMERA_TRANSFORM_FIELD_NUMBER: _ClassVar[int]
|
|
238
|
+
PLANNER_MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
239
|
+
PLANNER_MAX_COST_FIELD_NUMBER: _ClassVar[int]
|
|
240
|
+
GRIPPER_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
241
|
+
cuboids_path: str
|
|
242
|
+
robot_model: str
|
|
243
|
+
gripper_collision_spheres_path: str
|
|
244
|
+
object_mesh_path: str
|
|
245
|
+
tcp_to_camera_transform: _containers.RepeatedScalarFieldContainer[float]
|
|
246
|
+
planner_max_iterations: int
|
|
247
|
+
planner_max_cost: float
|
|
248
|
+
gripper_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
249
|
+
def __init__(self, cuboids_path: _Optional[str] = ..., robot_model: _Optional[str] = ..., gripper_collision_spheres_path: _Optional[str] = ..., object_mesh_path: _Optional[str] = ..., tcp_to_camera_transform: _Optional[_Iterable[float]] = ..., planner_max_iterations: _Optional[int] = ..., planner_max_cost: _Optional[float] = ..., gripper_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ...) -> None: ...
|
|
250
|
+
|
|
251
|
+
class ConfigurePlannerResponse(_message.Message):
|
|
252
|
+
__slots__ = ("environment_id", "robot_dof", "num_cuboids_loaded")
|
|
253
|
+
ENVIRONMENT_ID_FIELD_NUMBER: _ClassVar[int]
|
|
254
|
+
ROBOT_DOF_FIELD_NUMBER: _ClassVar[int]
|
|
255
|
+
NUM_CUBOIDS_LOADED_FIELD_NUMBER: _ClassVar[int]
|
|
256
|
+
environment_id: str
|
|
257
|
+
robot_dof: int
|
|
258
|
+
num_cuboids_loaded: int
|
|
259
|
+
def __init__(self, environment_id: _Optional[str] = ..., robot_dof: _Optional[int] = ..., num_cuboids_loaded: _Optional[int] = ...) -> None: ...
|
|
260
|
+
|
|
261
|
+
class PlanPathRequest(_message.Message):
|
|
262
|
+
__slots__ = ("start_joint_angles", "target_joint_angles", "target_pose", "linear", "velocity_scaling", "acceleration_scaling", "held_object_collision_spheres", "world_collision_spheres", "additional_point_clouds", "gripper_opening_width", "gripper_collision_spheres_override", "normalize_to_start", "cuboids", "cuboids_replace_scene")
|
|
263
|
+
START_JOINT_ANGLES_FIELD_NUMBER: _ClassVar[int]
|
|
264
|
+
TARGET_JOINT_ANGLES_FIELD_NUMBER: _ClassVar[int]
|
|
265
|
+
TARGET_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
266
|
+
LINEAR_FIELD_NUMBER: _ClassVar[int]
|
|
267
|
+
VELOCITY_SCALING_FIELD_NUMBER: _ClassVar[int]
|
|
268
|
+
ACCELERATION_SCALING_FIELD_NUMBER: _ClassVar[int]
|
|
269
|
+
HELD_OBJECT_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
270
|
+
WORLD_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
271
|
+
ADDITIONAL_POINT_CLOUDS_FIELD_NUMBER: _ClassVar[int]
|
|
272
|
+
GRIPPER_OPENING_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
273
|
+
GRIPPER_COLLISION_SPHERES_OVERRIDE_FIELD_NUMBER: _ClassVar[int]
|
|
274
|
+
NORMALIZE_TO_START_FIELD_NUMBER: _ClassVar[int]
|
|
275
|
+
CUBOIDS_FIELD_NUMBER: _ClassVar[int]
|
|
276
|
+
CUBOIDS_REPLACE_SCENE_FIELD_NUMBER: _ClassVar[int]
|
|
277
|
+
start_joint_angles: _containers.RepeatedScalarFieldContainer[float]
|
|
278
|
+
target_joint_angles: JointAngles
|
|
279
|
+
target_pose: Pose
|
|
280
|
+
linear: bool
|
|
281
|
+
velocity_scaling: float
|
|
282
|
+
acceleration_scaling: float
|
|
283
|
+
held_object_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
284
|
+
world_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
285
|
+
additional_point_clouds: bytes
|
|
286
|
+
gripper_opening_width: float
|
|
287
|
+
gripper_collision_spheres_override: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
288
|
+
normalize_to_start: bool
|
|
289
|
+
cuboids: _containers.RepeatedCompositeFieldContainer[Cuboid]
|
|
290
|
+
cuboids_replace_scene: bool
|
|
291
|
+
def __init__(self, start_joint_angles: _Optional[_Iterable[float]] = ..., target_joint_angles: _Optional[_Union[JointAngles, _Mapping]] = ..., target_pose: _Optional[_Union[Pose, _Mapping]] = ..., linear: _Optional[bool] = ..., velocity_scaling: _Optional[float] = ..., acceleration_scaling: _Optional[float] = ..., held_object_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ..., world_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ..., additional_point_clouds: _Optional[bytes] = ..., gripper_opening_width: _Optional[float] = ..., gripper_collision_spheres_override: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ..., normalize_to_start: _Optional[bool] = ..., cuboids: _Optional[_Iterable[_Union[Cuboid, _Mapping]]] = ..., cuboids_replace_scene: _Optional[bool] = ...) -> None: ...
|
|
292
|
+
|
|
293
|
+
class PlanPathResponse(_message.Message):
|
|
294
|
+
__slots__ = ("success", "failure_reason", "trajectory", "planning_time_ms", "path_cost")
|
|
295
|
+
SUCCESS_FIELD_NUMBER: _ClassVar[int]
|
|
296
|
+
FAILURE_REASON_FIELD_NUMBER: _ClassVar[int]
|
|
297
|
+
TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
|
|
298
|
+
PLANNING_TIME_MS_FIELD_NUMBER: _ClassVar[int]
|
|
299
|
+
PATH_COST_FIELD_NUMBER: _ClassVar[int]
|
|
300
|
+
success: bool
|
|
301
|
+
failure_reason: str
|
|
302
|
+
trajectory: _containers.RepeatedCompositeFieldContainer[JointAngles]
|
|
303
|
+
planning_time_ms: float
|
|
304
|
+
path_cost: float
|
|
305
|
+
def __init__(self, success: _Optional[bool] = ..., failure_reason: _Optional[str] = ..., trajectory: _Optional[_Iterable[_Union[JointAngles, _Mapping]]] = ..., planning_time_ms: _Optional[float] = ..., path_cost: _Optional[float] = ...) -> None: ...
|
|
306
|
+
|
|
307
|
+
class EstimateDepthRequest(_message.Message):
|
|
308
|
+
__slots__ = ("left_image", "right_image", "camera_intrinsics", "stereo_baseline")
|
|
309
|
+
LEFT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
310
|
+
RIGHT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
311
|
+
CAMERA_INTRINSICS_FIELD_NUMBER: _ClassVar[int]
|
|
312
|
+
STEREO_BASELINE_FIELD_NUMBER: _ClassVar[int]
|
|
313
|
+
left_image: bytes
|
|
314
|
+
right_image: bytes
|
|
315
|
+
camera_intrinsics: _containers.RepeatedScalarFieldContainer[float]
|
|
316
|
+
stereo_baseline: float
|
|
317
|
+
def __init__(self, left_image: _Optional[bytes] = ..., right_image: _Optional[bytes] = ..., camera_intrinsics: _Optional[_Iterable[float]] = ..., stereo_baseline: _Optional[float] = ...) -> None: ...
|
|
318
|
+
|
|
319
|
+
class EstimateDepthResponse(_message.Message):
|
|
320
|
+
__slots__ = ("depth_data",)
|
|
321
|
+
DEPTH_DATA_FIELD_NUMBER: _ClassVar[int]
|
|
322
|
+
depth_data: bytes
|
|
323
|
+
def __init__(self, depth_data: _Optional[bytes] = ...) -> None: ...
|
|
324
|
+
|
|
325
|
+
class DetectObjectsRequest(_message.Message):
|
|
326
|
+
__slots__ = ("image_id", "color_image", "depth_image", "camera_intrinsics", "camera_pose_in_world", "bin_walls", "roi")
|
|
327
|
+
IMAGE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
328
|
+
COLOR_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
329
|
+
DEPTH_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
330
|
+
CAMERA_INTRINSICS_FIELD_NUMBER: _ClassVar[int]
|
|
331
|
+
CAMERA_POSE_IN_WORLD_FIELD_NUMBER: _ClassVar[int]
|
|
332
|
+
BIN_WALLS_FIELD_NUMBER: _ClassVar[int]
|
|
333
|
+
ROI_FIELD_NUMBER: _ClassVar[int]
|
|
334
|
+
image_id: str
|
|
335
|
+
color_image: bytes
|
|
336
|
+
depth_image: bytes
|
|
337
|
+
camera_intrinsics: _containers.RepeatedScalarFieldContainer[float]
|
|
338
|
+
camera_pose_in_world: _containers.RepeatedScalarFieldContainer[float]
|
|
339
|
+
bin_walls: _containers.RepeatedCompositeFieldContainer[BinWall]
|
|
340
|
+
roi: _containers.RepeatedScalarFieldContainer[int]
|
|
341
|
+
def __init__(self, image_id: _Optional[str] = ..., color_image: _Optional[bytes] = ..., depth_image: _Optional[bytes] = ..., camera_intrinsics: _Optional[_Iterable[float]] = ..., camera_pose_in_world: _Optional[_Iterable[float]] = ..., bin_walls: _Optional[_Iterable[_Union[BinWall, _Mapping]]] = ..., roi: _Optional[_Iterable[int]] = ...) -> None: ...
|
|
342
|
+
|
|
343
|
+
class DetectObjectsResponse(_message.Message):
|
|
344
|
+
__slots__ = ("detections",)
|
|
345
|
+
DETECTIONS_FIELD_NUMBER: _ClassVar[int]
|
|
346
|
+
detections: _containers.RepeatedCompositeFieldContainer[DetectedObject]
|
|
347
|
+
def __init__(self, detections: _Optional[_Iterable[_Union[DetectedObject, _Mapping]]] = ...) -> None: ...
|
|
348
|
+
|
|
349
|
+
class DetectedObject(_message.Message):
|
|
350
|
+
__slots__ = ("index", "mask_data", "mask_height", "mask_width", "bbox", "score")
|
|
351
|
+
INDEX_FIELD_NUMBER: _ClassVar[int]
|
|
352
|
+
MASK_DATA_FIELD_NUMBER: _ClassVar[int]
|
|
353
|
+
MASK_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
354
|
+
MASK_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
355
|
+
BBOX_FIELD_NUMBER: _ClassVar[int]
|
|
356
|
+
SCORE_FIELD_NUMBER: _ClassVar[int]
|
|
357
|
+
index: int
|
|
358
|
+
mask_data: bytes
|
|
359
|
+
mask_height: int
|
|
360
|
+
mask_width: int
|
|
361
|
+
bbox: _containers.RepeatedScalarFieldContainer[int]
|
|
362
|
+
score: float
|
|
363
|
+
def __init__(self, index: _Optional[int] = ..., mask_data: _Optional[bytes] = ..., mask_height: _Optional[int] = ..., mask_width: _Optional[int] = ..., bbox: _Optional[_Iterable[int]] = ..., score: _Optional[float] = ...) -> None: ...
|
|
364
|
+
|
|
365
|
+
class EstimatePoseRequest(_message.Message):
|
|
366
|
+
__slots__ = ("image_id", "color_image", "depth_image", "object_mask", "mask_height", "mask_width", "camera_intrinsics")
|
|
367
|
+
IMAGE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
368
|
+
COLOR_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
369
|
+
DEPTH_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
370
|
+
OBJECT_MASK_FIELD_NUMBER: _ClassVar[int]
|
|
371
|
+
MASK_HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
372
|
+
MASK_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
373
|
+
CAMERA_INTRINSICS_FIELD_NUMBER: _ClassVar[int]
|
|
374
|
+
image_id: str
|
|
375
|
+
color_image: bytes
|
|
376
|
+
depth_image: bytes
|
|
377
|
+
object_mask: bytes
|
|
378
|
+
mask_height: int
|
|
379
|
+
mask_width: int
|
|
380
|
+
camera_intrinsics: _containers.RepeatedScalarFieldContainer[float]
|
|
381
|
+
def __init__(self, image_id: _Optional[str] = ..., color_image: _Optional[bytes] = ..., depth_image: _Optional[bytes] = ..., object_mask: _Optional[bytes] = ..., mask_height: _Optional[int] = ..., mask_width: _Optional[int] = ..., camera_intrinsics: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
382
|
+
|
|
383
|
+
class EstimatePoseResponse(_message.Message):
|
|
384
|
+
__slots__ = ("success", "pose")
|
|
385
|
+
SUCCESS_FIELD_NUMBER: _ClassVar[int]
|
|
386
|
+
POSE_FIELD_NUMBER: _ClassVar[int]
|
|
387
|
+
success: bool
|
|
388
|
+
pose: Pose
|
|
389
|
+
def __init__(self, success: _Optional[bool] = ..., pose: _Optional[_Union[Pose, _Mapping]] = ...) -> None: ...
|
|
390
|
+
|
|
391
|
+
class ReportSelectedPickRequest(_message.Message):
|
|
392
|
+
__slots__ = ("image_id", "object_pose_in_world", "prep_pose", "capture_timestamp_ns")
|
|
393
|
+
IMAGE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
394
|
+
OBJECT_POSE_IN_WORLD_FIELD_NUMBER: _ClassVar[int]
|
|
395
|
+
PREP_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
396
|
+
CAPTURE_TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
|
|
397
|
+
image_id: str
|
|
398
|
+
object_pose_in_world: _containers.RepeatedScalarFieldContainer[float]
|
|
399
|
+
prep_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
400
|
+
capture_timestamp_ns: int
|
|
401
|
+
def __init__(self, image_id: _Optional[str] = ..., object_pose_in_world: _Optional[_Iterable[float]] = ..., prep_pose: _Optional[_Iterable[float]] = ..., capture_timestamp_ns: _Optional[int] = ...) -> None: ...
|
|
402
|
+
|
|
403
|
+
class ReportSelectedPickResponse(_message.Message):
|
|
404
|
+
__slots__ = ("ok",)
|
|
405
|
+
OK_FIELD_NUMBER: _ClassVar[int]
|
|
406
|
+
ok: bool
|
|
407
|
+
def __init__(self, ok: _Optional[bool] = ...) -> None: ...
|
|
408
|
+
|
|
409
|
+
class GeneratePicksRequest(_message.Message):
|
|
410
|
+
__slots__ = ("image_id", "color_image", "depth_image", "camera_intrinsics", "camera_pose_in_world", "tcp_pose_at_capture", "capture_joint_angles", "bin_walls", "max_detections", "max_picks_per_object", "bin_floor", "roi", "capture_timestamp_ns", "prep_gripper_collision_spheres", "plunge_gripper_collision_spheres", "scoop_gripper_collision_spheres")
|
|
411
|
+
IMAGE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
412
|
+
COLOR_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
413
|
+
DEPTH_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
414
|
+
CAMERA_INTRINSICS_FIELD_NUMBER: _ClassVar[int]
|
|
415
|
+
CAMERA_POSE_IN_WORLD_FIELD_NUMBER: _ClassVar[int]
|
|
416
|
+
TCP_POSE_AT_CAPTURE_FIELD_NUMBER: _ClassVar[int]
|
|
417
|
+
CAPTURE_JOINT_ANGLES_FIELD_NUMBER: _ClassVar[int]
|
|
418
|
+
BIN_WALLS_FIELD_NUMBER: _ClassVar[int]
|
|
419
|
+
MAX_DETECTIONS_FIELD_NUMBER: _ClassVar[int]
|
|
420
|
+
MAX_PICKS_PER_OBJECT_FIELD_NUMBER: _ClassVar[int]
|
|
421
|
+
BIN_FLOOR_FIELD_NUMBER: _ClassVar[int]
|
|
422
|
+
ROI_FIELD_NUMBER: _ClassVar[int]
|
|
423
|
+
CAPTURE_TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
|
|
424
|
+
PREP_GRIPPER_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
425
|
+
PLUNGE_GRIPPER_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
426
|
+
SCOOP_GRIPPER_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
|
|
427
|
+
image_id: str
|
|
428
|
+
color_image: bytes
|
|
429
|
+
depth_image: bytes
|
|
430
|
+
camera_intrinsics: _containers.RepeatedScalarFieldContainer[float]
|
|
431
|
+
camera_pose_in_world: _containers.RepeatedScalarFieldContainer[float]
|
|
432
|
+
tcp_pose_at_capture: _containers.RepeatedScalarFieldContainer[float]
|
|
433
|
+
capture_joint_angles: JointAngles
|
|
434
|
+
bin_walls: _containers.RepeatedCompositeFieldContainer[BinWall]
|
|
435
|
+
max_detections: int
|
|
436
|
+
max_picks_per_object: int
|
|
437
|
+
bin_floor: BinWall
|
|
438
|
+
roi: _containers.RepeatedScalarFieldContainer[int]
|
|
439
|
+
capture_timestamp_ns: int
|
|
440
|
+
prep_gripper_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
441
|
+
plunge_gripper_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
442
|
+
scoop_gripper_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
|
|
443
|
+
def __init__(self, image_id: _Optional[str] = ..., color_image: _Optional[bytes] = ..., depth_image: _Optional[bytes] = ..., camera_intrinsics: _Optional[_Iterable[float]] = ..., camera_pose_in_world: _Optional[_Iterable[float]] = ..., tcp_pose_at_capture: _Optional[_Iterable[float]] = ..., capture_joint_angles: _Optional[_Union[JointAngles, _Mapping]] = ..., bin_walls: _Optional[_Iterable[_Union[BinWall, _Mapping]]] = ..., max_detections: _Optional[int] = ..., max_picks_per_object: _Optional[int] = ..., bin_floor: _Optional[_Union[BinWall, _Mapping]] = ..., roi: _Optional[_Iterable[int]] = ..., capture_timestamp_ns: _Optional[int] = ..., prep_gripper_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ..., plunge_gripper_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ..., scoop_gripper_collision_spheres: _Optional[_Iterable[_Union[CollisionSpheres, _Mapping]]] = ...) -> None: ...
|
|
444
|
+
|
|
445
|
+
class GeneratePicksResponse(_message.Message):
|
|
446
|
+
__slots__ = ("pick_result", "terminal_message")
|
|
447
|
+
PICK_RESULT_FIELD_NUMBER: _ClassVar[int]
|
|
448
|
+
TERMINAL_MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
449
|
+
pick_result: PickResultMessage
|
|
450
|
+
terminal_message: PickTerminalMessage
|
|
451
|
+
def __init__(self, pick_result: _Optional[_Union[PickResultMessage, _Mapping]] = ..., terminal_message: _Optional[_Union[PickTerminalMessage, _Mapping]] = ...) -> None: ...
|
|
452
|
+
|
|
453
|
+
class PickResultMessage(_message.Message):
|
|
454
|
+
__slots__ = ("pick_id", "grasp_name", "object_pose_in_world", "object_in_tcp", "prep_pose", "plunge_pose", "scoop_pose", "prep_trajectory", "priority", "distance_to_home", "retract_move_distance", "grasp_point_pose", "detected_object_index", "parallel_jaw", "suction", "three_finger")
|
|
455
|
+
PICK_ID_FIELD_NUMBER: _ClassVar[int]
|
|
456
|
+
GRASP_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
457
|
+
OBJECT_POSE_IN_WORLD_FIELD_NUMBER: _ClassVar[int]
|
|
458
|
+
OBJECT_IN_TCP_FIELD_NUMBER: _ClassVar[int]
|
|
459
|
+
PREP_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
460
|
+
PLUNGE_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
461
|
+
SCOOP_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
462
|
+
PREP_TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
|
|
463
|
+
PRIORITY_FIELD_NUMBER: _ClassVar[int]
|
|
464
|
+
DISTANCE_TO_HOME_FIELD_NUMBER: _ClassVar[int]
|
|
465
|
+
RETRACT_MOVE_DISTANCE_FIELD_NUMBER: _ClassVar[int]
|
|
466
|
+
GRASP_POINT_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
467
|
+
DETECTED_OBJECT_INDEX_FIELD_NUMBER: _ClassVar[int]
|
|
468
|
+
PARALLEL_JAW_FIELD_NUMBER: _ClassVar[int]
|
|
469
|
+
SUCTION_FIELD_NUMBER: _ClassVar[int]
|
|
470
|
+
THREE_FINGER_FIELD_NUMBER: _ClassVar[int]
|
|
471
|
+
pick_id: int
|
|
472
|
+
grasp_name: str
|
|
473
|
+
object_pose_in_world: _containers.RepeatedScalarFieldContainer[float]
|
|
474
|
+
object_in_tcp: _containers.RepeatedScalarFieldContainer[float]
|
|
475
|
+
prep_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
476
|
+
plunge_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
477
|
+
scoop_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
478
|
+
prep_trajectory: _containers.RepeatedCompositeFieldContainer[JointAngles]
|
|
479
|
+
priority: int
|
|
480
|
+
distance_to_home: float
|
|
481
|
+
retract_move_distance: float
|
|
482
|
+
grasp_point_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
483
|
+
detected_object_index: int
|
|
484
|
+
parallel_jaw: ParallelJawParams
|
|
485
|
+
suction: SuctionParams
|
|
486
|
+
three_finger: ThreeFingerParams
|
|
487
|
+
def __init__(self, pick_id: _Optional[int] = ..., grasp_name: _Optional[str] = ..., object_pose_in_world: _Optional[_Iterable[float]] = ..., object_in_tcp: _Optional[_Iterable[float]] = ..., prep_pose: _Optional[_Iterable[float]] = ..., plunge_pose: _Optional[_Iterable[float]] = ..., scoop_pose: _Optional[_Iterable[float]] = ..., prep_trajectory: _Optional[_Iterable[_Union[JointAngles, _Mapping]]] = ..., priority: _Optional[int] = ..., distance_to_home: _Optional[float] = ..., retract_move_distance: _Optional[float] = ..., grasp_point_pose: _Optional[_Iterable[float]] = ..., detected_object_index: _Optional[int] = ..., parallel_jaw: _Optional[_Union[ParallelJawParams, _Mapping]] = ..., suction: _Optional[_Union[SuctionParams, _Mapping]] = ..., three_finger: _Optional[_Union[ThreeFingerParams, _Mapping]] = ...) -> None: ...
|
|
488
|
+
|
|
489
|
+
class ScoopMotionParams(_message.Message):
|
|
490
|
+
__slots__ = ("plunge_velocity", "scoop_velocity", "force_torque_sensor_threshold")
|
|
491
|
+
PLUNGE_VELOCITY_FIELD_NUMBER: _ClassVar[int]
|
|
492
|
+
SCOOP_VELOCITY_FIELD_NUMBER: _ClassVar[int]
|
|
493
|
+
FORCE_TORQUE_SENSOR_THRESHOLD_FIELD_NUMBER: _ClassVar[int]
|
|
494
|
+
plunge_velocity: float
|
|
495
|
+
scoop_velocity: float
|
|
496
|
+
force_torque_sensor_threshold: float
|
|
497
|
+
def __init__(self, plunge_velocity: _Optional[float] = ..., scoop_velocity: _Optional[float] = ..., force_torque_sensor_threshold: _Optional[float] = ...) -> None: ...
|
|
498
|
+
|
|
499
|
+
class ParallelJawParams(_message.Message):
|
|
500
|
+
__slots__ = ("mode", "prep_width", "engaged_width", "grip_force", "grip_check_min_width", "grip_check_max_width", "scoop_motion")
|
|
501
|
+
MODE_FIELD_NUMBER: _ClassVar[int]
|
|
502
|
+
PREP_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
503
|
+
ENGAGED_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
504
|
+
GRIP_FORCE_FIELD_NUMBER: _ClassVar[int]
|
|
505
|
+
GRIP_CHECK_MIN_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
506
|
+
GRIP_CHECK_MAX_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
507
|
+
SCOOP_MOTION_FIELD_NUMBER: _ClassVar[int]
|
|
508
|
+
mode: GraspMode
|
|
509
|
+
prep_width: int
|
|
510
|
+
engaged_width: int
|
|
511
|
+
grip_force: int
|
|
512
|
+
grip_check_min_width: int
|
|
513
|
+
grip_check_max_width: int
|
|
514
|
+
scoop_motion: ScoopMotionParams
|
|
515
|
+
def __init__(self, mode: _Optional[_Union[GraspMode, str]] = ..., prep_width: _Optional[int] = ..., engaged_width: _Optional[int] = ..., grip_force: _Optional[int] = ..., grip_check_min_width: _Optional[int] = ..., grip_check_max_width: _Optional[int] = ..., scoop_motion: _Optional[_Union[ScoopMotionParams, _Mapping]] = ...) -> None: ...
|
|
516
|
+
|
|
517
|
+
class SuctionParams(_message.Message):
|
|
518
|
+
__slots__ = ("vacuum_engage_threshold", "scoop_motion")
|
|
519
|
+
VACUUM_ENGAGE_THRESHOLD_FIELD_NUMBER: _ClassVar[int]
|
|
520
|
+
SCOOP_MOTION_FIELD_NUMBER: _ClassVar[int]
|
|
521
|
+
vacuum_engage_threshold: float
|
|
522
|
+
scoop_motion: ScoopMotionParams
|
|
523
|
+
def __init__(self, vacuum_engage_threshold: _Optional[float] = ..., scoop_motion: _Optional[_Union[ScoopMotionParams, _Mapping]] = ...) -> None: ...
|
|
524
|
+
|
|
525
|
+
class ThreeFingerParams(_message.Message):
|
|
526
|
+
__slots__ = ("mode", "grip_force", "scoop_motion", "prep_io_state", "engaged_io_state")
|
|
527
|
+
MODE_FIELD_NUMBER: _ClassVar[int]
|
|
528
|
+
GRIP_FORCE_FIELD_NUMBER: _ClassVar[int]
|
|
529
|
+
SCOOP_MOTION_FIELD_NUMBER: _ClassVar[int]
|
|
530
|
+
PREP_IO_STATE_FIELD_NUMBER: _ClassVar[int]
|
|
531
|
+
ENGAGED_IO_STATE_FIELD_NUMBER: _ClassVar[int]
|
|
532
|
+
mode: GraspMode
|
|
533
|
+
grip_force: int
|
|
534
|
+
scoop_motion: ScoopMotionParams
|
|
535
|
+
prep_io_state: int
|
|
536
|
+
engaged_io_state: int
|
|
537
|
+
def __init__(self, mode: _Optional[_Union[GraspMode, str]] = ..., grip_force: _Optional[int] = ..., scoop_motion: _Optional[_Union[ScoopMotionParams, _Mapping]] = ..., prep_io_state: _Optional[int] = ..., engaged_io_state: _Optional[int] = ...) -> None: ...
|
|
538
|
+
|
|
539
|
+
class PickTerminalMessage(_message.Message):
|
|
540
|
+
__slots__ = ("no_parts_detected", "total_picks_generated", "has_only_ungraspable_objects")
|
|
541
|
+
NO_PARTS_DETECTED_FIELD_NUMBER: _ClassVar[int]
|
|
542
|
+
TOTAL_PICKS_GENERATED_FIELD_NUMBER: _ClassVar[int]
|
|
543
|
+
HAS_ONLY_UNGRASPABLE_OBJECTS_FIELD_NUMBER: _ClassVar[int]
|
|
544
|
+
no_parts_detected: bool
|
|
545
|
+
total_picks_generated: int
|
|
546
|
+
has_only_ungraspable_objects: bool
|
|
547
|
+
def __init__(self, no_parts_detected: _Optional[bool] = ..., total_picks_generated: _Optional[int] = ..., has_only_ungraspable_objects: _Optional[bool] = ...) -> None: ...
|
|
548
|
+
|
|
549
|
+
class GeneratePlacementRequest(_message.Message):
|
|
550
|
+
__slots__ = ("image_id", "left_png", "depth_png", "camera_intrinsics", "tcp_to_camera", "object_in_tcp", "target_pose", "planning_start_joint_angles", "max_object_diameter", "axis_in_object_frame", "number_of_rotations", "enable_in_hand_pose_estimation")
|
|
551
|
+
IMAGE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
552
|
+
LEFT_PNG_FIELD_NUMBER: _ClassVar[int]
|
|
553
|
+
DEPTH_PNG_FIELD_NUMBER: _ClassVar[int]
|
|
554
|
+
CAMERA_INTRINSICS_FIELD_NUMBER: _ClassVar[int]
|
|
555
|
+
TCP_TO_CAMERA_FIELD_NUMBER: _ClassVar[int]
|
|
556
|
+
OBJECT_IN_TCP_FIELD_NUMBER: _ClassVar[int]
|
|
557
|
+
TARGET_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
558
|
+
PLANNING_START_JOINT_ANGLES_FIELD_NUMBER: _ClassVar[int]
|
|
559
|
+
MAX_OBJECT_DIAMETER_FIELD_NUMBER: _ClassVar[int]
|
|
560
|
+
AXIS_IN_OBJECT_FRAME_FIELD_NUMBER: _ClassVar[int]
|
|
561
|
+
NUMBER_OF_ROTATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
562
|
+
ENABLE_IN_HAND_POSE_ESTIMATION_FIELD_NUMBER: _ClassVar[int]
|
|
563
|
+
image_id: str
|
|
564
|
+
left_png: bytes
|
|
565
|
+
depth_png: bytes
|
|
566
|
+
camera_intrinsics: _containers.RepeatedScalarFieldContainer[float]
|
|
567
|
+
tcp_to_camera: _containers.RepeatedScalarFieldContainer[float]
|
|
568
|
+
object_in_tcp: _containers.RepeatedScalarFieldContainer[float]
|
|
569
|
+
target_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
570
|
+
planning_start_joint_angles: _containers.RepeatedScalarFieldContainer[float]
|
|
571
|
+
max_object_diameter: float
|
|
572
|
+
axis_in_object_frame: _containers.RepeatedScalarFieldContainer[float]
|
|
573
|
+
number_of_rotations: int
|
|
574
|
+
enable_in_hand_pose_estimation: bool
|
|
575
|
+
def __init__(self, image_id: _Optional[str] = ..., left_png: _Optional[bytes] = ..., depth_png: _Optional[bytes] = ..., camera_intrinsics: _Optional[_Iterable[float]] = ..., tcp_to_camera: _Optional[_Iterable[float]] = ..., object_in_tcp: _Optional[_Iterable[float]] = ..., target_pose: _Optional[_Iterable[float]] = ..., planning_start_joint_angles: _Optional[_Iterable[float]] = ..., max_object_diameter: _Optional[float] = ..., axis_in_object_frame: _Optional[_Iterable[float]] = ..., number_of_rotations: _Optional[int] = ..., enable_in_hand_pose_estimation: _Optional[bool] = ...) -> None: ...
|
|
576
|
+
|
|
577
|
+
class GeneratePlacementResponse(_message.Message):
|
|
578
|
+
__slots__ = ("success", "failure_reason", "refined_object_in_tcp", "ik_solutions")
|
|
579
|
+
SUCCESS_FIELD_NUMBER: _ClassVar[int]
|
|
580
|
+
FAILURE_REASON_FIELD_NUMBER: _ClassVar[int]
|
|
581
|
+
REFINED_OBJECT_IN_TCP_FIELD_NUMBER: _ClassVar[int]
|
|
582
|
+
IK_SOLUTIONS_FIELD_NUMBER: _ClassVar[int]
|
|
583
|
+
success: bool
|
|
584
|
+
failure_reason: str
|
|
585
|
+
refined_object_in_tcp: _containers.RepeatedScalarFieldContainer[float]
|
|
586
|
+
ik_solutions: _containers.RepeatedCompositeFieldContainer[PlacementIkSolution]
|
|
587
|
+
def __init__(self, success: _Optional[bool] = ..., failure_reason: _Optional[str] = ..., refined_object_in_tcp: _Optional[_Iterable[float]] = ..., ik_solutions: _Optional[_Iterable[_Union[PlacementIkSolution, _Mapping]]] = ...) -> None: ...
|
|
588
|
+
|
|
589
|
+
class PlacementIkSolution(_message.Message):
|
|
590
|
+
__slots__ = ("joint_angles", "target_object_pose_in_world", "distance_to_start")
|
|
591
|
+
JOINT_ANGLES_FIELD_NUMBER: _ClassVar[int]
|
|
592
|
+
TARGET_OBJECT_POSE_IN_WORLD_FIELD_NUMBER: _ClassVar[int]
|
|
593
|
+
DISTANCE_TO_START_FIELD_NUMBER: _ClassVar[int]
|
|
594
|
+
joint_angles: _containers.RepeatedScalarFieldContainer[float]
|
|
595
|
+
target_object_pose_in_world: _containers.RepeatedScalarFieldContainer[float]
|
|
596
|
+
distance_to_start: float
|
|
597
|
+
def __init__(self, joint_angles: _Optional[_Iterable[float]] = ..., target_object_pose_in_world: _Optional[_Iterable[float]] = ..., distance_to_start: _Optional[float] = ...) -> None: ...
|
|
598
|
+
|
|
599
|
+
class JointAngles(_message.Message):
|
|
600
|
+
__slots__ = ("values",)
|
|
601
|
+
VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
602
|
+
values: _containers.RepeatedScalarFieldContainer[float]
|
|
603
|
+
def __init__(self, values: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
604
|
+
|
|
605
|
+
class Quaternion(_message.Message):
|
|
606
|
+
__slots__ = ("w", "x", "y", "z")
|
|
607
|
+
W_FIELD_NUMBER: _ClassVar[int]
|
|
608
|
+
X_FIELD_NUMBER: _ClassVar[int]
|
|
609
|
+
Y_FIELD_NUMBER: _ClassVar[int]
|
|
610
|
+
Z_FIELD_NUMBER: _ClassVar[int]
|
|
611
|
+
w: float
|
|
612
|
+
x: float
|
|
613
|
+
y: float
|
|
614
|
+
z: float
|
|
615
|
+
def __init__(self, w: _Optional[float] = ..., x: _Optional[float] = ..., y: _Optional[float] = ..., z: _Optional[float] = ...) -> None: ...
|
|
616
|
+
|
|
617
|
+
class Vector3(_message.Message):
|
|
618
|
+
__slots__ = ("x", "y", "z")
|
|
619
|
+
X_FIELD_NUMBER: _ClassVar[int]
|
|
620
|
+
Y_FIELD_NUMBER: _ClassVar[int]
|
|
621
|
+
Z_FIELD_NUMBER: _ClassVar[int]
|
|
622
|
+
x: float
|
|
623
|
+
y: float
|
|
624
|
+
z: float
|
|
625
|
+
def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., z: _Optional[float] = ...) -> None: ...
|
|
626
|
+
|
|
627
|
+
class Pose(_message.Message):
|
|
628
|
+
__slots__ = ("position", "orientation")
|
|
629
|
+
POSITION_FIELD_NUMBER: _ClassVar[int]
|
|
630
|
+
ORIENTATION_FIELD_NUMBER: _ClassVar[int]
|
|
631
|
+
position: Vector3
|
|
632
|
+
orientation: Quaternion
|
|
633
|
+
def __init__(self, position: _Optional[_Union[Vector3, _Mapping]] = ..., orientation: _Optional[_Union[Quaternion, _Mapping]] = ...) -> None: ...
|
|
634
|
+
|
|
635
|
+
class CollisionSpheres(_message.Message):
|
|
636
|
+
__slots__ = ("center", "radius")
|
|
637
|
+
CENTER_FIELD_NUMBER: _ClassVar[int]
|
|
638
|
+
RADIUS_FIELD_NUMBER: _ClassVar[int]
|
|
639
|
+
center: Vector3
|
|
640
|
+
radius: float
|
|
641
|
+
def __init__(self, center: _Optional[_Union[Vector3, _Mapping]] = ..., radius: _Optional[float] = ...) -> None: ...
|
|
642
|
+
|
|
643
|
+
class BinWall(_message.Message):
|
|
644
|
+
__slots__ = ("name", "width_x", "width_y", "width_z", "pose")
|
|
645
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
646
|
+
WIDTH_X_FIELD_NUMBER: _ClassVar[int]
|
|
647
|
+
WIDTH_Y_FIELD_NUMBER: _ClassVar[int]
|
|
648
|
+
WIDTH_Z_FIELD_NUMBER: _ClassVar[int]
|
|
649
|
+
POSE_FIELD_NUMBER: _ClassVar[int]
|
|
650
|
+
name: str
|
|
651
|
+
width_x: float
|
|
652
|
+
width_y: float
|
|
653
|
+
width_z: float
|
|
654
|
+
pose: _containers.RepeatedScalarFieldContainer[float]
|
|
655
|
+
def __init__(self, name: _Optional[str] = ..., width_x: _Optional[float] = ..., width_y: _Optional[float] = ..., width_z: _Optional[float] = ..., pose: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
656
|
+
|
|
657
|
+
class Cuboid(_message.Message):
|
|
658
|
+
__slots__ = ("name", "wx", "wy", "wz", "pose")
|
|
659
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
660
|
+
WX_FIELD_NUMBER: _ClassVar[int]
|
|
661
|
+
WY_FIELD_NUMBER: _ClassVar[int]
|
|
662
|
+
WZ_FIELD_NUMBER: _ClassVar[int]
|
|
663
|
+
POSE_FIELD_NUMBER: _ClassVar[int]
|
|
664
|
+
name: str
|
|
665
|
+
wx: float
|
|
666
|
+
wy: float
|
|
667
|
+
wz: float
|
|
668
|
+
pose: _containers.RepeatedScalarFieldContainer[float]
|
|
669
|
+
def __init__(self, name: _Optional[str] = ..., wx: _Optional[float] = ..., wy: _Optional[float] = ..., wz: _Optional[float] = ..., pose: _Optional[_Iterable[float]] = ...) -> None: ...
|