Servo - Auto Positioner (Gait)

How To Add This Control To Your Project

Step #1) Load the most recent release of EZ-Builder
Step #2) Press the Project tab from the top menu bar of EZ-Builder
Step #3) Press Add Control from the button ribbon bar of EZ-Builder
Step #4) Choose the Servo category tab
Step #5) Press the Auto Positioner (Gait) icon to add the control to your project


The Auto Position Control is used to transform servos into custom positions (Frames) and creating gaits. The frames can be combined into Actions for your robot gait. The Auto Position consists of Frames, which are assigned to Actions. The software will automatically calculate how to transition the servo positions between frames of the gait. Like all EZ-Builder controls, this is done with magic! Actually, that magic is technically "Inverse Kinematics", or otherwise known as "Motion Planning". Each frame of the auto position consists of "goal point positions" for each servo. When frames are combined into an action, there are algorithms within EZ-Builder that calculates the speed of which each servo moves to obtain the goal point position of the next frame. No need to worry if that sounds confusing, continue reading and all will be clear. This control is used for Hexpods and Bipeds - or anything you can dream up!

What Does Gait Mean?

Gait is the pattern of movement of the limbs of animals, including robots, during locomotion. Most robots use a variety of gaits, selecting gait based on speed, terrain, the need to maneuver, and energetic efficiency. Different robot configurations may use different gaits due to differences in their build. For example, JD Humanoid uses a different gait than Six Hexapod.

How It Works

Think of a flip book, where drawing a figure on each page and flipping through to create an animation. The Auto Position control is very similar. Start by creating frames for each position of the robot, of a dance for example. Now create an action and add each frame to the action. When the action is played, the joints(servos) of the robot will move into each frame. Interested in the science behind Motion Planning? If so, click here.


Auto Position Control Types

There are two types of auto position controls in EZ-Builder. One which has a Movement Panel, and one without.

1) Auto Position With Movement Panel

This one contains a Movement Panel, which will execute the robot gait actions for movement commands. Like all Movement Panels, there can only be one instance of this control. There are predefined actions for movement directions (forward, reverse, left, right, stop) which you can assign frames to. You can add gait frames to each action to have your robot move in a customized fashion when any control calls the robot to move a direction (forward, reverse, left, right, stop). To control an Auto Position with Movement from EZ-Script, there are specific commands for it that require ControlCommand(). View the Cheat Sheet for available ControlCommands, or use the ez-script movement commands (Forward(), Left(), Right(), Stop(), Reverse()).

2) Auto Position Without Movement Panel

The Non-Movement Auto Position Control can have multiple instances, and does not control movements like a Movement Panel. This control also accepts ez-script ControlCommand()s.

Frame Editing


Mirroring a Frame

1) Select the frame you wish to mirror
2) Press NEW FRAME

Editing Frame Positions

The displayed values for each servo are the degrees that the servo is in for that frame. You can modify the servo degrees of each frame and the robot will respond in real-time. There are two ways to edit...
1) Left-click on the degree number value and use the Left mouse button to drag up/down.
2) Right-click on the degree number value to open the dialog and use keyboard or mouse to select exact digit.

  • In a frame, the position of a servo is between 1 and 180 degrees.
  • If the value of 0 (zero) is specified in a frame, this releases the servo from holding a position. The value of 0 tells the servo to stop holding a position and will become limp. You will notice the value of zero being specified on some robots where a servo is not needed within a frame, or when using Continuous Rotation Servos. Setting the value of a 0 (release) on a Continuous Rotation Servo will cause the servo to stop rotating.
  • The servo value of -1 skips the servo for the frame. If a value of -1 is specified for a servo in a frame, the position of that servo is maintained and nothing is changed.

Deleting a Servo

When editing the auto position frame, you may wish to delete a servo. To delete a servo, click on the Servo border and press the DEL key on the keyboard. Ensure Servo Port Edit is checked.

Frame Creation Tips

While designing custom frames for your robot, pay attention to the stress/weight applied to servos. A servo will be pre-maturely damaged and burn out if too much weight is applied during the frame creation process. EZ-Robot suggests holding the robot in hand while moving the servo joints of a frame. Once it looks right, place the robot down to see how it is holding. Pick the robot back up and eye-ball tweak the positions while holding the robot in hand.

If the robot starts buzzing while it is placed down, do not let the servos buzz for longer than a few seconds while examining the position - if the servos are buzzing, quickly pick it back up again after examining what changes are required to that frame position.

A servo will premaaturely damage if it is holding too much weight. This is no different than you, as a human, attempting to hold a position that strain muscles. A servo giving out is the same as a muscle giving out.

Execute from EZ-Script

Every Auto Position ControlCommand() is published in the EZ-Script Cheat Sheet tab. Pressing the Cheat Sheet tab will display the ControlCommands() for all controls, including the Auto Position. To execute an Auto Position from EZ-Script, you would use commands such as...

ControlCommand("Auto Position", AutoPositionAction, "My Action 1")
ControlCommand("Auto Position", AutoPositionFrame, "My Frame 1")
ControlCommand("Auto Position", AutoPositionFrame, "My Frame 1", 50, 3)


Within the Config menu of the Auto Position is the ability to Import or Export Actions and/or Frames. Export creates an .autoposition file, while import will work with both .autoposition and .ezb files. You can only import frames if the servo configuration matches the existing project, for obvious reasons. If the servo configuration does not match, the import utility cannot simply "guess" what servos to assign the new frames. This limits importing and exporting to projects with the same servo configuration.

If importing a frame and it already exists, a message will be displayed. Simply deselect the frame from being imported. The most common mistake is attempting to import the PAUSE frame, which is auto generated and cannot be removed.

Other Utilities

There are utilities for importing, exporting and generating gait source code in the Config menu. Press the gear icon on the Auto Position control to access the Config menu. The Import/Export tab will contain buttons to launch the specific utilities. The gait Generator Source Code will create source code for moving servos for the EZ-SDK, UniversalBot UWP and C++ Enterprise customers.


Related Tutorials & Activities

Servo Control

Servo Control

Introduction Every control that uses servos has a configuration dialog for specifying the servo port, min and max range. In this lesson, we will explain how to configure a servo (even multiple serv...

Last Modified on 1/15/2015

Created by EZ-Robot

Create a Robot Dance

Create a Robot Dance

Introduction Robot Overlord DJ Sures and special guest Kyra show you how to program your own dance with JD using the Soundboard and Auto Position controls. This lesson applies to any of the three...

Last Modified on 1/9/2015

Created by EZ-Robot

Detect Multiple Colors

Detect Multiple Colors

One of the features that makes ez-robot so special is the camera that can detect faces, objects, glyphs, qr codes and multiple colors. For this tutorial, we will use the JD Humanoid. However, this p...

Last Modified on 5/14/2015

Created by EZ-Robot

Nest Thermostat

Nest Thermostat

Program your ez-robot to communicate with a Nest Thermostat. If speech recognition has been configured correctly, speak the phrase "What is the temperature of my house" and receive a response from y...

Last Modified on 12/13/2017

Created by EZ-Robot

Introduction To Servo Motors

Introduction To Servo Motors

In this tutorial, we will provide technical information about servo-motors and how they work. We made it easy to get a robot up and running, however, there is a lot of fun and interesting things to le...

Last Modified on 1/15/2017

Created by EZ-Robot

Movement Panels

Movement Panels

One of the powerful features of EZ-Builder is the concept of Movement Panels. A Movement Panel is a control which is responsible for how your robot moves in directions (forward, left, right, stop, r...

Last Modified on 2/11/2017

Created by EZ-Robot

Teach Your Robot to Dab

Teach Your Robot to Dab

Introduction Ever seen a robot do The Dab? Robot Overlord DJ Sures and special guest Kyra show you how to create The Dab animation with JD using the Auto Position control. Once the animation is com...

Last Modified on 6/2/2017

Created by EZ-Robot

Create a Scene Using RoboScratch (Big Hero Six)

Create a Scene Using RoboScratch (Big Hero Six)

Professor E demonstrates how to create a scene from one of her favorite movies, Big Hero Six, using RoboScratch. Follow along with this activity and see how you can create a scene from one of your f...

Last Modified on 9/7/2017

Created by EZ-Robot

Create a Scene using Blockly (Avengers)

Create a Scene using Blockly (Avengers)

Professor E demonstrates how to create a scene from one of her favorite movies, The Avengers, using Blockly. Follow along with this activity and see how you can create a scene from one of your favor...

Last Modified on 9/7/2017

Created by EZ-Robot

Sabertooth+Kagaroo+DC motors as Servos

This tutorial shows how to use a DC motor as a Servo, using a Sabertooth+Kangaroo boards combination and EZ-builder

Last Modified on 4/21/2016

Created by tevans

Control More Than One Robot

How to control more than one robot in a single EZ-Builder project. This tutorial uses Revolution robots that depend on the Auto Position control, but the similar approach can be used for any robot styles.

Last Modified on 2/7/2017

Created by ezrobot

Related Products

Servo-motor Gripper

The compact grippers are powered by strong metal geared servo motors with foam gripping...

Lever HDD Servo-motor

This is a HDD (heavy duty digital) 19 kg/cm servo with a Clip'n'Play lever that rotates 180 degrees. The metal internals can withstand a high load. Dream...

Rotation HDD Servo-motor

This is a HDD (Heavy duty digital) 19 kg/cm servo with a Clip'n'Play connection that rotates 180 degrees. The metal internals can withstand a...

HDD Servo

This is a heavy duty digital servo which can lift 19 kg/cm! The metal internal gears can withstand a high load. Designed for the ez-b v4, this...

Micro Servo

This is a very strong and small metal geared servo. It has impressive strength and small size. Perfect for small robots or tight areas which require...

EZ-B v4/2 Developer Kit

Build your robot or IoT project from scratch. This kit includes the powerful ez-bv4/2 WiFi robot controller, vision camera, servos, battery holder,...

Related Articles: Horizontal Servo , Vertical Servo