25template<
typename DerivedT>
47 Eigen::Isometry3f
T_BS = Eigen::Isometry3f::Identity();
85 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
88 template<
typename ConfigT>
109 const int max_block_scale)
const;
163 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
171 const DerivedT* underlying()
const;
176#include "impl/sensor_impl.hpp"
int height() const
Definition image.hpp:76
int width() const
Definition image.hpp:71
Base class for all sensor models used for integrating measurements.
Definition sensor.hpp:26
bool sphereInFrustumInf(const Eigen::Vector3f ¢re_S, const float radius) const
Return whether a sphere with centre_S and radius, expressed in the sensor frame, is at least partiall...
int computeIntegrationScale(const Eigen::Vector3f &block_centre_S, const float map_res, const int last_scale, const int min_scale, const int max_block_scale) const
Return the integration scale for an se::Block at block_centre_S.
bool pointInFrustum(const Eigen::Vector3f &point_S) const
Return whether point_S, expressed in the sensor frame, is inside the sensor frustum.
SensorBase(const DerivedT &d)
float farDist(const Eigen::Vector3f &ray_S) const
Return the maximum distance along ray_S, expressed in the sensor frame, that can be measured.
static std::string type()
Return the underlying sensor type as a string.
float near_plane
Definition sensor.hpp:158
bool left_hand_frame
Definition sensor.hpp:157
bool pointInFrustumInf(const Eigen::Vector3f &point_S) const
Return whether point_S, expressed in the sensor frame, is inside the sensor frustum but without consi...
float far_plane
Definition sensor.hpp:159
bool sphereInFrustum(const Eigen::Vector3f ¢re_S, const float radius) const
Return whether a sphere with centre_S and radius, expressed in the sensor frame, is at least partiall...
SensorBase(const ConfigT &c)
std::vector< float > pixel_voxel_ratio_per_scale
Definition sensor.hpp:161
Eigen::Isometry3f T_BS
Definition sensor.hpp:160
float measurementFromPoint(const Eigen::Vector3f &point_S) const
Return the depth measurement that would result form point_S, expressed in the sensor frame,...
float nearDist(const Eigen::Vector3f &ray_S) const
Return the minimum distance along ray_S, expressed in the sensor frame, that can be measured.
std::string value_to_pretty_str(const ValueT &val, const std::string &val_name="", const std::string &val_unit="", const int width=default_width)
Convert a matrix name, value and unit to a standardised string output.
std::string eigen_matrix_to_pretty_str(const EigenMatrixT &M, const std::string &M_name="", const int width=default_width)
Convert a matrix name and Eigen::Matrix value to a standardised string output.
Helper wrapper to allocate and de-allocate octants in the octree.
Definition bounded_vector.hpp:14
Configuration parameters common for all sensor models.
Definition sensor.hpp:29
float near_plane
The sensor's near plane in metres.
Definition sensor.hpp:38
void readYaml(const std::string &filename)
Reads the struct members from the "sensor" node of a YAML file.
std::vector< float > pixel_voxel_ratio_per_scale
The pixel-size to voxel-size ratio thresholds, in ascendig order and in physical coordinates,...
Definition sensor.hpp:56
int height
The height of images produced by the sensor in pixels.
Definition sensor.hpp:34
float far_plane
The sensor's far plane in metres.
Definition sensor.hpp:44
int width
The width of images produced by the sensor in pixels.
Definition sensor.hpp:31
Eigen::Isometry3f T_BS
The transformation from the sensor frame S to the body frame B.
Definition sensor.hpp:47
Config operator/(const float downsampling_factor) const
Definition sensor.hpp:63
friend std::ostream & operator<<(std::ostream &os, const Config &c)
Definition sensor.hpp:75