Conversion from motor speeds to velocity


Hey everyone, for this year’s challenge, I am looking to develop a software that will allow for the robot to automatically determine the displacement from a certain localizer or way point at a field location (such as a flag) and determine the velocity at which the robot will need to shoot at to reach that displacement at a certain height. The question that I had was once I have my values for displacement and height in position, and the velocity calculated, how do I convert that value into motor speeds in ROBOTC? Whats the most efficient way to swap value as such, not accounting for an internal gear ratio, but just a formula to input and convert.

Thanks for your help,
Soham 4001A


The various encoders available in the VEX system measure angular velocity. I believe what you’re asking here is how to take the linear velocity that you determine the ball needs and convert that into an angular velocity? Which means you need to convert from m/s or ft/s to RPM or similar. The easy thing to convert is the time, if translating to RPM: there are 60 seconds per minute, so you start by multiplying by 60. Then you need to figure out how many revolutions equate to the meters or feet portion of your target linear velocity. You do that by dividing by the launcher wheel’s circumference: 1 revolution per 1 circumference. So a 4" wheel with a target speed in ft/s would be 1 revolution / (3.14 * 4/12 feet).

So if you had a target launching speed of 10 ft/s with a 4" launcher wheel it would come out as 10 * (60 / 1) * (1 / 1.05) = 571rpm.

As for how to convert RPM into motor power values, for that you will need sensors and a PID loop.


Thank you


Be careful with those launch speeds. Presumably you’re using a flywheel. But are you using a single flywheel or a double flywheel? The ball will be moving at a different rate depending on which approach you’re using. If you’re using a double flywheel, the launch speed of the ball will match the tangential speed @John Tyler told you, assuming your using the angular speed of the flywheel when the ball comes shooting out of it, not before firing the ball. You’ll need to set it to a higher speed before firing, though. If you’re using a single flywheel, the ball will actually launch at half of that speed, though, not at that speed, so you’ll need to go with double the speed you want to attain.