Apollo
6.0
Open source self driving car software
|
#include <pyramid_map_node.h>
Public Member Functions | |
PyramidMapNode () | |
~PyramidMapNode () | |
virtual void | Init (const BaseMapConfig *map_config) |
Initialize the map node. Call this function first before use it! More... | |
virtual void | Init (const BaseMapConfig *map_config, const MapNodeIndex &index, bool create_map_cells=true) |
void | BottomUpSafe () |
Propagate the data to the coarse resolution by check. More... | |
void | BottomUpBase () |
Propagate the data to the coarse resolution. only update count, intensity, intensity var and altitude. More... | |
bool | AddValueIfInBound (const Eigen::Vector3d &coordinate, unsigned char intensity, unsigned int level=0) |
Add the value of a pixel in the map node if the pixel in the node. More... | |
void | AddValueIfInBound (const std::vector< Eigen::Vector3d > &coordinates, const std::vector< unsigned char > &intensity, unsigned int level=0) |
Add the value of a pixel in the map node if the pixel in the node. More... | |
bool | GetCoordinate (const Eigen::Vector2d &coordinate, unsigned int level, unsigned int *x, unsigned int *y) const |
Given the global coordinate, get the local 2D coordinate of the map cell matrix. <return> If global coordinate (x, y) belongs to this map node. More... | |
Eigen::Vector2d | GetCoordinate (unsigned int level, unsigned int x, unsigned int y) const |
Given the local 2D coordinate, return the global coordinate. More... | |
virtual bool | GetCoordinate (const Eigen::Vector2d &coordinate, unsigned int *x, unsigned int *y) const |
Given the global coordinate, get the local 2D coordinate of the map cell matrix. <return> If global coordinate (x, y) belongs to this map node. More... | |
virtual bool | GetCoordinate (const Eigen::Vector3d &coordinate, unsigned int *x, unsigned int *y) const |
virtual Eigen::Vector2d | GetCoordinate (unsigned int x, unsigned int y) const |
Given the local 2D coordinate, return the global coordinate. More... | |
float | GetIntensitySafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell intensity with check. More... | |
float | GetIntensityVarSafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell variance of the intensity with check. More... | |
float | GetAltitudeSafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's average altitude with check. More... | |
float | GetAltitudeVarSafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's variance of the altitude with check. More... | |
float | GetGroundAltitudeSafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's average ground altitude with check. More... | |
unsigned int | GetCountSafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's count of the samples with check. More... | |
unsigned int | GetGroundCountSafe (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's count of the ground samples with check. More... | |
float | GetIntensity (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell intensity without check. More... | |
float | GetIntensityVar (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell variance of the intensity without check. More... | |
float | GetAltitude (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's average altitude without check. More... | |
float | GetAltitudeVar (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's variance of the altitude without check. More... | |
float | GetGroundAltitude (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's average ground altitude without check. More... | |
unsigned int | GetCount (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's count of the samples without check. More... | |
unsigned int | GetGroundCount (const Eigen::Vector3d &coordinate, unsigned int level=0) const |
Given the 3D global coordinate, get the map cell's count of the ground samples without check. More... | |
double | ComputeMeanIntensity (unsigned int level=0) |
Compute mean intensity. More... | |
![]() | |
BaseMapNode () | |
Construct a map node. More... | |
BaseMapNode (BaseMapMatrix *matrix, CompressionStrategy *strategy) | |
Construct a map node. More... | |
virtual | ~BaseMapNode () |
Destruct a map node. More... | |
virtual void | InitMapMatrix (const BaseMapConfig *map_config) |
Initialize the map matrix. More... | |
virtual void | Finalize () |
call before deconstruction or reset. More... | |
virtual void | ResetMapNode () |
Reset map cells data. More... | |
bool | Save () |
Save the map node to the disk. More... | |
bool | SaveIntensityImage () const |
Save intensity image of node. More... | |
bool | SaveAltitudeImage () const |
Save altitude image of node. More... | |
bool | Load () |
Load the map node from the disk. More... | |
bool | Load (const char *filename) |
void | SetMapNodeIndex (const MapNodeIndex &index) |
Set the map node index. More... | |
bool | SaveIntensityImage (const std::string &path) const |
Save intensity image of node. More... | |
bool | SaveAltitudeImage (const std::string &path) const |
Save altitude image of node. More... | |
const BaseMapMatrix & | GetMapCellMatrix () const |
Get map cell matrix. More... | |
BaseMapMatrix & | GetMapCellMatrix () |
const BaseMapConfig & | GetMapConfig () const |
Get the map settings. More... | |
const BaseMapNodeConfig & | GetMapNodeConfig () const |
Get the map node config. More... | |
const MapNodeIndex & | GetMapNodeIndex () const |
Get the map node index. More... | |
void | SetIsReserved (bool is_reserved) |
Set if the map node is reserved. More... | |
bool | GetIsReserved () const |
Get if the map node is reserved. More... | |
bool | GetIsChanged () const |
Get if the map data has changed. More... | |
void | SetIsChanged (bool is) |
Set if the map node data has changed. More... | |
bool | GetIsReady () const |
Get if the map node data is ready. More... | |
const Eigen::Vector2d & | GetLeftTopCorner () const |
void | SetLeftTopCorner (double x, double y) |
Set the left top corner of the map node. More... | |
float | GetMapResolution () const |
Get the resolution of this map nodex. More... | |
Additional Inherited Members | |
![]() | |
static Eigen::Vector2d | ComputeLeftTopCorner (const BaseMapConfig &config, const MapNodeIndex &index) |
static Eigen::Vector2d | GetLeftTopCorner (const BaseMapConfig &option, const MapNodeIndex &index) |
![]() | |
bool | CreateMapDirectory (const std::string &path) const |
Try to create the map directory. More... | |
bool | CreateMapDirectoryRecursively (const std::vector< std::string > &paths) const |
Try to create the map directory recursively. More... | |
bool | CheckMapDirectoryRecursively (const std::vector< std::string > &paths) const |
Try to check the map directory recursively. More... | |
virtual bool | LoadBinary (FILE *file) |
Load the map cell from a binary chunk. More... | |
virtual bool | CreateBinary (FILE *file) const |
Create the binary. Serialization of the object. More... | |
virtual size_t | GetBinarySize () const |
Get the binary size of the object. More... | |
virtual size_t | LoadHeaderBinary (const unsigned char *buf) |
Load the map node header from a binary chunk. More... | |
virtual size_t | CreateHeaderBinary (unsigned char *buf, size_t buf_size) const |
Create the binary header. More... | |
virtual size_t | GetHeaderBinarySize () const |
Get the size of the header in bytes. More... | |
virtual size_t | LoadBodyBinary (std::vector< unsigned char > *buf) |
Load the map node body from a binary chunk. More... | |
virtual size_t | CreateBodyBinary (std::vector< unsigned char > *buf) const |
Create the binary body. More... | |
virtual size_t | GetBodyBinarySize () const |
Get the size of the body in bytes. More... | |
![]() | |
const BaseMapConfig * | map_config_ = nullptr |
The map settings. More... | |
MapNodeIndex | index_ |
The index of this node. More... | |
Eigen::Vector2d | left_top_corner_ |
The left top corner of the map node in the global coordinate system. More... | |
std::shared_ptr< BaseMapNodeConfig > | map_node_config_ = nullptr |
The map node config. More... | |
std::shared_ptr< BaseMapMatrix > | map_matrix_ = nullptr |
The data structure of the map datas, which is a matrix. More... | |
std::shared_ptr< BaseMapMatrixHandler > | map_matrix_handler_ = nullptr |
The class to load and create map matrix binary. More... | |
bool | is_reserved_ = false |
If the node is reserved in map. More... | |
bool | is_changed_ = false |
Has the map node been changed. More... | |
bool | data_is_ready_ = false |
size_t | file_body_binary_size_ = 0 |
The body binary size in file. More... | |
size_t | uncompressed_file_body_size_ = 0 |
std::shared_ptr< CompressionStrategy > | compression_strategy_ = nullptr |
apollo::localization::msf::pyramid_map::PyramidMapNode::PyramidMapNode | ( | ) |
apollo::localization::msf::pyramid_map::PyramidMapNode::~PyramidMapNode | ( | ) |
bool apollo::localization::msf::pyramid_map::PyramidMapNode::AddValueIfInBound | ( | const Eigen::Vector3d & | coordinate, |
unsigned char | intensity, | ||
unsigned int | level = 0 |
||
) |
Add the value of a pixel in the map node if the pixel in the node.
<coordinate> | The 3D global coordinate. |
<intensity> | The reflectance intensity. |
<return> | True, if pixel in the bound of the node, else False. |
void apollo::localization::msf::pyramid_map::PyramidMapNode::AddValueIfInBound | ( | const std::vector< Eigen::Vector3d > & | coordinates, |
const std::vector< unsigned char > & | intensity, | ||
unsigned int | level = 0 |
||
) |
Add the value of a pixel in the map node if the pixel in the node.
<coordinates> | The 3D global coordinates. |
<intensities> | The reflectance intensities. |
void apollo::localization::msf::pyramid_map::PyramidMapNode::BottomUpBase | ( | ) |
Propagate the data to the coarse resolution. only update count, intensity, intensity var and altitude.
void apollo::localization::msf::pyramid_map::PyramidMapNode::BottomUpSafe | ( | ) |
Propagate the data to the coarse resolution by check.
double apollo::localization::msf::pyramid_map::PyramidMapNode::ComputeMeanIntensity | ( | unsigned int | level = 0 | ) |
Compute mean intensity.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetAltitude | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's average altitude without check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetAltitudeSafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's average altitude with check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetAltitudeVar | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's variance of the altitude without check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetAltitudeVarSafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's variance of the altitude with check.
bool apollo::localization::msf::pyramid_map::PyramidMapNode::GetCoordinate | ( | const Eigen::Vector2d & | coordinate, |
unsigned int | level, | ||
unsigned int * | x, | ||
unsigned int * | y | ||
) | const |
Given the global coordinate, get the local 2D coordinate of the map cell matrix. <return> If global coordinate (x, y) belongs to this map node.
Eigen::Vector2d apollo::localization::msf::pyramid_map::PyramidMapNode::GetCoordinate | ( | unsigned int | level, |
unsigned int | x, | ||
unsigned int | y | ||
) | const |
Given the local 2D coordinate, return the global coordinate.
|
virtual |
Given the global coordinate, get the local 2D coordinate of the map cell matrix. <return> If global coordinate (x, y) belongs to this map node.
Reimplemented from apollo::localization::msf::pyramid_map::BaseMapNode.
|
virtual |
Reimplemented from apollo::localization::msf::pyramid_map::BaseMapNode.
|
virtual |
Given the local 2D coordinate, return the global coordinate.
Reimplemented from apollo::localization::msf::pyramid_map::BaseMapNode.
unsigned int apollo::localization::msf::pyramid_map::PyramidMapNode::GetCount | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's count of the samples without check.
unsigned int apollo::localization::msf::pyramid_map::PyramidMapNode::GetCountSafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's count of the samples with check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetGroundAltitude | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's average ground altitude without check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetGroundAltitudeSafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's average ground altitude with check.
unsigned int apollo::localization::msf::pyramid_map::PyramidMapNode::GetGroundCount | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's count of the ground samples without check.
unsigned int apollo::localization::msf::pyramid_map::PyramidMapNode::GetGroundCountSafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell's count of the ground samples with check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetIntensity | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell intensity without check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetIntensitySafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell intensity with check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetIntensityVar | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell variance of the intensity without check.
float apollo::localization::msf::pyramid_map::PyramidMapNode::GetIntensityVarSafe | ( | const Eigen::Vector3d & | coordinate, |
unsigned int | level = 0 |
||
) | const |
Given the 3D global coordinate, get the map cell variance of the intensity with check.
|
virtual |
Initialize the map node. Call this function first before use it!
Implements apollo::localization::msf::pyramid_map::BaseMapNode.
|
virtual |