You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Want to know more about these steps and output results?
107
-
Need multi-host operation, native execution, and REST automation?
108
-
Let's go to the next section [Usage in Details](#usage-in-details).
106
+
Need multi-host operation, Docker or native execution, and REST automation?
107
+
Want to learn more about these steps and output metrics?
108
+
Let’s move on to the following sections to explore the full capabilities of this framework!
109
109
110
110
## Usage in Details
111
111
112
-
### Shared Docker Image
112
+
This section walks you through the full usage of the framework in detail, from generating execution scripts to running multi-host benchmarks via REST in either Docker or native environments.
113
113
114
-
Use the published GitHub Packages image [`ghcr.io/hal-lab-u-tokyo/ros2-perf-multihost:latest`](https://github.com/hal-lab-u-tokyo/ros2-perf-multihost/pkgs/container/ros2-perf-multihost).
115
-
Generated `local_compose.yaml` and `host{N}_compose.yaml` files reference this image.
116
-
For image build and push steps, see `docker/README.md`.
114
+
### Directory Structure
115
+
116
+
Before starting multi-host benchmarks, it is helpful to understand an overview of the main directories and their roles in the framework.
117
+
118
+
| Directory | Role |
119
+
|---|---|
120
+
|`manager_scripts/`| Topology-specific execution artifact generator; includes helper scripts for distribution and router operation. |
121
+
|`remote_hosts_scripts/`| REST server, remote execution coordinator, and host metrics collector for remote hosts. |
122
+
|`performance_test/`| Trial automation, log collection, and CSV aggregation/analysis. |
123
+
|`performance_ws/`| Working directory for generated scenarios, execution scripts, and run results. Auto-generated on first use; not present in the repository. |
124
+
|`topology_example/`| Example topology JSON files and schema guidance. |
- Follow the official [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/) guide.
175
+
- To run Docker commands as a non-root user, add your user to the `docker` group:
176
+
```bash
177
+
sudo usermod -aG docker $USER
178
+
```
179
+
180
+
Pull the published GitHub Packages image [`ghcr.io/hal-lab-u-tokyo/ros2-perf-multihost:latest`](https://github.com/hal-lab-u-tokyo/ros2-perf-multihost/pkgs/container/ros2-perf-multihost).
For details on the Docker image, see [docker/README.md](docker/README.md).
187
+
188
+
#### [Optional] Native ROS 2 Environment
189
+
190
+
If you want to evaluate native execution mode as well, install ROS 2 and build the package.
191
+
192
+
Follow the official [ROS 2 Jazzy Installation steps](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html).
193
+
Other ROS 2 distributions may also work, but they are not officially tested yet.
194
+
195
+
Then, build the ROS 2 package used by this framework in `ros2_node_impl_ws/` (see [ros2_node_impl_ws/README.md](ros2_node_impl_ws/README.md) for details on ROS 2 node features).
@@ -228,13 +322,6 @@ You can override the target paths on the command line.
228
322
229
323
In a multi-host setup, each Raspberry Pi runs a REST server implemented by `rest_server.py`. A controller script sends requests to those servers to automate benchmark execution.
230
324
231
-
Install required packages on each target host before starting the REST server:
`performance_test.py` launches node groups via REST for each trial, then collects logs from each host with `scp`.
271
358
@@ -274,20 +361,6 @@ On prepare, the manager creates `<ws-dir>/<scenario>/results/<session_timestamp>
274
361
- Trial logs are collected under `<ws-dir>/<scenario>/results/latest/logs/trial<N>/`.
275
362
- Aggregated outputs such as `total_latency.csv`, `throughput.csv`, `host_trials_usage.csv`, and `host_usage_summary.csv` are written under `<ws-dir>/<scenario>/results/latest/csv/`.
276
363
277
-
## Directory Structure
278
-
279
-
The main directories and their roles are as follows:
280
-
281
-
| Directory | Role |
282
-
|---|---|
283
-
|`manager_scripts/`| Generates topology-specific execution artifacts and provides helper scripts for distribution and router operation. |
284
-
|`remote_hosts_scripts/`| Runs on each host (REST server, remote start orchestration, and host metrics collection). |
285
-
|`performance_test/`| Executes trial automation, log collection, and CSV aggregation/analysis. |
286
-
|`performance_ws/`| Stores generated scenarios, execution scripts, and run results. |
287
-
|`topology_example/`| Provides example topology JSON files and schema guidance. |
288
-
|`ros2_node_impl_ws/`| ROS 2 node implementation workspace used by generated execution scripts. |
289
-
|`docker/`| Shared Docker image definition and compose-related assets. |
290
-
291
364
## Related Documents
292
365
293
366
For detailed usage in subdomains, see the following documents:
0 commit comments