Armer example gif Armer's code on github Armer simplified block diagram

Armer is a Python3 layer that extends the capability of a ROS-enabled robot arm.

Armer handles requests for advanced types of motion such as:

  • Straight-line movement to a task-space pose

  • Straight-line movement to a named joint configuration

  • Task-space velocity with guarding compliant motion etc.

Armer itself is a collection of ROS topics, services and action servers. It communicates with a ROS-enabled arm to execute the motion requests, communicating with the robot using ROS on the user’s behalf.

Armer is implemented in Python 3 and uses the Robotics Toolbox for Python to perform all kinematic and differential kinematics functions.

Armer provides rich control modes such as:

Using Armer, the user is able to seamlessly switch between these modes of control.

These control modes can be used to control real or simulated robots using Swift. This gives users the ability to develop even without access to a physical manipulator.

The control instructions can be used across different robotic platforms allowing users to control robots with the same instructions.

Below is a gif of 3 different simulated arms moving with the same Cartesian velocity control commands.

Armer same code example gif

Armer is available for several popular robots including:

Armer can be accessed primarily through Python3 scripts utilizing rospy to bridge Python code to the ROS framework.


Several ROS action servers, topics and services are set up by Armer to enable this functionality. A summary of these can be found here.

The driver is built on the Robotics Toolbox (RTB) for Python and requires a URDF loaded RTB model to calculate the required movement kinematics, RTB comes with browser based simulator Swift which Armer uses as an out of the box simulator.

Due to these supporting packages using Armer with a manipulator will require several requirements:

Software requirements

Robot specific requirements

  • ROS drivers with joint velocity controllers

  • Robotics Toolbox model

To get started, check out the Armer Installation page!