AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
LidarModel.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16
17#pragma once
18
22
24
25namespace agxSensor
26{
30
36 {
37 public:
47 LidarModel( LidarRayPatternGenerator* rayPatternGenerator,
48 agx::RangeReal32 range,
49 LidarProperties* properties = nullptr,
51
56 bool isValid( bool printIssues = true ) const;
57
62
67
72
77
79
80 public:
81 virtual ~LidarModel() = default;
82
84
85 protected:
86 LidarModel();
87
89
90 private:
91 LidarRayPatternGeneratorRef m_rayPatternGenerator;
92 LidarRayRangeRef m_rayRange;
93 LidarPropertiesRef m_properties;
94 RtOutputNoiseRefVector m_outputNoises;
95 };
96
104 {
105 public:
116 agx::Vec2 resolution,
117 agx::Real frequency,
118 LidarProperties* properties = nullptr,
120
122
124
125 public:
126 virtual ~LidarModelHorizontalSweep() = default;
127
128 protected:
130
132 };
133
139 {
140 public:
149 LidarProperties* properties = nullptr,
151
153
155
156 public:
157 virtual ~LidarModelGeneric360HorizontalSweep() = default;
158
159 protected:
161
163 };
164
171 {
172 public:
177
179
181
182 public:
183 virtual ~LidarModelGeneric360HorizontalSweep10Hz() = default;
184
186 };
187}
#define AGX_DECLARE_POINTER_TYPES(type)
Definition: Referenced.h:254
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
Definition: Serializable.h:207
#define AGXSENSOR_EXPORT
A very simple short-hand for creating a basic 360 degree horizontally sweeping lidar locked at the co...
Definition: LidarModel.h:171
LidarModelGeneric360HorizontalSweep10Hz()
Construct a basic 360 degree horizontally sweeping lidar locked at 10 Hz.
A simple 360 degree sweeping lidar model of a vertical field of view of +/- 50 degrees and a resoluti...
Definition: LidarModel.h:139
LidarModelGeneric360HorizontalSweep(agx::Real frequency, LidarProperties *properties=nullptr, RtOutputNoiseRefVector outputNoises=RtOutputNoiseRefVector())
Constructs a 360 degree horizontally sweeping lidar model of the specified sweep frequency and additi...
A lidar model defining a rotational lidar, scanning its surroundings by emitting racks of laser beams...
Definition: LidarModel.h:104
LidarModelHorizontalSweep(agx::Vec2 fov, agx::Vec2 resolution, agx::Real frequency, LidarProperties *properties=nullptr, RtOutputNoiseRefVector outputNoises=RtOutputNoiseRefVector())
Constructs a horizontal sweep lidar based on the field of view, scanning resolution,...
Base lidar model describing the fundamentals, such as ray pattern, range and beam properties,...
Definition: LidarModel.h:36
LidarProperties * getProperties() const
LidarRayPatternGenerator * getRayPatternGenerator() const
LidarModel(LidarRayPatternGenerator *rayPatternGenerator, agx::RangeReal32 range, LidarProperties *properties=nullptr, RtOutputNoiseRefVector outputNoises=RtOutputNoiseRefVector())
Construct given ray pattern generator, range and (optional) properties.
const RtOutputNoiseRefVector & getOutputNoises() const
LidarRayRange * getRayRange() const
bool isValid(bool printIssues=true) const
Properties/parameters of a lidar model.
Base of lidar ray pattern implementations responsible of providing a set of ray transforms (ray along...
Start and end range of each lidar ray, default [0, "infinity").
Definition: LidarRayRange.h:29
This class is an abstract base class for all classes that can be stored and retrieved from an Archive...
Definition: Serializable.h:44
A range object has a min and max value of a given type and provides services to tell whether a value ...
Definition: Range.h:80
Base class providing referencing counted objects.
Definition: Referenced.h:120
#define DOXYGEN_END_INTERNAL_BLOCK()
Definition: macros.h:89
#define DOXYGEN_START_INTERNAL_BLOCK()
Definition: macros.h:88
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
double Real
Definition: Real.h:41