SALVO is publicly released

We are pleased to announce that SALVO, an open-source software for abstracting data logging middleware-specific function calls, has been released and is publicly available to the open-source community.

At Aitronik we are committed to providing robotization services to increase safety and efficiency of operations where vehicles are involved. We deliver top-notch custom software and provide integration services to transform machines into autonomous vehicles in the aerial, ground, and marine domains. 

Are you  a software developer, adopting different communication middlewares (e.g. ROS and ROS2)? Do you have consolidated portions of code that shall be integrated on different machines, each of them adopting a different communication system?

#include “ros/ros.h”
#include “rosgraph_msgs/Log.h”

rosgraph_msgs::Log msg;

#include <rclcpp/rclcpp.hpp>
#include “rcl_interfaces/msg/log.hpp”

rcl_interfaces::msg::Log msg;

#include <zmq.hpp>
zmq::message_t msg(…);


In this case, you might have been frustrated to:

  • rewrite the application every time the middleware changes. For example, if you have a ‘filter.cpp’ class and want to log something, you’d normally need two different versions of the same code just for printing the log for ROS and ROS2.
  • maintain a branch for every middleware used, and then fix bugs on all branches
  • empty your folder frequently because it fills-up with files generated at each run

SALVO was born from the need to create an abstraction layer for software incorporating data logging function calls when switching from ROS, ROS2, ZeroMQ middlewares, and ideally any communication system.

We internally released, tested, and felt the benefits of the first version, and decided to release SALVO open-source. SALVO is an open source tool aimed at developers to:

  1. provide a simple abstaction layer to use generic classes in your applications without changing any code for each specific communication system. Your source code is portable among different middlewares 
  2. avoid creating multiple branches for data logging code  
  3. provide the option of generating a unique rolling file, without filling your folder with thousands of  files

On top of that, SALVO enables the integration of custom log levels, save the log into a file, and use a Graphic User Interface, called GUARDO, to see and filter the nodes.

SALVO is currently released with ROS2 compatibility (ROS and ZMQ middlwares are going to be released shortly), and is expandible to any communication middleware.

We released SALVO for you to experience:

  1. Productivity Boost: By unifying logging practices, SALVO reduces development time. No more context-switching between middleware platforms.
  2. Community-Driven: SALVO is open source, we encourage the community to report issues, contribute to its improvement, and collaborate for its adoption.
  3. Future-Proof: As middleware landscapes evolve, SALVO adapts. We’re committed to keeping SALVO up-to-date with the latest standards and technologies.

When you use SALVO, code maintenance and reusability is guaranteed, and you save coding time.

What middleware would you like to be covered by SALVO?

Dont’ keep waiting, download SALVO for free and let us know your feedback!

Share this post