Tasking Your Robot with EcScript

Daman Bareiss
Sep 23, 2019 7:27:56 AM

Whenever setting up a new robot to perform a task, or changing what task an existing robot is already performing, flexibility is key in getting that system up and running as fast as possible. The Actin robot control SDK already provides the potential for a large number of tasks for many different types of robots. The remaining question is which of the several ways to interface with the Actin SDK can be used for setting up a task? In this post, we discuss the use of EcScript as one way to create a task for the robot.

What is EcScript?

EcScript is a scripting language developed by Energid for interacting with the low-level control capabilities of Actin. With these scripts, complex tasks can be built up programmatically from simple motion primitives. Some of these motion primitives are things like moving from one set of joint positions to another, moving from one end-effector pose to another, moving along a set of poses, moving at a given set of joint speeds, and much more. Higher-level tasks can be performed as well such as solving the inverse kinematics problem to find a set of joint angles to obtain a provided end effector pose, or computing a collision-free path using Actin’s global motion planning capabilities.

Energid provides several features that let you construct complex tasks from these sometimes simple commands. You can run some commands in parallel. You can create loops, define function, create and modify variables, conditional statements, and many of the features you would expect if you were working in a typical programming environment.

Why use EcScript?

Using EcScript in setting up a system can provide many benefits. Since it is a scripting language, you can iterate very quickly when fine-tuning certain aspects of a task. If the C++ API were used instead, you might have to wait between every change to re-compile and re-run the task to determine if the change you made is doing what you expect. With the scripting language, setting up a task in the simulation is as easy as resetting the simulation, changing some text, and trying again.

The development of EcScript, rather than using some already available API, allows for several advantages. First, the commands can be written with terminology that you are already familiar with from within Actin. Second, the commands can be made to interact more efficiently with the underlying control system of Actin. Using an already existing API would require additional steps to communicate with the Actin control system, whereas our language lets us skip that step and perform the actions more directly. Lastly, as a part of the Actin SDK, the EcScript framework has been written in such a way that it is extensible by customers for specific use cases.

Tips and Reminders for EcScripts

When developing a task with EcScript, it helps to keep many of the same suggestions in mind when writing any program. Keep things in small manageable chunks and test as you go. Make use of re-usable elements like functions and variable as much as possible.

In summary, EcScript provides a simple interface to the Actin control system which improves the ability to adapt a system to quickly changing needs. For more information, view the EcScript documentation and contact sales.

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