Skip to content

Commit

Permalink
[bot] update built doc
Browse files Browse the repository at this point in the history
  • Loading branch information
ifm-csr committed Aug 23, 2024
1 parent 2c11882 commit 60babf1
Show file tree
Hide file tree
Showing 21 changed files with 68 additions and 90 deletions.
8 changes: 4 additions & 4 deletions v1.4.32/ODS/Configuration/configuration.html
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ <h1>Configuration<a class="headerlink" href="#configuration" title="Link to this
<td><p>Providing a custom name for the ODS application</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ports</span></code></p></td>
<td><p>The ports that can be used by the application (camera heads and IMU)</p></td>
<td><p>The ports that can be used by the application (camera heads and <code class="docutils literal notranslate"><span class="pre">IMU</span></code>)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">state</span></code></p></td>
<td><p>The current app state and dependent camera hardware sates - “RUN” or “CONF”</p></td>
Expand All @@ -159,7 +159,7 @@ <h1>Configuration<a class="headerlink" href="#configuration" title="Link to this
<td><p>A static region defined in the vehicle coordinate system which is excluded from the obstacle detection region (see <a class="reference internal" href="../OverhangingLoads/overhanging_loads.html"><span class="std std-doc">the overhanging loads documentation</span></a>).</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">grid/temporalConsistencyConstraint</span></code></p></td>
<td><p>Ensures that artifacts cause by dust particles are ignored (see <a class="reference internal" href="../DustMitigation/dust_mitigation.html"><span class="std std-doc">the dust mitigation documentation</span></a>).</p></td>
<td><p>Ensures that artifacts caused by dust particles are ignored (see <a class="reference internal" href="../DustMitigation/dust_mitigation.html"><span class="std std-doc">the dust mitigation documentation</span></a>).</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">portX/acquisition/channelValue</span></code></p></td>
<td><p>The camera channel value [-100, 100] used for a specific port to mitigate interference. Channel values should differ of at least 2.</p></td>
Expand All @@ -174,7 +174,7 @@ <h1>Configuration<a class="headerlink" href="#configuration" title="Link to this
<td><p>Visual odometry - define a port which is the main camera stream for the visual odometry feature. Define multiple ports if a single reference port for visual odometry will not always be active, for example when switching between forward and backward looking cameras.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">zones</span></code></p></td>
<td><p>Define the used protection zones - <a class="reference internal" href="../Zones/zones.html"><span class="std std-doc">See <code class="docutils literal notranslate"><span class="pre">ods</span> <span class="pre">zone</span> <span class="pre">definition</span></code> for a complete description</span></a></p></td>
<td><p>Define protection zones to be used - <a class="reference internal" href="../Zones/zones.html"><span class="std std-doc">See <code class="docutils literal notranslate"><span class="pre">ods</span> <span class="pre">zone</span> <span class="pre">definition</span></code> for a complete description</span></a></p></td>
</tr>
</tbody>
</table>
Expand All @@ -184,7 +184,7 @@ <h1>Configuration<a class="headerlink" href="#configuration" title="Link to this
</div>
<section id="channel-value">
<h2>Channel value<a class="headerlink" href="#channel-value" title="Link to this heading"></a></h2>
<p>The 3D imagers use the <code class="docutils literal notranslate"><span class="pre">TOF</span></code> - <a class="reference external" href="https://en.wikipedia.org/wiki/Time-of-flight_camera">TimeOfFlight</a> - technology to estimate 3D data.
<p>The 3D imagers use the <code class="docutils literal notranslate"><span class="pre">iToF</span></code> - <a class="reference external" href="https://en.wikipedia.org/wiki/Time-of-flight_camera">indirect Time of Flight</a> - technology to estimate 3D data.
Due to this technical approach, it might happen that two heads are interfering with each other. Providing different channel values (that is, slightly different modulation frequencies), from -100 up to 100 channel value, for each head helps mitigate this issue. Pick channel values at least two digits apart of each other.</p>
<div class="highlight-JSON notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;applications&quot;</span><span class="p">:{</span>
Expand Down
10 changes: 5 additions & 5 deletions v1.4.32/ODS/Instantiation/instantiation.html
Original file line number Diff line number Diff line change
Expand Up @@ -169,9 +169,9 @@ <h2>Extrinsic calibration<a class="headerlink" href="#extrinsic-calibration" tit
<span class="s2">&quot;port2&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="s2">&quot;processing&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="s2">&quot;extrinsicHeadToUser&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="s2">&quot;rotX&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mf">1.57</span><span class="p">,</span>
<span class="s2">&quot;rotX&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;rotY&quot;</span><span class="p">:</span> <span class="mf">1.57</span><span class="p">,</span>
<span class="s2">&quot;rotZ&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;rotZ&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mf">1.57</span><span class="p">,</span>
<span class="s2">&quot;transX&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;transY&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;transZ&quot;</span><span class="p">:</span> <span class="mf">0.2</span>
Expand All @@ -187,7 +187,7 @@ <h2>Extrinsic calibration<a class="headerlink" href="#extrinsic-calibration" tit
</section>
<section id="ports-selection">
<h2>Ports selection<a class="headerlink" href="#ports-selection" title="Link to this heading"></a></h2>
<p>A VPU (OVP800) can connect up to 6 3D imager, ranging from <code class="docutils literal notranslate"><span class="pre">Port</span> <span class="pre">0</span></code> to <code class="docutils literal notranslate"><span class="pre">Port</span> <span class="pre">5</span></code>. Providing the port information to the ODS configuration tells the system which heads should be used for the ODS application itself.</p>
<p>A VPU (OVP8XX) can connect up to 6 3D imager, ranging from <code class="docutils literal notranslate"><span class="pre">Port</span> <span class="pre">0</span></code> to <code class="docutils literal notranslate"><span class="pre">Port</span> <span class="pre">5</span></code>. Providing the port information to the ODS configuration tells the system which heads should be used for the ODS application itself.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>The current ODS version do not support more than 3 used heads within an ODS application.
Expand All @@ -205,12 +205,12 @@ <h2>Ports selection<a class="headerlink" href="#ports-selection" title="Link to
<code class="docutils literal notranslate"><span class="pre">port6</span></code> is the <code class="docutils literal notranslate"><span class="pre">IMU</span></code> (Inertial Measurement Unit) and is used by ODS. <strong><code class="docutils literal notranslate"><span class="pre">port6</span></code> <em>must always</em> be provided to an ODS application.</strong></p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>We recommend turning all the unused camera heads to “CONF” mode, to avoid them using up system resources. This is especially true for unused RGB cameras.</p>
<p>To optimize system performance and conserve resources, it’s recommended to switch all unused camera heads, especially RGB heads, to “CONF” mode.</p>
</div>
</section>
<section id="visual-odometry">
<h2>Visual odometry<a class="headerlink" href="#visual-odometry" title="Link to this heading"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">vo</span></code> - Visual odometry - is an algorithmic approach to provide - together with the IMU - ego motion data to the ODS algorithm. Images from one head are used together with the IMU data to continuously improve the ODS ego-motion estimation. The best performance is achieved by using a head with (the most) floor data visible in its images. The floors distance range needs to be at least between 1.00m and 1.50m.</p>
<p><code class="docutils literal notranslate"><span class="pre">vo</span></code> (Visual odometry) is an algorithmic approach that in combination with the <code class="docutils literal notranslate"><span class="pre">IMU</span></code> provides ego motion data to the ODS algorithm. Images from one head are used together with the IMU data to continuously improve the ODS ego-motion estimation. The best performance is achieved by using a head with (the most) floor data visible in its images. The floors distance range needs to be at least between 1.00m and 1.50m.</p>
<p>Provide the port number (head with floor data in the images) to the <code class="docutils literal notranslate"><span class="pre">vo</span></code> attribute.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="nt">&quot;vo&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;voPorts&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;port2&quot;</span><span class="p">]</span>
Expand Down
2 changes: 1 addition & 1 deletion v1.4.32/ODS/NegativeObstacles/negative_obstacles.html
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ <h2>Enable the negative obstacle detection<a class="headerlink" href="#enable-th
</pre></div>
</div>
<p>The negative obstacle detection is a feature that <a class="reference internal" href="../../Technology/configuration.html#conf-only-parameters"><span class="std std-ref">requires a switch to “CONF” state</span></a> to be enabled, so it is not recommended to switch that function on and off dynamically but to use a static setting during robot operation.</p>
<p>In Python, for example, the feature can be enable with the code below. Note that this code assumes the existence of an <code class="docutils literal notranslate"><span class="pre">app0</span></code> instance using a camera connected to <code class="docutils literal notranslate"><span class="pre">port0</span></code>.</p>
<p>In Python, for example, the feature can be enabled with the code below. Note that this code assumes the existence of an <code class="docutils literal notranslate"><span class="pre">app0</span></code> instance using a camera connected to <code class="docutils literal notranslate"><span class="pre">port0</span></code>.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># 1. Set the application to &quot;CONF&quot; state</span>
<span class="n">o3r</span><span class="o">.</span><span class="n">set</span><span class="p">({</span><span class="s2">&quot;applications&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;instances&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;app0&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;state&quot;</span><span class="p">:</span> <span class="s2">&quot;CONF&quot;</span><span class="p">}}}})</span>

Expand Down
12 changes: 2 additions & 10 deletions v1.4.32/ODS/OccupancyGrid/occupancy_grid.html
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@
<li class="toctree-l2"><a class="reference internal" href="../Configuration/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../Zones/zones.html">Zones</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Occupancy grid</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="#output">Output</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#timestamp">Timestamp</a></li>
<li class="toctree-l4"><a class="reference internal" href="#width-height">Width &amp; Height</a></li>
Expand Down Expand Up @@ -140,12 +138,6 @@

<section id="occupancy-grid">
<h1>Occupancy grid<a class="headerlink" href="#occupancy-grid" title="Link to this heading"></a></h1>
<section id="description">
<h2>Description<a class="headerlink" href="#description" title="Link to this heading"></a></h2>
</section>
<section id="parameters">
<h2>Parameters<a class="headerlink" href="#parameters" title="Link to this heading"></a></h2>
</section>
<section id="output">
<h2>Output<a class="headerlink" href="#output" title="Link to this heading"></a></h2>
<table class="docutils align-default">
Expand Down Expand Up @@ -188,7 +180,7 @@ <h3>Width &amp; Height<a class="headerlink" href="#width-height" title="Link to
</section>
<section id="image">
<h3>Image<a class="headerlink" href="#image" title="Link to this heading"></a></h3>
<p>The occupancy grid information as an array[width*height], containing the probability of the cell being occupied. Every ODS application forwards one single occupancy grid. All connected heads are publishing their information into this single grid. The center of the grid corresponds to the center of the reference coordinate frame, that is the robot’s coordinate frame defined during the calibration.</p>
<p>The occupancy grid information is an array[width*height], containing the probability of the cell being occupied. Every ODS application forwards one single occupancy grid. All connected heads are publishing their information into this single grid. The center of the grid corresponds to the center of the reference coordinate frame, that is the robot’s coordinate frame defined during the calibration.</p>
<p>We recommend using a probability threshold of 0.5 (127) to assess whether a cell is occupied or not.</p>
</section>
<section id="transformcellcentertouser-transformation-parameters">
Expand All @@ -207,7 +199,7 @@ <h4>Transformation matrix parameters<a class="headerlink" href="#transformation-
</section>
<section id="occupancy-grid-transformation-example">
<h4>Occupancy grid transformation example<a class="headerlink" href="#occupancy-grid-transformation-example" title="Link to this heading"></a></h4>
<p>By default the parsed occupancy grid is oriented is such a way that:</p>
<p>By default the parsed occupancy grid is oriented in such a way that:</p>
<ul class="simple">
<li><p>(pixel coordinates) rows correspond to Y-coordinates in the ODS coordinates system</p></li>
<li><p>(pixel coordinates) columns correspond to X-coordinates in the ODS coordinates system</p></li>
Expand Down
4 changes: 2 additions & 2 deletions v1.4.32/ODS/OverhangingLoads/overhanging_loads.html
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ <h2>Limitations: impact of stray light artifacts<a class="headerlink" href="#lim
</section>
<section id="definition">
<h2>Definition<a class="headerlink" href="#definition" title="Link to this heading"></a></h2>
<p>In the context of ODS, and overhanging load is any object that:</p>
<p>In the context of ODS, an overhanging load is any object that:</p>
<ul class="simple">
<li><p>is visible in one of the camera’s FOV,</p></li>
<li><p>is static with respect to the robot coordinate system (RCS).</p></li>
Expand Down Expand Up @@ -206,7 +206,7 @@ <h2>How to configure<a class="headerlink" href="#how-to-configure" title="Link t
<ul class="simple">
<li><p>The feature has to be activated: <code class="docutils literal notranslate"><span class="pre">{&quot;active&quot;:</span> <span class="pre">true}</span></code>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">minLoadHeight</span></code> parameter defines the lowest Z value of the region. This parameter should not be confused with the <code class="docutils literal notranslate"><span class="pre">minObjectHeight</span></code> (see <a class="reference internal" href="../Configuration/configuration.html#minimum-object-height"><span class="std std-ref">here</span></a>) that defines a minimum object height for the floor segmentation.
Setting <code class="docutils literal notranslate"><span class="pre">minLoadHeight</span></code> to zero will result in some ground pixels being excluded, which in turn might results in detecting no usable floor for the visual odometry if the load is too large. In the example above, the bottom of the overhanging load is configured at 40 cm.</p></li>
Setting <code class="docutils literal notranslate"><span class="pre">minLoadHeight</span></code> to zero will result in some ground pixels being excluded, which in turn might result in detecting no usable floor for the visual odometry if the load is too large. In the example above, the bottom of the overhanging load is configured at 40 cm.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">maxLoadHeight</span></code> defines the maximum Z value of the region. In the example above, the top of the overhanging load is configured at 1 m.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">region</span></code> defines the (x, y) coordinates of the 3 to 6 corners of the convex hull that defines the overhanging load.</p></li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@

<section id="ods-performance">
<h1>ODS Performance<a class="headerlink" href="#ods-performance" title="Link to this heading"></a></h1>
<p>This whitepaper gives an introduction to the factors influencing ODS performance and how the system can be evaluated for a specific application.</p>
<p>The following information gives an introduction to the factors influencing ODS performance and how the system can be evaluated for a specific application.</p>
<p>The following factors have to be taken into consideration when integrating ODS into a system:</p>
<ul class="simple">
<li><p>Mounting position,</p></li>
Expand Down Expand Up @@ -181,14 +181,14 @@ <h2>Type of cameras<a class="headerlink" href="#type-of-cameras" title="Link to
</tr>
</tbody>
</table>
<p>The illumination module and the resolution are the same for both camera, which means that for the same amount of light, the O3R225 has to cover around four times the area the O3R222 covers.
Due to this fact, greater detection ranges, especially for small objects are achieved with the O3R222 camera.</p>
<p>The illumination optical power and sensor pixel resolution are identical for both cameras. Consequently, given equivalent amount of light, the O3R225 covers approximately four times the area of the O3R222, attributable to differences in their field of view (FOV) and field of illumination (FOI).
As a result, the O3R222 camera achieves greater detection ranges, particularly for small objects.</p>
<p>To benefit from the advantages of both cameras, we suggest to complement a O3R225 camera with a O3R222 camera for long range applications.</p>
</section>
<section id="floor-types">
<h2>Floor types<a class="headerlink" href="#floor-types" title="Link to this heading"></a></h2>
<p>The reflectivity and type of the floor surface impacts the amount of light reflected back into the camera lens.
Even though the O3R cameras utilize the infrared spectrum, a good rule of thumbs is that a floors that appear “reflective” for the human eye will most likely also be reflective in infrared.</p>
Even though the O3R cameras utilize the infrared spectrum, a good rule of thumb is that floors that appear “reflective” for the human eye will most likely also be reflective in infrared.</p>
<p>Three main things are impacted by the reflectivity and surface type of the floor:</p>
<ul class="simple">
<li><p>Floors that are very smooth without visible marks, like freshly painted floors, can be challenging for the <a class="reference internal" href="#visual-odometry"><span class="xref myst">visual odometry</span></a> estimation.</p></li>
Expand Down
Loading

0 comments on commit 60babf1

Please sign in to comment.