kuavo-humanoid-sdk 1.2.1b3321__20250917182547-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.

Files changed (186) hide show
  1. kuavo_humanoid_sdk/__init__.py +6 -0
  2. kuavo_humanoid_sdk/common/logger.py +45 -0
  3. kuavo_humanoid_sdk/interfaces/__init__.py +4 -0
  4. kuavo_humanoid_sdk/interfaces/data_types.py +288 -0
  5. kuavo_humanoid_sdk/interfaces/end_effector.py +62 -0
  6. kuavo_humanoid_sdk/interfaces/robot.py +22 -0
  7. kuavo_humanoid_sdk/interfaces/robot_info.py +56 -0
  8. kuavo_humanoid_sdk/kuavo/__init__.py +16 -0
  9. kuavo_humanoid_sdk/kuavo/core/audio.py +32 -0
  10. kuavo_humanoid_sdk/kuavo/core/core.py +666 -0
  11. kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +114 -0
  12. kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +67 -0
  13. kuavo_humanoid_sdk/kuavo/core/llm_doubao.py +608 -0
  14. kuavo_humanoid_sdk/kuavo/core/microphone.py +192 -0
  15. kuavo_humanoid_sdk/kuavo/core/navigation.py +70 -0
  16. kuavo_humanoid_sdk/kuavo/core/ros/audio.py +110 -0
  17. kuavo_humanoid_sdk/kuavo/core/ros/camera.py +105 -0
  18. kuavo_humanoid_sdk/kuavo/core/ros/control.py +1524 -0
  19. kuavo_humanoid_sdk/kuavo/core/ros/microphone.py +38 -0
  20. kuavo_humanoid_sdk/kuavo/core/ros/navigation.py +217 -0
  21. kuavo_humanoid_sdk/kuavo/core/ros/observation.py +94 -0
  22. kuavo_humanoid_sdk/kuavo/core/ros/param.py +201 -0
  23. kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +103 -0
  24. kuavo_humanoid_sdk/kuavo/core/ros/state.py +652 -0
  25. kuavo_humanoid_sdk/kuavo/core/ros/tools.py +220 -0
  26. kuavo_humanoid_sdk/kuavo/core/ros/vision.py +234 -0
  27. kuavo_humanoid_sdk/kuavo/core/ros_env.py +238 -0
  28. kuavo_humanoid_sdk/kuavo/core/sdk_deprecated.py +41 -0
  29. kuavo_humanoid_sdk/kuavo/demo_climbstair.py +249 -0
  30. kuavo_humanoid_sdk/kuavo/dexterous_hand.py +238 -0
  31. kuavo_humanoid_sdk/kuavo/leju_claw.py +235 -0
  32. kuavo_humanoid_sdk/kuavo/logger_client.py +80 -0
  33. kuavo_humanoid_sdk/kuavo/robot.py +646 -0
  34. kuavo_humanoid_sdk/kuavo/robot_arm.py +411 -0
  35. kuavo_humanoid_sdk/kuavo/robot_audio.py +39 -0
  36. kuavo_humanoid_sdk/kuavo/robot_blockly.py +1154 -0
  37. kuavo_humanoid_sdk/kuavo/robot_climbstair.py +1607 -0
  38. kuavo_humanoid_sdk/kuavo/robot_head.py +95 -0
  39. kuavo_humanoid_sdk/kuavo/robot_info.py +134 -0
  40. kuavo_humanoid_sdk/kuavo/robot_microphone.py +19 -0
  41. kuavo_humanoid_sdk/kuavo/robot_navigation.py +135 -0
  42. kuavo_humanoid_sdk/kuavo/robot_observation.py +64 -0
  43. kuavo_humanoid_sdk/kuavo/robot_speech.py +24 -0
  44. kuavo_humanoid_sdk/kuavo/robot_state.py +310 -0
  45. kuavo_humanoid_sdk/kuavo/robot_tool.py +109 -0
  46. kuavo_humanoid_sdk/kuavo/robot_vision.py +81 -0
  47. kuavo_humanoid_sdk/kuavo_strategy/__init__.py +2 -0
  48. kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +1325 -0
  49. kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +106 -0
  50. kuavo_humanoid_sdk/kuavo_strategy_v2/common/data_type.py +340 -0
  51. kuavo_humanoid_sdk/kuavo_strategy_v2/common/events/base_event.py +215 -0
  52. kuavo_humanoid_sdk/kuavo_strategy_v2/common/robot_sdk.py +25 -0
  53. kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/case.py +331 -0
  54. kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/strategy.py +504 -0
  55. kuavo_humanoid_sdk/kuavo_strategy_v2/utils/logger_setup.py +40 -0
  56. kuavo_humanoid_sdk/kuavo_strategy_v2/utils/utils.py +88 -0
  57. kuavo_humanoid_sdk/msg/__init__.py +4 -0
  58. kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +7 -0
  59. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +306 -0
  60. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +437 -0
  61. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AudioReceiverData.py +122 -0
  62. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_FTsensorData.py +260 -0
  63. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_JoySticks.py +191 -0
  64. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +199 -0
  65. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_MmDetectionMsg.py +264 -0
  66. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +112 -0
  67. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +323 -0
  68. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TaskPoint.py +175 -0
  69. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +62 -0
  70. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armCollisionCheckInfo.py +160 -0
  71. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +161 -0
  72. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPoseFree.py +171 -0
  73. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +168 -0
  74. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +171 -0
  75. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +178 -0
  76. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +229 -0
  77. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +256 -0
  78. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +227 -0
  79. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +123 -0
  80. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6D.py +123 -0
  81. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6DTargetTrajectories.py +320 -0
  82. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +301 -0
  83. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVision.py +136 -0
  84. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVisionArray.py +231 -0
  85. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +149 -0
  86. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses6D.py +149 -0
  87. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +258 -0
  88. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +147 -0
  89. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +218 -0
  90. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +149 -0
  91. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +136 -0
  92. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +145 -0
  93. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +171 -0
  94. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +140 -0
  95. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +165 -0
  96. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +201 -0
  97. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +390 -0
  98. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +205 -0
  99. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_kuavoModeSchedule.py +224 -0
  100. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +320 -0
  101. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +341 -0
  102. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +122 -0
  103. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfo.py +143 -0
  104. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfoList.py +220 -0
  105. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +120 -0
  106. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +121 -0
  107. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +177 -0
  108. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotBodyMatrices.py +332 -0
  109. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +225 -0
  110. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +128 -0
  111. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +222 -0
  112. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +655 -0
  113. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +200 -0
  114. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_tagDataArray.py +216 -0
  115. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +162 -0
  116. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +273 -0
  117. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +316 -0
  118. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmdFree.py +338 -0
  119. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseFree.py +299 -0
  120. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +251 -0
  121. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +168 -0
  122. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_CreatePath.py +581 -0
  123. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +281 -0
  124. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetAllMaps.py +241 -0
  125. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetCurrentMap.py +225 -0
  126. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetTargetPartPoseInCamera.py +298 -0
  127. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_InitialPoseWithTaskPoint.py +281 -0
  128. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_LoadMap.py +281 -0
  129. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_NavigateToTaskPoint.py +281 -0
  130. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +373 -0
  131. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetInitialPose.py +394 -0
  132. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +282 -0
  133. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode.py +468 -0
  134. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode_free.py +289 -0
  135. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +270 -0
  136. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_TaskPointOperation.py +536 -0
  137. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +43 -0
  138. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_adjustZeroPoint.py +277 -0
  139. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +275 -0
  140. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +236 -0
  141. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +299 -0
  142. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +274 -0
  143. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +408 -0
  144. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +304 -0
  145. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +395 -0
  146. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPose6DTargetTrajectoriesSrv.py +426 -0
  147. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +409 -0
  148. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +339 -0
  149. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +257 -0
  150. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +418 -0
  151. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +253 -0
  152. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +299 -0
  153. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorZeroPoints.py +286 -0
  154. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +330 -0
  155. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +302 -0
  156. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +422 -0
  157. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +490 -0
  158. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +268 -0
  159. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +304 -0
  160. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +273 -0
  161. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +283 -0
  162. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +275 -0
  163. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +444 -0
  164. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdFreeSrv.py +716 -0
  165. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +664 -0
  166. kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +7 -0
  167. kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +7 -0
  168. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +12 -0
  169. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +142 -0
  170. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +121 -0
  171. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +148 -0
  172. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +150 -0
  173. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +666 -0
  174. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +122 -0
  175. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +209 -0
  176. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +140 -0
  177. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +886 -0
  178. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +122 -0
  179. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +239 -0
  180. kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +148 -0
  181. kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +1 -0
  182. kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +376 -0
  183. kuavo_humanoid_sdk-1.2.1b3321.dist-info/METADATA +297 -0
  184. kuavo_humanoid_sdk-1.2.1b3321.dist-info/RECORD +186 -0
  185. kuavo_humanoid_sdk-1.2.1b3321.dist-info/WHEEL +6 -0
  186. kuavo_humanoid_sdk-1.2.1b3321.dist-info/top_level.txt +1 -0
@@ -0,0 +1,666 @@
1
+ # This Python file uses the following encoding: utf-8
2
+ """autogenerated by genpy from ocs2_msgs/mpc_flattened_controller.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
+ import ocs2_msgs.msg
10
+
11
+ class mpc_flattened_controller(genpy.Message):
12
+ _md5sum = "9355aadb2928f436a41799dd737c0f53"
13
+ _type = "ocs2_msgs/mpc_flattened_controller"
14
+ _has_header = False # flag to mark the presence of a Header object
15
+ _full_text = """# Flattened controller: A serialized controller
16
+
17
+ # define controllerType Enum values
18
+ uint8 CONTROLLER_UNKNOWN=0 # safety mechanism: message initalization to zero
19
+ uint8 CONTROLLER_FEEDFORWARD=1
20
+ uint8 CONTROLLER_LINEAR=2
21
+
22
+ uint8 controllerType # what type of controller is this
23
+
24
+ mpc_observation initObservation # plan initial observation
25
+
26
+ mpc_target_trajectories planTargetTrajectories # target trajectory in cost function
27
+ mpc_state[] stateTrajectory # optimized state trajectory from planner
28
+ mpc_input[] inputTrajectory # optimized input trajectory from planner
29
+ float64[] timeTrajectory # time trajectory for stateTrajectory and inputTrajectory
30
+ uint16[] postEventIndices # array of indices indicating the index of post-event time in the trajectories
31
+ mode_schedule modeSchedule # optimal/predefined MPC mode sequence and event times
32
+
33
+ controller_data[] data # the actual payload from flatten method: one vector of data per time step
34
+
35
+ mpc_performance_indices performanceIndices # solver performance indices
36
+
37
+ ================================================================================
38
+ MSG: ocs2_msgs/mpc_observation
39
+ # MPC observation
40
+ float64 time # Current time
41
+ mpc_state state # Current state
42
+ mpc_input input # Current input
43
+ int8 mode # Current mode
44
+
45
+ ================================================================================
46
+ MSG: ocs2_msgs/mpc_state
47
+ # MPC internal model state vector
48
+ float32[] value
49
+
50
+ ================================================================================
51
+ MSG: ocs2_msgs/mpc_input
52
+ # MPC internal model input vector
53
+
54
+ float32[] value
55
+ ================================================================================
56
+ MSG: ocs2_msgs/mpc_target_trajectories
57
+ # MPC target trajectories
58
+
59
+ float64[] timeTrajectory # MPC target time trajectory
60
+ mpc_state[] stateTrajectory # MPC target state trajectory
61
+ mpc_input[] inputTrajectory # MPC target input trajectory
62
+
63
+
64
+ ================================================================================
65
+ MSG: ocs2_msgs/mode_schedule
66
+ # MPC mode sequence
67
+
68
+ float64[] eventTimes # event times: its size is equal to the size of phaseSequence minus one
69
+ int8[] modeSequence # mode sequence: e.g., for a quadrupedal robot, it is in the set {0, 1,..., 15}
70
+ ================================================================================
71
+ MSG: ocs2_msgs/controller_data
72
+ float32[] data
73
+
74
+ ================================================================================
75
+ MSG: ocs2_msgs/mpc_performance_indices
76
+ # MPC performance indices
77
+ float32 initTime
78
+ float32 merit
79
+ float32 cost
80
+ float32 dynamicsViolationSSE
81
+ float32 equalityConstraintsSSE
82
+ float32 equalityLagrangian
83
+ float32 inequalityLagrangian
84
+ """
85
+ # Pseudo-constants
86
+ CONTROLLER_UNKNOWN = 0
87
+ CONTROLLER_FEEDFORWARD = 1
88
+ CONTROLLER_LINEAR = 2
89
+
90
+ __slots__ = ['controllerType','initObservation','planTargetTrajectories','stateTrajectory','inputTrajectory','timeTrajectory','postEventIndices','modeSchedule','data','performanceIndices']
91
+ _slot_types = ['uint8','ocs2_msgs/mpc_observation','ocs2_msgs/mpc_target_trajectories','ocs2_msgs/mpc_state[]','ocs2_msgs/mpc_input[]','float64[]','uint16[]','ocs2_msgs/mode_schedule','ocs2_msgs/controller_data[]','ocs2_msgs/mpc_performance_indices']
92
+
93
+ def __init__(self, *args, **kwds):
94
+ """
95
+ Constructor. Any message fields that are implicitly/explicitly
96
+ set to None will be assigned a default value. The recommend
97
+ use is keyword arguments as this is more robust to future message
98
+ changes. You cannot mix in-order arguments and keyword arguments.
99
+
100
+ The available fields are:
101
+ controllerType,initObservation,planTargetTrajectories,stateTrajectory,inputTrajectory,timeTrajectory,postEventIndices,modeSchedule,data,performanceIndices
102
+
103
+ :param args: complete set of field values, in .msg order
104
+ :param kwds: use keyword arguments corresponding to message field names
105
+ to set specific fields.
106
+ """
107
+ if args or kwds:
108
+ super(mpc_flattened_controller, self).__init__(*args, **kwds)
109
+ # message fields cannot be None, assign default values for those that are
110
+ if self.controllerType is None:
111
+ self.controllerType = 0
112
+ if self.initObservation is None:
113
+ self.initObservation = ocs2_msgs.msg.mpc_observation()
114
+ if self.planTargetTrajectories is None:
115
+ self.planTargetTrajectories = ocs2_msgs.msg.mpc_target_trajectories()
116
+ if self.stateTrajectory is None:
117
+ self.stateTrajectory = []
118
+ if self.inputTrajectory is None:
119
+ self.inputTrajectory = []
120
+ if self.timeTrajectory is None:
121
+ self.timeTrajectory = []
122
+ if self.postEventIndices is None:
123
+ self.postEventIndices = []
124
+ if self.modeSchedule is None:
125
+ self.modeSchedule = ocs2_msgs.msg.mode_schedule()
126
+ if self.data is None:
127
+ self.data = []
128
+ if self.performanceIndices is None:
129
+ self.performanceIndices = ocs2_msgs.msg.mpc_performance_indices()
130
+ else:
131
+ self.controllerType = 0
132
+ self.initObservation = ocs2_msgs.msg.mpc_observation()
133
+ self.planTargetTrajectories = ocs2_msgs.msg.mpc_target_trajectories()
134
+ self.stateTrajectory = []
135
+ self.inputTrajectory = []
136
+ self.timeTrajectory = []
137
+ self.postEventIndices = []
138
+ self.modeSchedule = ocs2_msgs.msg.mode_schedule()
139
+ self.data = []
140
+ self.performanceIndices = ocs2_msgs.msg.mpc_performance_indices()
141
+
142
+ def _get_types(self):
143
+ """
144
+ internal API method
145
+ """
146
+ return self._slot_types
147
+
148
+ def serialize(self, buff):
149
+ """
150
+ serialize message into buffer
151
+ :param buff: buffer, ``StringIO``
152
+ """
153
+ try:
154
+ _x = self
155
+ buff.write(_get_struct_Bd().pack(_x.controllerType, _x.initObservation.time))
156
+ length = len(self.initObservation.state.value)
157
+ buff.write(_struct_I.pack(length))
158
+ pattern = '<%sf'%length
159
+ buff.write(struct.Struct(pattern).pack(*self.initObservation.state.value))
160
+ length = len(self.initObservation.input.value)
161
+ buff.write(_struct_I.pack(length))
162
+ pattern = '<%sf'%length
163
+ buff.write(struct.Struct(pattern).pack(*self.initObservation.input.value))
164
+ _x = self.initObservation.mode
165
+ buff.write(_get_struct_b().pack(_x))
166
+ length = len(self.planTargetTrajectories.timeTrajectory)
167
+ buff.write(_struct_I.pack(length))
168
+ pattern = '<%sd'%length
169
+ buff.write(struct.Struct(pattern).pack(*self.planTargetTrajectories.timeTrajectory))
170
+ length = len(self.planTargetTrajectories.stateTrajectory)
171
+ buff.write(_struct_I.pack(length))
172
+ for val1 in self.planTargetTrajectories.stateTrajectory:
173
+ length = len(val1.value)
174
+ buff.write(_struct_I.pack(length))
175
+ pattern = '<%sf'%length
176
+ buff.write(struct.Struct(pattern).pack(*val1.value))
177
+ length = len(self.planTargetTrajectories.inputTrajectory)
178
+ buff.write(_struct_I.pack(length))
179
+ for val1 in self.planTargetTrajectories.inputTrajectory:
180
+ length = len(val1.value)
181
+ buff.write(_struct_I.pack(length))
182
+ pattern = '<%sf'%length
183
+ buff.write(struct.Struct(pattern).pack(*val1.value))
184
+ length = len(self.stateTrajectory)
185
+ buff.write(_struct_I.pack(length))
186
+ for val1 in self.stateTrajectory:
187
+ length = len(val1.value)
188
+ buff.write(_struct_I.pack(length))
189
+ pattern = '<%sf'%length
190
+ buff.write(struct.Struct(pattern).pack(*val1.value))
191
+ length = len(self.inputTrajectory)
192
+ buff.write(_struct_I.pack(length))
193
+ for val1 in self.inputTrajectory:
194
+ length = len(val1.value)
195
+ buff.write(_struct_I.pack(length))
196
+ pattern = '<%sf'%length
197
+ buff.write(struct.Struct(pattern).pack(*val1.value))
198
+ length = len(self.timeTrajectory)
199
+ buff.write(_struct_I.pack(length))
200
+ pattern = '<%sd'%length
201
+ buff.write(struct.Struct(pattern).pack(*self.timeTrajectory))
202
+ length = len(self.postEventIndices)
203
+ buff.write(_struct_I.pack(length))
204
+ pattern = '<%sH'%length
205
+ buff.write(struct.Struct(pattern).pack(*self.postEventIndices))
206
+ length = len(self.modeSchedule.eventTimes)
207
+ buff.write(_struct_I.pack(length))
208
+ pattern = '<%sd'%length
209
+ buff.write(struct.Struct(pattern).pack(*self.modeSchedule.eventTimes))
210
+ length = len(self.modeSchedule.modeSequence)
211
+ buff.write(_struct_I.pack(length))
212
+ pattern = '<%sb'%length
213
+ buff.write(struct.Struct(pattern).pack(*self.modeSchedule.modeSequence))
214
+ length = len(self.data)
215
+ buff.write(_struct_I.pack(length))
216
+ for val1 in self.data:
217
+ length = len(val1.data)
218
+ buff.write(_struct_I.pack(length))
219
+ pattern = '<%sf'%length
220
+ buff.write(struct.Struct(pattern).pack(*val1.data))
221
+ _x = self
222
+ buff.write(_get_struct_7f().pack(_x.performanceIndices.initTime, _x.performanceIndices.merit, _x.performanceIndices.cost, _x.performanceIndices.dynamicsViolationSSE, _x.performanceIndices.equalityConstraintsSSE, _x.performanceIndices.equalityLagrangian, _x.performanceIndices.inequalityLagrangian))
223
+ except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
224
+ except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
225
+
226
+ def deserialize(self, str):
227
+ """
228
+ unpack serialized message in str into this message instance
229
+ :param str: byte array of serialized message, ``str``
230
+ """
231
+ if python3:
232
+ codecs.lookup_error("rosmsg").msg_type = self._type
233
+ try:
234
+ if self.initObservation is None:
235
+ self.initObservation = ocs2_msgs.msg.mpc_observation()
236
+ if self.planTargetTrajectories is None:
237
+ self.planTargetTrajectories = ocs2_msgs.msg.mpc_target_trajectories()
238
+ if self.stateTrajectory is None:
239
+ self.stateTrajectory = None
240
+ if self.inputTrajectory is None:
241
+ self.inputTrajectory = None
242
+ if self.modeSchedule is None:
243
+ self.modeSchedule = ocs2_msgs.msg.mode_schedule()
244
+ if self.data is None:
245
+ self.data = None
246
+ if self.performanceIndices is None:
247
+ self.performanceIndices = ocs2_msgs.msg.mpc_performance_indices()
248
+ end = 0
249
+ _x = self
250
+ start = end
251
+ end += 9
252
+ (_x.controllerType, _x.initObservation.time,) = _get_struct_Bd().unpack(str[start:end])
253
+ start = end
254
+ end += 4
255
+ (length,) = _struct_I.unpack(str[start:end])
256
+ pattern = '<%sf'%length
257
+ start = end
258
+ s = struct.Struct(pattern)
259
+ end += s.size
260
+ self.initObservation.state.value = s.unpack(str[start:end])
261
+ start = end
262
+ end += 4
263
+ (length,) = _struct_I.unpack(str[start:end])
264
+ pattern = '<%sf'%length
265
+ start = end
266
+ s = struct.Struct(pattern)
267
+ end += s.size
268
+ self.initObservation.input.value = s.unpack(str[start:end])
269
+ start = end
270
+ end += 1
271
+ (self.initObservation.mode,) = _get_struct_b().unpack(str[start:end])
272
+ start = end
273
+ end += 4
274
+ (length,) = _struct_I.unpack(str[start:end])
275
+ pattern = '<%sd'%length
276
+ start = end
277
+ s = struct.Struct(pattern)
278
+ end += s.size
279
+ self.planTargetTrajectories.timeTrajectory = s.unpack(str[start:end])
280
+ start = end
281
+ end += 4
282
+ (length,) = _struct_I.unpack(str[start:end])
283
+ self.planTargetTrajectories.stateTrajectory = []
284
+ for i in range(0, length):
285
+ val1 = ocs2_msgs.msg.mpc_state()
286
+ start = end
287
+ end += 4
288
+ (length,) = _struct_I.unpack(str[start:end])
289
+ pattern = '<%sf'%length
290
+ start = end
291
+ s = struct.Struct(pattern)
292
+ end += s.size
293
+ val1.value = s.unpack(str[start:end])
294
+ self.planTargetTrajectories.stateTrajectory.append(val1)
295
+ start = end
296
+ end += 4
297
+ (length,) = _struct_I.unpack(str[start:end])
298
+ self.planTargetTrajectories.inputTrajectory = []
299
+ for i in range(0, length):
300
+ val1 = ocs2_msgs.msg.mpc_input()
301
+ start = end
302
+ end += 4
303
+ (length,) = _struct_I.unpack(str[start:end])
304
+ pattern = '<%sf'%length
305
+ start = end
306
+ s = struct.Struct(pattern)
307
+ end += s.size
308
+ val1.value = s.unpack(str[start:end])
309
+ self.planTargetTrajectories.inputTrajectory.append(val1)
310
+ start = end
311
+ end += 4
312
+ (length,) = _struct_I.unpack(str[start:end])
313
+ self.stateTrajectory = []
314
+ for i in range(0, length):
315
+ val1 = ocs2_msgs.msg.mpc_state()
316
+ start = end
317
+ end += 4
318
+ (length,) = _struct_I.unpack(str[start:end])
319
+ pattern = '<%sf'%length
320
+ start = end
321
+ s = struct.Struct(pattern)
322
+ end += s.size
323
+ val1.value = s.unpack(str[start:end])
324
+ self.stateTrajectory.append(val1)
325
+ start = end
326
+ end += 4
327
+ (length,) = _struct_I.unpack(str[start:end])
328
+ self.inputTrajectory = []
329
+ for i in range(0, length):
330
+ val1 = ocs2_msgs.msg.mpc_input()
331
+ start = end
332
+ end += 4
333
+ (length,) = _struct_I.unpack(str[start:end])
334
+ pattern = '<%sf'%length
335
+ start = end
336
+ s = struct.Struct(pattern)
337
+ end += s.size
338
+ val1.value = s.unpack(str[start:end])
339
+ self.inputTrajectory.append(val1)
340
+ start = end
341
+ end += 4
342
+ (length,) = _struct_I.unpack(str[start:end])
343
+ pattern = '<%sd'%length
344
+ start = end
345
+ s = struct.Struct(pattern)
346
+ end += s.size
347
+ self.timeTrajectory = s.unpack(str[start:end])
348
+ start = end
349
+ end += 4
350
+ (length,) = _struct_I.unpack(str[start:end])
351
+ pattern = '<%sH'%length
352
+ start = end
353
+ s = struct.Struct(pattern)
354
+ end += s.size
355
+ self.postEventIndices = s.unpack(str[start:end])
356
+ start = end
357
+ end += 4
358
+ (length,) = _struct_I.unpack(str[start:end])
359
+ pattern = '<%sd'%length
360
+ start = end
361
+ s = struct.Struct(pattern)
362
+ end += s.size
363
+ self.modeSchedule.eventTimes = s.unpack(str[start:end])
364
+ start = end
365
+ end += 4
366
+ (length,) = _struct_I.unpack(str[start:end])
367
+ pattern = '<%sb'%length
368
+ start = end
369
+ s = struct.Struct(pattern)
370
+ end += s.size
371
+ self.modeSchedule.modeSequence = s.unpack(str[start:end])
372
+ start = end
373
+ end += 4
374
+ (length,) = _struct_I.unpack(str[start:end])
375
+ self.data = []
376
+ for i in range(0, length):
377
+ val1 = ocs2_msgs.msg.controller_data()
378
+ start = end
379
+ end += 4
380
+ (length,) = _struct_I.unpack(str[start:end])
381
+ pattern = '<%sf'%length
382
+ start = end
383
+ s = struct.Struct(pattern)
384
+ end += s.size
385
+ val1.data = s.unpack(str[start:end])
386
+ self.data.append(val1)
387
+ _x = self
388
+ start = end
389
+ end += 28
390
+ (_x.performanceIndices.initTime, _x.performanceIndices.merit, _x.performanceIndices.cost, _x.performanceIndices.dynamicsViolationSSE, _x.performanceIndices.equalityConstraintsSSE, _x.performanceIndices.equalityLagrangian, _x.performanceIndices.inequalityLagrangian,) = _get_struct_7f().unpack(str[start:end])
391
+ return self
392
+ except struct.error as e:
393
+ raise genpy.DeserializationError(e) # most likely buffer underfill
394
+
395
+
396
+ def serialize_numpy(self, buff, numpy):
397
+ """
398
+ serialize message with numpy array types into buffer
399
+ :param buff: buffer, ``StringIO``
400
+ :param numpy: numpy python module
401
+ """
402
+ try:
403
+ _x = self
404
+ buff.write(_get_struct_Bd().pack(_x.controllerType, _x.initObservation.time))
405
+ length = len(self.initObservation.state.value)
406
+ buff.write(_struct_I.pack(length))
407
+ pattern = '<%sf'%length
408
+ buff.write(self.initObservation.state.value.tostring())
409
+ length = len(self.initObservation.input.value)
410
+ buff.write(_struct_I.pack(length))
411
+ pattern = '<%sf'%length
412
+ buff.write(self.initObservation.input.value.tostring())
413
+ _x = self.initObservation.mode
414
+ buff.write(_get_struct_b().pack(_x))
415
+ length = len(self.planTargetTrajectories.timeTrajectory)
416
+ buff.write(_struct_I.pack(length))
417
+ pattern = '<%sd'%length
418
+ buff.write(self.planTargetTrajectories.timeTrajectory.tostring())
419
+ length = len(self.planTargetTrajectories.stateTrajectory)
420
+ buff.write(_struct_I.pack(length))
421
+ for val1 in self.planTargetTrajectories.stateTrajectory:
422
+ length = len(val1.value)
423
+ buff.write(_struct_I.pack(length))
424
+ pattern = '<%sf'%length
425
+ buff.write(val1.value.tostring())
426
+ length = len(self.planTargetTrajectories.inputTrajectory)
427
+ buff.write(_struct_I.pack(length))
428
+ for val1 in self.planTargetTrajectories.inputTrajectory:
429
+ length = len(val1.value)
430
+ buff.write(_struct_I.pack(length))
431
+ pattern = '<%sf'%length
432
+ buff.write(val1.value.tostring())
433
+ length = len(self.stateTrajectory)
434
+ buff.write(_struct_I.pack(length))
435
+ for val1 in self.stateTrajectory:
436
+ length = len(val1.value)
437
+ buff.write(_struct_I.pack(length))
438
+ pattern = '<%sf'%length
439
+ buff.write(val1.value.tostring())
440
+ length = len(self.inputTrajectory)
441
+ buff.write(_struct_I.pack(length))
442
+ for val1 in self.inputTrajectory:
443
+ length = len(val1.value)
444
+ buff.write(_struct_I.pack(length))
445
+ pattern = '<%sf'%length
446
+ buff.write(val1.value.tostring())
447
+ length = len(self.timeTrajectory)
448
+ buff.write(_struct_I.pack(length))
449
+ pattern = '<%sd'%length
450
+ buff.write(self.timeTrajectory.tostring())
451
+ length = len(self.postEventIndices)
452
+ buff.write(_struct_I.pack(length))
453
+ pattern = '<%sH'%length
454
+ buff.write(self.postEventIndices.tostring())
455
+ length = len(self.modeSchedule.eventTimes)
456
+ buff.write(_struct_I.pack(length))
457
+ pattern = '<%sd'%length
458
+ buff.write(self.modeSchedule.eventTimes.tostring())
459
+ length = len(self.modeSchedule.modeSequence)
460
+ buff.write(_struct_I.pack(length))
461
+ pattern = '<%sb'%length
462
+ buff.write(self.modeSchedule.modeSequence.tostring())
463
+ length = len(self.data)
464
+ buff.write(_struct_I.pack(length))
465
+ for val1 in self.data:
466
+ length = len(val1.data)
467
+ buff.write(_struct_I.pack(length))
468
+ pattern = '<%sf'%length
469
+ buff.write(val1.data.tostring())
470
+ _x = self
471
+ buff.write(_get_struct_7f().pack(_x.performanceIndices.initTime, _x.performanceIndices.merit, _x.performanceIndices.cost, _x.performanceIndices.dynamicsViolationSSE, _x.performanceIndices.equalityConstraintsSSE, _x.performanceIndices.equalityLagrangian, _x.performanceIndices.inequalityLagrangian))
472
+ except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(locals().get('_x', self)))))
473
+ except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(locals().get('_x', self)))))
474
+
475
+ def deserialize_numpy(self, str, numpy):
476
+ """
477
+ unpack serialized message in str into this message instance using numpy for array types
478
+ :param str: byte array of serialized message, ``str``
479
+ :param numpy: numpy python module
480
+ """
481
+ if python3:
482
+ codecs.lookup_error("rosmsg").msg_type = self._type
483
+ try:
484
+ if self.initObservation is None:
485
+ self.initObservation = ocs2_msgs.msg.mpc_observation()
486
+ if self.planTargetTrajectories is None:
487
+ self.planTargetTrajectories = ocs2_msgs.msg.mpc_target_trajectories()
488
+ if self.stateTrajectory is None:
489
+ self.stateTrajectory = None
490
+ if self.inputTrajectory is None:
491
+ self.inputTrajectory = None
492
+ if self.modeSchedule is None:
493
+ self.modeSchedule = ocs2_msgs.msg.mode_schedule()
494
+ if self.data is None:
495
+ self.data = None
496
+ if self.performanceIndices is None:
497
+ self.performanceIndices = ocs2_msgs.msg.mpc_performance_indices()
498
+ end = 0
499
+ _x = self
500
+ start = end
501
+ end += 9
502
+ (_x.controllerType, _x.initObservation.time,) = _get_struct_Bd().unpack(str[start:end])
503
+ start = end
504
+ end += 4
505
+ (length,) = _struct_I.unpack(str[start:end])
506
+ pattern = '<%sf'%length
507
+ start = end
508
+ s = struct.Struct(pattern)
509
+ end += s.size
510
+ self.initObservation.state.value = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
511
+ start = end
512
+ end += 4
513
+ (length,) = _struct_I.unpack(str[start:end])
514
+ pattern = '<%sf'%length
515
+ start = end
516
+ s = struct.Struct(pattern)
517
+ end += s.size
518
+ self.initObservation.input.value = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
519
+ start = end
520
+ end += 1
521
+ (self.initObservation.mode,) = _get_struct_b().unpack(str[start:end])
522
+ start = end
523
+ end += 4
524
+ (length,) = _struct_I.unpack(str[start:end])
525
+ pattern = '<%sd'%length
526
+ start = end
527
+ s = struct.Struct(pattern)
528
+ end += s.size
529
+ self.planTargetTrajectories.timeTrajectory = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
530
+ start = end
531
+ end += 4
532
+ (length,) = _struct_I.unpack(str[start:end])
533
+ self.planTargetTrajectories.stateTrajectory = []
534
+ for i in range(0, length):
535
+ val1 = ocs2_msgs.msg.mpc_state()
536
+ start = end
537
+ end += 4
538
+ (length,) = _struct_I.unpack(str[start:end])
539
+ pattern = '<%sf'%length
540
+ start = end
541
+ s = struct.Struct(pattern)
542
+ end += s.size
543
+ val1.value = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
544
+ self.planTargetTrajectories.stateTrajectory.append(val1)
545
+ start = end
546
+ end += 4
547
+ (length,) = _struct_I.unpack(str[start:end])
548
+ self.planTargetTrajectories.inputTrajectory = []
549
+ for i in range(0, length):
550
+ val1 = ocs2_msgs.msg.mpc_input()
551
+ start = end
552
+ end += 4
553
+ (length,) = _struct_I.unpack(str[start:end])
554
+ pattern = '<%sf'%length
555
+ start = end
556
+ s = struct.Struct(pattern)
557
+ end += s.size
558
+ val1.value = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
559
+ self.planTargetTrajectories.inputTrajectory.append(val1)
560
+ start = end
561
+ end += 4
562
+ (length,) = _struct_I.unpack(str[start:end])
563
+ self.stateTrajectory = []
564
+ for i in range(0, length):
565
+ val1 = ocs2_msgs.msg.mpc_state()
566
+ start = end
567
+ end += 4
568
+ (length,) = _struct_I.unpack(str[start:end])
569
+ pattern = '<%sf'%length
570
+ start = end
571
+ s = struct.Struct(pattern)
572
+ end += s.size
573
+ val1.value = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
574
+ self.stateTrajectory.append(val1)
575
+ start = end
576
+ end += 4
577
+ (length,) = _struct_I.unpack(str[start:end])
578
+ self.inputTrajectory = []
579
+ for i in range(0, length):
580
+ val1 = ocs2_msgs.msg.mpc_input()
581
+ start = end
582
+ end += 4
583
+ (length,) = _struct_I.unpack(str[start:end])
584
+ pattern = '<%sf'%length
585
+ start = end
586
+ s = struct.Struct(pattern)
587
+ end += s.size
588
+ val1.value = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
589
+ self.inputTrajectory.append(val1)
590
+ start = end
591
+ end += 4
592
+ (length,) = _struct_I.unpack(str[start:end])
593
+ pattern = '<%sd'%length
594
+ start = end
595
+ s = struct.Struct(pattern)
596
+ end += s.size
597
+ self.timeTrajectory = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
598
+ start = end
599
+ end += 4
600
+ (length,) = _struct_I.unpack(str[start:end])
601
+ pattern = '<%sH'%length
602
+ start = end
603
+ s = struct.Struct(pattern)
604
+ end += s.size
605
+ self.postEventIndices = numpy.frombuffer(str[start:end], dtype=numpy.uint16, count=length)
606
+ start = end
607
+ end += 4
608
+ (length,) = _struct_I.unpack(str[start:end])
609
+ pattern = '<%sd'%length
610
+ start = end
611
+ s = struct.Struct(pattern)
612
+ end += s.size
613
+ self.modeSchedule.eventTimes = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
614
+ start = end
615
+ end += 4
616
+ (length,) = _struct_I.unpack(str[start:end])
617
+ pattern = '<%sb'%length
618
+ start = end
619
+ s = struct.Struct(pattern)
620
+ end += s.size
621
+ self.modeSchedule.modeSequence = numpy.frombuffer(str[start:end], dtype=numpy.int8, count=length)
622
+ start = end
623
+ end += 4
624
+ (length,) = _struct_I.unpack(str[start:end])
625
+ self.data = []
626
+ for i in range(0, length):
627
+ val1 = ocs2_msgs.msg.controller_data()
628
+ start = end
629
+ end += 4
630
+ (length,) = _struct_I.unpack(str[start:end])
631
+ pattern = '<%sf'%length
632
+ start = end
633
+ s = struct.Struct(pattern)
634
+ end += s.size
635
+ val1.data = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
636
+ self.data.append(val1)
637
+ _x = self
638
+ start = end
639
+ end += 28
640
+ (_x.performanceIndices.initTime, _x.performanceIndices.merit, _x.performanceIndices.cost, _x.performanceIndices.dynamicsViolationSSE, _x.performanceIndices.equalityConstraintsSSE, _x.performanceIndices.equalityLagrangian, _x.performanceIndices.inequalityLagrangian,) = _get_struct_7f().unpack(str[start:end])
641
+ return self
642
+ except struct.error as e:
643
+ raise genpy.DeserializationError(e) # most likely buffer underfill
644
+
645
+ _struct_I = genpy.struct_I
646
+ def _get_struct_I():
647
+ global _struct_I
648
+ return _struct_I
649
+ _struct_7f = None
650
+ def _get_struct_7f():
651
+ global _struct_7f
652
+ if _struct_7f is None:
653
+ _struct_7f = struct.Struct("<7f")
654
+ return _struct_7f
655
+ _struct_Bd = None
656
+ def _get_struct_Bd():
657
+ global _struct_Bd
658
+ if _struct_Bd is None:
659
+ _struct_Bd = struct.Struct("<Bd")
660
+ return _struct_Bd
661
+ _struct_b = None
662
+ def _get_struct_b():
663
+ global _struct_b
664
+ if _struct_b is None:
665
+ _struct_b = struct.Struct("<b")
666
+ return _struct_b