@inproceedings{nagy_an2014, author = {Geoff Nagy and Jacky Baltes and Andrew Winton and John Anderson}, title = {An Event-Driven Operating System for Servomotor Control}, booktitle = {RoboCup 2014: Robot World Cup XVIII}, editor = {R.A.C. Bianchi and H. L. Akin and S. Ramamoorthy and K. Sugiura}, address = {Joao Pessoa, Brazil}, month = {July}, pages = {285--294}, pdf = {http://aalab.cs.umanitoba.ca/%7eandersj/Publications/pdf/NagyRoboCup14.pdf}, year = {2014}, abstract = {Control of a servomotor is a challenging real-time problem. The embedded microcontroller is responsible for fast and precise actuation of the motor shaft, and must handle communication with a master controller as well. If additional tasks such as temperature monitoring are desirable, they must take place often enough to be useful, but not so frequently that they interfere with the operation of the servo. Since microcontrollers have limited multi-tasking capabilities, it becomes difficult to perform all of these tasks at once. It was our goal to create servo firmware with high communication speeds for humanoid robots, and our solution is generalizable to non-humanoid motor control as well. In this paper, we present an event-driven operating system for the Robotis AX-12 servomotor. By using interrupts to drive functionality that would otherwise require polling, our operating system meets the real-time constraints associated with controlling a servomotor.} }