Programmable Versus Fixed-Function Controllers: Alternatives for Complex Robotic Motion

author avatar

10 Sep, 2020

Image: KUKA

Image: KUKA

Article 6 of our Cobot Series: Motion control of today's sophisticated robotic arms is as difficult as ever.

This is the sixth article of an eight-part series that explores how collaborative robots or cobots are transforming industrial workspaces. It will survey the technologies that have converged to make robotic influence possible, unpack the unique engineering challenges robotics pose, and describe the solutions that are leading the way to the influential robots of the future.

The articles were originally published in an e-magazine, and have been substantially edited by Wevolver to update them and make them available on the Wevolver platform. This series is sponsored by Mouser, an online distributor of electronic components. Through their sponsorship, Mouser Electronics supports spreading knowledge about collaborative robots.


Motion control of today's sophisticated robotic arms, regardless of their size or power, often requires simultaneous management of multiple axes. Modern electronics—including motors, device drivers, control systems (formerly all analog, but now digital), feedback sensors, and power-switching devices such as metal-oxide semiconductor field-effect transistors (MOSFETs) and insulated-gate bipolar transistors (IGBTs)—now make achieving precise motion control easier than it was just a few years ago. At the same time, however, the demands on system performance have increased dramatically, so the overall project of implementing motion control is as difficult as ever.

Nonetheless, there's one unavoidable fact: Robotics is largely a mechanical function, so in reality mechanical systems must be configured into the control loop. These systems include gear backlash, mechanical tolerances, vibration, motor performance, mass inertia rotation, momentum, mechanical structure flexibility, variable loads, and more. For these reasons, it’s important to choose the type of motor that best suits the robotic operation you’re trying to achieve—usually the best choice is a brushless DC motor or stepper motor in low to moderate power situations.

Another vital decision relates to sensor-based feedback. Most robotic applications use some type of feedback sensor to accurately gauge the end-effector's position and thus its velocity and acceleration (recall that velocity is the time integral of position, and acceleration is the time integral of velocity). This feedback transducer can be a Hall-effect sensor, a synchro/resolver, or an optical encoder. While it’s easiest to put the encoder on the motor, because of the mechanical issues noted above, placing it there may not produce sufficiently accurate data about the end-effector's actual situation for the application. Therefore, the sensor may need to be mounted closer to the load endpoint.

Some motion-control applications operate without a sensor, which reduces the cost and mechanical complexity. Rather than using a sensor for feedback, sensorless field-oriented control (FOC, also called vector control) uses precise, synchronized readings of the current and voltage at each phase of the motor windings; FOCs then perform complicated frame-of-reference transformations and matrix calculations in real time to determine a motor's position. Eliminating the sensor reduces the hardware cost, but it necessitates significant computational capability and more complex programming. Many robotic designs still prefer to use sensors because FOC doesn’t provide the same level of confidence, credibility, and robustness that using a direct-sensor readout offers.

Understanding Basic Robotic Configurations

While the general public may associate the term "robot" with a mobile, lifelike servant or assistant, most robotic systems in the industrial domain are stationary and use a variety of mechanical arms and configurations to perform tasks. Among the most common arrangements are:

The Cartesian robot, which has three linear motion axes, one for each of the x-, y-, and z-planes. This robot is used for pick and place machine operations, sealant applications, and basic assemblies.

Figure 1: The Cartesian robot is the easiest to comprehend and control because it has the simplest
 equations and works in the x-, y-, and z-planes. Image: MachineDesign

In a cylindrical robot, all motion is confined to a cylinder-shaped zone. It combines linear motion in the y-plane, linear motion in the z-plane, and rotational motion around the z-axis. This robotic arrangement is used for assembly, tool handling, and spot welding.

Figure 2: The cylindrical robot has motion along two linear axes and around one rotational axis

The spherical or polar robot combines two rotary joints and one linear joint, and the arm is connected to the base with a twisting joint (Figure 3). Its motion is defined by a polar coordinates system and confined to a spherical zone. This robot is found in welding, casting, and tool-handling applications.

Figure 3: The spherical or polar robot combines motion around two rotary axes and along one linear axis, and it requires numerous calculation-intensive transformations between coordinate frames of reference

The robotic approaches cited here offer three degrees of freedom, using a combination of linear and rotary motion. However, some applications need only one or two degrees. More advanced robotic arms, or articulated robots, combine additional linear and rotary motion for almost human-like dexterity and flexibility (Figure 4). Some high-tech arms provide six, eight, or even more degrees of freedom.

Figure 4: The articulated robotic arm combines multiple rotation and linear motion modes for many
degrees of freedom, but it also requires careful coordination among the actuators and arms.

Other designs use special combinations of linear and rotary motion for application-specific situations, such as the parallelogram implementation, an implementation used for precise and rapid motion over short distances (for example, to pick and place tiny components). As the number of degrees of freedom increases, achieving rapid, smooth, accurate, and synchronized control along each of these degrees grows exponentially more challenging.

Considering Trajectory Profiles

The motion-control objective in robotics seems simple enough: Have the end-effector optimally reach its target position as quickly and accurately as possible with the supported load. Of course, there are trade-offs involved, as in all engineering decisions, depending on the priorities associated with the optimum result in the given application.

For example, is it acceptable to accelerate and decelerate quickly to rapidly reach a higher velocity if the result is overshot and if there is even possible oscillation at the endpoint? Is it worth trading accuracy for speed, and to what extent? How are the choices of acceleration, velocity, and position related to the desired transition from position A to position B? What are the priorities and parameters that define "optimum" in a particular application?

Specialists in motion control for robotics and other motion applications have developed standard trajectory profiles that provide various ways to implement the desired trade-off solution for a given application. All choices involve significant real-time calculations based on the present situation and feedback signal, but some impose a more substantial, high-resolution computational burden. These profiles include:

  • The simple trapezoid, where the motor accelerates at a fixed rate from zero to a target velocity, stays at that velocity, and then ramps down at a fixed rate to zero velocity at the desired position (Figure 5). Higher rates might speed up the entire positioning cycle, but they might also induce sudden changes in acceleration motion (called the jerk) that, in turn, adds inaccuracy and overshoot.

Image 5: The simplest motion-trajectory profile is the trapezoid, which has constant acceleration to the target velocity, constant path velocity, and constant deceleration between the start and endpoints.

  • The S-curve, a frequently-used enhancement to the trapezoid, where the acceleration rate ramps up from zero then decreases as the target velocity is achieved (Figure 6). As the target position is reached, the deceleration rate is ramped up and then reduced as the endpoint is near. The S-curve has seven distinct phases, in contrast to the three phases of the trapezoid.

Figures 6: S-curve path is more complicated than the basic trapezoid, but it eases the jerk (change in acceleration) at each transition point of the path.

  • The contoured motion, where the user establishes a set of desired positions, and the motion controller directs a smooth, jerk-free transition profile through all these positions (Figure 7). This allows the ultimate flexibility and control, which is necessary for advanced-motion situations. The required control-direction calculations to achieve smooth curve-fitting are complex and must be accomplished without the loss of resolution due to rounding or truncating errors, despite the many calculations.

Figure 7: The contoured-motion path allows the user to define a series of position-marker points between the start and endpoints, and the controller must guide the end-effector through these points in a smooth curve.

There are other profiles in use, some of which are associated with specific application groups or industries. Regardless of the desired profile, it's one thing to want it and another to make it happen. The well-known, highly effective proportional-integral-derivative (PID), closed-loop, control algorithm is the most common approach used to drive a motor and end-effector to do what one desires with a high-enough-level of accuracy and precision.

Effective control of a single axis is a manageable project, but robotic control becomes far more difficult when this control extends to two, three, or even more motors and degrees of freedom, which must be closely coordinated and synchronized, with the performance one element dependent on the status of the others.

Determining Standard versus Custom Motion-Control Applications

For standard motion-control applications, a dedicated, fixed-function, embedded controller integrated circuit (IC) offers ease of use and rapid time-to-market. In contrast, if a nonstandard, customized profile is necessary or if the correlation between the various axes is complicated and must accommodate unusual or unique events, then the Design team may consider a fully user-programmable processor. This solution is implemented using a processor with digital-signal processor (DSP) capabilities for the computation-intensive aspects or with a field-programmable gate array (FPGA). When considering programmable devices, the vendor, third-party tools, and available software modules are factors of importance in addition to the hardware functions of the IC itself in making a specific selection.

Be aware that these controllers are generally not the same as motor drivers, which are the MOSFET/IGBT drivers and devices that control motor power. This is the case for two reasons: First, these power devices must be sized to the motor, independent of the controller. Second, the high-density, complementary, metal-oxide-semiconductor-based process technologies used for these digital controllers are very different than the processes for power devices. For smaller motors, however, it is possible to integrate a controller with a driver and power device. Despite the fundamental differences, the term "controller" often refers to the power-device functional blocks, which can lead to confusion in keyword searches.


Motion-control options for robotics range from basic, dedicated-function ICs to highly integrated, extremely flexible microcontroller units (MCUs) with a large array of auxiliary-processing and support functions. Although embedded devices may seem limiting, some of them allow a selection of a variety of motion profiles and the setting of critical parameters, and they are quite adequate, low in cost, and easy to use. For advanced designs with unique or extremely sophisticated requirements or for designs needing additional levels of connectivity along with control, MCUs offer effective solutions with evaluation and development kits supported by verified code packages, debug and code-development tools, and validation suites.

This article was originally written by Bill Schweber for Mouser and substantially edited by the Wevolver team. It's the sixth article of a series exploring collaborative robots. 

Article One introduces collaborative robots.

Article Two describes the history of Industrial Robots.

Article Three gives an overview of collaborative robots sensor technologies.

Article Four examines the balance between cobot safety and productivity.

Article Five discusses the development of cobot applications in manufacturing. 

Article Six explores the challenges of motion control of robotic arms.

Article Seven looks at the potential of AI in cobots.

Article Eight discusses the social impact of cobots.

About the sponsor: Mouser Electronics

Mouser Electronics is a worldwide leading authorized distributor of semiconductors and electronic components for over 800 industry-leading manufacturers. They specialize in the rapid introduction of new products and technologies for design engineers and buyers. Their extensive product offering includes semiconductors, interconnects, passives, and electromechanical components.

More about Bill Schweber

Bill Schweber is a contributing writer for Mouser Electronics and an electronics engineer who has written three textbooks on electronic communications systems, as well as hundreds of technical articles, opinion columns, and product features. In past roles, he worked as a technical web-site manager...

Wevolver 2023