TX2: Setting ROS to Start on Boot - LoCO-AUV/loco_config GitHub Wiki
In order to start ROS systems on boot, we use a systemd service to run a script. This script launches several roslaunch files. Setting this all up is pretty straightforward.
systemd Service
The required service file is provided in loco_config under /tx2_config_files, called ros-start.service. Put it into /etc/systemd/system, then run the following command.
sudo systemctl enable ros-start.service
Now the service is enabled.
Bash Script
For the service to have anything to run, we need to have the appropriate script in our RPI's home directory. That file is also provided in loco_config under /rpi_config_files, called ros-start.bash. This file should be put in the /home/user/ directory. For us, that's /home/irvlab, but you might need to change the name (if so, make sure that references to it in ros-start service are also changed. Once the file is in the appropriate place, make it executable.
Preparing the ROS launch files for startup
The ros-start bash script starts a variety of launch file from packages including loco_menu and the camera launch file found in loco_launch.