Apollo  6.0
Open source self driving car software
Public Member Functions | List of all members
apollo::localization::msf::pyramid_map::PyramidMapNode Class Reference

#include <pyramid_map_node.h>

Inheritance diagram for apollo::localization::msf::pyramid_map::PyramidMapNode:
Inheritance graph
Collaboration diagram for apollo::localization::msf::pyramid_map::PyramidMapNode:
Collaboration graph

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...
 
- Public Member Functions inherited from apollo::localization::msf::pyramid_map::BaseMapNode
 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 BaseMapMatrixGetMapCellMatrix () const
 Get map cell matrix. More...
 
BaseMapMatrixGetMapCellMatrix ()
 
const BaseMapConfigGetMapConfig () const
 Get the map settings. More...
 
const BaseMapNodeConfigGetMapNodeConfig () const
 Get the map node config. More...
 
const MapNodeIndexGetMapNodeIndex () 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 Public Member Functions inherited from apollo::localization::msf::pyramid_map::BaseMapNode
static Eigen::Vector2d ComputeLeftTopCorner (const BaseMapConfig &config, const MapNodeIndex &index)
 
static Eigen::Vector2d GetLeftTopCorner (const BaseMapConfig &option, const MapNodeIndex &index)
 
- Protected Member Functions inherited from apollo::localization::msf::pyramid_map::BaseMapNode
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...
 
- Protected Attributes inherited from apollo::localization::msf::pyramid_map::BaseMapNode
const BaseMapConfigmap_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< BaseMapNodeConfigmap_node_config_ = nullptr
 The map node config. More...
 
std::shared_ptr< BaseMapMatrixmap_matrix_ = nullptr
 The data structure of the map datas, which is a matrix. More...
 
std::shared_ptr< BaseMapMatrixHandlermap_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< CompressionStrategycompression_strategy_ = nullptr
 

Constructor & Destructor Documentation

◆ PyramidMapNode()

apollo::localization::msf::pyramid_map::PyramidMapNode::PyramidMapNode ( )

◆ ~PyramidMapNode()

apollo::localization::msf::pyramid_map::PyramidMapNode::~PyramidMapNode ( )

Member Function Documentation

◆ AddValueIfInBound() [1/2]

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.

Parameters
<coordinate>The 3D global coordinate.
<intensity>The reflectance intensity.
<return>True, if pixel in the bound of the node, else False.

◆ AddValueIfInBound() [2/2]

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.

Parameters
<coordinates>The 3D global coordinates.
<intensities>The reflectance intensities.

◆ BottomUpBase()

void apollo::localization::msf::pyramid_map::PyramidMapNode::BottomUpBase ( )

Propagate the data to the coarse resolution. only update count, intensity, intensity var and altitude.

◆ BottomUpSafe()

void apollo::localization::msf::pyramid_map::PyramidMapNode::BottomUpSafe ( )

Propagate the data to the coarse resolution by check.

◆ ComputeMeanIntensity()

double apollo::localization::msf::pyramid_map::PyramidMapNode::ComputeMeanIntensity ( unsigned int  level = 0)

Compute mean intensity.

◆ GetAltitude()

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.

◆ GetAltitudeSafe()

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.

◆ GetAltitudeVar()

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.

◆ GetAltitudeVarSafe()

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.

◆ GetCoordinate() [1/5]

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.

◆ GetCoordinate() [2/5]

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.

◆ GetCoordinate() [3/5]

virtual bool apollo::localization::msf::pyramid_map::PyramidMapNode::GetCoordinate ( const Eigen::Vector2d &  coordinate,
unsigned int *  x,
unsigned int *  y 
) const
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.

◆ GetCoordinate() [4/5]

virtual bool apollo::localization::msf::pyramid_map::PyramidMapNode::GetCoordinate ( const Eigen::Vector3d &  coordinate,
unsigned int *  x,
unsigned int *  y 
) const
virtual

◆ GetCoordinate() [5/5]

virtual Eigen::Vector2d apollo::localization::msf::pyramid_map::PyramidMapNode::GetCoordinate ( unsigned int  x,
unsigned int  y 
) const
virtual

Given the local 2D coordinate, return the global coordinate.

Reimplemented from apollo::localization::msf::pyramid_map::BaseMapNode.

◆ GetCount()

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.

◆ GetCountSafe()

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.

◆ GetGroundAltitude()

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.

◆ GetGroundAltitudeSafe()

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.

◆ GetGroundCount()

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.

◆ GetGroundCountSafe()

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.

◆ GetIntensity()

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.

◆ GetIntensitySafe()

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.

◆ GetIntensityVar()

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.

◆ GetIntensityVarSafe()

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.

◆ Init() [1/2]

virtual void apollo::localization::msf::pyramid_map::PyramidMapNode::Init ( const BaseMapConfig map_config)
virtual

Initialize the map node. Call this function first before use it!

Implements apollo::localization::msf::pyramid_map::BaseMapNode.

◆ Init() [2/2]

virtual void apollo::localization::msf::pyramid_map::PyramidMapNode::Init ( const BaseMapConfig map_config,
const MapNodeIndex index,
bool  create_map_cells = true 
)
virtual

The documentation for this class was generated from the following file: