Autoware.Auto
point_cloud_utils.hpp File Reference

This class defines common functions and classes to work with pointclouds. More...

#include <lidar_utils/visibility_control.hpp>
#include <common/types.hpp>
#include <helper_functions/float_comparisons.hpp>
#include <geometry_msgs/msg/transform_stamped.hpp>
#include <geometry/common_3d.hpp>
#include <sensor_msgs/msg/point_cloud2.hpp>
#include <sensor_msgs/point_cloud2_iterator.hpp>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <atomic>
#include <limits>
#include <memory>
#include <string>
#include <vector>
Include dependency graph for point_cloud_utils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  autoware::common::lidar_utils::PointCloudIts
 
struct  autoware::common::lidar_utils::SafeCloudIndices
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< T >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< int8_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< uint8_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< int16_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< uint16_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< int32_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< uint32_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< float32_t >
 
struct  autoware::common::lidar_utils::_create_custom_pcl_datatype< float64_t >
 
class  autoware::common::lidar_utils::DistanceFilter
 Filter class to check if a point lies within a range defined by a min and max radius. More...
 
class  autoware::common::lidar_utils::StaticTransformer
 Transform to apply a constant transform to given points. More...
 
class  autoware::common::lidar_utils::AngleFilter
 Filter class to check if a point's azimuth lies within a range defined by a start and end angles. The range is defined from start to the end angles in counter-clock-wise direction. More...
 
class  autoware::common::lidar_utils::IntensityIteratorWrapper
 

Namespaces

 autoware
 This file defines the lanelet2_map_provider_node class.
 
 autoware::common
 
 autoware::common::lidar_utils
 

Functions

LIDAR_UTILS_PUBLIC std::size_t autoware::common::lidar_utils::index_after_last_safe_byte_index (const sensor_msgs::msg::PointCloud2 &msg) noexcept
 Compute minimum safe length of point cloud access. More...
 
LIDAR_UTILS_PUBLIC SafeCloudIndices autoware::common::lidar_utils::sanitize_point_cloud (const sensor_msgs::msg::PointCloud2 &msg)
 
LIDAR_UTILS_PUBLIC void autoware::common::lidar_utils::init_pcl_msg (sensor_msgs::msg::PointCloud2 &msg, const std::string &frame_id, const std::size_t size=static_cast< std::size_t >(MAX_SCAN_POINTS))
 initializes header information for point cloud for x, y, z and intensity More...
 
template<typename ... Fields>
LIDAR_UTILS_PUBLIC void autoware::common::lidar_utils::init_pcl_msg (sensor_msgs::msg::PointCloud2 &msg, const std::string &frame_id, const std::size_t size, const uint32_t num_fields, Fields const &... fields)
 
LIDAR_UTILS_PUBLIC bool8_t autoware::common::lidar_utils::add_point_to_cloud_raw (sensor_msgs::msg::PointCloud2 &cloud, const autoware::common::types::PointXYZIF &pt, uint32_t point_cloud_idx)
 add a point in the cloud by memcpy instead of using iterators This version prioritize speed and ease of parallelisation it assumes : - PointXYZIF is a POD object equivalent to a point stored in the cloud, which means same fields and same endianness. More...
 
LIDAR_UTILS_PUBLIC bool8_t autoware::common::lidar_utils::add_point_to_cloud (PointCloudIts &cloud_its, const autoware::common::types::PointXYZIF &pt, uint32_t &point_cloud_idx)
 
LIDAR_UTILS_PUBLIC bool8_t autoware::common::lidar_utils::add_point_to_cloud (sensor_msgs::msg::PointCloud2 &cloud, const autoware::common::types::PointXYZIF &pt, uint32_t &point_cloud_idx)
 
LIDAR_UTILS_PUBLIC bool8_t autoware::common::lidar_utils::add_point_to_cloud (sensor_msgs::msg::PointCloud2 &cloud, const autoware::common::types::PointXYZF &pt, uint32_t &point_cloud_idx)
 
LIDAR_UTILS_PUBLIC void autoware::common::lidar_utils::reset_pcl_msg (sensor_msgs::msg::PointCloud2 &msg, const std::size_t size, uint32_t &point_cloud_idx)
 
LIDAR_UTILS_PUBLIC void autoware::common::lidar_utils::resize_pcl_msg (sensor_msgs::msg::PointCloud2 &msg, const std::size_t new_size)
 
LIDAR_UTILS_PUBLIC bool8_t autoware::common::lidar_utils::has_intensity_and_throw_if_no_xyz (const PointCloud2::SharedPtr &cloud)
 
LIDAR_UTILS_PUBLIC bool8_t autoware::common::lidar_utils::has_intensity_and_throw_if_no_xyz (const PointCloud2 &cloud)
 
template<typename T >
LIDAR_UTILS_PUBLIC sensor_msgs::msg::PointCloud2::SharedPtr autoware::common::lidar_utils::create_custom_pcl (const std::vector< std::string > &field_names, const uint32_t cloud_size)
 

Variables

static const uint32_t autoware::common::lidar_utils::MAX_SCAN_POINTS = 57872U
 

Detailed Description

This class defines common functions and classes to work with pointclouds.