Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IBEO_LUX_IBEO_LUX_ROS_MSG_HANDLER_H
00009 #define IBEO_LUX_IBEO_LUX_ROS_MSG_HANDLER_H
00010
00011 #include <ibeo_lux/ibeo_lux_common.h>
00012
00013 #include <string>
00014 #include <vector>
00015
00016 using namespace AS::Drivers::Ibeo;
00017
00018 namespace AS
00019 {
00020 namespace Drivers
00021 {
00022 namespace IbeoLux
00023 {
00024 class IbeoLuxRosMsgHandler
00025 {
00026 public:
00027 void fillAndPublish(const uint8_t& type_id,
00028 const std::string& frame_id,
00029 const ros::Publisher& pub,
00030 IbeoTxMessage * parser_class);
00031 void fillPointcloud(
00032 const std::vector<Point3DL>& points,
00033 pcl::PointCloud<pcl::PointXYZL> * new_msg);
00034 void fillContourPoints(
00035 const std::vector<Point3D>& points,
00036 visualization_msgs::Marker * new_msg,
00037 const std::string& frame_id);
00038 void fillMarkerArray(
00039 const std::vector<IbeoObject>& objects,
00040 visualization_msgs::MarkerArray * new_msg,
00041 const std::string& frame_id);
00042
00043 private:
00044 ros::Time ntp_to_ros_time(const NTPTime& time);
00045
00046 void fillIbeoHeader(
00047 const IbeoDataHeader& class_header,
00048 ibeo_msgs::IbeoDataHeader * msg_header);
00049 void fill2030(
00050 IbeoTxMessage * parser_class,
00051 ibeo_msgs::ErrorWarning * new_msg,
00052 const std::string& frame_id);
00053 void fill2202(
00054 IbeoTxMessage * parser_class,
00055 ibeo_msgs::ScanData2202 * new_msg,
00056 const std::string& frame_id);
00057 void fill2204(
00058 IbeoTxMessage * parser_class,
00059 ibeo_msgs::ScanData2204 * new_msg,
00060 const std::string& frame_id);
00061 void fill2205(
00062 IbeoTxMessage * parser_class,
00063 ibeo_msgs::ScanData2205 * new_msg,
00064 const std::string& frame_id);
00065 void fill2221(
00066 IbeoTxMessage * parser_class,
00067 ibeo_msgs::ObjectData2221 * new_msg,
00068 const std::string& frame_id);
00069 void fill2225(
00070 IbeoTxMessage * parser_class,
00071 ibeo_msgs::ObjectData2225 * new_msg,
00072 const std::string& frame_id);
00073 void fill2280(
00074 IbeoTxMessage * parser_class,
00075 ibeo_msgs::ObjectData2280 * new_msg,
00076 const std::string& frame_id);
00077 void fill2403(
00078 IbeoTxMessage * parser_class,
00079 ibeo_msgs::CameraImage * new_msg,
00080 const std::string& frame_id);
00081 void fill2805(
00082 IbeoTxMessage * parser_class,
00083 ibeo_msgs::HostVehicleState2805 * new_msg,
00084 const std::string& frame_id);
00085 void fill2806(
00086 IbeoTxMessage * parser_class,
00087 ibeo_msgs::HostVehicleState2806 * new_msg,
00088 const std::string& frame_id);
00089 void fill2807(
00090 IbeoTxMessage * parser_class,
00091 ibeo_msgs::HostVehicleState2807 * new_msg,
00092 const std::string& frame_id);
00093 visualization_msgs::Marker createWireframeMarker(
00094 const float& center_x,
00095 const float& center_y,
00096 float size_x,
00097 float size_y,
00098 const float& size_z);
00099 };
00100 }
00101 }
00102 }
00103
00104 #endif // IBEO_LUX_IBEO_LUX_ROS_MSG_HANDLER_H