The arm is primarily made out of Actobotics components. It is a Selective Compliance Articulated Robot Arm (SCARA) which means that it can move freely in the XY-axes remaining fixed in the Z-axis. The motion is controlled by the rotation of two servos which are attached to gears at the base of each link of the arm. At the end of the arm is another servo which moves a beam up and down. At the bottom of the beam is an electromagnet that can be dynamically activated to lift the chess pieces. The base of the arm is fixed to the table-top box.

Animation of the arm capturing a piece.
The arm capturing a piece


Actobotics are like really high quality, strong legos for robotics projects; I highly recommend them! The base that is attached to the table-top box is a Gear Drive Pan Kit that was adapted to hold a Dynamixel Servo. Because the Dynamixel servo does not use the same spacing as Actobotics, fitting them together was somewhat difficult. I had to 3D print several parts so they would work together nicely. Information on that process can be found here. Attached to the top of the gear drive pan kit is a 16.5” aluminum channel with a rotating gear at the end. On the side of the channel is the second servo which rotates the gear. Another piece of channel is attached to the top of that gear. At the end of the arm is a Gear Rack Kit (Single Parallel) to control the z-axis motion of the arm.

Diagram of the entire arm.
The entire arm


I used AX-12 Dynamixel Servos for the core motion of the arm. Dynamixels fit the job well for several reasons:

  1. Relatively powerful, especially to move the arm as needed
  2. Easy read/write to registers via serial interface
  3. Can be daisy chained together at no cost
  4. 10-bit accuracy for precise movements

#2 was the main reason for choosing them. The ability to get and set, with 10 bit accuaracy, registers for position and speed was incredibly useful (position/speed are not the only registers though, a full list can be found here). The servos are directly powered and controlled by an Arbotix-M Robocontroller but the actual commands came from the Raspberry Pi. The full guide on controlling the servo via Python running on the Raspberry Pi can be found here. A detailed notebook regarding the calibration of the arm to move accurately can be found here.

AX-12A Dynamixel Servo.
AX-12A Dynamixel Servo


The actual gripper mechanism works by activating an electromagnet at the bottom of a vertically moving beam. Each chess piece has a small metal dowel fitted in a drilled hole on the top. More information on how the gripper mechanism works, and the code that runs it can be found here.

Animation of the gripper picking up and putting down a piece.
The gripper in motion

Click here to learn about controlling an AX-12A servo with Python on a Raspberry Pi next.