kuavo-humanoid-sdk 1.2.1b3323__20250918212129-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 kuavo-humanoid-sdk might be problematic. Click here for more details.
- kuavo_humanoid_sdk/__init__.py +6 -0
- kuavo_humanoid_sdk/common/logger.py +45 -0
- kuavo_humanoid_sdk/interfaces/__init__.py +4 -0
- kuavo_humanoid_sdk/interfaces/data_types.py +288 -0
- kuavo_humanoid_sdk/interfaces/end_effector.py +62 -0
- kuavo_humanoid_sdk/interfaces/robot.py +22 -0
- kuavo_humanoid_sdk/interfaces/robot_info.py +56 -0
- kuavo_humanoid_sdk/kuavo/__init__.py +16 -0
- kuavo_humanoid_sdk/kuavo/core/audio.py +32 -0
- kuavo_humanoid_sdk/kuavo/core/core.py +666 -0
- kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +114 -0
- kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +67 -0
- kuavo_humanoid_sdk/kuavo/core/llm_doubao.py +608 -0
- kuavo_humanoid_sdk/kuavo/core/microphone.py +192 -0
- kuavo_humanoid_sdk/kuavo/core/navigation.py +70 -0
- kuavo_humanoid_sdk/kuavo/core/ros/audio.py +110 -0
- kuavo_humanoid_sdk/kuavo/core/ros/camera.py +105 -0
- kuavo_humanoid_sdk/kuavo/core/ros/control.py +1524 -0
- kuavo_humanoid_sdk/kuavo/core/ros/microphone.py +38 -0
- kuavo_humanoid_sdk/kuavo/core/ros/navigation.py +217 -0
- kuavo_humanoid_sdk/kuavo/core/ros/observation.py +94 -0
- kuavo_humanoid_sdk/kuavo/core/ros/param.py +201 -0
- kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +103 -0
- kuavo_humanoid_sdk/kuavo/core/ros/state.py +652 -0
- kuavo_humanoid_sdk/kuavo/core/ros/tools.py +220 -0
- kuavo_humanoid_sdk/kuavo/core/ros/vision.py +234 -0
- kuavo_humanoid_sdk/kuavo/core/ros_env.py +238 -0
- kuavo_humanoid_sdk/kuavo/core/sdk_deprecated.py +41 -0
- kuavo_humanoid_sdk/kuavo/demo_climbstair.py +249 -0
- kuavo_humanoid_sdk/kuavo/dexterous_hand.py +238 -0
- kuavo_humanoid_sdk/kuavo/leju_claw.py +235 -0
- kuavo_humanoid_sdk/kuavo/logger_client.py +80 -0
- kuavo_humanoid_sdk/kuavo/robot.py +646 -0
- kuavo_humanoid_sdk/kuavo/robot_arm.py +411 -0
- kuavo_humanoid_sdk/kuavo/robot_audio.py +39 -0
- kuavo_humanoid_sdk/kuavo/robot_blockly.py +1154 -0
- kuavo_humanoid_sdk/kuavo/robot_climbstair.py +1607 -0
- kuavo_humanoid_sdk/kuavo/robot_head.py +95 -0
- kuavo_humanoid_sdk/kuavo/robot_info.py +134 -0
- kuavo_humanoid_sdk/kuavo/robot_microphone.py +19 -0
- kuavo_humanoid_sdk/kuavo/robot_navigation.py +135 -0
- kuavo_humanoid_sdk/kuavo/robot_observation.py +64 -0
- kuavo_humanoid_sdk/kuavo/robot_speech.py +24 -0
- kuavo_humanoid_sdk/kuavo/robot_state.py +310 -0
- kuavo_humanoid_sdk/kuavo/robot_tool.py +109 -0
- kuavo_humanoid_sdk/kuavo/robot_vision.py +81 -0
- kuavo_humanoid_sdk/kuavo_strategy/__init__.py +2 -0
- kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +1325 -0
- kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +106 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/common/data_type.py +340 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/common/events/base_event.py +215 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/common/robot_sdk.py +25 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/case.py +331 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/strategy.py +504 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/utils/logger_setup.py +40 -0
- kuavo_humanoid_sdk/kuavo_strategy_v2/utils/utils.py +88 -0
- kuavo_humanoid_sdk/msg/__init__.py +4 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +7 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +306 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +437 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AudioReceiverData.py +122 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_FTsensorData.py +260 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_JoySticks.py +191 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +199 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_MmDetectionMsg.py +264 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +112 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +323 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TaskPoint.py +175 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +62 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armCollisionCheckInfo.py +160 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +161 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPoseFree.py +171 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +168 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +171 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +178 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +229 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +256 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +227 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +123 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6D.py +123 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6DTargetTrajectories.py +320 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +301 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVision.py +136 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVisionArray.py +231 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +149 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses6D.py +149 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +258 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +147 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +218 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +149 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +136 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +145 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +171 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +140 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +165 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +201 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +390 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +205 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_kuavoModeSchedule.py +224 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +320 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +341 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +122 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfo.py +143 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfoList.py +220 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +120 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +121 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +177 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotBodyMatrices.py +332 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +225 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +128 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +222 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +655 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +200 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_tagDataArray.py +216 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +162 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +273 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +316 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmdFree.py +338 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseFree.py +299 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +251 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +168 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_CreatePath.py +581 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +281 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetAllMaps.py +241 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetCurrentMap.py +225 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetTargetPartPoseInCamera.py +298 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_InitialPoseWithTaskPoint.py +281 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_LoadMap.py +281 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_NavigateToTaskPoint.py +281 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +373 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetInitialPose.py +394 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +282 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode.py +468 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode_free.py +289 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +270 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_TaskPointOperation.py +536 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +43 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_adjustZeroPoint.py +277 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +275 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +236 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +299 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +274 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +408 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +304 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +395 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPose6DTargetTrajectoriesSrv.py +426 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +409 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +339 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +257 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +418 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +253 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +299 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorZeroPoints.py +286 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +330 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +302 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +422 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +490 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +268 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +304 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +273 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +283 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +275 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +444 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdFreeSrv.py +716 -0
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +664 -0
- kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +7 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +7 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +12 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +142 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +121 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +148 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +150 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +666 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +122 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +209 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +140 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +886 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +122 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +239 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +148 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +1 -0
- kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +376 -0
- kuavo_humanoid_sdk-1.2.1b3323.dist-info/METADATA +297 -0
- kuavo_humanoid_sdk-1.2.1b3323.dist-info/RECORD +186 -0
- kuavo_humanoid_sdk-1.2.1b3323.dist-info/WHEEL +6 -0
- kuavo_humanoid_sdk-1.2.1b3323.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# This Python file uses the following encoding: utf-8
|
|
2
|
+
"""autogenerated by genpy from kuavo_msgs/setMmCtrlFrameRequest.msg. Do not edit."""
|
|
3
|
+
import codecs
|
|
4
|
+
import sys
|
|
5
|
+
python3 = True if sys.hexversion > 0x03000000 else False
|
|
6
|
+
import genpy
|
|
7
|
+
import struct
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class setMmCtrlFrameRequest(genpy.Message):
|
|
11
|
+
_md5sum = "e66db7b96bf089933dd98e52e1db8b7b"
|
|
12
|
+
_type = "kuavo_msgs/setMmCtrlFrameRequest"
|
|
13
|
+
_has_header = False # flag to mark the presence of a Header object
|
|
14
|
+
_full_text = """int32 frame
|
|
15
|
+
"""
|
|
16
|
+
__slots__ = ['frame']
|
|
17
|
+
_slot_types = ['int32']
|
|
18
|
+
|
|
19
|
+
def __init__(self, *args, **kwds):
|
|
20
|
+
"""
|
|
21
|
+
Constructor. Any message fields that are implicitly/explicitly
|
|
22
|
+
set to None will be assigned a default value. The recommend
|
|
23
|
+
use is keyword arguments as this is more robust to future message
|
|
24
|
+
changes. You cannot mix in-order arguments and keyword arguments.
|
|
25
|
+
|
|
26
|
+
The available fields are:
|
|
27
|
+
frame
|
|
28
|
+
|
|
29
|
+
:param args: complete set of field values, in .msg order
|
|
30
|
+
:param kwds: use keyword arguments corresponding to message field names
|
|
31
|
+
to set specific fields.
|
|
32
|
+
"""
|
|
33
|
+
if args or kwds:
|
|
34
|
+
super(setMmCtrlFrameRequest, self).__init__(*args, **kwds)
|
|
35
|
+
# message fields cannot be None, assign default values for those that are
|
|
36
|
+
if self.frame is None:
|
|
37
|
+
self.frame = 0
|
|
38
|
+
else:
|
|
39
|
+
self.frame = 0
|
|
40
|
+
|
|
41
|
+
def _get_types(self):
|
|
42
|
+
"""
|
|
43
|
+
internal API method
|
|
44
|
+
"""
|
|
45
|
+
return self._slot_types
|
|
46
|
+
|
|
47
|
+
def serialize(self, buff):
|
|
48
|
+
"""
|
|
49
|
+
serialize message into buffer
|
|
50
|
+
:param buff: buffer, ``StringIO``
|
|
51
|
+
"""
|
|
52
|
+
try:
|
|
53
|
+
_x = self.frame
|
|
54
|
+
buff.write(_get_struct_i().pack(_x))
|
|
55
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
56
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
57
|
+
|
|
58
|
+
def deserialize(self, str):
|
|
59
|
+
"""
|
|
60
|
+
unpack serialized message in str into this message instance
|
|
61
|
+
:param str: byte array of serialized message, ``str``
|
|
62
|
+
"""
|
|
63
|
+
if python3:
|
|
64
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
65
|
+
try:
|
|
66
|
+
end = 0
|
|
67
|
+
start = end
|
|
68
|
+
end += 4
|
|
69
|
+
(self.frame,) = _get_struct_i().unpack(str[start:end])
|
|
70
|
+
return self
|
|
71
|
+
except struct.error as e:
|
|
72
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def serialize_numpy(self, buff, numpy):
|
|
76
|
+
"""
|
|
77
|
+
serialize message with numpy array types into buffer
|
|
78
|
+
:param buff: buffer, ``StringIO``
|
|
79
|
+
:param numpy: numpy python module
|
|
80
|
+
"""
|
|
81
|
+
try:
|
|
82
|
+
_x = self.frame
|
|
83
|
+
buff.write(_get_struct_i().pack(_x))
|
|
84
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
85
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
86
|
+
|
|
87
|
+
def deserialize_numpy(self, str, numpy):
|
|
88
|
+
"""
|
|
89
|
+
unpack serialized message in str into this message instance using numpy for array types
|
|
90
|
+
:param str: byte array of serialized message, ``str``
|
|
91
|
+
:param numpy: numpy python module
|
|
92
|
+
"""
|
|
93
|
+
if python3:
|
|
94
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
95
|
+
try:
|
|
96
|
+
end = 0
|
|
97
|
+
start = end
|
|
98
|
+
end += 4
|
|
99
|
+
(self.frame,) = _get_struct_i().unpack(str[start:end])
|
|
100
|
+
return self
|
|
101
|
+
except struct.error as e:
|
|
102
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
103
|
+
|
|
104
|
+
_struct_I = genpy.struct_I
|
|
105
|
+
def _get_struct_I():
|
|
106
|
+
global _struct_I
|
|
107
|
+
return _struct_I
|
|
108
|
+
_struct_i = None
|
|
109
|
+
def _get_struct_i():
|
|
110
|
+
global _struct_i
|
|
111
|
+
if _struct_i is None:
|
|
112
|
+
_struct_i = struct.Struct("<i")
|
|
113
|
+
return _struct_i
|
|
114
|
+
# This Python file uses the following encoding: utf-8
|
|
115
|
+
"""autogenerated by genpy from kuavo_msgs/setMmCtrlFrameResponse.msg. Do not edit."""
|
|
116
|
+
import codecs
|
|
117
|
+
import sys
|
|
118
|
+
python3 = True if sys.hexversion > 0x03000000 else False
|
|
119
|
+
import genpy
|
|
120
|
+
import struct
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class setMmCtrlFrameResponse(genpy.Message):
|
|
124
|
+
_md5sum = "6f785115f88cf0e6d306b65915460524"
|
|
125
|
+
_type = "kuavo_msgs/setMmCtrlFrameResponse"
|
|
126
|
+
_has_header = False # flag to mark the presence of a Header object
|
|
127
|
+
_full_text = """bool result
|
|
128
|
+
int32 currentFrame
|
|
129
|
+
string message
|
|
130
|
+
"""
|
|
131
|
+
__slots__ = ['result','currentFrame','message']
|
|
132
|
+
_slot_types = ['bool','int32','string']
|
|
133
|
+
|
|
134
|
+
def __init__(self, *args, **kwds):
|
|
135
|
+
"""
|
|
136
|
+
Constructor. Any message fields that are implicitly/explicitly
|
|
137
|
+
set to None will be assigned a default value. The recommend
|
|
138
|
+
use is keyword arguments as this is more robust to future message
|
|
139
|
+
changes. You cannot mix in-order arguments and keyword arguments.
|
|
140
|
+
|
|
141
|
+
The available fields are:
|
|
142
|
+
result,currentFrame,message
|
|
143
|
+
|
|
144
|
+
:param args: complete set of field values, in .msg order
|
|
145
|
+
:param kwds: use keyword arguments corresponding to message field names
|
|
146
|
+
to set specific fields.
|
|
147
|
+
"""
|
|
148
|
+
if args or kwds:
|
|
149
|
+
super(setMmCtrlFrameResponse, self).__init__(*args, **kwds)
|
|
150
|
+
# message fields cannot be None, assign default values for those that are
|
|
151
|
+
if self.result is None:
|
|
152
|
+
self.result = False
|
|
153
|
+
if self.currentFrame is None:
|
|
154
|
+
self.currentFrame = 0
|
|
155
|
+
if self.message is None:
|
|
156
|
+
self.message = ''
|
|
157
|
+
else:
|
|
158
|
+
self.result = False
|
|
159
|
+
self.currentFrame = 0
|
|
160
|
+
self.message = ''
|
|
161
|
+
|
|
162
|
+
def _get_types(self):
|
|
163
|
+
"""
|
|
164
|
+
internal API method
|
|
165
|
+
"""
|
|
166
|
+
return self._slot_types
|
|
167
|
+
|
|
168
|
+
def serialize(self, buff):
|
|
169
|
+
"""
|
|
170
|
+
serialize message into buffer
|
|
171
|
+
:param buff: buffer, ``StringIO``
|
|
172
|
+
"""
|
|
173
|
+
try:
|
|
174
|
+
_x = self
|
|
175
|
+
buff.write(_get_struct_Bi().pack(_x.result, _x.currentFrame))
|
|
176
|
+
_x = self.message
|
|
177
|
+
length = len(_x)
|
|
178
|
+
if python3 or type(_x) == unicode:
|
|
179
|
+
_x = _x.encode('utf-8')
|
|
180
|
+
length = len(_x)
|
|
181
|
+
buff.write(struct.Struct('<I%ss'%length).pack(length, _x))
|
|
182
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
183
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
184
|
+
|
|
185
|
+
def deserialize(self, str):
|
|
186
|
+
"""
|
|
187
|
+
unpack serialized message in str into this message instance
|
|
188
|
+
:param str: byte array of serialized message, ``str``
|
|
189
|
+
"""
|
|
190
|
+
if python3:
|
|
191
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
192
|
+
try:
|
|
193
|
+
end = 0
|
|
194
|
+
_x = self
|
|
195
|
+
start = end
|
|
196
|
+
end += 5
|
|
197
|
+
(_x.result, _x.currentFrame,) = _get_struct_Bi().unpack(str[start:end])
|
|
198
|
+
self.result = bool(self.result)
|
|
199
|
+
start = end
|
|
200
|
+
end += 4
|
|
201
|
+
(length,) = _struct_I.unpack(str[start:end])
|
|
202
|
+
start = end
|
|
203
|
+
end += length
|
|
204
|
+
if python3:
|
|
205
|
+
self.message = str[start:end].decode('utf-8', 'rosmsg')
|
|
206
|
+
else:
|
|
207
|
+
self.message = str[start:end]
|
|
208
|
+
return self
|
|
209
|
+
except struct.error as e:
|
|
210
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
def serialize_numpy(self, buff, numpy):
|
|
214
|
+
"""
|
|
215
|
+
serialize message with numpy array types into buffer
|
|
216
|
+
:param buff: buffer, ``StringIO``
|
|
217
|
+
:param numpy: numpy python module
|
|
218
|
+
"""
|
|
219
|
+
try:
|
|
220
|
+
_x = self
|
|
221
|
+
buff.write(_get_struct_Bi().pack(_x.result, _x.currentFrame))
|
|
222
|
+
_x = self.message
|
|
223
|
+
length = len(_x)
|
|
224
|
+
if python3 or type(_x) == unicode:
|
|
225
|
+
_x = _x.encode('utf-8')
|
|
226
|
+
length = len(_x)
|
|
227
|
+
buff.write(struct.Struct('<I%ss'%length).pack(length, _x))
|
|
228
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
229
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
230
|
+
|
|
231
|
+
def deserialize_numpy(self, str, numpy):
|
|
232
|
+
"""
|
|
233
|
+
unpack serialized message in str into this message instance using numpy for array types
|
|
234
|
+
:param str: byte array of serialized message, ``str``
|
|
235
|
+
:param numpy: numpy python module
|
|
236
|
+
"""
|
|
237
|
+
if python3:
|
|
238
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
239
|
+
try:
|
|
240
|
+
end = 0
|
|
241
|
+
_x = self
|
|
242
|
+
start = end
|
|
243
|
+
end += 5
|
|
244
|
+
(_x.result, _x.currentFrame,) = _get_struct_Bi().unpack(str[start:end])
|
|
245
|
+
self.result = bool(self.result)
|
|
246
|
+
start = end
|
|
247
|
+
end += 4
|
|
248
|
+
(length,) = _struct_I.unpack(str[start:end])
|
|
249
|
+
start = end
|
|
250
|
+
end += length
|
|
251
|
+
if python3:
|
|
252
|
+
self.message = str[start:end].decode('utf-8', 'rosmsg')
|
|
253
|
+
else:
|
|
254
|
+
self.message = str[start:end]
|
|
255
|
+
return self
|
|
256
|
+
except struct.error as e:
|
|
257
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
258
|
+
|
|
259
|
+
_struct_I = genpy.struct_I
|
|
260
|
+
def _get_struct_I():
|
|
261
|
+
global _struct_I
|
|
262
|
+
return _struct_I
|
|
263
|
+
_struct_Bi = None
|
|
264
|
+
def _get_struct_Bi():
|
|
265
|
+
global _struct_Bi
|
|
266
|
+
if _struct_Bi is None:
|
|
267
|
+
_struct_Bi = struct.Struct("<Bi")
|
|
268
|
+
return _struct_Bi
|
|
269
|
+
class setMmCtrlFrame(object):
|
|
270
|
+
_type = 'kuavo_msgs/setMmCtrlFrame'
|
|
271
|
+
_md5sum = '696a444d2580aa682923215a4a34937c'
|
|
272
|
+
_request_class = setMmCtrlFrameRequest
|
|
273
|
+
_response_class = setMmCtrlFrameResponse
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# This Python file uses the following encoding: utf-8
|
|
2
|
+
"""autogenerated by genpy from kuavo_msgs/setMotorEncoderRoundServiceRequest.msg. Do not edit."""
|
|
3
|
+
import codecs
|
|
4
|
+
import sys
|
|
5
|
+
python3 = True if sys.hexversion > 0x03000000 else False
|
|
6
|
+
import genpy
|
|
7
|
+
import struct
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class setMotorEncoderRoundServiceRequest(genpy.Message):
|
|
11
|
+
_md5sum = "5104e77e6b69ebe8cb1f06d5c2f1d52a"
|
|
12
|
+
_type = "kuavo_msgs/setMotorEncoderRoundServiceRequest"
|
|
13
|
+
_has_header = False # flag to mark the presence of a Header object
|
|
14
|
+
_full_text = """# 设置电机编码器圈数,用于单编码器版本的校准
|
|
15
|
+
# 传入参数
|
|
16
|
+
int32 motor_id # 电机 ID
|
|
17
|
+
int32 direction # 方向,1 表示顺时针+1圈,-1 表示逆时针-1圈
|
|
18
|
+
bool save_offset # 是否保存偏移量到文件
|
|
19
|
+
"""
|
|
20
|
+
__slots__ = ['motor_id','direction','save_offset']
|
|
21
|
+
_slot_types = ['int32','int32','bool']
|
|
22
|
+
|
|
23
|
+
def __init__(self, *args, **kwds):
|
|
24
|
+
"""
|
|
25
|
+
Constructor. Any message fields that are implicitly/explicitly
|
|
26
|
+
set to None will be assigned a default value. The recommend
|
|
27
|
+
use is keyword arguments as this is more robust to future message
|
|
28
|
+
changes. You cannot mix in-order arguments and keyword arguments.
|
|
29
|
+
|
|
30
|
+
The available fields are:
|
|
31
|
+
motor_id,direction,save_offset
|
|
32
|
+
|
|
33
|
+
:param args: complete set of field values, in .msg order
|
|
34
|
+
:param kwds: use keyword arguments corresponding to message field names
|
|
35
|
+
to set specific fields.
|
|
36
|
+
"""
|
|
37
|
+
if args or kwds:
|
|
38
|
+
super(setMotorEncoderRoundServiceRequest, self).__init__(*args, **kwds)
|
|
39
|
+
# message fields cannot be None, assign default values for those that are
|
|
40
|
+
if self.motor_id is None:
|
|
41
|
+
self.motor_id = 0
|
|
42
|
+
if self.direction is None:
|
|
43
|
+
self.direction = 0
|
|
44
|
+
if self.save_offset is None:
|
|
45
|
+
self.save_offset = False
|
|
46
|
+
else:
|
|
47
|
+
self.motor_id = 0
|
|
48
|
+
self.direction = 0
|
|
49
|
+
self.save_offset = False
|
|
50
|
+
|
|
51
|
+
def _get_types(self):
|
|
52
|
+
"""
|
|
53
|
+
internal API method
|
|
54
|
+
"""
|
|
55
|
+
return self._slot_types
|
|
56
|
+
|
|
57
|
+
def serialize(self, buff):
|
|
58
|
+
"""
|
|
59
|
+
serialize message into buffer
|
|
60
|
+
:param buff: buffer, ``StringIO``
|
|
61
|
+
"""
|
|
62
|
+
try:
|
|
63
|
+
_x = self
|
|
64
|
+
buff.write(_get_struct_2iB().pack(_x.motor_id, _x.direction, _x.save_offset))
|
|
65
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
66
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
67
|
+
|
|
68
|
+
def deserialize(self, str):
|
|
69
|
+
"""
|
|
70
|
+
unpack serialized message in str into this message instance
|
|
71
|
+
:param str: byte array of serialized message, ``str``
|
|
72
|
+
"""
|
|
73
|
+
if python3:
|
|
74
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
75
|
+
try:
|
|
76
|
+
end = 0
|
|
77
|
+
_x = self
|
|
78
|
+
start = end
|
|
79
|
+
end += 9
|
|
80
|
+
(_x.motor_id, _x.direction, _x.save_offset,) = _get_struct_2iB().unpack(str[start:end])
|
|
81
|
+
self.save_offset = bool(self.save_offset)
|
|
82
|
+
return self
|
|
83
|
+
except struct.error as e:
|
|
84
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def serialize_numpy(self, buff, numpy):
|
|
88
|
+
"""
|
|
89
|
+
serialize message with numpy array types into buffer
|
|
90
|
+
:param buff: buffer, ``StringIO``
|
|
91
|
+
:param numpy: numpy python module
|
|
92
|
+
"""
|
|
93
|
+
try:
|
|
94
|
+
_x = self
|
|
95
|
+
buff.write(_get_struct_2iB().pack(_x.motor_id, _x.direction, _x.save_offset))
|
|
96
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
97
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
98
|
+
|
|
99
|
+
def deserialize_numpy(self, str, numpy):
|
|
100
|
+
"""
|
|
101
|
+
unpack serialized message in str into this message instance using numpy for array types
|
|
102
|
+
:param str: byte array of serialized message, ``str``
|
|
103
|
+
:param numpy: numpy python module
|
|
104
|
+
"""
|
|
105
|
+
if python3:
|
|
106
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
107
|
+
try:
|
|
108
|
+
end = 0
|
|
109
|
+
_x = self
|
|
110
|
+
start = end
|
|
111
|
+
end += 9
|
|
112
|
+
(_x.motor_id, _x.direction, _x.save_offset,) = _get_struct_2iB().unpack(str[start:end])
|
|
113
|
+
self.save_offset = bool(self.save_offset)
|
|
114
|
+
return self
|
|
115
|
+
except struct.error as e:
|
|
116
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
117
|
+
|
|
118
|
+
_struct_I = genpy.struct_I
|
|
119
|
+
def _get_struct_I():
|
|
120
|
+
global _struct_I
|
|
121
|
+
return _struct_I
|
|
122
|
+
_struct_2iB = None
|
|
123
|
+
def _get_struct_2iB():
|
|
124
|
+
global _struct_2iB
|
|
125
|
+
if _struct_2iB is None:
|
|
126
|
+
_struct_2iB = struct.Struct("<2iB")
|
|
127
|
+
return _struct_2iB
|
|
128
|
+
# This Python file uses the following encoding: utf-8
|
|
129
|
+
"""autogenerated by genpy from kuavo_msgs/setMotorEncoderRoundServiceResponse.msg. Do not edit."""
|
|
130
|
+
import codecs
|
|
131
|
+
import sys
|
|
132
|
+
python3 = True if sys.hexversion > 0x03000000 else False
|
|
133
|
+
import genpy
|
|
134
|
+
import struct
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class setMotorEncoderRoundServiceResponse(genpy.Message):
|
|
138
|
+
_md5sum = "937c9679a518e3a18d831e57125ea522"
|
|
139
|
+
_type = "kuavo_msgs/setMotorEncoderRoundServiceResponse"
|
|
140
|
+
_has_header = False # flag to mark the presence of a Header object
|
|
141
|
+
_full_text = """# 返回结果
|
|
142
|
+
bool success # 成功与否
|
|
143
|
+
string message # 返回信息
|
|
144
|
+
|
|
145
|
+
"""
|
|
146
|
+
__slots__ = ['success','message']
|
|
147
|
+
_slot_types = ['bool','string']
|
|
148
|
+
|
|
149
|
+
def __init__(self, *args, **kwds):
|
|
150
|
+
"""
|
|
151
|
+
Constructor. Any message fields that are implicitly/explicitly
|
|
152
|
+
set to None will be assigned a default value. The recommend
|
|
153
|
+
use is keyword arguments as this is more robust to future message
|
|
154
|
+
changes. You cannot mix in-order arguments and keyword arguments.
|
|
155
|
+
|
|
156
|
+
The available fields are:
|
|
157
|
+
success,message
|
|
158
|
+
|
|
159
|
+
:param args: complete set of field values, in .msg order
|
|
160
|
+
:param kwds: use keyword arguments corresponding to message field names
|
|
161
|
+
to set specific fields.
|
|
162
|
+
"""
|
|
163
|
+
if args or kwds:
|
|
164
|
+
super(setMotorEncoderRoundServiceResponse, self).__init__(*args, **kwds)
|
|
165
|
+
# message fields cannot be None, assign default values for those that are
|
|
166
|
+
if self.success is None:
|
|
167
|
+
self.success = False
|
|
168
|
+
if self.message is None:
|
|
169
|
+
self.message = ''
|
|
170
|
+
else:
|
|
171
|
+
self.success = False
|
|
172
|
+
self.message = ''
|
|
173
|
+
|
|
174
|
+
def _get_types(self):
|
|
175
|
+
"""
|
|
176
|
+
internal API method
|
|
177
|
+
"""
|
|
178
|
+
return self._slot_types
|
|
179
|
+
|
|
180
|
+
def serialize(self, buff):
|
|
181
|
+
"""
|
|
182
|
+
serialize message into buffer
|
|
183
|
+
:param buff: buffer, ``StringIO``
|
|
184
|
+
"""
|
|
185
|
+
try:
|
|
186
|
+
_x = self.success
|
|
187
|
+
buff.write(_get_struct_B().pack(_x))
|
|
188
|
+
_x = self.message
|
|
189
|
+
length = len(_x)
|
|
190
|
+
if python3 or type(_x) == unicode:
|
|
191
|
+
_x = _x.encode('utf-8')
|
|
192
|
+
length = len(_x)
|
|
193
|
+
buff.write(struct.Struct('<I%ss'%length).pack(length, _x))
|
|
194
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
195
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
196
|
+
|
|
197
|
+
def deserialize(self, str):
|
|
198
|
+
"""
|
|
199
|
+
unpack serialized message in str into this message instance
|
|
200
|
+
:param str: byte array of serialized message, ``str``
|
|
201
|
+
"""
|
|
202
|
+
if python3:
|
|
203
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
204
|
+
try:
|
|
205
|
+
end = 0
|
|
206
|
+
start = end
|
|
207
|
+
end += 1
|
|
208
|
+
(self.success,) = _get_struct_B().unpack(str[start:end])
|
|
209
|
+
self.success = bool(self.success)
|
|
210
|
+
start = end
|
|
211
|
+
end += 4
|
|
212
|
+
(length,) = _struct_I.unpack(str[start:end])
|
|
213
|
+
start = end
|
|
214
|
+
end += length
|
|
215
|
+
if python3:
|
|
216
|
+
self.message = str[start:end].decode('utf-8', 'rosmsg')
|
|
217
|
+
else:
|
|
218
|
+
self.message = str[start:end]
|
|
219
|
+
return self
|
|
220
|
+
except struct.error as e:
|
|
221
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def serialize_numpy(self, buff, numpy):
|
|
225
|
+
"""
|
|
226
|
+
serialize message with numpy array types into buffer
|
|
227
|
+
:param buff: buffer, ``StringIO``
|
|
228
|
+
:param numpy: numpy python module
|
|
229
|
+
"""
|
|
230
|
+
try:
|
|
231
|
+
_x = self.success
|
|
232
|
+
buff.write(_get_struct_B().pack(_x))
|
|
233
|
+
_x = self.message
|
|
234
|
+
length = len(_x)
|
|
235
|
+
if python3 or type(_x) == unicode:
|
|
236
|
+
_x = _x.encode('utf-8')
|
|
237
|
+
length = len(_x)
|
|
238
|
+
buff.write(struct.Struct('<I%ss'%length).pack(length, _x))
|
|
239
|
+
except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
|
|
240
|
+
except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
|
|
241
|
+
|
|
242
|
+
def deserialize_numpy(self, str, numpy):
|
|
243
|
+
"""
|
|
244
|
+
unpack serialized message in str into this message instance using numpy for array types
|
|
245
|
+
:param str: byte array of serialized message, ``str``
|
|
246
|
+
:param numpy: numpy python module
|
|
247
|
+
"""
|
|
248
|
+
if python3:
|
|
249
|
+
codecs.lookup_error("rosmsg").msg_type = self._type
|
|
250
|
+
try:
|
|
251
|
+
end = 0
|
|
252
|
+
start = end
|
|
253
|
+
end += 1
|
|
254
|
+
(self.success,) = _get_struct_B().unpack(str[start:end])
|
|
255
|
+
self.success = bool(self.success)
|
|
256
|
+
start = end
|
|
257
|
+
end += 4
|
|
258
|
+
(length,) = _struct_I.unpack(str[start:end])
|
|
259
|
+
start = end
|
|
260
|
+
end += length
|
|
261
|
+
if python3:
|
|
262
|
+
self.message = str[start:end].decode('utf-8', 'rosmsg')
|
|
263
|
+
else:
|
|
264
|
+
self.message = str[start:end]
|
|
265
|
+
return self
|
|
266
|
+
except struct.error as e:
|
|
267
|
+
raise genpy.DeserializationError(e) # most likely buffer underfill
|
|
268
|
+
|
|
269
|
+
_struct_I = genpy.struct_I
|
|
270
|
+
def _get_struct_I():
|
|
271
|
+
global _struct_I
|
|
272
|
+
return _struct_I
|
|
273
|
+
_struct_B = None
|
|
274
|
+
def _get_struct_B():
|
|
275
|
+
global _struct_B
|
|
276
|
+
if _struct_B is None:
|
|
277
|
+
_struct_B = struct.Struct("<B")
|
|
278
|
+
return _struct_B
|
|
279
|
+
class setMotorEncoderRoundService(object):
|
|
280
|
+
_type = 'kuavo_msgs/setMotorEncoderRoundService'
|
|
281
|
+
_md5sum = 'c8e2df10122ff9a180b403f54a3f8831'
|
|
282
|
+
_request_class = setMotorEncoderRoundServiceRequest
|
|
283
|
+
_response_class = setMotorEncoderRoundServiceResponse
|