ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I think that the actual ROS API for application manager is fairly stable, but a little undocumented. What follows is my own interpretation of how this is supposed to work, other people may feel free to correct me.

On my robot, I have a "minimal.launch" file, that is started at boot. This launch file covers the basic hardware things that I need for my machine. In my case, it starts the motor controller, laser, kinect, cameras, diagnostics, and app_manager. For reference, here is the file.

When app_manager starts, it can take an --applist argument (if you don't have it in the default location /etc/robot/apps), which is a semicolon-delimited list of locations where application lists (YAML) are stored.

An app is defined by three files:

  • .app - Holds app meta-data
  • .launch - App roslaunch file
  • .interface - Defines how the app will connect to other apps (I'm not really clear on how this works, sorry).

The necessary files are

  1. App Manager Launch File Example
  2. App Listing File Example
  3. Write a .app, .interface, and .launch file for each app that you want Example

Generally, the approach I have taken is a minimal hardware setup in my *_bringup package, and then a separate repository for my *_apps. If it helps, all of my code is on the Auburn Automow Github