Shooting Angle Control on Two Roller Shooter?

My team just installed a second motor on the top of the shooter, so that there are two motor rollers on the top and bottom of the shooter.

I wonder if there is any advice or a well-developed system for controlling the angle of the outgoing ball using the rpm difference of the two rollers. What would be a good algorithm for auto-ranging with a camera? Intuitively the angle should be higher as the robot gets closer to the goal.

Currently, I have the code turn the second roller at a proportion of the rpm of the first roller, and the rpm of the first roller is determined by interpolating on a set of data that were tested to make shots.

The way I would do it by testing a bunch of locations of the field, finding the optimal value for the top motor, and recording it with the camera value. Then you can just interpolate these values to a line. This is the difficult part, because it probably won’t be linear. Just try a bunch of regression models until one fits, at least in the range of values you’re using. Once you have the function, you can pretty simply use it in your code for the shooter.

2 Likes

I have used this method several times with pretty decent success. Out of curiosity, what would you consider to be an acceptable R-Squared value for a regression model in this scenario? Anything north of 0.8(ish) ?

1 Like

I think might it be better to have piece-wise linear interpolation between the points, instead of fitting the entire dataset onto a linear line.

Sorry if I was not entirely clear, but the question that I am considering is when there are two independent motors that I can control. So that it is also posible to influence the angle of the ball coming out of the shooting.

Yes, piece-wise linear interpolation between the points would be much better than fitting the entire dataset onto a linear line. I suggested finding the regression of the dataset instead, which is easier to implement compared to interpolation. Interpolation may give better results, so it is up to you to decide which to use.

Different wheel speeds should not affect the exit angle significantly, only the amount of spin on the ball.

4 Likes

I would try and vary only one motor instead of both, because this is simpler and easier to implement, and if it does not give the desired results then I would vary both motors. Either way, I would test specific motor RPMs at a few different distances from the hub, and use those data points to find the rest of the positions, however that may be.

1 Like

Thanks. I will put more testing in.

We don’t pay any attention to the R-Squared value at all, we just test it with the robot to see if it works. Because of this, I have no scale of what would or wouldn’t be acceptable for an R-Squared value.

Typing that out made me realize that probably isn’t the best approach, so I’ll come back with the accepted R-Squared value once we actually have a robot.

Don’t worry about it, that’s what I do too :wink:. I am interested in seeing what you come up with though

I know this is a big ask. Could this be expanded to explain a few things I am a bit fuzzy on.

For instance what’s the relationship between the wheel diameter and speed for a top roller? If you have a 4in lower wheel and a 2in upper wheel, does the upper one have to be twice as fast to reduce ball spin?

Where on the top wheel is it considered the “exit” angle for like if it’s a 60° or 70° hood angle/shot?

Does the top wheel need to overhang/squish in more from the backing of the shooter hood? For instance when the ball travels the back of the hood it has 1" of squish but the upper wheel sticks in more lets say by 1/4in is that better or is it better to have it flush?

Is it more advisable to have the top roller connected to the shooter wheel or have it’s own motor? Seems like if they are mechanically linked both set slow by the same amount. However, if the top wheel has it’s own motor and is lighter, it can recover faster.

Any insight would be helpful! Thanks in advance to anyone that can help!

2 Likes

Spin is created by a difference in the linear speed of the two rollers. The greater the difference in linear speed, the more spin there is. A typical hooded shooter would convert about half its linear speed to spin and half to exit velo, an equal two roller shooter would turn all of it to exit velo and 0 spin. A shooter with a 4 in main and 2 in upper roller would convert 3/4ths of its linear velocity into exit velo and 1/4 to spin. Running the top roller at 50% higher speed would convert 7/8ths of the linear velo to exit velo and 1/8th to spin.

Exit angle is determined by where the compression releases. When having a smaller upper roller, the compression will release sooner on the upper roller causing the ball to move a couple degrees in the direction of it. Exactly how much this is depends on your compression amount.

If the upper roller does not increase compression, it won’t get much contact in which you will have inconsistent shots due to the ball not always reaching the new exit velo after leaving the main hood.

If you have an adjustable hood, I would recommend to link the rollers together due to not having to move a motor on the hood. If running a fixed hood, either setup can work and there are many little, but no major reasons to run one over the other.

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.