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 using namespace ignition;
28 
29 namespace sdf
30 {
31  // Inline bracket to help doxygen filtering.
32  inline namespace SDF_VERSION_NAMESPACE {
33  //
34  class LidarPrivate;
35 
107  {
109  public: Lidar();
110 
113  public: Lidar(const Lidar &_lidar);
114 
117  public: Lidar(Lidar &&_lidar) noexcept;
118 
120  public: ~Lidar();
121 
125  public: Lidar &operator=(const Lidar &_lidar);
126 
130  public: Lidar &operator=(Lidar &&_lidar) noexcept;
131 
138  public: Errors Load(ElementPtr _sdf);
139 
144  public: sdf::ElementPtr Element() const;
145 
149  public: unsigned int HorizontalScanSamples() const;
150 
154  public: void SetHorizontalScanSamples(unsigned int _samples);
155 
158  public: double HorizontalScanResolution() const;
159 
162  public: void SetHorizontalScanResolution(double _res);
163 
166  public: math::Angle HorizontalScanMinAngle() const;
167 
170  public: void SetHorizontalScanMinAngle(const math::Angle &_min);
171 
174  public: math::Angle HorizontalScanMaxAngle() const;
175 
178  public: void SetHorizontalScanMaxAngle(const math::Angle &_max);
179 
183  public: unsigned int VerticalScanSamples() const;
184 
188  public: void SetVerticalScanSamples(unsigned int _samples);
189 
192  public: double VerticalScanResolution() const;
193 
196  public: void SetVerticalScanResolution(double _res);
197 
200  public: math::Angle VerticalScanMinAngle() const;
201 
204  public: void SetVerticalScanMinAngle(const math::Angle &_min);
205 
208  public: math::Angle VerticalScanMaxAngle() const;
209 
212  public: void SetVerticalScanMaxAngle(const math::Angle &_max);
213 
216  public: double RangeMin() const;
217 
220  public: void SetRangeMin(double _min);
221 
224  public: double RangeMax() const;
225 
228  public: void SetRangeMax(double _max);
229 
232  public: double RangeResolution() const;
233 
236  public: void SetRangeResolution(double _range);
237 
240  public: const Noise &LidarNoise() const;
241 
244  public: void SetLidarNoise(const Noise &_noise);
245 
249  public: bool operator==(const Lidar &_lidar) const;
250 
255  public: bool operator!=(const Lidar &_lidar) const;
256 
258  private: LidarPrivate *dataPtr;
259  };
260  }
261 }
262 #endif
class SDFORMAT_VISIBLE Element
Definition: Element.hh:47
The Noise class contains information about a noise model, such as a Gaussian distribution.
Definition: Noise.hh:49
std::shared_ptr< Element > ElementPtr
Definition: Element.hh:51
std::vector< Error > Errors
A vector of Error.
Definition: Types.hh:74
Lidar contains information about a Lidar sensor.
Definition: Lidar.hh:106
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system_util.hh:48
namespace for Simulation Description Format parser
Definition: AirPressure.hh:25