Hearken to this text |
The Robotic Working System (ROS) is a robust open-source platform for robotics analysis, however till not too long ago 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 in an effort to use ROS on industrial robots.
Addressing this want and advancing the capabilities of the ROS improvement neighborhood, Tormach has created a ROS-based industrial robotic manipulator and management system that avoids “black field” points that plague fashionable robotics purposes. 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 assets into creating and testing their proprietary management techniques and don’t need to expose the internal workings of their system to exterior researchers for concern of shedding mental property.
- There are dangers related to exposing the system parameters to exterior researchers. Untested utilization could
introduce bugs or different points that would compromise the security or reliability of the system. - Authorized or contractual obligations typically forestall producers from sharing proprietary data with exterior events.
- They could be involved about potential legal responsibility points if their closed-source management techniques are modified by exterior events.
- There may be little monetary incentive for many producers, and in lots of circumstances, there’s a sturdy disincentive: the necessity to spend money on further documentation, coaching, and help infrastructure to allow researchers to work with their management techniques successfully.
For these causes, integrations between ROS and commercially accessible 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 could not have entry as to whether or not the robotic adheres to timing, velocity, and path accuracy intents. Information like motor torque, present, following error is normally 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 steel to create advanced shapes. Learning the 3D-printed welds microscopically with beams of neutrons permits researchers to raised perceive elements resembling 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 affords suggestions that may present worthwhile management alternatives.
The ZA6 supplies the next:
- Suggestions from every joint, customary configuration: place, velocity suggestions, torque suggestions in SI models, following error, diagnostics-like error code, with configuration, drives may also 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 parts give attention to solely the lower-level management layers. Greater-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) venture that had its origin 25 years in the past on the Nationwide Institute of Requirements and Testing (NIST).
Energetic improvement of HAL continues as we speak by way of the LinuxCNC and Machinekit tasks as a result of HAL is versatile, 100% open-source, and is utilized in 1000’s of machines around the globe.
HAL consists of modular parts (loadable binary modules) that talk with one another by updating, studying, and writing named pins that join by way of named alerts. In some methods, HAL is like ROS, however there are necessary variations:
- Utilizing PREEMPT-RT Linux extensions, HAL parts written in C execute in a 1kHz real-time thread with minimal jitter.
- HAL has many pre-written parts designed for low-level {hardware} management (PWM turbines, stepper driver step turbines, BLDC and three-phase motor controls, and extra. A full record could 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 by way of shell instructions, information logger utilities, and a graphical scope. All data on the EtherCAT bus, together with torque, present, following error, place, velocity, and extra can be found at 1 kHz and uncovered by way of HAL to ROS.
Since HAL is modular and versatile, customers can alter their robotic’s HAL configuration utilizing pre-built HAL parts or by writing new parts in C or Python, permitting straightforward integration with virtually any exterior machine or course of.
Preconfigured for ROS
Beforehand, utilizing a commercially accessible 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 gadgets and software program that run on Python means the ZA6 has a seemingly numerous variety of integrations which are potential.
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 will probably be preferrred for many purposes, 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 device and consumer frames. The language is documented right here.
You will need to notice that any Python 3 program is a sound robotic program. The robotic’s potential to interpret any Python program signifies that virtually any Python bundle could be imported to assist with more difficult robotic duties. Examples embrace:
- Utilizing the csv and http requests libraries to add information recordsdata 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 applications – instance right here.
Whereas the TRPL interpreter simplifies numerous programming duties like transfer instructions and offsets, energy customers who’re acquainted with ROS are capable of entry the underlying ROS API immediately. Discover extra data right here.

Leif Sorgule, tech educator in Peru, New York, launched a set of educator-focused tasks utilizing the ZA6.
Appropriate for analysis and schooling
The PathPilot consumer interface makes it straightforward to write down easy teach-mode applications to assist college students study the ideas they should be profitable in industrial robotics. Not like different robots designed for the classroom, the ZA6 teaches industrial robotic ideas like consumer frames, device frames, waypoint programming, and Cartesian-versus-joint angle waypoint varieties. Another excuse to make use of the robotic as a educating device is its easy-to-learn consumer interface.
The PathPilot consumer interface makes it straightforward to write down easy teach-mode applications to assist college students study the ideas they should be profitable in industrial robotics. Not like different robots designed for the classroom, the ZA6 teaches industrial robotic ideas like consumer frames, device frames, waypoint programming, and Cartesian-versus-joint angle waypoint varieties. Another excuse to make use of the robotic as a educating device is its easy-to-learn consumer interface.
Dr. John Wen at Rensselaer Polytechnic Institute is creating Robotic Raconteur, which is a royalty-free venture supposed to offer an answer to distributed management and element interfaces. The system is designed exactly for the state of affairs of an engineer wanting to manage a element from a high-level language in distributed or non-distributed circumstances.
See how researchers at RPI have built-in the Tormach robotic into its Robotic Raconteur program for force-torque management.