hyperverse 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hyperdrone/__init__.py +31 -0
- hyperdrone/_native/cmake/hyperdrone_jit.cmake +65 -0
- hyperdrone/_native/common/bindings.h +39 -0
- hyperdrone/_native/common/cuda_staging.h +75 -0
- hyperdrone/_native/common/jit_host.h +69 -0
- hyperdrone/_native/common/models.h +24 -0
- hyperdrone/_native/dynamics/CMakeLists.txt +61 -0
- hyperdrone/_native/dynamics/host.cpp +193 -0
- hyperdrone/_native/dynamics/iface.h +76 -0
- hyperdrone/_native/dynamics/impl.cpp +608 -0
- hyperdrone/_native/env/CMakeLists.txt +71 -0
- hyperdrone/_native/env/environment.cpp +124 -0
- hyperdrone/_native/env/environment.h +407 -0
- hyperdrone/_native/env/rotorcraft_bindings.cpp +51 -0
- hyperdrone/_native/render/CMakeLists.txt +94 -0
- hyperdrone/_native/render/renderer.cpp +962 -0
- hyperdrone/_native/render/rig_bindings.h +151 -0
- hyperdrone/_native/render/scene_bindings.cpp +466 -0
- hyperdrone/_vendor/rl-tools/CMakeLists.txt +205 -0
- hyperdrone/_vendor/rl-tools/LICENSE +21 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/all.cmake +34 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/git-diff.cmake +100 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/git-hash.cmake +24 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/summary.cmake +64 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier0-compiler.cmake +18 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier1-blas.cmake +51 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier2-json-hdf5-zlib.cmake +81 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier3-tensorboard.cmake +25 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier4-cuda.cmake +42 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier5-cli11.cmake +24 -0
- hyperdrone/_vendor/rl-tools/cmake/dependencies/assimp.cmake +19 -0
- hyperdrone/_vendor/rl-tools/cmake/legacy_flags.cmake +33 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/assimp.cmake +30 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/googletest.cmake +20 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/metal.cmake +25 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/mujoco.cmake +89 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/optix.cmake +25 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/raytracing.cmake +105 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/raytracing_generic.cmake +2 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/vulkan.cmake +4 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/webgpu.cmake +24 -0
- hyperdrone/_vendor/rl-tools/cmake/scripts/embed_text.cmake +7 -0
- hyperdrone/_vendor/rl-tools/cmake/scripts/generate-git-snapshot.cmake +138 -0
- hyperdrone/_vendor/rl-tools/include/conta/conta.h +1161 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/matrix.h +143 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_arm.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu.h +314 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_accelerate.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_blas.h +67 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_mkl.h +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_openblas.h +34 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cuda.h +289 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_dummy.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_esp32.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_generic.h +944 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_wasm32.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/persist_code.h +136 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_arm.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu.h +94 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_accelerate.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_blas.h +115 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_mkl.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_openblas.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cuda.h +713 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_generic.h +1356 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/persist_code.h +130 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/tensor.h +490 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/arm.h +91 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu.h +209 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_accelerate.h +23 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_blas.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_mkl.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_openblas.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_tensorboard.h +34 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cuda.h +415 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/devices.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/dummy.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/esp32.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/generic.h +0 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/wasm32.h +59 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/model.h +218 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/operations_generic.h +769 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/persist.h +278 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/policy_adapter.h +100 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/policy_adapter_persist.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/tensor_operations_generic.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/c_backend.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/c_interface.h +36 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/l2f.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/operations_dyn.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/operations_generic.h +268 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/debugging_pool/c_backend.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/debugging_pool/c_interface.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/c_backend.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/c_interface.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/executor.h +133 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/helper.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/operations_generic.h +219 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_arduino.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_arm.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cpu.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cpu_tensorboard.h +151 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cuda.h +65 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_dummy.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_wasm32.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_arm.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cpu.h +138 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cuda.h +380 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_dummy.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_esp32.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_generic.h +295 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_wasm32.h +230 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/mode/mode.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/activation_functions.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/capability.h +61 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/persist_code.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/group.h +99 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/layer.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/operations_cuda.h +64 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/operations_generic.h +186 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/persist.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/layer.h +300 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_cpu_mkl.h +590 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_cuda.h +809 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_generic.h +1219 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/persist.h +99 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/persist_code.h +170 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/layer.h +145 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_arm/dsp.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_arm/opt.h +173 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_accelerate.h +66 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_blas.h +282 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_mkl.h +66 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_openblas.h +65 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cuda.h +519 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_dummy.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_esp32/dsp.h +58 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_esp32/opt.h +167 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_generic.h +429 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist.h +62 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist_code.h +178 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist_common.h +59 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/layer.h +188 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/operations_cuda.h +356 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/operations_generic.h +536 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/persist.h +32 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/layer.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/operations_generic.h +223 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/persist.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/layer.h +121 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/operations_generic.h +154 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/persist.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/persist_code.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_cuda.h +602 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_generic.h +251 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/layer.h +206 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/operations_generic.h +889 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/persist.h +75 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/persist_code.h +199 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/layers.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/layer.h +143 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/operations_cuda.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/operations_generic.h +216 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/persist.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_accelerate.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_blas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_mkl.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_openblas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cuda.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_dummy.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_generic.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/layer.h +223 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/operations_cuda.h +138 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/operations_generic.h +446 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/persist.h +70 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/layer.h +154 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/operations_cuda.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/operations_generic.h +502 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/persist.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/persist_code.h +173 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/layer.h +116 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/operations_cuda.h +156 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/operations_generic.h +295 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/persist.h +83 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/persist_code.h +163 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/layer.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/operations_generic.h +272 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/persist.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/persist_code.h +164 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/layer.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/operations_cuda.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/operations_generic.h +160 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/persist.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/persist_code.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/layer.h +132 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/operations_cuda.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/operations_generic.h +230 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/categorical_cross_entropy/operations_generic.h +102 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/mse/operations_cuda.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/mse/operations_generic.h +101 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/operations_generic.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/nn.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_accelerate.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_blas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_mkl.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_mux.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_openblas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cuda.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_dummy.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_generic.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/adam.h +121 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_cuda.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_generic.h +150 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/persist.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/persist_code.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_cuda.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_generic.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/persist.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/instance/operations_generic.h +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/lamb.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/operations_generic.h +68 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/optimizers.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_cuda.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_generic.h +140 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/persist.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/persist_code.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_cuda.h +49 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_generic.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/sgd.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/update.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/operations_cuda.h +0 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/operations_generic.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/parameters.h +79 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/persist.h +34 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/persist_code.h +136 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/persist.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/persist_code.h +27 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/behaviors/skip_parameter_gradients.h +65 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/README.md +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/model.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/persist_code.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/network.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_cuda.h +10 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_dummy.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_generic.h +407 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/persist.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/persist_code.h +137 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/network.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/operations_generic.h +86 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/persist.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/persist_code.h +142 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/models.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/model.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/operations_generic.h +288 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/persist.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/persist_code.h +71 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_cpu.h +0 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_cuda.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_dummy.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_generic.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/model.h +290 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_cuda.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_generic.h +623 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/persist.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/persist_code.h +200 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/persist.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/persist_code.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/random_uniform/model.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/random_uniform/operations_generic.h +73 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/resnet/resnet.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/model.h +270 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/operations_generic.h +625 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/persist.h +99 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/persist_code.h +115 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/bf16.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/categories.h +22 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/persist_code.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/policy.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_1.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_2.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_3.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_1.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_1.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mux.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_1.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_3.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_1.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_3.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_3.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_1.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_3.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/hdf5/hdf5.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/hdf5/operations_cpu.h +419 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/io.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_cpu.h +58 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_generic.h +620 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_posix.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/tar.h +74 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/code.h +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_arm.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cpu.h +81 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cuda.h +169 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_dummy.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_esp32.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_generic.h +133 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_generic_array.h +73 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_wasm32.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/persist.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/camera.h +105 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/cache.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/free_space.h +60 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/operations_cpu.h +408 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/glb/operations_cpu.h +1313 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/operations_cpu.h +96 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/conversion.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/operations_cpu.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/procthor.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_cpu.h +733 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_generic.h +1299 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/context.h +198 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/device_source.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/operations_cpu.h +1140 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device.h +233 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device_impl.h +1084 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/operations_cuda.h +1808 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/overlay_accel.h +64 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/specialization.h +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/context.h +248 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/device_source.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/operations_cpu.h +2056 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/bvh_sah.h +182 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/context.h +303 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/device_source.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/operations_cpu.h +1455 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_common.h +916 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_mux.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_post.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/renderer.h +478 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/save_cpu.h +315 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/transforms_generic.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/types.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/operations_cpu.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/operations_generic.h +121 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/rig.h +70 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/scene.h +134 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/segmentation_cpu.h +145 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/transforms.h +204 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/types.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/algorithms.h +6 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_cpu.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_cpu_mkl.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_generic.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/config.h +243 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_cuda.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_generic.h +205 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/persist.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/state.h +51 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/mixed_imitation.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_cuda.h +190 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic.h +332 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic_mixed_imitation.h +81 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/persist.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/ppo.h +105 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/approximators_gru.h +84 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/approximators_mlp.h +61 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/config.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/operations_generic.h +193 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/state.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_accelerate.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_mkl.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_mux.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cuda.h +131 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_generic.h +580 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/sac.h +151 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/approximators_gru.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/approximators_mlp.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/config.h +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/operations_generic.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/state.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_accelerate.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_mkl.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_mux.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cuda.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_generic.h +359 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/td3.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/components.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/off_policy_runner.h +225 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu.h +95 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu_accelerate.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu_mkl.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cuda.h +237 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_generic.h +498 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_generic_per_env.h +112 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/collection.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/on_policy_runner.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_accelerate.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mkl.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mux.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cuda.h +183 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic.h +366 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic_common.h +74 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/persist.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu_accelerate.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu_mkl.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_generic.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/operations_cpu.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/operations_generic.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/persist.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/replay_buffer.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/operations_generic.h +76 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/persist.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/running_normalizer.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/operations_generic.h +58 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/scale_observations/operations_generic.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/scale_observations/wrapper.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/wrappers.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/acrobot.h +88 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/operations_cpu.h +152 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/operations_generic.h +202 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/environment.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_cuda.h +204 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_generic.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_generic_common.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/persist.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/car.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_cpu.h +110 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_generic.h +206 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_json.h +59 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/track.h +23 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/ui.h +189 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/environments.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/environment.h +87 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/operations_cpu.h +212 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/operations_generic.h +215 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/observation.h +75 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cpu.h +938 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cuda.h +380 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/pose.h +228 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/presets.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_cpu.h +189 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_generic.h +32 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/rig.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/moving_gate.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cpu.h +262 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cuda.h +254 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cpu.h +224 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cuda.h +218 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_generic_position_hold.h +128 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/position_hold.h +22 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/target_frame.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/autopilot.h +61 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/baseline.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/calibration.h +62 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/metrics.h +101 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/operations_cpu.h +389 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/visual_inertial_localization.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/world.h +318 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/inertial_velocity.h +27 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/metrics.h +266 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/multirotor.h +1138 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_cpu.h +2246 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/05_state_is_nan.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/10_sample_initial_parameters.h +228 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/20_initial_state.h +208 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/30_sample_initial_state.h +300 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/35_get_desired_state.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/40_observe.h +637 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/50_state_algebra.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/60_dynamics.h +134 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/70_post_integration.h +368 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/80_abs_diff.h +312 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic.h +367 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic_inertial_velocity.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_helper_generic.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic.h +70 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic_forward.h +24 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/default.h +209 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/arpl.h +112 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/crazyflie.h +127 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/crazyflie_openmv.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/flightmare.h +111 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/fs.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/mrs.h +110 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/soft.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/soft_rigid.h +118 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500.h +88 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500_real.h +88 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500_sim.h +114 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/init/default.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/registry.h +96 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/default.h +64 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/reward_functions.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/squared/operations_generic.h +202 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/squared/squared.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/termination/default.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/trajectories/lissajous.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/trajectories/trajectory.h +78 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/persist.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/persist_code.h +53 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/quaternion_helper.h +103 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/ui.h +180 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/environment.h +69 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/operations_cpu.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/operations_generic.h +78 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/README.MD +5 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/ant.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/model.h +415 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/operations_cpu.h +162 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/persist.h +86 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/ui.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/mujoco.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/bottleneck.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/operations_cpu.h +289 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/operations_generic.h +495 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/environments.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/observation.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/operations_cpu.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/operations_generic.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/operations_cpu.h +146 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/operations_generic.h +262 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/pendulum.h +197 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/ui.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/ui_xeus.h +124 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/operations_cpu.h +426 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/operations_generic.h +424 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/reacher.h +137 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/loop.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/config.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/operations_cpu.h +233 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/persist.h +30 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/state.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/config.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/operations_generic.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/state.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/config.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/operations_generic.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/persist.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/state.h +36 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/config.h +22 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/operations_cpu.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/state.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/config.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/operations_cpu.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/state.h +24 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/config.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/operations_cpu.h +190 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/persist.h +30 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/state.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/steps.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/config.h +27 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/operations_cpu.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/state.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/operations_generic.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/rl.h +5 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/evaluation.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/operations_cpu.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/operations_generic.h +275 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/validation.h +269 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/validation_analysis.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl_tools.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/client.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_boost.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_cpu.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_websocket.h +208 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/server.h +448 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/universe.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/declarations_cpu.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_arm.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cpu.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cuda.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_dummy.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_esp32.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_generic.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_wasm32.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/env/operations_cpu.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/env/operations_generic.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/extrack/extrack.h +129 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/extrack/operations_cpu.h +588 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/integrators.h +103 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/memcpy.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/tuple/operations_generic.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/tuple/tuple.h +147 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/typing.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/vector_operations.h +172 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/polyak/operations_cuda.h +53 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/polyak/operations_generic.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/string/operations_generic.h +201 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/zlib/operations_cpu.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/version.h +28 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/CMakeLists.txt +15 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/README.md +193 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/CMakeLists.txt +11 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/generic/CMakeLists.txt +17 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/generic/freestanding_check.cpp +135 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/CMakeLists.txt +31 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/device.metal +953 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/metal_cpp_impl.cpp +6 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/CMakeLists.txt +51 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/device.cu +1 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/overlay_accel.cu +311 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/CMakeLists.txt +37 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device.comp +1013 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device_spirv.cpp +44 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/webgpu/CMakeLists.txt +31 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/webgpu/device.wgsl +1448 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/CMakeLists.txt +110 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/README.md +55 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark.cpp +180 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark_dynamic.cpp +491 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/rig.cpp +119 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix.cpp +1130 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_config.h.in +13 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/camera_orbit.h +51 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/CMakeLists.txt +199 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/antialiasing.cpp +214 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone.cpp +320 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone_device.cu +359 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/environment.h +96 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/operations_cpu.h +263 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/example.cpp +273 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/fixed_pose.cpp +221 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/flow.cpp +120 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/interactive.cpp +1015 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/make_drone_glb.py +172 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/minimal.cpp +82 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/minimal_overlay.cpp +137 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/motion_blur.cpp +232 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace.cpp +1829 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace_motion_blur.cpp +647 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/assimp/CMakeLists.txt +8 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/build.sh +80 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/drone_web.cpp +234 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/CMakeLists.txt +147 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/README.md +15 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/job.sbatch +28 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model.h +260 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_config.h +24 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_forward_cuda.h +397 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_operations.h +418 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_persist.h +45 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_student.h +70 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/scene.cpp +222 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/scene.h +68 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/.gitignore +4 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/CMakeLists.txt +4 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Info.plist +24 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Info_ios.plist +36 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/CameraManager.swift +120 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/ContentView.swift +703 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/DatasetRecorder.swift +285 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/YawPredictorApp.swift +25 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/YawPredictor.entitlements +8 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/build.sh +66 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/build_ios.sh +133 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/generate.sh +6 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/h5_to_tar.cpp +82 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/inference.cpp +166 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/inference.h +26 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/project.yml +30 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/test_tar_vs_hdf5.cpp +173 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_cuda.cu +699 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_dataset_overlay.cpp +475 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_distill_cuda.cu +995 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_eval.cu +457 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_real_world_eval.cpp +660 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_viewer.cu +443 -0
- hyperdrone/cuda/__init__.py +78 -0
- hyperdrone/dynamics/__init__.py +22 -0
- hyperdrone/dynamics/_component.py +35 -0
- hyperdrone/dynamics/_config.py +48 -0
- hyperdrone/dynamics/_sim.py +195 -0
- hyperdrone/env/__init__.py +17 -0
- hyperdrone/env/_multi_environment.py +407 -0
- hyperdrone/env/_rotorcraft.py +31 -0
- hyperdrone/examples/.gitignore +2 -0
- hyperdrone/examples/Benchmark.ipynb +102 -0
- hyperdrone/examples/HyperDrone.ipynb +514 -0
- hyperdrone/examples/Orbiter.ipynb +462 -0
- hyperdrone/examples/Renderer.ipynb +173 -0
- hyperdrone/examples/__init__.py +16 -0
- hyperdrone/examples/articulation.py +55 -0
- hyperdrone/examples/benchmark.py +236 -0
- hyperdrone/examples/benchmark_minimal.py +65 -0
- hyperdrone/examples/data.py +70 -0
- hyperdrone/examples/drone_flythrough.py +169 -0
- hyperdrone/examples/hyperdrone_videos/my_world_preview.h +17 -0
- hyperdrone/examples/my_world.h +17 -0
- hyperdrone/examples/render_procthor.py +41 -0
- hyperdrone/examples/visual_inertial_localization.py +159 -0
- hyperdrone/gym/__init__.py +63 -0
- hyperdrone/jit/__init__.py +129 -0
- hyperdrone/jit/_build.py +113 -0
- hyperdrone/jit/_lock.py +23 -0
- hyperdrone/jit/_patches.py +99 -0
- hyperdrone/jit/_toolchain.py +17 -0
- hyperdrone/jit/_workspace.py +68 -0
- hyperdrone/render/__init__.py +53 -0
- hyperdrone/render/_component.py +51 -0
- hyperdrone/render/_config.py +92 -0
- hyperdrone/render/_renderer.py +447 -0
- hyperdrone/render/_rig.py +136 -0
- hyperdrone/render/_sampling.py +69 -0
- hyperdrone/render/_scene.py +36 -0
- hyperverse-0.0.1.dist-info/METADATA +370 -0
- hyperverse-0.0.1.dist-info/RECORD +746 -0
- hyperverse-0.0.1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
|
|
5
|
+
from ._component import ensure_sim_library, load_core, resolve_device
|
|
6
|
+
from ._config import MODELS, STATE_COMPONENTS, SimConfig
|
|
7
|
+
|
|
8
|
+
IDENTITY_MOUNT = np.array(
|
|
9
|
+
[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0]], dtype=np.float32
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class _DLPackBuffer:
|
|
14
|
+
"""DLPack producer over a live sim buffer; capsules are single-use, so each __dlpack__
|
|
15
|
+
call mints a fresh one. The sim reference keeps the memory alive."""
|
|
16
|
+
|
|
17
|
+
def __init__(self, sim, make_capsule, device_type):
|
|
18
|
+
self._sim = sim
|
|
19
|
+
self._make_capsule = make_capsule
|
|
20
|
+
self._device_type = device_type
|
|
21
|
+
|
|
22
|
+
def __dlpack__(self, stream=None, **_kwargs):
|
|
23
|
+
return self._make_capsule()
|
|
24
|
+
|
|
25
|
+
def __dlpack_device__(self):
|
|
26
|
+
return (self._device_type, 0)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SimParameters:
|
|
30
|
+
"""Per-drone runtime physical parameters (host numpy in/out). Writes persist until
|
|
31
|
+
the next reset(), which restores the model preset before optional randomization."""
|
|
32
|
+
|
|
33
|
+
NAMES = ("mass", "hovering_throttle_relative", "dt")
|
|
34
|
+
|
|
35
|
+
def __init__(self, sim):
|
|
36
|
+
self._sim = sim
|
|
37
|
+
|
|
38
|
+
def __getitem__(self, name):
|
|
39
|
+
out = np.empty(self._sim.num_drones, dtype=np.float32)
|
|
40
|
+
self._sim._sim.read_parameter(name, out)
|
|
41
|
+
return out
|
|
42
|
+
|
|
43
|
+
def __setitem__(self, name, values):
|
|
44
|
+
array = np.ascontiguousarray(np.broadcast_to(np.asarray(values, dtype=np.float32), (self._sim.num_drones,)))
|
|
45
|
+
self._sim._sim.write_parameter(name, array)
|
|
46
|
+
|
|
47
|
+
def keys(self):
|
|
48
|
+
return self.NAMES
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class SimState:
|
|
52
|
+
"""Zero-copy views of the published state component buffers, (num_drones, dim) each;
|
|
53
|
+
device-resident on the CUDA variant. Refreshed in place by step()/reset()."""
|
|
54
|
+
|
|
55
|
+
def __init__(self, sim):
|
|
56
|
+
self._sim = sim
|
|
57
|
+
|
|
58
|
+
def __getitem__(self, name):
|
|
59
|
+
component, _ = STATE_COMPONENTS[name]
|
|
60
|
+
jit = self._sim._sim
|
|
61
|
+
return _DLPackBuffer(self._sim, lambda: jit.state_dlpack(component), jit.buffer_device_type)
|
|
62
|
+
|
|
63
|
+
def __setitem__(self, name, values):
|
|
64
|
+
component, dim = STATE_COMPONENTS[name]
|
|
65
|
+
array = np.ascontiguousarray(values, dtype=np.float32).reshape(self._sim.num_drones, dim)
|
|
66
|
+
self._sim._sim.set_state(component, array)
|
|
67
|
+
|
|
68
|
+
def numpy(self, name):
|
|
69
|
+
component, dim = STATE_COMPONENTS[name]
|
|
70
|
+
out = np.empty((self._sim.num_drones, dim), dtype=np.float32)
|
|
71
|
+
self._sim._sim.read_state(component, out)
|
|
72
|
+
return out
|
|
73
|
+
|
|
74
|
+
def keys(self):
|
|
75
|
+
return STATE_COMPONENTS.keys()
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class Sim:
|
|
79
|
+
"""Vectorized, stateful L2F multirotor simulator.
|
|
80
|
+
|
|
81
|
+
Compile-time constants (num_drones, domain randomization) select a JIT-compiled
|
|
82
|
+
library; the model preset, integration dt, and all physical parameters are runtime.
|
|
83
|
+
On device="cuda" the state, observation, and camera-basis buffers are CUDA-resident
|
|
84
|
+
and hand over to the renderer without touching the host.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
def __init__(self, num_drones, model="crazyflie", dt=None, device="auto", domain_randomization=False):
|
|
88
|
+
if model not in MODELS:
|
|
89
|
+
raise ValueError(f"model must be one of {MODELS}")
|
|
90
|
+
self.config = SimConfig(num_drones=int(num_drones), domain_randomization=bool(domain_randomization))
|
|
91
|
+
self.device = resolve_device(device).lower()
|
|
92
|
+
library = ensure_sim_library(self.config, self.device)
|
|
93
|
+
core = load_core(self.device)
|
|
94
|
+
self._sim = core.JitSim(str(library), self.config.canonical())
|
|
95
|
+
if not self._sim.set_model(model):
|
|
96
|
+
raise ValueError(f"hyperdrone: unknown dynamics model {model}")
|
|
97
|
+
self.model = model
|
|
98
|
+
if dt is not None:
|
|
99
|
+
self._sim.set_dt(float(dt))
|
|
100
|
+
self.state = SimState(self)
|
|
101
|
+
self.parameters = SimParameters(self)
|
|
102
|
+
|
|
103
|
+
@property
|
|
104
|
+
def num_drones(self):
|
|
105
|
+
return self._sim.num_drones
|
|
106
|
+
|
|
107
|
+
@property
|
|
108
|
+
def action_dim(self):
|
|
109
|
+
return self._sim.action_dim
|
|
110
|
+
|
|
111
|
+
@property
|
|
112
|
+
def observation_dim(self):
|
|
113
|
+
return self._sim.observation_dim
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
def dt(self):
|
|
117
|
+
return self._sim.dt
|
|
118
|
+
|
|
119
|
+
@dt.setter
|
|
120
|
+
def dt(self, value):
|
|
121
|
+
self._sim.set_dt(float(value))
|
|
122
|
+
|
|
123
|
+
@property
|
|
124
|
+
def stream(self):
|
|
125
|
+
"""cudaStream_t handle of the sim's stream (0 on the cpu variant); pass to
|
|
126
|
+
renderer.set_cameras(..., stream=...) for event-ordered device hand-off."""
|
|
127
|
+
return self._sim.stream
|
|
128
|
+
|
|
129
|
+
def set_model(self, model):
|
|
130
|
+
if not self._sim.set_model(model):
|
|
131
|
+
raise ValueError(f"hyperdrone: unknown dynamics model {model}")
|
|
132
|
+
self.model = model
|
|
133
|
+
|
|
134
|
+
def model_parameters(self):
|
|
135
|
+
"""The nominal l2f dynamics of the model preset (rotor_positions, rotor_torque_directions,
|
|
136
|
+
thrust and torque constants, mass, J, ...): the schema of
|
|
137
|
+
MultiEnvironment.parameters["dynamics"]["dynamics"]. Runtime per-drone edits through
|
|
138
|
+
parameters[...] and domain randomization are not reflected."""
|
|
139
|
+
return json.loads(load_core(self.device).model_json(self.model))
|
|
140
|
+
|
|
141
|
+
def reset(self, seed=0, sample_states=True, sample_parameters=False):
|
|
142
|
+
"""Deterministic given seed. Sampling runs on the host with the rl_tools CPU
|
|
143
|
+
engine, so cpu and cuda variants reset to identical states and parameters."""
|
|
144
|
+
self._sim.reset(int(seed), bool(sample_parameters), bool(sample_states))
|
|
145
|
+
return self
|
|
146
|
+
|
|
147
|
+
def step(self, actions, stream=0):
|
|
148
|
+
"""Advance all drones by one dt. actions: (num_drones, action_dim) float32 in
|
|
149
|
+
[-1, 1] (normalized rotor commands), any DLPack producer; CUDA-resident tensors
|
|
150
|
+
stay on the device (stream: the producer's cudaStream_t handle)."""
|
|
151
|
+
device = getattr(actions, "__dlpack_device__", None)
|
|
152
|
+
if device is not None and device()[0] == 2: # kDLCUDA
|
|
153
|
+
if not hasattr(self._sim, "step_device"):
|
|
154
|
+
raise RuntimeError("hyperdrone: device-resident actions require the cuda dynamics variant")
|
|
155
|
+
self._sim.step_device(actions, stream)
|
|
156
|
+
return self
|
|
157
|
+
array = np.ascontiguousarray(np.asarray(actions), dtype=np.float32)
|
|
158
|
+
if array.shape != (self.num_drones, self.action_dim):
|
|
159
|
+
raise ValueError(f"actions must have shape ({self.num_drones}, {self.action_dim})")
|
|
160
|
+
self._sim.step(array)
|
|
161
|
+
return self
|
|
162
|
+
|
|
163
|
+
def synchronize(self):
|
|
164
|
+
self._sim.synchronize()
|
|
165
|
+
|
|
166
|
+
def observations(self):
|
|
167
|
+
"""Zero-copy view of the observation buffer; call update first via observe()."""
|
|
168
|
+
self._sim.update_observations()
|
|
169
|
+
return _DLPackBuffer(self, self._sim.observations_dlpack, self._sim.buffer_device_type)
|
|
170
|
+
|
|
171
|
+
def observe(self):
|
|
172
|
+
"""Observations as a host numpy array, (num_drones, observation_dim)."""
|
|
173
|
+
self._sim.update_observations()
|
|
174
|
+
out = np.empty((self.num_drones, self.observation_dim), dtype=np.float32)
|
|
175
|
+
self._sim.read_observations(out)
|
|
176
|
+
return out
|
|
177
|
+
|
|
178
|
+
def camera_bases(self, mount=None, fov=80.0, aspect=1.0):
|
|
179
|
+
"""Packed camera ray-gen bases (num_drones, 12) derived from the drone poses:
|
|
180
|
+
zero-copy DLPack producer, CUDA-resident on the cuda variant — feed directly to
|
|
181
|
+
renderer.set_cameras(bases, stream=sim.stream). mount is a body-frame (3, 4)
|
|
182
|
+
transform (camera looks along body +X by default); fov is in degrees."""
|
|
183
|
+
if mount is None:
|
|
184
|
+
mount_array = IDENTITY_MOUNT
|
|
185
|
+
else:
|
|
186
|
+
mount_array = np.ascontiguousarray(np.asarray(mount), dtype=np.float32).reshape(3, 4)
|
|
187
|
+
self._sim.update_camera_bases(mount_array, float(fov), float(aspect))
|
|
188
|
+
return _DLPackBuffer(self, self._sim.camera_bases_dlpack, self._sim.buffer_device_type)
|
|
189
|
+
|
|
190
|
+
def camera_bases_numpy(self, mount=None, fov=80.0, aspect=1.0):
|
|
191
|
+
self.camera_bases(mount=mount, fov=fov, aspect=aspect)
|
|
192
|
+
out = np.empty((self.num_drones, 12), dtype=np.float32)
|
|
193
|
+
self._sim.read_camera_bases(out)
|
|
194
|
+
return out
|
|
195
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""hyperdrone.env — the RL environment: the C++ rl_tools hyperdrone::MultiEnvironment<World>
|
|
2
|
+
driven through the exact batch verbs the C++ training targets use.
|
|
3
|
+
|
|
4
|
+
All environment semantics (reset, reward, termination, scene rotation, observation
|
|
5
|
+
composition) live on the C++ side; this package marshals tensors and nothing else. For
|
|
6
|
+
manual composition of the render and dynamics packages (no MDP), see
|
|
7
|
+
examples/drone_flythrough.py.
|
|
8
|
+
"""
|
|
9
|
+
from ._multi_environment import EnvConfig, MultiEnvironment, ObservationLayout
|
|
10
|
+
from ._rotorcraft import Rotorcraft
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"EnvConfig",
|
|
14
|
+
"MultiEnvironment",
|
|
15
|
+
"ObservationLayout",
|
|
16
|
+
"Rotorcraft",
|
|
17
|
+
]
|
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
"""Direct bindings to the C++ rl_tools hyperdrone::MultiEnvironment<World>.
|
|
2
|
+
|
|
3
|
+
The JIT extension binds the rl_tools batch verbs; this class mirrors that
|
|
4
|
+
verb surface one-to-one (reset / render / observe / observe_privileged / step / rewards /
|
|
5
|
+
terminated / rotate_scene) so a notebook drives the exact environment the C++ training
|
|
6
|
+
targets use — no runners involved.
|
|
7
|
+
|
|
8
|
+
Configuration follows the C++ extension ladder: a preset names the platform
|
|
9
|
+
(`presets::*` on the C++ side), a task names the wrapper (`tasks::*`), and a handful of
|
|
10
|
+
universal knobs (instances, camera resolution, shading) complete the picture. Arbitrary
|
|
11
|
+
C++ specifications are reached through `spec_header=`: a path to a C++ header defining
|
|
12
|
+
`hyperdrone_env_user::WORLD` (including any rl_tools headers it needs); the header's
|
|
13
|
+
content hash is part of the JIT key, and preset/task/n_agents/max_drones must stay at their
|
|
14
|
+
defaults since the user type supersedes them.
|
|
15
|
+
"""
|
|
16
|
+
import copy
|
|
17
|
+
import hashlib
|
|
18
|
+
import json
|
|
19
|
+
import os
|
|
20
|
+
from dataclasses import dataclass, field
|
|
21
|
+
|
|
22
|
+
import numpy as np
|
|
23
|
+
|
|
24
|
+
import conta
|
|
25
|
+
|
|
26
|
+
from .. import jit
|
|
27
|
+
|
|
28
|
+
PRESETS = {"crazyflie": 0, "x500_fpv": 1, "x500_fpv_imu": 2}
|
|
29
|
+
SELF_VISIBLE_PRESETS = ("x500_fpv", "x500_fpv_imu")
|
|
30
|
+
TASKS = {None: 0, "target_frame": 1, "moving_gate": 2, "visual_inertial_localization": 3}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def backend():
|
|
34
|
+
from ..render._component import backend as render_backend
|
|
35
|
+
|
|
36
|
+
return render_backend()
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def component():
|
|
40
|
+
resolved = backend()
|
|
41
|
+
return jit.Component(
|
|
42
|
+
name="env",
|
|
43
|
+
variant=resolved.lower(),
|
|
44
|
+
core_target="hyperdrone_env_core",
|
|
45
|
+
needs_cuda=resolved == "OPTIX",
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
_SHADING = {"low": 0, "medium": 1, "high": 2}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@dataclass(frozen=True)
|
|
53
|
+
class EnvConfig:
|
|
54
|
+
num_environments: int = 1
|
|
55
|
+
instances: int = 4
|
|
56
|
+
cam_width: int = 32
|
|
57
|
+
cam_height: int = 32
|
|
58
|
+
shading: str = "high"
|
|
59
|
+
history_length: int = 1
|
|
60
|
+
preset: str = "crazyflie"
|
|
61
|
+
task: str = None
|
|
62
|
+
n_agents: int = 1
|
|
63
|
+
max_drones: int = 1
|
|
64
|
+
spec_header: str = None
|
|
65
|
+
|
|
66
|
+
def __post_init__(self):
|
|
67
|
+
if self.preset not in PRESETS:
|
|
68
|
+
raise ValueError(f"hyperdrone: unknown preset {self.preset!r} (one of {sorted(PRESETS)})")
|
|
69
|
+
if self.task not in TASKS:
|
|
70
|
+
raise ValueError(f"hyperdrone: unknown task {self.task!r} (one of {sorted(k for k in TASKS if k)} or None)")
|
|
71
|
+
if self.shading not in _SHADING:
|
|
72
|
+
raise ValueError(f"hyperdrone: unknown shading {self.shading!r} (one of {sorted(_SHADING)})")
|
|
73
|
+
if self.n_agents < 1:
|
|
74
|
+
raise ValueError("hyperdrone: n_agents must be >= 1")
|
|
75
|
+
if self.max_drones < 1:
|
|
76
|
+
raise ValueError("hyperdrone: max_drones must be >= 1")
|
|
77
|
+
if self.n_agents > 1 and self.preset not in SELF_VISIBLE_PRESETS:
|
|
78
|
+
raise ValueError(
|
|
79
|
+
"hyperdrone: multi-agent needs a SELF_VISIBLE preset (agents seeing each "
|
|
80
|
+
"other needs geometry to see) — use preset='x500_fpv'"
|
|
81
|
+
)
|
|
82
|
+
if self.task == "visual_inertial_localization":
|
|
83
|
+
if self.preset != "x500_fpv_imu":
|
|
84
|
+
raise ValueError(
|
|
85
|
+
"hyperdrone: task 'visual_inertial_localization' needs an IMU in the "
|
|
86
|
+
"dynamics state chain — use preset='x500_fpv_imu'"
|
|
87
|
+
)
|
|
88
|
+
if self.n_agents > 1:
|
|
89
|
+
raise ValueError("hyperdrone: task 'visual_inertial_localization' is single-agent")
|
|
90
|
+
if self.spec_header is not None:
|
|
91
|
+
defaults = EnvConfig()
|
|
92
|
+
if (self.preset, self.task, self.n_agents, self.max_drones) != (defaults.preset, defaults.task, defaults.n_agents, defaults.max_drones):
|
|
93
|
+
raise ValueError(
|
|
94
|
+
"hyperdrone: spec_header supersedes preset/task/n_agents/max_drones — leave them "
|
|
95
|
+
"at their defaults; the user header pins the World"
|
|
96
|
+
)
|
|
97
|
+
if not os.path.isfile(self.spec_header):
|
|
98
|
+
raise ValueError(f"hyperdrone: spec_header not found: {self.spec_header}")
|
|
99
|
+
|
|
100
|
+
def defines(self):
|
|
101
|
+
values = {
|
|
102
|
+
"HYPERDRONE_ENV_NUM_ENVIRONMENTS": self.num_environments,
|
|
103
|
+
"HYPERDRONE_ENV_INSTANCES": self.instances,
|
|
104
|
+
"HYPERDRONE_ENV_CAM_WIDTH": self.cam_width,
|
|
105
|
+
"HYPERDRONE_ENV_CAM_HEIGHT": self.cam_height,
|
|
106
|
+
"HYPERDRONE_ENV_SHADING": _SHADING[self.shading],
|
|
107
|
+
"HYPERDRONE_ENV_HISTORY_LENGTH": self.history_length,
|
|
108
|
+
"HYPERDRONE_ENV_PRESET": PRESETS[self.preset],
|
|
109
|
+
"HYPERDRONE_ENV_TASK": TASKS[self.task],
|
|
110
|
+
"HYPERDRONE_ENV_N_AGENTS": self.n_agents,
|
|
111
|
+
"HYPERDRONE_ENV_MAX_DRONES": self.max_drones,
|
|
112
|
+
}
|
|
113
|
+
if self.spec_header is not None:
|
|
114
|
+
values["HYPERDRONE_ENV_SPEC_HEADER"] = os.path.abspath(self.spec_header)
|
|
115
|
+
return values
|
|
116
|
+
|
|
117
|
+
def canonical(self):
|
|
118
|
+
canonical = " ".join(f"{name}={value}" for name, value in sorted(self.defines().items()))
|
|
119
|
+
if self.spec_header is not None:
|
|
120
|
+
with open(self.spec_header, "rb") as header:
|
|
121
|
+
canonical += f" spec_hash={hashlib.sha256(header.read()).hexdigest()[:16]}"
|
|
122
|
+
return canonical
|
|
123
|
+
|
|
124
|
+
def key(self):
|
|
125
|
+
return jit.canonical_key(self.canonical())
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@dataclass(frozen=True)
|
|
129
|
+
class ObservationLayout:
|
|
130
|
+
"""Named blocks of an observation vector, described by the compiled environment.
|
|
131
|
+
|
|
132
|
+
For image observations (axis == "channel"), shape is (height, width, channels) and
|
|
133
|
+
block offsets/sizes index the channel axis; for flat vectors (axis == "flat"), shape
|
|
134
|
+
is (dim,) and blocks slice the vector directly.
|
|
135
|
+
"""
|
|
136
|
+
shape: tuple
|
|
137
|
+
axis: str
|
|
138
|
+
blocks: dict = field(default_factory=dict)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def _is_conta_reference(value):
|
|
143
|
+
return isinstance(value, dict) or (isinstance(value, str) and value.startswith("conta:"))
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
def _resolve_asset(asset):
|
|
147
|
+
if asset is None:
|
|
148
|
+
return None
|
|
149
|
+
if _is_conta_reference(asset):
|
|
150
|
+
return str(conta.resolve(asset))
|
|
151
|
+
return str(asset)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def _normalize_scenes(scenes, num_environments):
|
|
155
|
+
"""Normalize the scene corpus into a list of local paths.
|
|
156
|
+
|
|
157
|
+
Accepts a directory (the corpus is its sorted .glb files), a single reference, or a
|
|
158
|
+
sequence of references — each a .glb path, a "conta:HASH" string, or a store manifest
|
|
159
|
+
entry {"description": ..., "hash": ...}. Conta references are resolved (downloading
|
|
160
|
+
into the shared conta cache) here; list order is the corpus order. The corpus is
|
|
161
|
+
validated here because the C++ dataset code exits the process on an invalid one.
|
|
162
|
+
"""
|
|
163
|
+
if isinstance(scenes, (str, os.PathLike, dict)):
|
|
164
|
+
scenes = [scenes]
|
|
165
|
+
references = [
|
|
166
|
+
str(conta.resolve(entry)) if _is_conta_reference(entry) else str(entry)
|
|
167
|
+
for entry in scenes
|
|
168
|
+
]
|
|
169
|
+
if len(references) == 1 and os.path.isdir(references[0]):
|
|
170
|
+
count = sum(1 for name in os.listdir(references[0]) if name.endswith(".glb"))
|
|
171
|
+
if count < num_environments:
|
|
172
|
+
raise ValueError(
|
|
173
|
+
f"hyperdrone: {count} .glb scene(s) in {references[0]}, but "
|
|
174
|
+
f"num_environments={num_environments} needs at least one scene per environment"
|
|
175
|
+
)
|
|
176
|
+
return references
|
|
177
|
+
missing = [reference for reference in references if not os.path.isfile(reference)]
|
|
178
|
+
if missing:
|
|
179
|
+
raise ValueError(f"hyperdrone: scene reference(s) not found: {missing}")
|
|
180
|
+
if len(references) < num_environments:
|
|
181
|
+
raise ValueError(
|
|
182
|
+
f"hyperdrone: {len(references)} scene reference(s), but "
|
|
183
|
+
f"num_environments={num_environments} needs at least one scene per environment"
|
|
184
|
+
)
|
|
185
|
+
return references
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
def _merge(base, overrides, path=""):
|
|
189
|
+
merged = dict(base)
|
|
190
|
+
for key, value in overrides.items():
|
|
191
|
+
if key not in base:
|
|
192
|
+
raise ValueError(f"hyperdrone: unknown parameter {path}{key!r} (one of {sorted(base)})")
|
|
193
|
+
if isinstance(base[key], dict):
|
|
194
|
+
merged[key] = _merge(base[key], value, f"{path}{key}.")
|
|
195
|
+
continue
|
|
196
|
+
if np.shape(value) != np.shape(base[key]):
|
|
197
|
+
raise ValueError(f"hyperdrone: parameter {path}{key} must have shape {np.shape(base[key])}, got {np.shape(value)}")
|
|
198
|
+
merged[key] = value.tolist() if isinstance(value, (np.ndarray, np.generic)) else value
|
|
199
|
+
return merged
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class MultiEnvironment:
|
|
203
|
+
"""The C++ environment behind the same verb surface: construct with scenes, then
|
|
204
|
+
reset(mask) -> render(mask) -> observe() -> step(actions) -> rewards()/terminated().
|
|
205
|
+
|
|
206
|
+
scenes: a directory of .glb scenes (sorted corpus), or a reference / sequence of
|
|
207
|
+
references — .glb paths, "conta:HASH" strings, or conta store manifest entries
|
|
208
|
+
{"description": ..., "hash": ...}; a reference list is the corpus in list order.
|
|
209
|
+
drones: the drone table every instance samples from uniformly at each reset, independently of
|
|
210
|
+
the scene its environment shows: a list of {"asset": <GLB reference or None>, "parameters":
|
|
211
|
+
{partial dict}}. The asset is the body/prop_* GLB rendered into the instance's cameras
|
|
212
|
+
(required per entry when the compiled world is SELF_VISIBLE, rejected otherwise); the parameters are merged
|
|
213
|
+
over the shared constructor base (see parameters) and may only touch what varies per drone: dynamics.dynamics
|
|
214
|
+
(a "model" key loads an l2f registry entry), dynamics.imu and camera. The same GLB may appear
|
|
215
|
+
in several entries; distinct GLBs load once. The table holds at most max_drones
|
|
216
|
+
entries. drone_asset=X is the one-entry table [{"asset": X}]; without either, the table is
|
|
217
|
+
the nominal drone.
|
|
218
|
+
gate_asset: gate GLB for the moving_gate task (required for task='moving_gate').
|
|
219
|
+
All assets accept conta references too.
|
|
220
|
+
|
|
221
|
+
parameters: a partial dict in the schema of the parameters property, {"dynamics": <l2f parameters>, "camera": {"mount": {"pose": {"position", "orientation"}}, "fov"}}, merged over the preset's nominal values as the base of every drone entry (the specification's randomization ranges apply on top at reset). parameters["dynamics"]["dynamics"]["model"] loads an l2f registry entry (hyperdrone.dynamics.MODELS) before the rest is merged, J_inv follows J unless given, the camera orientation is a (w, x, y, z) quaternion mapping the camera's FLU axes into the body frame, and fov is the horizontal FOV in degrees.
|
|
222
|
+
|
|
223
|
+
Tasks with an IMU stream (task='visual_inertial_localization') add observe_imu() — the
|
|
224
|
+
IMU sample of the last step, named by observation_layout_imu — and render a camera frame
|
|
225
|
+
only every frame_stride steps; their episodes are fixed-length and synchronized, so the
|
|
226
|
+
reset mask must be all-or-none per environment. Autonomous tasks fly themselves:
|
|
227
|
+
action_dim is 0 and step() takes no actions.
|
|
228
|
+
"""
|
|
229
|
+
|
|
230
|
+
def __init__(self, scenes, config=None, seed=0, drone_asset=None, gate_asset=None, parameters=None, drones=None):
|
|
231
|
+
self.config = config if config is not None else EnvConfig()
|
|
232
|
+
if drones is not None and drone_asset is not None:
|
|
233
|
+
raise ValueError("hyperdrone: pass either drone_asset= (one drone) or drones= (the table)")
|
|
234
|
+
if drones is None:
|
|
235
|
+
drones = [{"asset": drone_asset}] if drone_asset is not None else [{}]
|
|
236
|
+
drones = [dict(entry) for entry in drones]
|
|
237
|
+
if not drones:
|
|
238
|
+
raise ValueError("hyperdrone: drones= needs at least one entry")
|
|
239
|
+
for entry in drones:
|
|
240
|
+
unknown = sorted(set(entry) - {"asset", "parameters"})
|
|
241
|
+
if unknown:
|
|
242
|
+
raise ValueError(f"hyperdrone: unknown drone entry keys {unknown} (asset, parameters)")
|
|
243
|
+
if self.config.task == "moving_gate" and gate_asset is None:
|
|
244
|
+
raise ValueError("hyperdrone: task 'moving_gate' needs gate_asset= (the gate GLB)")
|
|
245
|
+
self._module = jit.module(component(), self.config)
|
|
246
|
+
for name, value in self._module.dimensions.items():
|
|
247
|
+
setattr(self, name, value)
|
|
248
|
+
if len(drones) > self.max_drones:
|
|
249
|
+
capacity_option = "MAX_DRONES in spec_header" if self.config.spec_header is not None else "EnvConfig(max_drones=...)"
|
|
250
|
+
raise ValueError(
|
|
251
|
+
f"hyperdrone: {len(drones)} drones but this configuration holds {self.max_drones}; "
|
|
252
|
+
f"raise {capacity_option}"
|
|
253
|
+
)
|
|
254
|
+
for entry in drones:
|
|
255
|
+
if self.self_visible and entry.get("asset") is None:
|
|
256
|
+
raise ValueError("hyperdrone: this SELF_VISIBLE world needs an asset per drone; pass drone_asset= or drones=")
|
|
257
|
+
if not self.self_visible and entry.get("asset") is not None:
|
|
258
|
+
raise ValueError("hyperdrone: drone assets need a SELF_VISIBLE world, nothing would render them")
|
|
259
|
+
scene_references = _normalize_scenes(scenes, self.num_environments)
|
|
260
|
+
drone_assets = [_resolve_asset(entry.get("asset")) for entry in drones]
|
|
261
|
+
gate_asset = _resolve_asset(gate_asset)
|
|
262
|
+
self.observation_layout = ObservationLayout(**self._module.observation_layout)
|
|
263
|
+
self.observation_layout_privileged = ObservationLayout(**self._module.observation_layout_privileged)
|
|
264
|
+
self.observation_layout_imu = ObservationLayout(**self._module.observation_layout_imu) if self.observation_dim_imu > 0 else None
|
|
265
|
+
self._environment = self._module.Environment()
|
|
266
|
+
nominal = self._resolve(json.loads(self._environment.parameters()), parameters or {})
|
|
267
|
+
drone_parameters = []
|
|
268
|
+
for entry in drones:
|
|
269
|
+
overrides = entry.get("parameters") or {}
|
|
270
|
+
self._check_per_drone(overrides)
|
|
271
|
+
drone_parameters.append(json.dumps(self._resolve(nominal, overrides)))
|
|
272
|
+
self._environment.init(scene_references, drone_assets, drone_parameters, gate_asset, seed)
|
|
273
|
+
self._sampled = np.zeros(self.total_instances, dtype=bool)
|
|
274
|
+
|
|
275
|
+
@staticmethod
|
|
276
|
+
def _check_per_drone(overrides):
|
|
277
|
+
if "drone" in overrides:
|
|
278
|
+
raise ValueError("hyperdrone: drone is sampled at reset from the drones= table")
|
|
279
|
+
shared = sorted(set(overrides.get("dynamics", {})) - {"dynamics", "imu"})
|
|
280
|
+
if shared:
|
|
281
|
+
raise ValueError(f"hyperdrone: dynamics {shared} are shared by all instances; set them through parameters=")
|
|
282
|
+
|
|
283
|
+
def _resolve(self, base, overrides):
|
|
284
|
+
overrides = copy.deepcopy(overrides)
|
|
285
|
+
dynamics = overrides.get("dynamics", {}).get("dynamics", {})
|
|
286
|
+
model = dynamics.pop("model", None)
|
|
287
|
+
if model is not None:
|
|
288
|
+
entry = self._environment.model(model)
|
|
289
|
+
if entry is None:
|
|
290
|
+
raise ValueError(f"hyperdrone: unknown dynamics model {model!r} (see hyperdrone.dynamics.MODELS)")
|
|
291
|
+
base = copy.deepcopy(base)
|
|
292
|
+
base["dynamics"]["dynamics"] = json.loads(entry)
|
|
293
|
+
merged = _merge(base, overrides)
|
|
294
|
+
if "J" in dynamics and "J_inv" not in dynamics:
|
|
295
|
+
merged["dynamics"]["dynamics"]["J_inv"] = np.linalg.inv(merged["dynamics"]["dynamics"]["J"]).tolist()
|
|
296
|
+
return merged
|
|
297
|
+
|
|
298
|
+
@property
|
|
299
|
+
def parameters(self):
|
|
300
|
+
"""The resolved nominal parameters of drone 0, including its entry-specific overrides."""
|
|
301
|
+
return json.loads(self._environment.parameters())
|
|
302
|
+
|
|
303
|
+
@property
|
|
304
|
+
def drones(self):
|
|
305
|
+
"""The drone table every instance samples from at reset: one dict per entry with the resolved asset path and the nominal parameters; the "drone" value of instance_parameters() indexes it."""
|
|
306
|
+
return json.loads(self._environment.drones())
|
|
307
|
+
|
|
308
|
+
def instance_parameters(self):
|
|
309
|
+
"""The current parameters of every instance, as sampled at its last reset: a list of dicts in the schema of parameters plus "drone", the index of the table entry the instance flies."""
|
|
310
|
+
if not self._sampled.all():
|
|
311
|
+
raise RuntimeError("hyperdrone: per-instance parameters exist once every instance has been reset")
|
|
312
|
+
return json.loads(self._environment.instance_parameters())
|
|
313
|
+
|
|
314
|
+
def set_instance_parameters(self, overrides, mask=None):
|
|
315
|
+
"""Merges overrides into the current parameters of the instances selected by mask (default: all) until each one's next reset. overrides is one dict for all selected instances or a list with one dict per selected instance (in instance order), in the schema of the parameters argument; only the drone itself varies per instance (dynamics.dynamics, dynamics.imu, camera), the rest is shared and set through parameters=, and the rendered body follows the drone sampled at reset."""
|
|
316
|
+
mask = self._mask(mask)
|
|
317
|
+
selected = np.flatnonzero(mask)
|
|
318
|
+
if isinstance(overrides, dict):
|
|
319
|
+
overrides = [overrides] * len(selected)
|
|
320
|
+
if len(overrides) != len(selected):
|
|
321
|
+
raise ValueError(f"hyperdrone: {len(overrides)} overrides for {len(selected)} selected instances")
|
|
322
|
+
current = self.instance_parameters()
|
|
323
|
+
merged = []
|
|
324
|
+
for instance_i, instance_overrides in zip(selected, overrides):
|
|
325
|
+
self._check_per_drone(instance_overrides)
|
|
326
|
+
merged.append(self._resolve(current[instance_i], instance_overrides))
|
|
327
|
+
self._environment.set_instance_parameters(mask, json.dumps(merged))
|
|
328
|
+
|
|
329
|
+
@property
|
|
330
|
+
def dt(self):
|
|
331
|
+
return self.parameters["dynamics"]["integration"]["dt"]
|
|
332
|
+
|
|
333
|
+
def close(self):
|
|
334
|
+
self._environment = None
|
|
335
|
+
|
|
336
|
+
def _mask(self, mask):
|
|
337
|
+
if mask is None:
|
|
338
|
+
mask = np.ones(self.total_instances, dtype=bool)
|
|
339
|
+
return np.ascontiguousarray(np.asarray(mask, dtype=bool).reshape(self.total_instances))
|
|
340
|
+
|
|
341
|
+
def reset(self, mask=None):
|
|
342
|
+
mask = self._mask(mask)
|
|
343
|
+
self._environment.reset(mask)
|
|
344
|
+
self._sampled |= mask
|
|
345
|
+
|
|
346
|
+
def _check_synchronized(self, reset_mask):
|
|
347
|
+
if self.config.task != "visual_inertial_localization":
|
|
348
|
+
return
|
|
349
|
+
per_environment = reset_mask.reshape(self.num_environments, self.instances_per_environment).astype(bool)
|
|
350
|
+
if np.any(per_environment.any(axis=1) & ~per_environment.all(axis=1)):
|
|
351
|
+
raise ValueError(
|
|
352
|
+
"hyperdrone: task 'visual_inertial_localization' runs fixed-length synchronized "
|
|
353
|
+
"episodes — the reset mask must be all-or-none per environment"
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
def render(self, reset_mask=None):
|
|
357
|
+
if reset_mask is None:
|
|
358
|
+
reset_mask = np.zeros(self.total_instances, dtype=bool)
|
|
359
|
+
reset_mask = self._mask(reset_mask)
|
|
360
|
+
self._check_synchronized(reset_mask)
|
|
361
|
+
self._environment.render(reset_mask)
|
|
362
|
+
|
|
363
|
+
def observe(self):
|
|
364
|
+
observations = np.empty((self.total_instances, self.observation_dim), dtype=np.float32)
|
|
365
|
+
self._environment.observe(observations)
|
|
366
|
+
return observations
|
|
367
|
+
|
|
368
|
+
def observe_privileged(self):
|
|
369
|
+
observations = np.empty((self.total_instances, self.observation_dim_privileged), dtype=np.float32)
|
|
370
|
+
self._environment.observe_privileged(observations)
|
|
371
|
+
return observations
|
|
372
|
+
|
|
373
|
+
def observe_imu(self):
|
|
374
|
+
"""The IMU sample of the last step: (total, observation_dim_imu), named by observation_layout_imu."""
|
|
375
|
+
if self.observation_dim_imu == 0:
|
|
376
|
+
raise ValueError(f"hyperdrone: this configuration has no IMU observation (task={self.config.task!r})")
|
|
377
|
+
observations = np.empty((self.total_instances, self.observation_dim_imu), dtype=np.float32)
|
|
378
|
+
self._environment.observe_imu(observations)
|
|
379
|
+
return observations
|
|
380
|
+
|
|
381
|
+
def step(self, actions=None):
|
|
382
|
+
if actions is None:
|
|
383
|
+
if self.action_dim != 0:
|
|
384
|
+
raise ValueError(
|
|
385
|
+
"hyperdrone: step() needs actions of shape (total_instances, action_dim); "
|
|
386
|
+
"only autonomous tasks (action_dim == 0) step without them"
|
|
387
|
+
)
|
|
388
|
+
actions = np.empty((self.total_instances, 0), dtype=np.float32)
|
|
389
|
+
actions = np.ascontiguousarray(np.asarray(actions, dtype=np.float32).reshape(self.total_instances, self.action_dim))
|
|
390
|
+
self._environment.step(actions)
|
|
391
|
+
|
|
392
|
+
def rewards(self):
|
|
393
|
+
rewards = np.empty(self.total_instances, dtype=np.float32)
|
|
394
|
+
self._environment.rewards(rewards)
|
|
395
|
+
return rewards
|
|
396
|
+
|
|
397
|
+
def terminated(self):
|
|
398
|
+
flags = np.empty(self.total_instances, dtype=bool)
|
|
399
|
+
self._environment.terminated(flags)
|
|
400
|
+
return flags
|
|
401
|
+
|
|
402
|
+
def rotate_scene(self):
|
|
403
|
+
self._environment.rotate_scene()
|
|
404
|
+
|
|
405
|
+
def frames(self):
|
|
406
|
+
"""The latest visual observation as (total, *observation_layout.shape) images."""
|
|
407
|
+
return self.observe().reshape(self.total_instances, *self.observation_layout.shape)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from .. import jit, render
|
|
4
|
+
from ._multi_environment import component
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def _rotors(value, what):
|
|
8
|
+
array = np.ascontiguousarray(value, dtype=np.float32)
|
|
9
|
+
if array.ndim != 2 or array.shape[1] != 3:
|
|
10
|
+
raise ValueError(f"{what} must have shape (num_rotors, 3), got {array.shape}")
|
|
11
|
+
return array
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Rotorcraft(render.Rig):
|
|
15
|
+
"""The body/prop_* drone rig the environment renders for drone_asset, as a render.Rig:
|
|
16
|
+
part 0 is the body, every prop_* part spins about its hub (the centre of its geometry),
|
|
17
|
+
any other part rides the body. Without rotors, coordinate i is the phase of the i-th
|
|
18
|
+
prop_* part and the spin follows the Quad-X convention (front-right CCW). With a
|
|
19
|
+
dynamics model's rotor_positions and rotor_torque_directions, both (num_rotors, 3) as in
|
|
20
|
+
Sim.model_parameters(), each hub pairs with its nearest rotor: coordinate i is then the
|
|
21
|
+
phase of rotor i, spinning against the rotor's reaction torque, so sim.state["rpm"]
|
|
22
|
+
integrates straight into the coordinates."""
|
|
23
|
+
|
|
24
|
+
def __init__(self, assembly, rotor_positions=None, rotor_torque_directions=None):
|
|
25
|
+
if (rotor_positions is None) != (rotor_torque_directions is None):
|
|
26
|
+
raise ValueError("rotor_positions and rotor_torque_directions come together")
|
|
27
|
+
if rotor_positions is not None:
|
|
28
|
+
rotor_positions = _rotors(rotor_positions, "rotor_positions")
|
|
29
|
+
rotor_torque_directions = _rotors(rotor_torque_directions, "rotor_torque_directions")
|
|
30
|
+
render.load_core() # registers RigModel, which the env core instantiates
|
|
31
|
+
self._bind(jit.core(component()).rotorcraft_rig(assembly, rotor_positions, rotor_torque_directions))
|