<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>