Hi, my motors are overheating after about 5-6 minutes of driving. This was determined by reading brain log and by the fact that the motors drop to half performance. It happens simultaneously on all 4 motors (we get 4 red warnings at a time in the log) so it is not a faulty v5 motor, faulty port or some mechanical issue like extra friction, wheels spin freely w/o motor). I think it is normal, because the robot is a 4 wheel drive, getting on the heavy-ish side, with semi-locked Omnis (so we don’t get pushed sideways from platforms) so there is a lot of friction at turns to be overcome. Motors are v5 with 200 rpm gearboxes driven by chain 1:1, no exotic gearing.
Question is this: while during autonomous the built in PIDs are essential (and quite awesome) and the HOLD function is super useful, we are concerned that during driver control those same features are straining the motors. During aggressive driving the motors overheat and chains constantly snap. We don’t want to give up the speed of the 200rpm, instead is there a way to make the acceleration/deceleration around zero stick a bit smoother and gentler? We use exponential drive which helps a bit, but still, whenever direction is changed abruptly or the sticks are released (I know it’s a matter of training driving properly, easier said…), the robot comes to a stop too abruptly and the robot is visibly stressed. Also we found that RobotMesh Python has a built in “vex.controller.deadband” class, but not sure how to use it and what it does. Does it COAST or it simply sends “Spin motor at 0” or it sends “stop motor”?
Essentially, any programming tips to make it easier on the motors and overheat them less and make driver control a bit smoother?
Here is the basic joystick code we use. Thanks in advance!!
while True:
axis_3 = con.axis3.position(vex.PercentUnits.PCT)*abs(con.axis3.position(vex.PercentUnits.PCT))/100
axis_1 = con.axis1.position(vex.PercentUnits.PCT)*abs(con.axis1.position(vex.PercentUnits.PCT))/100
motor_fl.spin(vex.DirectionType.FWD, axis_3 + axis_1,vex.VelocityUnits.PCT)
motor_bl.spin(vex.DirectionType.FWD, axis_3 + axis_1,vex.VelocityUnits.PCT)
motor_fr.spin(vex.DirectionType.FWD, axis_3 - axis_1,vex.VelocityUnits.PCT)
motor_br.spin(vex.DirectionType.FWD, axis_3 - axis_1,vex.VelocityUnits.PCT)