How to simplify robotics research with a native, ROS
HomeHome > Blog > How to simplify robotics research with a native, ROS

How to simplify robotics research with a native, ROS

Sep 02, 2023

By The Robot Report Staff | August 28, 2023

The Robot Operating System (ROS) is a powerful open-source platform for robotics research, but until recently it lacked industrial-quality hardware that is tightly integrated with the ROS software stack. Robot equipment manufacturers use proprietary, closed-source software and control systems for their manipulators, leaving researchers with a steep hill to climb in order to use ROS on industrial robots.

Addressing this need and advancing the capabilities of the ROS development community, Tormach has created a ROS-based industrial robotic manipulator and control system that avoids “black box” issues that plague modern robotics applications. Additionally, Tormach’s control system, PathPilot, uses Python as the robot programming language, creating an intuitive programming interface for robot motion and unleashing the potential of the Python package ecosystem.

This open-source, ROS-based robotics platform – which includes the control system, industrial robot hardware, and full access to all system parameters – creates a fast, accessible solution that brings industrial robotics to more researchers, developers, and students.

Robot control manufacturers are hesitant to allow ROS developers to access all the system parameters in their closed-source controls for the following reasons:

For these reasons, integrations between ROS and commercially available robot hardware are limited. While drivers exist to connect ROS to other industrial robots, their low (10 – 100Hz) bandwidth implementations simply drip-feed waypoints to a proprietary, closed-source controller.

As a result, the user may not have access to whether or not the robot adheres to timing, velocity, and path accuracy intents. Data like motor torque, current, following error is usually unavailable, and the slow control loop severely limits what researchers can accomplish.

The OpeN-AM experimental platform, installed at the VULCAN instrument, features a Tormach ZA6 robotic arm that prints layers of molten metal to create complex shapes. Studying the 3D-printed welds microscopically with beams of neutrons allows researchers to better understand factors such as stress caused by heating and cooling. (Credit: ORNL/Jill Hemman)

The ROS/HAL hardware and software stack offers feedback that can provide valuable control opportunities.

The ZA6 provides the following:

Most of these feedback elements focus on only the lower-level control layers. Higher-level control layers can provide other opportunities, depending on research needs.

The connection between ROS and a robot’s hardware relies on a hardware abstraction layer (HAL). HAL evolved out of the open-source Enhanced Machine Controller (EMC) project that had its origin 25 years ago at the National Institute of Standards and Testing (NIST).

Active development of HAL continues today via the LinuxCNC and Machinekit projects because HAL is flexible, 100% open-source, and is used in thousands of machines around the world.

HAL consists of modular components (loadable binary modules) that communicate with each other by updating, reading, and writing named pins that connect via named signals. In some ways, HAL is like ROS, but there are important differences:

The Tormach robot bridges the gap between ROS with the open-source hal_ros_control component. The combination of HAL and ROS allows a wealth of robot data to be exposed to the user. All process data is accessible via shell commands, data logger utilities, and a graphical scope. All information on the EtherCAT bus, including torque, current, following error, position, velocity, and more are available at 1 kHz and exposed via HAL to ROS.

Since HAL is modular and flexible, users can alter their robot’s HAL configuration using pre-built HAL components or by writing new components in C or Python, allowing easy integration with almost any external device or process.

Previously, using a commercially available robot with ROS requires finding and downloading the appropriate driver for the control, a URDF file to describe kinematics; creating a moveit configuration, choosing one or more planners, IK solvers, and perhaps finding and bringing solid models into Rviz. Configuring a new robot for use with ROS is challenging even for experienced ROS developers.

Python, a programming language that’s been in use for decades, makes programming a Tormachrobot accessible for many. The sheer number of devices and software that run on Python means the ZA6 has a seemingly countless number of integrations that are possible.

An optimized default ROS configuration for the manipulator, like that provided by Tormach as part of the control, helps alleviate many of these issues. The URDF model (unified robot description format) is defined, motion pipelines are configured, and trajectory planners and kinematics solvers are selected and optimized so that the robot is ready to work out of the box.

The robot hardware, user interface, and robot programming language are fully documented and supported by Tormach. Go here for documentation.

The robot’s default ROS configuration will be ideal for most applications, saving months of configuration time, and it’s also open-ended to allow users to develop their own unique configurations at will.

The lack of an industry-standard robot programming language led Tormach to choose Python for its ZA6 robot. The Tormach Robot Programming Language (TRPL) uses the Python 3 interpreter and works similarly to other common robot programming languages, with commands for different move types, commands to read and set inputs and outputs, and commands to set and change tool and user frames. The language is documented here.

It is important to note that any Python 3 program is a valid robot program. The robot’s ability to interpret any Python program means that almost any Python package can be imported to help with more challenging robot tasks. Examples include:

While the TRPL interpreter simplifies a lot of programming tasks like move commands and offsets, power users who are familiar with ROS are able to access the underlying ROS API directly. Find more information here.

Leif Sorgule, tech educator in Peru, New York, released a set of educator-focused projects using the ZA6.

The PathPilot user interface makes it easy to write simple teach-mode programs to help students learn the concepts they need to be successful in industrial robotics. Unlike other robots designed for the classroom, the ZA6 teaches industrial robot concepts like user frames, tool frames, waypoint programming, and Cartesian-versus-joint angle waypoint types. Another reason to use the robot as a teaching tool is its easy-to-learn user interface.

The PathPilot user interface makes it easy to write simple teach-mode programs to help students learn the concepts they need to be successful in industrial robotics. Unlike other robots designed for the classroom, the ZA6 teaches industrial robot concepts like user frames, tool frames, waypoint programming, and Cartesian-versus-joint angle waypoint types. Another reason to use the robot as a teaching tool is its easy-to-learn user interface.

Dr. John Wen at Rensselaer Polytechnic Institute is developing Robot Raconteur, which is a royalty-free project intended to provide a solution to distributed control and component interfaces. The system is designed precisely for the scenario of an engineer wanting to control a component from a high-level language in distributed or non-distributed conditions.

See how researchers at RPI have integrated the Tormach robot into its Robot Raconteur program for force-torque control.