$search
00001 """autogenerated by genmsg_py from InteractiveBlockManipulationAction.msg. Do not edit.""" 00002 import roslib.message 00003 import struct 00004 00005 import turtlebot_block_manipulation.msg 00006 import geometry_msgs.msg 00007 import roslib.rostime 00008 import actionlib_msgs.msg 00009 import std_msgs.msg 00010 00011 class InteractiveBlockManipulationAction(roslib.message.Message): 00012 _md5sum = "6b355c8305ef3300641af877554e1717" 00013 _type = "turtlebot_block_manipulation/InteractiveBlockManipulationAction" 00014 _has_header = False #flag to mark the presence of a Header object 00015 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00016 00017 InteractiveBlockManipulationActionGoal action_goal 00018 InteractiveBlockManipulationActionResult action_result 00019 InteractiveBlockManipulationActionFeedback action_feedback 00020 00021 ================================================================================ 00022 MSG: turtlebot_block_manipulation/InteractiveBlockManipulationActionGoal 00023 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00024 00025 Header header 00026 actionlib_msgs/GoalID goal_id 00027 InteractiveBlockManipulationGoal goal 00028 00029 ================================================================================ 00030 MSG: std_msgs/Header 00031 # Standard metadata for higher-level stamped data types. 00032 # This is generally used to communicate timestamped data 00033 # in a particular coordinate frame. 00034 # 00035 # sequence ID: consecutively increasing ID 00036 uint32 seq 00037 #Two-integer timestamp that is expressed as: 00038 # * stamp.secs: seconds (stamp_secs) since epoch 00039 # * stamp.nsecs: nanoseconds since stamp_secs 00040 # time-handling sugar is provided by the client library 00041 time stamp 00042 #Frame this data is associated with 00043 # 0: no frame 00044 # 1: global frame 00045 string frame_id 00046 00047 ================================================================================ 00048 MSG: actionlib_msgs/GoalID 00049 # The stamp should store the time at which this goal was requested. 00050 # It is used by an action server when it tries to preempt all 00051 # goals that were requested before a certain time 00052 time stamp 00053 00054 # The id provides a way to associate feedback and 00055 # result message with specific goal requests. The id 00056 # specified must be unique. 00057 string id 00058 00059 00060 ================================================================================ 00061 MSG: turtlebot_block_manipulation/InteractiveBlockManipulationGoal 00062 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00063 #goal definition 00064 string frame 00065 float32 block_size 00066 00067 ================================================================================ 00068 MSG: turtlebot_block_manipulation/InteractiveBlockManipulationActionResult 00069 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00070 00071 Header header 00072 actionlib_msgs/GoalStatus status 00073 InteractiveBlockManipulationResult result 00074 00075 ================================================================================ 00076 MSG: actionlib_msgs/GoalStatus 00077 GoalID goal_id 00078 uint8 status 00079 uint8 PENDING = 0 # The goal has yet to be processed by the action server 00080 uint8 ACTIVE = 1 # The goal is currently being processed by the action server 00081 uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing 00082 # and has since completed its execution (Terminal State) 00083 uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State) 00084 uint8 ABORTED = 4 # The goal was aborted during execution by the action server due 00085 # to some failure (Terminal State) 00086 uint8 REJECTED = 5 # The goal was rejected by the action server without being processed, 00087 # because the goal was unattainable or invalid (Terminal State) 00088 uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing 00089 # and has not yet completed execution 00090 uint8 RECALLING = 7 # The goal received a cancel request before it started executing, 00091 # but the action server has not yet confirmed that the goal is canceled 00092 uint8 RECALLED = 8 # The goal received a cancel request before it started executing 00093 # and was successfully cancelled (Terminal State) 00094 uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be 00095 # sent over the wire by an action server 00096 00097 #Allow for the user to associate a string with GoalStatus for debugging 00098 string text 00099 00100 00101 ================================================================================ 00102 MSG: turtlebot_block_manipulation/InteractiveBlockManipulationResult 00103 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00104 #result definition 00105 geometry_msgs/Pose pickup_pose 00106 geometry_msgs/Pose place_pose 00107 00108 ================================================================================ 00109 MSG: geometry_msgs/Pose 00110 # A representation of pose in free space, composed of postion and orientation. 00111 Point position 00112 Quaternion orientation 00113 00114 ================================================================================ 00115 MSG: geometry_msgs/Point 00116 # This contains the position of a point in free space 00117 float64 x 00118 float64 y 00119 float64 z 00120 00121 ================================================================================ 00122 MSG: geometry_msgs/Quaternion 00123 # This represents an orientation in free space in quaternion form. 00124 00125 float64 x 00126 float64 y 00127 float64 z 00128 float64 w 00129 00130 ================================================================================ 00131 MSG: turtlebot_block_manipulation/InteractiveBlockManipulationActionFeedback 00132 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00133 00134 Header header 00135 actionlib_msgs/GoalStatus status 00136 InteractiveBlockManipulationFeedback feedback 00137 00138 ================================================================================ 00139 MSG: turtlebot_block_manipulation/InteractiveBlockManipulationFeedback 00140 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00141 #feedback 00142 00143 00144 """ 00145 __slots__ = ['action_goal','action_result','action_feedback'] 00146 _slot_types = ['turtlebot_block_manipulation/InteractiveBlockManipulationActionGoal','turtlebot_block_manipulation/InteractiveBlockManipulationActionResult','turtlebot_block_manipulation/InteractiveBlockManipulationActionFeedback'] 00147 00148 def __init__(self, *args, **kwds): 00149 """ 00150 Constructor. Any message fields that are implicitly/explicitly 00151 set to None will be assigned a default value. The recommend 00152 use is keyword arguments as this is more robust to future message 00153 changes. You cannot mix in-order arguments and keyword arguments. 00154 00155 The available fields are: 00156 action_goal,action_result,action_feedback 00157 00158 @param args: complete set of field values, in .msg order 00159 @param kwds: use keyword arguments corresponding to message field names 00160 to set specific fields. 00161 """ 00162 if args or kwds: 00163 super(InteractiveBlockManipulationAction, self).__init__(*args, **kwds) 00164 #message fields cannot be None, assign default values for those that are 00165 if self.action_goal is None: 00166 self.action_goal = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionGoal() 00167 if self.action_result is None: 00168 self.action_result = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionResult() 00169 if self.action_feedback is None: 00170 self.action_feedback = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionFeedback() 00171 else: 00172 self.action_goal = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionGoal() 00173 self.action_result = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionResult() 00174 self.action_feedback = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionFeedback() 00175 00176 def _get_types(self): 00177 """ 00178 internal API method 00179 """ 00180 return self._slot_types 00181 00182 def serialize(self, buff): 00183 """ 00184 serialize message into buffer 00185 @param buff: buffer 00186 @type buff: StringIO 00187 """ 00188 try: 00189 _x = self 00190 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs)) 00191 _x = self.action_goal.header.frame_id 00192 length = len(_x) 00193 buff.write(struct.pack('<I%ss'%length, length, _x)) 00194 _x = self 00195 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs)) 00196 _x = self.action_goal.goal_id.id 00197 length = len(_x) 00198 buff.write(struct.pack('<I%ss'%length, length, _x)) 00199 _x = self.action_goal.goal.frame 00200 length = len(_x) 00201 buff.write(struct.pack('<I%ss'%length, length, _x)) 00202 _x = self 00203 buff.write(_struct_f3I.pack(_x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs)) 00204 _x = self.action_result.header.frame_id 00205 length = len(_x) 00206 buff.write(struct.pack('<I%ss'%length, length, _x)) 00207 _x = self 00208 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs)) 00209 _x = self.action_result.status.goal_id.id 00210 length = len(_x) 00211 buff.write(struct.pack('<I%ss'%length, length, _x)) 00212 buff.write(_struct_B.pack(self.action_result.status.status)) 00213 _x = self.action_result.status.text 00214 length = len(_x) 00215 buff.write(struct.pack('<I%ss'%length, length, _x)) 00216 _x = self 00217 buff.write(_struct_14d3I.pack(_x.action_result.result.pickup_pose.position.x, _x.action_result.result.pickup_pose.position.y, _x.action_result.result.pickup_pose.position.z, _x.action_result.result.pickup_pose.orientation.x, _x.action_result.result.pickup_pose.orientation.y, _x.action_result.result.pickup_pose.orientation.z, _x.action_result.result.pickup_pose.orientation.w, _x.action_result.result.place_pose.position.x, _x.action_result.result.place_pose.position.y, _x.action_result.result.place_pose.position.z, _x.action_result.result.place_pose.orientation.x, _x.action_result.result.place_pose.orientation.y, _x.action_result.result.place_pose.orientation.z, _x.action_result.result.place_pose.orientation.w, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs)) 00218 _x = self.action_feedback.header.frame_id 00219 length = len(_x) 00220 buff.write(struct.pack('<I%ss'%length, length, _x)) 00221 _x = self 00222 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs)) 00223 _x = self.action_feedback.status.goal_id.id 00224 length = len(_x) 00225 buff.write(struct.pack('<I%ss'%length, length, _x)) 00226 buff.write(_struct_B.pack(self.action_feedback.status.status)) 00227 _x = self.action_feedback.status.text 00228 length = len(_x) 00229 buff.write(struct.pack('<I%ss'%length, length, _x)) 00230 except struct.error as se: self._check_types(se) 00231 except TypeError as te: self._check_types(te) 00232 00233 def deserialize(self, str): 00234 """ 00235 unpack serialized message in str into this message instance 00236 @param str: byte array of serialized message 00237 @type str: str 00238 """ 00239 try: 00240 if self.action_goal is None: 00241 self.action_goal = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionGoal() 00242 if self.action_result is None: 00243 self.action_result = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionResult() 00244 if self.action_feedback is None: 00245 self.action_feedback = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionFeedback() 00246 end = 0 00247 _x = self 00248 start = end 00249 end += 12 00250 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00251 start = end 00252 end += 4 00253 (length,) = _struct_I.unpack(str[start:end]) 00254 start = end 00255 end += length 00256 self.action_goal.header.frame_id = str[start:end] 00257 _x = self 00258 start = end 00259 end += 8 00260 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00261 start = end 00262 end += 4 00263 (length,) = _struct_I.unpack(str[start:end]) 00264 start = end 00265 end += length 00266 self.action_goal.goal_id.id = str[start:end] 00267 start = end 00268 end += 4 00269 (length,) = _struct_I.unpack(str[start:end]) 00270 start = end 00271 end += length 00272 self.action_goal.goal.frame = str[start:end] 00273 _x = self 00274 start = end 00275 end += 16 00276 (_x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_f3I.unpack(str[start:end]) 00277 start = end 00278 end += 4 00279 (length,) = _struct_I.unpack(str[start:end]) 00280 start = end 00281 end += length 00282 self.action_result.header.frame_id = str[start:end] 00283 _x = self 00284 start = end 00285 end += 8 00286 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00287 start = end 00288 end += 4 00289 (length,) = _struct_I.unpack(str[start:end]) 00290 start = end 00291 end += length 00292 self.action_result.status.goal_id.id = str[start:end] 00293 start = end 00294 end += 1 00295 (self.action_result.status.status,) = _struct_B.unpack(str[start:end]) 00296 start = end 00297 end += 4 00298 (length,) = _struct_I.unpack(str[start:end]) 00299 start = end 00300 end += length 00301 self.action_result.status.text = str[start:end] 00302 _x = self 00303 start = end 00304 end += 124 00305 (_x.action_result.result.pickup_pose.position.x, _x.action_result.result.pickup_pose.position.y, _x.action_result.result.pickup_pose.position.z, _x.action_result.result.pickup_pose.orientation.x, _x.action_result.result.pickup_pose.orientation.y, _x.action_result.result.pickup_pose.orientation.z, _x.action_result.result.pickup_pose.orientation.w, _x.action_result.result.place_pose.position.x, _x.action_result.result.place_pose.position.y, _x.action_result.result.place_pose.position.z, _x.action_result.result.place_pose.orientation.x, _x.action_result.result.place_pose.orientation.y, _x.action_result.result.place_pose.orientation.z, _x.action_result.result.place_pose.orientation.w, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_14d3I.unpack(str[start:end]) 00306 start = end 00307 end += 4 00308 (length,) = _struct_I.unpack(str[start:end]) 00309 start = end 00310 end += length 00311 self.action_feedback.header.frame_id = str[start:end] 00312 _x = self 00313 start = end 00314 end += 8 00315 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00316 start = end 00317 end += 4 00318 (length,) = _struct_I.unpack(str[start:end]) 00319 start = end 00320 end += length 00321 self.action_feedback.status.goal_id.id = str[start:end] 00322 start = end 00323 end += 1 00324 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end]) 00325 start = end 00326 end += 4 00327 (length,) = _struct_I.unpack(str[start:end]) 00328 start = end 00329 end += length 00330 self.action_feedback.status.text = str[start:end] 00331 return self 00332 except struct.error as e: 00333 raise roslib.message.DeserializationError(e) #most likely buffer underfill 00334 00335 00336 def serialize_numpy(self, buff, numpy): 00337 """ 00338 serialize message with numpy array types into buffer 00339 @param buff: buffer 00340 @type buff: StringIO 00341 @param numpy: numpy python module 00342 @type numpy module 00343 """ 00344 try: 00345 _x = self 00346 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs)) 00347 _x = self.action_goal.header.frame_id 00348 length = len(_x) 00349 buff.write(struct.pack('<I%ss'%length, length, _x)) 00350 _x = self 00351 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs)) 00352 _x = self.action_goal.goal_id.id 00353 length = len(_x) 00354 buff.write(struct.pack('<I%ss'%length, length, _x)) 00355 _x = self.action_goal.goal.frame 00356 length = len(_x) 00357 buff.write(struct.pack('<I%ss'%length, length, _x)) 00358 _x = self 00359 buff.write(_struct_f3I.pack(_x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs)) 00360 _x = self.action_result.header.frame_id 00361 length = len(_x) 00362 buff.write(struct.pack('<I%ss'%length, length, _x)) 00363 _x = self 00364 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs)) 00365 _x = self.action_result.status.goal_id.id 00366 length = len(_x) 00367 buff.write(struct.pack('<I%ss'%length, length, _x)) 00368 buff.write(_struct_B.pack(self.action_result.status.status)) 00369 _x = self.action_result.status.text 00370 length = len(_x) 00371 buff.write(struct.pack('<I%ss'%length, length, _x)) 00372 _x = self 00373 buff.write(_struct_14d3I.pack(_x.action_result.result.pickup_pose.position.x, _x.action_result.result.pickup_pose.position.y, _x.action_result.result.pickup_pose.position.z, _x.action_result.result.pickup_pose.orientation.x, _x.action_result.result.pickup_pose.orientation.y, _x.action_result.result.pickup_pose.orientation.z, _x.action_result.result.pickup_pose.orientation.w, _x.action_result.result.place_pose.position.x, _x.action_result.result.place_pose.position.y, _x.action_result.result.place_pose.position.z, _x.action_result.result.place_pose.orientation.x, _x.action_result.result.place_pose.orientation.y, _x.action_result.result.place_pose.orientation.z, _x.action_result.result.place_pose.orientation.w, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs)) 00374 _x = self.action_feedback.header.frame_id 00375 length = len(_x) 00376 buff.write(struct.pack('<I%ss'%length, length, _x)) 00377 _x = self 00378 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs)) 00379 _x = self.action_feedback.status.goal_id.id 00380 length = len(_x) 00381 buff.write(struct.pack('<I%ss'%length, length, _x)) 00382 buff.write(_struct_B.pack(self.action_feedback.status.status)) 00383 _x = self.action_feedback.status.text 00384 length = len(_x) 00385 buff.write(struct.pack('<I%ss'%length, length, _x)) 00386 except struct.error as se: self._check_types(se) 00387 except TypeError as te: self._check_types(te) 00388 00389 def deserialize_numpy(self, str, numpy): 00390 """ 00391 unpack serialized message in str into this message instance using numpy for array types 00392 @param str: byte array of serialized message 00393 @type str: str 00394 @param numpy: numpy python module 00395 @type numpy: module 00396 """ 00397 try: 00398 if self.action_goal is None: 00399 self.action_goal = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionGoal() 00400 if self.action_result is None: 00401 self.action_result = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionResult() 00402 if self.action_feedback is None: 00403 self.action_feedback = turtlebot_block_manipulation.msg.InteractiveBlockManipulationActionFeedback() 00404 end = 0 00405 _x = self 00406 start = end 00407 end += 12 00408 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00409 start = end 00410 end += 4 00411 (length,) = _struct_I.unpack(str[start:end]) 00412 start = end 00413 end += length 00414 self.action_goal.header.frame_id = str[start:end] 00415 _x = self 00416 start = end 00417 end += 8 00418 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00419 start = end 00420 end += 4 00421 (length,) = _struct_I.unpack(str[start:end]) 00422 start = end 00423 end += length 00424 self.action_goal.goal_id.id = str[start:end] 00425 start = end 00426 end += 4 00427 (length,) = _struct_I.unpack(str[start:end]) 00428 start = end 00429 end += length 00430 self.action_goal.goal.frame = str[start:end] 00431 _x = self 00432 start = end 00433 end += 16 00434 (_x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_f3I.unpack(str[start:end]) 00435 start = end 00436 end += 4 00437 (length,) = _struct_I.unpack(str[start:end]) 00438 start = end 00439 end += length 00440 self.action_result.header.frame_id = str[start:end] 00441 _x = self 00442 start = end 00443 end += 8 00444 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00445 start = end 00446 end += 4 00447 (length,) = _struct_I.unpack(str[start:end]) 00448 start = end 00449 end += length 00450 self.action_result.status.goal_id.id = str[start:end] 00451 start = end 00452 end += 1 00453 (self.action_result.status.status,) = _struct_B.unpack(str[start:end]) 00454 start = end 00455 end += 4 00456 (length,) = _struct_I.unpack(str[start:end]) 00457 start = end 00458 end += length 00459 self.action_result.status.text = str[start:end] 00460 _x = self 00461 start = end 00462 end += 124 00463 (_x.action_result.result.pickup_pose.position.x, _x.action_result.result.pickup_pose.position.y, _x.action_result.result.pickup_pose.position.z, _x.action_result.result.pickup_pose.orientation.x, _x.action_result.result.pickup_pose.orientation.y, _x.action_result.result.pickup_pose.orientation.z, _x.action_result.result.pickup_pose.orientation.w, _x.action_result.result.place_pose.position.x, _x.action_result.result.place_pose.position.y, _x.action_result.result.place_pose.position.z, _x.action_result.result.place_pose.orientation.x, _x.action_result.result.place_pose.orientation.y, _x.action_result.result.place_pose.orientation.z, _x.action_result.result.place_pose.orientation.w, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_14d3I.unpack(str[start:end]) 00464 start = end 00465 end += 4 00466 (length,) = _struct_I.unpack(str[start:end]) 00467 start = end 00468 end += length 00469 self.action_feedback.header.frame_id = str[start:end] 00470 _x = self 00471 start = end 00472 end += 8 00473 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00474 start = end 00475 end += 4 00476 (length,) = _struct_I.unpack(str[start:end]) 00477 start = end 00478 end += length 00479 self.action_feedback.status.goal_id.id = str[start:end] 00480 start = end 00481 end += 1 00482 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end]) 00483 start = end 00484 end += 4 00485 (length,) = _struct_I.unpack(str[start:end]) 00486 start = end 00487 end += length 00488 self.action_feedback.status.text = str[start:end] 00489 return self 00490 except struct.error as e: 00491 raise roslib.message.DeserializationError(e) #most likely buffer underfill 00492 00493 _struct_I = roslib.message.struct_I 00494 _struct_f3I = struct.Struct("<f3I") 00495 _struct_3I = struct.Struct("<3I") 00496 _struct_B = struct.Struct("<B") 00497 _struct_14d3I = struct.Struct("<14d3I") 00498 _struct_2I = struct.Struct("<2I")