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
The RAI Bench is a package including benchmarks and providing frame for creating new benchmarks
6
6
7
-
## Frame Components
8
-
9
-
Frame components can be found in `src/rai_bench/rai_bench/benchmark_model.py`
7
+
### Frame Components
10
8
11
9
-`Task`
12
10
-`Scenario`
13
11
-`Benchmark`
14
12
15
-
For more information about these classes go to -> `src/rai_bench/rai_bench/benchmark_model.py`
13
+
For more information about these classes go to -> [benchmark_model](./rai_bench/benchmark_model.py)
14
+
15
+
### O3DE Test Benchmark
16
+
17
+
The O3DE Test Benchmark [o3de_test_benchmark_module](./rai_bench/o3de_test_bench/) provides tasks and scene configurations for robotic arm manipulation task. The tasks use a common `ManipulationTask` logic and can be parameterized, which allows for many task variants. The current tasks include:
18
+
19
+
-**MoveObjectToLeftTask**
20
+
-**GroupObjectsTask**
21
+
-**BuildCubeTowerTask**
22
+
-**PlaceObjectAtCoordTask**
23
+
-**RotateObjectTask** (currently not applicable due to limitations in the ManipulatorMoveTo tool)
24
+
25
+
The result of a task is a value between 0 and 1, calculated like initially_misplaced_now_correct / initially_misplaced. This score is calculated at the end of each scenario.
16
26
17
-
###O3DE TEST BENCHMARK
27
+
Current O3DE simulation binaries:
18
28
19
-
O3DE Test Benchmark (`src/rai_bench/rai_bench/o3de_test_bench/`), contains 2 Tasks(`tasks/`) - GrabCarrotTask and PlaceCubesTask (these tasks implement calculating scores) and 4 scene_configs(`configs/`) for O3DE robotic arm simulation.
29
+
### Running
20
30
21
-
Both tasks calculate score, taking into consideration 4 values:
The result is a value between 0 and 1, calculated like (initially_misplaced_now_correct + initially_correct_still_correct) / number_of_initial_objects.
29
-
This score is calculated at the beggining and at the end of each scenario.
36
+
2. Follow step 2 from [Manipulation demo Setup section](../../docs/demos/manipulation.md#setup)
37
+
38
+
3. Adjust the path to the binary in: [o3de_config.yaml](./rai_bench/o3de_test_bench/configs/o3de_config.yaml)
> For now benchmark runs all available scenarios (~160). See [Examples](#example-usege)
49
+
> section for details.
30
50
31
51
### Example usage
32
52
33
-
Example of how to load scenes, define scenarios and run benchmark can be found in `src/rai_bench/rai_bench/examples/o3de_test_benchmark.py`
53
+
Example of how to load scenes, define scenarios and run benchmark can be found in [o3de_test_benchmark_example](./rai_bench/examples/o3de_test_benchmark.py)
which are grouped by their subjective difficulty. For now there are 10 trivial, 42 easy, 23 medium, 38 hard and 47 very hard scenarios.
97
+
Check docstrings and code in [scenarios_packets](./rai_bench/o3de_test_bench/scenarios.py) if you want to know how scenarios are assigned to difficulty level.
98
+
99
+
### Development
100
+
101
+
When creating new task or changing existing ones, make sure to add unit tests for score calculation in [rai_bench_tests](../../tests/rai_bench/).
102
+
This applies also when you are adding or changing the helper methods in `Task` or `ManipulationTask`.
103
+
104
+
The number of scenarios can be easily extened without writing new tasks, by increasing number of variants of the same task and adding more simulation configs but it won't improve variety of scenarios as much as creating new tasks.
0 commit comments