Skip to content
Snippets Groups Projects

WIP: Resolve "Do not use default YAML params"

Closed Joan Solà Ortega requested to merge 244-yaml-params-with-spaces-not-underscores into devel
1 file
+ 28
0
Compare changes
  • Side-by-side
  • Inline
@@ -18,6 +18,34 @@ class StateBlock;
namespace wolf {
/*
* Macro for defining Autoconf sensor creator.
*
* In order to use this macro, the derived sensor class, SensorClass, must have a constructor available like so:
*
* SensorClass(const VectorXs & _extrinsics, const IntrinsicsClassPtr _intrinsics);
*
*/
#define WOLF_CREATE_SENSOR_AUTO(SensorClass, IntrinsicsClass, ExtrinsicsSize) \
static SensorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server) \
{ \
Eigen::VectorXs extrinsics = _server.template getParam<Eigen::VectorXs>(_unique_name + "/extrinsic/pose"); \
\
assert(extrinsics.size() == ExtrinsicsSize && "Bad extrinsics vector length."); \
\
IntrinsicsClass##Ptr params = std::make_shared<IntrinsicsClass>(_unique_name, _server); \
\
SensorClass##Ptr sensor = std::make_shared<SensorClass>(extrinsics, params); \
\
sensor ->setName(_unique_name); \
\
return sensor; \
}
/** \brief base struct for intrinsic sensor parameters
*
* Derive from this struct to create structs of sensor intrinsic parameters.
Loading