kinfer 0.0.6__tar.gz → 0.3.2__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.
- kinfer-0.3.2/.cargo/config.toml +12 -0
- kinfer-0.3.2/Cargo.toml +18 -0
- kinfer-0.3.2/MANIFEST.in +3 -0
- {kinfer-0.0.6/kinfer.egg-info → kinfer-0.3.2}/PKG-INFO +7 -1
- {kinfer-0.0.6 → kinfer-0.3.2}/README.md +6 -0
- kinfer-0.3.2/kinfer/__init__.py +6 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/export/pytorch.py +7 -5
- kinfer-0.3.2/kinfer/inference/python.py +92 -0
- kinfer-0.3.2/kinfer/proto/kinfer_pb2.py +103 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/proto/kinfer_pb2.pyi +263 -27
- kinfer-0.3.2/kinfer/rust/Cargo.toml +20 -0
- kinfer-0.3.2/kinfer/rust/build.rs +16 -0
- kinfer-0.3.2/kinfer/rust/src/kinfer_proto.rs +14 -0
- kinfer-0.3.2/kinfer/rust/src/lib.rs +14 -0
- kinfer-0.3.2/kinfer/rust/src/main.rs +6 -0
- kinfer-0.3.2/kinfer/rust/src/model.rs +153 -0
- kinfer-0.3.2/kinfer/rust/src/onnx_serializer.rs +804 -0
- kinfer-0.3.2/kinfer/rust/src/serializer.rs +221 -0
- kinfer-0.3.2/kinfer/rust/src/tests/onnx_serializer_tests.rs +212 -0
- kinfer-0.3.2/kinfer/rust_bindings/Cargo.toml +19 -0
- kinfer-0.3.2/kinfer/rust_bindings/pyproject.toml +7 -0
- kinfer-0.3.2/kinfer/rust_bindings/src/bin/stub_gen.rs +7 -0
- kinfer-0.3.2/kinfer/rust_bindings/src/lib.rs +17 -0
- kinfer-0.3.2/kinfer/rust_bindings.pyi +7 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/base.py +38 -30
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/json.py +68 -24
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/numpy.py +79 -26
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/pytorch.py +49 -25
- {kinfer-0.0.6 → kinfer-0.3.2/kinfer.egg-info}/PKG-INFO +7 -1
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer.egg-info/SOURCES.txt +19 -1
- kinfer-0.3.2/kinfer.egg-info/not-zip-safe +1 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/pyproject.toml +9 -0
- kinfer-0.3.2/setup.py +84 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/tests/test_infer.py +2 -2
- kinfer-0.3.2/tests/test_schema.py +229 -0
- kinfer-0.0.6/MANIFEST.in +0 -1
- kinfer-0.0.6/kinfer/__init__.py +0 -3
- kinfer-0.0.6/kinfer/inference/python.py +0 -72
- kinfer-0.0.6/kinfer/proto/kinfer_pb2.py +0 -106
- kinfer-0.0.6/setup.py +0 -41
- {kinfer-0.0.6 → kinfer-0.3.2}/LICENSE +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/export/__init__.py +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/inference/__init__.py +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/proto/__init__.py +1 -1
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/py.typed +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/requirements-dev.txt +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/requirements.txt +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/__init__.py +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/schema.py +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/types.py +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer/serialize/utils.py +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer.egg-info/dependency_links.txt +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer.egg-info/requires.txt +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/kinfer.egg-info/top_level.txt +0 -0
- {kinfer-0.0.6 → kinfer-0.3.2}/setup.cfg +0 -0
kinfer-0.3.2/Cargo.toml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
[workspace]
|
2
|
+
|
3
|
+
members = [
|
4
|
+
"kinfer/rust",
|
5
|
+
"kinfer/rust_bindings",
|
6
|
+
]
|
7
|
+
resolver = "2"
|
8
|
+
|
9
|
+
[workspace.package]
|
10
|
+
|
11
|
+
version = "0.3.2"
|
12
|
+
authors = ["Wesley Maa <wesley@kscale.dev>", "Benjamin Bolte <ben@kscale.dev>"]
|
13
|
+
edition = "2021"
|
14
|
+
description = "K-Scale Inference Library"
|
15
|
+
license = "MIT"
|
16
|
+
repository = "https://github.com/kscalelabs/kinfer"
|
17
|
+
documentation = "https://docs.kscale.dev"
|
18
|
+
readme = "README.md"
|
kinfer-0.3.2/MANIFEST.in
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: kinfer
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.3.2
|
4
4
|
Summary: Tool to make it easier to run a model on a real robot
|
5
5
|
Home-page: https://github.com/kscalelabs/kinfer.git
|
6
6
|
Author: K-Scale Labs
|
@@ -49,3 +49,9 @@ $ brew ls onnxruntime
|
|
49
49
|
/opt/homebrew/Cellar/onnxruntime/1.20.1/sbom.spdx.json
|
50
50
|
$ export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/onnxruntime/1.20.1/lib:$DYLD_LIBRARY_PATH
|
51
51
|
```
|
52
|
+
|
53
|
+
### Considerations for Exporting PyTorch Models
|
54
|
+
|
55
|
+
Don't use common names for the inputs to your forward pass. E.g. `input`, `output`, `state`, `state_tensor`, `buffer`, etc.
|
56
|
+
|
57
|
+
This is because ONNX has internal names for the model and if there's a conflict, the inputs will have a .1, .2, etc. suffix which makes it really hard to figure out what value_name to pass into your kinfer io values.
|
@@ -28,3 +28,9 @@ $ brew ls onnxruntime
|
|
28
28
|
/opt/homebrew/Cellar/onnxruntime/1.20.1/sbom.spdx.json
|
29
29
|
$ export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/onnxruntime/1.20.1/lib:$DYLD_LIBRARY_PATH
|
30
30
|
```
|
31
|
+
|
32
|
+
### Considerations for Exporting PyTorch Models
|
33
|
+
|
34
|
+
Don't use common names for the inputs to your forward pass. E.g. `input`, `output`, `state`, `state_tensor`, `buffer`, etc.
|
35
|
+
|
36
|
+
This is because ONNX has internal names for the model and if there's a conflict, the inputs will have a .1, .2, etc. suffix which makes it really hard to figure out what value_name to pass into your kinfer io values.
|
@@ -1,5 +1,6 @@
|
|
1
1
|
"""PyTorch model export utilities."""
|
2
2
|
|
3
|
+
import base64
|
3
4
|
import inspect
|
4
5
|
from io import BytesIO
|
5
6
|
from typing import Sequence
|
@@ -28,16 +29,15 @@ def _add_metadata_to_onnx(model_proto: onnx.ModelProto, schema: P.ModelSchema) -
|
|
28
29
|
ONNX model with added metadata
|
29
30
|
"""
|
30
31
|
schema_bytes = schema.SerializeToString()
|
32
|
+
|
31
33
|
meta = model_proto.metadata_props.add()
|
32
34
|
meta.key = KINFER_METADATA_KEY
|
33
|
-
meta.value = schema_bytes
|
35
|
+
meta.value = base64.b64encode(schema_bytes).decode("utf-8")
|
36
|
+
|
34
37
|
return model_proto
|
35
38
|
|
36
39
|
|
37
|
-
def export_model(
|
38
|
-
model: torch.jit.ScriptModule,
|
39
|
-
schema: P.ModelSchema,
|
40
|
-
) -> onnx.ModelProto:
|
40
|
+
def export_model(model: torch.jit.ScriptModule, schema: P.ModelSchema) -> onnx.ModelProto:
|
41
41
|
"""Export PyTorch model to ONNX format with metadata.
|
42
42
|
|
43
43
|
Args:
|
@@ -56,6 +56,7 @@ def export_model(
|
|
56
56
|
raise ValueError(f"Expected {len(model_input_names)} inputs, but schema has {len(schema.input_schema.values)}")
|
57
57
|
input_schema_names = [i.value_name for i in schema.input_schema.values]
|
58
58
|
output_schema_names = [o.value_name for o in schema.output_schema.values]
|
59
|
+
|
59
60
|
if model_input_names != input_schema_names:
|
60
61
|
raise ValueError(f"Expected input names {model_input_names} to match schema names {input_schema_names}")
|
61
62
|
|
@@ -76,6 +77,7 @@ def export_model(
|
|
76
77
|
model_input_names = [
|
77
78
|
p.name for p in signature.parameters.values() if p.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD
|
78
79
|
]
|
80
|
+
|
79
81
|
raise ValueError(
|
80
82
|
f"Failed to run model with dummy inputs; input names are {model_input_names} while "
|
81
83
|
f"input schema is {schema.input_schema}"
|
@@ -0,0 +1,92 @@
|
|
1
|
+
"""ONNX model inference utilities for Python."""
|
2
|
+
|
3
|
+
import base64
|
4
|
+
from pathlib import Path
|
5
|
+
|
6
|
+
import onnx
|
7
|
+
import onnxruntime as ort
|
8
|
+
|
9
|
+
from kinfer import proto as P
|
10
|
+
from kinfer.export.pytorch import KINFER_METADATA_KEY
|
11
|
+
from kinfer.serialize.numpy import NumpyMultiSerializer
|
12
|
+
|
13
|
+
|
14
|
+
def _read_schema(model: onnx.ModelProto) -> P.ModelSchema:
|
15
|
+
for prop in model.metadata_props:
|
16
|
+
if prop.key == KINFER_METADATA_KEY:
|
17
|
+
try:
|
18
|
+
schema_bytes = base64.b64decode(prop.value)
|
19
|
+
schema = P.ModelSchema()
|
20
|
+
schema.ParseFromString(schema_bytes)
|
21
|
+
return schema
|
22
|
+
except Exception as e:
|
23
|
+
raise ValueError("Failed to parse kinfer_metadata value") from e
|
24
|
+
else:
|
25
|
+
raise ValueError(f"Found arbitrary metadata key {prop.key}")
|
26
|
+
|
27
|
+
raise ValueError(f"{KINFER_METADATA_KEY} not found in model metadata")
|
28
|
+
|
29
|
+
|
30
|
+
class ONNXModel:
|
31
|
+
"""Wrapper for ONNX model inference."""
|
32
|
+
|
33
|
+
def __init__(self: "ONNXModel", model_path: str | Path) -> None:
|
34
|
+
"""Initialize ONNX model.
|
35
|
+
|
36
|
+
Args:
|
37
|
+
model_path: Path to ONNX model file
|
38
|
+
"""
|
39
|
+
self.model_path = model_path
|
40
|
+
|
41
|
+
# Load model and create inference session
|
42
|
+
self.model = onnx.load(model_path)
|
43
|
+
self.session = ort.InferenceSession(model_path)
|
44
|
+
self._schema = _read_schema(self.model)
|
45
|
+
|
46
|
+
# Create serializers for input and output.
|
47
|
+
self._input_serializer = NumpyMultiSerializer(self._schema.input_schema)
|
48
|
+
self._output_serializer = NumpyMultiSerializer(self._schema.output_schema)
|
49
|
+
|
50
|
+
def __call__(self: "ONNXModel", inputs: P.IO) -> P.IO:
|
51
|
+
"""Run inference on input data.
|
52
|
+
|
53
|
+
Args:
|
54
|
+
inputs: Input data, matching the input schema.
|
55
|
+
|
56
|
+
Returns:
|
57
|
+
Model outputs, matching the output schema.
|
58
|
+
"""
|
59
|
+
inputs_np = self._input_serializer.serialize_io(inputs, as_dict=True)
|
60
|
+
outputs_np = self.session.run(None, inputs_np)
|
61
|
+
outputs = self._output_serializer.deserialize_io(outputs_np)
|
62
|
+
return outputs
|
63
|
+
|
64
|
+
@property
|
65
|
+
def input_schema(self: "ONNXModel") -> P.IOSchema:
|
66
|
+
"""Get the input schema."""
|
67
|
+
return self._schema.input_schema
|
68
|
+
|
69
|
+
@property
|
70
|
+
def output_schema(self: "ONNXModel") -> P.IOSchema:
|
71
|
+
"""Get the output schema."""
|
72
|
+
return self._schema.output_schema
|
73
|
+
|
74
|
+
@property
|
75
|
+
def schema_input_keys(self: "ONNXModel") -> list[str]:
|
76
|
+
"""Get all value names from input schemas.
|
77
|
+
|
78
|
+
Returns:
|
79
|
+
List of value names from input schema.
|
80
|
+
"""
|
81
|
+
input_names = [value.value_name for value in self._schema.input_schema.values]
|
82
|
+
return input_names
|
83
|
+
|
84
|
+
@property
|
85
|
+
def schema_output_keys(self: "ONNXModel") -> list[str]:
|
86
|
+
"""Get all value names from output schemas.
|
87
|
+
|
88
|
+
Returns:
|
89
|
+
List of value names from output schema.
|
90
|
+
"""
|
91
|
+
output_names = [value.value_name for value in self._schema.output_schema.values]
|
92
|
+
return output_names
|
@@ -0,0 +1,103 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
4
|
+
# source: kinfer/proto/kinfer.proto
|
5
|
+
# Protobuf Python Version: 5.29.1
|
6
|
+
"""Generated protocol buffer code."""
|
7
|
+
|
8
|
+
from google.protobuf import descriptor as _descriptor
|
9
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
10
|
+
from google.protobuf import runtime_version as _runtime_version
|
11
|
+
from google.protobuf import symbol_database as _symbol_database
|
12
|
+
from google.protobuf.internal import builder as _builder
|
13
|
+
|
14
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
15
|
+
_runtime_version.Domain.PUBLIC, 5, 29, 1, "", "kinfer/proto/kinfer.proto"
|
16
|
+
)
|
17
|
+
# @@protoc_insertion_point(imports)
|
18
|
+
|
19
|
+
_sym_db = _symbol_database.Default()
|
20
|
+
|
21
|
+
|
22
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
|
23
|
+
b'\n\x19kinfer/proto/kinfer.proto\x12\x0ckinfer.proto"f\n\x12JointPositionValue\x12\x12\n\njoint_name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02\x12-\n\x04unit\x18\x03 \x01(\x0e\x32\x1f.kinfer.proto.JointPositionUnit"Z\n\x14JointPositionsSchema\x12-\n\x04unit\x18\x01 \x01(\x0e\x32\x1f.kinfer.proto.JointPositionUnit\x12\x13\n\x0bjoint_names\x18\x02 \x03(\t"G\n\x13JointPositionsValue\x12\x30\n\x06values\x18\x01 \x03(\x0b\x32 .kinfer.proto.JointPositionValue"f\n\x12JointVelocityValue\x12\x12\n\njoint_name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02\x12-\n\x04unit\x18\x03 \x01(\x0e\x32\x1f.kinfer.proto.JointVelocityUnit"[\n\x15JointVelocitiesSchema\x12-\n\x04unit\x18\x01 \x01(\x0e\x32\x1f.kinfer.proto.JointVelocityUnit\x12\x13\n\x0bjoint_names\x18\x02 \x03(\t"H\n\x14JointVelocitiesValue\x12\x30\n\x06values\x18\x01 \x03(\x0b\x32 .kinfer.proto.JointVelocityValue"b\n\x10JointTorqueValue\x12\x12\n\njoint_name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02\x12+\n\x04unit\x18\x03 \x01(\x0e\x32\x1d.kinfer.proto.JointTorqueUnit"V\n\x12JointTorquesSchema\x12+\n\x04unit\x18\x01 \x01(\x0e\x32\x1d.kinfer.proto.JointTorqueUnit\x12\x13\n\x0bjoint_names\x18\x02 \x03(\t"C\n\x11JointTorquesValue\x12.\n\x06values\x18\x01 \x03(\x0b\x32\x1e.kinfer.proto.JointTorqueValue"\xce\x01\n\x13JointCommandsSchema\x12\x13\n\x0bjoint_names\x18\x01 \x03(\t\x12\x32\n\x0btorque_unit\x18\x02 \x01(\x0e\x32\x1d.kinfer.proto.JointTorqueUnit\x12\x36\n\rvelocity_unit\x18\x03 \x01(\x0e\x32\x1f.kinfer.proto.JointVelocityUnit\x12\x36\n\rposition_unit\x18\x04 \x01(\x0e\x32\x1f.kinfer.proto.JointPositionUnit"\x97\x02\n\x11JointCommandValue\x12\x12\n\njoint_name\x18\x01 \x01(\t\x12\x0e\n\x06torque\x18\x02 \x01(\x02\x12\x10\n\x08velocity\x18\x03 \x01(\x02\x12\x10\n\x08position\x18\x04 \x01(\x02\x12\n\n\x02kp\x18\x05 \x01(\x02\x12\n\n\x02kd\x18\x06 \x01(\x02\x12\x32\n\x0btorque_unit\x18\x07 \x01(\x0e\x32\x1d.kinfer.proto.JointTorqueUnit\x12\x36\n\rvelocity_unit\x18\x08 \x01(\x0e\x32\x1f.kinfer.proto.JointVelocityUnit\x12\x36\n\rposition_unit\x18\t \x01(\x0e\x32\x1f.kinfer.proto.JointPositionUnit"E\n\x12JointCommandsValue\x12/\n\x06values\x18\x01 \x03(\x0b\x32\x1f.kinfer.proto.JointCommandValue"D\n\x11\x43\x61meraFrameSchema\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\x10\n\x08\x63hannels\x18\x03 \x01(\x05" \n\x10\x43\x61meraFrameValue\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c"]\n\x10\x41udioFrameSchema\x12\x10\n\x08\x63hannels\x18\x01 \x01(\x05\x12\x13\n\x0bsample_rate\x18\x02 \x01(\x05\x12"\n\x05\x64type\x18\x03 \x01(\x0e\x32\x13.kinfer.proto.DType"\x1f\n\x0f\x41udioFrameValue\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c"8\n\x15ImuAccelerometerValue\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02"4\n\x11ImuGyroscopeValue\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02"7\n\x14ImuMagnetometerValue\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02"W\n\tImuSchema\x12\x19\n\x11use_accelerometer\x18\x01 \x01(\x08\x12\x15\n\ruse_gyroscope\x18\x02 \x01(\x08\x12\x18\n\x10use_magnetometer\x18\x03 \x01(\x08"\xc3\x01\n\x08ImuValue\x12@\n\x13linear_acceleration\x18\x01 \x01(\x0b\x32#.kinfer.proto.ImuAccelerometerValue\x12\x39\n\x10\x61ngular_velocity\x18\x02 \x01(\x0b\x32\x1f.kinfer.proto.ImuGyroscopeValue\x12:\n\x0emagnetic_field\x18\x03 \x01(\x0b\x32".kinfer.proto.ImuMagnetometerValue"=\n\x0fTimestampSchema\x12\x15\n\rstart_seconds\x18\x01 \x01(\x03\x12\x13\n\x0bstart_nanos\x18\x02 \x01(\x05"0\n\x0eTimestampValue\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05")\n\x13VectorCommandSchema\x12\x12\n\ndimensions\x18\x01 \x01(\x05"$\n\x12VectorCommandValue\x12\x0e\n\x06values\x18\x01 \x03(\x02"F\n\x11StateTensorSchema\x12\r\n\x05shape\x18\x01 \x03(\x05\x12"\n\x05\x64type\x18\x02 \x01(\x0e\x32\x13.kinfer.proto.DType" \n\x10StateTensorValue\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c"\xd4\x04\n\x05Value\x12\x12\n\nvalue_name\x18\x01 \x01(\t\x12<\n\x0fjoint_positions\x18\x02 \x01(\x0b\x32!.kinfer.proto.JointPositionsValueH\x00\x12>\n\x10joint_velocities\x18\x03 \x01(\x0b\x32".kinfer.proto.JointVelocitiesValueH\x00\x12\x38\n\rjoint_torques\x18\x04 \x01(\x0b\x32\x1f.kinfer.proto.JointTorquesValueH\x00\x12:\n\x0ejoint_commands\x18\x05 \x01(\x0b\x32 .kinfer.proto.JointCommandsValueH\x00\x12\x36\n\x0c\x63\x61mera_frame\x18\x06 \x01(\x0b\x32\x1e.kinfer.proto.CameraFrameValueH\x00\x12\x34\n\x0b\x61udio_frame\x18\x07 \x01(\x0b\x32\x1d.kinfer.proto.AudioFrameValueH\x00\x12%\n\x03imu\x18\x08 \x01(\x0b\x32\x16.kinfer.proto.ImuValueH\x00\x12\x31\n\ttimestamp\x18\t \x01(\x0b\x32\x1c.kinfer.proto.TimestampValueH\x00\x12:\n\x0evector_command\x18\n \x01(\x0b\x32 .kinfer.proto.VectorCommandValueH\x00\x12\x36\n\x0cstate_tensor\x18\x0b \x01(\x0b\x32\x1e.kinfer.proto.StateTensorValueH\x00\x42\x07\n\x05value"\xe9\x04\n\x0bValueSchema\x12\x12\n\nvalue_name\x18\x01 \x01(\t\x12=\n\x0fjoint_positions\x18\x02 \x01(\x0b\x32".kinfer.proto.JointPositionsSchemaH\x00\x12?\n\x10joint_velocities\x18\x03 \x01(\x0b\x32#.kinfer.proto.JointVelocitiesSchemaH\x00\x12\x39\n\rjoint_torques\x18\x04 \x01(\x0b\x32 .kinfer.proto.JointTorquesSchemaH\x00\x12;\n\x0ejoint_commands\x18\x05 \x01(\x0b\x32!.kinfer.proto.JointCommandsSchemaH\x00\x12\x37\n\x0c\x63\x61mera_frame\x18\x06 \x01(\x0b\x32\x1f.kinfer.proto.CameraFrameSchemaH\x00\x12\x35\n\x0b\x61udio_frame\x18\x07 \x01(\x0b\x32\x1e.kinfer.proto.AudioFrameSchemaH\x00\x12&\n\x03imu\x18\x08 \x01(\x0b\x32\x17.kinfer.proto.ImuSchemaH\x00\x12\x32\n\ttimestamp\x18\t \x01(\x0b\x32\x1d.kinfer.proto.TimestampSchemaH\x00\x12;\n\x0evector_command\x18\n \x01(\x0b\x32!.kinfer.proto.VectorCommandSchemaH\x00\x12\x37\n\x0cstate_tensor\x18\x0b \x01(\x0b\x32\x1f.kinfer.proto.StateTensorSchemaH\x00\x42\x0c\n\nvalue_type"5\n\x08IOSchema\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x19.kinfer.proto.ValueSchema")\n\x02IO\x12#\n\x06values\x18\x01 \x03(\x0b\x32\x13.kinfer.proto.Value"j\n\x0bModelSchema\x12,\n\x0cinput_schema\x18\x01 \x01(\x0b\x32\x16.kinfer.proto.IOSchema\x12-\n\routput_schema\x18\x02 \x01(\x0b\x32\x16.kinfer.proto.IOSchema*\x88\x01\n\x05\x44Type\x12\x07\n\x03\x46P8\x10\x00\x12\x08\n\x04\x46P16\x10\x01\x12\x08\n\x04\x46P32\x10\x02\x12\x08\n\x04\x46P64\x10\x03\x12\x08\n\x04INT8\x10\x04\x12\t\n\x05INT16\x10\x05\x12\t\n\x05INT32\x10\x06\x12\t\n\x05INT64\x10\x07\x12\t\n\x05UINT8\x10\x08\x12\n\n\x06UINT16\x10\t\x12\n\n\x06UINT32\x10\n\x12\n\n\x06UINT64\x10\x0b*-\n\x11JointPositionUnit\x12\x0b\n\x07\x44\x45GREES\x10\x00\x12\x0b\n\x07RADIANS\x10\x01*C\n\x11JointVelocityUnit\x12\x16\n\x12\x44\x45GREES_PER_SECOND\x10\x00\x12\x16\n\x12RADIANS_PER_SECOND\x10\x01*$\n\x0fJointTorqueUnit\x12\x11\n\rNEWTON_METERS\x10\x00\x62\x06proto3'
|
24
|
+
)
|
25
|
+
|
26
|
+
_globals = globals()
|
27
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
28
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "kinfer.proto.kinfer_pb2", _globals)
|
29
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
30
|
+
DESCRIPTOR._loaded_options = None
|
31
|
+
_globals["_DTYPE"]._serialized_start = 3816
|
32
|
+
_globals["_DTYPE"]._serialized_end = 3952
|
33
|
+
_globals["_JOINTPOSITIONUNIT"]._serialized_start = 3954
|
34
|
+
_globals["_JOINTPOSITIONUNIT"]._serialized_end = 3999
|
35
|
+
_globals["_JOINTVELOCITYUNIT"]._serialized_start = 4001
|
36
|
+
_globals["_JOINTVELOCITYUNIT"]._serialized_end = 4068
|
37
|
+
_globals["_JOINTTORQUEUNIT"]._serialized_start = 4070
|
38
|
+
_globals["_JOINTTORQUEUNIT"]._serialized_end = 4106
|
39
|
+
_globals["_JOINTPOSITIONVALUE"]._serialized_start = 43
|
40
|
+
_globals["_JOINTPOSITIONVALUE"]._serialized_end = 145
|
41
|
+
_globals["_JOINTPOSITIONSSCHEMA"]._serialized_start = 147
|
42
|
+
_globals["_JOINTPOSITIONSSCHEMA"]._serialized_end = 237
|
43
|
+
_globals["_JOINTPOSITIONSVALUE"]._serialized_start = 239
|
44
|
+
_globals["_JOINTPOSITIONSVALUE"]._serialized_end = 310
|
45
|
+
_globals["_JOINTVELOCITYVALUE"]._serialized_start = 312
|
46
|
+
_globals["_JOINTVELOCITYVALUE"]._serialized_end = 414
|
47
|
+
_globals["_JOINTVELOCITIESSCHEMA"]._serialized_start = 416
|
48
|
+
_globals["_JOINTVELOCITIESSCHEMA"]._serialized_end = 507
|
49
|
+
_globals["_JOINTVELOCITIESVALUE"]._serialized_start = 509
|
50
|
+
_globals["_JOINTVELOCITIESVALUE"]._serialized_end = 581
|
51
|
+
_globals["_JOINTTORQUEVALUE"]._serialized_start = 583
|
52
|
+
_globals["_JOINTTORQUEVALUE"]._serialized_end = 681
|
53
|
+
_globals["_JOINTTORQUESSCHEMA"]._serialized_start = 683
|
54
|
+
_globals["_JOINTTORQUESSCHEMA"]._serialized_end = 769
|
55
|
+
_globals["_JOINTTORQUESVALUE"]._serialized_start = 771
|
56
|
+
_globals["_JOINTTORQUESVALUE"]._serialized_end = 838
|
57
|
+
_globals["_JOINTCOMMANDSSCHEMA"]._serialized_start = 841
|
58
|
+
_globals["_JOINTCOMMANDSSCHEMA"]._serialized_end = 1047
|
59
|
+
_globals["_JOINTCOMMANDVALUE"]._serialized_start = 1050
|
60
|
+
_globals["_JOINTCOMMANDVALUE"]._serialized_end = 1329
|
61
|
+
_globals["_JOINTCOMMANDSVALUE"]._serialized_start = 1331
|
62
|
+
_globals["_JOINTCOMMANDSVALUE"]._serialized_end = 1400
|
63
|
+
_globals["_CAMERAFRAMESCHEMA"]._serialized_start = 1402
|
64
|
+
_globals["_CAMERAFRAMESCHEMA"]._serialized_end = 1470
|
65
|
+
_globals["_CAMERAFRAMEVALUE"]._serialized_start = 1472
|
66
|
+
_globals["_CAMERAFRAMEVALUE"]._serialized_end = 1504
|
67
|
+
_globals["_AUDIOFRAMESCHEMA"]._serialized_start = 1506
|
68
|
+
_globals["_AUDIOFRAMESCHEMA"]._serialized_end = 1599
|
69
|
+
_globals["_AUDIOFRAMEVALUE"]._serialized_start = 1601
|
70
|
+
_globals["_AUDIOFRAMEVALUE"]._serialized_end = 1632
|
71
|
+
_globals["_IMUACCELEROMETERVALUE"]._serialized_start = 1634
|
72
|
+
_globals["_IMUACCELEROMETERVALUE"]._serialized_end = 1690
|
73
|
+
_globals["_IMUGYROSCOPEVALUE"]._serialized_start = 1692
|
74
|
+
_globals["_IMUGYROSCOPEVALUE"]._serialized_end = 1744
|
75
|
+
_globals["_IMUMAGNETOMETERVALUE"]._serialized_start = 1746
|
76
|
+
_globals["_IMUMAGNETOMETERVALUE"]._serialized_end = 1801
|
77
|
+
_globals["_IMUSCHEMA"]._serialized_start = 1803
|
78
|
+
_globals["_IMUSCHEMA"]._serialized_end = 1890
|
79
|
+
_globals["_IMUVALUE"]._serialized_start = 1893
|
80
|
+
_globals["_IMUVALUE"]._serialized_end = 2088
|
81
|
+
_globals["_TIMESTAMPSCHEMA"]._serialized_start = 2090
|
82
|
+
_globals["_TIMESTAMPSCHEMA"]._serialized_end = 2151
|
83
|
+
_globals["_TIMESTAMPVALUE"]._serialized_start = 2153
|
84
|
+
_globals["_TIMESTAMPVALUE"]._serialized_end = 2201
|
85
|
+
_globals["_VECTORCOMMANDSCHEMA"]._serialized_start = 2203
|
86
|
+
_globals["_VECTORCOMMANDSCHEMA"]._serialized_end = 2244
|
87
|
+
_globals["_VECTORCOMMANDVALUE"]._serialized_start = 2246
|
88
|
+
_globals["_VECTORCOMMANDVALUE"]._serialized_end = 2282
|
89
|
+
_globals["_STATETENSORSCHEMA"]._serialized_start = 2284
|
90
|
+
_globals["_STATETENSORSCHEMA"]._serialized_end = 2354
|
91
|
+
_globals["_STATETENSORVALUE"]._serialized_start = 2356
|
92
|
+
_globals["_STATETENSORVALUE"]._serialized_end = 2388
|
93
|
+
_globals["_VALUE"]._serialized_start = 2391
|
94
|
+
_globals["_VALUE"]._serialized_end = 2987
|
95
|
+
_globals["_VALUESCHEMA"]._serialized_start = 2990
|
96
|
+
_globals["_VALUESCHEMA"]._serialized_end = 3607
|
97
|
+
_globals["_IOSCHEMA"]._serialized_start = 3609
|
98
|
+
_globals["_IOSCHEMA"]._serialized_end = 3662
|
99
|
+
_globals["_IO"]._serialized_start = 3664
|
100
|
+
_globals["_IO"]._serialized_end = 3705
|
101
|
+
_globals["_MODELSCHEMA"]._serialized_start = 3707
|
102
|
+
_globals["_MODELSCHEMA"]._serialized_end = 3813
|
103
|
+
# @@protoc_insertion_point(module_scope)
|