asimov-protocol 1.2.1rc2__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.
- asimov_protocol-1.2.1rc2/LICENSE +21 -0
- asimov_protocol-1.2.1rc2/PKG-INFO +81 -0
- asimov_protocol-1.2.1rc2/README.md +60 -0
- asimov_protocol-1.2.1rc2/pyproject.toml +39 -0
- asimov_protocol-1.2.1rc2/setup.cfg +4 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/__init__.py +13 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/py.typed +0 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/__init__.py +20 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_command_pb2.py +50 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_command_pb2.pyi +64 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_common_pb2.py +40 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_common_pb2.pyi +32 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_diagnostics_pb2.py +42 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_diagnostics_pb2.pyi +53 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_state_pb2.py +63 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/asimov_state_pb2.pyi +87 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/edge_cloud_pb2.py +68 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/edge_cloud_pb2.pyi +236 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/edge_eol_pb2.py +64 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/edge_eol_pb2.pyi +155 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/edge_pb2.py +52 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/edge_pb2.pyi +88 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/nanopb_pb2.py +45 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol/v1/nanopb_pb2.pyi +128 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol.egg-info/PKG-INFO +81 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol.egg-info/SOURCES.txt +27 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol.egg-info/dependency_links.txt +1 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol.egg-info/requires.txt +1 -0
- asimov_protocol-1.2.1rc2/src/asimov_protocol.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Menlo Research
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: asimov-protocol
|
|
3
|
+
Version: 1.2.1rc2
|
|
4
|
+
Summary: Asimov robot protocol buffers (Python, generated — do not hand-edit)
|
|
5
|
+
Author: Menlo Research
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/menloresearch/asimov-protocol
|
|
8
|
+
Project-URL: Repository, https://github.com/menloresearch/asimov-protocol
|
|
9
|
+
Project-URL: Issues, https://github.com/menloresearch/asimov-protocol/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/menloresearch/asimov-protocol/releases
|
|
11
|
+
Keywords: asimov,robotics,protobuf,menlo
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
+
Classifier: Typing :: Typed
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: protobuf>=5.29.3
|
|
20
|
+
Dynamic: license-file
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://menlo.ai"><img src="https://docs.menlo.ai/menlo-logo.svg" alt="Menlo" width="160"></a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
# asimov-protocol
|
|
27
|
+
|
|
28
|
+
The wire contract of the Asimov robot, as generated Python protobuf bindings: the
|
|
29
|
+
`RobotCommand` a controller sends, the `RobotState` the robot reports, and the messages
|
|
30
|
+
around them. Every Menlo component that talks to the robot imports this package, so one
|
|
31
|
+
process holds one set of descriptors.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pip install asimov-protocol
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from asimov_protocol.v1 import asimov_command_pb2, asimov_common_pb2, asimov_state_pb2
|
|
39
|
+
|
|
40
|
+
cmd = asimov_command_pb2.RobotCommand()
|
|
41
|
+
cmd.mode = asimov_common_pb2.CONTROL_MODE_MOVE
|
|
42
|
+
payload = cmd.SerializeToString()
|
|
43
|
+
|
|
44
|
+
state = asimov_state_pb2.RobotState()
|
|
45
|
+
state.ParseFromString(payload_from_the_robot)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Ships `.pyi` stubs and `py.typed`, so mypy and pyright work out of the box. The only
|
|
49
|
+
dependency is `protobuf`.
|
|
50
|
+
|
|
51
|
+
## Versioning
|
|
52
|
+
|
|
53
|
+
- **MAJOR** follows the wire directory: `1.x` is `asimov_protocol.v1`. A breaking wire
|
|
54
|
+
change is a new `v2/` and a `2.0`, never an edit to `v1/`.
|
|
55
|
+
- **MINOR** is an additive schema change (a new field, message or enum value); **PATCH** is
|
|
56
|
+
regenerated code or packaging with no schema change.
|
|
57
|
+
- Pin `asimov-protocol>=1.2,<2` and you get every compatible release of the wire you speak.
|
|
58
|
+
|
|
59
|
+
Pre-releases use PEP 440 spelling (`1.2.1rc2`) and install only with `pip install --pre`
|
|
60
|
+
or an explicit pin.
|
|
61
|
+
|
|
62
|
+
## Modules
|
|
63
|
+
|
|
64
|
+
| Module | What is in it |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `asimov_common_pb2` | `ControlMode` and the other shared enums |
|
|
67
|
+
| `asimov_command_pb2` | `RobotCommand`: mode, policy velocity, joint setpoints |
|
|
68
|
+
| `asimov_state_pb2` | `RobotState`: mode, joints, IMU, alerts, battery, `protocol_version` |
|
|
69
|
+
| `asimov_diagnostics_pb2` | diagnostics frames |
|
|
70
|
+
| `edge_pb2` | the edge's controller-facing observation lane (`EdgeMessage`, `EdgeState`) |
|
|
71
|
+
| `edge_cloud_pb2`, `edge_eol_pb2` | edge to cloud, and end-of-line test |
|
|
72
|
+
|
|
73
|
+
## Source
|
|
74
|
+
|
|
75
|
+
Generated from the `.proto` files in
|
|
76
|
+
[menloresearch/asimov-protocol](https://github.com/menloresearch/asimov-protocol) by that
|
|
77
|
+
repository's toolchain; do not edit the installed modules. Higher-level Python clients:
|
|
78
|
+
[`menlo-sdk`](https://pypi.org/project/menlo-sdk/) drives the robot,
|
|
79
|
+
[`menlo-robot-sdk`](https://pypi.org/project/menlo-robot-sdk/) talks to the Robot Control Service.
|
|
80
|
+
|
|
81
|
+
MIT.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://menlo.ai"><img src="https://docs.menlo.ai/menlo-logo.svg" alt="Menlo" width="160"></a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# asimov-protocol
|
|
6
|
+
|
|
7
|
+
The wire contract of the Asimov robot, as generated Python protobuf bindings: the
|
|
8
|
+
`RobotCommand` a controller sends, the `RobotState` the robot reports, and the messages
|
|
9
|
+
around them. Every Menlo component that talks to the robot imports this package, so one
|
|
10
|
+
process holds one set of descriptors.
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install asimov-protocol
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
from asimov_protocol.v1 import asimov_command_pb2, asimov_common_pb2, asimov_state_pb2
|
|
18
|
+
|
|
19
|
+
cmd = asimov_command_pb2.RobotCommand()
|
|
20
|
+
cmd.mode = asimov_common_pb2.CONTROL_MODE_MOVE
|
|
21
|
+
payload = cmd.SerializeToString()
|
|
22
|
+
|
|
23
|
+
state = asimov_state_pb2.RobotState()
|
|
24
|
+
state.ParseFromString(payload_from_the_robot)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Ships `.pyi` stubs and `py.typed`, so mypy and pyright work out of the box. The only
|
|
28
|
+
dependency is `protobuf`.
|
|
29
|
+
|
|
30
|
+
## Versioning
|
|
31
|
+
|
|
32
|
+
- **MAJOR** follows the wire directory: `1.x` is `asimov_protocol.v1`. A breaking wire
|
|
33
|
+
change is a new `v2/` and a `2.0`, never an edit to `v1/`.
|
|
34
|
+
- **MINOR** is an additive schema change (a new field, message or enum value); **PATCH** is
|
|
35
|
+
regenerated code or packaging with no schema change.
|
|
36
|
+
- Pin `asimov-protocol>=1.2,<2` and you get every compatible release of the wire you speak.
|
|
37
|
+
|
|
38
|
+
Pre-releases use PEP 440 spelling (`1.2.1rc2`) and install only with `pip install --pre`
|
|
39
|
+
or an explicit pin.
|
|
40
|
+
|
|
41
|
+
## Modules
|
|
42
|
+
|
|
43
|
+
| Module | What is in it |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `asimov_common_pb2` | `ControlMode` and the other shared enums |
|
|
46
|
+
| `asimov_command_pb2` | `RobotCommand`: mode, policy velocity, joint setpoints |
|
|
47
|
+
| `asimov_state_pb2` | `RobotState`: mode, joints, IMU, alerts, battery, `protocol_version` |
|
|
48
|
+
| `asimov_diagnostics_pb2` | diagnostics frames |
|
|
49
|
+
| `edge_pb2` | the edge's controller-facing observation lane (`EdgeMessage`, `EdgeState`) |
|
|
50
|
+
| `edge_cloud_pb2`, `edge_eol_pb2` | edge to cloud, and end-of-line test |
|
|
51
|
+
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
Generated from the `.proto` files in
|
|
55
|
+
[menloresearch/asimov-protocol](https://github.com/menloresearch/asimov-protocol) by that
|
|
56
|
+
repository's toolchain; do not edit the installed modules. Higher-level Python clients:
|
|
57
|
+
[`menlo-sdk`](https://pypi.org/project/menlo-sdk/) drives the robot,
|
|
58
|
+
[`menlo-robot-sdk`](https://pypi.org/project/menlo-robot-sdk/) talks to the Robot Control Service.
|
|
59
|
+
|
|
60
|
+
MIT.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "asimov-protocol"
|
|
3
|
+
version = "1.2.1rc2"
|
|
4
|
+
description = "Asimov robot protocol buffers (Python, generated — do not hand-edit)"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
license-files = ["LICENSE"]
|
|
9
|
+
authors = [{ name = "Menlo Research" }]
|
|
10
|
+
keywords = ["asimov", "robotics", "protobuf", "menlo"]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Intended Audience :: Developers",
|
|
13
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
14
|
+
"Topic :: Software Development :: Libraries",
|
|
15
|
+
"Typing :: Typed",
|
|
16
|
+
]
|
|
17
|
+
dependencies = [
|
|
18
|
+
# Must satisfy the gencode's ValidateProtobufRuntimeVersion floor — see the
|
|
19
|
+
# buf.gen.yaml plugin pin (protocolbuffers/python:v29.3 → runtime >= 5.29.3).
|
|
20
|
+
# Bump BOTH together when changing the plugin version.
|
|
21
|
+
"protobuf>=5.29.3",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[project.urls]
|
|
25
|
+
Homepage = "https://github.com/menloresearch/asimov-protocol"
|
|
26
|
+
Repository = "https://github.com/menloresearch/asimov-protocol"
|
|
27
|
+
Issues = "https://github.com/menloresearch/asimov-protocol/issues"
|
|
28
|
+
Changelog = "https://github.com/menloresearch/asimov-protocol/releases"
|
|
29
|
+
|
|
30
|
+
[build-system]
|
|
31
|
+
# >=77 for PEP 639 `license` / `license-files` fields.
|
|
32
|
+
requires = ["setuptools>=77"]
|
|
33
|
+
build-backend = "setuptools.build_meta"
|
|
34
|
+
|
|
35
|
+
[tool.setuptools.packages.find]
|
|
36
|
+
where = ["src"]
|
|
37
|
+
|
|
38
|
+
[tool.setuptools.package-data]
|
|
39
|
+
asimov_protocol = ["py.typed", "**/*.pyi"]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""Asimov robot protocol buffers (generated package).
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
from asimov_protocol.v1 import asimov_command_pb2, asimov_common_pb2
|
|
5
|
+
|
|
6
|
+
cmd = asimov_command_pb2.RobotCommand()
|
|
7
|
+
cmd.mode = asimov_common_pb2.CONTROL_MODE_MOVE
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from . import v1
|
|
11
|
+
|
|
12
|
+
__version__ = "1.2.1rc2"
|
|
13
|
+
__all__ = ["v1"]
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Asimov protocol v1 — generated protobuf modules (do not hand-edit)."""
|
|
2
|
+
from . import asimov_command_pb2
|
|
3
|
+
from . import asimov_common_pb2
|
|
4
|
+
from . import asimov_diagnostics_pb2
|
|
5
|
+
from . import asimov_state_pb2
|
|
6
|
+
from . import edge_cloud_pb2
|
|
7
|
+
from . import edge_eol_pb2
|
|
8
|
+
from . import edge_pb2
|
|
9
|
+
from . import nanopb_pb2
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"asimov_command_pb2",
|
|
13
|
+
"asimov_common_pb2",
|
|
14
|
+
"asimov_diagnostics_pb2",
|
|
15
|
+
"asimov_state_pb2",
|
|
16
|
+
"edge_cloud_pb2",
|
|
17
|
+
"edge_eol_pb2",
|
|
18
|
+
"edge_pb2",
|
|
19
|
+
"nanopb_pb2",
|
|
20
|
+
]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: asimov_command.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.3
|
|
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
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'asimov_command.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from . import asimov_common_pb2 as asimov__common__pb2
|
|
26
|
+
from . import nanopb_pb2 as nanopb__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x61simov_command.proto\x12\tasimov.io\x1a\x13\x61simov_common.proto\x1a\x0cnanopb.proto\"E\n\x0fVelocityCommand\x12\x0e\n\x02vx\x18\x01 \x01(\x02R\x02vx\x12\x0e\n\x02vy\x18\x02 \x01(\x02R\x02vy\x12\x12\n\x04vyaw\x18\x03 \x01(\x02R\x04vyaw\"b\n\rAllTrajectory\x12#\n\tpositions\x18\x01 \x03(\x02\x42\x05\x92?\x02\x10\x19R\tpositions\x12\x15\n\x02kp\x18\x02 \x03(\x02\x42\x05\x92?\x02\x10\x19R\x02kp\x12\x15\n\x02kd\x18\x03 \x03(\x02\x42\x05\x92?\x02\x10\x19R\x02kd\"\xaf\x01\n\nEolCommand\x12,\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x14.asimov.io.EolActionR\x06\x61\x63tion\x12\x19\n\x08motor_id\x18\x02 \x01(\rR\x07motorId\x12\x1a\n\x08position\x18\x03 \x01(\x02R\x08position\x12\x0e\n\x02kp\x18\x04 \x01(\x02R\x02kp\x12\x0e\n\x02kd\x18\x05 \x01(\x02R\x02kd\x12\x1c\n\nnew_can_id\x18\x06 \x01(\rR\x08newCanId\"\xa2\x03\n\x0cRobotCommand\x12*\n\x04mode\x18\x01 \x01(\x0e\x32\x16.asimov.io.ControlModeR\x04mode\x12\x42\n\x0f\x63ommand_control\x18\x02 \x01(\x0e\x32\x19.asimov.io.CommandControlR\x0e\x63ommandControl\x12\x34\n\x06policy\x18\x03 \x01(\x0b\x32\x1a.asimov.io.VelocityCommandH\x00R\x06policy\x12\x41\n\x0e\x61ll_trajectory\x18\x05 \x01(\x0b\x32\x18.asimov.io.AllTrajectoryH\x00R\rallTrajectory\x12)\n\x03\x65ol\x18\t \x01(\x0b\x32\x15.asimov.io.EolCommandH\x00R\x03\x65ol\x12!\n\x0ctimestamp_us\x18\x06 \x01(\x04R\x0btimestampUs\x12\x1a\n\x08sequence\x18\x07 \x01(\rR\x08sequence\x12)\n\x10protocol_version\x18\x08 \x01(\rR\x0fprotocolVersionB\x0e\n\x0c\x63ommand_dataJ\x04\x08\x04\x10\x05\x62\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'asimov_command_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
DESCRIPTOR._loaded_options = None
|
|
36
|
+
_globals['_ALLTRAJECTORY'].fields_by_name['positions']._loaded_options = None
|
|
37
|
+
_globals['_ALLTRAJECTORY'].fields_by_name['positions']._serialized_options = b'\222?\002\020\031'
|
|
38
|
+
_globals['_ALLTRAJECTORY'].fields_by_name['kp']._loaded_options = None
|
|
39
|
+
_globals['_ALLTRAJECTORY'].fields_by_name['kp']._serialized_options = b'\222?\002\020\031'
|
|
40
|
+
_globals['_ALLTRAJECTORY'].fields_by_name['kd']._loaded_options = None
|
|
41
|
+
_globals['_ALLTRAJECTORY'].fields_by_name['kd']._serialized_options = b'\222?\002\020\031'
|
|
42
|
+
_globals['_VELOCITYCOMMAND']._serialized_start=70
|
|
43
|
+
_globals['_VELOCITYCOMMAND']._serialized_end=139
|
|
44
|
+
_globals['_ALLTRAJECTORY']._serialized_start=141
|
|
45
|
+
_globals['_ALLTRAJECTORY']._serialized_end=239
|
|
46
|
+
_globals['_EOLCOMMAND']._serialized_start=242
|
|
47
|
+
_globals['_EOLCOMMAND']._serialized_end=417
|
|
48
|
+
_globals['_ROBOTCOMMAND']._serialized_start=420
|
|
49
|
+
_globals['_ROBOTCOMMAND']._serialized_end=838
|
|
50
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from . import asimov_common_pb2 as _asimov_common_pb2
|
|
2
|
+
from . import nanopb_pb2 as _nanopb_pb2
|
|
3
|
+
from google.protobuf.internal import containers as _containers
|
|
4
|
+
from google.protobuf import descriptor as _descriptor
|
|
5
|
+
from google.protobuf import message as _message
|
|
6
|
+
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
7
|
+
|
|
8
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
9
|
+
|
|
10
|
+
class VelocityCommand(_message.Message):
|
|
11
|
+
__slots__ = ("vx", "vy", "vyaw")
|
|
12
|
+
VX_FIELD_NUMBER: _ClassVar[int]
|
|
13
|
+
VY_FIELD_NUMBER: _ClassVar[int]
|
|
14
|
+
VYAW_FIELD_NUMBER: _ClassVar[int]
|
|
15
|
+
vx: float
|
|
16
|
+
vy: float
|
|
17
|
+
vyaw: float
|
|
18
|
+
def __init__(self, vx: _Optional[float] = ..., vy: _Optional[float] = ..., vyaw: _Optional[float] = ...) -> None: ...
|
|
19
|
+
|
|
20
|
+
class AllTrajectory(_message.Message):
|
|
21
|
+
__slots__ = ("positions", "kp", "kd")
|
|
22
|
+
POSITIONS_FIELD_NUMBER: _ClassVar[int]
|
|
23
|
+
KP_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
+
KD_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
positions: _containers.RepeatedScalarFieldContainer[float]
|
|
26
|
+
kp: _containers.RepeatedScalarFieldContainer[float]
|
|
27
|
+
kd: _containers.RepeatedScalarFieldContainer[float]
|
|
28
|
+
def __init__(self, positions: _Optional[_Iterable[float]] = ..., kp: _Optional[_Iterable[float]] = ..., kd: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
29
|
+
|
|
30
|
+
class EolCommand(_message.Message):
|
|
31
|
+
__slots__ = ("action", "motor_id", "position", "kp", "kd", "new_can_id")
|
|
32
|
+
ACTION_FIELD_NUMBER: _ClassVar[int]
|
|
33
|
+
MOTOR_ID_FIELD_NUMBER: _ClassVar[int]
|
|
34
|
+
POSITION_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
KP_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
KD_FIELD_NUMBER: _ClassVar[int]
|
|
37
|
+
NEW_CAN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
action: _asimov_common_pb2.EolAction
|
|
39
|
+
motor_id: int
|
|
40
|
+
position: float
|
|
41
|
+
kp: float
|
|
42
|
+
kd: float
|
|
43
|
+
new_can_id: int
|
|
44
|
+
def __init__(self, action: _Optional[_Union[_asimov_common_pb2.EolAction, str]] = ..., motor_id: _Optional[int] = ..., position: _Optional[float] = ..., kp: _Optional[float] = ..., kd: _Optional[float] = ..., new_can_id: _Optional[int] = ...) -> None: ...
|
|
45
|
+
|
|
46
|
+
class RobotCommand(_message.Message):
|
|
47
|
+
__slots__ = ("mode", "command_control", "policy", "all_trajectory", "eol", "timestamp_us", "sequence", "protocol_version")
|
|
48
|
+
MODE_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
COMMAND_CONTROL_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
POLICY_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
ALL_TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
EOL_FIELD_NUMBER: _ClassVar[int]
|
|
53
|
+
TIMESTAMP_US_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
SEQUENCE_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
PROTOCOL_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
56
|
+
mode: _asimov_common_pb2.ControlMode
|
|
57
|
+
command_control: _asimov_common_pb2.CommandControl
|
|
58
|
+
policy: VelocityCommand
|
|
59
|
+
all_trajectory: AllTrajectory
|
|
60
|
+
eol: EolCommand
|
|
61
|
+
timestamp_us: int
|
|
62
|
+
sequence: int
|
|
63
|
+
protocol_version: int
|
|
64
|
+
def __init__(self, mode: _Optional[_Union[_asimov_common_pb2.ControlMode, str]] = ..., command_control: _Optional[_Union[_asimov_common_pb2.CommandControl, str]] = ..., policy: _Optional[_Union[VelocityCommand, _Mapping]] = ..., all_trajectory: _Optional[_Union[AllTrajectory, _Mapping]] = ..., eol: _Optional[_Union[EolCommand, _Mapping]] = ..., timestamp_us: _Optional[int] = ..., sequence: _Optional[int] = ..., protocol_version: _Optional[int] = ...) -> None: ...
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: asimov_common.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.3
|
|
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
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'asimov_common.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\x13\x61simov_common.proto\x12\tasimov.io*Y\n\x0b\x43ontrolMode\x12\x15\n\x11\x43ONTROL_MODE_DAMP\x10\x00\x12\x16\n\x12\x43ONTROL_MODE_STAND\x10\x01\x12\x15\n\x11\x43ONTROL_MODE_MOVE\x10\x02\"\x04\x08\x03\x10\x03*R\n\x0e\x43ommandControl\x12\x1a\n\x16\x43OMMAND_CONTROL_POLICY\x10\x00\x12\x1e\n\x1a\x43OMMAND_CONTROL_TRAJECTORY\x10\x01\"\x04\x08\x02\x10\x02*[\n\tEolAction\x12\x12\n\x0e\x45OL_MOVE_MOTOR\x10\x00\x12\x14\n\x10\x45OL_ZERO_ENCODER\x10\x01\x12\x12\n\x0e\x45OL_SET_CAN_ID\x10\x02\x12\x10\n\x0c\x45OL_FINALIZE\x10\x03\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'asimov_common_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_CONTROLMODE']._serialized_start=34
|
|
35
|
+
_globals['_CONTROLMODE']._serialized_end=123
|
|
36
|
+
_globals['_COMMANDCONTROL']._serialized_start=125
|
|
37
|
+
_globals['_COMMANDCONTROL']._serialized_end=207
|
|
38
|
+
_globals['_EOLACTION']._serialized_start=209
|
|
39
|
+
_globals['_EOLACTION']._serialized_end=300
|
|
40
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
2
|
+
from google.protobuf import descriptor as _descriptor
|
|
3
|
+
from typing import ClassVar as _ClassVar
|
|
4
|
+
|
|
5
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
6
|
+
|
|
7
|
+
class ControlMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
8
|
+
__slots__ = ()
|
|
9
|
+
CONTROL_MODE_DAMP: _ClassVar[ControlMode]
|
|
10
|
+
CONTROL_MODE_STAND: _ClassVar[ControlMode]
|
|
11
|
+
CONTROL_MODE_MOVE: _ClassVar[ControlMode]
|
|
12
|
+
|
|
13
|
+
class CommandControl(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
14
|
+
__slots__ = ()
|
|
15
|
+
COMMAND_CONTROL_POLICY: _ClassVar[CommandControl]
|
|
16
|
+
COMMAND_CONTROL_TRAJECTORY: _ClassVar[CommandControl]
|
|
17
|
+
|
|
18
|
+
class EolAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
19
|
+
__slots__ = ()
|
|
20
|
+
EOL_MOVE_MOTOR: _ClassVar[EolAction]
|
|
21
|
+
EOL_ZERO_ENCODER: _ClassVar[EolAction]
|
|
22
|
+
EOL_SET_CAN_ID: _ClassVar[EolAction]
|
|
23
|
+
EOL_FINALIZE: _ClassVar[EolAction]
|
|
24
|
+
CONTROL_MODE_DAMP: ControlMode
|
|
25
|
+
CONTROL_MODE_STAND: ControlMode
|
|
26
|
+
CONTROL_MODE_MOVE: ControlMode
|
|
27
|
+
COMMAND_CONTROL_POLICY: CommandControl
|
|
28
|
+
COMMAND_CONTROL_TRAJECTORY: CommandControl
|
|
29
|
+
EOL_MOVE_MOTOR: EolAction
|
|
30
|
+
EOL_ZERO_ENCODER: EolAction
|
|
31
|
+
EOL_SET_CAN_ID: EolAction
|
|
32
|
+
EOL_FINALIZE: EolAction
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: asimov_diagnostics.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.3
|
|
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
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'asimov_diagnostics.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\x18\x61simov_diagnostics.proto\x12\tasimov.io\"\xa6\x01\n\x05\x41lert\x12\x0e\n\x02id\x18\x01 \x01(\rR\x02id\x12\x1a\n\x08severity\x18\x02 \x01(\rR\x08severity\x12\x14\n\x05value\x18\x03 \x01(\rR\x05value\x12\x1c\n\tthreshold\x18\x04 \x01(\rR\tthreshold\x12 \n\x0c\x66irst_set_us\x18\x05 \x01(\x04R\nfirstSetUs\x12\x1b\n\tsource_id\x18\x06 \x01(\rR\x08sourceId\"p\n\rThreadMetrics\x12 \n\x0cmax_cycle_us\x18\x01 \x01(\x04R\nmaxCycleUs\x12 \n\x0c\x61vg_cycle_us\x18\x02 \x01(\x04R\navgCycleUs\x12\x1b\n\tjitter_us\x18\x03 \x01(\x03R\x08jitterUs\"\x8a\x01\n\x0bOnnxMetrics\x12(\n\x10\x61vg_inference_ms\x18\x01 \x01(\x02R\x0e\x61vgInferenceMs\x12(\n\x10max_inference_ms\x18\x02 \x01(\x02R\x0emaxInferenceMs\x12\'\n\x0finference_count\x18\x03 \x01(\x04R\x0einferenceCount\"\x89\x01\n\nCanMetrics\x12\x1f\n\x0b\x66rames_sent\x18\x01 \x01(\x04R\nframesSent\x12\'\n\x0f\x66rames_received\x18\x02 \x01(\x04R\x0e\x66ramesReceived\x12\x16\n\x06\x65rrors\x18\x03 \x01(\x04R\x06\x65rrors\x12\x19\n\x08\x62us_offs\x18\x04 \x01(\x04R\x07\x62usOffsb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'asimov_diagnostics_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_ALERT']._serialized_start=40
|
|
35
|
+
_globals['_ALERT']._serialized_end=206
|
|
36
|
+
_globals['_THREADMETRICS']._serialized_start=208
|
|
37
|
+
_globals['_THREADMETRICS']._serialized_end=320
|
|
38
|
+
_globals['_ONNXMETRICS']._serialized_start=323
|
|
39
|
+
_globals['_ONNXMETRICS']._serialized_end=461
|
|
40
|
+
_globals['_CANMETRICS']._serialized_start=464
|
|
41
|
+
_globals['_CANMETRICS']._serialized_end=601
|
|
42
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from google.protobuf import descriptor as _descriptor
|
|
2
|
+
from google.protobuf import message as _message
|
|
3
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
|
4
|
+
|
|
5
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
6
|
+
|
|
7
|
+
class Alert(_message.Message):
|
|
8
|
+
__slots__ = ("id", "severity", "value", "threshold", "first_set_us", "source_id")
|
|
9
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
10
|
+
SEVERITY_FIELD_NUMBER: _ClassVar[int]
|
|
11
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
12
|
+
THRESHOLD_FIELD_NUMBER: _ClassVar[int]
|
|
13
|
+
FIRST_SET_US_FIELD_NUMBER: _ClassVar[int]
|
|
14
|
+
SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
15
|
+
id: int
|
|
16
|
+
severity: int
|
|
17
|
+
value: int
|
|
18
|
+
threshold: int
|
|
19
|
+
first_set_us: int
|
|
20
|
+
source_id: int
|
|
21
|
+
def __init__(self, id: _Optional[int] = ..., severity: _Optional[int] = ..., value: _Optional[int] = ..., threshold: _Optional[int] = ..., first_set_us: _Optional[int] = ..., source_id: _Optional[int] = ...) -> None: ...
|
|
22
|
+
|
|
23
|
+
class ThreadMetrics(_message.Message):
|
|
24
|
+
__slots__ = ("max_cycle_us", "avg_cycle_us", "jitter_us")
|
|
25
|
+
MAX_CYCLE_US_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
+
AVG_CYCLE_US_FIELD_NUMBER: _ClassVar[int]
|
|
27
|
+
JITTER_US_FIELD_NUMBER: _ClassVar[int]
|
|
28
|
+
max_cycle_us: int
|
|
29
|
+
avg_cycle_us: int
|
|
30
|
+
jitter_us: int
|
|
31
|
+
def __init__(self, max_cycle_us: _Optional[int] = ..., avg_cycle_us: _Optional[int] = ..., jitter_us: _Optional[int] = ...) -> None: ...
|
|
32
|
+
|
|
33
|
+
class OnnxMetrics(_message.Message):
|
|
34
|
+
__slots__ = ("avg_inference_ms", "max_inference_ms", "inference_count")
|
|
35
|
+
AVG_INFERENCE_MS_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
MAX_INFERENCE_MS_FIELD_NUMBER: _ClassVar[int]
|
|
37
|
+
INFERENCE_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
avg_inference_ms: float
|
|
39
|
+
max_inference_ms: float
|
|
40
|
+
inference_count: int
|
|
41
|
+
def __init__(self, avg_inference_ms: _Optional[float] = ..., max_inference_ms: _Optional[float] = ..., inference_count: _Optional[int] = ...) -> None: ...
|
|
42
|
+
|
|
43
|
+
class CanMetrics(_message.Message):
|
|
44
|
+
__slots__ = ("frames_sent", "frames_received", "errors", "bus_offs")
|
|
45
|
+
FRAMES_SENT_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
FRAMES_RECEIVED_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
ERRORS_FIELD_NUMBER: _ClassVar[int]
|
|
48
|
+
BUS_OFFS_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
frames_sent: int
|
|
50
|
+
frames_received: int
|
|
51
|
+
errors: int
|
|
52
|
+
bus_offs: int
|
|
53
|
+
def __init__(self, frames_sent: _Optional[int] = ..., frames_received: _Optional[int] = ..., errors: _Optional[int] = ..., bus_offs: _Optional[int] = ...) -> None: ...
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: asimov_state.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.3
|
|
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
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'asimov_state.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from . import asimov_common_pb2 as asimov__common__pb2
|
|
26
|
+
from . import asimov_diagnostics_pb2 as asimov__diagnostics__pb2
|
|
27
|
+
from . import nanopb_pb2 as nanopb__pb2
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x61simov_state.proto\x12\tasimov.io\x1a\x13\x61simov_common.proto\x1a\x18\x61simov_diagnostics.proto\x1a\x0cnanopb.proto\"\xbf\x07\n\nRobotState\x12!\n\x0ctimestamp_us\x18\x01 \x01(\x04R\x0btimestampUs\x12\x1a\n\x08sequence\x18\x02 \x01(\rR\x08sequence\x12\x39\n\x0c\x63urrent_mode\x18\x03 \x01(\x0e\x32\x16.asimov.io.ControlModeR\x0b\x63urrentMode\x12\"\n\tjoint_pos\x18\x06 \x03(\x02\x42\x05\x92?\x02\x10\x19R\x08jointPos\x12\"\n\tjoint_vel\x18\x07 \x03(\x02\x42\x05\x92?\x02\x10\x19R\x08jointVel\x12*\n\rjoint_current\x18\x08 \x03(\x02\x42\x05\x92?\x02\x10\x19R\x0cjointCurrent\x12$\n\njoint_temp\x18\t \x03(\x02\x42\x05\x92?\x02\x10\x19R\tjointTemp\x12\'\n\x0c\x62\x61se_ang_vel\x18\n \x03(\x02\x42\x05\x92?\x02\x10\x03R\nbaseAngVel\x12\x32\n\x11projected_gravity\x18\x0b \x03(\x02\x42\x05\x92?\x02\x10\x03R\x10projectedGravity\x12\"\n\tbase_quat\x18\x0c \x03(\x02\x42\x05\x92?\x02\x10\x04R\x08\x62\x61seQuat\x12\x1f\n\x0b\x65rror_flags\x18\r \x01(\rR\nerrorFlags\x12*\n\x11last_cmd_sequence\x18\x0e \x01(\rR\x0flastCmdSequence\x12<\n\ractive_alerts\x18\x14 \x03(\x0b\x32\x10.asimov.io.AlertB\x05\x92?\x02\x10\x30R\x0c\x61\x63tiveAlerts\x12=\n\rpolicy_timing\x18\x15 \x01(\x0b\x32\x18.asimov.io.ThreadMetricsR\x0cpolicyTiming\x12\x39\n\x0connx_metrics\x18\x16 \x01(\x0b\x32\x16.asimov.io.OnnxMetricsR\x0bonnxMetrics\x12;\n\ncan_health\x18\x17 \x03(\x0b\x32\x15.asimov.io.CanMetricsB\x05\x92?\x02\x10\x05R\tcanHealth\x12)\n\x10protocol_version\x18\x18 \x01(\rR\x0fprotocolVersion\x12\x19\n\x08\x65ol_mode\x18\x19 \x01(\x08R\x07\x65olMode\x12\x38\n\neol_status\x18\x1a \x01(\x0b\x32\x19.asimov.io.EolMotorStatusR\teolStatus\x12!\n\x0c\x65ol_complete\x18\x1b \x01(\x08R\x0b\x65olComplete\x12\x31\n\x07\x62\x61ttery\x18\x1c \x01(\x0b\x32\x17.asimov.io.BatteryStateR\x07\x62\x61tteryJ\x04\x08\x1d\x10\x1e\"\xbb\x01\n\x0c\x42\x61tteryState\x12\x1b\n\tvoltage_v\x18\x01 \x01(\x02R\x08voltageV\x12\x1b\n\tcurrent_a\x18\x02 \x01(\x02R\x08\x63urrentA\x12\x1f\n\x0bsoc_percent\x18\x03 \x01(\x02R\nsocPercent\x12%\n\x0fmax_cell_temp_c\x18\x04 \x01(\x02R\x0cmaxCellTempC\x12)\n\x10protection_flags\x18\x05 \x01(\rR\x0fprotectionFlags\"\xe4\x01\n\x0e\x45olMotorStatus\x12\x19\n\x08motor_id\x18\x01 \x01(\rR\x07motorId\x12\x1a\n\x08position\x18\x02 \x01(\x02R\x08position\x12\x1a\n\x08velocity\x18\x03 \x01(\x02R\x08velocity\x12\x18\n\x07\x63urrent\x18\x04 \x01(\x02R\x07\x63urrent\x12 \n\x0btemperature\x18\x05 \x01(\x02R\x0btemperature\x12\x1d\n\nerror_code\x18\x06 \x01(\rR\terrorCode\x12$\n\nmotor_name\x18\x07 \x01(\tB\x05\x92?\x02\x08 R\tmotorNameb\x06proto3')
|
|
31
|
+
|
|
32
|
+
_globals = globals()
|
|
33
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
34
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'asimov_state_pb2', _globals)
|
|
35
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
36
|
+
DESCRIPTOR._loaded_options = None
|
|
37
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_pos']._loaded_options = None
|
|
38
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_pos']._serialized_options = b'\222?\002\020\031'
|
|
39
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_vel']._loaded_options = None
|
|
40
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_vel']._serialized_options = b'\222?\002\020\031'
|
|
41
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_current']._loaded_options = None
|
|
42
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_current']._serialized_options = b'\222?\002\020\031'
|
|
43
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_temp']._loaded_options = None
|
|
44
|
+
_globals['_ROBOTSTATE'].fields_by_name['joint_temp']._serialized_options = b'\222?\002\020\031'
|
|
45
|
+
_globals['_ROBOTSTATE'].fields_by_name['base_ang_vel']._loaded_options = None
|
|
46
|
+
_globals['_ROBOTSTATE'].fields_by_name['base_ang_vel']._serialized_options = b'\222?\002\020\003'
|
|
47
|
+
_globals['_ROBOTSTATE'].fields_by_name['projected_gravity']._loaded_options = None
|
|
48
|
+
_globals['_ROBOTSTATE'].fields_by_name['projected_gravity']._serialized_options = b'\222?\002\020\003'
|
|
49
|
+
_globals['_ROBOTSTATE'].fields_by_name['base_quat']._loaded_options = None
|
|
50
|
+
_globals['_ROBOTSTATE'].fields_by_name['base_quat']._serialized_options = b'\222?\002\020\004'
|
|
51
|
+
_globals['_ROBOTSTATE'].fields_by_name['active_alerts']._loaded_options = None
|
|
52
|
+
_globals['_ROBOTSTATE'].fields_by_name['active_alerts']._serialized_options = b'\222?\002\0200'
|
|
53
|
+
_globals['_ROBOTSTATE'].fields_by_name['can_health']._loaded_options = None
|
|
54
|
+
_globals['_ROBOTSTATE'].fields_by_name['can_health']._serialized_options = b'\222?\002\020\005'
|
|
55
|
+
_globals['_EOLMOTORSTATUS'].fields_by_name['motor_name']._loaded_options = None
|
|
56
|
+
_globals['_EOLMOTORSTATUS'].fields_by_name['motor_name']._serialized_options = b'\222?\002\010 '
|
|
57
|
+
_globals['_ROBOTSTATE']._serialized_start=95
|
|
58
|
+
_globals['_ROBOTSTATE']._serialized_end=1054
|
|
59
|
+
_globals['_BATTERYSTATE']._serialized_start=1057
|
|
60
|
+
_globals['_BATTERYSTATE']._serialized_end=1244
|
|
61
|
+
_globals['_EOLMOTORSTATUS']._serialized_start=1247
|
|
62
|
+
_globals['_EOLMOTORSTATUS']._serialized_end=1475
|
|
63
|
+
# @@protoc_insertion_point(module_scope)
|