Hello, I have an application that's going to be a little strange for this forum, but the hardware is exactly what I need, and hopefully I can get the software to work. I make combat robots (think of tiny Battlebots) that use differential drive, and they don't always drive straight. Some people use helicopter gyros to correct for things like wheel slip and keep them driving in a straight line, but they don't work when upside down. With the accelerometer on the flight controller, you can tell when you're upside down and reverse the steering so that everything works again. I have a fair amount of C and Arduino programming knowledge, and am not afraid of getting my hands dirty if I need to in order to accomplish this.
I downloaded the GCS software and there seems to be a ground vehicle mode that supports differential drive, but it won't let me look through the menus without a board attached. Does this mode use the gyro to stabilize yaw rotation?
I need to be able to enable and disable the gyro stabilization from the RC transmitter, in case something on the robot breaks and I need manual control. Can I have two different mixes that I switch between using the transmitter?
I assume there is no built in way to operate upside down (reverse both motor positions and directions), but is there a way to implement it in the custom configuration? It would be preferable to switch between modes on its own based on accelerometer data, but it would also be fine to have to flip a switch on the transmitter.
I'm planning on using the CC3D Atom, because it's small and low cost. Why is this platform not recommended for new designs?
If I have to delve into the code, how accessible and readable is it? Is there a document somewhere describing the general structure of the codebase?