We eventually decided to slap on a magnetometer to the robot to help with PID, but for some reason, the magnetometers wouldn't reliable detect the heading properly. What we noticed in fact was that whenever the motors were turned on, or at different voltages, the magnetometer would just spin out of control and no longer be able to be used for error correction.
The reasoning for this is most likely because the motor generates its own magnetic field that interferes with the magnetometer. This makes the magnetometer nigh unusable then since we'll always be driving when its active, but considering that other robots can use magnetometers just fine even with the motors running, there must be something missing that hasn't been accounted for.
Your assignment will basically be to figure out how to get it so that the magnetometer's readings aren't affected by the motors, possibly through some kind of insulation or error correction that ideally shouldn't take more effort than its worth. You can also report if maybe it's not possible to feasibly account for this.
If you ever get lost or don't know where to start with this issue, don't hesitate to reach out.
We eventually decided to slap on a magnetometer to the robot to help with PID, but for some reason, the magnetometers wouldn't reliable detect the heading properly. What we noticed in fact was that whenever the motors were turned on, or at different voltages, the magnetometer would just spin out of control and no longer be able to be used for error correction.
The reasoning for this is most likely because the motor generates its own magnetic field that interferes with the magnetometer. This makes the magnetometer nigh unusable then since we'll always be driving when its active, but considering that other robots can use magnetometers just fine even with the motors running, there must be something missing that hasn't been accounted for.
Your assignment will basically be to figure out how to get it so that the magnetometer's readings aren't affected by the motors, possibly through some kind of insulation or error correction that ideally shouldn't take more effort than its worth. You can also report if maybe it's not possible to feasibly account for this.
If you ever get lost or don't know where to start with this issue, don't hesitate to reach out.