dexcontrol 0.2.10__py3-none-any.whl → 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dexcontrol might be problematic. Click here for more details.

Files changed (47) hide show
  1. dexcontrol/__init__.py +2 -0
  2. dexcontrol/config/core/arm.py +5 -1
  3. dexcontrol/config/core/chassis.py +9 -4
  4. dexcontrol/config/core/hand.py +2 -1
  5. dexcontrol/config/core/head.py +7 -8
  6. dexcontrol/config/core/misc.py +14 -1
  7. dexcontrol/config/core/torso.py +8 -4
  8. dexcontrol/config/sensors/cameras/__init__.py +2 -1
  9. dexcontrol/config/sensors/cameras/luxonis_camera.py +51 -0
  10. dexcontrol/config/sensors/cameras/rgb_camera.py +1 -1
  11. dexcontrol/config/sensors/cameras/zed_camera.py +2 -2
  12. dexcontrol/config/sensors/vega_sensors.py +9 -1
  13. dexcontrol/config/vega.py +34 -3
  14. dexcontrol/core/arm.py +103 -58
  15. dexcontrol/core/chassis.py +146 -115
  16. dexcontrol/core/component.py +83 -20
  17. dexcontrol/core/hand.py +74 -39
  18. dexcontrol/core/head.py +41 -28
  19. dexcontrol/core/misc.py +256 -25
  20. dexcontrol/core/robot_query_interface.py +440 -0
  21. dexcontrol/core/torso.py +28 -10
  22. dexcontrol/proto/dexcontrol_msg_pb2.py +27 -37
  23. dexcontrol/proto/dexcontrol_msg_pb2.pyi +111 -126
  24. dexcontrol/proto/dexcontrol_query_pb2.py +39 -35
  25. dexcontrol/proto/dexcontrol_query_pb2.pyi +41 -4
  26. dexcontrol/robot.py +266 -409
  27. dexcontrol/sensors/__init__.py +2 -1
  28. dexcontrol/sensors/camera/__init__.py +2 -0
  29. dexcontrol/sensors/camera/luxonis_camera.py +169 -0
  30. dexcontrol/sensors/camera/zed_camera.py +17 -8
  31. dexcontrol/sensors/imu/chassis_imu.py +5 -1
  32. dexcontrol/sensors/imu/zed_imu.py +3 -2
  33. dexcontrol/sensors/lidar/rplidar.py +1 -0
  34. dexcontrol/sensors/manager.py +3 -0
  35. dexcontrol/utils/constants.py +3 -0
  36. dexcontrol/utils/error_code.py +236 -0
  37. dexcontrol/utils/os_utils.py +183 -1
  38. dexcontrol/utils/pb_utils.py +0 -22
  39. dexcontrol/utils/subscribers/lidar.py +1 -0
  40. dexcontrol/utils/trajectory_utils.py +17 -5
  41. dexcontrol/utils/viz_utils.py +86 -11
  42. dexcontrol/utils/zenoh_utils.py +288 -2
  43. {dexcontrol-0.2.10.dist-info → dexcontrol-0.3.0.dist-info}/METADATA +15 -2
  44. dexcontrol-0.3.0.dist-info/RECORD +76 -0
  45. dexcontrol-0.2.10.dist-info/RECORD +0 -72
  46. {dexcontrol-0.2.10.dist-info → dexcontrol-0.3.0.dist-info}/WHEEL +0 -0
  47. {dexcontrol-0.2.10.dist-info → dexcontrol-0.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,120 +1,149 @@
1
1
  from collections.abc import Iterable as _Iterable
2
- from collections.abc import Mapping as _Mapping
3
2
  from typing import ClassVar as _ClassVar
4
3
  from typing import Optional as _Optional
5
- from typing import Union as _Union
6
4
 
7
5
  from google.protobuf import descriptor as _descriptor
8
6
  from google.protobuf import message as _message
9
7
  from google.protobuf.internal import containers as _containers
10
- from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
11
8
 
12
9
  DESCRIPTOR: _descriptor.FileDescriptor
13
10
 
14
- class ArmState(_message.Message):
15
- __slots__ = ("joint_pos", "joint_vel", "joint_cur", "joint_err")
16
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
17
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
18
- JOINT_CUR_FIELD_NUMBER: _ClassVar[int]
19
- JOINT_ERR_FIELD_NUMBER: _ClassVar[int]
20
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
21
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
22
- joint_cur: _containers.RepeatedScalarFieldContainer[float]
23
- joint_err: _containers.RepeatedScalarFieldContainer[int]
24
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ..., joint_cur: _Optional[_Iterable[float]] = ..., joint_err: _Optional[_Iterable[int]] = ...) -> None: ...
25
-
26
- class HandState(_message.Message):
27
- __slots__ = ("joint_pos", "joint_vel", "joint_statu")
28
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
29
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
30
- JOINT_STATU_FIELD_NUMBER: _ClassVar[int]
31
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
32
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
33
- joint_statu: _containers.RepeatedScalarFieldContainer[int]
34
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ..., joint_statu: _Optional[_Iterable[int]] = ...) -> None: ...
35
-
36
- class HeadState(_message.Message):
37
- __slots__ = ("joint_pos", "joint_vel")
38
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
39
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
40
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
41
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
42
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ...) -> None: ...
43
-
44
- class TorsoState(_message.Message):
45
- __slots__ = ("joint_pos", "joint_vel")
46
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
47
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
48
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
49
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
50
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ...) -> None: ...
51
-
52
- class SingleWheelState(_message.Message):
53
- __slots__ = ("steering_pos", "wheel_pos", "wheel_vel", "wheel_cur")
54
- STEERING_POS_FIELD_NUMBER: _ClassVar[int]
55
- WHEEL_POS_FIELD_NUMBER: _ClassVar[int]
56
- WHEEL_VEL_FIELD_NUMBER: _ClassVar[int]
57
- WHEEL_CUR_FIELD_NUMBER: _ClassVar[int]
58
- steering_pos: float
59
- wheel_pos: float
60
- wheel_vel: float
61
- wheel_cur: float
62
- def __init__(self, steering_pos: _Optional[float] = ..., wheel_pos: _Optional[float] = ..., wheel_vel: _Optional[float] = ..., wheel_cur: _Optional[float] = ...) -> None: ...
63
-
64
- class ChassisState(_message.Message):
65
- __slots__ = ("left", "right")
66
- LEFT_FIELD_NUMBER: _ClassVar[int]
67
- RIGHT_FIELD_NUMBER: _ClassVar[int]
68
- left: SingleWheelState
69
- right: SingleWheelState
70
- def __init__(self, left: _Optional[_Union[SingleWheelState, _Mapping]] = ..., right: _Optional[_Union[SingleWheelState, _Mapping]] = ...) -> None: ...
11
+ class MotorStateWithTorque(_message.Message):
12
+ __slots__ = ("pos", "vel", "torque", "error", "timestamp_ns")
13
+ POS_FIELD_NUMBER: _ClassVar[int]
14
+ VEL_FIELD_NUMBER: _ClassVar[int]
15
+ TORQUE_FIELD_NUMBER: _ClassVar[int]
16
+ ERROR_FIELD_NUMBER: _ClassVar[int]
17
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
18
+ pos: _containers.RepeatedScalarFieldContainer[float]
19
+ vel: _containers.RepeatedScalarFieldContainer[float]
20
+ torque: _containers.RepeatedScalarFieldContainer[float]
21
+ error: _containers.RepeatedScalarFieldContainer[int]
22
+ timestamp_ns: int
23
+ def __init__(self, pos: _Optional[_Iterable[float]] = ..., vel: _Optional[_Iterable[float]] = ..., torque: _Optional[_Iterable[float]] = ..., error: _Optional[_Iterable[int]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
24
+
25
+ class MotorStateWithCurrent(_message.Message):
26
+ __slots__ = ("pos", "vel", "cur", "error", "timestamp_ns")
27
+ POS_FIELD_NUMBER: _ClassVar[int]
28
+ VEL_FIELD_NUMBER: _ClassVar[int]
29
+ CUR_FIELD_NUMBER: _ClassVar[int]
30
+ ERROR_FIELD_NUMBER: _ClassVar[int]
31
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
32
+ pos: _containers.RepeatedScalarFieldContainer[float]
33
+ vel: _containers.RepeatedScalarFieldContainer[float]
34
+ cur: _containers.RepeatedScalarFieldContainer[float]
35
+ error: _containers.RepeatedScalarFieldContainer[int]
36
+ timestamp_ns: int
37
+ def __init__(self, pos: _Optional[_Iterable[float]] = ..., vel: _Optional[_Iterable[float]] = ..., cur: _Optional[_Iterable[float]] = ..., error: _Optional[_Iterable[int]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
38
+
39
+ class MotorPosCommand(_message.Message):
40
+ __slots__ = ("pos", "timestamp_ns")
41
+ POS_FIELD_NUMBER: _ClassVar[int]
42
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
43
+ pos: _containers.RepeatedScalarFieldContainer[float]
44
+ timestamp_ns: int
45
+ def __init__(self, pos: _Optional[_Iterable[float]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
46
+
47
+ class MotorVelCommand(_message.Message):
48
+ __slots__ = ("vel", "timestamp_ns")
49
+ VEL_FIELD_NUMBER: _ClassVar[int]
50
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
51
+ vel: _containers.RepeatedScalarFieldContainer[float]
52
+ timestamp_ns: int
53
+ def __init__(self, vel: _Optional[_Iterable[float]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
54
+
55
+ class MotorPosVelCommand(_message.Message):
56
+ __slots__ = ("pos", "vel", "timestamp_ns")
57
+ POS_FIELD_NUMBER: _ClassVar[int]
58
+ VEL_FIELD_NUMBER: _ClassVar[int]
59
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
60
+ pos: _containers.RepeatedScalarFieldContainer[float]
61
+ vel: _containers.RepeatedScalarFieldContainer[float]
62
+ timestamp_ns: int
63
+ def __init__(self, pos: _Optional[_Iterable[float]] = ..., vel: _Optional[_Iterable[float]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
64
+
65
+ class MotorPosVelCurrentCommand(_message.Message):
66
+ __slots__ = ("pos", "vel", "cur", "timestamp_ns")
67
+ POS_FIELD_NUMBER: _ClassVar[int]
68
+ VEL_FIELD_NUMBER: _ClassVar[int]
69
+ CUR_FIELD_NUMBER: _ClassVar[int]
70
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
71
+ pos: _containers.RepeatedScalarFieldContainer[float]
72
+ vel: _containers.RepeatedScalarFieldContainer[float]
73
+ cur: _containers.RepeatedScalarFieldContainer[float]
74
+ timestamp_ns: int
75
+ def __init__(self, pos: _Optional[_Iterable[float]] = ..., vel: _Optional[_Iterable[float]] = ..., cur: _Optional[_Iterable[float]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
76
+
77
+ class EndEffectorPassThroughCommand(_message.Message):
78
+ __slots__ = ("data", "timestamp_ns")
79
+ DATA_FIELD_NUMBER: _ClassVar[int]
80
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
81
+ data: bytes
82
+ timestamp_ns: int
83
+ def __init__(self, data: _Optional[bytes] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
71
84
 
72
85
  class BMSState(_message.Message):
73
- __slots__ = ("voltage", "current", "temperature", "percentage", "is_charging")
86
+ __slots__ = ("voltage", "current", "temperature", "percentage", "is_charging", "error", "timestamp_ns")
74
87
  VOLTAGE_FIELD_NUMBER: _ClassVar[int]
75
88
  CURRENT_FIELD_NUMBER: _ClassVar[int]
76
89
  TEMPERATURE_FIELD_NUMBER: _ClassVar[int]
77
90
  PERCENTAGE_FIELD_NUMBER: _ClassVar[int]
78
91
  IS_CHARGING_FIELD_NUMBER: _ClassVar[int]
92
+ ERROR_FIELD_NUMBER: _ClassVar[int]
93
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
79
94
  voltage: float
80
95
  current: float
81
96
  temperature: float
82
97
  percentage: int
83
98
  is_charging: bool
84
- def __init__(self, voltage: _Optional[float] = ..., current: _Optional[float] = ..., temperature: _Optional[float] = ..., percentage: _Optional[int] = ..., is_charging: bool = ...) -> None: ...
99
+ error: int
100
+ timestamp_ns: int
101
+ def __init__(self, voltage: _Optional[float] = ..., current: _Optional[float] = ..., temperature: _Optional[float] = ..., percentage: _Optional[int] = ..., is_charging: bool = ..., error: _Optional[int] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
85
102
 
86
103
  class WrenchState(_message.Message):
87
- __slots__ = ("wrench", "blue_button", "green_button")
104
+ __slots__ = ("wrench", "blue_button", "green_button", "timestamp_ns")
88
105
  WRENCH_FIELD_NUMBER: _ClassVar[int]
89
106
  BLUE_BUTTON_FIELD_NUMBER: _ClassVar[int]
90
107
  GREEN_BUTTON_FIELD_NUMBER: _ClassVar[int]
108
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
91
109
  wrench: _containers.RepeatedScalarFieldContainer[float]
92
110
  blue_button: bool
93
111
  green_button: bool
94
- def __init__(self, wrench: _Optional[_Iterable[float]] = ..., blue_button: bool = ..., green_button: bool = ...) -> None: ...
112
+ timestamp_ns: int
113
+ def __init__(self, wrench: _Optional[_Iterable[float]] = ..., blue_button: bool = ..., green_button: bool = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
95
114
 
96
115
  class EStopState(_message.Message):
97
- __slots__ = ("button_pressed", "software_estop_enabled")
98
- BUTTON_PRESSED_FIELD_NUMBER: _ClassVar[int]
116
+ __slots__ = ("software_estop_enabled", "left_button_pressed", "right_button_pressed", "waist_button_pressed", "wireless_button_pressed", "timestamp_ns")
99
117
  SOFTWARE_ESTOP_ENABLED_FIELD_NUMBER: _ClassVar[int]
100
- button_pressed: bool
118
+ LEFT_BUTTON_PRESSED_FIELD_NUMBER: _ClassVar[int]
119
+ RIGHT_BUTTON_PRESSED_FIELD_NUMBER: _ClassVar[int]
120
+ WAIST_BUTTON_PRESSED_FIELD_NUMBER: _ClassVar[int]
121
+ WIRELESS_BUTTON_PRESSED_FIELD_NUMBER: _ClassVar[int]
122
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
101
123
  software_estop_enabled: bool
102
- def __init__(self, button_pressed: bool = ..., software_estop_enabled: bool = ...) -> None: ...
124
+ left_button_pressed: bool
125
+ right_button_pressed: bool
126
+ waist_button_pressed: bool
127
+ wireless_button_pressed: bool
128
+ timestamp_ns: int
129
+ def __init__(self, software_estop_enabled: bool = ..., left_button_pressed: bool = ..., right_button_pressed: bool = ..., waist_button_pressed: bool = ..., wireless_button_pressed: bool = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
103
130
 
104
131
  class UltrasonicState(_message.Message):
105
- __slots__ = ("front_left", "front_right", "back_left", "back_right")
132
+ __slots__ = ("front_left", "front_right", "back_left", "back_right", "timestamp_ns")
106
133
  FRONT_LEFT_FIELD_NUMBER: _ClassVar[int]
107
134
  FRONT_RIGHT_FIELD_NUMBER: _ClassVar[int]
108
135
  BACK_LEFT_FIELD_NUMBER: _ClassVar[int]
109
136
  BACK_RIGHT_FIELD_NUMBER: _ClassVar[int]
137
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
110
138
  front_left: float
111
139
  front_right: float
112
140
  back_left: float
113
141
  back_right: float
114
- def __init__(self, front_left: _Optional[float] = ..., front_right: _Optional[float] = ..., back_left: _Optional[float] = ..., back_right: _Optional[float] = ...) -> None: ...
142
+ timestamp_ns: int
143
+ def __init__(self, front_left: _Optional[float] = ..., front_right: _Optional[float] = ..., back_left: _Optional[float] = ..., back_right: _Optional[float] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
115
144
 
116
145
  class IMUState(_message.Message):
117
- __slots__ = ("acc_x", "acc_y", "acc_z", "gyro_x", "gyro_y", "gyro_z", "quat_w", "quat_x", "quat_y", "quat_z")
146
+ __slots__ = ("acc_x", "acc_y", "acc_z", "gyro_x", "gyro_y", "gyro_z", "quat_w", "quat_x", "quat_y", "quat_z", "timestamp_ns")
118
147
  ACC_X_FIELD_NUMBER: _ClassVar[int]
119
148
  ACC_Y_FIELD_NUMBER: _ClassVar[int]
120
149
  ACC_Z_FIELD_NUMBER: _ClassVar[int]
@@ -125,6 +154,7 @@ class IMUState(_message.Message):
125
154
  QUAT_X_FIELD_NUMBER: _ClassVar[int]
126
155
  QUAT_Y_FIELD_NUMBER: _ClassVar[int]
127
156
  QUAT_Z_FIELD_NUMBER: _ClassVar[int]
157
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
128
158
  acc_x: float
129
159
  acc_y: float
130
160
  acc_z: float
@@ -135,58 +165,13 @@ class IMUState(_message.Message):
135
165
  quat_x: float
136
166
  quat_y: float
137
167
  quat_z: float
138
- def __init__(self, acc_x: _Optional[float] = ..., acc_y: _Optional[float] = ..., acc_z: _Optional[float] = ..., gyro_x: _Optional[float] = ..., gyro_y: _Optional[float] = ..., gyro_z: _Optional[float] = ..., quat_w: _Optional[float] = ..., quat_x: _Optional[float] = ..., quat_y: _Optional[float] = ..., quat_z: _Optional[float] = ...) -> None: ...
139
-
140
- class ArmCommand(_message.Message):
141
- __slots__ = ("command_type", "joint_pos", "joint_vel")
142
- class CommandType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
143
- __slots__ = ()
144
- POSITION: _ClassVar[ArmCommand.CommandType]
145
- VELOCITY_FEEDFORWARD: _ClassVar[ArmCommand.CommandType]
146
- POSITION: ArmCommand.CommandType
147
- VELOCITY_FEEDFORWARD: ArmCommand.CommandType
148
- COMMAND_TYPE_FIELD_NUMBER: _ClassVar[int]
149
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
150
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
151
- command_type: ArmCommand.CommandType
152
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
153
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
154
- def __init__(self, command_type: _Optional[_Union[ArmCommand.CommandType, str]] = ..., joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ...) -> None: ...
155
-
156
- class HandCommand(_message.Message):
157
- __slots__ = ("joint_pos",)
158
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
159
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
160
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ...) -> None: ...
161
-
162
- class HeadCommand(_message.Message):
163
- __slots__ = ("joint_pos", "joint_vel")
164
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
165
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
166
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
167
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
168
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ...) -> None: ...
169
-
170
- class TorsoCommand(_message.Message):
171
- __slots__ = ("joint_pos", "joint_vel")
172
- JOINT_POS_FIELD_NUMBER: _ClassVar[int]
173
- JOINT_VEL_FIELD_NUMBER: _ClassVar[int]
174
- joint_pos: _containers.RepeatedScalarFieldContainer[float]
175
- joint_vel: _containers.RepeatedScalarFieldContainer[float]
176
- def __init__(self, joint_pos: _Optional[_Iterable[float]] = ..., joint_vel: _Optional[_Iterable[float]] = ...) -> None: ...
177
-
178
- class SingleWheelCommand(_message.Message):
179
- __slots__ = ("steering_pos", "wheel_vel")
180
- STEERING_POS_FIELD_NUMBER: _ClassVar[int]
181
- WHEEL_VEL_FIELD_NUMBER: _ClassVar[int]
182
- steering_pos: float
183
- wheel_vel: float
184
- def __init__(self, steering_pos: _Optional[float] = ..., wheel_vel: _Optional[float] = ...) -> None: ...
185
-
186
- class ChassisCommand(_message.Message):
187
- __slots__ = ("left", "right")
188
- LEFT_FIELD_NUMBER: _ClassVar[int]
189
- RIGHT_FIELD_NUMBER: _ClassVar[int]
190
- left: SingleWheelCommand
191
- right: SingleWheelCommand
192
- def __init__(self, left: _Optional[_Union[SingleWheelCommand, _Mapping]] = ..., right: _Optional[_Union[SingleWheelCommand, _Mapping]] = ...) -> None: ...
168
+ timestamp_ns: int
169
+ def __init__(self, acc_x: _Optional[float] = ..., acc_y: _Optional[float] = ..., acc_z: _Optional[float] = ..., gyro_x: _Optional[float] = ..., gyro_y: _Optional[float] = ..., gyro_z: _Optional[float] = ..., quat_w: _Optional[float] = ..., quat_x: _Optional[float] = ..., quat_y: _Optional[float] = ..., quat_z: _Optional[float] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
170
+
171
+ class HandTouchSensorState(_message.Message):
172
+ __slots__ = ("force", "timestamp_ns")
173
+ FORCE_FIELD_NUMBER: _ClassVar[int]
174
+ TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int]
175
+ force: _containers.RepeatedScalarFieldContainer[float]
176
+ timestamp_ns: int
177
+ def __init__(self, force: _Optional[_Iterable[float]] = ..., timestamp_ns: _Optional[int] = ...) -> None: ...
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
25
25
 
26
26
 
27
27
 
28
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x64\x65xcontrol_query.proto\x12\ndexcontrol\"Z\n\nSetArmMode\x12)\n\x04mode\x18\x01 \x01(\x0e\x32\x1b.dexcontrol.SetArmMode.Mode\"!\n\x04Mode\x12\x0c\n\x08POSITION\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\"Z\n\x0bSetHeadMode\x12*\n\x04mode\x18\x01 \x01(\x0e\x32\x1c.dexcontrol.SetHeadMode.Mode\"\x1f\n\x04Mode\x12\n\n\x06\x45NABLE\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\"\x1a\n\x08SetEstop\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\"\x18\n\x06SetLed\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\"\x82\x01\n\nClearError\x12\x33\n\tcomponent\x18\x01 \x01(\x0e\x32 .dexcontrol.ClearError.Component\"?\n\tComponent\x12\x0c\n\x08LEFT_ARM\x10\x00\x12\r\n\tRIGHT_ARM\x10\x01\x12\x08\n\x04HEAD\x10\x02\x12\x0b\n\x07\x43HASSIS\x10\x03\"y\n\x0fRebootComponent\x12\x38\n\tcomponent\x18\x01 \x01(\x0e\x32%.dexcontrol.RebootComponent.Component\",\n\tComponent\x12\x07\n\x03\x41RM\x10\x00\x12\t\n\x05TORSO\x10\x01\x12\x0b\n\x07\x43HASSIS\x10\x02\"\x80\x01\n\x0f\x46irmwareVersion\x12\x18\n\x10hardware_version\x18\x01 \x01(\x05\x12\x18\n\x10software_version\x18\x02 \x01(\x05\x12\x14\n\x0c\x63ompile_time\x18\x03 \x01(\x05\x12\x11\n\tmain_hash\x18\x04 \x01(\t\x12\x10\n\x08sub_hash\x18\x05 \x01(\t\"\xb2\x01\n\x0fSoftwareVersion\x12J\n\x10\x66irmware_version\x18\x01 \x03(\x0b\x32\x30.dexcontrol.SoftwareVersion.FirmwareVersionEntry\x1aS\n\x14\x46irmwareVersionEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.dexcontrol.FirmwareVersion:\x02\x38\x01\"\x9d\x01\n\x14SingleComponentState\x12\x11\n\tconnected\x18\x01 \x01(\x08\x12,\n\x07\x65nabled\x18\x02 \x01(\x0e\x32\x1b.dexcontrol.ComponentStatus\x12\x30\n\x0b\x65rror_state\x18\x03 \x01(\x0e\x32\x1b.dexcontrol.ComponentStatus\x12\x12\n\nerror_code\x18\x04 \x01(\t\"\x9b\x01\n\x0f\x43omponentStates\x12\x37\n\x06states\x18\x01 \x03(\x0b\x32\'.dexcontrol.ComponentStates.StatesEntry\x1aO\n\x0bStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .dexcontrol.SingleComponentState:\x02\x38\x01*0\n\x0f\x43omponentStatus\x12\n\n\x06NORMAL\x10\x00\x12\x06\n\x02NA\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x62\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x64\x65xcontrol_query.proto\x12\ndexcontrol\"\xbe\x01\n\nSetArmMode\x12)\n\x04mode\x18\x01 \x01(\x0e\x32\x1b.dexcontrol.SetArmMode.Mode\x12*\n\x05modes\x18\x02 \x03(\x0e\x32\x1b.dexcontrol.SetArmMode.Mode\"Y\n\x04Mode\x12\x0c\n\x08POSITION\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\x12\x0b\n\x07\x43URRENT\x10\x02\x12\x0c\n\x08VELOCITY\x10\x03\x12\n\n\x06\x45NABLE\x10\x04\x12\x0f\n\x0b\x43\x41LIBRATION\x10\x05\"\x87\x01\n\x0bSetHeadMode\x12*\n\x04mode\x18\x01 \x01(\x0e\x32\x1c.dexcontrol.SetHeadMode.Mode\x12+\n\x05modes\x18\x02 \x03(\x0e\x32\x1c.dexcontrol.SetHeadMode.Mode\"\x1f\n\x04Mode\x12\n\n\x06\x45NABLE\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\"\x1a\n\x08SetEstop\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\"\x18\n\x06SetLed\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\"\x82\x01\n\nClearError\x12\x33\n\tcomponent\x18\x01 \x01(\x0e\x32 .dexcontrol.ClearError.Component\"?\n\tComponent\x12\x0c\n\x08LEFT_ARM\x10\x00\x12\r\n\tRIGHT_ARM\x10\x01\x12\x08\n\x04HEAD\x10\x02\x12\x0b\n\x07\x43HASSIS\x10\x03\"y\n\x0fRebootComponent\x12\x38\n\tcomponent\x18\x01 \x01(\x0e\x32%.dexcontrol.RebootComponent.Component\",\n\tComponent\x12\x07\n\x03\x41RM\x10\x00\x12\t\n\x05TORSO\x10\x01\x12\x0b\n\x07\x43HASSIS\x10\x02\"\x80\x01\n\x0f\x46irmwareVersion\x12\x18\n\x10hardware_version\x18\x01 \x01(\x05\x12\x18\n\x10software_version\x18\x02 \x01(\x05\x12\x14\n\x0c\x63ompile_time\x18\x03 \x01(\x05\x12\x11\n\tmain_hash\x18\x04 \x01(\t\x12\x10\n\x08sub_hash\x18\x05 \x01(\t\"\xb2\x01\n\x0fSoftwareVersion\x12J\n\x10\x66irmware_version\x18\x01 \x03(\x0b\x32\x30.dexcontrol.SoftwareVersion.FirmwareVersionEntry\x1aS\n\x14\x46irmwareVersionEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.dexcontrol.FirmwareVersion:\x02\x38\x01\"\x9d\x01\n\x14SingleComponentState\x12\x11\n\tconnected\x18\x01 \x01(\x08\x12,\n\x07\x65nabled\x18\x02 \x01(\x0e\x32\x1b.dexcontrol.ComponentStatus\x12\x30\n\x0b\x65rror_state\x18\x03 \x01(\x0e\x32\x1b.dexcontrol.ComponentStatus\x12\x12\n\nerror_code\x18\x04 \x01(\t\"\x9b\x01\n\x0f\x43omponentStates\x12\x37\n\x06states\x18\x01 \x03(\x0b\x32\'.dexcontrol.ComponentStates.StatesEntry\x1aO\n\x0bStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .dexcontrol.SingleComponentState:\x02\x38\x01\"U\n\nNTPRequest\x12\x1b\n\x13\x63lient_send_time_ns\x18\x01 \x01(\x04\x12\x14\n\x0csample_count\x18\x02 \x01(\r\x12\x14\n\x0csample_index\x18\x03 \x01(\r\"\x94\x01\n\x0bNTPResponse\x12\x1b\n\x13\x63lient_send_time_ns\x18\x01 \x01(\x04\x12\x1e\n\x16server_receive_time_ns\x18\x02 \x01(\x04\x12\x1b\n\x13server_send_time_ns\x18\x03 \x01(\x04\x12\x14\n\x0csample_index\x18\x04 \x01(\r\x12\x15\n\rtotal_samples\x18\x05 \x01(\r*0\n\x0f\x43omponentStatus\x12\n\n\x06NORMAL\x10\x00\x12\x06\n\x02NA\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x62\x06proto3')
29
29
 
30
30
  _globals = globals()
31
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -36,38 +36,42 @@ if not _descriptor._USE_C_DESCRIPTORS:
36
36
  _globals['_SOFTWAREVERSION_FIRMWAREVERSIONENTRY']._serialized_options = b'8\001'
37
37
  _globals['_COMPONENTSTATES_STATESENTRY']._loaded_options = None
38
38
  _globals['_COMPONENTSTATES_STATESENTRY']._serialized_options = b'8\001'
39
- _globals['_COMPONENTSTATUS']._serialized_start=1162
40
- _globals['_COMPONENTSTATUS']._serialized_end=1210
41
- _globals['_SETARMMODE']._serialized_start=38
42
- _globals['_SETARMMODE']._serialized_end=128
43
- _globals['_SETARMMODE_MODE']._serialized_start=95
44
- _globals['_SETARMMODE_MODE']._serialized_end=128
45
- _globals['_SETHEADMODE']._serialized_start=130
46
- _globals['_SETHEADMODE']._serialized_end=220
47
- _globals['_SETHEADMODE_MODE']._serialized_start=189
48
- _globals['_SETHEADMODE_MODE']._serialized_end=220
49
- _globals['_SETESTOP']._serialized_start=222
50
- _globals['_SETESTOP']._serialized_end=248
51
- _globals['_SETLED']._serialized_start=250
52
- _globals['_SETLED']._serialized_end=274
53
- _globals['_CLEARERROR']._serialized_start=277
54
- _globals['_CLEARERROR']._serialized_end=407
55
- _globals['_CLEARERROR_COMPONENT']._serialized_start=344
56
- _globals['_CLEARERROR_COMPONENT']._serialized_end=407
57
- _globals['_REBOOTCOMPONENT']._serialized_start=409
58
- _globals['_REBOOTCOMPONENT']._serialized_end=530
59
- _globals['_REBOOTCOMPONENT_COMPONENT']._serialized_start=486
60
- _globals['_REBOOTCOMPONENT_COMPONENT']._serialized_end=530
61
- _globals['_FIRMWAREVERSION']._serialized_start=533
62
- _globals['_FIRMWAREVERSION']._serialized_end=661
63
- _globals['_SOFTWAREVERSION']._serialized_start=664
64
- _globals['_SOFTWAREVERSION']._serialized_end=842
65
- _globals['_SOFTWAREVERSION_FIRMWAREVERSIONENTRY']._serialized_start=759
66
- _globals['_SOFTWAREVERSION_FIRMWAREVERSIONENTRY']._serialized_end=842
67
- _globals['_SINGLECOMPONENTSTATE']._serialized_start=845
68
- _globals['_SINGLECOMPONENTSTATE']._serialized_end=1002
69
- _globals['_COMPONENTSTATES']._serialized_start=1005
70
- _globals['_COMPONENTSTATES']._serialized_end=1160
71
- _globals['_COMPONENTSTATES_STATESENTRY']._serialized_start=1081
72
- _globals['_COMPONENTSTATES_STATESENTRY']._serialized_end=1160
39
+ _globals['_COMPONENTSTATUS']._serialized_start=1547
40
+ _globals['_COMPONENTSTATUS']._serialized_end=1595
41
+ _globals['_SETARMMODE']._serialized_start=39
42
+ _globals['_SETARMMODE']._serialized_end=229
43
+ _globals['_SETARMMODE_MODE']._serialized_start=140
44
+ _globals['_SETARMMODE_MODE']._serialized_end=229
45
+ _globals['_SETHEADMODE']._serialized_start=232
46
+ _globals['_SETHEADMODE']._serialized_end=367
47
+ _globals['_SETHEADMODE_MODE']._serialized_start=336
48
+ _globals['_SETHEADMODE_MODE']._serialized_end=367
49
+ _globals['_SETESTOP']._serialized_start=369
50
+ _globals['_SETESTOP']._serialized_end=395
51
+ _globals['_SETLED']._serialized_start=397
52
+ _globals['_SETLED']._serialized_end=421
53
+ _globals['_CLEARERROR']._serialized_start=424
54
+ _globals['_CLEARERROR']._serialized_end=554
55
+ _globals['_CLEARERROR_COMPONENT']._serialized_start=491
56
+ _globals['_CLEARERROR_COMPONENT']._serialized_end=554
57
+ _globals['_REBOOTCOMPONENT']._serialized_start=556
58
+ _globals['_REBOOTCOMPONENT']._serialized_end=677
59
+ _globals['_REBOOTCOMPONENT_COMPONENT']._serialized_start=633
60
+ _globals['_REBOOTCOMPONENT_COMPONENT']._serialized_end=677
61
+ _globals['_FIRMWAREVERSION']._serialized_start=680
62
+ _globals['_FIRMWAREVERSION']._serialized_end=808
63
+ _globals['_SOFTWAREVERSION']._serialized_start=811
64
+ _globals['_SOFTWAREVERSION']._serialized_end=989
65
+ _globals['_SOFTWAREVERSION_FIRMWAREVERSIONENTRY']._serialized_start=906
66
+ _globals['_SOFTWAREVERSION_FIRMWAREVERSIONENTRY']._serialized_end=989
67
+ _globals['_SINGLECOMPONENTSTATE']._serialized_start=992
68
+ _globals['_SINGLECOMPONENTSTATE']._serialized_end=1149
69
+ _globals['_COMPONENTSTATES']._serialized_start=1152
70
+ _globals['_COMPONENTSTATES']._serialized_end=1307
71
+ _globals['_COMPONENTSTATES_STATESENTRY']._serialized_start=1228
72
+ _globals['_COMPONENTSTATES_STATESENTRY']._serialized_end=1307
73
+ _globals['_NTPREQUEST']._serialized_start=1309
74
+ _globals['_NTPREQUEST']._serialized_end=1394
75
+ _globals['_NTPRESPONSE']._serialized_start=1397
76
+ _globals['_NTPRESPONSE']._serialized_end=1545
73
77
  # @@protoc_insertion_point(module_scope)
@@ -1,3 +1,4 @@
1
+ from collections.abc import Iterable as _Iterable
1
2
  from collections.abc import Mapping as _Mapping
2
3
  from typing import ClassVar as _ClassVar
3
4
  from typing import Optional as _Optional
@@ -20,19 +21,29 @@ NA: ComponentStatus
20
21
  ERROR: ComponentStatus
21
22
 
22
23
  class SetArmMode(_message.Message):
23
- __slots__ = ("mode",)
24
+ __slots__ = ("mode", "modes")
24
25
  class Mode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
25
26
  __slots__ = ()
26
27
  POSITION: _ClassVar[SetArmMode.Mode]
27
28
  DISABLE: _ClassVar[SetArmMode.Mode]
29
+ CURRENT: _ClassVar[SetArmMode.Mode]
30
+ VELOCITY: _ClassVar[SetArmMode.Mode]
31
+ ENABLE: _ClassVar[SetArmMode.Mode]
32
+ CALIBRATION: _ClassVar[SetArmMode.Mode]
28
33
  POSITION: SetArmMode.Mode
29
34
  DISABLE: SetArmMode.Mode
35
+ CURRENT: SetArmMode.Mode
36
+ VELOCITY: SetArmMode.Mode
37
+ ENABLE: SetArmMode.Mode
38
+ CALIBRATION: SetArmMode.Mode
30
39
  MODE_FIELD_NUMBER: _ClassVar[int]
40
+ MODES_FIELD_NUMBER: _ClassVar[int]
31
41
  mode: SetArmMode.Mode
32
- def __init__(self, mode: _Optional[_Union[SetArmMode.Mode, str]] = ...) -> None: ...
42
+ modes: _containers.RepeatedScalarFieldContainer[SetArmMode.Mode]
43
+ def __init__(self, mode: _Optional[_Union[SetArmMode.Mode, str]] = ..., modes: _Optional[_Iterable[_Union[SetArmMode.Mode, str]]] = ...) -> None: ...
33
44
 
34
45
  class SetHeadMode(_message.Message):
35
- __slots__ = ("mode",)
46
+ __slots__ = ("mode", "modes")
36
47
  class Mode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
37
48
  __slots__ = ()
38
49
  ENABLE: _ClassVar[SetHeadMode.Mode]
@@ -40,8 +51,10 @@ class SetHeadMode(_message.Message):
40
51
  ENABLE: SetHeadMode.Mode
41
52
  DISABLE: SetHeadMode.Mode
42
53
  MODE_FIELD_NUMBER: _ClassVar[int]
54
+ MODES_FIELD_NUMBER: _ClassVar[int]
43
55
  mode: SetHeadMode.Mode
44
- def __init__(self, mode: _Optional[_Union[SetHeadMode.Mode, str]] = ...) -> None: ...
56
+ modes: _containers.RepeatedScalarFieldContainer[SetHeadMode.Mode]
57
+ def __init__(self, mode: _Optional[_Union[SetHeadMode.Mode, str]] = ..., modes: _Optional[_Iterable[_Union[SetHeadMode.Mode, str]]] = ...) -> None: ...
45
58
 
46
59
  class SetEstop(_message.Message):
47
60
  __slots__ = ("enable",)
@@ -136,3 +149,27 @@ class ComponentStates(_message.Message):
136
149
  STATES_FIELD_NUMBER: _ClassVar[int]
137
150
  states: _containers.MessageMap[str, SingleComponentState]
138
151
  def __init__(self, states: _Optional[_Mapping[str, SingleComponentState]] = ...) -> None: ...
152
+
153
+ class NTPRequest(_message.Message):
154
+ __slots__ = ("client_send_time_ns", "sample_count", "sample_index")
155
+ CLIENT_SEND_TIME_NS_FIELD_NUMBER: _ClassVar[int]
156
+ SAMPLE_COUNT_FIELD_NUMBER: _ClassVar[int]
157
+ SAMPLE_INDEX_FIELD_NUMBER: _ClassVar[int]
158
+ client_send_time_ns: int
159
+ sample_count: int
160
+ sample_index: int
161
+ def __init__(self, client_send_time_ns: _Optional[int] = ..., sample_count: _Optional[int] = ..., sample_index: _Optional[int] = ...) -> None: ...
162
+
163
+ class NTPResponse(_message.Message):
164
+ __slots__ = ("client_send_time_ns", "server_receive_time_ns", "server_send_time_ns", "sample_index", "total_samples")
165
+ CLIENT_SEND_TIME_NS_FIELD_NUMBER: _ClassVar[int]
166
+ SERVER_RECEIVE_TIME_NS_FIELD_NUMBER: _ClassVar[int]
167
+ SERVER_SEND_TIME_NS_FIELD_NUMBER: _ClassVar[int]
168
+ SAMPLE_INDEX_FIELD_NUMBER: _ClassVar[int]
169
+ TOTAL_SAMPLES_FIELD_NUMBER: _ClassVar[int]
170
+ client_send_time_ns: int
171
+ server_receive_time_ns: int
172
+ server_send_time_ns: int
173
+ sample_index: int
174
+ total_samples: int
175
+ def __init__(self, client_send_time_ns: _Optional[int] = ..., server_receive_time_ns: _Optional[int] = ..., server_send_time_ns: _Optional[int] = ..., sample_index: _Optional[int] = ..., total_samples: _Optional[int] = ...) -> None: ...