Lidar.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2019 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #ifndef SDF_LIDAR_HH_
18 #define SDF_LIDAR_HH_
19 
20 #include <sdf/Error.hh>
21 #include <sdf/Element.hh>
22 #include <sdf/Noise.hh>
23 #include <sdf/sdf_config.h>
24 
25 #include <ignition/math/Angle.hh>
26 
27 namespace sdf
28 {
29  // Inline bracket to help doxygen filtering.
30  inline namespace SDF_VERSION_NAMESPACE {
31  //
32  class LidarPrivate;
33 
105  {
107  public: Lidar();
108 
111  public: Lidar(const Lidar &_lidar);
112 
115  public: Lidar(Lidar &&_lidar) noexcept;
116 
118  public: ~Lidar();
119 
123  public: Lidar &operator=(const Lidar &_lidar);
124 
128  public: Lidar &operator=(Lidar &&_lidar) noexcept;
129 
136  public: Errors Load(ElementPtr _sdf);
137 
142  public: sdf::ElementPtr Element() const;
143 
147  public: unsigned int HorizontalScanSamples() const;
148 
152  public: void SetHorizontalScanSamples(unsigned int _samples);
153 
156  public: double HorizontalScanResolution() const;
157 
160  public: void SetHorizontalScanResolution(double _res);
161 
164  public: ignition::math::Angle HorizontalScanMinAngle() const;
165 
168  public: void SetHorizontalScanMinAngle(const ignition::math::Angle &_min);
169 
172  public: ignition::math::Angle HorizontalScanMaxAngle() const;
173 
176  public: void SetHorizontalScanMaxAngle(const ignition::math::Angle &_max);
177 
181  public: unsigned int VerticalScanSamples() const;
182 
186  public: void SetVerticalScanSamples(unsigned int _samples);
187 
190  public: double VerticalScanResolution() const;
191 
194  public: void SetVerticalScanResolution(double _res);
195 
198  public: ignition::math::Angle VerticalScanMinAngle() const;
199 
202  public: void SetVerticalScanMinAngle(const ignition::math::Angle &_min);
203 
206  public: ignition::math::Angle VerticalScanMaxAngle() const;
207 
210  public: void SetVerticalScanMaxAngle(const ignition::math::Angle &_max);
211 
214  public: double RangeMin() const;
215 
218  public: void SetRangeMin(double _min);
219 
222  public: double RangeMax() const;
223 
226  public: void SetRangeMax(double _max);
227 
230  public: double RangeResolution() const;
231 
234  public: void SetRangeResolution(double _range);
235 
238  public: const Noise &LidarNoise() const;
239 
242  public: void SetLidarNoise(const Noise &_noise);
243 
247  public: bool operator==(const Lidar &_lidar) const;
248 
253  public: bool operator!=(const Lidar &_lidar) const;
254 
256  private: LidarPrivate *dataPtr;
257  };
258  }
259 }
260 #endif
Lidar contains information about a Lidar sensor.
Definition: Lidar.hh:105
void SetVerticalScanResolution(double _res)
Set the resolution for vertical scan.
void SetLidarNoise(const Noise &_noise)
\biref Set the noise values for the lidar sensor.
bool operator==(const Lidar &_lidar) const
Return true if both Lidar objects contain the same values.
~Lidar()
Destructor.
Lidar(Lidar &&_lidar) noexcept
Move constructor.
bool operator!=(const Lidar &_lidar) const
Return true this Lidar object does not contain the same values as the passed in parameter.
double RangeMin() const
Get minimum distance for each lidar ray.
void SetHorizontalScanMinAngle(const ignition::math::Angle &_min)
Set the minimum angle for horizontal scan.
void SetRangeResolution(double _range)
Set linear resolution of each lidar ray.
ignition::math::Angle VerticalScanMinAngle() const
Get the minimum angle for vertical scan.
double VerticalScanResolution() const
Get the resolution for vertical scan.
void SetVerticalScanSamples(unsigned int _samples)
Set the number of lidar rays vertically to generate per laser sweep.
Lidar & operator=(const Lidar &_lidar)
Assignment operator.
void SetVerticalScanMinAngle(const ignition::math::Angle &_min)
Set the minimum angle for vertical scan.
ignition::math::Angle VerticalScanMaxAngle() const
Get the maximum angle for vertical scan.
Errors Load(ElementPtr _sdf)
Load the lidar based on an element pointer.
Lidar(const Lidar &_lidar)
Copy constructor.
void SetRangeMax(double _max)
Set maximum distance for each lidar ray.
double RangeResolution() const
Get linear resolution of each lidar ray.
ignition::math::Angle HorizontalScanMaxAngle() const
Get the maximum angle for horizontal scan.
void SetHorizontalScanSamples(unsigned int _samples)
Set the number of lidar rays horizontally to generate per laser sweep.
void SetRangeMin(double _min)
Set minimum distance for each lidar ray.
double HorizontalScanResolution() const
Get the resolution for horizontal scan.
const Noise & LidarNoise() const
Get the noise values for the lidar sensor.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
Lidar & operator=(Lidar &&_lidar) noexcept
Move assignment operator.
unsigned int HorizontalScanSamples() const
Get the number of lidar rays horizontally to generate per laser sweep.
void SetHorizontalScanMaxAngle(const ignition::math::Angle &_max)
Set the maximum angle for horizontal scan.
ignition::math::Angle HorizontalScanMinAngle() const
Get the minimum angle for horizontal scan.
Lidar()
Default constructor.
void SetVerticalScanMaxAngle(const ignition::math::Angle &_max)
Set the maximum angle for vertical scan.
void SetHorizontalScanResolution(double _res)
Set the resolution for horizontal scan.
double RangeMax() const
Get maximum distance for each lidar ray.
unsigned int VerticalScanSamples() const
Get the number of lidar rays vertically to generate per laser sweep.
The Noise class contains information about a noise model, such as a Gaussian distribution.
Definition: Noise.hh:50
std::vector< Error > Errors
A vector of Error.
Definition: Types.hh:89
std::shared_ptr< Element > ElementPtr
Definition: Element.hh:53
namespace for Simulation Description Format parser
Definition: Actor.hh:33
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system_util.hh:48