I’m using Simple FOC for robotics. Yes you can synchronize many motors for use on diferential drive wheels, arms and legs. Just as if you had brushed DC gear motors, you need encoders on the motors and a PID loop to control velocity of the wheels or position of the joint.
A robot with wheels where each is powerd by a diffent motor will NEVER drive straight even with PID velocity control on each wheel. The friction under each wheel is differnent, or a some other tiny thing turns the robot. Maybe the winding of the moters are not the same and one has 1 pole with lower inductace. The physical world is not perfect.
The solution is to have the master computer meare the robot’s heading with a sensor like an IMU or even a simple gyro. The master computer runs a “heading PID” and commands the velocity set points in the left and right motor to keep the heading constant. (or to keep it not constant if the plan is to roll along an arc or a conic section.
A simple industrial solutio is to paint a line on the floor and the robot uses optical sensors to folow the line. IMU chips cost under $10.
Then you find the gyro drifts at some number of radians per seconds and you need a clever scheem to compensate. We typically use multiple heading and odomerty sensors, optical-flow and IMU and GPS and wheel sensors and put it all in a Kalman filter. Lucky for us ROS has funtions to do everything I described above, do not re-inven it.
In short, expect the wheels to slip and not grip the floor as theory would predict. Sense the error and corect it by adjusting the velocity set point of each wheel
Same for my walking robot, you need sensors and multiple levels of control loops. Thevelocity PID in Simple FOC is only the innermost loop