moveit2
The MoveIt Motion Planning Framework for ROS 2.
sensor_model.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2013, Willow Garage, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above
14  * copyright notice, this list of conditions and the following
15  * disclaimer in the documentation and/or other materials provided
16  * with the distribution.
17  * * Neither the name of Willow Garage nor the names of its
18  * contributors may be used to endorse or promote products derived
19  * from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  *********************************************************************/
34 
35 /* Author: Suat Gedikli */
36 
37 #pragma once
38 
40 #include <Eigen/Core> // for Vector3f
41 
42 namespace mesh_filter
43 {
44 // forward declarations
45 class GLRenderer;
46 
52 {
53 public:
54  MOVEIT_CLASS_FORWARD(Parameters); // Defines ParametersPtr, ConstPtr, WeakPtr... etc
55 
60  class Parameters
61  {
62  public:
70  Parameters(unsigned width, unsigned height, float near_clipping_plane_distance, float far_clipping_plane_distance);
71 
73  virtual ~Parameters();
74 
82  virtual void setRenderParameters(GLRenderer& renderer) const = 0;
83 
88  virtual void setFilterParameters(GLRenderer& renderer) const = 0;
89 
94  virtual Parameters* clone() const = 0;
95 
100  virtual const Eigen::Vector3f& getPaddingCoefficients() const = 0;
101 
106  virtual void transformModelDepthToMetricDepth(double* depth) const;
107 
112  virtual void transformFilteredDepthToMetricDepth(double* depth) const;
113 
119  void setImageSize(unsigned width, unsigned height);
120 
126  void setDepthRange(float near, float far);
127 
132  unsigned getWidth() const;
133 
138  unsigned getHeight() const;
139 
144  float getNearClippingPlaneDistance() const;
145 
150  float getFarClippingPlaneDistance() const;
151 
152  protected:
154  unsigned width_;
155 
157  unsigned height_;
158 
161 
164  };
165 
169  virtual ~SensorModel();
170 };
171 } // namespace mesh_filter
Abstracts the OpenGL frame buffer objects, and provides an interface to render meshes,...
Definition: gl_renderer.h:63
Abstract Interface defining Sensor Parameters.
Definition: sensor_model.h:61
float far_clipping_plane_distance_
distance of far clipping plane
Definition: sensor_model.h:160
void setDepthRange(float near, float far)
sets the clipping range
virtual const Eigen::Vector3f & getPaddingCoefficients() const =0
returns sensor dependent padding coefficients
float near_clipping_plane_distance_
distance of near clipping plane
Definition: sensor_model.h:163
virtual void transformModelDepthToMetricDepth(double *depth) const
transforms depth values from rendered model to metric depth values
virtual void transformFilteredDepthToMetricDepth(double *depth) const
transforms depth values from filtered depth to metric depth values
unsigned height_
height of depth maps generated by the sensor
Definition: sensor_model.h:157
void setImageSize(unsigned width, unsigned height)
sets the image size
unsigned getHeight() const
returns the height of depth maps
float getNearClippingPlaneDistance() const
returns distance to the near clipping plane
virtual ~Parameters()
virtual destructor
unsigned getWidth() const
returns the width of depth maps
virtual Parameters * clone() const =0
polymorphic clone method
unsigned width_
width of depth maps generated by the sensor
Definition: sensor_model.h:154
virtual void setRenderParameters(GLRenderer &renderer) const =0
method that sets required parameters for the renderer. Each sensor usually has its own shaders with s...
Parameters(unsigned width, unsigned height, float near_clipping_plane_distance, float far_clipping_plane_distance)
Constructor taking core parameters that are required for all sensors.
virtual void setFilterParameters(GLRenderer &renderer) const =0
sets the specific Filter Renderer parameters
float getFarClippingPlaneDistance() const
returns the distance to the far clipping plane
Abstract Interface defining a sensor model for mesh filtering.
Definition: sensor_model.h:52
virtual ~SensorModel()
virtual destructor
MOVEIT_CLASS_FORWARD(Parameters)