<div style="color:black;font: 10pt Arial, Helvetica, sans-serif;">
<div><span style="font-size: 13.3333px;">Sorry to hit you with a lot of videos, but I found another example of nice response with a long arm:</span></div>
<div><span style="font-size: 13.3333px;"><br>
</span></div>
<div><span style="font-size: 13.3333px;">From 10:46 to 12:15 in https://www.youtube.com/watch?v=v8eeWENXvG4</span></div>
<div><span style="font-size: 13.3333px;"><br>
</span></div>
<div><span style="font-size: 13.3333px;">It's not about mass in the base. It's not about stiffness in the arm even though it is stiff. It's about controlling the response, even to the extent of having the base provide controlled recoil.</span></div>
<div><span style="font-size: 13.3333px;"><br>
</span></div>
<div><span style="font-size: 13.3333px;">OK. Back to sleep now.</span></div>
<div><span style="font-size: 13.3333px;"><br>
</span></div>
<div><span style="font-size: 13.3333px;">John Swindle</span></div>
<div><br>
</div>
<div style="font-family:arial,helvetica;font-size:10pt;color:black"><font size="2">-----Original Message-----<br>
From: John Swindle <swindle@compuserve.com><br>
To: dprglist@lists.dprg.org <dprglist@lists.dprg.org><br>
Cc: John Swindle <swindle@compuserve.com><br>
Sent: Sat, Dec 17, 2022 3:57 pm<br>
Subject: Re: [Dprglist] IRON REIGN robot presentation - Today at Noon<br>
<br>
<div id="yiv2050253434">
<div>
<div style="color:black;font:10pt Arial, Helvetica, sans-serif;">
<div><span style="font-size:13.3333px;">Karim and Iron Reign Team,</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Thank you very much for the DPRG presentation today. Big competition!</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">You asked what filter another FIRST team used to make their big robot stop on a dime without wobbling. This is the sort of response I was referring to:</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">https://youtu.be/huRUoGbdIuU</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Although the robot is heavy, about 160 pounds, and even though most of the weight is in the base, nevertheless it is quite tall and the cargo it carries has mass. It accelerates and stops very quickly with very little wiggle. It drops its cargo with no residual movement in the cargo.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Another example shows how quickly the platform settles after harsh movements with lots of moving metal:</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">https://youtu.be/bAFA3BCijHI</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Along with all the stuff moving at the same time, I like how quickly the grappling arm calms down after being flung open at the end of the contest.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Not related to my comments, but I love the whiffle balls in the competition at the end of the next video. I saw them compete in Houston. Loud cheers when the balls started flying!</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">https://youtu.be/F_Auxy_ZdAQ</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Regarding wiggling towers: I know some of that was determined by giving the platform impulses of movement, from the motors, I believe, not from hammers as I said, and recording the response of the entire robot.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Then the desired controls are filtered with an inverse of the response before being sent to the actuators and motors. I think that can be translated to PID instead of using a filter. I think that is what you are doing.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">I think someone at DPRG showed how to automate the PID tuning by looking at the reactions (Might have been you!). You are probably doing that also.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">I spoke up because it seems that tuning and tweaking are often done ad-hoc or by trial-and-error instead of by knowing the system response. That's just an observation. Not trying to comment on what you are or are not doing. When you don't know the actual system response, the deconvolution can easily makes things worse!</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">I don't make motive systems. I play with audio. I use the cheapest stuff available: 50-cent speakers, 79-cent microphones, cheap consumer-grade audio adapters, lousy amplifiers. Then I force those things to act the way I want them to act.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">So, there are at least two classic way of forcing something to do what you want, so long as you don't exceed some limits: transmitter equalization (Tx EQ) and receiver equalization (Rx EQ). I have the luxury of doing either of these because I don't care how the things behave as long as I get a usable result. You don't have that luxury because you can't grab the pole and hold it steady while you drop a cone on it (which would be Rx EQ). Hmmm... Can you do that?</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">In my case, Rx EQ puts greater burden on the robot to process the audio before using it. I greatly prefer Tx EQ. The pings are not filtered by the transmitter: they are simply screwed-up (convolved) before they are stored in the wave file. No processing at runtime.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">I choose a (not convolved) waveform that I think will give me best resolution with minimum ping width and lowest human-audible amplitude, then pass that through the system in the arena, note the difference in the recorded result, and then start tuning the transmitter.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">I put all that stuff away a few years ago, so I don't have a demo to show. Maybe I will put it back together again.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Sorry for the long answer, but maybe something will help at some point. And sorry if I am repeating stuff I've written before.</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Thanks for sharing your development process and your current status today!</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">Good luck!</span></div>
<div><span style="font-size:13.3333px;"><br clear="none">
</span></div>
<div><span style="font-size:13.3333px;">John Swindle</span></div>
<div id="yiv2050253434yqtfd76934" class="yiv2050253434yqt0679143549">
<div><br clear="none">
</div>
</div>
</div>
<div id="yiv2050253434yqtfd58188" class="yiv2050253434yqt0679143549">
</div>
</div>
</div>
</font></div>
</div>