NavMap
Loading...
Searching...
No Matches
conversions.cpp File Reference
#include "navmap_ros/conversions.hpp"
#include <algorithm>
#include <cmath>
#include <cassert>
#include <unordered_map>
#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 "navmap_core/Geometry.hpp"
#include "pcl_conversions/pcl_conversions.h"
#include "pcl/point_types_conversion.h"
#include "pcl/common/transforms.h"
#include "pcl/point_cloud.h"
#include "pcl/point_types.h"
#include "pcl/PointIndices.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  VoxelAccum
 
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_avgXYZ (const pcl::PointCloud< pcl::PointXYZ > &input_points, float resolution)
 
pcl::PointCloud< pcl::PointXYZ > downsample_voxelize_avgZ (const pcl::PointCloud< pcl::PointXYZ > &input_points, float resolution)
 
navmap::NavMap from_msg (const NavMap &msg)
 
void from_msg (const navmap_ros_interfaces::msg::NavMapLayer &msg, navmap::NavMap &nm)
 Import a single NavMapLayer message into a NavMap.
 
navmap::NavMap from_occupancy_grid (const nav_msgs::msg::OccupancyGrid &grid)
 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.
 
std::vector< Trianglegrow_surface_from_seed (const pcl::PointCloud< pcl::PointXYZ > &cloud, int seed_idx, const BuildParams &P)
 
void local_tangent_basis (const std::vector< Eigen::Vector3f > &nbrs, Eigen::Vector3f &t1, Eigen::Vector3f &t2)
 
void sort_neighbors_angular (const Eigen::Vector3f &vpos, const std::vector< std::pair< int, Eigen::Vector3f > > &nbrs, std::vector< int > &out_ordered)
 
navmap_ros_interfaces::msg::NavMap to_msg (const navmap::NavMap &nm)
 Convert a core navmap::NavMap into its compact ROS transport message.
 
navmap_ros_interfaces::msg::NavMapLayer to_msg (const navmap::NavMap &nm, const std::string &layer)
 Convert a single layer from a NavMap into a ROS message.
 
nav_msgs::msg::OccupancyGrid to_occupancy_grid (const navmap::NavMap &nm)
 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)