ROS, which stands for Robotic Operating System, is an open-source robotics middleware. Nowadays, it is increasingly being used in research as well as industrial applications due to the flexibility it offers. ROS provides peer-to-peer communication among various devices, is lightweight and supports multiple programming languages.
SHERLOCK consists of 19 hardware and software modules. Following a versatile approach, communication among the modules is being achieved via ROS, either using existing ROS interfaces or building them from scratch.
The developed “ROS drivers suite” offers the following main features:
- Asynchronous robot control
- I/O control
- Fieldbus control
- Synchronous robot control (sensor tracking)
Asynchronous robot control: The robot publishes its state to the ROS driver with a frequency of 100Hz. During this operation, two ROS action servers are responsible for moving the robot, one for joint space trajectories and one for cartesian space trajectories. The desired trajectory is sent from the ROS application (e.g., MoveIt) as a goal for the robot. Functionalities such as validation that the goal is inside the robot limits and that it is ready to receive a new goal are also implemented.
I/O control: This part of the “ROS drivers suite” is responsible to enable/disable the hard-wired I/Os of the robot. A dedicated ROS service offers control over the physical of virtual GPIO pins of the controller while providing feedback regarding their state.
Fieldbus control: This part of the “ROS drivers suite” is responsible to control devices connected to the robot controller via Fieldbus (PROFINET, PROFIBUS, Ethernet IP), as well as monitor their state.
Synchronous robot control (sensor tracking): The difference of the synchronous robot control compared to the asynchronous one is that in the synchronous control, the robot is correcting its trajectory in real-time based on feedback received from dedicated sensors (force/torque sensors, vision systems etc.) The control loop frequency can be as high as 500 Hz, ensuring quick and smooth corrections. The user (ROS application) can move from asynchronous to synchronous robot control mode at any time.
“ROS drivers suite” includes two more applications. The “COMAU robot simulator” which allows the user to perform a simulation for a given application without the need of a physical robot, and the “MoveIt interface” which enables the on-the-fly trajectory planning (either in physical or virtual application).
It is worth noting that, apart from the AURA and the Racer5L robots, this “ROS drivers suite” supports a variety of COMAU robots that use the C5G controller, such as NJ4 110-2.2, NJ4 170-2.9, NJ 220-2.7, Racer 5-0.80, Racer 7-1.4.