Tag Archives: launch files

RPTR and ROSLaunchParser

I recently wrote a python script that does parsing of ROS launch files to get at information such as parameters and nodes declared in the file.

What is ROS? Robotics Operating System (ROS) is a programming language and environment for the development of distributed robotics software. My university uses it quite a bit to do Unmanned Aerial Vehicle (UAV) research.

I am a software engineer doing research on program analysis in the Java realm, so why am I dealing with ROS? One of my Spring 2012 classes was all about program analysis with the final project being to develop a program analysis for ROS. The reason for this is because ROS is so new and ripe for novel program analyses.

My group decided to create a runtime monitoring analysis. Runtime Parameter Tracking for ROS (RPTR) is a system for tracking the runtime usage of parameters used in a ROS system. The concept of parameters in ROS is unique as compared to other languages and when ROS systems get large it can be difficult to keep track of them. RPTR basically keeps an eye on all the uses and definitions of parameters throughout a run of the system and provides a report to the developer. It also analyzes the reports itself to try to identify potentially problematic usage patterns.

One of my main tasks during the project was to write a script to parse launch files (ROS’s configuration files). I wrote a python script for this because it made the whole process quick and easy. I had started with Java and all the boilerplate for such a simple set of tasks was more work than it was worth. Anyway, I decided to put my script up on GitHub as ROSLaunchParser.

As some future work, it would we interesting to look at a large collection of runtime parameter logs and see what kinds of patterns emerge.

Tagged , , , , ,