36 #ifndef IMAGE_PROCESSOR__HFL110DCU_H_ 37 #define IMAGE_PROCESSOR__HFL110DCU_H_ 42 #include <arpa/inet.h> 45 #include <geometry_msgs/TransformStamped.h> 52 #include <geometry_msgs/Point.h> 53 #include <std_msgs/UInt16MultiArray.h> 54 #include <sensor_msgs/PointCloud2.h> 56 #include <visualization_msgs/Marker.h> 57 #include <visualization_msgs/MarkerArray.h> 69 #define HFL110_MAGIC_NUMBER_16_BIT 0.000762951 // 50 / 2^16 129 uint8_t pixel_type[128];
176 unsigned TP_OBJ_MT_STATE_DELETED : 1;
177 unsigned TP_OBJ_MT_STATE_NEW : 1;
178 unsigned TP_OBJ_MT_STATE_MEASURED : 1;
179 unsigned TP_OBJ_MT_STATE_PREDICTED : 1;
180 unsigned TP_OBJ_MT_STATE_INACTIVE : 1;
181 unsigned TP_OBJ_MT_STATE_MAX_DIFF : 1;
187 unsigned EM_GEN_OBJECT_DYN_PROPERTY_MOVING : 1;
188 unsigned EM_GEN_OBJECT_DYN_PROPERTY_STATIONARY : 1;
189 unsigned EM_GEN_OBJECT_DYN_PROPERTY_ONCOMING : 1;
190 unsigned EM_GEN_OBJECT_DYN_PROPERTY_CROSSING_LEFT : 1;
191 unsigned EM_GEN_OBJECT_DYN_PROPERTY_CROSSING_RIGHT : 1;
192 unsigned EM_GEN_OBJECT_DYN_PROPERTY_UNKNOWN : 1;
193 unsigned EM_GEN_OBJECT_DYN_PROPERTY_STOPPED : 1;
194 unsigned EM_GEN_OBJECT_DYN_PROPERTY_MAX_DIFF_TYPES : 1;
223 char au8SerialNumber[26];
240 HFL110DCU(std::string model, std::string version,
250 bool parseFrame(
int start_byte,
const std::vector<uint8_t>& packet)
override;
259 bool processFrameData(
const std::vector<uint8_t>&
data)
override;
286 bool parseObjects(
int start_byte,
const std::vector<uint8_t>& packet)
override;
295 bool processObjectData(
const std::vector<uint8_t>& data)
override;
304 bool processTelemetryData(
const std::vector<uint8_t>& data)
override;
313 bool processSliceData(
const std::vector<uint8_t>& data)
override;
316 cv::Mat initTransform(cv::Mat cameraMatrix, cv::Mat distCoeffs,
317 int width,
int height,
bool radial);
351 uint8_t expected_packet_ = 0;
438 std::shared_ptr<std_msgs::UInt16MultiArray>
slices_;
451 #endif // IMAGE_PROCESSOR__HFL110DCU_H_ std::shared_ptr< std_msgs::Header > tele_header_message_
Telemetry Header message.
image_transport::CameraPublisher pub_depth_
Depth image publisher.
HFL110DCU v1 object geometry.
geometry_msgs::TransformStamped global_tf_
ROS Transform.
image_transport::CameraPublisher pub_depth2_
Depth image publisher second return 2.
HFL110DCU v1 object kinematics.
uint32_t uiHardwareRevision
HFL110DCU v1 frame struct.
image_transport::CameraPublisher pub_si_
Superimposed flag image publisher.
std::shared_ptr< std_msgs::Header > tf_header_message_
TF Header message.
diagnostic_updater::Updater updater_
ros::Publisher pub_slices_
Slices publisher.
ros::Publisher pub_objects_
Objects publisher.
HFL110DCU v1 ethernet extrinsics struct.
cv_bridge::CvImagePtr p_image_depth2_
Pointer to depth image second return.
cv_bridge::CvImagePtr p_image_crosstalk2_
Pointer to crosstalk2 flags.
image_transport::CameraPublisher pub_sat2_
Saturated2 flag image publisher.
cv::Mat transform_
Transform.
HFL110DCU v1 object dynamic property.
HFL110DCU v1 ethernet extrinsics struct.
std::shared_ptr< std_msgs::Header > frame_header_message_
Frame Header message.
image_transport::CameraPublisher pub_ct2_
Crosstalk2 flag image publisher.
cv_bridge::CvImagePtr p_image_superimposed2_
Pointer to superimposed2 flags.
cv_bridge::CvImagePtr p_image_saturated_
Pointer to saturated flags.
HFL110DCU v1 ethernet object struct.
cv_bridge::CvImagePtr p_image_crosstalk_
Pointer to crosstalk flags.
const float NO_RETURN_DISTANCES
std::shared_ptr< std_msgs::Header > pdm_header_message_
PDM Header message.
cv_bridge::CvImagePtr p_image_intensity2_
Pointer to 16 bit intensity image second return.
image_transport::CameraPublisher pub_ct_
Crosstalk flag image publisher.
float_t extrinsic_distance
CameraIntrinsics camera_intrinsics
Implements the HFL110DCU camera image parsing and publishing.
Base class for the HFL110DCU cameras.
HFL110DCU v1 object state.
float focal_length_
Focal Length.
cv_bridge::CvImagePtr p_image_saturated2_
Pointer to saturated2 flags.
float_t extrinsic_horizontal
ros::NodeHandle node_handler_
ROS node handler.
float_t extrinsic_vertical
image_transport::CameraPublisher pub_intensity_
16 bit Intensity image publisher
std::shared_ptr< std_msgs::Header > slice_header_message_
Slice Header message.
uint8_t row_
Row and column Counter.
image_transport::CameraPublisher pub_si2_
Superimposed flag image publisher.
std::shared_ptr< std_msgs::Header > object_header_message_
Object Header message.
HFL110DCU v1 telemetry struct.
camera_info_manager::CameraInfoManager * camera_info_manager_
cv_bridge::CvImagePtr p_image_depth_
Pointer to depth image.
cv_bridge::CvImagePtr p_image_superimposed_
Pointer to superimposed flags.
CameraExtrinsics camera_extrinsics
std::shared_ptr< sensor_msgs::PointCloud2 > pointcloud_
Pointcloud msg.
cv_bridge::CvImagePtr p_image_intensity_
Pointer to 16 bit intensity image.
This file defines the HFL110DCU camera base class.
int bytes_received_
Received packet bytes from HFL110.
std::vector< hflObj > objects_
Objects vector;.
image_transport::CameraPublisher pub_intensity2_
16 bit Intensity image publisher return 2
std::shared_ptr< std_msgs::UInt16MultiArray > slices_
Slices msg.
image_transport::CameraPublisher pub_sat_
Saturated flag image publisher.
HFL110DCU v1 ethernet frame struct.
unsigned uiTempSensorFeedback
ros::Publisher pub_points_
Pointcloud publisher.