Using Safety Protocols with ROS

Does anyone know of any implementations of ROS packages for the major safety protocols for industrial? Examples:
Profisafe, OpenSafety, CIPSafe?

There is an implementation of Ethernet/IP in ros-drivers (https://github.com/ros-drivers/odva_ethernetip) but I don’t think it actually implements the CIPsafe portion of Ethernet/IP. That is the closest thing I’m aware of.

I’m not aware of any packages targeting specifically those extensions either.

Most applications I’ve seen (ROS 1) separate safety from the rest of the application (to make certification easier or feasible). In those cases, integrating with the protocols/extensions you mention is less of an issue.

@mikeferguson - thanks, I had seen that but was wondering if there was a an interface to the safety protocol.

@gavanderhoorn - That’s what I’m trying to do, something like ROS -> ROS Safety package -> Safety protocol (ex. CIPSafe)-> low level protocol (ex. Ethernet/IP) -> Safety monitoring subsystem

Do you know of any open source examples of this type of architecture?

No, unfortunately I don’t.

@gavanderhoorn - Maybe I asked the wrong question. You mentioned above you have seen some applications that separate safety from the rest of the ROS system, can you point me to an example you have seen? Maybe I am making this more complex than needed.

Thanks,
Matt

I’m unsure whether I can point you to an example.

I’ll contact one of my colleagues in ROS-I and see whether I can do that.

1 Like

Hi!

Not sure this is relevant to the original discussion – I’ve just noticed “safety” and “protocols” in the name of the topic. At our company, we are working on tools and techniques for ensuring the safety and reliability of communication protocols by means of formal verification. So far we’ve been focusing on these types of problems in finance – FinTech is essentially a distributed system of independent nodes communicating via messaging protocols. ROS looks like exactly the same kind of system, so we’ve also started a ROS-related project.

We are working on the creation of ROS-OCaml client – if your code is written in a pure subset of OCaml, then it can be reasoned about using our Imandra proof assistant. Using Imandra, one can mathematically verify statements about your OCaml code, and it helps you to precisely formulate these formal statements by giving you counterexamples to your false claims. This allows you to create extremely reliable, precise and safe code and specification for it.

[1]: Aesthetic Integration
[2]: Try our Imandra reasoning engine in the browser
[3]: The GitHub of the project: https://github.com/AestheticIntegration/imandra-ros

1 Like

Other than the ‘safety’ context, your reply to @mkhansen’s post seems rather off-topic (as his post is about safety extensions to fieldbuses used in traditional automation contexts).

1 Like

I would like to refer to the presentation of Theo Jacobs of Fraunhofer IPA on “SAFETY REQUIREMENTS AND STANDARDISATION FOR ROBOTS: SOFTWARE DO’S AND DON’T” held at ROS-I Conference 2016 in Stuttgart, Germany:

–> on slide 9 onwards ("Safe software: Boundaries of the safety-related control system) you can see different the levels of the control system with a OS and middleware level as part of the "sand box" protected safety-related part and an underlying safety-related part.

–> on slide 13, Theo lists "Possible conflicts between open source software and requirements for safe software" where he concludes: Possibly only works for

  • Self-contained modules maintained by a small group of programmers

  • Verified software versions with change-on-your-own-risk policies

Again, Theo’s presentation is from 2016 – software evolves quickly, and ROS2 and/or other developments might change the conclusions there.

I hope this can answer at least some of your concerns

3 Likes

another thing: at this year’s AUTOMATICA fair in Munich, German safety specialist PILZ showed a new robot arm that – to put it short & simple - applied these safe levels of the control system.

–> see also their announcement here on Discourse (Announcing official ROS support for the Pilz light weight arm)

@ThiloZimmermann - thanks for the references, these look helpful. I’ll take a look!

Thanks,
Matt

1 Like