From 0f206058cfe110cff8ef7a1b0698242d04f1503d Mon Sep 17 00:00:00 2001 From: Stefan Caldararu Date: Mon, 20 Nov 2023 07:06:32 -0600 Subject: [PATCH 1/5] modify launch docs --- docs/design/launch_system.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/design/launch_system.md b/docs/design/launch_system.md index 32ad38e5..8ba3d830 100644 --- a/docs/design/launch_system.md +++ b/docs/design/launch_system.md @@ -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.). @@ -12,6 +12,7 @@ The file structure is as follows: ``` autonomy-research-testbed/ ├── art_launch/ +├── art_shared_launch/ ├── launch_utils/ └── art__launch/ ``` @@ -22,15 +23,21 @@ 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). The only purpose of this file is to define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.). This will allow all orchestrators to know which specific packages to launch, and which to ignore. Following this, ther remainder of the general setup is left to the `art_shared_launch`. -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. +> [!NOTE] +> Vehicle-specific launch fies should be named following the above naming convention (`art__launch`), and should be structured in a similar way to `art_launch`. This means they should only define launch arguments, leaving the process of actually launching modules to the `art_shared_launch`. + +## `art_shared_launch/` + +This is where the actual modules get launched from. the `art_shared_launch` acomplishes a few things, which will be common across all vehicles. + +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. ## `launch_utils/` From cdfb43f9f3fac7f9d64c223b05b2024d04143a7b Mon Sep 17 00:00:00 2001 From: Stefan Caldararu Date: Mon, 20 Nov 2023 07:47:58 -0600 Subject: [PATCH 2/5] Aaron changes --- docs/design/launch_system.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/design/launch_system.md b/docs/design/launch_system.md index 8ba3d830..5ea53ca3 100644 --- a/docs/design/launch_system.md +++ b/docs/design/launch_system.md @@ -14,6 +14,7 @@ autonomy-research-testbed/ ├── art_launch/ ├── art_shared_launch/ ├── launch_utils/ +├── art__launch/ └── art__launch/ ``` @@ -29,12 +30,9 @@ All launch files end in `.launch.py`. Furthermore, all launch files specific to This is where the main launch file is held: [`art.launch.py`](../../workspace/src/common/launch/art_launch/launch/art.launch.py). The only purpose of this file is to define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.). This will allow all orchestrators to know which specific packages to launch, and which to ignore. Following this, ther remainder of the general setup is left to the `art_shared_launch`. -> [!NOTE] -> Vehicle-specific launch fies should be named following the above naming convention (`art__launch`), and should be structured in a similar way to `art_launch`. This means they should only define launch arguments, leaving the process of actually launching modules to the `art_shared_launch`. - ## `art_shared_launch/` -This is where the actual modules get launched from. the `art_shared_launch` acomplishes a few things, which will be common across all vehicles. +This is where common conigurations are made. The `art_shared_launch` accomplishes a few things, which will be common across all vehicles. 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. @@ -43,6 +41,10 @@ This is where the actual modules get launched from. the `art_shared_launch` acom The `launch_utils` folder contains helper functions for creating launch files. These helpers should be used throughout the launch system. +## `art__launch/` + +Vehicle-specific launch files should be named following the above naming convention (`art__launch`), and should be structured in a similar way to `art_launch`. This means they should only define launch arguments, leaving the process of actually launching modules to the `art_shared_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__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. From c7df23ebef06385bdf10bf5cd5d64809b94195ed Mon Sep 17 00:00:00 2001 From: Stefan Caldararu Date: Mon, 20 Nov 2023 10:26:45 -0600 Subject: [PATCH 3/5] add Aaron changes --- docs/design/launch_system.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/design/launch_system.md b/docs/design/launch_system.md index 5ea53ca3..7a85da02 100644 --- a/docs/design/launch_system.md +++ b/docs/design/launch_system.md @@ -28,22 +28,24 @@ All launch files end in `.launch.py`. Furthermore, all launch files specific to ## `art_launch/` -This is where the main launch file is held: [`art.launch.py`](../../workspace/src/common/launch/art_launch/launch/art.launch.py). The only purpose of this file is to define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.). This will allow all orchestrators to know which specific packages to launch, and which to ignore. Following this, ther remainder of the general setup is left to the `art_shared_launch`. - -## `art_shared_launch/` - -This is where common conigurations are made. The `art_shared_launch` accomplishes a few things, which will be common across all vehicles. +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 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. +The only purpose of this file is to define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.). This will allow all orchestrators to know which specific packages to launch, and which to ignore. Following this, ther remainder of the general setup is left to the `art_shared_launch`. + +## `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__launch/` -Vehicle-specific launch files should be named following the above naming convention (`art__launch`), and should be structured in a similar way to `art_launch`. This means they should only define launch arguments, leaving the process of actually launching modules to the `art_shared_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. +Vehicle-specific launch files should be named following the above naming convention (`art__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__launch/` From f568baac614bf9cfac56796cc3654ebcc1e44e51 Mon Sep 17 00:00:00 2001 From: Stefan Caldararu Date: Mon, 20 Nov 2023 10:27:37 -0600 Subject: [PATCH 4/5] fix file structure --- docs/design/launch_system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/launch_system.md b/docs/design/launch_system.md index 7a85da02..8ad1cfcc 100644 --- a/docs/design/launch_system.md +++ b/docs/design/launch_system.md @@ -12,7 +12,7 @@ The file structure is as follows: ``` autonomy-research-testbed/ ├── art_launch/ -├── art_shared_launch/ +├── art_dev_launch/ ├── launch_utils/ ├── art__launch/ └── art__launch/ From 638888bfc105fd41f72ad4b2234b31484f8f21c0 Mon Sep 17 00:00:00 2001 From: Stefan Caldararu Date: Mon, 20 Nov 2023 10:28:43 -0600 Subject: [PATCH 5/5] remove old comment --- docs/design/launch_system.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/design/launch_system.md b/docs/design/launch_system.md index 8ad1cfcc..670f8884 100644 --- a/docs/design/launch_system.md +++ b/docs/design/launch_system.md @@ -33,8 +33,6 @@ This is where the main launch file is held: [`art.launch.py`](../../workspace/sr 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. -The only purpose of this file is to define system wide parameters (e.g. `LaunchConfigurations`, `LaunchDescriptions`, etc.). This will allow all orchestrators to know which specific packages to launch, and which to ignore. Following this, ther remainder of the general setup is left to the `art_shared_launch`. - ## `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.