griip-core-dev 0.5.6.dev26079__tar.gz → 0.6.0.dev26142__tar.gz

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.
Files changed (37) hide show
  1. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/.coverage +0 -0
  2. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/PKG-INFO +2 -2
  3. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/README.md +1 -1
  4. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/proto/griip.proto +29 -0
  5. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/pyproject.toml +2 -2
  6. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/scripts/generate_proto.py +1 -1
  7. griip_core_dev-0.6.0.dev26142/src/griip_core/contract.py +14 -0
  8. griip_core_dev-0.6.0.dev26142/src/griip_core/generated/griip_pb2.py +151 -0
  9. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/generated/griip_pb2.pyi +44 -10
  10. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/generated/griip_pb2_grpc.py +44 -0
  11. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/generated/griip_pb2_grpc.pyi +40 -1
  12. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/hardware/vrmcs_client.py +2 -2
  13. griip_core_dev-0.6.0.dev26142/src/griip_core/part_store/__init__.py +71 -0
  14. griip_core_dev-0.6.0.dev26142/src/griip_core/part_store/layout.py +71 -0
  15. griip_core_dev-0.6.0.dev26142/src/griip_core/part_store/store.py +110 -0
  16. griip_core_dev-0.6.0.dev26142/src/griip_core/part_store/tests/test_store.py +115 -0
  17. griip_core_dev-0.6.0.dev26142/src/griip_core/perception/__init__.py +1 -0
  18. griip_core_dev-0.6.0.dev26142/src/griip_core/perception/foundation_stereo_client.py +76 -0
  19. griip_core_dev-0.6.0.dev26142/src/griip_core/tests/test_contract.py +9 -0
  20. griip_core_dev-0.6.0.dev26142/src/griip_core/utils/__init__.py +0 -0
  21. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/utils/joint_math.py +1 -3
  22. griip_core_dev-0.6.0.dev26142/src/griip_core/utils/tests/__init__.py +0 -0
  23. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/utils/transforms.py +2 -2
  24. griip_core_dev-0.5.6.dev26079/src/griip_core/generated/griip_pb2.py +0 -147
  25. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/project.json +0 -0
  26. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/__init__.py +0 -0
  27. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/generated/__init__.py +0 -0
  28. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/hardware/__init__.py +0 -0
  29. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/hardware/tests/__init__.py +0 -0
  30. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/hardware/tests/test_vrmcs_registration.py +0 -0
  31. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/hardware/vrmcs_client.pyi +0 -0
  32. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/hardware/vrmcs_registration.py +0 -0
  33. {griip_core_dev-0.5.6.dev26079/src/griip_core/utils → griip_core_dev-0.6.0.dev26142/src/griip_core/part_store/tests}/__init__.py +0 -0
  34. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/py.typed +0 -0
  35. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/robot_drivers.py +0 -0
  36. {griip_core_dev-0.5.6.dev26079/src/griip_core/utils → griip_core_dev-0.6.0.dev26142/src/griip_core}/tests/__init__.py +0 -0
  37. {griip_core_dev-0.5.6.dev26079 → griip_core_dev-0.6.0.dev26142}/src/griip_core/utils/tests/test_joint_math.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: griip-core-dev
3
- Version: 0.5.6.dev26079
4
- Summary: Dev build of griip-core from commit af7595040 (PR #6192). Not a release.
3
+ Version: 0.6.0.dev26142
4
+ Summary: Dev build of griip-core from commit f0cbea1ad (PR #6530). Not a release.
5
5
  Author: VentionCo
6
6
  License: Proprietary
7
7
  Requires-Python: <3.13,>=3.10
@@ -2,7 +2,7 @@
2
2
 
3
3
  Shared foundation for GRIIP, by [Vention](https://vention.com).
4
4
 
5
- Holds the code that both the `mmai-griip-api` server and the `griip-sdk` client
5
+ Holds the code that both the `griip-server` server and the `griip-sdk` client
6
6
  need. The SDK talks to the API over gRPC, so neither can depend on the other.
7
7
  Code both sides need lives here.
8
8
 
@@ -19,6 +19,22 @@ service GriipApiAdmin {
19
19
  rpc Initialize (InitializeRequest) returns (InitializeResponse);
20
20
  rpc StartPerceptionMcapRecording (StartPerceptionMcapRecordingRequest) returns (StartPerceptionMcapRecordingResponse);
21
21
  rpc StopPerceptionMcapRecording (StopPerceptionMcapRecordingRequest) returns (StopPerceptionMcapRecordingResponse);
22
+ // Callable before Initialize.
23
+ rpc GetServerInfo (GetServerInfoRequest) returns (GetServerInfoResponse);
24
+ }
25
+
26
+ message GetServerInfoRequest {}
27
+
28
+ message GetServerInfoResponse {
29
+ // Package version of the running griip-server.
30
+ string version = 1;
31
+ // Hash of this proto's compiled descriptor; differs between mismatched client and server.
32
+ string proto_revision = 2;
33
+ bool initialized = 3;
34
+ string part_id = 4;
35
+ // Id SAM and FoundationPose were initialized with.
36
+ string part_model_id = 5;
37
+ string perception_version = 6;
22
38
  }
23
39
 
24
40
  message McapRecordingConfig {
@@ -107,6 +123,8 @@ message PerceptionServicesConfig {
107
123
  string sam_url = 1;
108
124
  string foundation_pose_url = 2;
109
125
  string foundation_stereo_url = 3;
126
+ // mmai-parts on the accelerator: receives a part's perception bundle at Initialize.
127
+ string parts_url = 4;
110
128
  }
111
129
 
112
130
  message PlannerConfig {
@@ -121,7 +139,9 @@ message PlannerConfig {
121
139
  // Path to the static collision-cuboids JSON (the VAMP planning environment).
122
140
  // Also sent via ConfigurePlanner; carried here so the perception MCAP logger
123
141
  // can visualize the environment cuboids at recording start.
142
+ // Read only when `cuboids` is empty.
124
143
  string cuboids_path = 9;
144
+ repeated Cuboid cuboids = 10;
125
145
  }
126
146
 
127
147
  message GraspFilteringConfig {
@@ -146,6 +166,12 @@ message PartConfig {
146
166
  // symmetry transforms so a symmetric part resolves to one canonical pose.
147
167
  // Unset = no symmetry (FoundationPose runs as before).
148
168
  SymmetryConfig symmetry = 7;
169
+ // The part's perception folder (part_config.yaml, mesh, prompt) as a zip. When
170
+ // set, the server uploads it to mmai-parts (perception_services.parts_url) as
171
+ // <part_id>__<perception_version> and initializes SAM and FoundationPose with
172
+ // that id instead of part_model_id. Unset = the part is already there.
173
+ bytes perception_bundle = 8;
174
+ string perception_version = 9;
149
175
  }
150
176
 
151
177
  // Object symmetry used to canonicalize the estimated pose to one repeatable
@@ -181,6 +207,7 @@ message ConfigurePlannerRequest {
181
207
  optional int32 planner_max_iterations = 6;
182
208
  optional double planner_max_cost = 7;
183
209
  repeated CollisionSpheres gripper_collision_spheres = 8;
210
+ repeated Cuboid cuboids = 9;
184
211
  }
185
212
 
186
213
  message ConfigurePlannerResponse {
@@ -235,6 +262,8 @@ message EstimateDepthRequest {
235
262
 
236
263
  message EstimateDepthResponse {
237
264
  bytes depth_data = 1;
265
+ int32 depth_height = 2;
266
+ int32 depth_width = 3;
238
267
  }
239
268
 
240
269
  message DetectObjectsRequest {
@@ -2,8 +2,8 @@ dependency-groups = { }
2
2
 
3
3
  [project]
4
4
  name = "griip-core-dev"
5
- version = "0.5.6.dev26079"
6
- description = "Dev build of griip-core from commit af7595040 (PR #6192). Not a release."
5
+ version = "0.6.0.dev26142"
6
+ description = "Dev build of griip-core from commit f0cbea1ad (PR #6530). Not a release."
7
7
  requires-python = ">=3.10,<3.13"
8
8
  dependencies = [
9
9
  "vention-grpc-py-sdk>=0.0.72",
@@ -1,7 +1,7 @@
1
1
  """Generate Python gRPC stubs from proto/griip.proto.
2
2
 
3
3
  griip-core is the single source of truth for the 'griip' wire contract. Both
4
- the mmai-griip-api server and the griip-sdk client depend on griip-core and
4
+ the griip-server server and the griip-sdk client depend on griip-core and
5
5
  import these stubs, so only one descriptor set is ever registered.
6
6
 
7
7
  The generated stubs are committed so the published griip-core wheel ships them
@@ -0,0 +1,14 @@
1
+ """Identify the griip proto contract a process was built against."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import hashlib
6
+
7
+ from griip_core.generated import griip_pb2
8
+
9
+ PROTO_REVISION_LENGTH = 12
10
+
11
+
12
+ def proto_revision() -> str:
13
+ """Hash of the compiled griip proto: equal on client and server exactly when their contracts are."""
14
+ return hashlib.sha256(griip_pb2.DESCRIPTOR.serialized_pb).hexdigest()[:PROTO_REVISION_LENGTH]
@@ -0,0 +1,151 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: griip.proto
5
+ # Protobuf Python Version: 6.33.5
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 33,
16
+ 5,
17
+ '',
18
+ 'griip.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bgriip.proto\x12\x05griip\"\x16\n\x14GetServerInfoRequest\"\x99\x01\n\x15GetServerInfoResponse\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x16\n\x0eproto_revision\x18\x02 \x01(\t\x12\x13\n\x0binitialized\x18\x03 \x01(\x08\x12\x0f\n\x07part_id\x18\x04 \x01(\t\x12\x15\n\rpart_model_id\x18\x05 \x01(\t\x12\x1a\n\x12perception_version\x18\x06 \x01(\t\"k\n\x13McapRecordingConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x12\n\noutput_dir\x18\x02 \x01(\t\x12\x16\n\x0emax_duration_s\x18\x03 \x01(\x05\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\"p\n\x16\x43\x61meraCalibrationInput\x12\x19\n\x11\x63\x61mera_intrinsics\x18\x01 \x03(\x01\x12\x13\n\x0bimage_width\x18\x02 \x01(\x05\x12\x14\n\x0cimage_height\x18\x03 \x01(\x05\x12\x10\n\x08\x66rame_id\x18\x04 \x01(\t\"\x9b\x04\n\x11InitializeRequest\x12 \n\x05mocks\x18\x01 \x01(\x0b\x32\x11.griip.MockConfig\x12!\n\x05robot\x18\x02 \x01(\x0b\x32\x12.griip.RobotConfig\x12<\n\x13perception_services\x18\x03 \x01(\x0b\x32\x1f.griip.PerceptionServicesConfig\x12%\n\x07planner\x18\x04 \x01(\x0b\x32\x14.griip.PlannerConfig\x12\x34\n\x0fgrasp_filtering\x18\x05 \x01(\x0b\x32\x1b.griip.GraspFilteringConfig\x12\x1f\n\x04part\x18\x06 \x01(\x0b\x32\x11.griip.PartConfig\x12-\n\x11home_joint_angles\x18\x07 \x01(\x0b\x32\x12.griip.JointAngles\x12\x45\n collision_checking_line_segments\x18\x08 \x03(\x0b\x32\x1b.griip.CollisionLineSegment\x12\x1f\n\x17simulated_delay_seconds\x18\t \x01(\x01\x12\x33\n\x0fperception_mcap\x18\n \x01(\x0b\x32\x1a.griip.McapRecordingConfig\x12\x39\n\x12\x63\x61mera_calibration\x18\x0b \x01(\x0b\x32\x1d.griip.CameraCalibrationInput\"\xe0\x01\n\x12InitializeResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .griip.InitializeResponse.Status\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12\x1c\n\x14tcp_to_flange_offset\x18\x03 \x03(\x01\"c\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\r\n\tSTATUS_OK\x10\x01\x12\x19\n\x15STATUS_INVALID_CONFIG\x10\x02\x12\x17\n\x13STATUS_BUILD_FAILED\x10\x03\"%\n#StartPerceptionMcapRecordingRequest\"\xe9\x01\n$StartPerceptionMcapRecordingResponse\x12\x42\n\x06status\x18\x01 \x01(\x0e\x32\x32.griip.StartPerceptionMcapRecordingResponse.Status\x12\x15\n\rerror_message\x18\x02 \x01(\t\"f\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\r\n\tSTATUS_OK\x10\x01\x12\x1a\n\x16STATUS_NOT_INITIALIZED\x10\x02\x12\x19\n\x15STATUS_NOT_CONFIGURED\x10\x03\"$\n\"StopPerceptionMcapRecordingRequest\"\xb0\x01\n#StopPerceptionMcapRecordingResponse\x12\x41\n\x06status\x18\x01 \x01(\x0e\x32\x31.griip.StopPerceptionMcapRecordingResponse.Status\x12\x15\n\rerror_message\x18\x02 \x01(\t\"/\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\r\n\tSTATUS_OK\x10\x01\"\x89\x01\n\nMockConfig\x12\x0c\n\x04vamp\x18\x01 \x01(\x08\x12\x13\n\x0bvrmcs_robot\x18\x02 \x01(\x08\x12\x17\n\x0f\x63ollision_model\x18\x03 \x01(\x08\x12\x0b\n\x03sam\x18\x04 \x01(\x08\x12\x17\n\x0f\x66oundation_pose\x18\x05 \x01(\x08\x12\x19\n\x11\x66oundation_stereo\x18\x06 \x01(\x08\"\x89\x01\n\x0bRobotConfig\x12\r\n\x05model\x18\x01 \x01(\t\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\x11\n\tvrmcs_url\x18\x03 \x01(\t\x12\x10\n\x08robot_ip\x18\x04 \x01(\t\x12\x1a\n\x12joint_lower_limits\x18\x05 \x03(\x01\x12\x1a\n\x12joint_upper_limits\x18\x06 \x03(\x01\"z\n\x18PerceptionServicesConfig\x12\x0f\n\x07sam_url\x18\x01 \x01(\t\x12\x1b\n\x13\x66oundation_pose_url\x18\x02 \x01(\t\x12\x1d\n\x15\x66oundation_stereo_url\x18\x03 \x01(\t\x12\x11\n\tparts_url\x18\x04 \x01(\t\"\xf6\x01\n\rPlannerConfig\x12\x14\n\x0cplanner_name\x18\x01 \x01(\t\x12\x16\n\x0emax_iterations\x18\x02 \x01(\x05\x12\x13\n\x0bmax_samples\x18\x03 \x01(\x05\x12\r\n\x05range\x18\x04 \x01(\x01\x12\x16\n\x0e\x64ynamic_domain\x18\x05 \x01(\x08\x12\x0e\n\x06radius\x18\x06 \x01(\x01\x12\x18\n\x10start_tree_first\x18\x07 \x01(\x08\x12\x1b\n\x13simp_max_iterations\x18\x08 \x01(\x05\x12\x14\n\x0c\x63uboids_path\x18\t \x01(\t\x12\x1e\n\x07\x63uboids\x18\n \x03(\x0b\x32\r.griip.Cuboid\"\x85\x01\n\x14GraspFilteringConfig\x12\x34\n,aggressive_angle_threshold_bin_floor_degrees\x18\x01 \x01(\x01\x12\x37\n/aggressive_angle_threshold_gravity_axis_degrees\x18\x02 \x01(\x01\"\x9b\x02\n\nPartConfig\x12\x0f\n\x07part_id\x18\x01 \x01(\t\x12\x15\n\rpart_model_id\x18\x02 \x01(\t\x12\x12\n\ntcp_offset\x18\x03 \x03(\x01\x12\x1e\n\x16grasp_definitions_json\x18\x04 \x01(\t\x12>\n\x1dheld_object_collision_spheres\x18\x05 \x03(\x0b\x32\x17.griip.CollisionSpheres\x12\x11\n\tmesh_path\x18\x06 \x01(\t\x12\'\n\x08symmetry\x18\x07 \x01(\x0b\x32\x15.griip.SymmetryConfig\x12\x19\n\x11perception_bundle\x18\x08 \x01(\x0c\x12\x1a\n\x12perception_version\x18\t \x01(\t\"_\n\x0eSymmetryConfig\x12\x1c\n\x04\x61xes\x18\x01 \x03(\x0b\x32\x0e.griip.Vector3\x12/\n\x14\x65xpected_orientation\x18\x02 \x01(\x0b\x32\x11.griip.Quaternion\"&\n\x14\x43ollisionLineSegment\x12\x0e\n\x06points\x18\x01 \x03(\x01\"\x91\x03\n\x17\x43onfigurePlannerRequest\x12\x14\n\x0c\x63uboids_path\x18\x01 \x01(\t\x12\x13\n\x0brobot_model\x18\x02 \x01(\t\x12&\n\x1egripper_collision_spheres_path\x18\x03 \x01(\t\x12\x1d\n\x10object_mesh_path\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x17tcp_to_camera_transform\x18\x05 \x03(\x01\x12#\n\x16planner_max_iterations\x18\x06 \x01(\x05H\x01\x88\x01\x01\x12\x1d\n\x10planner_max_cost\x18\x07 \x01(\x01H\x02\x88\x01\x01\x12:\n\x19gripper_collision_spheres\x18\x08 \x03(\x0b\x32\x17.griip.CollisionSpheres\x12\x1e\n\x07\x63uboids\x18\t \x03(\x0b\x32\r.griip.CuboidB\x13\n\x11_object_mesh_pathB\x19\n\x17_planner_max_iterationsB\x13\n\x11_planner_max_cost\"a\n\x18\x43onfigurePlannerResponse\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x11\n\trobot_dof\x18\x02 \x01(\x05\x12\x1a\n\x12num_cuboids_loaded\x18\x03 \x01(\x05\"\xab\x05\n\x0fPlanPathRequest\x12\x1a\n\x12start_joint_angles\x18\x01 \x03(\x01\x12\x31\n\x13target_joint_angles\x18\x02 \x01(\x0b\x32\x12.griip.JointAnglesH\x00\x12\"\n\x0btarget_pose\x18\x03 \x01(\x0b\x32\x0b.griip.PoseH\x00\x12\x0e\n\x06linear\x18\x04 \x01(\x08\x12\x18\n\x10velocity_scaling\x18\x05 \x01(\x01\x12\x1c\n\x14\x61\x63\x63\x65leration_scaling\x18\x06 \x01(\x01\x12>\n\x1dheld_object_collision_spheres\x18\x07 \x03(\x0b\x32\x17.griip.CollisionSpheres\x12\x38\n\x17world_collision_spheres\x18\x08 \x03(\x0b\x32\x17.griip.CollisionSpheres\x12$\n\x17\x61\x64\x64itional_point_clouds\x18\t \x01(\x0cH\x01\x88\x01\x01\x12\"\n\x15gripper_opening_width\x18\n \x01(\x01H\x02\x88\x01\x01\x12\x43\n\"gripper_collision_spheres_override\x18\x0b \x03(\x0b\x32\x17.griip.CollisionSpheres\x12\x1f\n\x12normalize_to_start\x18\x0c \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x07\x63uboids\x18\r \x03(\x0b\x32\r.griip.Cuboid\x12\"\n\x15\x63uboids_replace_scene\x18\x0e \x01(\x08H\x04\x88\x01\x01\x42\x08\n\x06targetB\x1a\n\x18_additional_point_cloudsB\x18\n\x16_gripper_opening_widthB\x15\n\x13_normalize_to_startB\x18\n\x16_cuboids_replace_scene\"\xd5\x01\n\x10PlanPathResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x1b\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\ntrajectory\x18\x03 \x03(\x0b\x32\x12.griip.JointAngles\x12\x1d\n\x10planning_time_ms\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\tpath_cost\x18\x05 \x01(\x01H\x02\x88\x01\x01\x42\x11\n\x0f_failure_reasonB\x13\n\x11_planning_time_msB\x0c\n\n_path_cost\"s\n\x14\x45stimateDepthRequest\x12\x12\n\nleft_image\x18\x01 \x01(\x0c\x12\x13\n\x0bright_image\x18\x02 \x01(\x0c\x12\x19\n\x11\x63\x61mera_intrinsics\x18\x03 \x03(\x01\x12\x17\n\x0fstereo_baseline\x18\x04 \x01(\x01\"V\n\x15\x45stimateDepthResponse\x12\x12\n\ndepth_data\x18\x01 \x01(\x0c\x12\x14\n\x0c\x64\x65pth_height\x18\x02 \x01(\x05\x12\x13\n\x0b\x64\x65pth_width\x18\x03 \x01(\x05\"\xbb\x01\n\x14\x44\x65tectObjectsRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x13\n\x0b\x63olor_image\x18\x02 \x01(\x0c\x12\x13\n\x0b\x64\x65pth_image\x18\x03 \x01(\x0c\x12\x19\n\x11\x63\x61mera_intrinsics\x18\x04 \x03(\x01\x12\x1c\n\x14\x63\x61mera_pose_in_world\x18\x05 \x03(\x01\x12!\n\tbin_walls\x18\x06 \x03(\x0b\x32\x0e.griip.BinWall\x12\x0b\n\x03roi\x18\x07 \x03(\x05\"B\n\x15\x44\x65tectObjectsResponse\x12)\n\ndetections\x18\x01 \x03(\x0b\x32\x15.griip.DetectedObject\"x\n\x0e\x44\x65tectedObject\x12\r\n\x05index\x18\x01 \x01(\x05\x12\x11\n\tmask_data\x18\x02 \x01(\x0c\x12\x13\n\x0bmask_height\x18\x03 \x01(\x05\x12\x12\n\nmask_width\x18\x04 \x01(\x05\x12\x0c\n\x04\x62\x62ox\x18\x05 \x03(\x05\x12\r\n\x05score\x18\x06 \x01(\x01\"\xaa\x01\n\x13\x45stimatePoseRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x13\n\x0b\x63olor_image\x18\x02 \x01(\x0c\x12\x13\n\x0b\x64\x65pth_image\x18\x03 \x01(\x0c\x12\x13\n\x0bobject_mask\x18\x04 \x01(\x0c\x12\x13\n\x0bmask_height\x18\x05 \x01(\x05\x12\x12\n\nmask_width\x18\x06 \x01(\x05\x12\x19\n\x11\x63\x61mera_intrinsics\x18\x07 \x03(\x01\"B\n\x14\x45stimatePoseResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x19\n\x04pose\x18\x02 \x01(\x0b\x32\x0b.griip.Pose\"|\n\x19ReportSelectedPickRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x1c\n\x14object_pose_in_world\x18\x02 \x03(\x01\x12\x11\n\tprep_pose\x18\x03 \x03(\x01\x12\x1c\n\x14\x63\x61pture_timestamp_ns\x18\x04 \x01(\x03\"(\n\x1aReportSelectedPickResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"\xc7\x04\n\x14GeneratePicksRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x13\n\x0b\x63olor_image\x18\x02 \x01(\x0c\x12\x13\n\x0b\x64\x65pth_image\x18\x03 \x01(\x0c\x12\x19\n\x11\x63\x61mera_intrinsics\x18\x04 \x03(\x01\x12\x1c\n\x14\x63\x61mera_pose_in_world\x18\x05 \x03(\x01\x12\x1b\n\x13tcp_pose_at_capture\x18\x06 \x03(\x01\x12\x30\n\x14\x63\x61pture_joint_angles\x18\x07 \x01(\x0b\x32\x12.griip.JointAngles\x12!\n\tbin_walls\x18\x08 \x03(\x0b\x32\x0e.griip.BinWall\x12\x16\n\x0emax_detections\x18\t \x01(\x05\x12\x1c\n\x14max_picks_per_object\x18\n \x01(\x05\x12!\n\tbin_floor\x18\x0b \x01(\x0b\x32\x0e.griip.BinWall\x12\x0b\n\x03roi\x18\x0c \x03(\x05\x12\x1c\n\x14\x63\x61pture_timestamp_ns\x18\r \x01(\x03\x12?\n\x1eprep_gripper_collision_spheres\x18\x0e \x03(\x0b\x32\x17.griip.CollisionSpheres\x12\x41\n plunge_gripper_collision_spheres\x18\x0f \x03(\x0b\x32\x17.griip.CollisionSpheres\x12@\n\x1fscoop_gripper_collision_spheres\x18\x10 \x03(\x0b\x32\x17.griip.CollisionSpheres\"\x8b\x01\n\x15GeneratePicksResponse\x12/\n\x0bpick_result\x18\x01 \x01(\x0b\x32\x18.griip.PickResultMessageH\x00\x12\x36\n\x10terminal_message\x18\x02 \x01(\x0b\x32\x1a.griip.PickTerminalMessageH\x00\x42\t\n\x07payload\"\xfa\x03\n\x11PickResultMessage\x12\x0f\n\x07pick_id\x18\x01 \x01(\x05\x12\x12\n\ngrasp_name\x18\x02 \x01(\t\x12\x1c\n\x14object_pose_in_world\x18\x04 \x03(\x01\x12\x15\n\robject_in_tcp\x18\x05 \x03(\x01\x12\x11\n\tprep_pose\x18\x06 \x03(\x01\x12\x13\n\x0bplunge_pose\x18\x07 \x03(\x01\x12\x12\n\nscoop_pose\x18\x08 \x03(\x01\x12+\n\x0fprep_trajectory\x18\t \x03(\x0b\x32\x12.griip.JointAngles\x12\x10\n\x08priority\x18\n \x01(\x05\x12\x18\n\x10\x64istance_to_home\x18\x0b \x01(\x01\x12\x1d\n\x15retract_move_distance\x18\x0c \x01(\x01\x12\x18\n\x10grasp_point_pose\x18\r \x03(\x01\x12\x1d\n\x15\x64\x65tected_object_index\x18\x10 \x01(\x05\x12\x30\n\x0cparallel_jaw\x18\x14 \x01(\x0b\x32\x18.griip.ParallelJawParamsH\x00\x12\'\n\x07suction\x18\x15 \x01(\x0b\x32\x14.griip.SuctionParamsH\x00\x12\x30\n\x0cthree_finger\x18\x16 \x01(\x0b\x32\x18.griip.ThreeFingerParamsH\x00\x42\x11\n\x0f\x65xecutor_params\"k\n\x11ScoopMotionParams\x12\x17\n\x0fplunge_velocity\x18\x01 \x01(\x01\x12\x16\n\x0escoop_velocity\x18\x02 \x01(\x01\x12%\n\x1d\x66orce_torque_sensor_threshold\x18\x03 \x01(\x01\"\xde\x01\n\x11ParallelJawParams\x12\x1e\n\x04mode\x18\x01 \x01(\x0e\x32\x10.griip.GraspMode\x12\x12\n\nprep_width\x18\x02 \x01(\x05\x12\x15\n\rengaged_width\x18\x03 \x01(\x05\x12\x12\n\ngrip_force\x18\x04 \x01(\x05\x12\x1c\n\x14grip_check_min_width\x18\x05 \x01(\x05\x12\x1c\n\x14grip_check_max_width\x18\x06 \x01(\x05\x12.\n\x0cscoop_motion\x18\x07 \x01(\x0b\x32\x18.griip.ScoopMotionParams\"`\n\rSuctionParams\x12\x1f\n\x17vacuum_engage_threshold\x18\x01 \x01(\x01\x12.\n\x0cscoop_motion\x18\x02 \x01(\x0b\x32\x18.griip.ScoopMotionParams\"\xa8\x01\n\x11ThreeFingerParams\x12\x1e\n\x04mode\x18\x01 \x01(\x0e\x32\x10.griip.GraspMode\x12\x12\n\ngrip_force\x18\x02 \x01(\x05\x12.\n\x0cscoop_motion\x18\x03 \x01(\x0b\x32\x18.griip.ScoopMotionParams\x12\x15\n\rprep_io_state\x18\x04 \x01(\x05\x12\x18\n\x10\x65ngaged_io_state\x18\x05 \x01(\x05\"u\n\x13PickTerminalMessage\x12\x19\n\x11no_parts_detected\x18\x01 \x01(\x08\x12\x1d\n\x15total_picks_generated\x18\x02 \x01(\x05\x12$\n\x1chas_only_ungraspable_objects\x18\x03 \x01(\x08\"\xd4\x02\n\x18GeneratePlacementRequest\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\x10\n\x08left_png\x18\x02 \x01(\x0c\x12\x11\n\tdepth_png\x18\x03 \x01(\x0c\x12\x19\n\x11\x63\x61mera_intrinsics\x18\x04 \x03(\x01\x12\x15\n\rtcp_to_camera\x18\x05 \x03(\x01\x12\x15\n\robject_in_tcp\x18\x06 \x03(\x01\x12\x13\n\x0btarget_pose\x18\x07 \x03(\x01\x12#\n\x1bplanning_start_joint_angles\x18\x08 \x03(\x01\x12\x1b\n\x13max_object_diameter\x18\t \x01(\x01\x12\x1c\n\x14\x61xis_in_object_frame\x18\n \x03(\x01\x12\x1b\n\x13number_of_rotations\x18\x0b \x01(\x05\x12&\n\x1e\x65nable_in_hand_pose_estimation\x18\x0c \x01(\x08\"\xad\x01\n\x19GeneratePlacementResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x1b\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x15refined_object_in_tcp\x18\x03 \x03(\x01\x12\x30\n\x0cik_solutions\x18\x04 \x03(\x0b\x32\x1a.griip.PlacementIkSolutionB\x11\n\x0f_failure_reason\"k\n\x13PlacementIkSolution\x12\x14\n\x0cjoint_angles\x18\x01 \x03(\x01\x12#\n\x1btarget_object_pose_in_world\x18\x02 \x03(\x01\x12\x19\n\x11\x64istance_to_start\x18\x03 \x01(\x01\"\x1d\n\x0bJointAngles\x12\x0e\n\x06values\x18\x01 \x03(\x01\"8\n\nQuaternion\x12\t\n\x01w\x18\x01 \x01(\x01\x12\t\n\x01x\x18\x02 \x01(\x01\x12\t\n\x01y\x18\x03 \x01(\x01\x12\t\n\x01z\x18\x04 \x01(\x01\"*\n\x07Vector3\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\"P\n\x04Pose\x12 \n\x08position\x18\x01 \x01(\x0b\x32\x0e.griip.Vector3\x12&\n\x0borientation\x18\x02 \x01(\x0b\x32\x11.griip.Quaternion\"B\n\x10\x43ollisionSpheres\x12\x1e\n\x06\x63\x65nter\x18\x01 \x01(\x0b\x32\x0e.griip.Vector3\x12\x0e\n\x06radius\x18\x02 \x01(\x01\"X\n\x07\x42inWall\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07width_x\x18\x02 \x01(\x01\x12\x0f\n\x07width_y\x18\x03 \x01(\x01\x12\x0f\n\x07width_z\x18\x04 \x01(\x01\x12\x0c\n\x04pose\x18\x05 \x03(\x01\"H\n\x06\x43uboid\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02wx\x18\x02 \x01(\x01\x12\n\n\x02wy\x18\x03 \x01(\x01\x12\n\n\x02wz\x18\x04 \x01(\x01\x12\x0c\n\x04pose\x18\x05 \x03(\x01*=\n\tGraspMode\x12\x17\n\x13GRASP_MODE_EXTERNAL\x10\x00\x12\x17\n\x13GRASP_MODE_INTERNAL\x10\x01\x32\x8d\x03\n\rGriipApiAdmin\x12\x41\n\nInitialize\x12\x18.griip.InitializeRequest\x1a\x19.griip.InitializeResponse\x12w\n\x1cStartPerceptionMcapRecording\x12*.griip.StartPerceptionMcapRecordingRequest\x1a+.griip.StartPerceptionMcapRecordingResponse\x12t\n\x1bStopPerceptionMcapRecording\x12).griip.StopPerceptionMcapRecordingRequest\x1a*.griip.StopPerceptionMcapRecordingResponse\x12J\n\rGetServerInfo\x12\x1b.griip.GetServerInfoRequest\x1a\x1c.griip.GetServerInfoResponse2\xa3\x01\n\x0fPlanningService\x12S\n\x10\x43onfigurePlanner\x12\x1e.griip.ConfigurePlannerRequest\x1a\x1f.griip.ConfigurePlannerResponse\x12;\n\x08PlanPath\x12\x16.griip.PlanPathRequest\x1a\x17.griip.PlanPathResponse2\xf4\x01\n\x11PerceptionService\x12J\n\rEstimateDepth\x12\x1b.griip.EstimateDepthRequest\x1a\x1c.griip.EstimateDepthResponse\x12J\n\rDetectObjects\x12\x1b.griip.DetectObjectsRequest\x1a\x1c.griip.DetectObjectsResponse\x12G\n\x0c\x45stimatePose\x12\x1a.griip.EstimatePoseRequest\x1a\x1b.griip.EstimatePoseResponse2\xb9\x01\n\x0ePickingService\x12L\n\rGeneratePicks\x12\x1b.griip.GeneratePicksRequest\x1a\x1c.griip.GeneratePicksResponse0\x01\x12Y\n\x12ReportSelectedPick\x12 .griip.ReportSelectedPickRequest\x1a!.griip.ReportSelectedPickResponse2h\n\x0ePlacingService\x12V\n\x11GeneratePlacement\x12\x1f.griip.GeneratePlacementRequest\x1a .griip.GeneratePlacementResponseB\x15\n\x11\x63om.vention.griipP\x01\x62\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'griip_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ _globals['DESCRIPTOR']._loaded_options = None
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n\021com.vention.griipP\001'
35
+ _globals['_GRASPMODE']._serialized_start=8331
36
+ _globals['_GRASPMODE']._serialized_end=8392
37
+ _globals['_GETSERVERINFOREQUEST']._serialized_start=22
38
+ _globals['_GETSERVERINFOREQUEST']._serialized_end=44
39
+ _globals['_GETSERVERINFORESPONSE']._serialized_start=47
40
+ _globals['_GETSERVERINFORESPONSE']._serialized_end=200
41
+ _globals['_MCAPRECORDINGCONFIG']._serialized_start=202
42
+ _globals['_MCAPRECORDINGCONFIG']._serialized_end=309
43
+ _globals['_CAMERACALIBRATIONINPUT']._serialized_start=311
44
+ _globals['_CAMERACALIBRATIONINPUT']._serialized_end=423
45
+ _globals['_INITIALIZEREQUEST']._serialized_start=426
46
+ _globals['_INITIALIZEREQUEST']._serialized_end=965
47
+ _globals['_INITIALIZERESPONSE']._serialized_start=968
48
+ _globals['_INITIALIZERESPONSE']._serialized_end=1192
49
+ _globals['_INITIALIZERESPONSE_STATUS']._serialized_start=1093
50
+ _globals['_INITIALIZERESPONSE_STATUS']._serialized_end=1192
51
+ _globals['_STARTPERCEPTIONMCAPRECORDINGREQUEST']._serialized_start=1194
52
+ _globals['_STARTPERCEPTIONMCAPRECORDINGREQUEST']._serialized_end=1231
53
+ _globals['_STARTPERCEPTIONMCAPRECORDINGRESPONSE']._serialized_start=1234
54
+ _globals['_STARTPERCEPTIONMCAPRECORDINGRESPONSE']._serialized_end=1467
55
+ _globals['_STARTPERCEPTIONMCAPRECORDINGRESPONSE_STATUS']._serialized_start=1365
56
+ _globals['_STARTPERCEPTIONMCAPRECORDINGRESPONSE_STATUS']._serialized_end=1467
57
+ _globals['_STOPPERCEPTIONMCAPRECORDINGREQUEST']._serialized_start=1469
58
+ _globals['_STOPPERCEPTIONMCAPRECORDINGREQUEST']._serialized_end=1505
59
+ _globals['_STOPPERCEPTIONMCAPRECORDINGRESPONSE']._serialized_start=1508
60
+ _globals['_STOPPERCEPTIONMCAPRECORDINGRESPONSE']._serialized_end=1684
61
+ _globals['_STOPPERCEPTIONMCAPRECORDINGRESPONSE_STATUS']._serialized_start=1093
62
+ _globals['_STOPPERCEPTIONMCAPRECORDINGRESPONSE_STATUS']._serialized_end=1140
63
+ _globals['_MOCKCONFIG']._serialized_start=1687
64
+ _globals['_MOCKCONFIG']._serialized_end=1824
65
+ _globals['_ROBOTCONFIG']._serialized_start=1827
66
+ _globals['_ROBOTCONFIG']._serialized_end=1964
67
+ _globals['_PERCEPTIONSERVICESCONFIG']._serialized_start=1966
68
+ _globals['_PERCEPTIONSERVICESCONFIG']._serialized_end=2088
69
+ _globals['_PLANNERCONFIG']._serialized_start=2091
70
+ _globals['_PLANNERCONFIG']._serialized_end=2337
71
+ _globals['_GRASPFILTERINGCONFIG']._serialized_start=2340
72
+ _globals['_GRASPFILTERINGCONFIG']._serialized_end=2473
73
+ _globals['_PARTCONFIG']._serialized_start=2476
74
+ _globals['_PARTCONFIG']._serialized_end=2759
75
+ _globals['_SYMMETRYCONFIG']._serialized_start=2761
76
+ _globals['_SYMMETRYCONFIG']._serialized_end=2856
77
+ _globals['_COLLISIONLINESEGMENT']._serialized_start=2858
78
+ _globals['_COLLISIONLINESEGMENT']._serialized_end=2896
79
+ _globals['_CONFIGUREPLANNERREQUEST']._serialized_start=2899
80
+ _globals['_CONFIGUREPLANNERREQUEST']._serialized_end=3300
81
+ _globals['_CONFIGUREPLANNERRESPONSE']._serialized_start=3302
82
+ _globals['_CONFIGUREPLANNERRESPONSE']._serialized_end=3399
83
+ _globals['_PLANPATHREQUEST']._serialized_start=3402
84
+ _globals['_PLANPATHREQUEST']._serialized_end=4085
85
+ _globals['_PLANPATHRESPONSE']._serialized_start=4088
86
+ _globals['_PLANPATHRESPONSE']._serialized_end=4301
87
+ _globals['_ESTIMATEDEPTHREQUEST']._serialized_start=4303
88
+ _globals['_ESTIMATEDEPTHREQUEST']._serialized_end=4418
89
+ _globals['_ESTIMATEDEPTHRESPONSE']._serialized_start=4420
90
+ _globals['_ESTIMATEDEPTHRESPONSE']._serialized_end=4506
91
+ _globals['_DETECTOBJECTSREQUEST']._serialized_start=4509
92
+ _globals['_DETECTOBJECTSREQUEST']._serialized_end=4696
93
+ _globals['_DETECTOBJECTSRESPONSE']._serialized_start=4698
94
+ _globals['_DETECTOBJECTSRESPONSE']._serialized_end=4764
95
+ _globals['_DETECTEDOBJECT']._serialized_start=4766
96
+ _globals['_DETECTEDOBJECT']._serialized_end=4886
97
+ _globals['_ESTIMATEPOSEREQUEST']._serialized_start=4889
98
+ _globals['_ESTIMATEPOSEREQUEST']._serialized_end=5059
99
+ _globals['_ESTIMATEPOSERESPONSE']._serialized_start=5061
100
+ _globals['_ESTIMATEPOSERESPONSE']._serialized_end=5127
101
+ _globals['_REPORTSELECTEDPICKREQUEST']._serialized_start=5129
102
+ _globals['_REPORTSELECTEDPICKREQUEST']._serialized_end=5253
103
+ _globals['_REPORTSELECTEDPICKRESPONSE']._serialized_start=5255
104
+ _globals['_REPORTSELECTEDPICKRESPONSE']._serialized_end=5295
105
+ _globals['_GENERATEPICKSREQUEST']._serialized_start=5298
106
+ _globals['_GENERATEPICKSREQUEST']._serialized_end=5881
107
+ _globals['_GENERATEPICKSRESPONSE']._serialized_start=5884
108
+ _globals['_GENERATEPICKSRESPONSE']._serialized_end=6023
109
+ _globals['_PICKRESULTMESSAGE']._serialized_start=6026
110
+ _globals['_PICKRESULTMESSAGE']._serialized_end=6532
111
+ _globals['_SCOOPMOTIONPARAMS']._serialized_start=6534
112
+ _globals['_SCOOPMOTIONPARAMS']._serialized_end=6641
113
+ _globals['_PARALLELJAWPARAMS']._serialized_start=6644
114
+ _globals['_PARALLELJAWPARAMS']._serialized_end=6866
115
+ _globals['_SUCTIONPARAMS']._serialized_start=6868
116
+ _globals['_SUCTIONPARAMS']._serialized_end=6964
117
+ _globals['_THREEFINGERPARAMS']._serialized_start=6967
118
+ _globals['_THREEFINGERPARAMS']._serialized_end=7135
119
+ _globals['_PICKTERMINALMESSAGE']._serialized_start=7137
120
+ _globals['_PICKTERMINALMESSAGE']._serialized_end=7254
121
+ _globals['_GENERATEPLACEMENTREQUEST']._serialized_start=7257
122
+ _globals['_GENERATEPLACEMENTREQUEST']._serialized_end=7597
123
+ _globals['_GENERATEPLACEMENTRESPONSE']._serialized_start=7600
124
+ _globals['_GENERATEPLACEMENTRESPONSE']._serialized_end=7773
125
+ _globals['_PLACEMENTIKSOLUTION']._serialized_start=7775
126
+ _globals['_PLACEMENTIKSOLUTION']._serialized_end=7882
127
+ _globals['_JOINTANGLES']._serialized_start=7884
128
+ _globals['_JOINTANGLES']._serialized_end=7913
129
+ _globals['_QUATERNION']._serialized_start=7915
130
+ _globals['_QUATERNION']._serialized_end=7971
131
+ _globals['_VECTOR3']._serialized_start=7973
132
+ _globals['_VECTOR3']._serialized_end=8015
133
+ _globals['_POSE']._serialized_start=8017
134
+ _globals['_POSE']._serialized_end=8097
135
+ _globals['_COLLISIONSPHERES']._serialized_start=8099
136
+ _globals['_COLLISIONSPHERES']._serialized_end=8165
137
+ _globals['_BINWALL']._serialized_start=8167
138
+ _globals['_BINWALL']._serialized_end=8255
139
+ _globals['_CUBOID']._serialized_start=8257
140
+ _globals['_CUBOID']._serialized_end=8329
141
+ _globals['_GRIIPAPIADMIN']._serialized_start=8395
142
+ _globals['_GRIIPAPIADMIN']._serialized_end=8792
143
+ _globals['_PLANNINGSERVICE']._serialized_start=8795
144
+ _globals['_PLANNINGSERVICE']._serialized_end=8958
145
+ _globals['_PERCEPTIONSERVICE']._serialized_start=8961
146
+ _globals['_PERCEPTIONSERVICE']._serialized_end=9205
147
+ _globals['_PICKINGSERVICE']._serialized_start=9208
148
+ _globals['_PICKINGSERVICE']._serialized_end=9393
149
+ _globals['_PLACINGSERVICE']._serialized_start=9395
150
+ _globals['_PLACINGSERVICE']._serialized_end=9499
151
+ # @@protoc_insertion_point(module_scope)
@@ -14,6 +14,26 @@ class GraspMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
14
14
  GRASP_MODE_EXTERNAL: GraspMode
15
15
  GRASP_MODE_INTERNAL: GraspMode
16
16
 
17
+ class GetServerInfoRequest(_message.Message):
18
+ __slots__ = ()
19
+ def __init__(self) -> None: ...
20
+
21
+ class GetServerInfoResponse(_message.Message):
22
+ __slots__ = ("version", "proto_revision", "initialized", "part_id", "part_model_id", "perception_version")
23
+ VERSION_FIELD_NUMBER: _ClassVar[int]
24
+ PROTO_REVISION_FIELD_NUMBER: _ClassVar[int]
25
+ INITIALIZED_FIELD_NUMBER: _ClassVar[int]
26
+ PART_ID_FIELD_NUMBER: _ClassVar[int]
27
+ PART_MODEL_ID_FIELD_NUMBER: _ClassVar[int]
28
+ PERCEPTION_VERSION_FIELD_NUMBER: _ClassVar[int]
29
+ version: str
30
+ proto_revision: str
31
+ initialized: bool
32
+ part_id: str
33
+ part_model_id: str
34
+ perception_version: str
35
+ def __init__(self, version: _Optional[str] = ..., proto_revision: _Optional[str] = ..., initialized: _Optional[bool] = ..., part_id: _Optional[str] = ..., part_model_id: _Optional[str] = ..., perception_version: _Optional[str] = ...) -> None: ...
36
+
17
37
  class McapRecordingConfig(_message.Message):
18
38
  __slots__ = ("enabled", "output_dir", "max_duration_s", "filename_prefix")
19
39
  ENABLED_FIELD_NUMBER: _ClassVar[int]
@@ -157,17 +177,19 @@ class RobotConfig(_message.Message):
157
177
  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
178
 
159
179
  class PerceptionServicesConfig(_message.Message):
160
- __slots__ = ("sam_url", "foundation_pose_url", "foundation_stereo_url")
180
+ __slots__ = ("sam_url", "foundation_pose_url", "foundation_stereo_url", "parts_url")
161
181
  SAM_URL_FIELD_NUMBER: _ClassVar[int]
162
182
  FOUNDATION_POSE_URL_FIELD_NUMBER: _ClassVar[int]
163
183
  FOUNDATION_STEREO_URL_FIELD_NUMBER: _ClassVar[int]
184
+ PARTS_URL_FIELD_NUMBER: _ClassVar[int]
164
185
  sam_url: str
165
186
  foundation_pose_url: str
166
187
  foundation_stereo_url: str
167
- def __init__(self, sam_url: _Optional[str] = ..., foundation_pose_url: _Optional[str] = ..., foundation_stereo_url: _Optional[str] = ...) -> None: ...
188
+ parts_url: str
189
+ def __init__(self, sam_url: _Optional[str] = ..., foundation_pose_url: _Optional[str] = ..., foundation_stereo_url: _Optional[str] = ..., parts_url: _Optional[str] = ...) -> None: ...
168
190
 
169
191
  class PlannerConfig(_message.Message):
170
- __slots__ = ("planner_name", "max_iterations", "max_samples", "range", "dynamic_domain", "radius", "start_tree_first", "simp_max_iterations", "cuboids_path")
192
+ __slots__ = ("planner_name", "max_iterations", "max_samples", "range", "dynamic_domain", "radius", "start_tree_first", "simp_max_iterations", "cuboids_path", "cuboids")
171
193
  PLANNER_NAME_FIELD_NUMBER: _ClassVar[int]
172
194
  MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
173
195
  MAX_SAMPLES_FIELD_NUMBER: _ClassVar[int]
@@ -177,6 +199,7 @@ class PlannerConfig(_message.Message):
177
199
  START_TREE_FIRST_FIELD_NUMBER: _ClassVar[int]
178
200
  SIMP_MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
179
201
  CUBOIDS_PATH_FIELD_NUMBER: _ClassVar[int]
202
+ CUBOIDS_FIELD_NUMBER: _ClassVar[int]
180
203
  planner_name: str
181
204
  max_iterations: int
182
205
  max_samples: int
@@ -186,7 +209,8 @@ class PlannerConfig(_message.Message):
186
209
  start_tree_first: bool
187
210
  simp_max_iterations: int
188
211
  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: ...
212
+ cuboids: _containers.RepeatedCompositeFieldContainer[Cuboid]
213
+ 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] = ..., cuboids: _Optional[_Iterable[_Union[Cuboid, _Mapping]]] = ...) -> None: ...
190
214
 
191
215
  class GraspFilteringConfig(_message.Message):
192
216
  __slots__ = ("aggressive_angle_threshold_bin_floor_degrees", "aggressive_angle_threshold_gravity_axis_degrees")
@@ -197,7 +221,7 @@ class GraspFilteringConfig(_message.Message):
197
221
  def __init__(self, aggressive_angle_threshold_bin_floor_degrees: _Optional[float] = ..., aggressive_angle_threshold_gravity_axis_degrees: _Optional[float] = ...) -> None: ...
198
222
 
199
223
  class PartConfig(_message.Message):
200
- __slots__ = ("part_id", "part_model_id", "tcp_offset", "grasp_definitions_json", "held_object_collision_spheres", "mesh_path", "symmetry")
224
+ __slots__ = ("part_id", "part_model_id", "tcp_offset", "grasp_definitions_json", "held_object_collision_spheres", "mesh_path", "symmetry", "perception_bundle", "perception_version")
201
225
  PART_ID_FIELD_NUMBER: _ClassVar[int]
202
226
  PART_MODEL_ID_FIELD_NUMBER: _ClassVar[int]
203
227
  TCP_OFFSET_FIELD_NUMBER: _ClassVar[int]
@@ -205,6 +229,8 @@ class PartConfig(_message.Message):
205
229
  HELD_OBJECT_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
206
230
  MESH_PATH_FIELD_NUMBER: _ClassVar[int]
207
231
  SYMMETRY_FIELD_NUMBER: _ClassVar[int]
232
+ PERCEPTION_BUNDLE_FIELD_NUMBER: _ClassVar[int]
233
+ PERCEPTION_VERSION_FIELD_NUMBER: _ClassVar[int]
208
234
  part_id: str
209
235
  part_model_id: str
210
236
  tcp_offset: _containers.RepeatedScalarFieldContainer[float]
@@ -212,7 +238,9 @@ class PartConfig(_message.Message):
212
238
  held_object_collision_spheres: _containers.RepeatedCompositeFieldContainer[CollisionSpheres]
213
239
  mesh_path: str
214
240
  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: ...
241
+ perception_bundle: bytes
242
+ perception_version: str
243
+ 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]] = ..., perception_bundle: _Optional[bytes] = ..., perception_version: _Optional[str] = ...) -> None: ...
216
244
 
217
245
  class SymmetryConfig(_message.Message):
218
246
  __slots__ = ("axes", "expected_orientation")
@@ -229,7 +257,7 @@ class CollisionLineSegment(_message.Message):
229
257
  def __init__(self, points: _Optional[_Iterable[float]] = ...) -> None: ...
230
258
 
231
259
  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")
260
+ __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", "cuboids")
233
261
  CUBOIDS_PATH_FIELD_NUMBER: _ClassVar[int]
234
262
  ROBOT_MODEL_FIELD_NUMBER: _ClassVar[int]
235
263
  GRIPPER_COLLISION_SPHERES_PATH_FIELD_NUMBER: _ClassVar[int]
@@ -238,6 +266,7 @@ class ConfigurePlannerRequest(_message.Message):
238
266
  PLANNER_MAX_ITERATIONS_FIELD_NUMBER: _ClassVar[int]
239
267
  PLANNER_MAX_COST_FIELD_NUMBER: _ClassVar[int]
240
268
  GRIPPER_COLLISION_SPHERES_FIELD_NUMBER: _ClassVar[int]
269
+ CUBOIDS_FIELD_NUMBER: _ClassVar[int]
241
270
  cuboids_path: str
242
271
  robot_model: str
243
272
  gripper_collision_spheres_path: str
@@ -246,7 +275,8 @@ class ConfigurePlannerRequest(_message.Message):
246
275
  planner_max_iterations: int
247
276
  planner_max_cost: float
248
277
  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: ...
278
+ cuboids: _containers.RepeatedCompositeFieldContainer[Cuboid]
279
+ 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]]] = ..., cuboids: _Optional[_Iterable[_Union[Cuboid, _Mapping]]] = ...) -> None: ...
250
280
 
251
281
  class ConfigurePlannerResponse(_message.Message):
252
282
  __slots__ = ("environment_id", "robot_dof", "num_cuboids_loaded")
@@ -317,10 +347,14 @@ class EstimateDepthRequest(_message.Message):
317
347
  def __init__(self, left_image: _Optional[bytes] = ..., right_image: _Optional[bytes] = ..., camera_intrinsics: _Optional[_Iterable[float]] = ..., stereo_baseline: _Optional[float] = ...) -> None: ...
318
348
 
319
349
  class EstimateDepthResponse(_message.Message):
320
- __slots__ = ("depth_data",)
350
+ __slots__ = ("depth_data", "depth_height", "depth_width")
321
351
  DEPTH_DATA_FIELD_NUMBER: _ClassVar[int]
352
+ DEPTH_HEIGHT_FIELD_NUMBER: _ClassVar[int]
353
+ DEPTH_WIDTH_FIELD_NUMBER: _ClassVar[int]
322
354
  depth_data: bytes
323
- def __init__(self, depth_data: _Optional[bytes] = ...) -> None: ...
355
+ depth_height: int
356
+ depth_width: int
357
+ def __init__(self, depth_data: _Optional[bytes] = ..., depth_height: _Optional[int] = ..., depth_width: _Optional[int] = ...) -> None: ...
324
358
 
325
359
  class DetectObjectsRequest(_message.Message):
326
360
  __slots__ = ("image_id", "color_image", "depth_image", "camera_intrinsics", "camera_pose_in_world", "bin_walls", "roi")
@@ -59,6 +59,11 @@ class GriipApiAdminStub:
59
59
  request_serializer=griip__pb2.StopPerceptionMcapRecordingRequest.SerializeToString,
60
60
  response_deserializer=griip__pb2.StopPerceptionMcapRecordingResponse.FromString,
61
61
  _registered_method=True)
62
+ self.GetServerInfo = channel.unary_unary(
63
+ '/griip.GriipApiAdmin/GetServerInfo',
64
+ request_serializer=griip__pb2.GetServerInfoRequest.SerializeToString,
65
+ response_deserializer=griip__pb2.GetServerInfoResponse.FromString,
66
+ _registered_method=True)
62
67
 
63
68
 
64
69
  class GriipApiAdminServicer:
@@ -92,6 +97,13 @@ class GriipApiAdminServicer:
92
97
  context.set_details('Method not implemented!')
93
98
  raise NotImplementedError('Method not implemented!')
94
99
 
100
+ def GetServerInfo(self, request, context):
101
+ """Callable before Initialize.
102
+ """
103
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
104
+ context.set_details('Method not implemented!')
105
+ raise NotImplementedError('Method not implemented!')
106
+
95
107
 
96
108
  def add_GriipApiAdminServicer_to_server(servicer, server):
97
109
  rpc_method_handlers = {
@@ -110,6 +122,11 @@ def add_GriipApiAdminServicer_to_server(servicer, server):
110
122
  request_deserializer=griip__pb2.StopPerceptionMcapRecordingRequest.FromString,
111
123
  response_serializer=griip__pb2.StopPerceptionMcapRecordingResponse.SerializeToString,
112
124
  ),
125
+ 'GetServerInfo': grpc.unary_unary_rpc_method_handler(
126
+ servicer.GetServerInfo,
127
+ request_deserializer=griip__pb2.GetServerInfoRequest.FromString,
128
+ response_serializer=griip__pb2.GetServerInfoResponse.SerializeToString,
129
+ ),
113
130
  }
114
131
  generic_handler = grpc.method_handlers_generic_handler(
115
132
  'griip.GriipApiAdmin', rpc_method_handlers)
@@ -212,6 +229,33 @@ class GriipApiAdmin:
212
229
  metadata,
213
230
  _registered_method=True)
214
231
 
232
+ @staticmethod
233
+ def GetServerInfo(request,
234
+ target,
235
+ options=(),
236
+ channel_credentials=None,
237
+ call_credentials=None,
238
+ insecure=False,
239
+ compression=None,
240
+ wait_for_ready=None,
241
+ timeout=None,
242
+ metadata=None):
243
+ return grpc.experimental.unary_unary(
244
+ request,
245
+ target,
246
+ '/griip.GriipApiAdmin/GetServerInfo',
247
+ griip__pb2.GetServerInfoRequest.SerializeToString,
248
+ griip__pb2.GetServerInfoResponse.FromString,
249
+ options,
250
+ channel_credentials,
251
+ insecure,
252
+ call_credentials,
253
+ compression,
254
+ wait_for_ready,
255
+ timeout,
256
+ metadata,
257
+ _registered_method=True)
258
+
215
259
 
216
260
  class PlanningServiceStub:
217
261
  """---------------------------------------------------------------------------
@@ -73,7 +73,23 @@ _GriipApiAdminStopPerceptionMcapRecordingType = typing_extensions.TypeVar(
73
73
  ],
74
74
  )
75
75
 
76
- class GriipApiAdminStub(typing.Generic[_GriipApiAdminInitializeType, _GriipApiAdminStartPerceptionMcapRecordingType, _GriipApiAdminStopPerceptionMcapRecordingType]):
76
+ _GriipApiAdminGetServerInfoType = typing_extensions.TypeVar(
77
+ '_GriipApiAdminGetServerInfoType',
78
+ grpc.UnaryUnaryMultiCallable[
79
+ griip_pb2.GetServerInfoRequest,
80
+ griip_pb2.GetServerInfoResponse,
81
+ ],
82
+ grpc.aio.UnaryUnaryMultiCallable[
83
+ griip_pb2.GetServerInfoRequest,
84
+ griip_pb2.GetServerInfoResponse,
85
+ ],
86
+ default=grpc.UnaryUnaryMultiCallable[
87
+ griip_pb2.GetServerInfoRequest,
88
+ griip_pb2.GetServerInfoResponse,
89
+ ],
90
+ )
91
+
92
+ class GriipApiAdminStub(typing.Generic[_GriipApiAdminInitializeType, _GriipApiAdminStartPerceptionMcapRecordingType, _GriipApiAdminStopPerceptionMcapRecordingType, _GriipApiAdminGetServerInfoType]):
77
93
  """---------------------------------------------------------------------------
78
94
  GriipApiAdmin
79
95
 
@@ -99,6 +115,10 @@ class GriipApiAdminStub(typing.Generic[_GriipApiAdminInitializeType, _GriipApiAd
99
115
  griip_pb2.StopPerceptionMcapRecordingRequest,
100
116
  griip_pb2.StopPerceptionMcapRecordingResponse,
101
117
  ],
118
+ grpc.UnaryUnaryMultiCallable[
119
+ griip_pb2.GetServerInfoRequest,
120
+ griip_pb2.GetServerInfoResponse,
121
+ ],
102
122
  ], channel: grpc.Channel) -> None: ...
103
123
 
104
124
  @typing.overload
@@ -115,6 +135,10 @@ class GriipApiAdminStub(typing.Generic[_GriipApiAdminInitializeType, _GriipApiAd
115
135
  griip_pb2.StopPerceptionMcapRecordingRequest,
116
136
  griip_pb2.StopPerceptionMcapRecordingResponse,
117
137
  ],
138
+ grpc.aio.UnaryUnaryMultiCallable[
139
+ griip_pb2.GetServerInfoRequest,
140
+ griip_pb2.GetServerInfoResponse,
141
+ ],
118
142
  ], channel: grpc.aio.Channel) -> None: ...
119
143
 
120
144
  Initialize: _GriipApiAdminInitializeType
@@ -123,6 +147,9 @@ class GriipApiAdminStub(typing.Generic[_GriipApiAdminInitializeType, _GriipApiAd
123
147
 
124
148
  StopPerceptionMcapRecording: _GriipApiAdminStopPerceptionMcapRecordingType
125
149
 
150
+ GetServerInfo: _GriipApiAdminGetServerInfoType
151
+ """Callable before Initialize."""
152
+
126
153
  GriipApiAdminAsyncStub: typing_extensions.TypeAlias = GriipApiAdminStub[
127
154
  grpc.aio.UnaryUnaryMultiCallable[
128
155
  griip_pb2.InitializeRequest,
@@ -136,6 +163,10 @@ GriipApiAdminAsyncStub: typing_extensions.TypeAlias = GriipApiAdminStub[
136
163
  griip_pb2.StopPerceptionMcapRecordingRequest,
137
164
  griip_pb2.StopPerceptionMcapRecordingResponse,
138
165
  ],
166
+ grpc.aio.UnaryUnaryMultiCallable[
167
+ griip_pb2.GetServerInfoRequest,
168
+ griip_pb2.GetServerInfoResponse,
169
+ ],
139
170
  ]
140
171
 
141
172
  class GriipApiAdminServicer(metaclass=abc.ABCMeta):
@@ -171,6 +202,14 @@ class GriipApiAdminServicer(metaclass=abc.ABCMeta):
171
202
  context: _ServicerContext,
172
203
  ) -> typing.Union[griip_pb2.StopPerceptionMcapRecordingResponse, collections.abc.Awaitable[griip_pb2.StopPerceptionMcapRecordingResponse]]: ...
173
204
 
205
+ @abc.abstractmethod
206
+ def GetServerInfo(
207
+ self,
208
+ request: griip_pb2.GetServerInfoRequest,
209
+ context: _ServicerContext,
210
+ ) -> typing.Union[griip_pb2.GetServerInfoResponse, collections.abc.Awaitable[griip_pb2.GetServerInfoResponse]]:
211
+ """Callable before Initialize."""
212
+
174
213
  def add_GriipApiAdminServicer_to_server(servicer: GriipApiAdminServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
175
214
 
176
215
  _PlanningServiceConfigurePlannerType = typing_extensions.TypeVar(
@@ -7,10 +7,10 @@ fa1ff32 (the 1.5.0 release). It used to reach us inside the
7
7
  hand-written client, so this had to come across with it.
8
8
 
9
9
  It lives in griip-core rather than griip-sdk because four of its five callers
10
- -- griip-sdk, vention-perception, mmai-griip-api and (through griip-sdk)
10
+ -- griip-sdk, vention-perception, griip-server and (through griip-sdk)
11
11
  griip-teleop -- already depend on griip-core, and because griip-core is where
12
12
  the rest of the shared VRMCS plumbing lives (see ``vrmcs_registration``).
13
- Putting it in griip-sdk would make perception and mmai-griip-api depend on the
13
+ Putting it in griip-sdk would make perception and griip-server depend on the
14
14
  whole robot SDK -- toppra, trimesh, urchin, pymodbus, pyserial -- to reach a
15
15
  gRPC transport.
16
16