Robotics Fundamentals Series: Motors
Table of Contents
Motion Overview
Robots often need to transport themselves from one place to another to perform a task, or they might need to move an arm to grab a tool. To do this, robots require actuators, which are generally various types of electric motors.
A simple example of a robot motion system consists of a motor controller, a motor drive, and a motor. The motor controller provides the intelligence and sends commands to the drive. The drive provides a current boost to actually drive the motors based on the commands from the controller. The motor drives the transportation system either directly or through a gear system or chain system.

Figure 1: Motion Overview
Output Types
Mobile robots are used to explore a wide variety of terrain, and use anything from propellers, legs, wheels, tracks, to arms to move. Examples of these can be found in various NI demonstration platforms including VINI, VolksBot, and Isadora. These robots use Mecanum wheels, normal wheels, and arms respectively. For embedded control, they use NI CompactRIO, an embedded platform which integrates a real-time processor and an FPGA. The CompactRIO also includes a reconfigurable chassis, which allows for various configurations of I/O, including sensor input and motor control.
VINI is a robot platform that makes use of Mecanum wheels to allows him to in any direction. As well as moving forward and backward like conventional wheels, they allow sideways movement by spinning wheels on the front and rear axles in opposite directions. These types of wheels are commonly used in applications such as autonomous forklifts that must maneuver in tight spaces.

Figure 2: National Instruments' VINI Robot
The VolksBot is a CompactRIO based robot with normal wheels developed by the Fraunhofer Institute in Germany.

Figure 3: Fraunhofer Institute's RT3 VolksBot
Isadora is a dancing humanoid robot that takes input from a human manipulating a smaller replica. She moves her arms and frame to match the movements of the replica. Isadora uses two CompactRIOs; one for the replica to record motion and one for the full-sized robot to play it back.

Figure 4: National Instruments' Isadora Dancing Robot
Motor Types
An electric motor that is commonly used in robotics applications is the servo motor. Servo motors run using a control loop and require feedback of some kind. A control loop uses feedback from the motor to help the motor get to a desired state (position, velocity, etc.). Since servo motors have a control loop to check what state they are in, they are generally more reliable than stepper motors. For more information on servo motors, refer to Servo Motor Overview at ni.com/zone.
Servo motors can be brushed or brushless. The difference between brushed and brushless servo motors is the mechanism used for commutation. Servo motors move or create torque based on magnetic forces being in opposition. In the simplest case there is a fixed magnet and a rotating magnet. We can cause the rotating magnet (rotor) to move by changing its polarity through a process of alternating the direction of the current through the magnet. The act of modifying the direction of the current in the windings is called commutation.
Brushed Motors
Brushed motors use mechanical brushes to commutate the current in the motor windings. Because brushed motors commutate the incoming current, they can be powered by a direct current (DC) source. Brushed servo motors have two main parts:
- A housing that contains the field magnets (stator)
- A rotor made up of coils of wire that are wound in the slots of an iron core and connected to a commutator
The brushes are in contact with the commutator and carry current to the coils. Over time these brushes can wear out and introduce friction into the system, this does not happen with brushless servo motors.
Brushless Servo Motors
Most brushless motors need an alternating current (AC) source. For brushless servo motors, the construction of the iron core is turned inside out. The rotor becomes a permanent magnet, and the stator becomes a wound iron core. The current in the external circuit is reversed at defined rotor positions. Thus, the motor is driven by an alternating current (AC). There are some brushless DC servo motors. These motors will typically contain some electronic switching circuitry to commutate an incoming direct current. Brushless servos tend to be more expensive but less prone to wear than their brushed brethren.
Stepper Motor
Perhaps less often used than servos for robotic locomotion, the stepper is still an important example of an electric motor and can easily be used. In general, they are slower but more precise.
The principle behind them is that stepper motors have a series of brushless teeth inside that can be energized with current such that the next tooth pulls the rotor and the previous tooth pushes the rotor due to the electromagnetic charge.
Stepper motors generally do not need feedback because they can be controlled precisely by the number of teeth equating to a distance moved. It is possible to miss teeth due to obstruction, though, so feedback can be used in the form of an encoder.
Explore the Developer Zone article on Encoders for more information.
Controllers
Many manufacturers create drive systems for robot manipulators. National Instruments has four CompactRIO modules for controller: the 9505, the 9512, the 9514, and the 9516.
Software Architecture of a Motion Control System
A good way to think of a motion control system in a robotics application is the concept of ever-more low level nested loops. The graphic below is a simplified representation of this idea.

Figure 5: Motion Control Software Architecture
At the high level you have the mission planning of the robot; that is, what is the ultimate goal of the robot’s actions. It could be a command to follow a series of markers or to move to a certain position. If the robot is tele-operated, these commands would most likely be sent from an interfacing off-board PC where a human is selecting the robot’s next mission or behavior. In the case of a fully autonomous robot, the mission planning might be executed on-board, relying on algorithms to make decisions.
Below that is the path planning; the question, ‘How do I get where I want to go for that mission?’, or, ‘How do I get my arm to move to that position?’. This could be done, for instance, on the robot’s controller. Check out the Robotics Fundamentals Series: Planning and Navigation article for more information.
Once we know where we want to go and at what rate, a motor controller will provide the control of the signals (PWM, current, etc.) to the actual motor drive to get us there. The control implementation commonly used is PID. Also worth noting is any safety feature would likely need to be implemented at this point. For instance, if a human is detected in the current path of a high speed robot, a kill signal would stop the motors or implement a brake.
National Instruments products can be used at all levels within the motion control system. For instance, VINI, the mapping robot which was discussed earlier, uses an Industrial Controller and a CompactRIO to execute mission planning and data processing duties. The NI Industrial controller is a rugged embedded platform running Windows XP. The Industrial Controller maintains the laser-scanned map and performs vision processing while the CompactRIO takes in sensor data and controls the servos on the camera system, for instance.
NI CompactRIO can also be used in combination with the Control Design and Simulation module in LabVIEW to complete all levels of the system. For instance, on the low-level control of velocities of the motors, the Control Design and Simulation module can be used for closed loop control. Check out the Compact RIO Control Design and Simulation Tutorial for an example of motor control.
NI CompactRIO can also be used with specialized motors which require a third-part motor controller. For instance, VINI used combined motor controllers/drives from Maxon Motors. To communicate with different drives, it may be required to use Pulse Width Modulation (PWM) or simple voltage levels.
NI SoftMotion 2009
The NI SoftMotion 2009 product uses the CompactRIO FPGA in conjunction with C-series motion modules for motion control. For a detailed look at how to use the C Series modules with NI SoftMotion 2009, check out Getting Started with LabVIEW NI SoftMotion and C Series Drive Interfaces.
To learn more about robotics, refer to the Robotics Fundamentals Series homepage at ni.com/zone.
See also:
Motor Fundamentals
Field-Oriented Controller (FOC) / Space-Vector Controller for a Brushless DC Motor
Differential Equations for Brushless DC (BLDC) Motor Model and Simulation
6-Phase (Trapezoidal) Control for Brushless DC Motors
Reader Comments | Submit a comment »
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).
