Automated Indexing - the ultimate way to sort balls

Ever since we started building our snail bot for this season, we had concluded that fast cycling would be the key in dominating matches. But in order to make driving easier, we decided to create something that would index for the driver.


  1. In order for auto indexing to work, we needed to have the top rollers controlled by different motors. This allows us to stop the top roller once the line tracker detects the ball while keeping the bottom rollers spinning. With this, we are now able to achieve a consistent index of 3 balls.
  2. We placed 3 line trackers in our snail system: 1 tracker at the top roller, 1 at the middle roller, and 1 at the front intakes. When the top tracker detects a ball, it slows down the middle rollers and stops the top roller. Then when the middle tracker detects something, the front intakes slow down and the middle ones stop. Finally, when the bottom tracker detects something, it stops all rollers/intakes.
  3. Last but not least, because of our indexing system, we are now able to run the top roller at 1800 RPM and the middle intakes at 600 RPM while still keeping consistent indexing. This allows us to have maximum efficiency and a happy driver :joy:


If anyone has any questions, feel free to contact me or @Ryan_4253B. Also, if anyone has any suggestions, please let us know!


So I’m assuming your going to ratchet the flywheel to the indexer and then have the the ejector rollers be ratcheted to each other so you can control the top of rollers movement while having the bottom one always go the say direction.
Or you could have the bottom ejector roller connected to the intakes which is you best bet. And top roller connected to the flywheel.

that’s some nice indexing! good stuff


Yeah thats super good implementation of line trackers, its a shame my team already ran out of triports :frowning:

1 Like

Hol’up, our team is not panning to use poopers. We found out that removing balls from the goals and leaving empty spots actually harms your team rather than helping. We are only thinking of speeding up the rollers and go max cycle, which is the main reason we developed this auto indexing system (cuz our driver is bad)

Could you possibly show a second video for a kind of front angle to see the rollers do the auto indexing.

Thank you!

Hopefully with the new triport expanders, you’ll be able to use these trackers!


Sure! But the earliest we can record is Monday since we don’t have access to the bot right now.

1 Like

I would very much disagree with this. if you leave the opponents ball at the bottom of the goal, you are not only leaving your opponent with one extra point, but you are making it easier for them to just drive up to the goal, and cycle that ball to the top, essentially making it so they don’t have to do any fielding. if you poop the ball, it takes no additional time for you because you can do it while scoring, but now your opponent has to actively chase down the balls, which will slow them down significantly.

also a pooper is op for skills.


I think thats two pronged- if you can keep an opponent’s ball inside a goal, just under your ball, it limits its usefulness because it can’t contribute to a row. As opposed to it lying around the field, the opponent has less options for which goal to deposit into as it is fastest to simply flip the order. Of course, the ease of cycling for an opponent is a downside, but my team and I currently think that leaving them inside the goal is still better.

It seems like leaving a ball at the bottom could mess up early season bots since most teams will have some kind of claw bot or tray bot because of last season but if the ball ia there and your against a competent team then you should just get rid of the ball so they have to collect it. Also if have 3 blue balls and 3 red balls and they’re in a random order then a ejector would be good for gets 3 red balls all in a goal instead of having a mixmatched balls in the goal.

it’s more efficient to cycle than to field because you can use cycle time to make use of more than one ball (you’re already at the goal, so instead of fielding, moving to the goal, and putting it into the goal, all you’ve gotta do is cycle. that’s why you don’t want to leave opponent balls at the bottom)


if you’re against a clawbot you don’t have to worry about what you do with your opponents balls lol.

but if you are against an efficient hood, you should probably poop opponents balls when possible. not to say you should go to the effort of filtering out an entire goal to purge them of opponent balls, but if there is an opponent ball at the bottom of a goal when you go to it you should poop it.

You have to also have to realize you can still get really good cycle time with a ejection rollers. You just need to use it very well. Reason being why personally I am waiting till I can get good sorting automation to use first.

1 Like

You should not be building in order to be best efficient against clawbots in any case.


I also disagree with what is said in this post. Under the condition that all goals are filled completely with the balls, you will only be 5 points apart at max (16 balls : 11 balls). The score gap from the number of balls is so small that owning 1 extra row will still make you win the match anyways. Therefore, the most important thing to do in the game is to outcycle your opponent and claim rows. Difference in number of balls is just too insignificant to cause any differences.

A pooper is going to try to remove opponent balls from goals, leaving the balls at about 20 - 40 inches away from the goal. However, since the goal isn’t full anymore as balls are removed, it will be easy for opponent robots to drive over, intake the ball while going to the goal and just deposit it. This is surely going to be faster than to drive over, having to potentially cycle multiple balls to the correct order then go to the next goal. Therefore, the pooper will just help your opponent to own goals, you’ll be losing big points in favor of small points.

Also, pooping balls might cause slower cycle time if you’re ejecting balls, meaning you’ll be more likely get outcycled by your opponents and lose the rows

What are you using the other triports for?

Mildly straying off topic from the original post regarding automated indexing, so uh…

Back to the post; I personally like the implementation of automated indexing for this game to help ease the driver into not having to worry about where the balls are within the robot at all times. To add onto this, you could try making separate macro buttons specifically for scoring 2 and 3 balls at a time. Nice job!


except for in very close matches.

it’s usually faster to just take the bottom ball to the top of the goal then it is to chase down a ball and then score it in the top. not by much, but it can be enough to slow your opponents down to the point where they lose. if your opponent is already full of balls, it doesn’t matter because they don’t have to pick up more, and they can just pop one in the top regardless (and descore one from the bottom if the goal is full, but they can do that while scoring so it isn’t any extra time)

if your pooper slows your cycle time you’re doing it wrong. pooping a ball is much faster than backing up from a goal and spitting it out.

also remember skills. poopers are really great in skills.

but of course, a pooper is not necessary, so if you think you can succeed without one, then by all means don’t build one. I just think it would be a good upgrade to your already fast looking robot.

1 Like

I think having a pooper while clearing the entire goal and leaving only one of your balls more be a good strategy. This allows you to own the goal, and the opponents balls would be dispersed on the field , which they have to chase down. Also if you remove your own balls while clearing the goal, you can head straight to another goal instead of going around the field collecting balls. The process would keep repeating itself.