Listen to this text |
The Robot Operating 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. Robot tools producers use proprietary, closed-source software program and management programs for his or her manipulators, leaving researchers with a steep hill to climb with a view 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 box” points that plague fashionable robotics purposes. Additionally, 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 package deal 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 downside with ROS and proprietary robotic management programs
Robot 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 have invested vital sources into creating and testing their proprietary management programs and don’t need to expose the inside 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 could
introduce bugs or different points that would compromise the security or reliability of the system. - Legal or contractual obligations typically forestall producers from sharing proprietary data with exterior events.
- They could also be involved about potential legal responsibility points if their closed-source management programs are modified by exterior events.
- There is little monetary incentive for many producers, and in lots of circumstances, there’s a robust disincentive: the necessity to spend money on further documentation, coaching, and assist infrastructure to allow researchers to work with their management programs successfully.
For these causes, integrations between ROS and commercially accessible robotic {hardware} are restricted. While 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.
As a consequence, the consumer could not have entry as to whether or not the robotic adheres to timing, velocity, and path accuracy intents. Data like motor torque, present, following error is normally unavailable, and the sluggish management loop severely limits what researchers can accomplish.
Motor and drive suggestions to ROS
The ROS/HAL {hardware} and software program stack provides suggestions that may present invaluable management alternatives.
The ZA6 gives the next:
- Feedback from every joint, commonplace configuration: place, velocity suggestions, torque suggestions in SI items, following error, diagnostics-like error code, with configuration, drives can even 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
- Feedback from ROS and TransferIt, particularly Cartesian pose
Most of those suggestions components give attention to solely the lower-level management layers. Higher-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) mission that had its origin 25 years in the past on the National Institute of Standards and Testing (NIST).
Active improvement of HAL continues at present by way of the LinuxCNC and Machinekit tasks as a result of HAL is versatile, 100% open-source, and is utilized in hundreds of machines world wide.
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:
- Using 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 mills, stepper driver step mills, BLDC and three-phase motor controls, and extra. A full checklist may be discovered right here.
The Tormach robotic bridges the hole between ROS with the open-source hal_ros_control part. The mixture of HAL and ROS permits a wealth of robotic knowledge to be uncovered to the consumer. All course of knowledge is accessible by way of shell instructions, knowledge 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 simple integration with nearly any exterior system or course of.
Preconfigured for ROS
Previously, 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 stable fashions into Rviz. Configuring a brand new robotic to be used with ROS is difficult even for knowledgeable ROS builders.
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 very best 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 lack of an industry-standard robotic programming language led Tormach to decide on Python for its ZA6 robotic. The Tormach Robot Programming Language (TRPL) makes use of the Python 3 interpreter and works equally to different frequent robotic programming languages, with instructions for various transfer sorts, instructions to learn and set inputs and outputs, and instructions to set and alter instrument and consumer frames. The language is documented right here.
It is necessary to notice that any Python 3 program is a sound robotic program. The robotic’s capability to interpret any Python program implies that nearly any Python package deal may be imported to assist with more difficult robotic duties. Examples embody:
- Using the csv and http requests libraries to add knowledge information recorded by the robotic to an online server.
- Using opencv to acknowledge ArUco markers for visible servoing and localization.
- Using numpy and kdl to calculate forces in cartesian area from the joint torque suggestions and robotic Jacobian.
- Using Twilio to ship textual content messages from the robotic.
- Using ChatGPT and the Python OpenAI API to conversationally create robotic applications – instance right here.
While the TRPL interpreter simplifies a whole lot of programming duties like transfer instructions and offsets, energy customers who’re accustomed to ROS are in a position to entry the underlying ROS API straight. Find extra data right here.
Suitable for analysis and training
The PathPilot consumer interface makes it simple to write down easy teach-mode applications to assist college students be taught the ideas they must be profitable in industrial robotics. Unlike different robots designed for the classroom, the ZA6 teaches industrial robotic ideas like consumer frames, instrument frames, waypoint programming, and Cartesian-versus-joint angle waypoint sorts. Another cause to make use of the robotic as a educating instrument is its easy-to-learn consumer interface.
The PathPilot consumer interface makes it simple to write down easy teach-mode applications to assist college students be taught the ideas they must be profitable in industrial robotics. Unlike different robots designed for the classroom, the ZA6 teaches industrial robotic ideas like consumer frames, instrument frames, waypoint programming, and Cartesian-versus-joint angle waypoint sorts. Another cause to make use of the robotic as a educating instrument is its easy-to-learn consumer interface.
Dr. John Wen at Rensselaer Polytechnic Institute is creating Robot Raconteur, which is a royalty-free mission supposed to offer an answer to distributed management and part interfaces. The system is designed exactly for the state of affairs of an engineer wanting to manage a part from a high-level language in distributed or non-distributed circumstances.
See how researchers at RPI have built-in the Tormach robotic into its Robot Raconteur program for force-torque management.