Electrical – Choosing the right motor to control mirrors

motortracking

I am developing a computer vision project which involves developing a system using mirrors for pan and tilt movement of the camera field of view. Mirrors are independent of each other regarding movement. I am confused on which kind of motor should be best suited for rotating the mirrors.

I have already tried stepper motor and digital servo motor for this application with not so good results. With servos control and speed are easy but update frequency is not so good (50 Hz). I am using Pololu Maestro controller to control servos. Since this is comparable to time between two frame capture, motors do start-stop sort of motion which kills smoothness. With stepper motors, control is difficult as compared servos. With no obvious reason to me, when I send commands to stepper motors, it gives very bumpy motion.

I am looking for motors which can be updated almost every 10ms with a resolution of around 0.1 degrees. I also want to control parameters of rotation like speed and angular acceleration.

One similar system is shown on Youtube: https://www.youtube.com/watch?v=vabC62F56q4

Best Answer

You are comparing potatoes and apples. The limits of stepper motors are known, while you are comparing servo motors, which indeed are RC servos, not the PMSM or BLD servos. In the link you can see BLDC motors. Now it is up to you to choose a BLDC or PMSM motor and driver. The you' ll need a master controller, which will send position setpoint with known speed, acceleration - aka trajectory generator. Each driver has to correct the actual position vs. setpoint position with the use of cascaded control loops - position, velocity, current loops.

enter image description here

This cascaded controll loop has also feedforward paths, like setpoint velocity from trajectory planer is fed forward to the velocity loop, regardeless what is the position error. In the same manner you have a torque/current feedforward path, derived from velocity setpoint. The required feedforward torque is: \$ T= J\cdot\alpha\$, where \$J\$ is the moment of inertia of the system: motor's rotor inertia + transformed inertia of the load. \$\alpha\$ is the angular acceleration \$\alpha=\dfrac{d\Omega}{dt}\$, where \$\Omega\$ is the velocity setpoint. A high end servo is updating the current controller at aprox. 50 micro seconds, the velocity controller at 100 micro seconds, and the position controller at 500 micro seconds or more, it depends on the trajectroy planner.