12 #include <mrpt/io/CFileGZOutputStream.h> 13 #include <mrpt/obs/obs_frwds.h> 14 #include <mrpt/opengl/opengl_frwds.h> 15 #include <mrpt/poses/CPose3D.h> 29 using Ptr = std::shared_ptr<SensorBase>;
47 [[maybe_unused]] mrpt::opengl::COpenGLScene& gl_scene)
52 static std::shared_ptr<mrpt::opengl::CSetOfObjects>
57 const std::shared_ptr<mrpt::opengl::CSetOfObjects>& o);
59 const std::shared_ptr<mrpt::opengl::CSetOfObjects>& o);
83 std::shared_ptr<mrpt::io::CFileGZOutputStream>
rawlog_io_;
96 const std::map<std::string, std::string>& varValues);
99 const std::shared_ptr<mrpt::obs::CObservation>& obs,
103 const std::shared_ptr<mrpt::obs::CObservation2DRangeScan>& obs,
118 #define DECLARES_REGISTER_SENSOR(CLASS_NAME) \ 119 DECLARES_REGISTER_CLASS2( \ 120 CLASS_NAME, SensorBase, Simulable&, const rapidxml::xml_node<char>*) 122 #define REGISTER_SENSOR(TEXTUAL_NAME, CLASS_NAME) \ 124 TClassFactory_sensors, classFactory_sensors, TEXTUAL_NAME, CLASS_NAME)
std::string publishTopic_
const World * world() const
std::vector< SensorBase::Ptr > TListSensors
virtual void simulateOn3DScene([[maybe_unused]] mrpt::opengl::COpenGLScene &gl_scene)
static std::shared_ptr< mrpt::opengl::CSetOfObjects > GetAllSensorsFOVViz()
static void RegisterSensorFOVViz(const std::shared_ptr< mrpt::opengl::CSetOfObjects > &o)
static std::shared_ptr< mrpt::opengl::CSetOfObjects > GetAllSensorsOriginViz()
bool should_simulate_sensor(const TSimulContext &context)
std::map< std::string, std::string > varValues_
Filled in by SensorBase::loadConfigFrom()
bool parseSensorPublish(const rapidxml::xml_node< char > *node, const std::map< std::string, std::string > &varValues)
static void RegisterSensorOriginViz(const std::shared_ptr< mrpt::opengl::CSetOfObjects > &o)
Simulable & vehicle_
The vehicle this sensor is attached to.
void registerOnServer(mvsim::Client &c) override
std::shared_ptr< mrpt::io::CFileGZOutputStream > rawlog_io_
void reportNewObservation(const std::shared_ptr< mrpt::obs::CObservation > &obs, const TSimulContext &context)
std::shared_ptr< SensorBase > Ptr
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root)
double sensor_last_timestamp_
TClassFactory_sensors classFactory_sensors
void reportNewObservation_lidar_2d(const std::shared_ptr< mrpt::obs::CObservation2DRangeScan > &obs, const TSimulContext &context)
std::string save_to_rawlog_
SensorBase(Simulable &vehicle)
static SensorBase::Ptr factory(Simulable &parent, const rapidxml::xml_node< char > *xml_node)
double sensor_period() const
void make_sure_we_have_a_name(const std::string &prefix)
Assign a sensible default name/sensor label if none is provided:
World * getSimulableWorldObject()