00001 """autogenerated by genmsg_py from FindContainerAction.msg. Do not edit."""
00002 import roslib.message
00003 import struct
00004
00005 import object_manipulation_msgs.msg
00006 import roslib.rostime
00007 import actionlib_msgs.msg
00008 import geometry_msgs.msg
00009 import sensor_msgs.msg
00010 import std_msgs.msg
00011
00012 class FindContainerAction(roslib.message.Message):
00013 _md5sum = "924e0c14e65addf50f9c46889a92a8e8"
00014 _type = "object_manipulation_msgs/FindContainerAction"
00015 _has_header = False
00016 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00017
00018 FindContainerActionGoal action_goal
00019 FindContainerActionResult action_result
00020 FindContainerActionFeedback action_feedback
00021
00022 ================================================================================
00023 MSG: object_manipulation_msgs/FindContainerActionGoal
00024 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00025
00026 Header header
00027 actionlib_msgs/GoalID goal_id
00028 FindContainerGoal goal
00029
00030 ================================================================================
00031 MSG: std_msgs/Header
00032 # Standard metadata for higher-level stamped data types.
00033 # This is generally used to communicate timestamped data
00034 # in a particular coordinate frame.
00035 #
00036 # sequence ID: consecutively increasing ID
00037 uint32 seq
00038 #Two-integer timestamp that is expressed as:
00039 # * stamp.secs: seconds (stamp_secs) since epoch
00040 # * stamp.nsecs: nanoseconds since stamp_secs
00041 # time-handling sugar is provided by the client library
00042 time stamp
00043 #Frame this data is associated with
00044 # 0: no frame
00045 # 1: global frame
00046 string frame_id
00047
00048 ================================================================================
00049 MSG: actionlib_msgs/GoalID
00050 # The stamp should store the time at which this goal was requested.
00051 # It is used by an action server when it tries to preempt all
00052 # goals that were requested before a certain time
00053 time stamp
00054
00055 # The id provides a way to associate feedback and
00056 # result message with specific goal requests. The id
00057 # specified must be unique.
00058 string id
00059
00060
00061 ================================================================================
00062 MSG: object_manipulation_msgs/FindContainerGoal
00063 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00064 # The cloud
00065 sensor_msgs/PointCloud2 cloud
00066
00067 # starting estimate of bounding box
00068 # all output will be in this frame
00069 # Assumes axis-aligned with header frame,
00070 # and WON'T take orientation into account.
00071 geometry_msgs/PoseStamped box_pose
00072 geometry_msgs/Vector3 box_dims
00073
00074 # the direction that the container opens (in bounding box header frame)
00075 geometry_msgs/Vector3 opening_dir
00076
00077
00078 ================================================================================
00079 MSG: sensor_msgs/PointCloud2
00080 # This message holds a collection of N-dimensional points, which may
00081 # contain additional information such as normals, intensity, etc. The
00082 # point data is stored as a binary blob, its layout described by the
00083 # contents of the "fields" array.
00084
00085 # The point cloud data may be organized 2d (image-like) or 1d
00086 # (unordered). Point clouds organized as 2d images may be produced by
00087 # camera depth sensors such as stereo or time-of-flight.
00088
00089 # Time of sensor data acquisition, and the coordinate frame ID (for 3d
00090 # points).
00091 Header header
00092
00093 # 2D structure of the point cloud. If the cloud is unordered, height is
00094 # 1 and width is the length of the point cloud.
00095 uint32 height
00096 uint32 width
00097
00098 # Describes the channels and their layout in the binary data blob.
00099 PointField[] fields
00100
00101 bool is_bigendian # Is this data bigendian?
00102 uint32 point_step # Length of a point in bytes
00103 uint32 row_step # Length of a row in bytes
00104 uint8[] data # Actual point data, size is (row_step*height)
00105
00106 bool is_dense # True if there are no invalid points
00107
00108 ================================================================================
00109 MSG: sensor_msgs/PointField
00110 # This message holds the description of one point entry in the
00111 # PointCloud2 message format.
00112 uint8 INT8 = 1
00113 uint8 UINT8 = 2
00114 uint8 INT16 = 3
00115 uint8 UINT16 = 4
00116 uint8 INT32 = 5
00117 uint8 UINT32 = 6
00118 uint8 FLOAT32 = 7
00119 uint8 FLOAT64 = 8
00120
00121 string name # Name of field
00122 uint32 offset # Offset from start of point struct
00123 uint8 datatype # Datatype enumeration, see above
00124 uint32 count # How many elements in the field
00125
00126 ================================================================================
00127 MSG: geometry_msgs/PoseStamped
00128 # A Pose with reference coordinate frame and timestamp
00129 Header header
00130 Pose pose
00131
00132 ================================================================================
00133 MSG: geometry_msgs/Pose
00134 # A representation of pose in free space, composed of postion and orientation.
00135 Point position
00136 Quaternion orientation
00137
00138 ================================================================================
00139 MSG: geometry_msgs/Point
00140 # This contains the position of a point in free space
00141 float64 x
00142 float64 y
00143 float64 z
00144
00145 ================================================================================
00146 MSG: geometry_msgs/Quaternion
00147 # This represents an orientation in free space in quaternion form.
00148
00149 float64 x
00150 float64 y
00151 float64 z
00152 float64 w
00153
00154 ================================================================================
00155 MSG: geometry_msgs/Vector3
00156 # This represents a vector in free space.
00157
00158 float64 x
00159 float64 y
00160 float64 z
00161 ================================================================================
00162 MSG: object_manipulation_msgs/FindContainerActionResult
00163 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00164
00165 Header header
00166 actionlib_msgs/GoalStatus status
00167 FindContainerResult result
00168
00169 ================================================================================
00170 MSG: actionlib_msgs/GoalStatus
00171 GoalID goal_id
00172 uint8 status
00173 uint8 PENDING = 0 # The goal has yet to be processed by the action server
00174 uint8 ACTIVE = 1 # The goal is currently being processed by the action server
00175 uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing
00176 # and has since completed its execution (Terminal State)
00177 uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)
00178 uint8 ABORTED = 4 # The goal was aborted during execution by the action server due
00179 # to some failure (Terminal State)
00180 uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,
00181 # because the goal was unattainable or invalid (Terminal State)
00182 uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing
00183 # and has not yet completed execution
00184 uint8 RECALLING = 7 # The goal received a cancel request before it started executing,
00185 # but the action server has not yet confirmed that the goal is canceled
00186 uint8 RECALLED = 8 # The goal received a cancel request before it started executing
00187 # and was successfully cancelled (Terminal State)
00188 uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be
00189 # sent over the wire by an action server
00190
00191 #Allow for the user to associate a string with GoalStatus for debugging
00192 string text
00193
00194
00195 ================================================================================
00196 MSG: object_manipulation_msgs/FindContainerResult
00197 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00198 # refined pose and dimensions of bounding box for container
00199 geometry_msgs/PoseStamped box_pose
00200 geometry_msgs/Vector3 box_dims
00201
00202 # cloud chunks of stuff in container, and container
00203 sensor_msgs/PointCloud2 contents
00204 sensor_msgs/PointCloud2 container
00205 sensor_msgs/PointCloud2[] clusters
00206
00207
00208 ================================================================================
00209 MSG: object_manipulation_msgs/FindContainerActionFeedback
00210 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00211
00212 Header header
00213 actionlib_msgs/GoalStatus status
00214 FindContainerFeedback feedback
00215
00216 ================================================================================
00217 MSG: object_manipulation_msgs/FindContainerFeedback
00218 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00219
00220
00221
00222 """
00223 __slots__ = ['action_goal','action_result','action_feedback']
00224 _slot_types = ['object_manipulation_msgs/FindContainerActionGoal','object_manipulation_msgs/FindContainerActionResult','object_manipulation_msgs/FindContainerActionFeedback']
00225
00226 def __init__(self, *args, **kwds):
00227 """
00228 Constructor. Any message fields that are implicitly/explicitly
00229 set to None will be assigned a default value. The recommend
00230 use is keyword arguments as this is more robust to future message
00231 changes. You cannot mix in-order arguments and keyword arguments.
00232
00233 The available fields are:
00234 action_goal,action_result,action_feedback
00235
00236 @param args: complete set of field values, in .msg order
00237 @param kwds: use keyword arguments corresponding to message field names
00238 to set specific fields.
00239 """
00240 if args or kwds:
00241 super(FindContainerAction, self).__init__(*args, **kwds)
00242
00243 if self.action_goal is None:
00244 self.action_goal = object_manipulation_msgs.msg.FindContainerActionGoal()
00245 if self.action_result is None:
00246 self.action_result = object_manipulation_msgs.msg.FindContainerActionResult()
00247 if self.action_feedback is None:
00248 self.action_feedback = object_manipulation_msgs.msg.FindContainerActionFeedback()
00249 else:
00250 self.action_goal = object_manipulation_msgs.msg.FindContainerActionGoal()
00251 self.action_result = object_manipulation_msgs.msg.FindContainerActionResult()
00252 self.action_feedback = object_manipulation_msgs.msg.FindContainerActionFeedback()
00253
00254 def _get_types(self):
00255 """
00256 internal API method
00257 """
00258 return self._slot_types
00259
00260 def serialize(self, buff):
00261 """
00262 serialize message into buffer
00263 @param buff: buffer
00264 @type buff: StringIO
00265 """
00266 try:
00267 _x = self
00268 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00269 _x = self.action_goal.header.frame_id
00270 length = len(_x)
00271 buff.write(struct.pack('<I%ss'%length, length, _x))
00272 _x = self
00273 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00274 _x = self.action_goal.goal_id.id
00275 length = len(_x)
00276 buff.write(struct.pack('<I%ss'%length, length, _x))
00277 _x = self
00278 buff.write(_struct_3I.pack(_x.action_goal.goal.cloud.header.seq, _x.action_goal.goal.cloud.header.stamp.secs, _x.action_goal.goal.cloud.header.stamp.nsecs))
00279 _x = self.action_goal.goal.cloud.header.frame_id
00280 length = len(_x)
00281 buff.write(struct.pack('<I%ss'%length, length, _x))
00282 _x = self
00283 buff.write(_struct_2I.pack(_x.action_goal.goal.cloud.height, _x.action_goal.goal.cloud.width))
00284 length = len(self.action_goal.goal.cloud.fields)
00285 buff.write(_struct_I.pack(length))
00286 for val1 in self.action_goal.goal.cloud.fields:
00287 _x = val1.name
00288 length = len(_x)
00289 buff.write(struct.pack('<I%ss'%length, length, _x))
00290 _x = val1
00291 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00292 _x = self
00293 buff.write(_struct_B2I.pack(_x.action_goal.goal.cloud.is_bigendian, _x.action_goal.goal.cloud.point_step, _x.action_goal.goal.cloud.row_step))
00294 _x = self.action_goal.goal.cloud.data
00295 length = len(_x)
00296
00297 if type(_x) in [list, tuple]:
00298 buff.write(struct.pack('<I%sB'%length, length, *_x))
00299 else:
00300 buff.write(struct.pack('<I%ss'%length, length, _x))
00301 _x = self
00302 buff.write(_struct_B3I.pack(_x.action_goal.goal.cloud.is_dense, _x.action_goal.goal.box_pose.header.seq, _x.action_goal.goal.box_pose.header.stamp.secs, _x.action_goal.goal.box_pose.header.stamp.nsecs))
00303 _x = self.action_goal.goal.box_pose.header.frame_id
00304 length = len(_x)
00305 buff.write(struct.pack('<I%ss'%length, length, _x))
00306 _x = self
00307 buff.write(_struct_13d3I.pack(_x.action_goal.goal.box_pose.pose.position.x, _x.action_goal.goal.box_pose.pose.position.y, _x.action_goal.goal.box_pose.pose.position.z, _x.action_goal.goal.box_pose.pose.orientation.x, _x.action_goal.goal.box_pose.pose.orientation.y, _x.action_goal.goal.box_pose.pose.orientation.z, _x.action_goal.goal.box_pose.pose.orientation.w, _x.action_goal.goal.box_dims.x, _x.action_goal.goal.box_dims.y, _x.action_goal.goal.box_dims.z, _x.action_goal.goal.opening_dir.x, _x.action_goal.goal.opening_dir.y, _x.action_goal.goal.opening_dir.z, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00308 _x = self.action_result.header.frame_id
00309 length = len(_x)
00310 buff.write(struct.pack('<I%ss'%length, length, _x))
00311 _x = self
00312 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00313 _x = self.action_result.status.goal_id.id
00314 length = len(_x)
00315 buff.write(struct.pack('<I%ss'%length, length, _x))
00316 buff.write(_struct_B.pack(self.action_result.status.status))
00317 _x = self.action_result.status.text
00318 length = len(_x)
00319 buff.write(struct.pack('<I%ss'%length, length, _x))
00320 _x = self
00321 buff.write(_struct_3I.pack(_x.action_result.result.box_pose.header.seq, _x.action_result.result.box_pose.header.stamp.secs, _x.action_result.result.box_pose.header.stamp.nsecs))
00322 _x = self.action_result.result.box_pose.header.frame_id
00323 length = len(_x)
00324 buff.write(struct.pack('<I%ss'%length, length, _x))
00325 _x = self
00326 buff.write(_struct_10d3I.pack(_x.action_result.result.box_pose.pose.position.x, _x.action_result.result.box_pose.pose.position.y, _x.action_result.result.box_pose.pose.position.z, _x.action_result.result.box_pose.pose.orientation.x, _x.action_result.result.box_pose.pose.orientation.y, _x.action_result.result.box_pose.pose.orientation.z, _x.action_result.result.box_pose.pose.orientation.w, _x.action_result.result.box_dims.x, _x.action_result.result.box_dims.y, _x.action_result.result.box_dims.z, _x.action_result.result.contents.header.seq, _x.action_result.result.contents.header.stamp.secs, _x.action_result.result.contents.header.stamp.nsecs))
00327 _x = self.action_result.result.contents.header.frame_id
00328 length = len(_x)
00329 buff.write(struct.pack('<I%ss'%length, length, _x))
00330 _x = self
00331 buff.write(_struct_2I.pack(_x.action_result.result.contents.height, _x.action_result.result.contents.width))
00332 length = len(self.action_result.result.contents.fields)
00333 buff.write(_struct_I.pack(length))
00334 for val1 in self.action_result.result.contents.fields:
00335 _x = val1.name
00336 length = len(_x)
00337 buff.write(struct.pack('<I%ss'%length, length, _x))
00338 _x = val1
00339 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00340 _x = self
00341 buff.write(_struct_B2I.pack(_x.action_result.result.contents.is_bigendian, _x.action_result.result.contents.point_step, _x.action_result.result.contents.row_step))
00342 _x = self.action_result.result.contents.data
00343 length = len(_x)
00344
00345 if type(_x) in [list, tuple]:
00346 buff.write(struct.pack('<I%sB'%length, length, *_x))
00347 else:
00348 buff.write(struct.pack('<I%ss'%length, length, _x))
00349 _x = self
00350 buff.write(_struct_B3I.pack(_x.action_result.result.contents.is_dense, _x.action_result.result.container.header.seq, _x.action_result.result.container.header.stamp.secs, _x.action_result.result.container.header.stamp.nsecs))
00351 _x = self.action_result.result.container.header.frame_id
00352 length = len(_x)
00353 buff.write(struct.pack('<I%ss'%length, length, _x))
00354 _x = self
00355 buff.write(_struct_2I.pack(_x.action_result.result.container.height, _x.action_result.result.container.width))
00356 length = len(self.action_result.result.container.fields)
00357 buff.write(_struct_I.pack(length))
00358 for val1 in self.action_result.result.container.fields:
00359 _x = val1.name
00360 length = len(_x)
00361 buff.write(struct.pack('<I%ss'%length, length, _x))
00362 _x = val1
00363 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00364 _x = self
00365 buff.write(_struct_B2I.pack(_x.action_result.result.container.is_bigendian, _x.action_result.result.container.point_step, _x.action_result.result.container.row_step))
00366 _x = self.action_result.result.container.data
00367 length = len(_x)
00368
00369 if type(_x) in [list, tuple]:
00370 buff.write(struct.pack('<I%sB'%length, length, *_x))
00371 else:
00372 buff.write(struct.pack('<I%ss'%length, length, _x))
00373 buff.write(_struct_B.pack(self.action_result.result.container.is_dense))
00374 length = len(self.action_result.result.clusters)
00375 buff.write(_struct_I.pack(length))
00376 for val1 in self.action_result.result.clusters:
00377 _v1 = val1.header
00378 buff.write(_struct_I.pack(_v1.seq))
00379 _v2 = _v1.stamp
00380 _x = _v2
00381 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00382 _x = _v1.frame_id
00383 length = len(_x)
00384 buff.write(struct.pack('<I%ss'%length, length, _x))
00385 _x = val1
00386 buff.write(_struct_2I.pack(_x.height, _x.width))
00387 length = len(val1.fields)
00388 buff.write(_struct_I.pack(length))
00389 for val2 in val1.fields:
00390 _x = val2.name
00391 length = len(_x)
00392 buff.write(struct.pack('<I%ss'%length, length, _x))
00393 _x = val2
00394 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00395 _x = val1
00396 buff.write(_struct_B2I.pack(_x.is_bigendian, _x.point_step, _x.row_step))
00397 _x = val1.data
00398 length = len(_x)
00399
00400 if type(_x) in [list, tuple]:
00401 buff.write(struct.pack('<I%sB'%length, length, *_x))
00402 else:
00403 buff.write(struct.pack('<I%ss'%length, length, _x))
00404 buff.write(_struct_B.pack(val1.is_dense))
00405 _x = self
00406 buff.write(_struct_3I.pack(_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00407 _x = self.action_feedback.header.frame_id
00408 length = len(_x)
00409 buff.write(struct.pack('<I%ss'%length, length, _x))
00410 _x = self
00411 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00412 _x = self.action_feedback.status.goal_id.id
00413 length = len(_x)
00414 buff.write(struct.pack('<I%ss'%length, length, _x))
00415 buff.write(_struct_B.pack(self.action_feedback.status.status))
00416 _x = self.action_feedback.status.text
00417 length = len(_x)
00418 buff.write(struct.pack('<I%ss'%length, length, _x))
00419 except struct.error as se: self._check_types(se)
00420 except TypeError as te: self._check_types(te)
00421
00422 def deserialize(self, str):
00423 """
00424 unpack serialized message in str into this message instance
00425 @param str: byte array of serialized message
00426 @type str: str
00427 """
00428 try:
00429 if self.action_goal is None:
00430 self.action_goal = object_manipulation_msgs.msg.FindContainerActionGoal()
00431 if self.action_result is None:
00432 self.action_result = object_manipulation_msgs.msg.FindContainerActionResult()
00433 if self.action_feedback is None:
00434 self.action_feedback = object_manipulation_msgs.msg.FindContainerActionFeedback()
00435 end = 0
00436 _x = self
00437 start = end
00438 end += 12
00439 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00440 start = end
00441 end += 4
00442 (length,) = _struct_I.unpack(str[start:end])
00443 start = end
00444 end += length
00445 self.action_goal.header.frame_id = str[start:end]
00446 _x = self
00447 start = end
00448 end += 8
00449 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00450 start = end
00451 end += 4
00452 (length,) = _struct_I.unpack(str[start:end])
00453 start = end
00454 end += length
00455 self.action_goal.goal_id.id = str[start:end]
00456 _x = self
00457 start = end
00458 end += 12
00459 (_x.action_goal.goal.cloud.header.seq, _x.action_goal.goal.cloud.header.stamp.secs, _x.action_goal.goal.cloud.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00460 start = end
00461 end += 4
00462 (length,) = _struct_I.unpack(str[start:end])
00463 start = end
00464 end += length
00465 self.action_goal.goal.cloud.header.frame_id = str[start:end]
00466 _x = self
00467 start = end
00468 end += 8
00469 (_x.action_goal.goal.cloud.height, _x.action_goal.goal.cloud.width,) = _struct_2I.unpack(str[start:end])
00470 start = end
00471 end += 4
00472 (length,) = _struct_I.unpack(str[start:end])
00473 self.action_goal.goal.cloud.fields = []
00474 for i in range(0, length):
00475 val1 = sensor_msgs.msg.PointField()
00476 start = end
00477 end += 4
00478 (length,) = _struct_I.unpack(str[start:end])
00479 start = end
00480 end += length
00481 val1.name = str[start:end]
00482 _x = val1
00483 start = end
00484 end += 9
00485 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00486 self.action_goal.goal.cloud.fields.append(val1)
00487 _x = self
00488 start = end
00489 end += 9
00490 (_x.action_goal.goal.cloud.is_bigendian, _x.action_goal.goal.cloud.point_step, _x.action_goal.goal.cloud.row_step,) = _struct_B2I.unpack(str[start:end])
00491 self.action_goal.goal.cloud.is_bigendian = bool(self.action_goal.goal.cloud.is_bigendian)
00492 start = end
00493 end += 4
00494 (length,) = _struct_I.unpack(str[start:end])
00495 start = end
00496 end += length
00497 self.action_goal.goal.cloud.data = str[start:end]
00498 _x = self
00499 start = end
00500 end += 13
00501 (_x.action_goal.goal.cloud.is_dense, _x.action_goal.goal.box_pose.header.seq, _x.action_goal.goal.box_pose.header.stamp.secs, _x.action_goal.goal.box_pose.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end])
00502 self.action_goal.goal.cloud.is_dense = bool(self.action_goal.goal.cloud.is_dense)
00503 start = end
00504 end += 4
00505 (length,) = _struct_I.unpack(str[start:end])
00506 start = end
00507 end += length
00508 self.action_goal.goal.box_pose.header.frame_id = str[start:end]
00509 _x = self
00510 start = end
00511 end += 116
00512 (_x.action_goal.goal.box_pose.pose.position.x, _x.action_goal.goal.box_pose.pose.position.y, _x.action_goal.goal.box_pose.pose.position.z, _x.action_goal.goal.box_pose.pose.orientation.x, _x.action_goal.goal.box_pose.pose.orientation.y, _x.action_goal.goal.box_pose.pose.orientation.z, _x.action_goal.goal.box_pose.pose.orientation.w, _x.action_goal.goal.box_dims.x, _x.action_goal.goal.box_dims.y, _x.action_goal.goal.box_dims.z, _x.action_goal.goal.opening_dir.x, _x.action_goal.goal.opening_dir.y, _x.action_goal.goal.opening_dir.z, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_13d3I.unpack(str[start:end])
00513 start = end
00514 end += 4
00515 (length,) = _struct_I.unpack(str[start:end])
00516 start = end
00517 end += length
00518 self.action_result.header.frame_id = str[start:end]
00519 _x = self
00520 start = end
00521 end += 8
00522 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00523 start = end
00524 end += 4
00525 (length,) = _struct_I.unpack(str[start:end])
00526 start = end
00527 end += length
00528 self.action_result.status.goal_id.id = str[start:end]
00529 start = end
00530 end += 1
00531 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00532 start = end
00533 end += 4
00534 (length,) = _struct_I.unpack(str[start:end])
00535 start = end
00536 end += length
00537 self.action_result.status.text = str[start:end]
00538 _x = self
00539 start = end
00540 end += 12
00541 (_x.action_result.result.box_pose.header.seq, _x.action_result.result.box_pose.header.stamp.secs, _x.action_result.result.box_pose.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00542 start = end
00543 end += 4
00544 (length,) = _struct_I.unpack(str[start:end])
00545 start = end
00546 end += length
00547 self.action_result.result.box_pose.header.frame_id = str[start:end]
00548 _x = self
00549 start = end
00550 end += 92
00551 (_x.action_result.result.box_pose.pose.position.x, _x.action_result.result.box_pose.pose.position.y, _x.action_result.result.box_pose.pose.position.z, _x.action_result.result.box_pose.pose.orientation.x, _x.action_result.result.box_pose.pose.orientation.y, _x.action_result.result.box_pose.pose.orientation.z, _x.action_result.result.box_pose.pose.orientation.w, _x.action_result.result.box_dims.x, _x.action_result.result.box_dims.y, _x.action_result.result.box_dims.z, _x.action_result.result.contents.header.seq, _x.action_result.result.contents.header.stamp.secs, _x.action_result.result.contents.header.stamp.nsecs,) = _struct_10d3I.unpack(str[start:end])
00552 start = end
00553 end += 4
00554 (length,) = _struct_I.unpack(str[start:end])
00555 start = end
00556 end += length
00557 self.action_result.result.contents.header.frame_id = str[start:end]
00558 _x = self
00559 start = end
00560 end += 8
00561 (_x.action_result.result.contents.height, _x.action_result.result.contents.width,) = _struct_2I.unpack(str[start:end])
00562 start = end
00563 end += 4
00564 (length,) = _struct_I.unpack(str[start:end])
00565 self.action_result.result.contents.fields = []
00566 for i in range(0, length):
00567 val1 = sensor_msgs.msg.PointField()
00568 start = end
00569 end += 4
00570 (length,) = _struct_I.unpack(str[start:end])
00571 start = end
00572 end += length
00573 val1.name = str[start:end]
00574 _x = val1
00575 start = end
00576 end += 9
00577 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00578 self.action_result.result.contents.fields.append(val1)
00579 _x = self
00580 start = end
00581 end += 9
00582 (_x.action_result.result.contents.is_bigendian, _x.action_result.result.contents.point_step, _x.action_result.result.contents.row_step,) = _struct_B2I.unpack(str[start:end])
00583 self.action_result.result.contents.is_bigendian = bool(self.action_result.result.contents.is_bigendian)
00584 start = end
00585 end += 4
00586 (length,) = _struct_I.unpack(str[start:end])
00587 start = end
00588 end += length
00589 self.action_result.result.contents.data = str[start:end]
00590 _x = self
00591 start = end
00592 end += 13
00593 (_x.action_result.result.contents.is_dense, _x.action_result.result.container.header.seq, _x.action_result.result.container.header.stamp.secs, _x.action_result.result.container.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end])
00594 self.action_result.result.contents.is_dense = bool(self.action_result.result.contents.is_dense)
00595 start = end
00596 end += 4
00597 (length,) = _struct_I.unpack(str[start:end])
00598 start = end
00599 end += length
00600 self.action_result.result.container.header.frame_id = str[start:end]
00601 _x = self
00602 start = end
00603 end += 8
00604 (_x.action_result.result.container.height, _x.action_result.result.container.width,) = _struct_2I.unpack(str[start:end])
00605 start = end
00606 end += 4
00607 (length,) = _struct_I.unpack(str[start:end])
00608 self.action_result.result.container.fields = []
00609 for i in range(0, length):
00610 val1 = sensor_msgs.msg.PointField()
00611 start = end
00612 end += 4
00613 (length,) = _struct_I.unpack(str[start:end])
00614 start = end
00615 end += length
00616 val1.name = str[start:end]
00617 _x = val1
00618 start = end
00619 end += 9
00620 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00621 self.action_result.result.container.fields.append(val1)
00622 _x = self
00623 start = end
00624 end += 9
00625 (_x.action_result.result.container.is_bigendian, _x.action_result.result.container.point_step, _x.action_result.result.container.row_step,) = _struct_B2I.unpack(str[start:end])
00626 self.action_result.result.container.is_bigendian = bool(self.action_result.result.container.is_bigendian)
00627 start = end
00628 end += 4
00629 (length,) = _struct_I.unpack(str[start:end])
00630 start = end
00631 end += length
00632 self.action_result.result.container.data = str[start:end]
00633 start = end
00634 end += 1
00635 (self.action_result.result.container.is_dense,) = _struct_B.unpack(str[start:end])
00636 self.action_result.result.container.is_dense = bool(self.action_result.result.container.is_dense)
00637 start = end
00638 end += 4
00639 (length,) = _struct_I.unpack(str[start:end])
00640 self.action_result.result.clusters = []
00641 for i in range(0, length):
00642 val1 = sensor_msgs.msg.PointCloud2()
00643 _v3 = val1.header
00644 start = end
00645 end += 4
00646 (_v3.seq,) = _struct_I.unpack(str[start:end])
00647 _v4 = _v3.stamp
00648 _x = _v4
00649 start = end
00650 end += 8
00651 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00652 start = end
00653 end += 4
00654 (length,) = _struct_I.unpack(str[start:end])
00655 start = end
00656 end += length
00657 _v3.frame_id = str[start:end]
00658 _x = val1
00659 start = end
00660 end += 8
00661 (_x.height, _x.width,) = _struct_2I.unpack(str[start:end])
00662 start = end
00663 end += 4
00664 (length,) = _struct_I.unpack(str[start:end])
00665 val1.fields = []
00666 for i in range(0, length):
00667 val2 = sensor_msgs.msg.PointField()
00668 start = end
00669 end += 4
00670 (length,) = _struct_I.unpack(str[start:end])
00671 start = end
00672 end += length
00673 val2.name = str[start:end]
00674 _x = val2
00675 start = end
00676 end += 9
00677 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00678 val1.fields.append(val2)
00679 _x = val1
00680 start = end
00681 end += 9
00682 (_x.is_bigendian, _x.point_step, _x.row_step,) = _struct_B2I.unpack(str[start:end])
00683 val1.is_bigendian = bool(val1.is_bigendian)
00684 start = end
00685 end += 4
00686 (length,) = _struct_I.unpack(str[start:end])
00687 start = end
00688 end += length
00689 val1.data = str[start:end]
00690 start = end
00691 end += 1
00692 (val1.is_dense,) = _struct_B.unpack(str[start:end])
00693 val1.is_dense = bool(val1.is_dense)
00694 self.action_result.result.clusters.append(val1)
00695 _x = self
00696 start = end
00697 end += 12
00698 (_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00699 start = end
00700 end += 4
00701 (length,) = _struct_I.unpack(str[start:end])
00702 start = end
00703 end += length
00704 self.action_feedback.header.frame_id = str[start:end]
00705 _x = self
00706 start = end
00707 end += 8
00708 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00709 start = end
00710 end += 4
00711 (length,) = _struct_I.unpack(str[start:end])
00712 start = end
00713 end += length
00714 self.action_feedback.status.goal_id.id = str[start:end]
00715 start = end
00716 end += 1
00717 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
00718 start = end
00719 end += 4
00720 (length,) = _struct_I.unpack(str[start:end])
00721 start = end
00722 end += length
00723 self.action_feedback.status.text = str[start:end]
00724 return self
00725 except struct.error as e:
00726 raise roslib.message.DeserializationError(e)
00727
00728
00729 def serialize_numpy(self, buff, numpy):
00730 """
00731 serialize message with numpy array types into buffer
00732 @param buff: buffer
00733 @type buff: StringIO
00734 @param numpy: numpy python module
00735 @type numpy module
00736 """
00737 try:
00738 _x = self
00739 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00740 _x = self.action_goal.header.frame_id
00741 length = len(_x)
00742 buff.write(struct.pack('<I%ss'%length, length, _x))
00743 _x = self
00744 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00745 _x = self.action_goal.goal_id.id
00746 length = len(_x)
00747 buff.write(struct.pack('<I%ss'%length, length, _x))
00748 _x = self
00749 buff.write(_struct_3I.pack(_x.action_goal.goal.cloud.header.seq, _x.action_goal.goal.cloud.header.stamp.secs, _x.action_goal.goal.cloud.header.stamp.nsecs))
00750 _x = self.action_goal.goal.cloud.header.frame_id
00751 length = len(_x)
00752 buff.write(struct.pack('<I%ss'%length, length, _x))
00753 _x = self
00754 buff.write(_struct_2I.pack(_x.action_goal.goal.cloud.height, _x.action_goal.goal.cloud.width))
00755 length = len(self.action_goal.goal.cloud.fields)
00756 buff.write(_struct_I.pack(length))
00757 for val1 in self.action_goal.goal.cloud.fields:
00758 _x = val1.name
00759 length = len(_x)
00760 buff.write(struct.pack('<I%ss'%length, length, _x))
00761 _x = val1
00762 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00763 _x = self
00764 buff.write(_struct_B2I.pack(_x.action_goal.goal.cloud.is_bigendian, _x.action_goal.goal.cloud.point_step, _x.action_goal.goal.cloud.row_step))
00765 _x = self.action_goal.goal.cloud.data
00766 length = len(_x)
00767
00768 if type(_x) in [list, tuple]:
00769 buff.write(struct.pack('<I%sB'%length, length, *_x))
00770 else:
00771 buff.write(struct.pack('<I%ss'%length, length, _x))
00772 _x = self
00773 buff.write(_struct_B3I.pack(_x.action_goal.goal.cloud.is_dense, _x.action_goal.goal.box_pose.header.seq, _x.action_goal.goal.box_pose.header.stamp.secs, _x.action_goal.goal.box_pose.header.stamp.nsecs))
00774 _x = self.action_goal.goal.box_pose.header.frame_id
00775 length = len(_x)
00776 buff.write(struct.pack('<I%ss'%length, length, _x))
00777 _x = self
00778 buff.write(_struct_13d3I.pack(_x.action_goal.goal.box_pose.pose.position.x, _x.action_goal.goal.box_pose.pose.position.y, _x.action_goal.goal.box_pose.pose.position.z, _x.action_goal.goal.box_pose.pose.orientation.x, _x.action_goal.goal.box_pose.pose.orientation.y, _x.action_goal.goal.box_pose.pose.orientation.z, _x.action_goal.goal.box_pose.pose.orientation.w, _x.action_goal.goal.box_dims.x, _x.action_goal.goal.box_dims.y, _x.action_goal.goal.box_dims.z, _x.action_goal.goal.opening_dir.x, _x.action_goal.goal.opening_dir.y, _x.action_goal.goal.opening_dir.z, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00779 _x = self.action_result.header.frame_id
00780 length = len(_x)
00781 buff.write(struct.pack('<I%ss'%length, length, _x))
00782 _x = self
00783 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00784 _x = self.action_result.status.goal_id.id
00785 length = len(_x)
00786 buff.write(struct.pack('<I%ss'%length, length, _x))
00787 buff.write(_struct_B.pack(self.action_result.status.status))
00788 _x = self.action_result.status.text
00789 length = len(_x)
00790 buff.write(struct.pack('<I%ss'%length, length, _x))
00791 _x = self
00792 buff.write(_struct_3I.pack(_x.action_result.result.box_pose.header.seq, _x.action_result.result.box_pose.header.stamp.secs, _x.action_result.result.box_pose.header.stamp.nsecs))
00793 _x = self.action_result.result.box_pose.header.frame_id
00794 length = len(_x)
00795 buff.write(struct.pack('<I%ss'%length, length, _x))
00796 _x = self
00797 buff.write(_struct_10d3I.pack(_x.action_result.result.box_pose.pose.position.x, _x.action_result.result.box_pose.pose.position.y, _x.action_result.result.box_pose.pose.position.z, _x.action_result.result.box_pose.pose.orientation.x, _x.action_result.result.box_pose.pose.orientation.y, _x.action_result.result.box_pose.pose.orientation.z, _x.action_result.result.box_pose.pose.orientation.w, _x.action_result.result.box_dims.x, _x.action_result.result.box_dims.y, _x.action_result.result.box_dims.z, _x.action_result.result.contents.header.seq, _x.action_result.result.contents.header.stamp.secs, _x.action_result.result.contents.header.stamp.nsecs))
00798 _x = self.action_result.result.contents.header.frame_id
00799 length = len(_x)
00800 buff.write(struct.pack('<I%ss'%length, length, _x))
00801 _x = self
00802 buff.write(_struct_2I.pack(_x.action_result.result.contents.height, _x.action_result.result.contents.width))
00803 length = len(self.action_result.result.contents.fields)
00804 buff.write(_struct_I.pack(length))
00805 for val1 in self.action_result.result.contents.fields:
00806 _x = val1.name
00807 length = len(_x)
00808 buff.write(struct.pack('<I%ss'%length, length, _x))
00809 _x = val1
00810 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00811 _x = self
00812 buff.write(_struct_B2I.pack(_x.action_result.result.contents.is_bigendian, _x.action_result.result.contents.point_step, _x.action_result.result.contents.row_step))
00813 _x = self.action_result.result.contents.data
00814 length = len(_x)
00815
00816 if type(_x) in [list, tuple]:
00817 buff.write(struct.pack('<I%sB'%length, length, *_x))
00818 else:
00819 buff.write(struct.pack('<I%ss'%length, length, _x))
00820 _x = self
00821 buff.write(_struct_B3I.pack(_x.action_result.result.contents.is_dense, _x.action_result.result.container.header.seq, _x.action_result.result.container.header.stamp.secs, _x.action_result.result.container.header.stamp.nsecs))
00822 _x = self.action_result.result.container.header.frame_id
00823 length = len(_x)
00824 buff.write(struct.pack('<I%ss'%length, length, _x))
00825 _x = self
00826 buff.write(_struct_2I.pack(_x.action_result.result.container.height, _x.action_result.result.container.width))
00827 length = len(self.action_result.result.container.fields)
00828 buff.write(_struct_I.pack(length))
00829 for val1 in self.action_result.result.container.fields:
00830 _x = val1.name
00831 length = len(_x)
00832 buff.write(struct.pack('<I%ss'%length, length, _x))
00833 _x = val1
00834 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00835 _x = self
00836 buff.write(_struct_B2I.pack(_x.action_result.result.container.is_bigendian, _x.action_result.result.container.point_step, _x.action_result.result.container.row_step))
00837 _x = self.action_result.result.container.data
00838 length = len(_x)
00839
00840 if type(_x) in [list, tuple]:
00841 buff.write(struct.pack('<I%sB'%length, length, *_x))
00842 else:
00843 buff.write(struct.pack('<I%ss'%length, length, _x))
00844 buff.write(_struct_B.pack(self.action_result.result.container.is_dense))
00845 length = len(self.action_result.result.clusters)
00846 buff.write(_struct_I.pack(length))
00847 for val1 in self.action_result.result.clusters:
00848 _v5 = val1.header
00849 buff.write(_struct_I.pack(_v5.seq))
00850 _v6 = _v5.stamp
00851 _x = _v6
00852 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00853 _x = _v5.frame_id
00854 length = len(_x)
00855 buff.write(struct.pack('<I%ss'%length, length, _x))
00856 _x = val1
00857 buff.write(_struct_2I.pack(_x.height, _x.width))
00858 length = len(val1.fields)
00859 buff.write(_struct_I.pack(length))
00860 for val2 in val1.fields:
00861 _x = val2.name
00862 length = len(_x)
00863 buff.write(struct.pack('<I%ss'%length, length, _x))
00864 _x = val2
00865 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00866 _x = val1
00867 buff.write(_struct_B2I.pack(_x.is_bigendian, _x.point_step, _x.row_step))
00868 _x = val1.data
00869 length = len(_x)
00870
00871 if type(_x) in [list, tuple]:
00872 buff.write(struct.pack('<I%sB'%length, length, *_x))
00873 else:
00874 buff.write(struct.pack('<I%ss'%length, length, _x))
00875 buff.write(_struct_B.pack(val1.is_dense))
00876 _x = self
00877 buff.write(_struct_3I.pack(_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00878 _x = self.action_feedback.header.frame_id
00879 length = len(_x)
00880 buff.write(struct.pack('<I%ss'%length, length, _x))
00881 _x = self
00882 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00883 _x = self.action_feedback.status.goal_id.id
00884 length = len(_x)
00885 buff.write(struct.pack('<I%ss'%length, length, _x))
00886 buff.write(_struct_B.pack(self.action_feedback.status.status))
00887 _x = self.action_feedback.status.text
00888 length = len(_x)
00889 buff.write(struct.pack('<I%ss'%length, length, _x))
00890 except struct.error as se: self._check_types(se)
00891 except TypeError as te: self._check_types(te)
00892
00893 def deserialize_numpy(self, str, numpy):
00894 """
00895 unpack serialized message in str into this message instance using numpy for array types
00896 @param str: byte array of serialized message
00897 @type str: str
00898 @param numpy: numpy python module
00899 @type numpy: module
00900 """
00901 try:
00902 if self.action_goal is None:
00903 self.action_goal = object_manipulation_msgs.msg.FindContainerActionGoal()
00904 if self.action_result is None:
00905 self.action_result = object_manipulation_msgs.msg.FindContainerActionResult()
00906 if self.action_feedback is None:
00907 self.action_feedback = object_manipulation_msgs.msg.FindContainerActionFeedback()
00908 end = 0
00909 _x = self
00910 start = end
00911 end += 12
00912 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00913 start = end
00914 end += 4
00915 (length,) = _struct_I.unpack(str[start:end])
00916 start = end
00917 end += length
00918 self.action_goal.header.frame_id = str[start:end]
00919 _x = self
00920 start = end
00921 end += 8
00922 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00923 start = end
00924 end += 4
00925 (length,) = _struct_I.unpack(str[start:end])
00926 start = end
00927 end += length
00928 self.action_goal.goal_id.id = str[start:end]
00929 _x = self
00930 start = end
00931 end += 12
00932 (_x.action_goal.goal.cloud.header.seq, _x.action_goal.goal.cloud.header.stamp.secs, _x.action_goal.goal.cloud.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00933 start = end
00934 end += 4
00935 (length,) = _struct_I.unpack(str[start:end])
00936 start = end
00937 end += length
00938 self.action_goal.goal.cloud.header.frame_id = str[start:end]
00939 _x = self
00940 start = end
00941 end += 8
00942 (_x.action_goal.goal.cloud.height, _x.action_goal.goal.cloud.width,) = _struct_2I.unpack(str[start:end])
00943 start = end
00944 end += 4
00945 (length,) = _struct_I.unpack(str[start:end])
00946 self.action_goal.goal.cloud.fields = []
00947 for i in range(0, length):
00948 val1 = sensor_msgs.msg.PointField()
00949 start = end
00950 end += 4
00951 (length,) = _struct_I.unpack(str[start:end])
00952 start = end
00953 end += length
00954 val1.name = str[start:end]
00955 _x = val1
00956 start = end
00957 end += 9
00958 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00959 self.action_goal.goal.cloud.fields.append(val1)
00960 _x = self
00961 start = end
00962 end += 9
00963 (_x.action_goal.goal.cloud.is_bigendian, _x.action_goal.goal.cloud.point_step, _x.action_goal.goal.cloud.row_step,) = _struct_B2I.unpack(str[start:end])
00964 self.action_goal.goal.cloud.is_bigendian = bool(self.action_goal.goal.cloud.is_bigendian)
00965 start = end
00966 end += 4
00967 (length,) = _struct_I.unpack(str[start:end])
00968 start = end
00969 end += length
00970 self.action_goal.goal.cloud.data = str[start:end]
00971 _x = self
00972 start = end
00973 end += 13
00974 (_x.action_goal.goal.cloud.is_dense, _x.action_goal.goal.box_pose.header.seq, _x.action_goal.goal.box_pose.header.stamp.secs, _x.action_goal.goal.box_pose.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end])
00975 self.action_goal.goal.cloud.is_dense = bool(self.action_goal.goal.cloud.is_dense)
00976 start = end
00977 end += 4
00978 (length,) = _struct_I.unpack(str[start:end])
00979 start = end
00980 end += length
00981 self.action_goal.goal.box_pose.header.frame_id = str[start:end]
00982 _x = self
00983 start = end
00984 end += 116
00985 (_x.action_goal.goal.box_pose.pose.position.x, _x.action_goal.goal.box_pose.pose.position.y, _x.action_goal.goal.box_pose.pose.position.z, _x.action_goal.goal.box_pose.pose.orientation.x, _x.action_goal.goal.box_pose.pose.orientation.y, _x.action_goal.goal.box_pose.pose.orientation.z, _x.action_goal.goal.box_pose.pose.orientation.w, _x.action_goal.goal.box_dims.x, _x.action_goal.goal.box_dims.y, _x.action_goal.goal.box_dims.z, _x.action_goal.goal.opening_dir.x, _x.action_goal.goal.opening_dir.y, _x.action_goal.goal.opening_dir.z, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_13d3I.unpack(str[start:end])
00986 start = end
00987 end += 4
00988 (length,) = _struct_I.unpack(str[start:end])
00989 start = end
00990 end += length
00991 self.action_result.header.frame_id = str[start:end]
00992 _x = self
00993 start = end
00994 end += 8
00995 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00996 start = end
00997 end += 4
00998 (length,) = _struct_I.unpack(str[start:end])
00999 start = end
01000 end += length
01001 self.action_result.status.goal_id.id = str[start:end]
01002 start = end
01003 end += 1
01004 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
01005 start = end
01006 end += 4
01007 (length,) = _struct_I.unpack(str[start:end])
01008 start = end
01009 end += length
01010 self.action_result.status.text = str[start:end]
01011 _x = self
01012 start = end
01013 end += 12
01014 (_x.action_result.result.box_pose.header.seq, _x.action_result.result.box_pose.header.stamp.secs, _x.action_result.result.box_pose.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01015 start = end
01016 end += 4
01017 (length,) = _struct_I.unpack(str[start:end])
01018 start = end
01019 end += length
01020 self.action_result.result.box_pose.header.frame_id = str[start:end]
01021 _x = self
01022 start = end
01023 end += 92
01024 (_x.action_result.result.box_pose.pose.position.x, _x.action_result.result.box_pose.pose.position.y, _x.action_result.result.box_pose.pose.position.z, _x.action_result.result.box_pose.pose.orientation.x, _x.action_result.result.box_pose.pose.orientation.y, _x.action_result.result.box_pose.pose.orientation.z, _x.action_result.result.box_pose.pose.orientation.w, _x.action_result.result.box_dims.x, _x.action_result.result.box_dims.y, _x.action_result.result.box_dims.z, _x.action_result.result.contents.header.seq, _x.action_result.result.contents.header.stamp.secs, _x.action_result.result.contents.header.stamp.nsecs,) = _struct_10d3I.unpack(str[start:end])
01025 start = end
01026 end += 4
01027 (length,) = _struct_I.unpack(str[start:end])
01028 start = end
01029 end += length
01030 self.action_result.result.contents.header.frame_id = str[start:end]
01031 _x = self
01032 start = end
01033 end += 8
01034 (_x.action_result.result.contents.height, _x.action_result.result.contents.width,) = _struct_2I.unpack(str[start:end])
01035 start = end
01036 end += 4
01037 (length,) = _struct_I.unpack(str[start:end])
01038 self.action_result.result.contents.fields = []
01039 for i in range(0, length):
01040 val1 = sensor_msgs.msg.PointField()
01041 start = end
01042 end += 4
01043 (length,) = _struct_I.unpack(str[start:end])
01044 start = end
01045 end += length
01046 val1.name = str[start:end]
01047 _x = val1
01048 start = end
01049 end += 9
01050 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
01051 self.action_result.result.contents.fields.append(val1)
01052 _x = self
01053 start = end
01054 end += 9
01055 (_x.action_result.result.contents.is_bigendian, _x.action_result.result.contents.point_step, _x.action_result.result.contents.row_step,) = _struct_B2I.unpack(str[start:end])
01056 self.action_result.result.contents.is_bigendian = bool(self.action_result.result.contents.is_bigendian)
01057 start = end
01058 end += 4
01059 (length,) = _struct_I.unpack(str[start:end])
01060 start = end
01061 end += length
01062 self.action_result.result.contents.data = str[start:end]
01063 _x = self
01064 start = end
01065 end += 13
01066 (_x.action_result.result.contents.is_dense, _x.action_result.result.container.header.seq, _x.action_result.result.container.header.stamp.secs, _x.action_result.result.container.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end])
01067 self.action_result.result.contents.is_dense = bool(self.action_result.result.contents.is_dense)
01068 start = end
01069 end += 4
01070 (length,) = _struct_I.unpack(str[start:end])
01071 start = end
01072 end += length
01073 self.action_result.result.container.header.frame_id = str[start:end]
01074 _x = self
01075 start = end
01076 end += 8
01077 (_x.action_result.result.container.height, _x.action_result.result.container.width,) = _struct_2I.unpack(str[start:end])
01078 start = end
01079 end += 4
01080 (length,) = _struct_I.unpack(str[start:end])
01081 self.action_result.result.container.fields = []
01082 for i in range(0, length):
01083 val1 = sensor_msgs.msg.PointField()
01084 start = end
01085 end += 4
01086 (length,) = _struct_I.unpack(str[start:end])
01087 start = end
01088 end += length
01089 val1.name = str[start:end]
01090 _x = val1
01091 start = end
01092 end += 9
01093 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
01094 self.action_result.result.container.fields.append(val1)
01095 _x = self
01096 start = end
01097 end += 9
01098 (_x.action_result.result.container.is_bigendian, _x.action_result.result.container.point_step, _x.action_result.result.container.row_step,) = _struct_B2I.unpack(str[start:end])
01099 self.action_result.result.container.is_bigendian = bool(self.action_result.result.container.is_bigendian)
01100 start = end
01101 end += 4
01102 (length,) = _struct_I.unpack(str[start:end])
01103 start = end
01104 end += length
01105 self.action_result.result.container.data = str[start:end]
01106 start = end
01107 end += 1
01108 (self.action_result.result.container.is_dense,) = _struct_B.unpack(str[start:end])
01109 self.action_result.result.container.is_dense = bool(self.action_result.result.container.is_dense)
01110 start = end
01111 end += 4
01112 (length,) = _struct_I.unpack(str[start:end])
01113 self.action_result.result.clusters = []
01114 for i in range(0, length):
01115 val1 = sensor_msgs.msg.PointCloud2()
01116 _v7 = val1.header
01117 start = end
01118 end += 4
01119 (_v7.seq,) = _struct_I.unpack(str[start:end])
01120 _v8 = _v7.stamp
01121 _x = _v8
01122 start = end
01123 end += 8
01124 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01125 start = end
01126 end += 4
01127 (length,) = _struct_I.unpack(str[start:end])
01128 start = end
01129 end += length
01130 _v7.frame_id = str[start:end]
01131 _x = val1
01132 start = end
01133 end += 8
01134 (_x.height, _x.width,) = _struct_2I.unpack(str[start:end])
01135 start = end
01136 end += 4
01137 (length,) = _struct_I.unpack(str[start:end])
01138 val1.fields = []
01139 for i in range(0, length):
01140 val2 = sensor_msgs.msg.PointField()
01141 start = end
01142 end += 4
01143 (length,) = _struct_I.unpack(str[start:end])
01144 start = end
01145 end += length
01146 val2.name = str[start:end]
01147 _x = val2
01148 start = end
01149 end += 9
01150 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
01151 val1.fields.append(val2)
01152 _x = val1
01153 start = end
01154 end += 9
01155 (_x.is_bigendian, _x.point_step, _x.row_step,) = _struct_B2I.unpack(str[start:end])
01156 val1.is_bigendian = bool(val1.is_bigendian)
01157 start = end
01158 end += 4
01159 (length,) = _struct_I.unpack(str[start:end])
01160 start = end
01161 end += length
01162 val1.data = str[start:end]
01163 start = end
01164 end += 1
01165 (val1.is_dense,) = _struct_B.unpack(str[start:end])
01166 val1.is_dense = bool(val1.is_dense)
01167 self.action_result.result.clusters.append(val1)
01168 _x = self
01169 start = end
01170 end += 12
01171 (_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01172 start = end
01173 end += 4
01174 (length,) = _struct_I.unpack(str[start:end])
01175 start = end
01176 end += length
01177 self.action_feedback.header.frame_id = str[start:end]
01178 _x = self
01179 start = end
01180 end += 8
01181 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
01182 start = end
01183 end += 4
01184 (length,) = _struct_I.unpack(str[start:end])
01185 start = end
01186 end += length
01187 self.action_feedback.status.goal_id.id = str[start:end]
01188 start = end
01189 end += 1
01190 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
01191 start = end
01192 end += 4
01193 (length,) = _struct_I.unpack(str[start:end])
01194 start = end
01195 end += length
01196 self.action_feedback.status.text = str[start:end]
01197 return self
01198 except struct.error as e:
01199 raise roslib.message.DeserializationError(e)
01200
01201 _struct_I = roslib.message.struct_I
01202 _struct_IBI = struct.Struct("<IBI")
01203 _struct_B = struct.Struct("<B")
01204 _struct_10d3I = struct.Struct("<10d3I")
01205 _struct_13d3I = struct.Struct("<13d3I")
01206 _struct_3I = struct.Struct("<3I")
01207 _struct_B3I = struct.Struct("<B3I")
01208 _struct_B2I = struct.Struct("<B2I")
01209 _struct_2I = struct.Struct("<2I")