Here are the first steps of the vector bot that drives my BB-8! Each wheel is offset by 120 degrees. This is just looping through 360 degrees of movement. I think the wobble is from my inability to cut 120 angles by hand 😉
The math is pretty straight forward to find each motor’s relative velocity. Since the SIN method assumes radians, I have to convert degrees to radians.
motor_1_rv = SIN(degrees * pi / 180)
motor_2_rv = SIN((degrees + 120) * pi / 180)
motor_3_rv = SIN((degrees + 240) * pi / 180)
These will return a value between 0 and 1. Then you take each relative velocity and multiply it by an absolute velocity.
Later, I’ll probably map these relative values so the highest in the relative set would be 1. That way you don’t end up with two motors going 0.84 * velocity instead of both moving at 100%. Things to think about.