:optimal 27/7 12:11
This commit is contained in:
@@ -70,6 +70,13 @@ struct DepthFrustumConfig
|
||||
/// Full columns are only cleared beyond this distance [m]. Negative:
|
||||
/// derive each frame from the camera intrinsics and mounting pose.
|
||||
double column_cover_distance = -1.0;
|
||||
/// Depth-image columns at the LEFT edge excluded from clearing [px]. Covers
|
||||
/// the stereo no-disparity strip that is permanently invalid there: those
|
||||
/// pixels carry no free-space evidence, so clearing through them erases
|
||||
/// obstacles that rotate out of the FOV on that side. Set to the measured
|
||||
/// width of the black strip in the raw depth image (a few px margin). 0
|
||||
/// disables. Invalid pixels ELSEWHERE still clear (needed for ghost removal).
|
||||
unsigned int clear_left_border_px = 0;
|
||||
};
|
||||
|
||||
class DepthCameraObservation
|
||||
|
||||
@@ -99,12 +99,6 @@ private:
|
||||
double* min_x, double* min_y, double* max_x, double* max_y);
|
||||
bool readDepthMeters(const robot_sensor_msgs::Image& depth, unsigned int u, unsigned int v,
|
||||
double& depth_m, bool& is_valid) const;
|
||||
/// True when the invalid pixel at (u, v) is an isolated hole surrounded by
|
||||
/// valid returns (a flying pixel, safe to clear), false when it belongs to a
|
||||
/// structurally invalid region such as the stereo no-disparity strip on the
|
||||
/// left image edge (no free-space evidence, must be left untouched).
|
||||
bool invalidPixelIsIsolated(const robot_sensor_msgs::Image& depth,
|
||||
unsigned int u, unsigned int v) const;
|
||||
void updateDepthRayCache(unsigned int width, unsigned int height, unsigned int pixel_step,
|
||||
double fx, double fy, double cx, double cy);
|
||||
bool clipRaytraceEndpoint(double ox, double oy, double oz, double& wx, double& wy, double& wz);
|
||||
@@ -131,8 +125,7 @@ private:
|
||||
double min_band_dist = -1.0; ///< horizontal distance of nearest in-band return; < 0 = none
|
||||
double azimuth = 0.0; ///< beam direction in the global frame
|
||||
double best_row_delta = std::numeric_limits<double>::infinity();
|
||||
bool has_ray = false; ///< column had at least one readable pixel
|
||||
bool has_valid_return = false; ///< column had at least one valid depth measurement
|
||||
bool has_ray = false; ///< column had at least one readable pixel
|
||||
};
|
||||
std::vector<DepthColumnStat> depth_column_stats_;
|
||||
unsigned int unknown_threshold_, mark_threshold_, size_z_;
|
||||
|
||||
Reference in New Issue
Block a user