<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Chris,</p>
    <p>Cool.   I've done some similar things with sonar readings while
      rotating, though not nearly as sophisticated.   I had a couple of
      thoughts.</p>
    <p>As per dewarp_scan.py:<br>
    </p>
    # what's left to do is to remove the artifact that appears in this
    dewarped scan.<br>
    # when the robot is twisting right, then the artifact is on the left
    and vice a versa<br>
    # root cause is unknown<br>
    # as a workaround, just filter out (i.e. invalidate by setting to
    inf) readings in a certain angle range input<br>
    <p>I wonder if this is an interaction between the spinning mass of
      the laser and the spinning mass of the robot?  Either as an
      additive process, like if the robot is rotating the same direction
      as the lidar or not,  or as some sort of actual mechanical
      gyroscopic-type coupling between the two?  <br>
    </p>
    <p>My outdoor robot moves along at a brisk walking pace, about 5~6
      feet/second, certainly not turtlesque.   It's array of 4 sonar can
      see out about 20 feet across a FOV  of about 60 degrees, and reads
      all 4 sensors every 120 ms, so maybe 8 Hz.   I've found as a
      practical matter that update rate is plenty sufficient for outdoor
      navigating in some pretty intense environments, with lots of
      obstacles and treachery.  <br>
    </p>
    <p>So it's not clear to me why you find that a higher update rate is
      required, particularly given the increase in data density that you
      already get with the lidar?    <br>
    </p>
    <p>best,</p>
    <p>David</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <table class="highlight tab-size js-file-line-container"
      data-tab-size="8" data-paste-markdown-skip="">
      <tbody>
        <tr>
          <td id="LC363" class="blob-code blob-code-inner js-file-line">
            <span class="pl-c"><br>
            </span></td>
        </tr>
        <tr>
        </tr>
      </tbody>
    </table>
    <table class="highlight tab-size js-file-line-container"
      data-tab-size="8" data-paste-markdown-skip="">
      <tbody>
        <tr>
          <td id="LC364" class="blob-code blob-code-inner js-file-line"><br>
          </td>
        </tr>
        <tr>
        </tr>
      </tbody>
    </table>
    <table class="highlight tab-size js-file-line-container"
      data-tab-size="8" data-paste-markdown-skip="">
      <tbody>
        <tr>
          <td id="LC365" class="blob-code blob-code-inner js-file-line"><br>
          </td>
        </tr>
        <tr>
        </tr>
      </tbody>
    </table>
    <br>
    <table class="highlight tab-size js-file-line-container"
      data-tab-size="8" data-paste-markdown-skip="">
      <tbody>
        <tr>
          <td id="LC362" class="blob-code blob-code-inner js-file-line"><br>
          </td>
        </tr>
        <tr>
        </tr>
      </tbody>
    </table>
    <div class="moz-cite-prefix">On 12/20/20 5:02 PM, Chris N via
      DPRGlist wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:5fdfd7f1.1c69fb81.22c5b.d359@mx.google.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
      <div class="WordSection1">
        <p class="MsoNormal">My 2 cents:</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Definitely an impressive design, i.e. from
          an electro-mechanical point of view, but given that the cost
          of the RPLidar A1 (and its clones) is <$100, I’m just not
          sure its worth it.  Maybe it has a form-factor advantage in
          some situations?</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Since it has 2 sensors, the effective
          rotation rate is actually equivalent to 120RPM, but that is
          still too slow!</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I find that even the 300RPM of the RPLidar
          A1 is too slow for a robot that moves faster than a turtle –
          at least in my experience with the navigation stack in ROS
          (e.g. Gmapping or hector slam).     </p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I have cranked it up to almost 600RPM
          (10Hz), but at that rate, my Pololu Romi base was shaking
          quite a bit…..I suppose on a larger / heavier base this would
          be fine and I should probably try that at some point.</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">The problem with 300RPM is that the laser
          scan gets significantly warped as a result of robot motion,
          especially when the robot is turning.</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I might have mentioned it already to this
          group, but I have actually spent significant amounts of energy
          on a lidar data de-warping logic earlier this year.   Got it
          to work, but it didn’t seem to improve the SLAM performance
          much – there are probably navigation stack parameters that
          need to be tuned properly…….That’s just one of the many
          complexities in ROS……</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">My code for the Lidar de-warping is here: 
          <a href="https://github.com/nettercm/lidar_dewarping"
            moz-do-not-send="true">Experiments with de-warping lidar
            scans</a>  </p>
        <p class="MsoNormal">Discussion on answers.ros.org: <a
href="https://answers.ros.org/question/242658/how-to-deal-with-slow-rplidar-scan-rate-on-fast-moving-robot/"
            moz-do-not-send="true">How to deal with slow RPLidar scan
            rate on fast moving robot?</a></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">The code is in the form of a ROS node, but
          the core logic can be used outside of ROS of course.  Anyway,
          if somebody is doing Lidar and is finding the speed of the
          RPLidar to be an issue (due to warping), let me know and I can
          provide more details.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">It was kind of fun (but exhausting)
          applying some math to create this de-warping logic, but if at
          some point I decide to get serious again about ROS and Lidar,
          maybe I will just pony up the $600 for a RPLIdar A3:   25
          meter range,  16K samples /second,  1200RPM (20Hz).  
            Monitoring eBay for a good deal…..<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Chris.</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div
          style="mso-element:para-border-div;border:none;border-top:solid
          #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
          <p class="MsoNormal" style="border:none;padding:0in"><b>From:
            </b><a href="mailto:dprglist@lists.dprg.org"
              moz-do-not-send="true">Doug Paradis via DPRGlist</a><br>
            <b>Sent: </b>Sunday, December 20, 2020 12:49 PM<br>
            <b>To: </b><a href="mailto:deltagraph@aol.com"
              moz-do-not-send="true">Ron Grant</a><br>
            <b>Cc: </b><a
              href="mailto:dprg_roborama_committee@lists.dprg.org"
              moz-do-not-send="true">dprg_roborama_committee@lists.dprg.org</a>;
            <a href="mailto:dprglist@lists.dprg.org"
              moz-do-not-send="true">dprglist@lists.dprg.org</a><br>
            <b>Subject: </b>Re: [Dprglist] [Dprg_roborama_committee]
            DYI 360 degee spinning LiDAR</p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <p class="MsoNormal">Ron,</p>
          <div>
            <p class="MsoNormal">     I agree about the rotation rate. I
              am also not a big fan of the VL5xL0X sensors, but I
              haven't tried the VL53L0x. I do think the project shows
              the issues that need to be addressed. If I were just
              starting out with nothing, I would prefer to just buy a
              RPLidar A1M8 from Robotshop.or DFRobot.  It has a scan
              rate between 1 and 10 Hz with 5.5 Hz used to get 1 reading
              per degree. </p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">    For indoors, this would be a good
              unit to have in your new simulator. For outdoors (and also
              indoors) you might want to allow for the Benewake line of
              sensors and the LiDAR-Lite. These are not scanning LiDARs,
              but have larger range and are usable outdoors. </p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Regards,</p>
          </div>
          <div>
            <p class="MsoNormal">Doug P.</p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <div>
            <p class="MsoNormal">On Sun, Dec 20, 2020 at 9:49 AM
              deltagraph--- via Dprg_roborama_committee <<a
                href="mailto:dprg_roborama_committee@lists.dprg.org"
                moz-do-not-send="true">dprg_roborama_committee@lists.dprg.org</a>>
              wrote:</p>
          </div>
          <blockquote style="border:none;border-left:solid #CCCCCC
            1.0pt;padding:0in 0in 0in
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
            <div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Looks
                    cool, but kinda slow rotation rate at 60 RPM vs
                    about what 5X to 10X that speed in some of the robot
                    vac cleaners.<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Of
                    course not bad to stop for a second, scan then move
                    on, OR at least be aware of your position vs scan
                    vector.<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">I
                    am working on a new simulator rendition with LiDAR,
                    looks promising and fun to play with. <o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">I
                    can see useful to include variable scan rate to
                    simulate range of available sensors low-cost units 
                    to high-speed high dollar ...<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Ron<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal"
style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">-----Original
                    Message-----<br>
                    From: Doug Paradis via DPRGlist via
                    Dprg_roborama_committee <<a
                      href="mailto:dprg_roborama_committee@lists.dprg.org"
                      target="_blank" moz-do-not-send="true">dprg_roborama_committee@lists.dprg.org</a>><br>
                    To: DPRG <<a
                      href="mailto:dprglist@lists.dprg.org"
                      target="_blank" moz-do-not-send="true">dprglist@lists.dprg.org</a>><br>
                    Cc: Doug Paradis via DPRGlist <<a
                      href="mailto:dprglist@lists.dprg.org"
                      target="_blank" moz-do-not-send="true">dprglist@lists.dprg.org</a>><br>
                    Sent: Sun, Dec 20, 2020 9:20 am<br>
                    Subject: [Dprg_roborama_committee] [Dprglist] DYI
                    360 degee spinning LiDAR<o:p></o:p></span></p>
                <div id="gmail-m_-1199909336303670493yiv5966738458">
                  <div>
                    <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Interesting
                        Instructable: <o:p></o:p></span></p>
                    <div>
                      <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><a
href="https://www.instructables.com/Project-Lighthouse-360-Mini-Arduino-LiDAR/"
                            target="_blank" moz-do-not-send="true">https://www.instructables.com/Project-Lighthouse-360-Mini-Arduino-LiDAR/</a><o:p></o:p></span></p>
                    </div>
                    <div>
                      <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
                    </div>
                    <div>
                      <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Regards,<o:p></o:p></span></p>
                    </div>
                    <div>
                      <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Doug
                          P.<o:p></o:p></span></p>
                    </div>
                  </div>
                </div>
                <p class="MsoNormal" style="margin-left:4.8pt"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">_______________________________________________<br>
                    DPRGlist mailing list<br>
                    <a href="mailto:DPRGlist@lists.dprg.org"
                      target="_blank" moz-do-not-send="true">DPRGlist@lists.dprg.org</a><br>
                    <a
                      href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org"
                      target="_blank" moz-do-not-send="true">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
                    _______________________________________________<br>
                    Dprg_roborama_committee mailing list<br>
                    <a
                      href="mailto:Dprg_roborama_committee@lists.dprg.org"
                      target="_blank" moz-do-not-send="true">Dprg_roborama_committee@lists.dprg.org</a><br>
                    <a
href="http://lists.dprg.org/listinfo.cgi/dprg_roborama_committee-dprg.org"
                      target="_blank" moz-do-not-send="true">http://lists.dprg.org/listinfo.cgi/dprg_roborama_committee-dprg.org</a><o:p></o:p></span></p>
              </div>
            </div>
          </blockquote>
        </div>
        <p class="MsoNormal" style="margin-left:4.8pt">_______________________________________________<br>
          Dprg_roborama_committee mailing list<br>
          <a href="mailto:Dprg_roborama_committee@lists.dprg.org"
            target="_blank" moz-do-not-send="true">Dprg_roborama_committee@lists.dprg.org</a><br>
          <a
href="http://lists.dprg.org/listinfo.cgi/dprg_roborama_committee-dprg.org"
            target="_blank" moz-do-not-send="true">http://lists.dprg.org/listinfo.cgi/dprg_roborama_committee-dprg.org</a></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
DPRGlist mailing list
<a class="moz-txt-link-abbreviated" href="mailto:DPRGlist@lists.dprg.org">DPRGlist@lists.dprg.org</a>
<a class="moz-txt-link-freetext" href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a>
</pre>
    </blockquote>
  </body>
</html>