We recently competed in the Robot World Cup, held in Auckland, New Zealand, facing some very tough competition against some of the best high school teams in the world. While we are a college team, we followed all of the high school rules for this competition (other than alliances), including only using 10 motors and no custom electronics.
This was one of our two main competition robots. It was the only robot that we built that features the six-bar arm. It performed pretty well as an isolation robot, clearing the zone efficiently. We have a couple of videos of it driving around as well.
The power expander is for the arm motors and intake. The idea is that if your power expander happens to fail or you forget to plug it in or it comes out during competition, at least you still having a working drivetrain and can push things.
Or you actually use the status port form the power expander to check if it’s turned on (not that we actually did that…) And I’d also only recommend that if you have 4 drive motors, if you have 6 then there’s 2 others on the Cortex and having them spread across 2 devices seems really really really bad to me…
I just think it’s bad because if the power expander, for example, were to cut out or get unplugged then some motors are now trying to drive the other ones which aren’t receiving power and it’s just then putting more stress on the remaining ones. Also the fact that if one of the batteries was lower than the other a similar kind of thing would happen with some providing less torque than the others.
It’s no so much that I think spreading it across two current sources is bad in terms of redundancy, but that there’s variation in each of the sources, and if your Cortex were to die then you can’t control your robot anyway, so the redundancy becomes kind of pointless…
Surely the only part it would help with would be if you were often approaching the 4A limit on the motor ports? However I, personally, have never even once had an issue with that.
If one souce gets cut out, then YES, you are backdriving the unpowered motors, but at least you aren’t immobile.
One of the batteries will always be lower than the other.
Every individual motor has its own torque-power curve, so the torque is never shared perfectly equally anyway. Each motor contributes as it is able; eg 393+393+269 on each side of drive base.
Having one of the 4A branches on the Cortex die does not mean the power expander or the other branch or the communication/control is dead, so there is some point to redundancy across power limiter branches.
Yes, balancing the power draw equally across all branches helps prevent approaching the 4A limit on any individual branch.
“A wise man can learn from the mistakes of others, as well as from his own.”
A greedy empiricist tries to makes mistakes as quickly as possible, to climb the learning curve as quickly as possible.
You may not be immobile initially, but I’m pretty sure the remaining powered motor(s) would struggle to maintain the load of the drive and then overload themselves which would eventually render your robot immobile. But I agree with what you say about each motor being different, I was more referring to worst-case scenarios where the battery voltages differ by a large amount.
I wasn’t referring to one of the breakers, but rather the Cortex itself, whether that be the battery connection being dodgy, or the battery coming unplugged in a match.
I am merely just going of what I have learnt, from the way I build robots. In all my years of doing VEX I have never once tripped one of the circuit breakers in either the Cortex, the Power Expander, or the PIC. However, I suppose that is exactly what you were talking about in terms of your “A wise man can learn from the mistakes of others, as well as from his own.”
I am someone who generally prefers to not even use a Power Expander on a (High School) robot unless it does, as you said, have issues with the circuit breakers tripping or battery life being shocking, just because it adds weight and another source of possible failure (although also reliability, as you are saying) to the robot.
I assume you mean that when you don’t send any power to the arm motors, if the arm is off the ground it falls to the ground. This is a reasonably common issue with six-bars because the load is so much further away from the pivot point in comparison to a four-bar.
A simple solution is to use an “arm reverse” - program your robot so that when the arm motors are not receiving any instructions from the controller, it is always driving “upwards” at a small motor speed, such as 20. You will need to play around with this value to find out what works. If you can, you should also use potentiometers on your arm to help control when the automatic arm reverse is on. This solution is not particularly healthy for the motors, but it does work as a simple and easy solution.
Hopefully that helps! Feel free to ask if there’s anything that you’re not sure about.