Starting ROS packages on startup

Often times it is useful to start a ROS package when a robot boots up. For example, the relay computer in the Flight Room (see Lab Computers) starts a ROS core on boot for devices on the local network. This functionality is achieved using the robot_upstart package.

On relay, the service is called ros_startup. Check the status with the command service ros_startup status.

Install robot_upstart

Ubuntu 16.04 / 18.04

The package is available through apt and can be installed with sudo apt-get install ros-kinetic-robot-upstart for ROS Kinetic. Otherwise, clone the source repository into a Catkin workspace and build it from source. If building from source, also install the Ubuntu package daemontools with sudo apt-get install daemontools.

Using robot_upstart

Using robot_upstart is simple and is explained on the robot_upstart documentation page.

To have the launch file launch/example.launch from the ROS package example_package run on computer startup, use the command

$ rosrun robot_upstart install example_package/launch/example.launch

A service called example will be created. Use the --job flag to provide a custom name, otherwise it will be constructed from the package name. Check the service status with

$ service example status

Launching an empty launch file (i.e. only containing <launch></launch>) will still create a ROS core if no ROS core is running.