Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 4118

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::hwdrivers::CKinect Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1hwdrivers.html">hwdrivers</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html">CKinect</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::hwdrivers::CKinect Class Reference<div class="ingroups"><a class="el" href="group__mrpt__hwdrivers__grp.html">[mrpt-hwdrivers]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::hwdrivers::CKinect" --><!-- doxytag: inherits="mrpt::hwdrivers::CGenericSensor" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A class for grabing "range images", intensity images (either RGB or IR) and other information from an Xbox Kinect sensor. </p>
<h2>Configuration and usage:</h2>
<hr/>
 Data is returned as observations of type <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">mrpt::slam::CObservation3DRangeScan</a> (and <a class="el" href="classmrpt_1_1slam_1_1_c_observation_i_m_u.html" title="This class stores measurements from an Inertial Measurement Unit (IMU), and/or its attitude estimatio...">mrpt::slam::CObservationIMU</a> for accelerometers data). See those classes for documentation on their fields.</p>
<p>As with any other <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a> class, the normal sequence of methods to be called is:</p>
<ul>
<li><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51" title="Loads the generic settings common to any sensor (See CGenericSensor), then call to &quot;loadConfig_sensor...">CGenericSensor::loadConfig()</a> - Or calls to the individual setXXX() to configure the sensor parameters.</li>
<li><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab369f01d9b65a53910442ae3da04bbcf" title="Initializes the 3D camera - should be invoked after calling loadConfig() or setting the different par...">CKinect::initialize()</a> - to start the communication with the sensor.</li>
<li>call <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8ce95421f624d03e4322c9bad0170ed6" title="The main data retrieving function, to be called after calling loadConfig() and initialize().">CKinect::getNextObservation()</a> for getting the data.</li>
</ul>
<h2>Calibration parameters</h2>
<hr/>
 For an accurate transformation of depth images to 3D points, you'll have to calibrate your Kinect, and supply the following <b>threee pieces of information</b> (default calibration data will be used otherwise, but they'll be not optimal for all sensors!):</p>
<ul>
<li>Camera parameters for the RGB camera. See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a2db89544977887da6c463f3569f3e918">CKinect::setCameraParamsIntensity()</a></li>
<li>Camera parameters for the depth camera. See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad6ef55027a212bb04134b72c0acbce72">CKinect::setCameraParamsDepth()</a></li>
<li>The 3D relative pose of the two cameras. See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a1f87648f5d0cf1233e5babce4876cda1" title="Set the pose of the intensity camera wrt the depth camera.">CKinect::setRelativePoseIntensityWrtDepth()</a></li>
</ul>
<h2>Coordinates convention</h2>
<hr/>
 The origin of coordinates is the focal point of the depth camera, with the axes oriented as in the diagram shown in <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">mrpt::slam::CObservation3DRangeScan</a>. Notice in that picture that the RGB camera is assumed to have axes as usual in computer vision, which differ from those for the depth camera.</p>
<p>The X,Y,Z axes used to report the data from accelerometers coincide with those of the depth camera (e.g. the camera standing on a table would have an ACC_Z=-9.8m/s2).</p>
<h2>Some general comments</h2>
<hr/>
<ul>
<li>Depth is grabbed in 10bit depth, and a range N it's converted to meters as: range(m) = 0.1236 * tan(N/2842.5 + 1.1863)</li>
<li>This sensor can be also used from within rawlog-grabber to grab datasets within a robot with more sensors.</li>
<li>There is no built-in threading support, so if you use this class manually (not with-in rawlog-grabber), the ideal would be to create a thread and continuously request data from that thread (see <a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">mrpt::system::createThread</a> ).</li>
<li>The intensity channel default to the RGB images, but it can be changed with <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a6f9ef0ed138921c22961bf0b433e74e8" title="Changes the video channel to open (RGB or IR) - you can call this method before start grabbing or in ...">setVideoChannel()</a> to read the IR camera images (useful for calibrating).</li>
<li>There is a built-in support for an optional preview of the data on a window, so you don't need to even worry on creating a window to show them.</li>
<li>This class relies on an embedded version of libfreenect (you do NOT need to install it in your system). Thanks guys for the great job!</li>
</ul>
<h2>Converting to 3D point cloud </h2>
<hr/>
 You can convert the 3D observation into a 3D point cloud with this piece of code:</p>
<div class="fragment"><pre class="fragment"> mrpt::slam::CObservation3DRangeScan  obs3D;
 mrpt::slam::CColouredPointsMap       pntsMap;
 pntsMap.<a class="code" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a42619e1609b2e7ffe0a23ef415f0ab23" title="The options employed when inserting laser scans in the map.">colorScheme</a>.scheme = CColouredPointsMap::cmFromIntensityImage;
 pntsMap.<a class="code" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a0d2dcc123271389f7bdb14b99364db22" title="See CPointsMap::loadFromRangeScan()">loadFromRangeScan</a>(obs3D);
</pre></div><p>Then the point cloud <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html" title="A map of 2D/3D points with individual colours (RGB).">mrpt::slam::CColouredPointsMap</a> can be converted into an OpenGL object for rendering with <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aca6f34ceb20942667a67cdd5723f87df" title="Returns a 3D object representing the map.">mrpt::slam::CMetricMap::getAs3DObject()</a> or alternatively with:</p>
<div class="fragment"><pre class="fragment">    mrpt::opengl::CPointCloudColouredPtr gl_points = <a class="code" href="classmrpt_1_1opengl_1_1_c_point_cloud_coloured.html#aaad62d1545ac3c22916b3c7862db124d">mrpt::opengl::CPointCloudColoured::Create</a>();
    gl_points-&gt;loadFromPointsMap(&amp;pntsMap);
</pre></div><h2>Raw depth to range conversion</h2>
<hr/>
 At construction, this class builds an internal array for converting raw 10 or 11bit depths into ranges in meters. Users can read that array or modify it (if you have a better calibration, for example) by calling <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a57b86e627c348d56ce5783d2dc2e1ba6" title="Get a reference to the array that convert raw depth values (10 or 11 bit) into ranges in meters...">CKinect::getRawDepth2RangeConversion()</a>. If you replace it, remember to set the first and last entries (index 0 and KINECT_RANGES_TABLE_LEN-1) to zero, to indicate that those are invalid ranges.</p>
<table  width="100%">
<tr>
<td align="center"><div class="image">
<img src="kinect_depth2range_10bit.png" alt="kinect_depth2range_10bit.png"/>
</div>
 <br/>
 R(d) = k3 * tan(d/k2 + k1); <br/>
 k1 = 1.1863, k2 = 2842.5, k3 = 0.1236 <br/>
  </td><td align="center"></td></tr>
</table>
<h2>Platform-specific comments</h2>
<hr/>
 For more details, refer to <a href="http://openkinect.org/wiki/Main_Page">libfreenect</a> documentation:</p>
<ul>
<li>Linux: You'll need root privileges to access Kinect. Or, install <code> MRPT/scripts/51-kinect.rules </code> in <code>/etc/udev/rules.d/</code> to allow access to all users.</li>
<li>Windows:<ul>
<li>Since MRPT 0.9.4 you'll only need to install <a href="http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/">libusb-win32</a>: download and extract the latest libusb-win32-bin-x.x.x.x.zip</li>
<li>To install the drivers, read this: <a href="http://openkinect.org/wiki/Getting_Started#Windows">http://openkinect.org/wiki/Getting_Started#Windows</a></li>
</ul>
</li>
<li>MacOS: (write me!)</li>
</ul>
<h2>Format of parameters for loading from a .ini file</h2>
<hr/>
<div class="fragment"><pre class="fragment">  PARAMETERS IN THE <span class="stringliteral">&quot;.INI&quot;</span>-LIKE CONFIGURATION STRINGS:
 -------------------------------------------------------
   [supplied_section_name]
    sensorLabel     = KINECT       <span class="comment">// A text description</span>
    preview_window  = <span class="keyword">false</span>        <span class="comment">// Show a window with a preview of the grabbed data in real-time</span>

    device_number   = 0           <span class="comment">// Device index to open (0:first Kinect, 1:second Kinect,...)</span>

    grab_image      = <span class="keyword">true</span>        <span class="comment">// Grab the RGB image channel? (Default=true)</span>
    grab_depth      = <span class="keyword">true</span>        <span class="comment">// Grab the depth channel? (Default=true)</span>
    grab_3D_points  = <span class="keyword">true</span>        <span class="comment">// Grab the 3D point cloud? (Default=true) If disabled, points can be generated later on.</span>
    grab_IMU        = <span class="keyword">true</span>        <span class="comment">// Grab the accelerometers? (Default=true)</span>

    video_channel   = <a class="code" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390aadf42c353d8897ca20a6c539bb18c92d0">VIDEO_CHANNEL_RGB</a> <span class="comment">// Optional. Can be: VIDEO_CHANNEL_RGB (default) or VIDEO_CHANNEL_IR</span>

    <span class="comment">// Calibration matrix of the RGB camera:</span>
    rgb_cx        = 328.9427     <span class="comment">// (cx,cy): Optical center, pixels</span>
    rgb_cy        = 267.4807
    rgb_fx        = 529.2151     <span class="comment">// (fx,fy): Focal distance, pixels</span>
    rgb_fy        = 525.5639

    <span class="comment">// Calibration matrix of the Depth camera:</span>
    d_cx          = 339.3078     <span class="comment">// (cx,cy): Optical center, pixels</span>
    d_cy          = 242.7391
    d_fx          = 594.2143     <span class="comment">// (fx,fy): Focal distance, pixels</span>
    d_fy          = 591.0405

    <span class="comment">// The relative pose of the RGB camera wrt the depth camera.</span>
    <span class="comment">//  (See mrpt::slam::CObservation3DRangeScan for a 3D diagram of this pose)</span>
    relativePoseIntensityWRTDepth  =  [0 -0.02 0 -90 0 -90]   <span class="comment">//  [x(m) y(m) z(m) yaw(deg) pitch(deg) roll(deg)]</span>

    pose_x=0    <span class="comment">// Camera position in the robot (meters)</span>
    pose_y=0
    pose_z=0
    pose_yaw=0  <span class="comment">// Angles in degrees</span>
    pose_pitch=0
    pose_roll=0
</pre></div><p>More references to read:</p>
<ul>
<li><a href="http://openkinect.org/wiki/Imaging_Information">http://openkinect.org/wiki/Imaging_Information</a></li>
<li><a href="http://nicolas.burrus.name/index.php/Research/KinectCalibration">http://nicolas.burrus.name/index.php/Research/KinectCalibration</a> </li>
</ul>
</div>
<p><code>#include &lt;<a class="el" href="_c_kinect_8h_source.html">mrpt/hwdrivers/CKinect.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::hwdrivers::CKinect:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1hwdrivers_1_1_c_kinect__inherit__graph.png" border="0" usemap="#mrpt_1_1hwdrivers_1_1_c_kinect_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1hwdrivers_1_1_c_kinect_inherit__map" id="mrpt_1_1hwdrivers_1_1_c_kinect_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide&#45;variety of sensors designed to be used in the application RawLogGrabbe..." alt="" coords="5,80,221,107"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_uncopiable.html" title="The base class of classes that cannot be copied: compile&#45;time errors will be issued on any copy opera..." alt="" coords="32,5,195,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1hwdrivers_1_1_c_kinect-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a> { <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390aadf42c353d8897ca20a6c539bb18c92d0">VIDEO_CHANNEL_RGB</a> = 0, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390aac892c5b59bbb9fff0208157828615474">VIDEO_CHANNEL_IR</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">RGB or IR video channel identifiers.  <a href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a> [KINECT_RANGES_TABLE_LEN]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A typedef for an array that converts raw depth to ranges in meters.  <a href="#a54c77e2a83c7563cc671098b0df60416"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> { <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44">ssInitializing</a> =  0, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489">ssWorking</a>, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262">ssError</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the sensor.  <a href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a><br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::pair<br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">TListObsPair</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ac5987d5d277856ed0ea1966d92c9c61b">CKinect</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default ctor.  <a href="#ac5987d5d277856ed0ea1966d92c9c61b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a6a23e3e037e16d4845faaa16a511b5c8">~CKinect</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default ctor.  <a href="#a6a23e3e037e16d4845faaa16a511b5c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab369f01d9b65a53910442ae3da04bbcf">initialize</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the 3D camera - should be invoked after calling <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51" title="Loads the generic settings common to any sensor (See CGenericSensor), then call to &quot;loadConfig_sensor...">loadConfig()</a> or setting the different parameters with the set*() methods.  <a href="#ab369f01d9b65a53910442ae3da04bbcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a507b5a2b8ea81eaf344b87e908d29cfa">doProcess</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">To be called at a high rate (&gt;XX Hz), this method populates the internal buffer of received observations.  <a href="#a507b5a2b8ea81eaf344b87e908d29cfa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8ce95421f624d03e4322c9bad0170ed6">getNextObservation</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html">mrpt::slam::CObservation3DRangeScan</a> &amp;out_obs, bool &amp;there_is_obs, bool &amp;hardware_error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The main data retrieving function, to be called after calling <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51" title="Loads the generic settings common to any sensor (See CGenericSensor), then call to &quot;loadConfig_sensor...">loadConfig()</a> and <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab369f01d9b65a53910442ae3da04bbcf" title="Initializes the 3D camera - should be invoked after calling loadConfig() or setting the different par...">initialize()</a>.  <a href="#a8ce95421f624d03e4322c9bad0170ed6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aded1e098a10524fd2ec9651af58fc2fa">getNextObservation</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html">mrpt::slam::CObservation3DRangeScan</a> &amp;out_obs, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_i_m_u.html">mrpt::slam::CObservationIMU</a> &amp;out_obs_imu, bool &amp;there_is_obs, bool &amp;hardware_error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  <a href="#aded1e098a10524fd2ec9651af58fc2fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#af1eb1294ff0693595f46c26ede24d115">setPathForExternalImages</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;directory)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the path where to save off-rawlog image files (this class DOES take into account this path).  <a href="#af1eb1294ff0693595f46c26ede24d115"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afbc26c93b989d1a0cc94c0c88d47cdba">GetRuntimeClass</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577">getState</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the sensor.  <a href="#a0bd667caedc6a313d96c232bf75ba577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a8a05c268aef7ecada94a0014a2b294f7">getProcessRate</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af3cd061ca684e7ddf5949ed78fced7c9">getSensorLabel</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a044c1340c4b90957250f63fa89189036">setSensorLabel</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;sensorLabel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51">loadConfig</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the generic settings common to any sensor (See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>), then call to "loadConfig_sensorSpecific" </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
 <a href="#a6f34c5b79a128d1cb6b47eaa987ecb51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a34b2a73792cbe176b28c932646bba0ed">getObservations</a> (<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a> &amp;lstObjects)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of enqueued objects, emptying it (thread-safe).  <a href="#a34b2a73792cbe176b28c932646bba0ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4b208b901763557196b9326901c582">setExternalImageFormat</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;ext)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg".  <a href="#aff4b208b901763557196b9326901c582"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aca05f7ee991ee112b5e9f8f289a9ee94">setExternalImageJPEGQuality</a> (const unsigned int quality)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The quality of JPEG compression, when external images is enabled and the format is "jpg".  <a href="#aca05f7ee991ee112b5e9f8f289a9ee94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a9d5aecec9f302feede271c9f1425a323">getExternalImageJPEGQuality</a> () const </td></tr>
<tr><td colspan="2"><div class="groupHeader">Sensor parameters (alternative to \a loadConfig ) and manual control</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aafc39b9461ff88a495de65da50003613">open</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to open the camera (set all the parameters before calling this) - users may also call <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab369f01d9b65a53910442ae3da04bbcf" title="Initializes the 3D camera - should be invoked after calling loadConfig() or setting the different par...">initialize()</a>, which in turn calls this method.  <a href="#aafc39b9461ff88a495de65da50003613"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ac787cfbbea8ef24cbc3a613bc17e61c2">isOpen</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether there is a working connection to the sensor.  <a href="#ac787cfbbea8ef24cbc3a613bc17e61c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a625655172d3a1d9397a6486ed483feb6">close</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the conection to the sensor (not need to call it manually unless desired for some reason, since it's called at destructor)  <a href="#a625655172d3a1d9397a6486ed483feb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a6f9ef0ed138921c22961bf0b433e74e8">setVideoChannel</a> (const <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a> vch)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the video channel to open (RGB or IR) - you can call this method before start grabbing or in the middle of streaming and the video source will change on the fly.  <a href="#a6f9ef0ed138921c22961bf0b433e74e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a03aafbb7308b3137088a4a95740cbe1f">getVideoChannel</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current video channel (RGB or IR)  <a href="#a03aafbb7308b3137088a4a95740cbe1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a7c936c1017b89fb098d73c135d605386">setDeviceIndexToOpen</a> (int index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the sensor index to open (if there're several sensors attached to the computer); default=0 -&gt; the first one.  <a href="#a7c936c1017b89fb098d73c135d605386"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a0bc421586ff2d46f664e9d78f687978d">getDeviceIndexToOpen</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a209f99d2c2797b2ae89021a40268b4d4">setTiltAngleDegrees</a> (double angle)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change tilt angle.  <a href="#a209f99d2c2797b2ae89021a40268b4d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a64230314c1c63d47983c26e0a8ff7473">getTiltAngleDegrees</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#afb4a2f3946fde368c40893d35804ef35">enablePreviewRGB</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default: disabled.  <a href="#afb4a2f3946fde368c40893d35804ef35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a34d1831141bb1f085f7c3fb9bc0ab10b">disablePreviewRGB</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a17b180585eb8b4da8477490c16cddb21">isPreviewRGBEnabled</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a20b9119f6744829fd791e3ed20370071">setPreviewDecimation</a> (size_t decimation_factor)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If preview is enabled, show only one image out of N (default: 1=show all)  <a href="#a20b9119f6744829fd791e3ed20370071"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#adbfc4fc39b5b591ebf6768d5a1301972">getPreviewDecimation</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a9931ed04a5577e198211a0786e77c25f">getMaxRange</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum range (meters) that can be read in the observation field "rangeImage".  <a href="#a9931ed04a5577e198211a0786e77c25f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a9211d27030c9fc90f5f1f5575a6f0776">getRowCount</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the row count in the camera images, loaded automatically upon camera <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aafc39b9461ff88a495de65da50003613" title="Try to open the camera (set all the parameters before calling this) - users may also call initialize(...">open()</a>.  <a href="#a9211d27030c9fc90f5f1f5575a6f0776"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a28bd6304e5034e5a2c3bb024dc6e5fb0">getColCount</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the col count in the camera images, loaded automatically upon camera <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aafc39b9461ff88a495de65da50003613" title="Try to open the camera (set all the parameters before calling this) - users may also call initialize(...">open()</a>.  <a href="#a28bd6304e5034e5a2c3bb024dc6e5fb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ae75de24d82f4ed14afe9979b70fad3e9">getCameraParamsIntensity</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a const reference to the depth camera calibration parameters.  <a href="#ae75de24d82f4ed14afe9979b70fad3e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a2db89544977887da6c463f3569f3e918">setCameraParamsIntensity</a> (const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a205923684f37a7745fd91e89efd89351">getCameraParamsDepth</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a const reference to the depth camera calibration parameters.  <a href="#a205923684f37a7745fd91e89efd89351"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad6ef55027a212bb04134b72c0acbce72">setCameraParamsDepth</a> (const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a1f87648f5d0cf1233e5babce4876cda1">setRelativePoseIntensityWrtDepth</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the pose of the intensity camera wrt the depth camera.  <a href="#a1f87648f5d0cf1233e5babce4876cda1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#af2b5925d03a151ad95301390ec457bac">getRelativePoseIntensityWrtDepth</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a57b86e627c348d56ce5783d2dc2e1ba6">getRawDepth2RangeConversion</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a reference to the array that convert raw depth values (10 or 11 bit) into ranges in meters, so it can be read or replaced by the user.  <a href="#a57b86e627c348d56ce5783d2dc2e1ba6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aedf5a517d6f7d614f0b161110570c8c9">getRawDepth2RangeConversion</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aafcf595a8b1439897ad8e422528e3d09">enableGrabRGB</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the grabbing of the RGB channel.  <a href="#aafcf595a8b1439897ad8e422528e3d09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a4a2f53372716cd22b66291d5dc8df2c8">isGrabRGBEnabled</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a735b1066b6fe2f140cf811eda4dc97a0">enableGrabDepth</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the grabbing of the depth channel.  <a href="#a735b1066b6fe2f140cf811eda4dc97a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8e4898431065739edf560b26071a5276">isGrabDepthEnabled</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a44d9cf9ca5a7b25a49d50e3aeccc83b4">enableGrabAccelerometers</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the grabbing of the inertial data.  <a href="#a44d9cf9ca5a7b25a49d50e3aeccc83b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#af0f2424fb809d8f6de282761164f744e">isGrabAccelerometersEnabled</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a012d095598a5f46005b6db54fcdfe382">enableGrab3DPoints</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the grabbing of the 3D point clouds.  <a href="#a012d095598a5f46005b6db54fcdfe382"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#abd5ebc00ad90ac894f8b0f2ea1a86db1">isGrab3DPointsEnabled</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a640e1b953865c3d2e881bbd2c1a81428">registerClass</a> (const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> *pNewClass)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a class into the internal list of "CGenericSensor" descendents.  <a href="#a640e1b953865c3d2e881bbd2c1a81428"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html">CGenericSensor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab652d017225fff3050a607f4461b0484">createSensor</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;className)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a sensor by a name of the class.  <a href="#ab652d017225fff3050a607f4461b0484"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4e4450e420bf60a2487ab0cff91907">createSensorPtr</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;className)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like createSensor, but returning a smart pointer to the newly created sensor object.  <a href="#aff4e4450e420bf60a2487ab0cff91907"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a6f3d7a6ff3902a1e1ec28892af3cd033">loadConfig_sensorSpecific</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method must throw an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
 <a href="#a6f3d7a6ff3902a1e1ec28892af3cd033"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9">appendObservations</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations.  <a href="#ad3a33098f257c379ee6bd1bca24e45f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a03bf6784838d6418f4fe485933a1ab0c">appendObservation</a> (const <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation.  <a href="#a03bf6784838d6418f4fe485933a1ab0c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab821f0a1106d8a117fef495a2743e786">m_sensorPoseOnRobot</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a1caedbb5f07d132110c9011ec098c179">m_preview_window</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Show preview window while grabbing.  <a href="#a1caedbb5f07d132110c9011ec098c179"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ae60f54e38c24410c991e7165c061ae38">m_preview_window_decimation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If preview is enabled, only show 1 out of N images.  <a href="#ae60f54e38c24410c991e7165c061ae38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8ec521637fb55910f1332ddb538860fe">m_preview_decim_counter_range</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a55e04a549198954c859bf503194cb211">m_preview_decim_counter_rgb</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1gui_1_1_c_display_window_ptr.html">mrpt::gui::CDisplayWindowPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a24f30e79e26c2ab81468b12e4269ecc6">m_win_range</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1gui_1_1_c_display_window_ptr.html">mrpt::gui::CDisplayWindowPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#abc1ba0943085a82439184c23ac325205">m_win_int</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aad2d81e60628dc7335dd8eca8607c016">m_cameraParamsRGB</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Params for the RGB camera.  <a href="#aad2d81e60628dc7335dd8eca8607c016"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a421c69ebba1c01d7b1cd2565e1fc8df7">m_cameraParamsDepth</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Params for the Depth camera.  <a href="#a421c69ebba1c01d7b1cd2565e1fc8df7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a1ee2e31ebc7c4011cb1d35a9c8bd7e52">m_relativePoseIntensityWRTDepth</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">mrpt::slam::CObservation3DRangeScan</a> for a diagram of this pose.  <a href="#a1ee2e31ebc7c4011cb1d35a9c8bd7e52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a765ee8a957bcf927f53dc2e8009ffeb5">m_maxRange</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sensor max range (meters)  <a href="#a765ee8a957bcf927f53dc2e8009ffeb5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a0ca3eda3dbc142b6207c8f0983bfa3c1">m_user_device_number</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of device to open (0:first,...)  <a href="#a0ca3eda3dbc142b6207c8f0983bfa3c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aed4ca676995d02ad5b8f9fe19b07fa7e">m_grab_image</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ac13d6de09289e43f771f66cda9dd0fdb">m_grab_depth</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a4da4474e39e8138a4604033b1c8bde44">m_grab_3D_points</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a71b072128812df63959dfbd69e2b0ce6">m_grab_IMU</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default: all true.  <a href="#a71b072128812df63959dfbd69e2b0ce6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a89d6a30f4832380cf9e4ba930707ae73">m_video_channel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The video channel to open: RGB or IR.  <a href="#a89d6a30f4832380cf9e4ba930707ae73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">m_grab_decimation_counter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when "m_grab_decimation" is enabled.  <a href="#a564a6c2bc7f1baaea9a9d90112a7b376"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">m_state</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">m_path_for_external_images</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The path where to save off-rawlog images: empty means save images embedded in the rawlog.  <a href="#a06fe84426b813b9c1966c12bb69e6ee6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">m_external_images_format</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The extension ("jpg","gif","png",...) that determines the format of images saved externally.  <a href="#a7d153c5247b0180b6b9df5054d67b183"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">m_external_images_jpeg_quality</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For JPEG images, the quality (default=95%).  <a href="#aeac331931fce4890793cd7f1b5f6eb3e"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Common settings to any sensor, loaded in "loadConfig"</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">m_process_rate</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a77094b791971e8f42b94de34f4adb0f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">m_max_queue_len</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a6f35448579bd4d27cd4f4685b31a8cc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">m_grab_decimation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to N&gt;=2, only 1 out of N observations will be saved to m_objList.  <a href="#a587daaab2cb302eb4cc72eb1396d5f21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">m_sensorLabel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#accd4de8daeb5966c191fbc62a5d90355"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a077d50207f793692a70a6d41b53299aa">calculate_range2meters</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute m_range2meters at construction.  <a href="#a077d50207f793692a70a6d41b53299aa"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a68d972ee012bfd105c3fa2b0306fd126">m_buf_depth</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad022fd188fc06d24a9149e40110bc5fd">m_buf_rgb</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Temporary buffers for image grabbing.  <a href="#ad022fd188fc06d24a9149e40110bc5fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a4817c955e16dd8a9689a55708cf6aaaa">m_range2meters</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The table raw depth -&gt; range in meters.  <a href="#a4817c955e16dd8a9689a55708cf6aaaa"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a54c77e2a83c7563cc671098b0df60416"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::TDepth2RangeArray" ref="a54c77e2a83c7563cc671098b0df60416" args="[KINECT_RANGES_TABLE_LEN]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef float <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">mrpt::hwdrivers::CKinect::TDepth2RangeArray</a>[KINECT_RANGES_TABLE_LEN]</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A typedef for an array that converts raw depth to ranges in meters. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00195">195</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="af237beee1de7f3e5733e305921695b30"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::TListObservations" ref="af237beee1de7f3e5733e305921695b30" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a>&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">mrpt::hwdrivers::CGenericSensor::TListObservations</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00084">84</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a78712e0c40c510978fb8589774056ab3"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::TListObsPair" ref="a78712e0c40c510978fb8589774056ab3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::pair&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">mrpt::hwdrivers::CGenericSensor::TListObsPair</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00085">85</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2cab"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::TSensorState" ref="a44262a8f1ffcc87871fbd717d3fc2cab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">mrpt::hwdrivers::CGenericSensor::TSensorState</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The current state of the sensor. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577" title="The current state of the sensor.">CGenericSensor::getState</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44"></a><!-- doxytag: member="ssInitializing" ref="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44" args="" -->ssInitializing</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489"></a><!-- doxytag: member="ssWorking" ref="a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489" args="" -->ssWorking</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262"></a><!-- doxytag: member="ssError" ref="a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262" args="" -->ssError</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00090">90</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad83963cdead59905e71abf13af44390a"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::TVideoChannel" ref="ad83963cdead59905e71abf13af44390a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">mrpt::hwdrivers::CKinect::TVideoChannel</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>RGB or IR video channel identifiers. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a6f9ef0ed138921c22961bf0b433e74e8" title="Changes the video channel to open (RGB or IR) - you can call this method before start grabbing or in ...">setVideoChannel</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ad83963cdead59905e71abf13af44390aadf42c353d8897ca20a6c539bb18c92d0"></a><!-- doxytag: member="VIDEO_CHANNEL_RGB" ref="ad83963cdead59905e71abf13af44390aadf42c353d8897ca20a6c539bb18c92d0" args="" -->VIDEO_CHANNEL_RGB</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ad83963cdead59905e71abf13af44390aac892c5b59bbb9fff0208157828615474"></a><!-- doxytag: member="VIDEO_CHANNEL_IR" ref="ad83963cdead59905e71abf13af44390aac892c5b59bbb9fff0208157828615474" args="" -->VIDEO_CHANNEL_IR</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00198">198</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac5987d5d277856ed0ea1966d92c9c61b"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::CKinect" ref="ac5987d5d277856ed0ea1966d92c9c61b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hwdrivers::CKinect::CKinect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default ctor. </p>

</div>
</div>
<a class="anchor" id="a6a23e3e037e16d4845faaa16a511b5c8"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::~CKinect" ref="a6a23e3e037e16d4845faaa16a511b5c8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hwdrivers::CKinect::~CKinect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default ctor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a03bf6784838d6418f4fe485933a1ab0c"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::appendObservation" ref="a03bf6784838d6418f4fe485933a1ab0c" args="(const mrpt::utils::CSerializablePtr &amp;obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::appendObservation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td><code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00155">155</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad3a33098f257c379ee6bd1bca24e45f9"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::appendObservations" ref="ad3a33098f257c379ee6bd1bca24e45f9" args="(const std::vector&lt; mrpt::utils::CSerializablePtr &gt; &amp;obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::appendObservations </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations. </p>
<p>Passed objects must be created in dynamic memory and a smart pointer passed. Example of creation: </p>
<div class="fragment"><pre class="fragment">                                CObservationGPSPtr  o = CObservationGPSPtr( <span class="keyword">new</span> CObservationGPS() );
                                o-&gt; .... <span class="comment">// Set data</span>
                                <a class="code" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a03bf6784838d6418f4fe485933a1ab0c" title="Like appendObservations() but for just one observation.">appendObservation</a>(o);
</pre></div><p> If several observations are passed at once in the vector, they'll be considered as a block regarding the grabbing decimation factor. </p>

</div>
</div>
<a class="anchor" id="a077d50207f793692a70a6d41b53299aa"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::calculate_range2meters" ref="a077d50207f793692a70a6d41b53299aa" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::calculate_range2meters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute m_range2meters at construction. </p>

</div>
</div>
<a class="anchor" id="a625655172d3a1d9397a6486ed483feb6"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::close" ref="a625655172d3a1d9397a6486ed483feb6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the conection to the sensor (not need to call it manually unless desired for some reason, since it's called at destructor) </p>

</div>
</div>
<a class="anchor" id="ab652d017225fff3050a607f4461b0484"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::createSensor" ref="ab652d017225fff3050a607f4461b0484" args="(const std::string &amp;className)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html">CGenericSensor</a>* mrpt::hwdrivers::CGenericSensor::createSensor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a sensor by a name of the class. </p>
<p>Typically the user may want to create a smart pointer around the returned pointer, whis is made with: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a> sensor = <a class="code" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a>( <a class="code" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab652d017225fff3050a607f4461b0484" title="Creates a sensor by a name of the class.">CGenericSensor::createSensor</a>(<span class="stringliteral">&quot;XXX&quot;</span>) );
</pre></div> <dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to a new class, or NULL if class name is unknown. </dd></dl>

</div>
</div>
<a class="anchor" id="aff4e4450e420bf60a2487ab0cff91907"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::createSensorPtr" ref="aff4e4450e420bf60a2487ab0cff91907" args="(const std::string &amp;className)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a> mrpt::hwdrivers::CGenericSensor::createSensorPtr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td><code> [inline, static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Just like createSensor, but returning a smart pointer to the newly created sensor object. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00188">188</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a34d1831141bb1f085f7c3fb9bc0ab10b"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::disablePreviewRGB" ref="a34d1831141bb1f085f7c3fb9bc0ab10b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::disablePreviewRGB </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00278">278</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a507b5a2b8ea81eaf344b87e908d29cfa"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::doProcess" ref="a507b5a2b8ea81eaf344b87e908d29cfa" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::hwdrivers::CKinect::doProcess </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>To be called at a high rate (&gt;XX Hz), this method populates the internal buffer of received observations. </p>
<p>This method is mainly intended for usage within rawlog-grabber or similar programs. For an alternative, see <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8ce95421f624d03e4322c9bad0170ed6" title="The main data retrieving function, to be called after calling loadConfig() and initialize().">getNextObservation()</a> </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method must throw an exception with a descriptive message if some critical error is found. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8ce95421f624d03e4322c9bad0170ed6" title="The main data retrieving function, to be called after calling loadConfig() and initialize().">getNextObservation</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a4f02ae5d7a345819f2521f72b633ab51">mrpt::hwdrivers::CGenericSensor</a>.</p>

</div>
</div>
<a class="anchor" id="a012d095598a5f46005b6db54fcdfe382"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::enableGrab3DPoints" ref="a012d095598a5f46005b6db54fcdfe382" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::enableGrab3DPoints </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable/disable the grabbing of the 3D point clouds. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00324">324</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a44d9cf9ca5a7b25a49d50e3aeccc83b4"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::enableGrabAccelerometers" ref="a44d9cf9ca5a7b25a49d50e3aeccc83b4" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::enableGrabAccelerometers </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable/disable the grabbing of the inertial data. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00320">320</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a735b1066b6fe2f140cf811eda4dc97a0"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::enableGrabDepth" ref="a735b1066b6fe2f140cf811eda4dc97a0" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::enableGrabDepth </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable/disable the grabbing of the depth channel. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00316">316</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="aafcf595a8b1439897ad8e422528e3d09"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::enableGrabRGB" ref="aafcf595a8b1439897ad8e422528e3d09" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::enableGrabRGB </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable/disable the grabbing of the RGB channel. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00312">312</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="afb4a2f3946fde368c40893d35804ef35"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::enablePreviewRGB" ref="afb4a2f3946fde368c40893d35804ef35" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::enablePreviewRGB </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default: disabled. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00277">277</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a205923684f37a7745fd91e89efd89351"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getCameraParamsDepth" ref="a205923684f37a7745fd91e89efd89351" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a>&amp; mrpt::hwdrivers::CKinect::getCameraParamsDepth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a const reference to the depth camera calibration parameters. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00298">298</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae75de24d82f4ed14afe9979b70fad3e9"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getCameraParamsIntensity" ref="ae75de24d82f4ed14afe9979b70fad3e9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a>&amp; mrpt::hwdrivers::CKinect::getCameraParamsIntensity </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a const reference to the depth camera calibration parameters. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00294">294</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a28bd6304e5034e5a2c3bb024dc6e5fb0"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getColCount" ref="a28bd6304e5034e5a2c3bb024dc6e5fb0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::hwdrivers::CKinect::getColCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the col count in the camera images, loaded automatically upon camera <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aafc39b9461ff88a495de65da50003613" title="Try to open the camera (set all the parameters before calling this) - users may also call initialize(...">open()</a>. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00291">291</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0bc421586ff2d46f664e9d78f687978d"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getDeviceIndexToOpen" ref="a0bc421586ff2d46f664e9d78f687978d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::hwdrivers::CKinect::getDeviceIndexToOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00270">270</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9d5aecec9f302feede271c9f1425a323"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getExternalImageJPEGQuality" ref="a9d5aecec9f302feede271c9f1425a323" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int mrpt::hwdrivers::CGenericSensor::getExternalImageJPEGQuality </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00241">241</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9931ed04a5577e198211a0786e77c25f"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getMaxRange" ref="a9931ed04a5577e198211a0786e77c25f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::hwdrivers::CKinect::getMaxRange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the maximum range (meters) that can be read in the observation field "rangeImage". </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00286">286</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8ce95421f624d03e4322c9bad0170ed6"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getNextObservation" ref="a8ce95421f624d03e4322c9bad0170ed6" args="(mrpt::slam::CObservation3DRangeScan &amp;out_obs, bool &amp;there_is_obs, bool &amp;hardware_error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::getNextObservation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html">mrpt::slam::CObservation3DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>out_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>there_is_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hardware_error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The main data retrieving function, to be called after calling <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51" title="Loads the generic settings common to any sensor (See CGenericSensor), then call to &quot;loadConfig_sensor...">loadConfig()</a> and <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab369f01d9b65a53910442ae3da04bbcf" title="Initializes the 3D camera - should be invoked after calling loadConfig() or setting the different par...">initialize()</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out_obs</td><td>The output retrieved observation (only if there_is_obs=true). </td></tr>
    <tr><td class="paramname">there_is_obs</td><td>If set to false, there was no new observation. </td></tr>
    <tr><td class="paramname">hardware_error</td><td>True on hardware/comms error.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a507b5a2b8ea81eaf344b87e908d29cfa" title="To be called at a high rate (&gt;XX Hz), this method populates the internal buffer of received observati...">doProcess</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aded1e098a10524fd2ec9651af58fc2fa"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getNextObservation" ref="aded1e098a10524fd2ec9651af58fc2fa" args="(mrpt::slam::CObservation3DRangeScan &amp;out_obs, mrpt::slam::CObservationIMU &amp;out_obs_imu, bool &amp;there_is_obs, bool &amp;hardware_error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::getNextObservation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html">mrpt::slam::CObservation3DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>out_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_i_m_u.html">mrpt::slam::CObservationIMU</a> &amp;&#160;</td>
          <td class="paramname"><em>out_obs_imu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>there_is_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hardware_error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This method also grabs data from the accelerometers, returning them in out_obs_imu </dd></dl>

</div>
</div>
<a class="anchor" id="a34b2a73792cbe176b28c932646bba0ed"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getObservations" ref="a34b2a73792cbe176b28c932646bba0ed" args="(TListObservations &amp;lstObjects)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::getObservations </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a> &amp;&#160;</td>
          <td class="paramname"><em>lstObjects</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a list of enqueued objects, emptying it (thread-safe). </p>
<p>The objects must be freed by the invoker. </p>

</div>
</div>
<a class="anchor" id="adbfc4fc39b5b591ebf6768d5a1301972"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getPreviewDecimation" ref="adbfc4fc39b5b591ebf6768d5a1301972" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::hwdrivers::CKinect::getPreviewDecimation </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00283">283</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8a05c268aef7ecada94a0014a2b294f7"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getProcessRate" ref="a8a05c268aef7ecada94a0014a2b294f7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::hwdrivers::CGenericSensor::getProcessRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00100">100</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a57b86e627c348d56ce5783d2dc2e1ba6"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getRawDepth2RangeConversion" ref="a57b86e627c348d56ce5783d2dc2e1ba6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a>&amp; mrpt::hwdrivers::CKinect::getRawDepth2RangeConversion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a reference to the array that convert raw depth values (10 or 11 bit) into ranges in meters, so it can be read or replaced by the user. </p>
<p>If you replace it, remember to set the first and last entries (index 0 and KINECT_RANGES_TABLE_LEN-1) to zero, to indicate that those are invalid ranges. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00308">308</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="aedf5a517d6f7d614f0b161110570c8c9"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getRawDepth2RangeConversion" ref="aedf5a517d6f7d614f0b161110570c8c9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a>&amp; mrpt::hwdrivers::CKinect::getRawDepth2RangeConversion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00309">309</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="af2b5925d03a151ad95301390ec457bac"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getRelativePoseIntensityWrtDepth" ref="af2b5925d03a151ad95301390ec457bac" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a>&amp; mrpt::hwdrivers::CKinect::getRelativePoseIntensityWrtDepth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00303">303</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9211d27030c9fc90f5f1f5575a6f0776"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getRowCount" ref="a9211d27030c9fc90f5f1f5575a6f0776" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::hwdrivers::CKinect::getRowCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the row count in the camera images, loaded automatically upon camera <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aafc39b9461ff88a495de65da50003613" title="Try to open the camera (set all the parameters before calling this) - users may also call initialize(...">open()</a>. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00289">289</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="afbc26c93b989d1a0cc94c0c88d47cdba"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::GetRuntimeClass" ref="afbc26c93b989d1a0cc94c0c88d47cdba" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a>* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af3cd061ca684e7ddf5949ed78fced7c9"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getSensorLabel" ref="af3cd061ca684e7ddf5949ed78fced7c9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::hwdrivers::CGenericSensor::getSensorLabel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00102">102</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0bd667caedc6a313d96c232bf75ba577"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getState" ref="a0bd667caedc6a313d96c232bf75ba577" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> mrpt::hwdrivers::CGenericSensor::getState </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The current state of the sensor. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00098">98</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a64230314c1c63d47983c26e0a8ff7473"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getTiltAngleDegrees" ref="a64230314c1c63d47983c26e0a8ff7473" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::hwdrivers::CKinect::getTiltAngleDegrees </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a03aafbb7308b3137088a4a95740cbe1f"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::getVideoChannel" ref="a03aafbb7308b3137088a4a95740cbe1f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a> mrpt::hwdrivers::CKinect::getVideoChannel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the current video channel (RGB or IR) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a6f9ef0ed138921c22961bf0b433e74e8" title="Changes the video channel to open (RGB or IR) - you can call this method before start grabbing or in ...">setVideoChannel</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00266">266</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab369f01d9b65a53910442ae3da04bbcf"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::initialize" ref="ab369f01d9b65a53910442ae3da04bbcf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::hwdrivers::CKinect::initialize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes the 3D camera - should be invoked after calling <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51" title="Loads the generic settings common to any sensor (See CGenericSensor), then call to &quot;loadConfig_sensor...">loadConfig()</a> or setting the different parameters with the set*() methods. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method must throw an exception with a descriptive message if some critical error is found. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a775782a8fef4c5cd11265024431ed8c3">mrpt::hwdrivers::CGenericSensor</a>.</p>

</div>
</div>
<a class="anchor" id="abd5ebc00ad90ac894f8b0f2ea1a86db1"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::isGrab3DPointsEnabled" ref="abd5ebc00ad90ac894f8b0f2ea1a86db1" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CKinect::isGrab3DPointsEnabled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00325">325</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="af0f2424fb809d8f6de282761164f744e"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::isGrabAccelerometersEnabled" ref="af0f2424fb809d8f6de282761164f744e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CKinect::isGrabAccelerometersEnabled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00321">321</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8e4898431065739edf560b26071a5276"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::isGrabDepthEnabled" ref="a8e4898431065739edf560b26071a5276" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CKinect::isGrabDepthEnabled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00317">317</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4a2f53372716cd22b66291d5dc8df2c8"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::isGrabRGBEnabled" ref="a4a2f53372716cd22b66291d5dc8df2c8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CKinect::isGrabRGBEnabled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00313">313</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac787cfbbea8ef24cbc3a613bc17e61c2"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::isOpen" ref="ac787cfbbea8ef24cbc3a613bc17e61c2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CKinect::isOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Whether there is a working connection to the sensor. </p>

</div>
</div>
<a class="anchor" id="a17b180585eb8b4da8477490c16cddb21"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::isPreviewRGBEnabled" ref="a17b180585eb8b4da8477490c16cddb21" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CKinect::isPreviewRGBEnabled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00279">279</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6f34c5b79a128d1cb6b47eaa987ecb51"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::loadConfig" ref="a6f34c5b79a128d1cb6b47eaa987ecb51" args="(const mrpt::utils::CConfigFileBase &amp;configSource, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::loadConfig </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>configSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads the generic settings common to any sensor (See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>), then call to "loadConfig_sensorSpecific" </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
</p>

</div>
</div>
<a class="anchor" id="a6f3d7a6ff3902a1e1ec28892af3cd033"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific" ref="a6f3d7a6ff3902a1e1ec28892af3cd033" args="(const mrpt::utils::CConfigFileBase &amp;configSource, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>configSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method must throw an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
</p>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ac867f9cb46c72b4386a5488f171f178f">mrpt::hwdrivers::CGenericSensor</a>.</p>

</div>
</div>
<a class="anchor" id="aafc39b9461ff88a495de65da50003613"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::open" ref="aafc39b9461ff88a495de65da50003613" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::open </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Try to open the camera (set all the parameters before calling this) - users may also call <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab369f01d9b65a53910442ae3da04bbcf" title="Initializes the 3D camera - should be invoked after calling loadConfig() or setting the different par...">initialize()</a>, which in turn calls this method. </p>
<p>Raises an exception upon error. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>A textual description of the error. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a640e1b953865c3d2e881bbd2c1a81428"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::registerClass" ref="a640e1b953865c3d2e881bbd2c1a81428" args="(const TSensorClassId *pNewClass)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::hwdrivers::CGenericSensor::registerClass </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> *&#160;</td>
          <td class="paramname"><em>pNewClass</em></td><td>)</td>
          <td><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Register a class into the internal list of "CGenericSensor" descendents. </p>
<p>Used internally in the macros DEFINE_GENERIC_SENSOR, etc...</p>
<p>Can be used as "CGenericSensor::registerClass( SENSOR_CLASS_ID(CMySensor) );" if building custom sensors outside mrpt libraries in user code. </p>

</div>
</div>
<a class="anchor" id="ad6ef55027a212bb04134b72c0acbce72"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setCameraParamsDepth" ref="ad6ef55027a212bb04134b72c0acbce72" args="(const mrpt::utils::TCamera &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setCameraParamsDepth </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00299">299</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2db89544977887da6c463f3569f3e918"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setCameraParamsIntensity" ref="a2db89544977887da6c463f3569f3e918" args="(const mrpt::utils::TCamera &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setCameraParamsIntensity </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00295">295</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7c936c1017b89fb098d73c135d605386"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setDeviceIndexToOpen" ref="a7c936c1017b89fb098d73c135d605386" args="(int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setDeviceIndexToOpen </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the sensor index to open (if there're several sensors attached to the computer); default=0 -&gt; the first one. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00269">269</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="aff4b208b901763557196b9326901c582"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setExternalImageFormat" ref="aff4b208b901763557196b9326901c582" args="(const std::string &amp;ext)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::setExternalImageFormat </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>ext</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d" title="Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not...">setPathForExternalImages</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aca05f7ee991ee112b5e9f8f289a9ee94" title="The quality of JPEG compression, when external images is enabled and the format is &quot;jpg&quot;...">setExternalImageJPEGQuality</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00233">233</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="aca05f7ee991ee112b5e9f8f289a9ee94"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setExternalImageJPEGQuality" ref="aca05f7ee991ee112b5e9f8f289a9ee94" args="(const unsigned int quality)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::setExternalImageJPEGQuality </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>quality</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The quality of JPEG compression, when external images is enabled and the format is "jpg". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4b208b901763557196b9326901c582" title="Set the extension (&quot;jpg&quot;,&quot;gif&quot;,&quot;png&quot;,...) that determines the format of images saved externally The d...">setExternalImageFormat</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00238">238</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="af1eb1294ff0693595f46c26ede24d115"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setPathForExternalImages" ref="af1eb1294ff0693595f46c26ede24d115" args="(const std::string &amp;directory)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::hwdrivers::CKinect::setPathForExternalImages </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>directory</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the path where to save off-rawlog image files (this class DOES take into account this path). </p>
<p>An empty string (the default value at construction) means to save images embedded in the rawlog, instead of on separate files. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the directory doesn't exists and cannot be created. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d">mrpt::hwdrivers::CGenericSensor</a>.</p>

</div>
</div>
<a class="anchor" id="a20b9119f6744829fd791e3ed20370071"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setPreviewDecimation" ref="a20b9119f6744829fd791e3ed20370071" args="(size_t decimation_factor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setPreviewDecimation </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>decimation_factor</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If preview is enabled, show only one image out of N (default: 1=show all) </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00282">282</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1f87648f5d0cf1233e5babce4876cda1"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setRelativePoseIntensityWrtDepth" ref="a1f87648f5d0cf1233e5babce4876cda1" args="(const mrpt::poses::CPose3D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setRelativePoseIntensityWrtDepth </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the pose of the intensity camera wrt the depth camera. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>See <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">mrpt::slam::CObservation3DRangeScan</a> for a 3D diagram of this pose </dd></dl>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00302">302</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a044c1340c4b90957250f63fa89189036"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setSensorLabel" ref="a044c1340c4b90957250f63fa89189036" args="(const std::string &amp;sensorLabel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::setSensorLabel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>sensorLabel</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00103">103</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a209f99d2c2797b2ae89021a40268b4d4"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setTiltAngleDegrees" ref="a209f99d2c2797b2ae89021a40268b4d4" args="(double angle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setTiltAngleDegrees </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>angle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change tilt angle. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Sensor must be open first. </dd></dl>

</div>
</div>
<a class="anchor" id="a6f9ef0ed138921c22961bf0b433e74e8"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::setVideoChannel" ref="a6f9ef0ed138921c22961bf0b433e74e8" args="(const TVideoChannel vch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CKinect::setVideoChannel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a>&#160;</td>
          <td class="paramname"><em>vch</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the video channel to open (RGB or IR) - you can call this method before start grabbing or in the middle of streaming and the video source will change on the fly. </p>
<p>Default is RGB channel. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a68d972ee012bfd105c3fa2b0306fd126"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_buf_depth" ref="a68d972ee012bfd105c3fa2b0306fd126" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;uint8_t&gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a68d972ee012bfd105c3fa2b0306fd126">mrpt::hwdrivers::CKinect::m_buf_depth</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00382">382</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad022fd188fc06d24a9149e40110bc5fd"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_buf_rgb" ref="ad022fd188fc06d24a9149e40110bc5fd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;uint8_t&gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad022fd188fc06d24a9149e40110bc5fd">mrpt::hwdrivers::CKinect::m_buf_rgb</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Temporary buffers for image grabbing. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00382">382</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a421c69ebba1c01d7b1cd2565e1fc8df7"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_cameraParamsDepth" ref="a421c69ebba1c01d7b1cd2565e1fc8df7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a421c69ebba1c01d7b1cd2565e1fc8df7">mrpt::hwdrivers::CKinect::m_cameraParamsDepth</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Params for the Depth camera. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00370">370</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="aad2d81e60628dc7335dd8eca8607c016"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_cameraParamsRGB" ref="aad2d81e60628dc7335dd8eca8607c016" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aad2d81e60628dc7335dd8eca8607c016">mrpt::hwdrivers::CKinect::m_cameraParamsRGB</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Params for the RGB camera. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00369">369</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7d153c5247b0180b6b9df5054d67b183"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_external_images_format" ref="a7d153c5247b0180b6b9df5054d67b183" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">mrpt::hwdrivers::CGenericSensor::m_external_images_format</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The extension ("jpg","gif","png",...) that determines the format of images saved externally. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d" title="Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not...">setPathForExternalImages</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00139">139</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="aeac331931fce4890793cd7f1b5f6eb3e"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_external_images_jpeg_quality" ref="aeac331931fce4890793cd7f1b5f6eb3e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For JPEG images, the quality (default=95%). </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00140">140</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4da4474e39e8138a4604033b1c8bde44"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_grab_3D_points" ref="a4da4474e39e8138a4604033b1c8bde44" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a4da4474e39e8138a4604033b1c8bde44">mrpt::hwdrivers::CKinect::m_grab_3D_points</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00377">377</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a587daaab2cb302eb4cc72eb1396d5f21"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_grab_decimation" ref="a587daaab2cb302eb4cc72eb1396d5f21" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">mrpt::hwdrivers::CGenericSensor::m_grab_decimation</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to N&gt;=2, only 1 out of N observations will be saved to m_objList. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00127">127</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a564a6c2bc7f1baaea9a9d90112a7b376"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_grab_decimation_counter" ref="a564a6c2bc7f1baaea9a9d90112a7b376" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used when "m_grab_decimation" is enabled. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00132">132</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac13d6de09289e43f771f66cda9dd0fdb"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_grab_depth" ref="ac13d6de09289e43f771f66cda9dd0fdb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ac13d6de09289e43f771f66cda9dd0fdb">mrpt::hwdrivers::CKinect::m_grab_depth</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00377">377</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="aed4ca676995d02ad5b8f9fe19b07fa7e"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_grab_image" ref="aed4ca676995d02ad5b8f9fe19b07fa7e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#aed4ca676995d02ad5b8f9fe19b07fa7e">mrpt::hwdrivers::CKinect::m_grab_image</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00377">377</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a71b072128812df63959dfbd69e2b0ce6"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_grab_IMU" ref="a71b072128812df63959dfbd69e2b0ce6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a71b072128812df63959dfbd69e2b0ce6">mrpt::hwdrivers::CKinect::m_grab_IMU</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default: all true. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00377">377</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6f35448579bd4d27cd4f4685b31a8cc0"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_max_queue_len" ref="a6f35448579bd4d27cd4f4685b31a8cc0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">mrpt::hwdrivers::CGenericSensor::m_max_queue_len</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00126">126</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a765ee8a957bcf927f53dc2e8009ffeb5"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_maxRange" ref="a765ee8a957bcf927f53dc2e8009ffeb5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a765ee8a957bcf927f53dc2e8009ffeb5">mrpt::hwdrivers::CKinect::m_maxRange</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sensor max range (meters) </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00373">373</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a06fe84426b813b9c1966c12bb69e6ee6"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_path_for_external_images" ref="a06fe84426b813b9c1966c12bb69e6ee6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">mrpt::hwdrivers::CGenericSensor::m_path_for_external_images</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The path where to save off-rawlog images: empty means save images embedded in the rawlog. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00138">138</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8ec521637fb55910f1332ddb538860fe"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_preview_decim_counter_range" ref="a8ec521637fb55910f1332ddb538860fe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a8ec521637fb55910f1332ddb538860fe">mrpt::hwdrivers::CKinect::m_preview_decim_counter_range</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00351">351</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a55e04a549198954c859bf503194cb211"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_preview_decim_counter_rgb" ref="a55e04a549198954c859bf503194cb211" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a55e04a549198954c859bf503194cb211">mrpt::hwdrivers::CKinect::m_preview_decim_counter_rgb</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00351">351</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1caedbb5f07d132110c9011ec098c179"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_preview_window" ref="a1caedbb5f07d132110c9011ec098c179" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a1caedbb5f07d132110c9011ec098c179">mrpt::hwdrivers::CKinect::m_preview_window</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Show preview window while grabbing. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00349">349</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae60f54e38c24410c991e7165c061ae38"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_preview_window_decimation" ref="ae60f54e38c24410c991e7165c061ae38" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ae60f54e38c24410c991e7165c061ae38">mrpt::hwdrivers::CKinect::m_preview_window_decimation</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If preview is enabled, only show 1 out of N images. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00350">350</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a77094b791971e8f42b94de34f4adb0f7"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_process_rate" ref="a77094b791971e8f42b94de34f4adb0f7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">mrpt::hwdrivers::CGenericSensor::m_process_rate</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00125">125</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4817c955e16dd8a9689a55708cf6aaaa"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_range2meters" ref="a4817c955e16dd8a9689a55708cf6aaaa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a54c77e2a83c7563cc671098b0df60416">TDepth2RangeArray</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a4817c955e16dd8a9689a55708cf6aaaa">mrpt::hwdrivers::CKinect::m_range2meters</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The table raw depth -&gt; range in meters. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00383">383</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1ee2e31ebc7c4011cb1d35a9c8bd7e52"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_relativePoseIntensityWRTDepth" ref="a1ee2e31ebc7c4011cb1d35a9c8bd7e52" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a1ee2e31ebc7c4011cb1d35a9c8bd7e52">mrpt::hwdrivers::CKinect::m_relativePoseIntensityWRTDepth</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">mrpt::slam::CObservation3DRangeScan</a> for a diagram of this pose. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00371">371</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="accd4de8daeb5966c191fbc62a5d90355"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_sensorLabel" ref="accd4de8daeb5966c191fbc62a5d90355" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">mrpt::hwdrivers::CGenericSensor::m_sensorLabel</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00128">128</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab821f0a1106d8a117fef495a2743e786"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_sensorPoseOnRobot" ref="ab821f0a1106d8a117fef495a2743e786" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ab821f0a1106d8a117fef495a2743e786">mrpt::hwdrivers::CKinect::m_sensorPoseOnRobot</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00347">347</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab3e8a003783acd03bfd64716640fd67c"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_state" ref="ab3e8a003783acd03bfd64716640fd67c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">mrpt::hwdrivers::CGenericSensor::m_state</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00134">134</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0ca3eda3dbc142b6207c8f0983bfa3c1"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_user_device_number" ref="a0ca3eda3dbc142b6207c8f0983bfa3c1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a0ca3eda3dbc142b6207c8f0983bfa3c1">mrpt::hwdrivers::CKinect::m_user_device_number</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Number of device to open (0:first,...) </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00375">375</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a89d6a30f4832380cf9e4ba930707ae73"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_video_channel" ref="a89d6a30f4832380cf9e4ba930707ae73" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#ad83963cdead59905e71abf13af44390a">TVideoChannel</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a89d6a30f4832380cf9e4ba930707ae73">mrpt::hwdrivers::CKinect::m_video_channel</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The video channel to open: RGB or IR. </p>

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00379">379</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="abc1ba0943085a82439184c23ac325205"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_win_int" ref="abc1ba0943085a82439184c23ac325205" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1gui_1_1_c_display_window_ptr.html">mrpt::gui::CDisplayWindowPtr</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#abc1ba0943085a82439184c23ac325205">mrpt::hwdrivers::CKinect::m_win_int</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00352">352</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
<a class="anchor" id="a24f30e79e26c2ab81468b12e4269ecc6"></a><!-- doxytag: member="mrpt::hwdrivers::CKinect::m_win_range" ref="a24f30e79e26c2ab81468b12e4269ecc6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1gui_1_1_c_display_window_ptr.html">mrpt::gui::CDisplayWindowPtr</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#a24f30e79e26c2ab81468b12e4269ecc6">mrpt::hwdrivers::CKinect::m_win_range</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_kinect_8h_source.html#l00352">352</a> of file <a class="el" href="_c_kinect_8h_source.html">CKinect.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>