Skip to content

Commit

Permalink
modify launch docs (#116)
Browse files Browse the repository at this point in the history
* modify launch docs

* Aaron changes

* add Aaron changes

* fix file structure

* remove old comment
  • Loading branch information
StefanCaldararu authored Jan 16, 2024
1 parent bedccad commit b9582c5
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions docs/design/launch_system.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Launch System

The launch system is used to help spin up all the nodes associated with a given experiement (e.g. simulation, reality). This page describes the file structure and how files are designed.
The launch system is used to help spin up all the nodes associated with a given experiement (e.g. simulation, reality). This page describes the file structure and how files are designed, as well as how new launch dependencies should be added.

> [!NOTE]
> The term "orchestrator" is going to be used to describe a launch file that includes other launch files or does house keeping (defines `LaunchConfigurations`, etc.).
Expand All @@ -12,7 +12,9 @@ The file structure is as follows:
```
autonomy-research-testbed/
├── art_launch/
├── art_dev_launch/
├── launch_utils/
├── art_<vehice name>_launch/
└── art_<module>_launch/
```

Expand All @@ -22,20 +24,27 @@ Each folder contains a `launch/` folder where all the launch files should be pla

### File Naming Convention

All launch files end in `.launch.py`. Furthermore, all launch files specific to the a vehicle platform or orchastrator launch files are prefixed with `art_`.
All launch files end in `.launch.py`. Furthermore, all launch files specific to a vehicle platform or orchastrator launch files are prefixed with `art_`.

## `art_launch/`

This is where the main launch file is held: [`art.launch.py`](../../workspace/src/common/launch/art_launch/launch/art.launch.py). This file will do a few things.
This is where the main launch file is held: [`art.launch.py`](../../workspace/src/common/launch/art_launch/launch/art.launch.py). This is a common launch file through which most services will go through. `art_launch` accomplishes two tasks:

1. It will first define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.).
2. It will create a [composable node container](https://docs.ros.org/en/galactic/How-To-Guides/Launching-composable-nodes.html).
3. It will include all other orchestration launch files.
1. It will create a [composable node container](https://docs.ros.org/en/galactic/How-To-Guides/Launching-composable-nodes.html).
2. It will include all other orchestration launch files.

## `art_dev_launch/`

The purpose of this file is to define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.) for the `dev` service. This will allow all orchestrators to know which specific packages to launch, and which to ignore. This is currently set up to run a cone-based path following demo, but can be used to test any other packages.

## `launch_utils/`

The `launch_utils` folder contains helper functions for creating launch files. These helpers should be used throughout the launch system.

## `art_<vehicle name>_launch/`

Vehicle-specific launch files should be named following the above naming convention (`art_<vehicle name>_launch`), and should be structured in a similar way to `art_dev_launch`. This means they should only define launch arguments, leaving the process of actually launching modules to `art_launch`. This is defined to allow for multiple vehicles with various missions, sensor suites, etc. to all be launched in similar ways and all live in the same repository.

## `art_<module>_launch/`

This folders deal directly with the subfolders defined in the [ROS Workspace](./ros_workspace.md) page. For instance, the [`art_control_launch`](../../workspace/src/common/launch/art_control_launch/) folder contains launch files for the control nodes.
Expand Down

0 comments on commit b9582c5

Please sign in to comment.