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:
- 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
- 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.