kuavo-humanoid-sdk 1.2.1b3319__20250917133850-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 +561 -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.1b3319.dist-info/METADATA +297 -0
- kuavo_humanoid_sdk-1.2.1b3319.dist-info/RECORD +186 -0
- kuavo_humanoid_sdk-1.2.1b3319.dist-info/WHEEL +6 -0
- kuavo_humanoid_sdk-1.2.1b3319.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
|