Smooth motion is critical to robotic applications like haptics or those requiring high precision force control. These systems are often direct-drive, so any torque ripple in the motor output must be minimal. Unfortunately, low inherent torque ripple motors are expensive. We came up with a method to map and suppress torque ripple from cogging torque so low cost motors can perform as well as expensive ones, while using only a position sensor, which is already required for servo control.  We call this compensation “Anticogging”.

Project Summary

Permanent magnet synchronous motors are among the highest performing motors in terms of efficiency, power density, and torque density. These types of motors are found in a wide variety of robotic applications; some examples are stepper motors, which are used for position control in devices like 3D printers, and brushless DC motors, which are used in high speed, high power devices like quadrotors. Unfortunately, they’re not perfect. They exhibit many types of torque ripple, meaning their motion is not always smooth. Torque ripple comes in many forms. Mutual and reluctance torque ripple come from a mismatch of the electromagnets, permanent magnets, and other magnetic materials magnetic fields, and are only present when current is driven through the motor. Cogging torque, also called detent torque, is from the interaction of the permanent magnets and the other magnetic materials like the core of the stator, and is always present. We concentrate on cogging torque in this work, since mutual and reluctance torque are well understood.

Typically, when paying for expensive motors, we largely pay for a more optimized design, higher quality materials, and higher quality manufacturing.  The below plot shows the cost of  11 motors of similar size and type and their Torque Ripple Ratio, which is a metric of torque ripple.  You can see that the motors driven traditionally (Nominal) have an inverse relationship with cost.

Trr v Price

We argue that you can compensate for most of these cost saving shortcuts by mapping the motor’s torque ripple and feeding in the inverse of this map to the motor’s produced torque.  The results of the compensated motors are labeled as Anticogged.  The torque ripple ratio is significantly decreased for each motor and every motor now performs better than the best, most expensive nominal motor.

To make sure this works in real applications, we made a direct-drive, human-safe robotic arm.  The robot has long arms to accommodate a large workspace, but this accentuates angle errors.  We used the cheapest of the tested motors as actuators.

Anticogging Arm

To test this motor, we commanded it along various trajectories including the one in the figure below.  The red is the commanded trajectory, the green is the resulting trajectory with the motors as they were purchased, and the blue is with the compensation turned on.  You can see marked improvements with the anticogging turned on, particularly in the bottom left and top right of the “M” and the top left of the “O”.

MODLAB Trajectory


Lab Video with Voice Over IJRR

Lab Video with Voice Over RSS 2014

Presentation at RSS 2014


[Anticogging: Torque Ripple Suppression, Modeling, and Parameter Selection]

  • [DOI] M. Piccoli and M. Yim, “Anticogging: torque ripple suppression, modeling, and parameter selection,” The international journal of robotics research, vol. 35, iss. 1-3, pp. 148-160, 2016.
    author = {Piccoli, Matthew and Yim, Mark},
    title = {Anticogging: Torque ripple suppression, modeling, and parameter selection},
    volume = {35},
    number = {1-3},
    pages = {148-160},
    year = {2016},
    doi = {10.1177/0278364915599045},
    URL = {},
    eprint = {},
    journal = {The International Journal of Robotics Research},
    abstract ={Smooth motion is critical to some robotic applications such as haptics or those requiring high precision force control. These systems are often direct-drive, so any torque ripple in the motor output must be minimal. Unfortunately, low-torque ripple motors are expensive. Low cost brushless direct current motors are becoming more prevalent, especially from the hobby remote control community. These motors often have the required high-torque density; however, they also have significant torque ripple. This paper presents a low cost method for anticogging, the compensation of cogging torque. While other methods exist to compensate for current-based torque ripple (mutual or reluctance torque), none have addressed cogging torque, except by adding expensive force sensors. This paper presents two methods that use a position sensor (already present for servo motors) to map cogging torque to rotor position. The map is played back according to position reported from the sensor to cancel the cogging torque. The design and testing of a low cost haptic arm using anticogging shows validation; however, the approach is much broader, and can be applied to any precision force application. A model of torque ripple sources are included as a function of pulse-width modulation frequency to help choose the optimal pulse-width modulation frequency to minimize torque ripple. Test results on eleven different motors show a removal of up to 88% of torque ripple with no added cost in robotic servo applications, and in some cases having better performance than motors that are over nine times as expensive.},


Best paper finalist at RSS 2014!

[Cogging Torque Ripple Minimization via Position Based Characterization]

  • [PDF] M. Piccoli and M. Yim, “Cogging torque ripple minimization via position based characterization,” in Proceedings of robotics: science and systems, Berkeley, USA, 2014.
    AUTHOR = {Matthew Piccoli AND Mark Yim},
    TITLE = {Cogging Torque Ripple Minimization via Position Based Characterization},
    BOOKTITLE = {Proceedings of Robotics: Science and Systems},
    YEAR = {2014},
    ADDRESS = {Berkeley, USA},
    MONTH = {July},