diff --git a/src/polystar/dependency_injection.py b/src/polystar/dependency_injection.py
index ff7e5c3fa6cb22b71f2bd69c763a762fac761d6a..857c63e7900d4e438e465bf6e3edaa63de630006 100644
--- a/src/polystar/dependency_injection.py
+++ b/src/polystar/dependency_injection.py
@@ -27,9 +27,9 @@ from polystar.target_pipeline.objects_linker.simple_objects_linker import Simple
 from polystar.target_pipeline.target_factories.ratio_simple_target_factory import RatioSimpleTargetFactory
 from polystar.target_pipeline.target_factories.target_factory_abc import TargetFactoryABC
 from polystar.utils.serialization import pkl_load
+from research.armors.armor_color.pipeline import ArmorColorPipeline
+from research.armors.armor_color.scripts.benchmark import MeanChannels, RedBlueComparisonClassifier
 from research.common.constants import PIPELINES_DIR
-from research.robots.armor_color.pipeline import ArmorColorPipeline
-from research.robots.armor_color.scripts.benchmark import MeanChannels, RedBlueComparisonClassifier
 
 
 def make_injector() -> Injector:
diff --git a/src/polystar/target_pipeline/armors_descriptors/armors_color_descriptor.py b/src/polystar/target_pipeline/armors_descriptors/armors_color_descriptor.py
index 2e65faf7959c151eec58920672ab789efd6a01f4..e2b1b8ba8f71af30cc3b428b59f54806c86b1fe0 100644
--- a/src/polystar/target_pipeline/armors_descriptors/armors_color_descriptor.py
+++ b/src/polystar/target_pipeline/armors_descriptors/armors_color_descriptor.py
@@ -4,7 +4,7 @@ from typing import List
 from polystar.models.image import Image
 from polystar.target_pipeline.armors_descriptors.armors_descriptor_abc import ArmorsDescriptorABC
 from polystar.target_pipeline.detected_objects.detected_armor import DetectedArmor
-from research.robots.armor_color.pipeline import ArmorColorPipeline
+from research.armors.armor_color.pipeline import ArmorColorPipeline
 
 
 @dataclass
diff --git a/src/polystar/target_pipeline/armors_descriptors/armors_digit_descriptor.py b/src/polystar/target_pipeline/armors_descriptors/armors_digit_descriptor.py
index 3f26e2bf47e3ec21481bd91b24be4e424ff1f426..556efe10ccd2c7849449315ac01233be4abfe6c0 100644
--- a/src/polystar/target_pipeline/armors_descriptors/armors_digit_descriptor.py
+++ b/src/polystar/target_pipeline/armors_descriptors/armors_digit_descriptor.py
@@ -4,7 +4,7 @@ from typing import List
 from polystar.models.image import Image
 from polystar.target_pipeline.armors_descriptors.armors_descriptor_abc import ArmorsDescriptorABC
 from polystar.target_pipeline.detected_objects.detected_armor import DetectedArmor
-from research.robots.armor_digit.pipeline import ArmorDigitPipeline
+from research.armors.armor_digit.pipeline import ArmorDigitPipeline
 
 
 @dataclass
diff --git a/src/polystar/target_pipeline/detected_objects/detected_armor.py b/src/polystar/target_pipeline/detected_objects/detected_armor.py
index 808d3a32d3032108b6c7aa3210696df9e01c281a..556b559b5501558c9ef4b867a29c63a0d3fdf4f1 100644
--- a/src/polystar/target_pipeline/detected_objects/detected_armor.py
+++ b/src/polystar/target_pipeline/detected_objects/detected_armor.py
@@ -4,8 +4,8 @@ import numpy as np
 
 from polystar.models.roco_object import ArmorColor, ArmorDigit, ObjectType
 from polystar.target_pipeline.detected_objects.detected_object import DetectedROCOObject
-from research.robots.armor_color.pipeline import ArmorColorPipeline
-from research.robots.armor_digit.pipeline import ArmorDigitPipeline
+from research.armors.armor_color.pipeline import ArmorColorPipeline
+from research.armors.armor_digit.pipeline import ArmorDigitPipeline
 
 
 @dataclass
diff --git a/src/research/robots/__init__.py b/src/research/armors/__init__.py
similarity index 100%
rename from src/research/robots/__init__.py
rename to src/research/armors/__init__.py
diff --git a/src/research/robots/armor_color/__init__.py b/src/research/armors/armor_color/__init__.py
similarity index 100%
rename from src/research/robots/armor_color/__init__.py
rename to src/research/armors/armor_color/__init__.py
diff --git a/src/research/robots/armor_color/benchmarker.py b/src/research/armors/armor_color/benchmarker.py
similarity index 70%
rename from src/research/robots/armor_color/benchmarker.py
rename to src/research/armors/armor_color/benchmarker.py
index 79f0a91577c29be7636f18ca76a17aa6bf3699a7..29f5d9a3c6509bf131eaa14ad956b4396492f456 100644
--- a/src/research/robots/armor_color/benchmarker.py
+++ b/src/research/armors/armor_color/benchmarker.py
@@ -1,8 +1,8 @@
 from pathlib import Path
 
-from research.robots.armor_color.datasets import make_armor_color_datasets
-from research.robots.armor_color.pipeline import ArmorColorPipeline
-from research.robots.evaluation.benchmarker import Benchmarker
+from research.armors.armor_color.datasets import make_armor_color_datasets
+from research.armors.armor_color.pipeline import ArmorColorPipeline
+from research.armors.evaluation.benchmarker import Benchmarker
 
 
 def make_armor_color_benchmarker(report_dir: Path, include_dji: bool = True) -> Benchmarker:
diff --git a/src/research/robots/armor_color/datasets.py b/src/research/armors/armor_color/datasets.py
similarity index 87%
rename from src/research/robots/armor_color/datasets.py
rename to src/research/armors/armor_color/datasets.py
index 55da282816939b227ea7caa5945b50a6a9793732..23d52cf1e592460814555e0e2905f1eaf31b1fd7 100644
--- a/src/research/robots/armor_color/datasets.py
+++ b/src/research/armors/armor_color/datasets.py
@@ -2,9 +2,9 @@ from typing import List, Tuple
 
 from polystar.models.image import FileImage
 from polystar.models.roco_object import Armor, ArmorColor
+from research.armors.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator
+from research.armors.dataset.armor_value_target_factory import ArmorValueTargetFactory
 from research.common.datasets.dataset import Dataset
-from research.robots.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator
-from research.robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
 
 def make_armor_color_datasets(
diff --git a/src/research/robots/armor_color/pipeline.py b/src/research/armors/armor_color/pipeline.py
similarity index 100%
rename from src/research/robots/armor_color/pipeline.py
rename to src/research/armors/armor_color/pipeline.py
diff --git a/src/research/robots/armor_color/scripts/__init__.py b/src/research/armors/armor_color/scripts/__init__.py
similarity index 100%
rename from src/research/robots/armor_color/scripts/__init__.py
rename to src/research/armors/armor_color/scripts/__init__.py
diff --git a/src/research/robots/armor_color/scripts/benchmark.py b/src/research/armors/armor_color/scripts/benchmark.py
similarity index 95%
rename from src/research/robots/armor_color/scripts/benchmark.py
rename to src/research/armors/armor_color/scripts/benchmark.py
index 909add8c442bec24439681887983cfa81e3c13ac..4862070b1472b5b676e3ae1afaf73cd50d30b524 100644
--- a/src/research/robots/armor_color/scripts/benchmark.py
+++ b/src/research/armors/armor_color/scripts/benchmark.py
@@ -13,9 +13,9 @@ from polystar.pipeline.featurizers.histogram_2d import Histogram2D
 from polystar.pipeline.featurizers.histogram_blocs_2d import HistogramBlocs2D
 from polystar.pipeline.pipe_abc import PipeABC
 from polystar.pipeline.preprocessors.rgb_to_hsv import RGB2HSV
+from research.armors.armor_color.benchmarker import make_armor_color_benchmarker
+from research.armors.armor_color.pipeline import ArmorColorPipeline
 from research.common.utils.experiment_dir import prompt_experiment_dir
-from research.robots.armor_color.benchmarker import make_armor_color_benchmarker
-from research.robots.armor_color.pipeline import ArmorColorPipeline
 
 
 @dataclass
diff --git a/src/research/robots/armor_color/scripts/hyper_tune_cnn.py b/src/research/armors/armor_color/scripts/hyper_tune_cnn.py
similarity index 85%
rename from src/research/robots/armor_color/scripts/hyper_tune_cnn.py
rename to src/research/armors/armor_color/scripts/hyper_tune_cnn.py
index 656459f420b4a01828b87799b6bff8d30b2fe5c0..0179a797481bd8e5975046b5e2c75ff9ad68d9fb 100644
--- a/src/research/robots/armor_color/scripts/hyper_tune_cnn.py
+++ b/src/research/armors/armor_color/scripts/hyper_tune_cnn.py
@@ -4,10 +4,10 @@ from pathlib import Path
 
 from optuna import Trial
 
+from research.armors.armor_color.benchmarker import make_armor_color_benchmarker
+from research.armors.armor_color.pipeline import ArmorColorKerasPipeline
+from research.armors.evaluation.hyper_tuner import HyperTuner
 from research.common.utils.experiment_dir import make_experiment_dir
-from research.robots.armor_color.benchmarker import make_armor_color_benchmarker
-from research.robots.armor_color.pipeline import ArmorColorKerasPipeline
-from research.robots.evaluation.hyper_tuner import HyperTuner
 
 
 def cnn_pipeline_factory(report_dir: Path, trial: Trial) -> ArmorColorKerasPipeline:
diff --git a/src/research/robots/armor_digit/__init__.py b/src/research/armors/armor_digit/__init__.py
similarity index 100%
rename from src/research/robots/armor_digit/__init__.py
rename to src/research/armors/armor_digit/__init__.py
diff --git a/src/research/robots/armor_digit/armor_digit_dataset.py b/src/research/armors/armor_digit/armor_digit_dataset.py
similarity index 91%
rename from src/research/robots/armor_digit/armor_digit_dataset.py
rename to src/research/armors/armor_digit/armor_digit_dataset.py
index ad179678c69e06174ecc68cb1c50c4f0a20ecdec..78eda33ad068935e18731cda22cee77db15f169b 100644
--- a/src/research/robots/armor_digit/armor_digit_dataset.py
+++ b/src/research/armors/armor_digit/armor_digit_dataset.py
@@ -4,10 +4,10 @@ from typing import List, Tuple
 from polystar.filters.exclude_filter import ExcludeFilter
 from polystar.models.image import FileImage
 from polystar.models.roco_object import Armor, ArmorDigit
+from research.armors.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator
+from research.armors.dataset.armor_value_target_factory import ArmorValueTargetFactory
 from research.common.datasets.dataset import Dataset
 from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
-from research.robots.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator
-from research.robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
 
 def default_armor_digit_datasets() -> Tuple[
diff --git a/src/research/robots/armor_digit/digit_benchmarker.py b/src/research/armors/armor_digit/digit_benchmarker.py
similarity index 69%
rename from src/research/robots/armor_digit/digit_benchmarker.py
rename to src/research/armors/armor_digit/digit_benchmarker.py
index 96473beca94287c2fc2c31fbd83fc9438aed6495..09bc31c37d07856817e62e02ab38380d41fbe318 100644
--- a/src/research/robots/armor_digit/digit_benchmarker.py
+++ b/src/research/armors/armor_digit/digit_benchmarker.py
@@ -1,8 +1,8 @@
 from pathlib import Path
 
-from research.robots.armor_digit.armor_digit_dataset import default_armor_digit_datasets
-from research.robots.armor_digit.pipeline import ArmorDigitPipeline
-from research.robots.evaluation.benchmarker import Benchmarker
+from research.armors.armor_digit.armor_digit_dataset import default_armor_digit_datasets
+from research.armors.armor_digit.pipeline import ArmorDigitPipeline
+from research.armors.evaluation.benchmarker import Benchmarker
 
 
 def make_default_digit_benchmarker(report_dir: Path) -> Benchmarker:
diff --git a/src/research/robots/armor_digit/gcloud/__init__.py b/src/research/armors/armor_digit/gcloud/__init__.py
similarity index 100%
rename from src/research/robots/armor_digit/gcloud/__init__.py
rename to src/research/armors/armor_digit/gcloud/__init__.py
diff --git a/src/research/robots/armor_digit/gcloud/gather_performances.py b/src/research/armors/armor_digit/gcloud/gather_performances.py
similarity index 89%
rename from src/research/robots/armor_digit/gcloud/gather_performances.py
rename to src/research/armors/armor_digit/gcloud/gather_performances.py
index e345ea7b92eb4045c0555c5c08ce4a082372044b..4ebe943a644fed62248eaa0e156d8990586147ba 100644
--- a/src/research/robots/armor_digit/gcloud/gather_performances.py
+++ b/src/research/armors/armor_digit/gcloud/gather_performances.py
@@ -5,11 +5,11 @@ from typing import List
 
 from polystar.models.roco_object import ArmorDigit
 from polystar.utils.iterable_utils import flatten
+from research.armors.evaluation.metrics.f1 import F1Metric
+from research.armors.evaluation.performance import ClassificationPerformances
+from research.armors.evaluation.reporter import ImagePipelineEvaluationReporter
 from research.common.constants import EVALUATION_DIR
 from research.common.gcloud.gcloud_storage import GCStorages
-from research.robots.evaluation.metrics.f1 import F1Metric
-from research.robots.evaluation.performance import ClassificationPerformances
-from research.robots.evaluation.reporter import ImagePipelineEvaluationReporter
 
 
 def load_performances(performances_paths: List[Path]) -> ClassificationPerformances:
diff --git a/src/research/robots/armor_digit/gcloud/hptuning_config.yaml b/src/research/armors/armor_digit/gcloud/hptuning_config.yaml
similarity index 100%
rename from src/research/robots/armor_digit/gcloud/hptuning_config.yaml
rename to src/research/armors/armor_digit/gcloud/hptuning_config.yaml
diff --git a/src/research/robots/armor_digit/gcloud/train.py b/src/research/armors/armor_digit/gcloud/train.py
similarity index 73%
rename from src/research/robots/armor_digit/gcloud/train.py
rename to src/research/armors/armor_digit/gcloud/train.py
index fecfaa7ceaadaa6c516e7130d6a086f7dc22bc42..670b02d6518b9d3ae5dc86fb0fc0b74622d11dde 100644
--- a/src/research/robots/armor_digit/gcloud/train.py
+++ b/src/research/armors/armor_digit/gcloud/train.py
@@ -1,11 +1,11 @@
 import pickle
 from os.path import join
 
+from research.armors.armor_digit.armor_digit_dataset import default_armor_digit_datasets
+from research.armors.armor_digit.pipeline import ArmorDigitPipeline
+from research.armors.evaluation.evaluator import ImageClassificationPipelineEvaluator
+from research.armors.evaluation.trainer import ImageClassificationPipelineTrainer
 from research.common.gcloud.gcloud_storage import GCStorage
-from research.robots.armor_digit.armor_digit_dataset import default_armor_digit_datasets
-from research.robots.armor_digit.pipeline import ArmorDigitPipeline
-from research.robots.evaluation.evaluator import ImageClassificationPipelineEvaluator
-from research.robots.evaluation.trainer import ImageClassificationPipelineTrainer
 
 
 def train_evaluate_digit_pipeline(pipeline: ArmorDigitPipeline, job_dir: str):
diff --git a/src/research/robots/armor_digit/gcloud/train_cnn.py b/src/research/armors/armor_digit/gcloud/train_cnn.py
similarity index 87%
rename from src/research/robots/armor_digit/gcloud/train_cnn.py
rename to src/research/armors/armor_digit/gcloud/train_cnn.py
index c9c74378a8731a08b2103951b740ab54d8cd3c2c..79b595eaf2dbb2ca34fbdcfaa2285f95d1d61b3b 100644
--- a/src/research/robots/armor_digit/gcloud/train_cnn.py
+++ b/src/research/armors/armor_digit/gcloud/train_cnn.py
@@ -2,8 +2,8 @@ import logging
 import warnings
 from argparse import ArgumentParser
 
-from research.robots.armor_digit.gcloud.train import train_evaluate_digit_pipeline
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline
+from research.armors.armor_digit.gcloud.train import train_evaluate_digit_pipeline
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline
 
 if __name__ == "__main__":
     logging.getLogger().setLevel("INFO")
diff --git a/src/research/robots/armor_digit/gcloud/train_vgg16.py b/src/research/armors/armor_digit/gcloud/train_vgg16.py
similarity index 88%
rename from src/research/robots/armor_digit/gcloud/train_vgg16.py
rename to src/research/armors/armor_digit/gcloud/train_vgg16.py
index b8cc89e716520a185d7277dc8ca93f484308a4a7..f31fb7f0e55d6567448d1652bc7d951c1573a9e2 100644
--- a/src/research/robots/armor_digit/gcloud/train_vgg16.py
+++ b/src/research/armors/armor_digit/gcloud/train_vgg16.py
@@ -4,8 +4,8 @@ from argparse import ArgumentParser
 
 from tensorflow.python.keras.applications.vgg16 import VGG16
 
-from research.robots.armor_digit.gcloud.train import train_evaluate_digit_pipeline
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline
+from research.armors.armor_digit.gcloud.train import train_evaluate_digit_pipeline
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline
 
 if __name__ == "__main__":
     logging.getLogger().setLevel("INFO")
diff --git a/src/research/robots/armor_digit/gcloud/train_xception.py b/src/research/armors/armor_digit/gcloud/train_xception.py
similarity index 88%
rename from src/research/robots/armor_digit/gcloud/train_xception.py
rename to src/research/armors/armor_digit/gcloud/train_xception.py
index c3ce07baabdf61945b4987e47f54ecb9f40a98ee..72e737957356ad08b88af869caad8d94ce33b679 100644
--- a/src/research/robots/armor_digit/gcloud/train_xception.py
+++ b/src/research/armors/armor_digit/gcloud/train_xception.py
@@ -4,8 +4,8 @@ from argparse import ArgumentParser
 
 from tensorflow.python.keras.applications.xception import Xception
 
-from research.robots.armor_digit.gcloud.train import train_evaluate_digit_pipeline
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline
+from research.armors.armor_digit.gcloud.train import train_evaluate_digit_pipeline
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline
 
 if __name__ == "__main__":
     logging.getLogger().setLevel("INFO")
diff --git a/src/research/robots/armor_digit/gcloud/trainer.sh b/src/research/armors/armor_digit/gcloud/trainer.sh
similarity index 100%
rename from src/research/robots/armor_digit/gcloud/trainer.sh
rename to src/research/armors/armor_digit/gcloud/trainer.sh
diff --git a/src/research/robots/armor_digit/pipeline.py b/src/research/armors/armor_digit/pipeline.py
similarity index 100%
rename from src/research/robots/armor_digit/pipeline.py
rename to src/research/armors/armor_digit/pipeline.py
diff --git a/src/research/robots/armor_digit/scripts/__init__.py b/src/research/armors/armor_digit/scripts/__init__.py
similarity index 100%
rename from src/research/robots/armor_digit/scripts/__init__.py
rename to src/research/armors/armor_digit/scripts/__init__.py
diff --git a/src/research/robots/armor_digit/scripts/benchmark.py b/src/research/armors/armor_digit/scripts/benchmark.py
similarity index 93%
rename from src/research/robots/armor_digit/scripts/benchmark.py
rename to src/research/armors/armor_digit/scripts/benchmark.py
index 92b32c4f225aef4930d434c2fd175c51c861274c..c94704865edfeb4318cbdb48fee2a5944aedf048 100644
--- a/src/research/robots/armor_digit/scripts/benchmark.py
+++ b/src/research/armors/armor_digit/scripts/benchmark.py
@@ -4,9 +4,9 @@ from pathlib import Path
 
 from polystar.pipeline.classification.random_model import RandomClassifier
 from polystar.utils.serialization import pkl_load
+from research.armors.armor_digit.digit_benchmarker import make_default_digit_benchmarker
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline, ArmorDigitPipeline
 from research.common.utils.experiment_dir import prompt_experiment_dir
-from research.robots.armor_digit.digit_benchmarker import make_default_digit_benchmarker
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline, ArmorDigitPipeline
 
 if __name__ == "__main__":
     logging.getLogger().setLevel("INFO")
diff --git a/src/research/robots/armor_digit/scripts/clean_datasets.py b/src/research/armors/armor_digit/scripts/clean_datasets.py
similarity index 94%
rename from src/research/robots/armor_digit/scripts/clean_datasets.py
rename to src/research/armors/armor_digit/scripts/clean_datasets.py
index a4ca2ce4c83d4ab7ebd33eada78422bcdae8f16c..0d2db9670260690f25f391558c9e5c3c3e3be2fe 100644
--- a/src/research/robots/armor_digit/scripts/clean_datasets.py
+++ b/src/research/armors/armor_digit/scripts/clean_datasets.py
@@ -1,6 +1,6 @@
+from research.armors.armor_digit.armor_digit_dataset import make_armor_digit_dataset_generator
 from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.dataset.cleaning.dataset_cleaner_app import DatasetCleanerApp
-from research.robots.armor_digit.armor_digit_dataset import make_armor_digit_dataset_generator
 
 if __name__ == "__main__":
     # _roco_dataset = ROCODatasetsZoo.TWITCH.T470149568
diff --git a/src/research/robots/armor_digit/scripts/evaluate.py b/src/research/armors/armor_digit/scripts/evaluate.py
similarity index 97%
rename from src/research/robots/armor_digit/scripts/evaluate.py
rename to src/research/armors/armor_digit/scripts/evaluate.py
index 5e46b244df074a818f5e3545e58ea38bf0695641..62dc6f3e8cb055e7bbe2b3bbf9a6efe499e687e8 100644
--- a/src/research/robots/armor_digit/scripts/evaluate.py
+++ b/src/research/armors/armor_digit/scripts/evaluate.py
@@ -11,11 +11,11 @@ from polystar.models.roco_object import ArmorDigit
 from polystar.pipeline.classification.classification_pipeline import ClassificationPipeline
 from polystar.utils.iterable_utils import chunk
 from polystar.utils.serialization import pkl_load
+from research.armors.armor_digit.armor_digit_dataset import make_armor_digit_dataset_generator
 from research.common.constants import PIPELINES_DIR
 from research.common.datasets.dataset import Dataset
 from research.common.gcloud.gcloud_storage import GCStorages
 from research.common.utils.logs import setup_dev_logs
-from research.robots.armor_digit.armor_digit_dataset import make_armor_digit_dataset_generator
 
 
 def time_digit_pipeline(pipeline_path: Path):
diff --git a/src/research/robots/armor_digit/scripts/hyper_tune_cnn.py b/src/research/armors/armor_digit/scripts/hyper_tune_cnn.py
similarity index 84%
rename from src/research/robots/armor_digit/scripts/hyper_tune_cnn.py
rename to src/research/armors/armor_digit/scripts/hyper_tune_cnn.py
index 26ce661280132d49c5b1977e1f1f030a461ea811..680e2f73c1382d07ab506e4c3c5126c84618d502 100644
--- a/src/research/robots/armor_digit/scripts/hyper_tune_cnn.py
+++ b/src/research/armors/armor_digit/scripts/hyper_tune_cnn.py
@@ -4,10 +4,10 @@ from pathlib import Path
 
 from optuna import Trial
 
+from research.armors.armor_digit.digit_benchmarker import make_default_digit_benchmarker
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline, ArmorDigitPipeline
+from research.armors.evaluation.hyper_tuner import HyperTuner
 from research.common.utils.experiment_dir import make_experiment_dir
-from research.robots.armor_digit.digit_benchmarker import make_default_digit_benchmarker
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline, ArmorDigitPipeline
-from research.robots.evaluation.hyper_tuner import HyperTuner
 
 
 def cnn_pipeline_factory(report_dir: Path, trial: Trial) -> ArmorDigitPipeline:
diff --git a/src/research/robots/armor_digit/scripts/hyper_tune_distiled_vgg16_into_cnn.py b/src/research/armors/armor_digit/scripts/hyper_tune_distiled_vgg16_into_cnn.py
similarity index 88%
rename from src/research/robots/armor_digit/scripts/hyper_tune_distiled_vgg16_into_cnn.py
rename to src/research/armors/armor_digit/scripts/hyper_tune_distiled_vgg16_into_cnn.py
index 9388f50a582ac12c38bef3acd906fe76676f5f51..73ba8caeb3ff08676c31a2d5d96674df5cf3c8b8 100644
--- a/src/research/robots/armor_digit/scripts/hyper_tune_distiled_vgg16_into_cnn.py
+++ b/src/research/armors/armor_digit/scripts/hyper_tune_distiled_vgg16_into_cnn.py
@@ -5,10 +5,10 @@ from pathlib import Path
 from optuna import Trial
 
 from polystar.utils.serialization import pkl_load
+from research.armors.armor_digit.digit_benchmarker import make_default_digit_benchmarker
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline, ArmorDigitPipeline
+from research.armors.evaluation.hyper_tuner import HyperTuner
 from research.common.utils.experiment_dir import make_experiment_dir
-from research.robots.armor_digit.digit_benchmarker import make_default_digit_benchmarker
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline, ArmorDigitPipeline
-from research.robots.evaluation.hyper_tuner import HyperTuner
 
 
 class DistilledPipelineFactory:
diff --git a/src/research/robots/armor_digit/scripts/train_kd_cnn.py b/src/research/armors/armor_digit/scripts/train_kd_cnn.py
similarity index 87%
rename from src/research/robots/armor_digit/scripts/train_kd_cnn.py
rename to src/research/armors/armor_digit/scripts/train_kd_cnn.py
index 061e5d2fbe7407e20f27d2b22f42a3da258c6ab6..ae76f1b044aa50c47ddce2d6fdce564e738e9098 100644
--- a/src/research/robots/armor_digit/scripts/train_kd_cnn.py
+++ b/src/research/armors/armor_digit/scripts/train_kd_cnn.py
@@ -1,9 +1,9 @@
 from polystar.utils.serialization import pkl_load
 from polystar.utils.time import create_time_id
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline
+from research.armors.armor_digit.training import train_report_and_upload_digit_pipeline
 from research.common.constants import PIPELINES_DIR
 from research.common.utils.logs import setup_dev_logs
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline
-from research.robots.armor_digit.training import train_report_and_upload_digit_pipeline
 
 if __name__ == "__main__":
     setup_dev_logs()
diff --git a/src/research/robots/armor_digit/scripts/train_vgg16.py b/src/research/armors/armor_digit/scripts/train_vgg16.py
similarity index 84%
rename from src/research/robots/armor_digit/scripts/train_vgg16.py
rename to src/research/armors/armor_digit/scripts/train_vgg16.py
index 0d8e075931e8ffa224a4ef0fe2524a70ee869564..52c71e3b82032139ec3d9b7642b735d23026a02a 100644
--- a/src/research/robots/armor_digit/scripts/train_vgg16.py
+++ b/src/research/armors/armor_digit/scripts/train_vgg16.py
@@ -1,10 +1,10 @@
 from tensorflow.python.keras.applications.vgg16 import VGG16
 
 from polystar.utils.time import create_time_id
+from research.armors.armor_digit.pipeline import ArmorDigitKerasPipeline
+from research.armors.armor_digit.training import train_report_and_upload_digit_pipeline
 from research.common.constants import PIPELINES_DIR
 from research.common.utils.logs import setup_dev_logs
-from research.robots.armor_digit.pipeline import ArmorDigitKerasPipeline
-from research.robots.armor_digit.training import train_report_and_upload_digit_pipeline
 
 if __name__ == "__main__":
     setup_dev_logs()
diff --git a/src/research/robots/armor_digit/training.py b/src/research/armors/armor_digit/training.py
similarity index 76%
rename from src/research/robots/armor_digit/training.py
rename to src/research/armors/armor_digit/training.py
index c14f5f4a851ba2a899921011e070d40065b26de2..c4a3183d75f5c4e97e6ba556180b4914788e4732 100644
--- a/src/research/robots/armor_digit/training.py
+++ b/src/research/armors/armor_digit/training.py
@@ -1,9 +1,9 @@
 import pickle
 from pathlib import Path
 
+from research.armors.armor_digit.digit_benchmarker import make_default_digit_benchmarker
+from research.armors.armor_digit.pipeline import ArmorDigitPipeline
 from research.common.gcloud.gcloud_storage import GCStorages
-from research.robots.armor_digit.digit_benchmarker import make_default_digit_benchmarker
-from research.robots.armor_digit.pipeline import ArmorDigitPipeline
 
 
 def train_report_and_upload_digit_pipeline(pipeline: ArmorDigitPipeline, training_dir: Path):
diff --git a/src/research/robots/dataset/__init__.py b/src/research/armors/dataset/__init__.py
similarity index 100%
rename from src/research/robots/dataset/__init__.py
rename to src/research/armors/dataset/__init__.py
diff --git a/src/research/robots/dataset/armor_dataset_factory.py b/src/research/armors/dataset/armor_dataset_factory.py
similarity index 100%
rename from src/research/robots/dataset/armor_dataset_factory.py
rename to src/research/armors/dataset/armor_dataset_factory.py
diff --git a/src/research/robots/dataset/armor_value_dataset_cache.py b/src/research/armors/dataset/armor_value_dataset_cache.py
similarity index 95%
rename from src/research/robots/dataset/armor_value_dataset_cache.py
rename to src/research/armors/dataset/armor_value_dataset_cache.py
index 29774e2e05481864e92bb47e20a00732230745db..51b0e92e470b74753022b93aca4a09a8033cb1a0 100644
--- a/src/research/robots/dataset/armor_value_dataset_cache.py
+++ b/src/research/armors/dataset/armor_value_dataset_cache.py
@@ -9,12 +9,12 @@ from polystar.models.image import Image, save_image
 from polystar.utils.misc import identity
 from polystar.utils.time import create_time_id
 from polystar.utils.tqdm import smart_tqdm
+from research.armors.dataset.armor_dataset_factory import ArmorDataset
+from research.armors.dataset.armor_value_target_factory import ArmorValueTargetFactory
 from research.common.datasets.lazy_dataset import LazyDataset, TargetT
 from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 from research.common.datasets.transform_dataset import TransformDataset
 from research.common.gcloud.gcloud_storage import GCStorages
-from research.robots.dataset.armor_dataset_factory import ArmorDataset
-from research.robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
 
 class ArmorValueDatasetCache(Generic[TargetT]):
diff --git a/src/research/robots/dataset/armor_value_dataset_generator.py b/src/research/armors/dataset/armor_value_dataset_generator.py
similarity index 96%
rename from src/research/robots/dataset/armor_value_dataset_generator.py
rename to src/research/armors/dataset/armor_value_dataset_generator.py
index faba25503c2cfd2ff52210d81406b20d7dfe9bad..8f9ed9d186d0319c6904f39fd2759cd76974be6b 100644
--- a/src/research/robots/dataset/armor_value_dataset_generator.py
+++ b/src/research/armors/dataset/armor_value_dataset_generator.py
@@ -5,14 +5,14 @@ from polystar.filters.exclude_filter import ExcludeFilter
 from polystar.filters.filter_abc import FilterABC
 from polystar.filters.pass_through_filter import PassThroughFilter
 from polystar.models.image import FileImage
+from research.armors.dataset.armor_value_dataset_cache import ArmorValueDatasetCache
+from research.armors.dataset.armor_value_target_factory import ArmorValueTargetFactory
 from research.common.datasets.dataset import Dataset
 from research.common.datasets.image_file_dataset_builder import DirectoryDatasetBuilder
 from research.common.datasets.lazy_dataset import TargetT
 from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.dataset.cleaning.dataset_changes import DatasetChanges
-from research.robots.dataset.armor_value_dataset_cache import ArmorValueDatasetCache
-from research.robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
 
 class ExcludeFilesFilter(ExcludeFilter[Path]):
diff --git a/src/research/robots/dataset/armor_value_target_factory.py b/src/research/armors/dataset/armor_value_target_factory.py
similarity index 100%
rename from src/research/robots/dataset/armor_value_target_factory.py
rename to src/research/armors/dataset/armor_value_target_factory.py
diff --git a/src/research/robots/demos/__init__.py b/src/research/armors/demos/__init__.py
similarity index 100%
rename from src/research/robots/demos/__init__.py
rename to src/research/armors/demos/__init__.py
diff --git a/src/research/robots/demos/demo_pipeline.py b/src/research/armors/demos/demo_pipeline.py
similarity index 100%
rename from src/research/robots/demos/demo_pipeline.py
rename to src/research/armors/demos/demo_pipeline.py
diff --git a/src/research/robots/demos/demo_pipeline_camera.py b/src/research/armors/demos/demo_pipeline_camera.py
similarity index 100%
rename from src/research/robots/demos/demo_pipeline_camera.py
rename to src/research/armors/demos/demo_pipeline_camera.py
diff --git a/src/research/robots/evaluation/__init__.py b/src/research/armors/evaluation/__init__.py
similarity index 100%
rename from src/research/robots/evaluation/__init__.py
rename to src/research/armors/evaluation/__init__.py
diff --git a/src/research/robots/evaluation/benchmarker.py b/src/research/armors/evaluation/benchmarker.py
similarity index 86%
rename from src/research/robots/evaluation/benchmarker.py
rename to src/research/armors/evaluation/benchmarker.py
index 33b5aa8901694ec5aec593c7ebd4774c5b6e7f1a..0f48c9032fbec06ed912b304aca57acb89422236 100644
--- a/src/research/robots/evaluation/benchmarker.py
+++ b/src/research/armors/evaluation/benchmarker.py
@@ -5,12 +5,12 @@ from pathlib import Path
 from typing import List, Sequence
 
 from polystar.pipeline.classification.classification_pipeline import ClassificationPipeline
+from research.armors.evaluation.evaluator import ImageClassificationPipelineEvaluator
+from research.armors.evaluation.metrics.f1 import F1Metric
+from research.armors.evaluation.performance import ClassificationPerformances
+from research.armors.evaluation.reporter import ImagePipelineEvaluationReporter
+from research.armors.evaluation.trainer import ImageClassificationPipelineTrainer
 from research.common.datasets.image_dataset import FileImageDataset
-from research.robots.evaluation.evaluator import ImageClassificationPipelineEvaluator
-from research.robots.evaluation.metrics.f1 import F1Metric
-from research.robots.evaluation.performance import ClassificationPerformances
-from research.robots.evaluation.reporter import ImagePipelineEvaluationReporter
-from research.robots.evaluation.trainer import ImageClassificationPipelineTrainer
 
 logger = logging.getLogger(__name__)
 
diff --git a/src/research/robots/evaluation/evaluator.py b/src/research/armors/evaluation/evaluator.py
similarity index 95%
rename from src/research/robots/evaluation/evaluator.py
rename to src/research/armors/evaluation/evaluator.py
index 83a96bdf1b2409732cc1c9aa81c02110605e230a..6e879b69abbf281071727d5a8f6bd73e071106ef 100644
--- a/src/research/robots/evaluation/evaluator.py
+++ b/src/research/armors/evaluation/evaluator.py
@@ -7,14 +7,14 @@ import numpy as np
 from polystar.models.image import file_images_to_images
 from polystar.pipeline.classification.classification_pipeline import ClassificationPipeline
 from polystar.utils.iterable_utils import flatten
-from research.common.datasets.image_dataset import FileImageDataset
-from research.common.datasets.lazy_dataset import TargetT
-from research.robots.evaluation.performance import (
+from research.armors.evaluation.performance import (
     ClassificationPerformance,
     ClassificationPerformances,
     ContextualizedClassificationPerformance,
 )
-from research.robots.evaluation.set import Set
+from research.armors.evaluation.set import Set
+from research.common.datasets.image_dataset import FileImageDataset
+from research.common.datasets.lazy_dataset import TargetT
 
 
 class ImageClassificationPipelineEvaluator(Generic[TargetT]):
diff --git a/src/research/robots/evaluation/hyper_tuner.py b/src/research/armors/evaluation/hyper_tuner.py
similarity index 88%
rename from src/research/robots/evaluation/hyper_tuner.py
rename to src/research/armors/evaluation/hyper_tuner.py
index 6a320eaaf993f7cc4a499682d70db934461f8160..43bd21b4902ca2a6542e6598166b82de8034fde8 100644
--- a/src/research/robots/evaluation/hyper_tuner.py
+++ b/src/research/armors/evaluation/hyper_tuner.py
@@ -5,9 +5,9 @@ from optuna import Trial, create_study
 
 from polystar.pipeline.classification.classification_pipeline import ClassificationPipeline
 from polystar.utils.serialization import pkl_dump
-from research.robots.evaluation.benchmarker import Benchmarker
-from research.robots.evaluation.metrics.accuracy import AccuracyMetric
-from research.robots.evaluation.metrics.metric_abc import MetricABC
+from research.armors.evaluation.benchmarker import Benchmarker
+from research.armors.evaluation.metrics.accuracy import AccuracyMetric
+from research.armors.evaluation.metrics.metric_abc import MetricABC
 
 PipelineFactory = Callable[[Path, Trial], ClassificationPipeline]
 
diff --git a/src/research/robots/evaluation/metrics/__init__.py b/src/research/armors/evaluation/metrics/__init__.py
similarity index 100%
rename from src/research/robots/evaluation/metrics/__init__.py
rename to src/research/armors/evaluation/metrics/__init__.py
diff --git a/src/research/robots/evaluation/metrics/accuracy.py b/src/research/armors/evaluation/metrics/accuracy.py
similarity index 67%
rename from src/research/robots/evaluation/metrics/accuracy.py
rename to src/research/armors/evaluation/metrics/accuracy.py
index 60716f26566175650c28638697ba873a75831350..ce46adcb07d8fd97d3d8ddb85f1734ee50562426 100644
--- a/src/research/robots/evaluation/metrics/accuracy.py
+++ b/src/research/armors/evaluation/metrics/accuracy.py
@@ -1,5 +1,5 @@
-from research.robots.evaluation.metrics.metric_abc import MetricABC
-from research.robots.evaluation.performance import ClassificationPerformance
+from research.armors.evaluation.metrics.metric_abc import MetricABC
+from research.armors.evaluation.performance import ClassificationPerformance
 
 
 class AccuracyMetric(MetricABC):
diff --git a/src/research/robots/evaluation/metrics/f1.py b/src/research/armors/evaluation/metrics/f1.py
similarity index 83%
rename from src/research/robots/evaluation/metrics/f1.py
rename to src/research/armors/evaluation/metrics/f1.py
index 0730c42350a9af016845de0d11351904575845a9..6f228de826a431af69ad318645538c2e275a9a1c 100644
--- a/src/research/robots/evaluation/metrics/f1.py
+++ b/src/research/armors/evaluation/metrics/f1.py
@@ -2,8 +2,8 @@ from enum import Enum, auto
 
 from sklearn.metrics import f1_score
 
-from research.robots.evaluation.metrics.metric_abc import MetricABC
-from research.robots.evaluation.performance import ClassificationPerformance
+from research.armors.evaluation.metrics.metric_abc import MetricABC
+from research.armors.evaluation.performance import ClassificationPerformance
 
 
 class F1Strategy(Enum):
diff --git a/src/research/robots/evaluation/metrics/metric_abc.py b/src/research/armors/evaluation/metrics/metric_abc.py
similarity index 82%
rename from src/research/robots/evaluation/metrics/metric_abc.py
rename to src/research/armors/evaluation/metrics/metric_abc.py
index f9395858e6986d6e4c5c3e4bd85c9eeee3ebda62..b2d095703e780827dabcfe89bb77a12006593514 100644
--- a/src/research/robots/evaluation/metrics/metric_abc.py
+++ b/src/research/armors/evaluation/metrics/metric_abc.py
@@ -1,6 +1,6 @@
 from abc import ABC, abstractmethod
 
-from research.robots.evaluation.performance import ClassificationPerformance
+from research.armors.evaluation.performance import ClassificationPerformance
 
 
 class MetricABC(ABC):
diff --git a/src/research/robots/evaluation/performance.py b/src/research/armors/evaluation/performance.py
similarity index 98%
rename from src/research/robots/evaluation/performance.py
rename to src/research/armors/evaluation/performance.py
index 736ba16e90c7bd1a1d8847ffc5bfbeee20565595..12c67acb94919ea12a9a94121599295320bc9a6b 100644
--- a/src/research/robots/evaluation/performance.py
+++ b/src/research/armors/evaluation/performance.py
@@ -7,7 +7,7 @@ from memoized_property import memoized_property
 from polystar.filters.filter_abc import FilterABC
 from polystar.models.image import FileImage
 from polystar.utils.iterable_utils import flatten, group_by
-from research.robots.evaluation.set import Set
+from research.armors.evaluation.set import Set
 
 
 @dataclass
diff --git a/src/research/robots/evaluation/reporter.py b/src/research/armors/evaluation/reporter.py
similarity index 98%
rename from src/research/robots/evaluation/reporter.py
rename to src/research/armors/evaluation/reporter.py
index 7af8ac13b20dbb6ffdb34256ee555871cb8a1fbb..1c2bd6c810393d767e72e286d02059b3717261d4 100644
--- a/src/research/robots/evaluation/reporter.py
+++ b/src/research/armors/evaluation/reporter.py
@@ -16,11 +16,11 @@ from sklearn.metrics import ConfusionMatrixDisplay, classification_report, confu
 from polystar.pipeline.classification.classification_pipeline import EnumT
 from polystar.utils.dataframe import Format, format_df_row, format_df_rows, make_formater
 from polystar.utils.markdown import MarkdownFile
+from research.armors.evaluation.metrics.accuracy import AccuracyMetric
+from research.armors.evaluation.metrics.metric_abc import MetricABC
+from research.armors.evaluation.performance import ClassificationPerformance, ClassificationPerformances
+from research.armors.evaluation.set import Set
 from research.common.constants import DSET_DIR
-from research.robots.evaluation.metrics.accuracy import AccuracyMetric
-from research.robots.evaluation.metrics.metric_abc import MetricABC
-from research.robots.evaluation.performance import ClassificationPerformance, ClassificationPerformances
-from research.robots.evaluation.set import Set
 
 logger = logging.getLogger(__name__)
 
diff --git a/src/research/robots/evaluation/set.py b/src/research/armors/evaluation/set.py
similarity index 100%
rename from src/research/robots/evaluation/set.py
rename to src/research/armors/evaluation/set.py
diff --git a/src/research/robots/evaluation/trainer.py b/src/research/armors/evaluation/trainer.py
similarity index 100%
rename from src/research/robots/evaluation/trainer.py
rename to src/research/armors/evaluation/trainer.py