WidowX Arm Test Tube Demo


Serial Control
PC Control

This project will show you how to use the Arm Link Software and the WidowX Robot Arm to pour the contents of 2 test tubes into a beaker. First, you will use the software and arm to create a sequence of individual poses that the arm needs to go to in order to complete its task. Then you will use the software to play back the individual poses as a complete sequence.

In this example we will be using the WidowX Robot Arm. The process of creating and playing poses will the the same for the Reactor and Pincher Arm, though the Pincher arm and the Reactor arm without wrist rotate option, are not ideal for some of the maneuvers in this example, like pouring test tubes. Also, the added precision of the MX servos in the WidowX Robot Arm makes it ideal for precise movements.

Project Parts List

  • 1 x WidowX Robot Arm Kit
  • 1 x Windows, Mac or Linux computer
  • 2 x Test Tubes
  • 1 x Test Tube Holder
  • 1 x Beaker
  • Liquids to Mix

Hardware Installation

Check the Getting Started Guide for instructions on assembling, programming and testing your Robot Arm. After programming, the Robot Arm will need to maintain a serial link to your computer - normally this is the same USB-FTDI cable used to program the arm.

It is also possible to create a serial connection using a set of wireless modules like XBees. This will allow you to wireless control the arm from your computer. You will need 2 x XBees and a UartSBee. One XBee will connect to the ArboitX-M Robocontroller and the other will connect to the PC via the UartSBee. You will need to configure both XBees.

Firmware & Software Setup

Instructions for setting up the ArmLink Software and Firmware can be found at the Arm Link Software Getting Started Guide. This guide will help you set up the firmware on your robot arm and set up the software.
We also recommend that you go through the Arm Link Sequence Playback Guide, as this article will make you more familiar with creating and playing poses on the Arm Link Software.


The process for creating poses will be the same as in the Arm Link Sequence Playback Guide. For this project we recommend you work in the Cylindrical IK mode with the wrist angle set to straight. Use the Control Panel to move your arm to your first desired position, then hit 'New Pose' to create a pose with the current IK and delta data. We recommend that you start using empty test tubes to get your motions just right. We also suggest that you start with a delta of 128 and a pause of 1000ms for all of your movements. Then go back and update your delta/pause values to make your movements faster/smoother.

After creating several poses, you can click 'Play Poses' to playback your current poses. If you need to adjust your poses (whether you need to change position or speed), first click on the individual pose (it will expand to show you selected it). Then click 'load pose' to load the pose into the current control panel. Now make your adjustments, and hit 'save pose' to save the adjusted pose data back into the pose.

Usage Notes and Tips

Gripping the Test Tube

The compliance levels in the gripper are automatically set in the firmware to minimize damaging the test tube or the servo. However you should still try to use a gripper value as open as possible while still holding the tube firmly.

Test Tube Contents

When you are first setting up your poses, try a 'dry run' with nothing in the test tubes. Once you have a working sequence, you can add liquids and see how they react to different pouring speeds.

For basic experimentation, we recommend simple mixtures like oil & water, water with food coloring, or baking soda & vinegar.

In our video we used baking soda, vinegar, and the chemicals from a glow-stick. We carefully extracted the two glow-stick chemicals and put them in separate test tubes. We also added vinegar into the second test tube. Finally we put some baking soda into the beaker. The arm then added the chemicals from the 2 test tubes to get the glowing & fizzing effect shown in the video.

One Action, Many Poses

Complex actions may take many poses to complete. To get very fine actions, you may need to set multiple poses along a single action. This may be to make sure the arm has proper clearance (as to not collide with objects unintentionally) or to ensure smooth movements.

Fine Positional Control

You may find it useful to set delta to 0 and use the keyboard commands to move the arm very finely. Just make sure to set your delta back to an appropriate value before saving your pose!

Speed/ Delta

Be careful with your delta value. The delta value determines the total amount of time a pose takes to complete. So a long movement will move the servos at a higher speed than a short movement with the same delta. Moving the arm too fast may cause more jerky movements. It can even make the arm go past its goal point - the arm will compensate, but if your the endpoint is physically close to another object, the arm may collide with that object before going to its endpoint.

Playback Order

Be especially careful when manually playing back poses, especially poses with very low delta values. The program will always use the currently selected pose's delta value, so you may see unexpected results if you are playing your sequence back backwards.


PC Control These demos and projects allow the robot to be controlled via a computer.

ArbotiX Commander Control - These demos and projects control the Robot using the ArbotiX Commander, the handheld Arduino based remote control.

Direct Control - These demos and projects control the Robot directly from sensors connected directly to the Robot's control board.

Pose Control - These demos and projects allow you to create and playback a sequence of poses.

Serial Control - These demos and projects control the robot using a serial packet protocol.

Standalone - These demos and projects are deisgned to let your robot function without a computer or additional microcontroller.

Wireless Control - These demos and projects allow you to control the robot wirelessly - usually by replacing the Serial Connection with XBee modules.

Reference - These articles have technical details regarding the control and operation of the robot.


More info here