LaserScanner.h
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014-2020 Jose Luis Blanco Claraco |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under 3-clause BSD License |
7  | See COPYING |
8  +-------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
12 #include <mrpt/obs/CObservation2DRangeScan.h>
14 #include <mrpt/poses/CPose2D.h>
16 
17 #include <mutex>
18 
19 namespace mvsim
20 {
21 class LaserScanner : public SensorBase
22 {
24  public:
26  virtual ~LaserScanner();
27 
28  // See docs in base class
29  virtual void loadConfigFrom(const rapidxml::xml_node<char>* root) override;
30 
31  virtual void simul_pre_timestep(const TSimulContext& context) override;
32  virtual void simul_post_timestep(const TSimulContext& context) override;
33 
34  void poses_mutex_lock() override {}
35  void poses_mutex_unlock() override {}
36 
37  protected:
38  virtual void internalGuiUpdate(
39  mrpt::opengl::COpenGLScene& scene, bool childrenOnly) override;
40 
41  int m_z_order;
43  std::string m_name;
49 
50  bool m_viz_visiblePlane = false;
51  bool m_viz_visiblePoints = false;
52  float m_viz_pointSize = 3.0f;
53 
54  // Store here all scan parameters. This obj will be copied as a
55  // "pattern" to fill it with actual scan data.
57 
58  std::mutex m_last_scan_cs;
60  mrpt::obs::CObservation2DRangeScan::Ptr m_last_scan;
61  mrpt::obs::CObservation2DRangeScan::Ptr m_last_scan2gui;
62 
65  bool m_gui_uptodate = false;
66  std::mutex m_gui_mtx;
67  mrpt::opengl::CPlanarLaserScan::Ptr m_gl_scan;
68 };
69 } // namespace mvsim
void poses_mutex_unlock() override
Definition: LaserScanner.h:35
mrpt::poses::CPose2D m_sensor_pose_on_veh
Definition: LaserScanner.h:42
scene
LaserScanner(VehicleBase &parent, const rapidxml::xml_node< char > *root)
std::string m_name
sensor label/name
Definition: LaserScanner.h:43
mrpt::obs::CObservation2DRangeScan m_scan_model
Definition: LaserScanner.h:56
mrpt::obs::CObservation2DRangeScan::Ptr m_last_scan
Definition: LaserScanner.h:60
virtual void simul_pre_timestep(const TSimulContext &context) override
virtual void internalGuiUpdate(mrpt::opengl::COpenGLScene &scene, bool childrenOnly) override
T root(const T v0, const T v1)
virtual void simul_post_timestep(const TSimulContext &context) override
#define DECLARES_REGISTER_SENSOR(CLASS_NAME)
Definition: SensorBase.h:64
mrpt::obs::CObservation2DRangeScan::Ptr m_last_scan2gui
Definition: LaserScanner.h:61
int m_z_order
to help rendering multiple scans
Definition: LaserScanner.h:41
void poses_mutex_lock() override
Definition: LaserScanner.h:34
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root) override
mrpt::opengl::CPlanarLaserScan::Ptr m_gl_scan
Definition: LaserScanner.h:67
std::mutex m_last_scan_cs
Definition: LaserScanner.h:58
std::mutex m_gui_mtx
Definition: LaserScanner.h:66


mvsim
Author(s):
autogenerated on Fri May 7 2021 03:05:51