<div dir="ltr">Many of y'all will remember this super-speed finger bot - 1ms loop time or shorter:<br><a href="https://www.youtube.com/watch?v=-KxjVlaLBmk&ab_channel=Hizook">https://www.youtube.com/watch?v=-KxjVlaLBmk&ab_channel=Hizook</a><br> <div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 31, 2021 at 5:42 PM Karim Virani <<a href="mailto:pondersome64@gmail.com">pondersome64@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">The loop time is entirely up to you. The question is, how quickly does your robot need to react? That depends a lot on physics - on scale. It also depends on the needs of the most timing-sensitive (non-ISR) sensors you are managing, and how you service them. <div><br></div><div>We don't even have a set loop time since we are using Android on most of our robots. Our loop time varies a lot, but is generally under 50ms. We normalize all our timing to seconds and our math looks like normal physics calculations vs. something short-cutted to a fixed timing loop. Granted, this is not a common approach in microcontroller-driven hobbyist robotics. Deemed wasteful of processing cycles by many. </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 31, 2021 at 5:31 PM Thalanayar Muthukumar <<a href="mailto:tnkumar@gmail.com" target="_blank">tnkumar@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Makes sense Karim, that at all times, the robot is interruptible by higher priority events.<div><br></div><div>Is 50ms ok? Or is 20ms desirable?<br><div><br></div><div>Regards.</div><div>- Kumar<br><br><div dir="ltr">Sent from my iPhone</div><div dir="ltr"><br><blockquote type="cite">On Oct 31, 2021, at 5:26 PM, Karim Virani <<a href="mailto:pondersome64@gmail.com" target="_blank">pondersome64@gmail.com</a>> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr">I agree with Doug, you should never have blocking code unless you can dedicate a separate thread to it apart from your main loop's thread.<br><br>And not to start up the whole debate again, I personally vote that there is no use for ballistic behaviors. I treat them as an academic construct. There are plenty of uses of objective-oriented and terminating behaviors - including those where the objective is to last for a certain amount of time. But they should still be interruptible and cancellable by higher priority behaviors. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 31, 2021 at 5:08 PM Doug Paradis via DPRGlist <<a href="mailto:dprglist@lists.dprg.org" target="_blank">dprglist@lists.dprg.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Kumar,<div>    I always pass through the loop. So a 1 sec backwards maneuver would use a loop counter with a disengage value of 50 for a loop time of 20 mS. I am not using a multitasking framework, which opens up other possibilities. </div><div><br></div><div>Regards </div><div>Doug P.<br><br><div dir="ltr">Sent from my iPhone</div><div dir="ltr"><br><blockquote type="cite">On Oct 31, 2021, at 4:54 PM, Thalanayar Muthukumar via DPRGlist <<a href="mailto:dprglist@lists.dprg.org" target="_blank">dprglist@lists.dprg.org</a>> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div dir="ltr"><a href="https://youtu.be/fuFamNWyXc4" target="_blank">https://youtu.be/fuFamNWyXc4</a> (~15 sec)</div><div dir="ltr"><br></div><div dir="ltr">20 times per sec</div><div dir="ltr">- default behavior - go straight forward, green headlights</div><div dir="ltr">- higher priority behavior - light sensed, turn left, red headlights</div><div dir="ltr"><br></div><div dir="ltr">My understanding of BBR is that there should be no state maintained.</div><div dir="ltr"><br></div><div dir="ltr">Question - If we trigger a ballistic behavior (e.g. go straight backward for one sec), is it ok to not return to the loop every 50 msec?</div><div dir="ltr"><br></div><div dir="ltr">Or is it preferable to maintain state and count 20 times for getting duration of 1 sec?</div><div dir="ltr"><br></div><div dir="ltr">Regards.</div><div dir="ltr">- Kumar<br><br></div><br><br><div dir="ltr">Sent from my iPhone</div></div><span>_______________________________________________</span><br><span>DPRGlist mailing list</span><br><span><a href="mailto:DPRGlist@lists.dprg.org" target="_blank">DPRGlist@lists.dprg.org</a></span><br><span><a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" target="_blank">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a></span><br></div></blockquote></div></div>_______________________________________________<br>
DPRGlist mailing list<br>
<a href="mailto:DPRGlist@lists.dprg.org" target="_blank">DPRGlist@lists.dprg.org</a><br>
<a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" rel="noreferrer" target="_blank">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
</blockquote></div>
</div></blockquote></div></div></div></blockquote></div>
</blockquote></div>