I’m working on a project with my students that requires precise speed control, and I’m exploring the possibility of using open-loop control with the IQ motors. Specifically, we’re looking into projects like line following and balance robots, where consistent motor output based on a simple power value is crucial for implementing P or PID controllers.
My understanding is that the IQ motors primarily operate in a closed-loop velocity control mode, which aims to maintain a target speed regardless of load. This is great for many applications, but it introduces challenges when trying to implement P or PID control strategies, where we need to directly control the motor’s power.
We’ve compared the performance between LEGO Spike and VEX IQ Gen 2. The LEGO Spike system has a significant advantage due to its ability to directly control motor power, enabling effective implementation of P/PID control. This puts students who only have access to VEX IQ at a considerable disadvantage when trying to explore the same control concepts.
We do not support direct voltage control for IQ motors. Some APIs may accept voltage as a parameter, but it’s usually so code written for V5 will still build.
While I appreciate the benefits of the closed-loop velocity control. It doesn’t need to be a voltage control which may damage the motor, but is it possible to has a feature that allows direct power control of the motor, expressed as a percentage from 0 to 100%, mirroring the functionality found in the LEGO SPIKE hub. This would enable true open-loop operation, treating the motor like a standard DC motor, which is vital for certain control strategies.
It’s surprising that the VEX IQ Gen 2, with its advanced capabilities, doesn’t include this basic power control mode. This limitation creates a noticeable performance gap when compared to other platforms, hindering the implementation of projects that rely on direct motor power manipulation.