22#include "modules/perception/common/lidar/scene_manager/ground_service/proto/ground_service_config.pb.h"
33 if (ground_content ==
nullptr) {
52 if (ground_content ==
nullptr) {
69uint32_t
inline GetIndex(uint32_t r, uint32_t c, uint32_t cols) {
70 return (r * cols + c);
74 uint32_t* grid_index)
const {
82 uint32_t c = std::min(
84 uint32_t r = std::min(
91 const Eigen::Vector3d& world_point)
const {
92 uint32_t grid_index = 0;
94 return std::numeric_limits<float>::max();
99 float out = std::numeric_limits<float>::max();
101 offset_pt[0] =
static_cast<float>(world_point(0) -
grid_center_(0));
102 offset_pt[1] =
static_cast<float>(world_point(1) -
grid_center_(1));
103 offset_pt[2] =
static_cast<float>(world_point(2) -
grid_center_(2));
107 params[0] = node->
params(0);
108 params[1] = node->
params(1);
109 params[2] = node->
params(2);
110 params[3] = node->
params(3);
139 std::string config_file = FLAGS_ground_service_file;
148 <<
"Failed to parse GroundServiceConfig config file.";
150 double roi_region_rad_x = config_params.
roi_rad_x();
151 double roi_region_rad_y = config_params.
roi_rad_y();
152 uint32_t rows = config_params.
grid_size();
153 uint32_t cols = config_params.
grid_size();
161 const Eigen::Vector3d& world_point) {
162 std::lock_guard<std::mutex> lock(
mutex_);
void Init(int32_t rows, int32_t cols)
bool PointToGrid(const Eigen::Vector3d &world_point, uint32_t *grid_index) const
bool Init(double roi_x, double roi_y, uint32_t rows, uint32_t cols)
void SetContent(const SceneServiceContent &content) override
void GetCopy(SceneServiceContent *content) const override
float PointToPlaneDistance(const Eigen::Vector3d &world_point) const
Eigen::Vector3d grid_center_
bool Init(const SceneServiceInitOptions &options=SceneServiceInitOptions()) override
GroundServiceContent * ground_content_ref_
float QueryPointToGroundDistance(const Eigen::Vector3d &world_point)
SceneServiceContentPtr self_content_
bool GetProtoFromFile(const std::string &file_name, google::protobuf::Message *message)
Parses the content of the file specified by the file_name as a representation of protobufs,...
std::string GetAbsolutePath(const std::string &prefix, const std::string &relative_path)
Get absolute path by concatenating prefix and relative_path.
T IPlaneToPointSignedDistanceWUnitNorm(const T *pi, const T *p)
uint32_t GetIndex(uint32_t r, uint32_t c, uint32_t cols)
std::string GetCommonConfigFile(const std::string &config_file)
Get the perception common config path
#define PERCEPTION_REGISTER_SCENESERVICE(name)
#define PERCEPTION_REGISTER_SCENESERVICECONTENT(name)
optional uint32 grid_size
optional double roi_rad_x
optional double roi_rad_y