When balancing the forces of the motors is necessary, has any thought been put into using the brushless motors that have torque feedback via voltage sampling?
(Aside) If this is to much for the Arduino, would it make sense to use a raspberry pi? Since the cost per unit can’t be much more than an Arduino
The Raspberry Pi, while powerful, is a bad choice for this kind of application. The main reason is that it runs a full OS (linux), so there are a lot of things happening at the same time on it. This makes the timing of any operation hard to predict, as our program could be interrupted at any time by other programs (via the scheduler, that’s how your computer runs many things at once). Stuff like PWM-controlled servos become very jittery (I know, I’ve personally tried it) because the pulse timing just isn’t stable enough.
There are ways to fix that (like changing process priority or running a different scheduler), but they’re a bit esoteric, and they can break other things.
The much easier way is to simply run time-sensitive code on the “bare metal”, without an OS. This means your program is the ONLY thing running on the processor, which is what’s done in the world of microcontrollers. Arduinos are a very popular example, but there are actually many different versions with different capabilities. For example, the Arduino Due is a lot more powerful than the Mega we use by default, and it can be found for ~10$ on Aliexpress. The ESP32 is also pretty powerful, and even cheaper. Both of these run a 32-bit processor, as opposed to 8-bit on the Mega. That alone makes them much more suited to doing complex math.