- Pololu motors have individual differences in output torque.
- Basically, the left and right motors should be selected so that the individual differences are not too large.
- Currently, there is no efficient way of selecting a pair of motors. Just trial and error.
- You can now get the calibration data (2025.08.06)
- If the difference is small, it can be compensated for by the calibration API.
import keyboard
import sys
from maru import osx001Driver
from serial.tools import list_ports
import time
def main():
args = sys.argv
targetId = 11
# Exit if no serial port and id specified
if len(args) < 3:
ports = list_ports.comports()
devices = [info.device for info in ports]
print("Specify serial port and robot id\r\n")
print("e.g., python calibrate.py COM3 1\r\n")
print("Port List : \r\n")
for port in ports:
print(port)
sys.exit(0)
# Initialization
driver = osx001Driver(args[1])
targetId = int(args[2])
driver.getTargetID()
driver.calibrateMotor(targetId)
if __name__ == '__main__':
main()
- When the above program is executed, the robot first rotates in CCW, then CW.
- If the motor output is weak, it takes time to start rotating.
- If the motor's output is strong, the robot loses its posture during rotation.
- Running the robot on a steel plate.
- Attach a weight to the robot so its center of gravity is lowered.
- The built-in IMU measures the rotation speed and specifies the correction parameters.
- There is a bug where CCW is skipped if you calibrate again without switching off the power.
- Turn off the power once and calibrate again.
- In the new firmware (ver.3), the LED blinks during calibration (2025.08.06)
Audio noise is the sound of the 3D printer operating near the table. (firmware ver 2)
Audio noise is the sound of the 3D printer operating near the table. (firmware ver 2)