Hearken to this text |
The Robotic Working System (ROS) is a strong open-source platform for robotics analysis, however till just lately it lacked industrial-quality {hardware} that’s tightly built-in with the ROS software program stack. Robotic tools producers use proprietary, closed-source software program and management techniques for his or her manipulators, leaving researchers with a steep hill to climb as a way to use ROS on industrial robots.
Addressing this want and advancing the capabilities of the ROS improvement group, Tormach has created a ROS-based industrial robotic manipulator and management system that avoids “black field” points that plague trendy robotics functions. Moreover, Tormach’s management system, PathPilot, makes use of Python because the robotic programming language, creating an intuitive programming interface for robotic movement and unleashing the potential of the Python bundle ecosystem.
This open-source, ROS-based robotics platform – which incorporates the management system, industrial robotic {hardware}, and full entry to all system parameters – creates a quick, accessible answer that brings industrial robotics to extra researchers, builders, and college students.
The issue with ROS and proprietary robotic management techniques
Robotic management producers are hesitant to permit ROS builders to entry all of the system parameters of their closed-source controls for the next causes:
- They’ve invested vital sources into growing and testing their proprietary management techniques and don’t wish to expose the internal workings of their system to exterior researchers for concern of dropping mental property.
- There are dangers related to exposing the system parameters to exterior researchers. Untested utilization might
introduce bugs or different points that might compromise the protection or reliability of the system. - Authorized or contractual obligations typically forestall producers from sharing proprietary info with exterior events.
- They could be involved about potential legal responsibility points if their closed-source management techniques are modified by exterior events.
- There’s little monetary incentive for many producers, and in lots of instances, there’s a sturdy disincentive: the necessity to put money into further documentation, coaching, and help infrastructure to allow researchers to work with their management techniques successfully.
For these causes, integrations between ROS and commercially obtainable robotic {hardware} are restricted. Whereas drivers exist to attach ROS to different industrial robots, their low (10 – 100Hz) bandwidth implementations merely drip-feed waypoints to a proprietary, closed-source controller.
Because of this, the consumer might not have entry as to if or not the robotic adheres to timing, velocity, and path accuracy intents. Information like motor torque, present, following error is often unavailable, and the sluggish management loop severely limits what researchers can accomplish.

The OpeN-AM experimental platform, put in on the VULCAN instrument, contains a Tormach ZA6 robotic arm that prints layers of molten metallic to create complicated shapes. Finding out the 3D-printed welds microscopically with beams of neutrons permits researchers to higher perceive elements equivalent to stress attributable to heating and cooling. (Credit score: ORNL/Jill Hemman)
Motor and drive suggestions to ROS
The ROS/HAL {hardware} and software program stack presents suggestions that may present priceless management alternatives.
The ZA6 gives the next:
- Suggestions from every joint, commonplace configuration: place, velocity suggestions, torque suggestions in SI models, following error, diagnostics-like error code, with configuration, drives also can report further diagnostics like motor/encoder temperatures and error code historical past.
- 10 digital inputs + 12 digital outputs (one digital enter usable as probe enter)
- HAL can report RT latency
- Suggestions from ROS and MoveIt, particularly Cartesian pose
Most of those suggestions components concentrate on solely the lower-level management layers. Increased-level management layers can present different alternatives, relying on analysis wants.
Meet HAL: The open-source {Hardware} Abstraction Layer
The connection between ROS and a robotic’s {hardware} depends on a {hardware} abstraction layer (HAL). HAL developed out of the open-source Enhanced Machine Controller (EMC) challenge that had its origin 25 years in the past on the Nationwide Institute of Requirements and Testing (NIST).
Energetic improvement of HAL continues at present through the LinuxCNC and Machinekit initiatives as a result of HAL is versatile, 100% open-source, and is utilized in 1000’s of machines all over the world.
HAL consists of modular elements (loadable binary modules) that talk with one another by updating, studying, and writing named pins that join through named indicators. In some methods, HAL is like ROS, however there are vital variations:
- Utilizing PREEMPT-RT Linux extensions, HAL elements written in C execute in a 1kHz real-time thread with minimal jitter.
- HAL has many pre-written elements designed for low-level {hardware} management (PWM mills, stepper driver step mills, BLDC and three-phase motor controls, and extra. A full record may be discovered right here.
The Tormach robotic bridges the hole between ROS with the open-source hal_ros_control element. The mixture of HAL and ROS permits a wealth of robotic information to be uncovered to the consumer. All course of information is accessible through shell instructions, information logger utilities, and a graphical scope. All info on the EtherCAT bus, together with torque, present, following error, place, velocity, and extra can be found at 1 kHz and uncovered through HAL to ROS.
Since HAL is modular and versatile, customers can alter their robotic’s HAL configuration utilizing pre-built HAL elements or by writing new elements in C or Python, permitting simple integration with virtually any exterior gadget or course of.
Preconfigured for ROS
Beforehand, utilizing a commercially obtainable robotic with ROS requires discovering and downloading the suitable driver for the management, a URDF file to explain kinematics; making a moveit configuration, selecting a number of planners, IK solvers, and maybe discovering and bringing strong fashions into Rviz. Configuring a brand new robotic to be used with ROS is difficult even for knowledgeable ROS builders.

Python, a programming language that’s been in use for many years, makes programming a Tormach
robotic accessible for a lot of. The sheer variety of units and software program that run on Python means the ZA6 has a seemingly numerous variety of integrations which might be doable.
An optimized default ROS configuration for the manipulator, like that supplied by Tormach as a part of the management, helps alleviate many of those points. The URDF mannequin (unified robotic description format) is outlined, movement pipelines are configured, and trajectory planners and kinematics solvers are chosen and optimized in order that the robotic is able to work out of the field.
The robotic {hardware}, consumer interface, and robotic programming language are totally documented and supported by Tormach. Go right here for documentation.
The robotic’s default ROS configuration shall be excellent for many functions, saving months of configuration time, and it’s additionally open-ended to permit customers to develop their very own distinctive configurations at will.
Python: the robotic’s programming language
The shortage of an industry-standard robotic programming language led Tormach to decide on Python for its ZA6 robotic. The Tormach Robotic Programming Language (TRPL) makes use of the Python 3 interpreter and works equally to different frequent robotic programming languages, with instructions for various transfer varieties, instructions to learn and set inputs and outputs, and instructions to set and alter software and consumer frames. The language is documented right here.
It is very important word that any Python 3 program is a legitimate robotic program. The robotic’s capability to interpret any Python program signifies that virtually any Python bundle may be imported to assist with tougher robotic duties. Examples embody:
- Utilizing the csv and http requests libraries to add information information recorded by the robotic to an internet server.
- Utilizing opencv to acknowledge ArUco markers for visible servoing and localization.
- Utilizing numpy and kdl to calculate forces in cartesian area from the joint torque suggestions and robotic Jacobian.
- Utilizing Twilio to ship textual content messages from the robotic.
- Utilizing ChatGPT and the Python OpenAI API to conversationally create robotic packages – instance right here.
Whereas the TRPL interpreter simplifies loads of programming duties like transfer instructions and offsets, energy customers who’re aware of ROS are capable of entry the underlying ROS API instantly. Discover extra info right here.

Leif Sorgule, tech educator in Peru, New York, launched a set of educator-focused initiatives utilizing the ZA6.
Appropriate for analysis and training
The PathPilot consumer interface makes it simple to put in writing easy teach-mode packages to assist college students study the ideas they must be profitable in industrial robotics. Not like different robots designed for the classroom, the ZA6 teaches industrial robotic ideas like consumer frames, software frames, waypoint programming, and Cartesian-versus-joint angle waypoint varieties. One more reason to make use of the robotic as a instructing software is its easy-to-learn consumer interface.
The PathPilot consumer interface makes it simple to put in writing easy teach-mode packages to assist college students study the ideas they must be profitable in industrial robotics. Not like different robots designed for the classroom, the ZA6 teaches industrial robotic ideas like consumer frames, software frames, waypoint programming, and Cartesian-versus-joint angle waypoint varieties. One more reason to make use of the robotic as a instructing software is its easy-to-learn consumer interface.
Dr. John Wen at Rensselaer Polytechnic Institute is growing Robotic Raconteur, which is a royalty-free challenge supposed to supply an answer to distributed management and element interfaces. The system is designed exactly for the situation of an engineer wanting to regulate a element from a high-level language in distributed or non-distributed situations.
See how researchers at RPI have built-in the Tormach robotic into its Robotic Raconteur program for force-torque management.