134G Auto-Stacking From Loader

Hello, Nate from 134G here. We recently finished code that automatically stacks from the loader. All our driver has to do is hold down a button and the robot will pick up and score cones on the mobile goal without any other input. We use a quad encoder (no working potentiometers, replacing it ASAP) to control the lift. In the code, we use a P loop to set the position to pick up the cone and simply wait until the position is greater than a set position while it goes up (some overshoot here is okay). Two bumper switches control the cone swing. Our robot is the one stacking cones on the blue side.

We plan to further optimise it by reducing the amount it lifts up to stack, which will reduce the overall time significantly. We will release a more detailed reveal eventually, but feel free to ask any questions!

The auto stacking was something we had on our old robot. Good Job to your team for doing it. What I noticed was that manual stacking is faster, while auto stacking is more consistent. Drivers can practice enough to get their preload stacking consistent as well. That is why we decided not to do it.

This is a bit tangential, but I’m done with potentiometers. We have five broken ones in the past couple seasons, and we aren’t even doing anything crazy to them or the wires. Quad encoders all the way, now.

Darn thing is that quad encoders are HUGE

We have a whole box of broken ones :confused: Brand new ones are on the way so that should help.

I would just stop using them. It’s not worth it.

I’m not sure that manual stacking is faster. The driver will never lift to the perfect position or react faster than the code will. With that said, our code isn’t perfectly optimized yet. We have also noticed that the swing lifts up much faster when the main lift is going down, which the code doesn’t do as of now.

I think that depends a lot on the speed of your lift and quality of autostack program. In theory, the autostack program should be faster by cutting out excess lift movements and releasing cone at the ideal height with no delay. If your lift is very fast, its even more likely that driver will overshoot considerably in bringing the lift to the lowest height needed to stack, especially if the lift is on buttons not joysticks because then they have no speed control. A good autostack program with an aggressive P gain, and concurrent operation of multiple mechanisms can be as fast if not faster than manual stacking.

+1 This is exactly what an auto stack should do.

While this is true, I have not seen an auto stacking program that is faster than a manually controlled driver. I do know there are teams that might have faster auto stackers. This is also driver preference, I definitely prefer controlling a manual stacker than an automatic stacker.

In my opinion, it really depends on what is preferred for the driver. There are some drivers who wish to have more control over all of the movements of the robot, and some who wishes to have a simpler control system to make life easier. Both are proven to be just as great method-wise. For instance, here’s a video of team 202 and 536: https://www.youtube.com/watch?time_continue=26&v=kESLDSPg-g4
As you can see, this is a good example that both robots are fast and consistent, even though they don’t autostack. Although many teams are saying that autostacking can be fast and consistent, manual control with practice can, in the long run, be fast and consistent as well. In my personal opinion, it just depends on what is preferred for the driver of the robot.

An advantage of autostack that hasn’t been stated it is lets the drivers focus on other things. While using the loader, drivers can take stock of the field and can focus on planning their route once the stack is completed, and while fielding, a good autostack program can let the driver focus on lining up the next cone. Obviously, this advantage isn’t as big with two drivers, but the less the driver needs to do, the better they will do the rest.

I use a semi-auto stacking program. I have to move my lift up to the correct height, but I press a button and the secondary lift and rollers move on their own. Pretty good if you aren’t as coding-savvy like my team.

I mean this is just multitasking, it’s the same routine to stack the cone every time so you can still plan the route for the next cone with a manual control.

Doing multiple tasks at once inherently diminishes the quality with which you will do each one, unless some are stupidly simple. Also, code doesn’t feel pressure; human drivers do, and this leads to mistakes. Stacking is a repetitive and simple task that can best be optimized with automation. I probably spent 10 hours doing driver practice stacking, but I spent less time coding automatic stacking, and it works faster, and with far fewer mistakes. As a bonus, I also have practice with manual control, so I can switch back to that with the push of a button.

Personally, I think semi auto stacking is the way to go, we have the lift move to the correct heights automatically as well as having the intake always running at low power so it will pick up a cone by dropping over it without driver input and the secondary lift as well as the cone release is manual. It makes it easier to stop if a cone is dropped or stuck on the robot or if any other error is made.

Yes I do know there is the pressure and mistakes can be made. Its just driver preference, some people can handle stress more than others and some people like to have more control over the robot than clicking just a button to do it for you.

I do have some control, so I can intervene if something goes wrong and wait until the cone is properly lined up to drop. But, if I want something to happen the same way every time, as if by routine… I’m going to code the robot to do it. To each their own!

Glad you guys posted this! Wasn’t able to watch you guys during your matches, and impressed that it seems to work as advertised!

I’m glad you like it! I’m sure you had plenty of other stuff to do as a judge on Saturday.