NavMap
Loading...
Searching...
No Matches
conversions.cpp File Reference
#include "navmap_ros/conversions.hpp"
#include <algorithm>
#include <cmath>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <limits>
#include <numeric>
#include "geometry_msgs/msg/pose.hpp"
#include "std_msgs/msg/header.hpp"
#include "sensor_msgs/msg/point_cloud2.hpp"
#include "navmap_ros_interfaces/msg/nav_map.hpp"
#include "navmap_ros_interfaces/msg/nav_map_layer.hpp"
#include "nav_msgs/msg/occupancy_grid.hpp"
#include "pcl_conversions/pcl_conversions.h"
#include "pcl/common/point_tests.h"
#include "pcl/point_cloud.h"
#include "pcl/point_types.h"
#include "pcl/kdtree/kdtree_flann.h"
Include dependency graph for conversions.cpp:

Classes

struct  EdgeHasher
 
struct  EdgeKey
 
struct  TriHasher
 
struct  TriKey
 
struct  Voxel
 
struct  VoxelHash
 

Namespaces

namespace  navmap_ros
 Conversions between core NavMap and ROS-level structures.
 

Typedefs

using Triangle = Eigen::Vector3i
 

Functions

bool build_navmap_from_mesh (const pcl::PointCloud< pcl::PointXYZ > &cloud, const std::vector< Eigen::Vector3i > &triangles, const std::string &frame_id, navmap_ros_interfaces::msg::NavMap &out_msg, navmap::NavMap *out_core_opt)
 
pcl::PointCloud< pcl::PointXYZ > downsample_voxelize_topZ_layered (const pcl::PointCloud< pcl::PointXYZ > &input_points, float resolution, float dz_merge)
 
navmap::NavMap from_msg (const NavMap &msg)
 
navmap::NavMap from_msg (const NavMap &msg, std_msgs::msg::Header &header)
 
void from_msg (const navmap_ros_interfaces::msg::NavMapLayer &msg, navmap::NavMap &nm)
 Backward-compatible overload (ignores message header).
 
void from_msg (const navmap_ros_interfaces::msg::NavMapLayer &msg, navmap::NavMap &nm, std_msgs::msg::Header &header)
 Import a single NavMapLayer message into a NavMap.
 
navmap::NavMap from_occupancy_grid (const nav_msgs::msg::OccupancyGrid &grid)
 Backward-compatible overload (ignores grid header).
 
navmap::NavMap from_occupancy_grid (const nav_msgs::msg::OccupancyGrid &grid, std_msgs::msg::Header &header)
 Build a navmap::NavMap from a nav_msgs::msg::OccupancyGrid using a regular triangular surface with shared vertices.
 
navmap::NavMap from_pointcloud2 (const sensor_msgs::msg::PointCloud2 &pc2, navmap_ros_interfaces::msg::NavMap &out_msg, BuildParams params)
 Build a NavMap surface from a ROS sensor_msgs::msg::PointCloud2.
 
navmap::NavMap from_points (const pcl::PointCloud< pcl::PointXYZ > &input_points, navmap_ros_interfaces::msg::NavMap &out_msg, BuildParams params)
 Build a NavMap surface from a PCL point cloud.
 
navmap_ros_interfaces::msg::NavMap to_msg (const navmap::NavMap &nm)
 Backward-compatible overload (no header provided).
 
navmap_ros_interfaces::msg::NavMapLayer to_msg (const navmap::NavMap &nm, const std::string &layer)
 Backward-compatible overload (no header provided).
 
navmap_ros_interfaces::msg::NavMapLayer to_msg (const navmap::NavMap &nm, const std::string &layer, const std_msgs::msg::Header &header)
 Convert a single layer from a NavMap into a ROS message.
 
navmap_ros_interfaces::msg::NavMap to_msg (const navmap::NavMap &nm, const std_msgs::msg::Header &header)
 Convert a core navmap::NavMap into its compact ROS transport message.
 
nav_msgs::msg::OccupancyGrid to_occupancy_grid (const navmap::NavMap &nm)
 Backward-compatible overload.
 
nav_msgs::msg::OccupancyGrid to_occupancy_grid (const navmap::NavMap &nm, const std_msgs::msg::Header &header)
 Convert a navmap::NavMap back to nav_msgs::msg::OccupancyGrid.
 
void triangle_angles_deg (const Eigen::Vector3f &A, const Eigen::Vector3f &B, const Eigen::Vector3f &C, float &angA, float &angB, float &angC)
 
bool try_add_triangle (int i, int j, int k, const pcl::PointCloud< pcl::PointXYZ > &cloud, const BuildParams &P, std::unordered_set< TriKey, TriHasher > &tri_set, std::unordered_set< EdgeKey, EdgeHasher > &edge_set, std::vector< Triangle > &tris)