6 #ifndef SICK_SCAN_MESSAGE_NAVPOSEDATA_H
7 #define SICK_SCAN_MESSAGE_NAVPOSEDATA_H
14 #include <ros/types.h>
15 #include <ros/serialization.h>
16 #include <ros/builtin_message_traits.h>
17 #include <ros/message_operations.h>
23 template <
class ContainerAllocator>
115 typedef std::shared_ptr< ::sick_scan_xd::NAVPoseData_<ContainerAllocator> >
Ptr;
116 typedef std::shared_ptr< ::sick_scan_xd::NAVPoseData_<ContainerAllocator>
const>
ConstPtr;
120 typedef ::sick_scan_xd::NAVPoseData_<std::allocator<void> >
NAVPoseData;
129 template<
typename ContainerAllocator>
130 std::ostream&
operator<<(std::ostream& s, const ::sick_scan_xd::NAVPoseData_<ContainerAllocator> & v)
137 template<
typename ContainerAllocator1,
typename ContainerAllocator2>
138 bool operator==(const ::sick_scan_xd::NAVPoseData_<ContainerAllocator1> & lhs, const ::sick_scan_xd::NAVPoseData_<ContainerAllocator2> & rhs)
140 return lhs.header == rhs.header &&
143 lhs.phi == rhs.phi &&
144 lhs.opt_pose_data_valid == rhs.opt_pose_data_valid &&
145 lhs.output_mode == rhs.output_mode &&
146 lhs.timestamp == rhs.timestamp &&
147 lhs.mean_dev == rhs.mean_dev &&
148 lhs.nav_mode == rhs.nav_mode &&
149 lhs.info_state == rhs.info_state &&
150 lhs.quant_used_reflectors == rhs.quant_used_reflectors &&
151 lhs.pose_valid == rhs.pose_valid &&
152 lhs.pose_x == rhs.pose_x &&
153 lhs.pose_y == rhs.pose_y &&
154 lhs.pose_yaw == rhs.pose_yaw;
157 template<
typename ContainerAllocator1,
typename ContainerAllocator2>
158 bool operator!=(const ::sick_scan_xd::NAVPoseData_<ContainerAllocator1> & lhs, const ::sick_scan_xd::NAVPoseData_<ContainerAllocator2> & rhs)
160 return !(lhs == rhs);
168 namespace message_traits
175 template <
class ContainerAllocator>
180 template <
class ContainerAllocator>
185 template <
class ContainerAllocator>
190 template <
class ContainerAllocator>
195 template <
class ContainerAllocator>
200 template <
class ContainerAllocator>
206 template<
class ContainerAllocator>
211 return "09a85c46d8eba44e26ad07869c2bbc20";
214 static const char*
value(const ::sick_scan_xd::NAVPoseData_<ContainerAllocator>&) {
return value(); }
215 static const uint64_t static_value1 = 0x09a85c46d8eba44eULL;
216 static const uint64_t static_value2 = 0x26ad07869c2bbc20ULL;
219 template<
class ContainerAllocator>
224 return "sick_scan/NAVPoseData";
227 static const char*
value(const ::sick_scan_xd::NAVPoseData_<ContainerAllocator>&) {
return value(); }
230 template<
class ContainerAllocator>
235 return "# ROS message of NAV350PoseData, see sick_nav_scandata_parser.h and NAV-350 telegram listing for details.\n"
236 "std_msgs/Header header\n"
238 "# pose in lidar coordinates in mm and mdeg\n"
242 "# optional pose data\n"
243 "uint16 opt_pose_data_valid\n"
244 "uint8 output_mode\n"
248 "uint32 info_state\n"
249 "uint8 quant_used_reflectors\n"
251 "# pose in ros coordinates\n"
252 "int8 pose_valid # pose_x, pose_y and pose_yaw are valid if pose_valid > 0\n"
253 "float32 pose_x # x position in ros coordinates in m\n"
254 "float32 pose_y # y position in ros coordinates in m\n"
255 "float32 pose_yaw # yaw angle in radians\n"
257 "================================================================================\n"
258 "MSG: std_msgs/Header\n"
259 "# Standard metadata for higher-level stamped data types.\n"
260 "# This is generally used to communicate timestamped data \n"
261 "# in a particular coordinate frame.\n"
263 "# sequence ID: consecutively increasing ID \n"
265 "#Two-integer timestamp that is expressed as:\n"
266 "# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n"
267 "# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n"
268 "# time-handling sugar is provided by the client library\n"
270 "#Frame this data is associated with\n"
275 static const char*
value(const ::sick_scan_xd::NAVPoseData_<ContainerAllocator>&) {
return value(); }
283 namespace serialization
288 template<
typename Stream,
typename T>
inline static void allInOne(
Stream& stream, T m)
290 stream.next(m.header);
294 stream.next(m.opt_pose_data_valid);
295 stream.next(m.output_mode);
296 stream.next(m.timestamp);
297 stream.next(m.mean_dev);
298 stream.next(m.nav_mode);
299 stream.next(m.info_state);
300 stream.next(m.quant_used_reflectors);
301 stream.next(m.pose_valid);
302 stream.next(m.pose_x);
303 stream.next(m.pose_y);
304 stream.next(m.pose_yaw);
315 namespace message_operations
318 template<
class ContainerAllocator>
321 template<
typename Stream>
static void stream(Stream& s,
const std::string&
indent, const ::sick_scan_xd::NAVPoseData_<ContainerAllocator>& v)
332 s <<
indent <<
"opt_pose_data_valid: ";
334 s <<
indent <<
"output_mode: ";
344 s <<
indent <<
"quant_used_reflectors: ";
360 #endif // SICK_SCAN_MESSAGE_NAVPOSEDATA_H