<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>If any of you subscribe to Reddit - Arduino group, you'll see generic questions all the time, many of which are from "tire kickers", folks just thinking about purchasing something but haven't committed to anything yet.  I don't bother getting involved unless the user indicates they have actual hardware they are working with.</p>
<p>Since Kumar had already purchased an STM32 NUCLEO board, (I love the STM32 NUCLEO boards in general), I had to get involved.</p>
<p>"Which development environment" is the 2nd most asked question when it comes to STM32 boards.  The most asked is "which STM32 board?".  Unfortunately, many folks begin STM32 exploration with a "Blue Pill".  I HATE that platform!!!  Although it's cheap, they often have clone chips and require plenty of additional hardware already provided with a NUCLEO board.</p>
<p><br /></p>
<p>Much of the capability model involves the individual and their talent set...</p>
<p><br /></p>
<p>What DPRG provides is mentorship...  Folks that are willing and able to help others get from one <em>Level</em> to the next.  Thanks GUYS !</p>
<p><br /></p>
<p>The "Build More Robots" is an excellent tool / program to help bring people (and their robots) from "Level 0.0.0" to "Level 5.0" (or so).</p>
<p><a href="https://www.dprg.org/build-more-robots-series/">https://www.dprg.org/build-more-robots-series/</a></p>
<p><br /></p>
<p>I truly appreciate DPRG !</p>
<p><br /></p>
<div id="signature">---<br />
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">Jim Merkle<br />Carrollton, TX 75007<br /><a href="mailto:jim@merkles.com">jim@merkles.com</a></div>
</div>
<p><br /></p>
<p id="reply-intro">On 2021-10-27 10:03, Chris N via DPRGlist wrote:</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<div id="replybody1">
<div dir="ltr">
<div dir="ltr">
<div class="v1gmail_default" style="font-size: x-small;"><span style="font-size: small;">So in part because of questions along the line of "where do I get started" from Kumar, and others before him, that we occasionally get, I thought it might help to have some sort of capability model in mind that can be referenced.  <br /></span></div>
<div class="v1gmail_default" style="font-size: x-small;"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default" style="font-size: x-small;"><span style="font-size: small;">That way one can ask "OK - what level are you at currently?  What level are you trying to reach in the near term?"<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Below is what I mean.  For now this is focused on software and locomotion (but starting with Level 8,  perception comes into the picture)<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">I have more explanation to go along with each item but wanted to keep it brief in this e-mail.  <br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">The idea is not to explain how to do these things.  This just represents milestones along the journey.  This is really more about having an agreed upon vocabulary.<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Thoughts?   Is something like this helpful to have written down?  Is it already written down somewhere ? (I am sure that in some ways, this is captured in some of the material that David Anderson has published over the years)<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;"> Level 0: I have an API through which I can control the speed and direction of the individual wheels. My robot can move! <br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 1: I have an API through which I can reliably get the incremental encoder counts for each wheel.  When motors are commanded with a certain duty cycle, I can measure what that translates to in terms of encoder counts per time unit.<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 2: I am keeping track of my Robot's X, Y and Theta via dead-reckoning / odometry <br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 3: I have taken at least basic steps to calibrate my robot's odometry calculations. <br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 4: I can command the robot to move, but using more abstract units such as "meters/second" or at least "encoder ticks per time unit" <br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 5: My robot actually moves at the linear and angular velocity I tell it to, even when battery voltage is lower or surface friction is higher.  And because I have completed Level 3, <span style="font-size: small;">it can go in a somewhat straight line when I ask it to. </span></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 6: My robot moves in a fairly smooth fashion, i.e. it changes speed and direction somewhat gradually. Movement is not "robotic" <br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 7:  I can command my robot to go to a certain X,Y coordinate aka waypoint relative to its current location,  and the robot more or less reaches that location provided nothing is in the way<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 8:  My robot can reach the target location, even if there are obstacles in the way.</span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 9:  My robot can come back after reaching its destination.</span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-size: small;">Level 10: My robot can do all this, even if the obstacles are moving around quite a bit or if there are other sources of possible confusion<br /></span></div>
<div class="v1gmail_default"><span style="font-size: small;"> </span></div>
<div class="v1gmail_default"><span style="font-family: monospace; font-size: 10pt;">_______________________________________________</span></div>
</div>
</div>
</div>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">DPRGlist mailing list<br /><a href="mailto:DPRGlist@lists.dprg.org">DPRGlist@lists.dprg.org</a><br /><a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" target="_blank" rel="noopener noreferrer">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a></div>
</blockquote>
</body></html>