Camera.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_CAMERA_HH_
18#define SDF_CAMERA_HH_
19
20#include <string>
21#include <gz/math/Pose3.hh>
22#include <gz/utils/ImplPtr.hh>
23
24#include <sdf/Error.hh>
25#include <sdf/Element.hh>
26#include <sdf/Noise.hh>
27#include <sdf/sdf_config.h>
28
29namespace sdf
30{
31 // Inline bracket to help doxygen filtering.
32 inline namespace SDF_VERSION_NAMESPACE {
36 enum class PixelFormatType
37 {
39 L_INT8,
40 L_INT16,
57 };
58
61 {
63 public: Camera();
64
68 public: bool operator==(const Camera &_alt) const;
69
74 public: bool operator!=(const Camera &_alt) const;
75
82 public: Errors Load(ElementPtr _sdf);
83
86 public: std::string CameraInfoTopic() const;
87
90 public: void SetCameraInfoTopic(const std::string& _cameraInfoTopic);
91
96 public: sdf::ElementPtr Element() const;
97
100 public: std::string Name() const;
101
104 public: void SetName(const std::string &_name);
105
108 public: bool Triggered() const;
109
112 public: void SetTriggered(bool _triggered);
113
116 public: std::string TriggerTopic() const;
117
120 public: void SetTriggerTopic(const std::string &_triggerTopic);
121
124 public: gz::math::Angle HorizontalFov() const;
125
128 public: void SetHorizontalFov(const gz::math::Angle &_hfov);
129
132 public: uint32_t ImageWidth() const;
133
136 public: void SetImageWidth(uint32_t _width);
137
140 public: uint32_t ImageHeight() const;
141
144 public: void SetImageHeight(uint32_t _height);
145
150
153 public: void SetPixelFormat(PixelFormatType _format);
154
157 public: std::string PixelFormatStr() const;
158
161 public: void SetPixelFormatStr(const std::string &_fmt);
162
165 public: uint32_t AntiAliasingValue() const;
166
169 public: void SetAntiAliasingValue(uint32_t _antiAliasingValue);
170
173 public: double DepthNearClip() const;
174
177 public: void SetDepthNearClip(double _near);
178
181 public: double DepthFarClip() const;
182
185 public: void SetDepthFarClip(double _far);
186
189 public: double NearClip() const;
190
193 public: void SetNearClip(double _near);
194
197 public: void SetHasDepthCamera(bool _camera);
198
201 public: bool HasDepthCamera() const;
202
207 public: void SetHasDepthNearClip(bool _near);
208
211 public: bool HasDepthNearClip() const;
212
217 public: void SetHasDepthFarClip(bool _far);
218
221 public: bool HasDepthFarClip() const;
222
225 public: double FarClip() const;
226
229 public: void SetFarClip(double _far);
230
234 public: void SetHasSegmentationType(bool _type);
235
238 public: bool HasSegmentationType() const;
239
242 public: const std::string &SegmentationType() const;
243
246 public: void SetSegmentationType(const std::string &_type);
247
251 public: void SetHasBoundingBoxType(bool _type);
252
255 public: bool HasBoundingBoxType() const;
256
259 public: const std::string &BoundingBoxType() const;
260
263 public: void SetBoundingBoxType(const std::string &_type);
264
267 public: bool SaveFrames() const;
268
271 public: void SetSaveFrames(bool _save);
272
275 public: const std::string &SaveFramesPath() const;
276
279 public: void SetSaveFramesPath(const std::string &_path);
280
283 public: const Noise &ImageNoise() const;
284
287 public: void SetImageNoise(const Noise &_noise);
288
291 public: double DistortionK1() const;
292
295 public: void SetDistortionK1(double _k1);
296
299 public: double DistortionK2() const;
300
303 public: void SetDistortionK2(double _k2);
304
307 public: double DistortionK3() const;
308
311 public: void SetDistortionK3(double _k3);
312
315 public: double DistortionP1() const;
316
319 public: void SetDistortionP1(double _p1);
320
323 public: double DistortionP2() const;
324
327 public: void SetDistortionP2(double _p2);
328
331 public: const gz::math::Vector2d &DistortionCenter() const;
332
335 public: void SetDistortionCenter(const gz::math::Vector2d &_center);
336
340 public: const gz::math::Pose3d &RawPose() const;
341
345 public: void SetRawPose(const gz::math::Pose3d &_pose);
346
351 public: const std::string &PoseRelativeTo() const;
352
357 public: void SetPoseRelativeTo(const std::string &_frame);
358
366 public: const std::string OpticalFrameId() const;
367
371 public: void SetOpticalFrameId(const std::string &_frame);
372
379 public: std::string LensType() const;
380
384 public: void SetLensType(const std::string &_type);
385
389 public: bool LensScaleToHfov() const;
390
394 public: void SetLensScaleToHfov(bool _scale);
395
398 public: double LensC1() const;
399
402 public: void SetLensC1(double _c1);
403
406 public: double LensC2() const;
407
410 public: void SetLensC2(double _c2);
411
414 public: double LensC3() const;
415
418 public: void SetLensC3(double _c3);
419
422 public: double LensFocalLength() const;
423
426 public: void SetLensFocalLength(double _f);
427
431 public: const std::string &LensFunction() const;
432
436 public: void SetLensFunction(const std::string &_fun);
437
441 public: gz::math::Angle LensCutoffAngle() const;
442
446 public: void SetLensCutoffAngle(const gz::math::Angle &_angle);
447
451 public: int LensEnvironmentTextureSize() const;
452
456 public: void SetLensEnvironmentTextureSize(int _size);
457
460 public: double LensIntrinsicsFx() const;
461
464 public: void SetLensIntrinsicsFx(double _fx);
465
468 public: double LensIntrinsicsFy() const;
469
472 public: void SetLensIntrinsicsFy(double _fy);
473
476 public: double LensIntrinsicsCx() const;
477
480 public: void SetLensIntrinsicsCx(double _cx);
481
484 public: double LensIntrinsicsCy() const;
485
488 public: void SetLensIntrinsicsCy(double _cy);
489
492 public: double LensProjectionFx() const;
493
496 public: void SetLensProjectionFx(double _fx_p);
497
500 public: double LensProjectionFy() const;
501
504 public: void SetLensProjectionFy(double _fy_p);
505
508 public: double LensProjectionCx() const;
509
512 public: void SetLensProjectionCx(double _cx_p);
513
516 public: double LensProjectionCy() const;
517
520 public: void SetLensProjectionCy(double _cy_p);
521
524 public: double LensProjectionTx() const;
525
528 public: void SetLensProjectionTx(double _tx);
529
532 public: double LensProjectionTy() const;
533
536 public: void SetLensProjectionTy(double _ty);
537
540 public: double LensIntrinsicsSkew() const;
541
544 public: void SetLensIntrinsicsSkew(double _s);
545
550 const std::string &_format);
551
555 public: static std::string ConvertPixelFormat(PixelFormatType _type);
556
559 public: uint32_t VisibilityMask() const;
560
563 public: void SetVisibilityMask(uint32_t _mask);
564
567 public: bool HasLensIntrinsics() const;
568
571 public: bool HasLensProjection() const;
572
578 public: sdf::ElementPtr ToElement() const;
579
581 GZ_UTILS_IMPL_PTR(dataPtr)
582 };
583 }
584}
585
586#endif
Information about a monocular camera sensor.
Definition: Camera.hh:61
bool HasDepthFarClip() const
Get whether the depth camera far clip distance was set.
double DistortionK1() const
Get the radial distortion coefficient k1.
double LensC1() const
Get lens custom function linear scaling constant.
double DepthFarClip() const
Get the far clip distance for the depth camera.
const gz::math::Vector2d & DistortionCenter() const
Get the distortion center or principal point.
void SetTriggered(bool _triggered)
Set whether the camera should be triggered by a topic.
void SetBoundingBoxType(const std::string &_type)
Set the boundingbox type.
void SetHasDepthCamera(bool _camera)
Set whether the depth camera has been specified.
uint32_t VisibilityMask() const
Get the visibility mask of a camera.
uint32_t ImageHeight() const
Get the image height in pixels.
void SetDistortionP1(double _p1)
Set the tangential distortion coefficient p1.
void SetSaveFrames(bool _save)
Set whether frames should be saved.
void SetHasDepthFarClip(bool _far)
Set whether the depth camera far clip distance has been specified.
static std::string ConvertPixelFormat(PixelFormatType _type)
Convert a PixelFormatType to a string.
void SetLensC3(double _c3)
Set lens custom function angle offset constant.
const gz::math::Pose3d & RawPose() const
Get the pose of the camer.
void SetFarClip(double _far)
Set the far clip distance.
bool SaveFrames() const
Get whether frames should be saved.
void SetLensProjectionFx(double _fx_p)
Set the lens projection matrix X focal length in pixels.
void SetDepthNearClip(double _near)
Set the near clip distance for the depth camera.
void SetImageWidth(uint32_t _width)
Set the image width in pixels.
void SetLensFocalLength(double _f)
Set lens custom function focal length.
void SetDepthFarClip(double _far)
Set the far clip distance for the depth camera.
PixelFormatType PixelFormat() const
Get the pixel format.
void SetLensEnvironmentTextureSize(int _size)
Set environment texture size.
void SetAntiAliasingValue(uint32_t _antiAliasingValue)
Set the anti-aliasing value.
gz::math::Angle HorizontalFov() const
Get the horizontal field of view in radians.
const std::string & PoseRelativeTo() const
Get the name of the coordinate frame relative to which this object's pose is expressed.
double DistortionP2() const
Get the tangential distortion coefficient p2.
void SetHasSegmentationType(bool _type)
Set whether the segmentation type has been specified.
double LensFocalLength() const
Get lens custom function focal length.
void SetSegmentationType(const std::string &_type)
Set the segmentation type.
void SetName(const std::string &_name)
Set the name of the camera.
static PixelFormatType ConvertPixelFormat(const std::string &_format)
Convert a string to a PixelFormatType.
void SetLensProjectionFy(double _fy_p)
Set the lens projection matrix Y focal length in pixels.
void SetLensProjectionTx(double _tx)
Set the lens projection matrix X translation in pixels.
void SetDistortionK1(double _k1)
Set the radial distortion coefficient k1.
double LensProjectionFx() const
Get the lens projection matrix X focal length in pixels.
double DistortionK3() const
Get the radial distortion coefficient k3.
double LensProjectionFy() const
Get the lens projection matrix Y focal length in pixels.
std::string PixelFormatStr() const
Get the pixel format as a string.
bool HasDepthCamera() const
Get whether the depth camera was set.
void SetLensIntrinsicsFx(double _fx)
Set the lens intrinsic matrix X focal length in pixels.
const std::string OpticalFrameId() const
Get the name of the coordinate frame relative to which this object's camera_info message header is ex...
void SetLensIntrinsicsSkew(double _s)
Set the lens XY axis skew.
int LensEnvironmentTextureSize() const
Get environment texture size.
double DistortionK2() const
Get the radial distortion coefficient k2.
void SetLensScaleToHfov(bool _scale)
Set lens scale to horizontal field of field.
void SetPixelFormat(PixelFormatType _format)
Set the pixel format type.
void SetSaveFramesPath(const std::string &_path)
Set the path in which to save frames.
void SetOpticalFrameId(const std::string &_frame)
Set the name of the coordinate frame relative to which this object's camera_info is expressed.
void SetDistortionP2(double _p2)
Set the tangential distortion coefficient p2.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
double LensIntrinsicsFy() const
Get the lens intrinsic matrix Y focal length in pixels.
const std::string & SegmentationType() const
Get the segmentation type.
void SetImageNoise(const Noise &_noise)
Set the noise values related to the image.
double FarClip() const
Get the far clip distance.
void SetImageHeight(uint32_t _height)
Set the image height in pixels.
bool Triggered() const
Get whether the camera is triggered by a topic.
void SetRawPose(const gz::math::Pose3d &_pose)
Set the pose of the camera.
double LensIntrinsicsFx() const
Get the lens intrinsic matrix X focal length in pixels.
double LensProjectionTx() const
Get the lens projection matrix X translation in pixels.
bool HasBoundingBoxType() const
Get whether the boundingbox type was set.
double NearClip() const
Get the near clip distance.
void SetDistortionK2(double _k2)
Set the radial distortion coefficient k2.
uint32_t ImageWidth() const
Get the image width in pixels.
void SetPixelFormatStr(const std::string &_fmt)
Set the pixel format from a string.
bool HasLensProjection() const
Get whether or not the camera has projection values set.
bool LensScaleToHfov() const
Get lens scale to horizontal field of field.
const std::string & SaveFramesPath() const
Get the path in which to save frames.
double LensIntrinsicsCx() const
Get the lens intrinsic matrix X principal point in pixels.
double LensC3() const
Get lens custom function angle offset constant.
const std::string & BoundingBoxType() const
Get the boundingbox type.
double DepthNearClip() const
Get the near clip distance for the depth camera.
std::string Name() const
Get the name of the camera.
bool HasLensIntrinsics() const
Get whether or not the camera has instrinsics values set.
bool HasDepthNearClip() const
Get whether the depth camera near clip distance was set.
void SetLensCutoffAngle(const gz::math::Angle &_angle)
Set lens cutoff angle.
std::string TriggerTopic() const
Get the topic that will trigger the camera.
void SetLensProjectionTy(double _ty)
Set the lens projection matrix Y translation in pixels.
double LensProjectionCy() const
Get the lens projection matrix Y principal point in pixels.
void SetPoseRelativeTo(const std::string &_frame)
Set the name of the coordinate frame relative to which this object's pose is expressed.
void SetLensIntrinsicsFy(double _fy)
Set the lens intrinsic matrix Y focal length in pixels.
bool operator!=(const Camera &_alt) const
Return true this Camera object does not contain the same values as the passed in parameter.
uint32_t AntiAliasingValue() const
Get the anti-aliasing value.
const Noise & ImageNoise() const
Get the image noise values.
void SetLensIntrinsicsCy(double _cy)
Set the lens intrinsic matrix Y principal point in pixels.
void SetLensC1(double _c1)
Set lens custom function linear scaling constant.
Errors Load(ElementPtr _sdf)
Load the camera sensor based on an element pointer.
void SetLensIntrinsicsCx(double _cx)
Set the lens intrinsic matrix X principal point in pixels.
void SetLensType(const std::string &_type)
Set the lens type.
double LensIntrinsicsCy() const
Get the lens intrinsic matrix Y principal point in pixels.
sdf::ElementPtr ToElement() const
Create and return an SDF element filled with data from this camera.
double LensIntrinsicsSkew() const
Get the lens XY axis skew.
void SetDistortionK3(double _k3)
Set the radial distortion coefficient k3.
std::string LensType() const
Get the lens type.
void SetHasDepthNearClip(bool _near)
Set whether the depth camera near clip distance has been specified.
void SetDistortionCenter(const gz::math::Vector2d &_center)
Set the distortion center or principal point.
std::string CameraInfoTopic() const
Get the camera info topic.
void SetNearClip(double _near)
Set the near clip distance.
void SetLensC2(double _c2)
Set lens custom function angular scaling constant.
void SetLensProjectionCx(double _cx_p)
Set the lens projection matrix X principal point in pixels.
gz::math::Angle LensCutoffAngle() const
Get lens cutoff angle.
bool HasSegmentationType() const
Get whether the segmentation type was set.
void SetLensProjectionCy(double _cy_p)
Set the lens projection matrix Y principal point in pixels.
double LensProjectionCx() const
Get the lens projection matrix X principal point in pixels.
void SetCameraInfoTopic(const std::string &_cameraInfoTopic)
Set the camera info topic.
void SetHorizontalFov(const gz::math::Angle &_hfov)
Set the horizontal field of view in radians.
double LensC2() const
Get lens custom function angular scaling constant.
void SetLensFunction(const std::string &_fun)
Set lens custom function.
void SetHasBoundingBoxType(bool _type)
Set whether the boundingbox type has been specified.
double DistortionP1() const
Get the tangential distortion coefficient p1.
const std::string & LensFunction() const
Get lens custom function.
void SetVisibilityMask(uint32_t _mask)
Set the visibility mask of a camera.
bool operator==(const Camera &_alt) const
Return true if both Camera objects contain the same values.
double LensProjectionTy() const
Get the lens projection matrix Y translation in pixels.
void SetTriggerTopic(const std::string &_triggerTopic)
Set the topic that will trigger the camera.
The Noise class contains information about a noise model, such as a Gaussian distribution.
Definition: Noise.hh:48
PixelFormatType
The set of pixel formats.
Definition: Camera.hh:37
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