What is the Actin SDK for Advanced Robotic Systems?

Ryan Penning
Dec 8, 2020 12:02:00 PM

Growth in the adoption of robotics is exploding across a huge segment of industries. The advancement of enabling technologies in sensing, processing, and communications have enabled the application of robots to previously intractable problems, like bin picking from unstructured bins. It’s an exciting time to be in robotics, but for these robotic innovations to have real staying power, there needs to be a way to control and plan motions and tasks. When it comes to robot control, the core problem is this: you have a tool that you want to move in a certain way, but the joints of your robot don’t directly correspond to this motion. Think of trying to use a touchscreen on your phone or tablet. You want to slide your finger in a straight line while keeping it in contact with the screen. But your shoulder, elbow, wrist and fingers can only rotate - none of them move in a straight line. Fortunately, your brain has figured out how to map these motions to the movement of your hand and fingers. Right now, many users are merely relying on manufacturer-supplied software. This is a fast and effective approach, but can come short for applications requiring more advanced capabilities. One solution to this problem is Energid’s Actin SDK. In this post, we’ll show you what Actin is, describe some of its capabilities, and show you what it can do for your business.

What is Actin?

Actin is Energid’s robotic software toolkit that offers a robot-agnostic way to simulate, task, and control complex robotic systems. It is a full life-cycle product, offering tools to help you at every stage of development, from evaluating initial system designs to tasking and controlling the deployed system.

3 steps v2-1

Actin's core features are a general kinematics and dynamics model, that can be used to control or simulate any type of robotic mechanism that can be modeled as branching chains of rigid links. This includes robot arms, humanoid robots, delta robots, positioners, stewart platforms, and more. This model can be generated from CAD.

On top of the general kinematics model, Actin includes a motion control framework for forward and inverse kinematics. This allows for motion control of any point on a link with however many degrees of constraint are required. Actin can also constrain motion relative to another link, making coordinated motion possible. Actin handles kinematic redundancy with configurable optimizations, such as joint limit avoidance and collision avoidance.

Actin provides tasking libraries that allow scripting out joint motions, end effector motions, tool paths, path planning as well as other interactions like attachments, tool offsets, and I/O. These can be sequenced in series or parallel. The Actin Libraries are designed for cross platform integration with robots, sensors, and actuators.

The Actin SDK (summarized in the image below) is designed to provide users with powerful and robust software tools that enable three key capabilities in robotics: modelling, motion control and motion planning. That’s easy to say, but much harder to do, especially when you factor in additional complications like sensors, motion and path planning, so let’s dive in to some of the core components of Actin, and see how it all comes together.

Actin SDK - Component Diagram


Modelling entails the steps necessary to develop a simulation of the robotic system. This includes defining the joints of the manipulator (and their associated motions), the shape of each link, and other key properties of the system and its environment. Kinematic (mechanism motion) simulation is a powerful and efficient tool that lets users see exactly how their robotic systems will move and where they can reach given a set of joint and link configurations. For customers with more advanced needs, Energid can provide services to help you use features like dynamic simulation to help simulate the forces and torques exerted by the system, particle simulation to model interaction with granular materials, and sensor simulation to help you pick the best way to provide feedback to your system.

Motion Control (Local Path Planning)

The Local Path Planning module is at the core of the entire Actin ecosystem. It includes the motion constraints that can be applied to the system, along with the inverse kinematics system and control optimization options. Essentially, it converts the desired tool motion to the joint motions required to achieve it. Almost every other component interacts with this in one way or another (by either feeding information to it, or relying on information from it). This is a “local” path planning method, because it does not contain any higher level information about the system. Rather, it only generates the joint motions necessary to move the tool in a straight line to the destination point. Obstacles or other constraints may cause it to get stuck, even when a viable path exists. Local path planning is where many of Actin’s most powerful features originate. The ability to detect and react to impending collisions is a part of the local path planner. Users can select whether or not they wish to stop before the collision, or use extra degrees of freedom in the manipulator to actively dodge the collision. The ability to constrain robot motion in unique ways, and avoiding joint limits and singularities are also handled by the local path planner. You can read more about our approach to inverse kinematics and path planning here.

Motion Planning

The motion planning layer abstracts control one step further, allowing the user to define a sequence of motions and other commands (such as turning on and off tools or looking at sensor input) that are then executed by the robot. Desired end effector positions from this component can be passed to the global path planner to determine the desired motions. In addition the C++-based API, we have developed EcScript: our own robotic motion scripting language that allows users to easily define motions and actions in a text-based system. Actin’s motion planning tools also include global path planning capabilities.

Global path planning takes in all available information about the environment, and generates a path that moves the tool from a starting point to the desired destination. It navigates around obstacles or other constraints, and will return a path to the solution if one is available. This path is composed of many small intermediate steps, each of which is passed, in turn, to the motion control system. To learn more about global path planning, and see how it compares to local path planning, click here.

Actin also provides a set of tools and the Robot Control Framework, that helps you make the most of the SDK. These include tools for configuring and analyzing your system, developing interaction components like GUI’s, and communication interfaces to help integrate Actin with the rest of your system. We’ll be providing detailed information about these in upcoming posts, or you can contact us today to find out more!


All of the capabilities above aren’t useful if they can’t convey the information they represent in a meaningful, intuitive way. Actin lets users visualize systems both locally and remotely. For example, users can visualize the current state of the robot not only on the computer running it, but on other machines that share the network as well. This allows users to fully understand the behavior of the entire system, rather than being forced to focus on a narrow part of it.

By the way, you may be wondering where we came up with the name “Actin”. The Oxford English Dictionary describes actin as “a protein that forms (together with myosin) the contractile filaments of muscle cells, and is also involved in motion in other types of cells.” In other words, actin (in biology) is a nearly universal protein that helps us and every other living thing move. We want Actin (the software) to become a nearly universal tool that helps robots move.

Why is Actin Important?

Actin provides a host of control and tasking capabilities (like active collision avoidance) that aren’t available anywhere else. But several of the key advantages of Actin are even more basic. First, Actin is not tied to any single robot manufacturer, and gives you unparalleled freedom to add capabilities to off-the-shelf systems. Actin makes it easy to add your own degrees of freedom (such as actuated rails and turntables) to the design. All of these can then be tasked and coordinated from a single software environment, and are automatically included in the motion controller. Second, Actin is a supported solution. Open-source solutions like the Robot Operating System (ROS) are great for some applications. However, users are left on their own to develop and deploy robot systems with it. If something goes wrong, there is no help line. With Actin support options, your developers can focus on developing and deploying the best robotic solution, rather than internet searches for compiler errors. This can accelerate your time-to-market, and provides peace of mind for end users.

So what is Actin? It’s a tool that can help you solve your problems in robotics. This post provided a quick summary of its key components, but there is a lot more to learn. Keep an eye on the blog to keep learning about robotics and our approach to making it easier!

To learn how Actin can benefit your companies automation efforts, contact our Applications Engineering group today, or check out this post to see if Actin is right for your business.

Free Whitepaper: Leveraging High-Fidelity Simulation to Evaluate Autonomy Algorithm Safety

Leveraging Hi-Fidelity Simulation to Evaluate Autonomy Algorithm Safety-079396-edited

The last barrier is to prove to decision-makers (and the general public) that these autonomous systems are safe.

This paper describes a rigorous safety testing environment for large autonomous vehicles. Our approach to this borrows elements from game theory, where multiple competing players each attempt to maximize their payout. With this construct, we can model an environment that has an agent that seeks poor performance in an effort to find the rare corner cases that can lead to automation failure.

Get the Whitepaper

Subscribe by Email

No Comments Yet

Let us know what you think