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 <gz/math/Angle.hh>
21 #include <gz/utils/ImplPtr.hh>
22 
23 #include <sdf/Error.hh>
24 #include <sdf/Element.hh>
25 #include <sdf/Noise.hh>
26 #include <sdf/sdf_config.h>
27 
28 
29 namespace sdf
30 {
31  // Inline bracket to help doxygen filtering.
32  inline namespace SDF_VERSION_NAMESPACE {
33  //
34 
106  {
108  public: Lidar();
109 
116  public: Errors Load(ElementPtr _sdf);
117 
122  public: sdf::ElementPtr Element() const;
123 
127  public: unsigned int HorizontalScanSamples() const;
128 
132  public: void SetHorizontalScanSamples(unsigned int _samples);
133 
136  public: double HorizontalScanResolution() const;
137 
140  public: void SetHorizontalScanResolution(double _res);
141 
144  public: gz::math::Angle HorizontalScanMinAngle() const;
145 
148  public: void SetHorizontalScanMinAngle(const gz::math::Angle &_min);
149 
152  public: gz::math::Angle HorizontalScanMaxAngle() const;
153 
156  public: void SetHorizontalScanMaxAngle(const gz::math::Angle &_max);
157 
161  public: unsigned int VerticalScanSamples() const;
162 
166  public: void SetVerticalScanSamples(unsigned int _samples);
167 
170  public: double VerticalScanResolution() const;
171 
174  public: void SetVerticalScanResolution(double _res);
175 
178  public: gz::math::Angle VerticalScanMinAngle() const;
179 
182  public: void SetVerticalScanMinAngle(const gz::math::Angle &_min);
183 
186  public: gz::math::Angle VerticalScanMaxAngle() const;
187 
190  public: void SetVerticalScanMaxAngle(const gz::math::Angle &_max);
191 
194  public: double RangeMin() const;
195 
198  public: void SetRangeMin(double _min);
199 
202  public: double RangeMax() const;
203 
206  public: void SetRangeMax(double _max);
207 
210  public: double RangeResolution() const;
211 
214  public: void SetRangeResolution(double _range);
215 
218  public: const Noise &LidarNoise() const;
219 
222  public: void SetLidarNoise(const Noise &_noise);
223 
226  public: uint32_t VisibilityMask() const;
227 
230  public: void SetVisibilityMask(uint32_t _mask);
231 
235  public: bool operator==(const Lidar &_lidar) const;
236 
241  public: bool operator!=(const Lidar &_lidar) const;
242 
248  public: sdf::ElementPtr ToElement() const;
249 
251  GZ_UTILS_IMPL_PTR(dataPtr)
252  };
253  }
254 }
255 #endif
Lidar contains information about a Lidar sensor.
Definition: Lidar.hh:106
gz::math::Angle VerticalScanMaxAngle() const
Get the maximum angle for vertical scan.
void SetRangeResolution(double _range)
Set linear resolution of each lidar ray.
void SetHorizontalScanMaxAngle(const gz::math::Angle &_max)
Set the maximum angle for horizontal scan.
double RangeMax() const
Get maximum distance for each lidar ray.
void SetHorizontalScanResolution(double _res)
Set the resolution for horizontal scan.
void SetHorizontalScanSamples(unsigned int _samples)
Set the number of lidar rays horizontally to generate per laser sweep.
void SetVerticalScanMaxAngle(const gz::math::Angle &_max)
Set the maximum angle for vertical scan.
void SetVerticalScanSamples(unsigned int _samples)
Set the number of lidar rays vertically to generate per laser sweep.
gz::math::Angle HorizontalScanMaxAngle() const
Get the maximum angle for horizontal scan.
void SetVerticalScanResolution(double _res)
Set the resolution for vertical scan.
gz::math::Angle VerticalScanMinAngle() const
Get the minimum angle for vertical scan.
unsigned int VerticalScanSamples() const
Get the number of lidar rays vertically to generate per laser sweep.
double RangeResolution() const
Get linear resolution of each lidar ray.
void SetLidarNoise(const Noise &_noise)
\biref Set the noise values for the lidar sensor.
double HorizontalScanResolution() const
Get the resolution for horizontal scan.
void SetRangeMin(double _min)
Set minimum distance for each lidar ray.
uint32_t VisibilityMask() const
Get the visibility mask of a lidar.
void SetVisibilityMask(uint32_t _mask)
Set the visibility mask of a lidar.
gz::math::Angle HorizontalScanMinAngle() const
Get the minimum angle for horizontal scan.
double VerticalScanResolution() const
Get the resolution for vertical scan.
sdf::ElementPtr ToElement() const
Create and return an SDF element filled with data from this lidar.
bool operator==(const Lidar &_lidar) const
Return true if both Lidar objects contain the same values.
unsigned int HorizontalScanSamples() const
Get the number of lidar rays horizontally to generate per laser sweep.
double RangeMin() const
Get minimum distance for each lidar ray.
bool operator!=(const Lidar &_lidar) const
Return true this Lidar object does not contain the same values as the passed in parameter.
void SetVerticalScanMinAngle(const gz::math::Angle &_min)
Set the minimum angle for vertical scan.
void SetRangeMax(double _max)
Set maximum distance for each lidar ray.
void SetHorizontalScanMinAngle(const gz::math::Angle &_min)
Set the minimum angle for horizontal scan.
const Noise & LidarNoise() const
Get the noise values for the lidar sensor.
Errors Load(ElementPtr _sdf)
Load the lidar based on an element pointer.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
Lidar()
Default constructor.
The Noise class contains information about a noise model, such as a Gaussian distribution.
Definition: Noise.hh:48
std::vector< Error > Errors
A vector of Error.
Definition: Types.hh:95
std::shared_ptr< Element > ElementPtr
Definition: Element.hh:55
namespace for Simulation Description Format parser
Definition: Actor.hh:35
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system_util.hh:25