HAROS - Short Presentation

Hello, everyone.

Many of you already know me, or at least know my work on HAROS, a tool to improve software quality of ROS code.

Recently, I have been presenting HAROS and its roadmap here and there. It has been a while since I have shared updates on the tool with the ROS community as a whole, so I figured I would record one of these presentations and share it with you here.

If you have some time to spare (about 13 minutes), I look forward to hearing your questions and feedback.

Thanks in advance!


P.S.: let me know if it is hard to understand the audio and if you would like me to add subtitles.

6 Likes

Very clear sound
Good slides

I got lost when you were commenting the tool overview slide. There you would need more slides to show what you are saying.
Also theere i tried to read the the slide icons names etc.
Maybe an animation of the workflow, i mean one piece at a time appears would work.
I would like also to have in the video some practical hints.
Can I use it for ros 1?
How long it takes to install?
How long to set up a test?
How long to run a satysfying set of test?
Of course it all depends on the code I want to analyse but some examples would be insightful

1 Like

Thanks for the feedback, @Paulinho1!

I got lost when you were commenting the tool overview slide.

I was afraid that one was going to be problematic. It’s got too much information into a single slide.
Indeed, some kind of animation, or at least some highlights of the parts I am talking about, should be included.

Can I use it for ros 1?

Yes. It is intended for ROS 1 only, for now. ROS 2 is still on the roadmap.

How long it takes to install?

Installation should not take long. Depending on the plugins you want to use, it only takes the time to download a few packages with pip, or the time to clone the repositories if you run it from source.

How long to set up a test?

If you do not take into account the time it takes to come up with (and write down) properties, generating a test is also relatively quick.

It should only take a few seconds, unless you are running it for the first time for a given system (or if the ROS code has been modified since you last ran it). In that case, it has to “compile” the code again, to update the architecture model, and that takes about as long as normal compilation with catkin_make or similar.

How long to run a satysfying set of test?

Depends on settings, but running property-based tests takes a while because each property is automatically tested many times with different inputs.
Unfortunately, for each input, it has to launch the ROS system under test, run the test and kill the system, so that the next input is guaranteed to start from a fresh state.

If the property is false, it should not take long to find a counterexample. But, if it is true, you can expect to wait a few minutes, until it gives up.
I tested systems with hundreds of properties (both true and false), and I got an average of 5 or 6 seconds per input (half of it is roslaunch). True properties should run hundreds of inputs, false properties often find the bug in 15 to 30 inputs.

If there was a standard mechanism to reset nodes to the original state at runtime, without killing and launching them again, this would be much shorter. I have seen cases (e.g., Kobuki) where they have a /reset topic, and I modified some tests by hand to use it, but it is not standard.

some examples would be insightful

Indeed. Thanks for the suggestion. I will include some hands-on information in a future version. :+1:

1 Like

it would be nice also to have command-like-tutorial so something like you did here: Haros Basics - YouTube but with your comments :slight_smile: maybe even done for known open source project like husky with gazebo or smth like this - just an idea.

Sounds great @femust :+1:

This presentation was intended for a 15-min talk, so it is a bit more abstract.
I have a public repository of case studies using HAROS on GitHub. I might do a process like this, but in video format with commentary.

+1 for adding ROS 2 support! And thank you very much for helping push higher code quality.