|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools |
Rating:
|
Display Modes |
|
#1
|
|||
|
|||
|
Fastest Possible Canburglar
I wrote a python script to calculate the fastest possible canburglar you could make if it was powered by motors... it appears to be in the 20 ms range. This was inspired by the can burglar from 973 that we were putting on our robot in place of the "tail" at the championship. Let me know what you think.
I attached the python file as canburglar.txt and a pdf which I used for some of the equations. Here is the code: import math ## Using SI Units - kg, m, s, current in Amperes, angles are printed in degrees but calculations are in radians ##System t = 0 e = 2.718281828459045 dt = 0.001 rod_mass = .15 # kg rod_length = 2.5 # m hook_mass = .05 # kg J = ((16/48) * rod_mass * (rod_length ** 2)) + hook_mass * (rod_length ** 2) ## rod moment of inertia + hook moment of inertia angle = 0 terminalangle = 90 * (math.pi / 180) # in radians #Motor Banebots RS-775 down-regulated to 12v motor_num = 4 motor_stall_I = 100 motor_stall_T = 1.175 motor_free_omega = 13000 * math.pi * 2 geardown = 1 test_endpoint = 3000 print(motor_free_omega) def getVelocity(): power_term = -((motor_stall_T * motor_num * geardown)/ (J * (motor_free_omega / geardown))) * t return (motor_free_omega / geardown) * (1 - e ** power_term) lowestt = 1, 1, 10000 # low geardown, high geardown, time while (geardown <= test_endpoint): #print("terminal velocity = " + str(motor_free_omega / geardown / (2 * math.pi))) while angle < terminalangle: angle += getVelocity() * dt t += dt print("terminal velocity = " + str(motor_free_omega / geardown / (2 * math.pi)) + " rpm " + " geardown = " + str(geardown) + " angle = " + str(angle / (math.pi / 180) ) + " t = " + str(t) + " velocity = " + str(getVelocity() / (2 * math.pi)) + " rpm " + " \n") #print("geardown = " + str(geardown) + " angle = " + str(angle / (math.pi / 180) ) + " t = " + str(t)) if (lowestt[2] > t): lowestt = geardown, geardown, t elif lowestt[2] == t: lowestt = lowestt[0], geardown, t t = 0 angle = 0 geardown += 1 print("fastest canburglar, geardown = " + str(lowestt[0]) + " :") geardown = lowestt[0] while angle < terminalangle: angle += getVelocity() * dt t += dt print("terminal velocity = " + str(motor_free_omega / geardown / (2 * math.pi)) + " rpm " + " geardown = " + str(geardown) + " angle = " + str(angle / (math.pi / 180) ) + " t = " + str(t) + " velocity = " + str(getVelocity() / (2 * math.pi)) + " rpm " + " \n") if (test_endpoint == lowestt[1]): print("******************************************* ************************************************** **********************************************") print("**************** Warning, you may not have found the absolute minimum for cangrabber speed. Increase test_endpoint. ***********************") print("******************************************* ************************************************** **********************************************") else: print(" Choose a gear ratio between " + str(lowestt[0]) + " and " + str(lowestt[1])) |
|
#2
|
||||
|
||||
|
Re: Fastest Possible Canburglar
Only four rs775s? With four CIMs we got .18 seconds.
![]() |
|
#3
|
||||
|
||||
|
Re: Fastest Possible Canburglar
What about elastic//spring powered? I could see that being much faster.
|
|
#4
|
|||
|
|||
|
Re: Fastest Possible Canburglar
You can get slightly faster times if the gear ratio is not constant. A linkage or, non-round pulley or sprocket set can accomplish this.
Do you account for voltage drop? Stalling all those motors drops the voltage considerably. Do you consider the inertia of the motors? With the gear reduction, they end up making a significant contribution to the inertia of the system. This is a good first step. Simulations should always start simply, and add other factors and complexity as you prove it out. |
|
#5
|
||||
|
||||
|
Re: Fastest Possible Canburglar
This guy knows whats up.
|
|
#6
|
||||
|
||||
|
Re: Fastest Possible Canburglar
I'll explain when I have a few minutes and not on my cell phone, but we figured out a way to start in the holes legally. It was cheesecaked onto our 4th bot, but since it basically put a robot out of commission it wasn't worth playing in finals. Plus we were not exactly sure if it would be called legal or not, even though it was 100% within the rules and within the field.
|
|
#7
|
|||||
|
|||||
|
Re: Fastest Possible Canburglar
Quote:
One interesting aspect of this game is that the canburglar wars didn't really start until the last day of the season (as predicted by many). A side effect of this is that the canburglar rules/corner cases/how rules would be enforced by inspectors and referees were not really tested until Championships. Harpoon guns, crossbows, tennis balls on strings, hundreds of pounds of spring force, loopholes - there was a little of everything. |
|
#8
|
||||
|
||||
|
Re: Fastest Possible Canburglar
Quote:
|
|
#9
|
|||||
|
|||||
|
Re: Fastest Possible Canburglar
Quote:
|
|
#10
|
|||
|
|||
|
Re: Fastest Possible Canburglar
Quote:
The real question is do you think you could do all the set-up required in under 60 seconds? Last edited by Navid Shafa : 27-04-2015 at 14:34. |
|
#11
|
|||
|
|||
|
Re: Fastest Possible Canburglar
Ha! Nice find! I wish you had done it, it might have led to some interesting and productive discussions regarding lawyering and the assumed intent of the rules.
I asked a head ref about a similar case, and he said that he couldn't rule without seeing it, but said he would probably have asked the team to come back and fix the offending mechanism. |
|
#12
|
||||
|
||||
|
Re: Fastest Possible Canburglar
<G10> does not require set-up in less than 60 seconds, only that set-up must not cause a significant or repeated delay to starting a match. The 60 section portion in the blue box is simply an example. There is not set time to when a 60 second clock would start, how to distinguish it from regular autonomous set up (which frequently takes longer than 60 seconds), etc.
I am very curious as to how it satisfied <G7> B&C while being within the field borders, though. |
|
#13
|
|||
|
|||
|
Re: Fastest Possible Canburglar
Quote:
|
|
#14
|
|||
|
|||
|
Re: Fastest Possible Canburglar
FIELD includes the width of the guardrail, and LANDFILL ZONE doesn't include the "and including" wording. That's my guess.
Quote:
|
|
#15
|
|||
|
|||
|
Re: Fastest Possible Canburglar
Bingo
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|