Moving a Servo

The first and most important action of any robot is moving a limb with a servo. Even if your robot is not complete, it's a good idea to practice moving a servo with ARC to become familiar with how easy it is. Because it is easy to move servos with ARC, you can now focus on the creative aspect of the robot. This tutorial will add a servo robot skill, configure the servo robot skill, and move a servo.


Requirements

  • Connected to an EZB
  • Servo connected to the EZB


Robot Skills Used

The following robot skills are used in this tutorial. Click any of these to further read the manuals for the robot skills.



Quick Tutorial

Press the Project button from the top menu, and select Add Robot Skill.



The Robot Skills window will display. Navigate to the Servo tab and select Horizontal Servo.



Now the Horizontal Servo robot skill is visible in your project. Press the Config button on the Horizontal robot skill.



Select the Servo Port that your servo is connected to on the EZB. The servo port will vary based on the type of EZB used. 




Either drag the Min and Max values to specify the range, or right-click and enter the range with the keyboard. By default, the global range in ARC is between 1-180 to accommodate PWM hobby servos. You can alter this global value for high precision servos in the ARC settings menu.



Press SAVE on the config window to save the settings.



Click the mouse on the horizontal robot skill servo position display, and drag LEFT and RIGHT. Watch as the servo moves.



This is only the beginning...

Moving a servo with this robot skill is exciting, but the following steps are even more exciting. When several servos are connected to a robot for arms or grippers, you can configure the Auto Position robot skill to re-create animations. This is a popular robot skill for humanoid robots, such as the InMoov. Also, the Getting Started guide has a movement page that lists the different wants you can make a robot move.

Check out any of these related links...

Create frames and actions to animate the robot servos into pre-defined positions. Use this to have the robot wave, dance, or display interactive gestures. A gait is the movement pattern of animals limbs, including robots, during locomotion. This robot skill allows robots to customize servo animations for gait locomotion and interacting with the world. Some robots (i.e., humanoids, hexapods, and more) use servos to move with gaits based on speed, terrain, maneuverability, and energetic...


This skill automatically releases specified servos after a certain amount of time from their last movement. This is very helpful to use when it comes to repetitive, quick servo movements. Main Window 1. Pause Checkbox This button pauses the application of the Auto Release skill. 2. Status Display This displays which port the auto release skill was applied to and at what position it was last in before the auto release was activated. Settings 1. Title Field This field contains the title of...


Unlike a Standard Servo, a continuous servo has its internals changed to allow continuous 360 rotation. The two parts that are removed from a standard servo to create a continuous rotation servo are: Mechanical Stop: The spindle will stop if you attempt to rotate a standard servo further than 180 degrees. That is due to a mechanical stop built onto the output gear within the servo. Continuous servos have that stop removed. Potentiometer: The potentiometer in a standard servo records the...


Use Vx virtual servo ports to control up to 99 servos on a custom servo controller via a serial protocol, such as Arduino Mega, with custom firmware. The Vx virtual servo ports allow you to control up to 99 servos on a custom servo controller via a serial protocol, such as an Arduino Mega, equipped with custom firmware. This custom firmware can be loaded onto an Arduino or a custom microcontroller, transforming it into a specialized servo controller. The robot skill will establish a connection...


Connect and control Robotis Dynamixel Smart Servos with ARC, including Arduino and Robotis controllers. This open-source plugin converts the Virtual Servo ports with any EZ-B (v0-v99) to control Robotis Dynamixel Servos. The servos supported are XL-320, AX-12, and XL430 compatible protocols. Dynamixel Servos are very different than regular hobby PWM servos. Firstly, they are considered much more professional due to their design specifically for use in robotics. Each Dynamixel Servo contains a...


Control Feetech serial bus smart servos over EZB UART or PC COM port. The selected ARC’s Vx virtual ports must match the servo IDs in the config screen  - and voila, youre off to the robot races! Main Window The main window on the project workspace will display information about active connections and errors. To configure the servos, press the ... configuration in the title bar. Configuration Screen The configuration allows selecting the virtual servo ports that represent the IDs of the...


Control Feetech serial bus smart servos over EZB UART or PC COM port. The selected ARC’s Vx virtual ports must match the servo IDs in the config scree  - and voila, youre off to the robot races! Main Window The main window on the project workspace will display information about active connection and errors. To configure the servos, press the ... configuration in the title bar. Configuration Screen The configuration allows selecting the virtual servo ports that represent the IDs of the Freetech...


This servo skill allows you to drag the mouse horizontally (left right) on display to move the position of a horizontal servo. The horizontal servo will only move to the minimum and maximum limits you specify in the skills settings. The limits are both set to 90 by default. *Note: Like all robot skills, this does not save the last servo position used. To set a servo position when the robot connects, create an initialization script using the Connection Skill. Main Window 1. Position...


This Synthiam ARC Robot Skill is a powerful, customizable tool that provides advanced kinematic solutions for your robot arm. This tool allows you to define and manipulate the structure of your robot arm by adding joints and bones, providing a high level of customization to suit your specific needs. It is designed to be user-friendly and intuitive, making it accessible to beginners and experienced users. Whether designing a robot for industrial applications, research, or personal projects, the...


Control Kondo KRS smart servos with ICS 2 3.5 Protocol over the EZB UART. We cannot verify this works because we do not have servo hardware to test with. This plugin is in response to a community thread regarding Kondo servos. *Note: This is experimental The servos can be chained together and connected to the EZ-Bs UART #1 on port D5. The baud rate must also be configured in the settings of the plugin. Each virtual port can be selected for the communication version based on the servo model. The...


Control the LewanSoul Digital smart Servos (i.e., LX-16A) with ARC. The servos must be powered appropriately and connected to the EZ-B v4 or IoTiny with the respective port. Visit the Config menu of this plugin to view the port configuration. This plugin will only operate on EZB Index #0. Demonstrated with IoTiny using Software UART Details ARCs Virtual Ports (V1..V99) can be assigned to the LewanSoul servos. - This plugin requires the RX signal wire of the servo to be connected to the TX of...


The Lynxmotion Smart Servos (LSS) are compact, modular actuators which were designed to be an evolution of the standard servo for use in multi degree-of-freedom robots, animatronics, custom robot projects and more. The servos form the core modules of the next generation Lynxmotion Servo Erector Set (S.E.S.) and a wide variety of modular brackets, mechanics and electronics have been designed around them. Smart means there is sensor feedback for Position, built-in safety features. The LSS...


Control servos using the Pololu Maestro servo controllers that come in flavors of 6, 12, 18, or 24 servos. The connection for this robot skill is USB, and therefore great for onboard computers. This robot skill binds to the ARC Vx virtual servo ports. The index of each Vx port is directly related to the index of the Maestro servo port. That means if you send a movement to V1, the servo is sent to Maestro #1 servo. Configuration 1) Device This displays the serial numbers of all Maestro USB...


This control will allow hobby PWM servos to have positional feedback in ARC with a slight modification requiring a wire, soldering iron, and Philips screwdriver. This uses the ADC port on the EZ-B (v4, Arduino, etc.) Example In this video, we remote control a JD with another JD. The servo positions from one JD are read using this robot skill, and the positions are set to the other JD. This is like using one JD as a puppet to control the other JD. Video Tutorial Watch this video tutorial to see...


Receive servo positions in real-time over an Arduino and its ADC ports. This control connects to an Arduino over I2C and receives the values of the ADC ports. The Arduino requires firmware to be programmed, which can be downloaded below. Depending on your Arduino version, the code can be modified for the number of ports.  The Arduino code available here is for the Arduino Nano, a tiny little Arduino that nicely fits next to an EZ-B or IoTiny. It connects to the EZ-B via I2C using its A4 and A5...


This skill is similar to the Horizontal and Vertical servo skills. However, the difference between this skill and the others is that it allows you to specify a Master Servo. The slave servos will move into relative positions of the Master. If you move the master servo from ANY skill, the slave servos will move to their relative positions. You can use scripting or the checkbox to Pause and Unpause this skill whenever you like, preventing the slave servos from moving. Note that servo selection...


Inverse kinematics calculates the joint angles to position the Robotis Open ManipulatorX effector to a specific desired location in 3d cartesian space.  Inverse Kinematics Inverse kinematics is a computational process used in robotics to determine the joint configurations necessary to position and orient the end-effector (usually a robot arms hand or tool) at a specific target location and orientation in three-dimensional space. It involves solving equations that map the desired end-effector...


Move a servo using the mouth with an on-screen widget


This skill allows you to drag your mouse or finger (on a touchscreen) to move x-axis and y-axis servos. Its like a virtual joystick. This is a great skill to use when you have servos in a pan/tilt configuration. Main Window 1. Servo Pad Hold your mouse or finger (if you have a touchscreen) on this pad to control servos in a pan/tilt configuration. Swipping left and right will move the x-axis servo. Swipping up and down will move the y-axis servo. Settings 1. Title Field This field contains...


This plugin allows recording and replaying servo movements in specified speeds and direction. Trigger the recording playback and speed using ControlCommand() from scripts. Realistic Motions For realistic motion recordings, we recommend creating the recordings with the Servo Pad Control. Find more information about the Servo Pad here: http://www.ez-robot.com/Tutorials/Help.aspx?id=150 Recording You can store multiple recordings in this plugin. Each can be given a unique name that allows the...


This skill allows you to adjust the speed of a servo or PWM between two positions. It can be used for quickly identifying and experimenting with servo speeds for your application. This skill does not save the last setting or restore settings when the project is loaded. *Note: Before this skill can be used, the servo position must be initialized. To do this, you can simply set the position with a script command or a servo skill. If you wish to have your robot initialize a servo speed when...


This control is an all-in-one servo view. You can add servos to be viewed in the summary. The position and speed are displayed and both can be modified. The control can be resized to fit the number of servos added.


Adding this control to your project will connect to an SSC-32 servo controller. The connection can be direct via pc com port. Or through an ezb supporting the Hardware Uart or Software Uart capabilities, such as the EZ-Robot EZ-B v4/2 Wi-Fi Robot Controller or Arduino Mega. The Virtual Servo Ports in ARC, labeled V0, V1, V2... V31 will be connected to the SSC-33 and used to move servos through the SSC-32. The configuration menu on this control will allow you to specify the baud rate and how the...


Control up to 127 stepper motors as servos with any stepper motor driver or motor type. This robot skill requires a low-cost and small-profile Arduino connected to each stepper motor driver. Each Arduino is given a unique ID on the optional serial network, which matches an ARC Virtual Servo (Vx) port. All 127 Arduinos will share the same PC COM port via the first Arduinos USB connection. An optional end-stop limit switch can calibrate the steppers home position. For example, if the Arduino...


Control the UBTECH Alpha Robot Digital smart Servos (UBT-12HC) with ARC. The servos must be powered appropriately, and connected to the EZ-B v4 or IoTiny with the respective port. Visit the Config menu of this plugin to view the port configuration. The Virtual Ports (V0..V99) in ARC can be assigned to the UbTech servos. UART Ports - This plugin requires the RX signal wire of the servo be connected to TX of the selected UART or digital port (if Software UART is selected on IoTiny) - Hardware UART...


This servo skill allows you to drag the mouse vertically (up down) on display to move the position of a vertical servo. The vertical servo will only move to the minimum and maximum limits you specify in the skills settings. The limits are both set to 90 by default. *Note: Like all robot skills, this does not save the last servo position used. To set a servo position when the robot connects, create an initialization script using the Connection Skill. Main Window 1. Position Adjust/Display...