roslaunch/2008-09-18 roslaunch Specification Review

Package Developer: KenConley



The focus of this review will focus on the features that roslaunch provides as well as the XML format of the roslaunch files. In particular:

  • What remaining features are necessary?
  • What use cases is roslaunch poor at?
  • Is roslaunch sufficient for our PR2 needs?

These are the currently open feature/bug tickets:

Please add your questions/answers here:

Package Specification

Key features

  • Establish the state of the ROS runtime environment, including the master, parameters, nodes, and services
  • Correctly tear down the ROS runtime environment
  • Restart ROS nodes as necessary
  • Support multi-machine setups


  • rostools : library for manipulating ROS environment

Testing strategy

  • XML-parsing unit tests against XML files
  • Implicit integration testing via rostest


  • rosout is preferred over routing console output to screen.
  • Getting console output from remote processes to the local screen is not a priority. rosout is the solution there.
  • Morgan uses roslaunch on each machine, and it works "awesome".
  • Groups cannot be combined; i.e., a group can be declared only in one place.
  • Startup errors (e.g., executable bit not set) are communicated by the "process died" message to console from roslaunch. If respawn is set, you may get a fast sequence of startup / die messages.
  • Once support is added for referencing xmlparam and yamlparam files, roslaunch will call out to them (i.e., not reimplement that functionality)
  • After roslaunch dies, parameters stay up; use the master tag to control this behavior.
  • Will eventually add 'roscore' that brings up rosout, master, and param server. Works in a singleton fashion, not restarting any of these core services.
  • Can we extend the singleton behavior to user-defined ros nodes? No need, because the master will kill the first instance of two nodes with the same name already.
  • We could add the 'start' attribute to the node tag, allowing the user to specify start or restart. No, don't do that; instead use multiple roslaunch files (either with multiple invocations of roslaunch, or with one invocation and use of the include tag)
  • How is include pathing done? It happens rospack-relative. All includes happen on the local machine.



Wiki: roslaunch/Reviews/2008-09-18_Specification_Review (last edited 2009-08-14 20:52:15 by localhost)