From e64b9735f1699f0dd40a7f7b2343d03da903754d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pe=C5=82ka?= Date: Fri, 20 Mar 2026 22:57:21 +0100 Subject: [PATCH 01/12] ROS Jazzy and O3DE 26.05 update: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Migrate IdealVisionSystem to new split gem APIs: - ROS2Sensors::CameraConfigurationRequestBus (from CameraCalibrationRequestBus) - ROS2::ROS2NamesRequestBus (from ROS2Names::GetNamespacedName) - ROS2::ROS2ClockInterface (from ROS2Interface::GetROSTimestamp) - ROS2FrameComponentBus for frame/namespace queries - Fix ScriptSpawnLevelComponent: move parent assignment to completion callback to ensure entities are fully inserted before reparenting - Add new gem dependencies: ROS2Sensors, ROS2Controllers, ROS2RobotImporter, SimulationInterfaces, ImGui, LmbrCentral, PhysX5 - Add ur_moveit_config package (replaces Universal_Robots_ROS2_Driver submodule) - Fix Nav2 bt_navigator params: remove duplicate robot_base_frame, add error_code_names for Jazzy compatibility - Update default demo config to ROSCon2023Config_4.yaml - Update submodules and warehouse prefab assets Signed-off-by: Michał Pełka --- .gitmodules | 3 - Docker/Dockerfile.O3DE | 81 +- Docker/Dockerfile.ROS | 11 +- Docker/README.md | 26 +- Docker/build_ros.sh | 2 - Docker/build_simulation.sh | 220 +----- Project/Assets/BoxMesh/Box5.fbx | Bin 0 -> 25308 bytes Project/Assets/Factory/Box5.prefab | 332 +++++++++ .../Factory/Objects/PalletWithBarrell.prefab | 2 +- .../Signs/WarningPlates_Restricted.fbx | Bin 25116 -> 15196 bytes Project/Gem/CMakeLists.txt | 8 + .../CameraPostprocess/GrayscaleCamera.cpp | 4 +- .../CameraPostprocess/GrayscaleCamera.h | 5 +- .../Scripting/ObjectDetectionComponent.cpp | 10 +- .../Scripting/ScriptSpawnLevelComponent.cpp | 18 +- .../Gem/Source/Vision/IdealVisionSystem.cpp | 43 +- Project/Gem/Source/Vision/IdealVisionSystem.h | 1 - Project/Levels/DemoLevel1/DemoLevel1.prefab | 702 ++++++++++++++---- Project/Prefabs/Features/Lines.prefab | 2 +- .../Prefabs/OTTO600/OTTO600WithPallet.prefab | 2 +- .../OTTO600/Otto600StandWithPaths.prefab | 9 +- Project/Prefabs/ur20_cameras.prefab | 2 +- Project/project.json | 20 +- README.md | 20 +- engine/o3de | 2 +- engine/o3de-extras | 2 +- gems/o3de-humanworker-gem | 2 +- gems/o3de-otto-robots-gem | 2 +- gems/o3de-ur-robots-gem | 2 +- gems/robotec-o3de-tools | 2 +- gems/robotec-warehouse-assets | 2 +- ros2_ws/setup_submodules.bash | 38 - ros2_ws/src/Universal_Robots_ROS2_Driver | 1 - .../params/jazzy/nav2_multirobot_params.yaml | 262 +++++++ .../params/jazzy/nav2_params.yaml | 252 +++++++ .../params/jazzy/nav2_slam.yaml | 302 ++++++++ .../params/jazzy/otto1500Params.yaml | 292 ++++++++ .../params/jazzy/otto600Params.yaml | 291 ++++++++ ros2_ws/src/otto_fleet_nav/setup.py | 1 + .../config/ROSCon2023Config_4.yaml | 8 +- ros2_ws/src/ur_moveit_config/CHANGELOG.rst | 108 +++ ros2_ws/src/ur_moveit_config/CMakeLists.txt | 15 + .../ur_moveit_config/config/controllers.yaml | 29 + .../ur_moveit_config/config/joint_limits.yaml | 25 + .../ur_moveit_config/config/kinematics.yaml | 8 + .../config/ompl_planning.yaml | 70 ++ .../src/ur_moveit_config/config/ur_servo.yaml | 82 ++ .../launch/ur_moveit.launch.py | 382 ++++++++++ ros2_ws/src/ur_moveit_config/package.xml | 41 + .../src/ur_moveit_config/rviz/view_robot.rviz | 311 ++++++++ .../src/ur_moveit_config/srdf/ur.srdf.xacro | 13 + .../ur_moveit_config/srdf/ur_macro.srdf.xacro | 57 ++ .../ur_moveit_config/__init__.py | 0 .../ur_moveit_config/launch_common.py | 84 +++ ros2_ws/src/ur_palletization/CMakeLists.txt | 1 + .../ur_palletization/config/sensors_3d.yaml | 6 + .../launch/ur_palletization.launch.py | 11 +- .../ur_palletization/src/taskConstructor.cpp | 4 +- 58 files changed, 3694 insertions(+), 537 deletions(-) create mode 100644 Project/Assets/BoxMesh/Box5.fbx create mode 100755 Project/Assets/Factory/Box5.prefab delete mode 100755 ros2_ws/setup_submodules.bash delete mode 160000 ros2_ws/src/Universal_Robots_ROS2_Driver create mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml create mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml create mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml create mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml create mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml create mode 100644 ros2_ws/src/ur_moveit_config/CHANGELOG.rst create mode 100644 ros2_ws/src/ur_moveit_config/CMakeLists.txt create mode 100644 ros2_ws/src/ur_moveit_config/config/controllers.yaml create mode 100644 ros2_ws/src/ur_moveit_config/config/joint_limits.yaml create mode 100644 ros2_ws/src/ur_moveit_config/config/kinematics.yaml create mode 100644 ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml create mode 100644 ros2_ws/src/ur_moveit_config/config/ur_servo.yaml create mode 100644 ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py create mode 100644 ros2_ws/src/ur_moveit_config/package.xml create mode 100644 ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz create mode 100644 ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro create mode 100644 ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro create mode 100644 ros2_ws/src/ur_moveit_config/ur_moveit_config/__init__.py create mode 100644 ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py create mode 100644 ros2_ws/src/ur_palletization/config/sensors_3d.yaml diff --git a/.gitmodules b/.gitmodules index ec963426..7e8c480a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "ros2_ws/src/Universal_Robots_ROS2_Driver"] - path = ros2_ws/src/Universal_Robots_ROS2_Driver - url = https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git [submodule "engine/o3de"] path = engine/o3de url = https://github.com/o3de/o3de.git diff --git a/Docker/Dockerfile.O3DE b/Docker/Dockerfile.O3DE index 290bcf3f..2de46a24 100644 --- a/Docker/Dockerfile.O3DE +++ b/Docker/Dockerfile.O3DE @@ -4,8 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 OR MIT # -ARG ROS_VERSION=humble -ARG UBUNTU_VERSION=jammy +ARG ROS_VERSION=jazzy +ARG UBUNTU_VERSION=noble FROM ros:${ROS_VERSION}-ros-base-${UBUNTU_VERSION} @@ -13,81 +13,14 @@ ENV WORKSPACE=/data/workspace WORKDIR $WORKSPACE -# O3DE Arguments -ARG O3DE_REPO=https://github.com/o3de/o3de -ARG O3DE_BRANCH=2505.1 -ARG O3DE_COMMIT=HEAD - -# O3DE Extras Arguments -ARG O3DE_EXTRAS_REPO=https://github.com/o3de/o3de-extras -ARG O3DE_EXTRAS_BRANCH=2505.1 -ARG O3DE_EXTRAS_COMMIT=HEAD - -# ROSCon2023 Human Worker Arguments -ARG ROSCON_DEMO_HUMAN_WORKER_REPO=https://github.com/RobotecAI/o3de-humanworker-gem -ARG ROSCON_DEMO_HUMAN_WORKER_BRANCH=2.0.0 -ARG ROSCON_DEMO_HUMAN_WORKER_COMMIT=HEAD - -# ROSCon2023 UR10 and UR20 Robots Gem Arguments -ARG ROSCON_DEMO_UR_ROBOTS_REPO=https://github.com/RobotecAI/o3de-ur-robots-gem -ARG ROSCON_DEMO_UR_ROBOTS_BRANCH=2.0.0 -ARG ROSCON_DEMO_UR_ROBOTS_COMMIT=HEAD - -# ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem Arguments -ARG ROSCON_DEMO_OTTO_ROBOTS_REPO=https://github.com/RobotecAI/o3de-otto-robots-gem -ARG ROSCON_DEMO_OTTO_ROBOTS_BRANCH=2.0.0 -ARG ROSCON_DEMO_OTTO_ROBOTS_COMMIT=HEAD - # ROSConDemo Arguments ARG ROSCON_DEMO_REPO=https://github.com/RobotecAI/ROSCon2023Demo.git -ARG ROSCON_DEMO_BRANCH=3.0.1 +ARG ROSCON_DEMO_BRANCH=main ARG ROSCON_DEMO_COMMIT=HEAD ARG ROSCON_DEMO_LEVEL=level1 ARG ROSCON_DEMO_FULLSCREEN=0 ARG ROSCON_DEMO_LARGE_SCALE=0 -# O3DE Environment -ENV O3DE_REPO=$O3DE_REPO -ENV O3DE_BRANCH=$O3DE_BRANCH -ENV O3DE_COMMIT=$O3DE_COMMIT -ENV O3DE_ROOT=$WORKSPACE/o3de - -# O3DE Extras Environment Variables -ENV O3DE_EXTRAS_REPO=$O3DE_EXTRAS_REPO -ENV O3DE_EXTRAS_BRANCH=$O3DE_EXTRAS_BRANCH -ENV O3DE_EXTRAS_COMMIT=$O3DE_EXTRAS_COMMIT -ENV O3DE_EXTRAS_ROOT=$WORKSPACE/o3de-extras - -# ROSCon2023 Human Worker Environment Variables -ENV ROSCON_DEMO_HUMAN_WORKER_REPO=$ROSCON_DEMO_HUMAN_WORKER_REPO -ENV ROSCON_DEMO_HUMAN_WORKER_BRANCH=$ROSCON_DEMO_HUMAN_WORKER_BRANCH -ENV ROSCON_DEMO_HUMAN_WORKER_COMMIT=$ROSCON_DEMO_HUMAN_WORKER_COMMIT -ENV ROSCON_DEMO_HUMAN_WORKER_ROOT=$WORKSPACE/o3de-humanworker-gem - -# ROSCon2023 UR10 and UR20 Robots Gem Environment Variables -ENV ROSCON_DEMO_UR_ROBOTS_REPO=$ROSCON_DEMO_UR_ROBOTS_REPO -ENV ROSCON_DEMO_UR_ROBOTS_BRANCH=$ROSCON_DEMO_UR_ROBOTS_BRANCH -ENV ROSCON_DEMO_UR_ROBOTS_COMMIT=$ROSCON_DEMO_UR_ROBOTS_COMMIT -ENV ROSCON_DEMO_UR_ROBOTS_ROOT=$WORKSPACE/o3de-ur-robots-gem - -# ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem Environment Variables -ENV ROSCON_DEMO_OTTO_ROBOTS_REPO=$ROSCON_DEMO_OTTO_ROBOTS_REPO -ENV ROSCON_DEMO_OTTO_ROBOTS_BRANCH=$ROSCON_DEMO_OTTO_ROBOTS_BRANCH -ENV ROSCON_DEMO_OTTO_ROBOTS_COMMIT=$ROSCON_DEMO_OTTO_ROBOTS_COMMIT -ENV ROSCON_DEMO_OTTO_ROBOTS_ROOT=$WORKSPACE/o3de-otto-robots-gem - -# Assets only Gems used in the demo -ENV ROSCON_DEMO_WAREHOUSE_ASSETS_REPO=https://github.com/RobotecAI/robotec-warehouse-assets.git -ENV ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT=$WORKSPACE/robotec-warehouse-assets -ENV ROSCON_DEMO_GENERIC_ASSETS_REPO=https://github.com/RobotecAI/robotec-generic-assets.git -ENV ROSCON_DEMO_GENERIC_ASSETS_ROOT=$WORKSPACE/robotec-generic-assets - -# Robotec.ai additional tooling Gems -ENV ROSCON_DEMO_ROBOTEC_GEMS_REPO=https://github.com/RobotecAI/robotec-o3de-tools.git -ENV ROSCON_DEMO_ROBOTEC_GEMS_BRANCH=o3de-2505 -ENV ROSCON_DEMO_ROBOTEC_GEMS_COMMIT=4006ef9 -ENV ROSCON_DEMO_ROBOTEC_GEMS_ROOT=$WORKSPACE/robotec-o3de-tools - # ROSConDemo Environment Variables ENV ROSCON_DEMO_REPO=$ROSCON_DEMO_REPO ENV ROSCON_DEMO_BRANCH=$ROSCON_DEMO_BRANCH @@ -119,11 +52,14 @@ RUN apt-get update \ && apt-get install -y \ binutils \ clang \ + clang-tools \ cmake \ git \ git-lfs \ libglu1-mesa-dev \ libxcb-xinerama0 \ + libxcb-randr0-dev \ + libxcb-keysyms1-dev \ libfontconfig1-dev \ libnvidia-gl-470 \ libxcb-xkb-dev \ @@ -157,10 +93,9 @@ RUN apt-get update \ ros-${ROS_DISTRO}-navigation2 \ ros-${ROS_DISTRO}-ur-description \ ros-${ROS_DISTRO}-force-torque-sensor-broadcaster \ + ros-${ROS_DISTRO}-simulation-interfaces \ python3-vcstool \ - python3-rosdep2 \ - python3-colcon-common-extensions \ - && pip install python-statemachine + python3-colcon-common-extensions ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp diff --git a/Docker/Dockerfile.ROS b/Docker/Dockerfile.ROS index 3e2604a7..eacd62b3 100644 --- a/Docker/Dockerfile.ROS +++ b/Docker/Dockerfile.ROS @@ -4,8 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 OR MIT # -ARG ROS_VERSION=humble -ARG UBUNTU_VERSION=jammy +ARG ROS_VERSION=jazzy +ARG UBUNTU_VERSION=noble FROM ros:${ROS_VERSION}-ros-base-${UBUNTU_VERSION} @@ -64,15 +64,12 @@ RUN apt-get update \ ros-${ROS_DISTRO}-cyclonedds \ ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ ros-${ROS_DISTRO}-controller-manager \ - ros-${ROS_DISTRO}-ur-client-library \ ros-${ROS_DISTRO}-nav2-common \ ros-${ROS_DISTRO}-navigation2 \ - ros-${ROS_DISTRO}-ur-description \ ros-${ROS_DISTRO}-force-torque-sensor-broadcaster \ + ros-${ROS_DISTRO}-simulation-interfaces \ python3-vcstool \ - python3-rosdep2 \ - python3-colcon-common-extensions \ - && pip install python-statemachine + python3-colcon-common-extensions ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp diff --git a/Docker/README.md b/Docker/README.md index 8d986247..c546fa4d 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -23,28 +23,8 @@ The script for O3DE (`Dockerfile.O3DE`) will build the ROSCon2023Demo Warehouse | Argument | Description | Default | | ------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------- | -| ROS_VERSION | The distro of ROS (humble or iron) | humble | -| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy | -| O3DE_REPO | The git repo for O3DE | https://github.com/o3de/o3de | -| O3DE_BRANCH | The branch/tag for O3DE | 2505.1 | -| O3DE_COMMIT | The commit on the branch/tag for O3DE (or HEAD) | HEAD | -| O3DE_EXTRAS_REPO | The git repo for O3DE Extras | https://github.com/o3de/o3de-extras | -| O3DE_EXTRAS_BRANCH | The branch/tag for O3DE Extras | 2505.1 | -| O3DE_EXTRAS_COMMIT | The commit on the branch for O3DE Extras (or HEAD) | HEAD | -| ROSCON_DEMO_HUMAN_WORKER_REPO | The git repo for Demo Human worker Gem | https://github.com/RobotecAI/o3de-humanworker-gem | -| ROSCON_DEMO_HUMAN_WORKER_BRANCH | The branch/tag for Demo Human worker Gem | 2.0.0 | -| ROSCON_DEMO_HUMAN_WORKER_COMMIT | The commit on the branch/tag for Demo Human worker Gem (or HEAD) | HEAD | -| ROSCON_DEMO_UR_ROBOTS_REPO | The git repo for Demo UR Robots Gem | https://github.com/RobotecAI/o3de-ur-robots-gem | -| ROSCON_DEMO_UR_ROBOTS_BRANCH | The branch/tag for Demo UR Robots Gem | 2.0.0 | -| ROSCON_DEMO_UR_ROBOTS_COMMIT | The commit on the branch/tag for Demo UR Robots Gem (or HEAD) | HEAD | -| ROSCON_DEMO_OTTO_ROBOTS_REPO | The git repo for the Demo Otto Robots Gem | https://github.com/RobotecAI/o3de-otto-robots-gem | -| ROSCON_DEMO_OTTO_ROBOTS_BRANCH | The branch/tag for the Demo Otto Robots Gem | 2.0.0 | -| ROSCON_DEMO_OTTO_ROBOTS_COMMIT | The commit on the branch/tag for the Demo Otto Robots Gem (or HEAD) | HEAD | -| ROSCON_DEMO_REPO | The git repo for ROSCon2023 Warehouse Demo | https://github.com/RobotecAI/ROSCon2023Demo.git | -| ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | 3.0.1 | -| ROSCON_DEMO_COMMIT | The commit on the branch/tag for ROSCon2023 Warehouse Demo (or HEAD) | HEAD | -| ROSCON_DEMO_ROBOTEC_GEMS_REPO | The git repo for Robotec Gems | https://github.com/RobotecAI/robotec-o3de-tools.git | -| ROSCON_DEMO_ROBOTEC_GEMS_BRANCH | The branch/tag for Robotec Gems | o3de-2505 | +| ROS_VERSION | The distro of ROS (jazzy ) | jazzy | +| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | noble | | ROSCON_DEMO_ROBOTEC_GEMS_COMMIT | The commit on the branch/tag for Robotec Gems (or HEAD) | 4006ef9 | | ROSCON_DEMO_LEVEL | The startup level (level1 or level2). **See Notes below** | level1 | | ROSCON_DEMO_FULLSCREEN | Option to launch the simulation in fullscreen mode (0=no, 1=yes) | 0 | @@ -69,7 +49,7 @@ The O3DE Docker image can reach 10 GB in size, so if you want to create a separa | Argument | Description | Default | | ----------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------- | -| ROS_VERSION | The distro of ROS (humble, or iron) | humble | +| ROS_VERSION | The distro of ROS (humble, or iron) | jazzy | | UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy | | ROSCON_DEMO_REPO | The git repo for ROSCon2023 Warehouse Demo | https://github.com/RobotecAI/ROSCon2023Demo.git | | ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | 2.0.0 | diff --git a/Docker/build_ros.sh b/Docker/build_ros.sh index 0939e843..a74d911e 100755 --- a/Docker/build_ros.sh +++ b/Docker/build_ros.sh @@ -39,9 +39,7 @@ ROSCon2023Demo Project | $(git -C $ROSCON_DEMO_ROOT rev-parse --short # Build and install the additional ROS 2 packages and drivers ############################################################### pushd $ROSCON_DEMO_ROOT/ros2_ws && \ - ./setup_submodules.bash && \ rosdep update && \ - rosdep install --ignore-src --from-paths src/Universal_Robots_ROS2_Driver -y && \ colcon build --symlink-install && \ . ./install/setup.sh && \ popd diff --git a/Docker/build_simulation.sh b/Docker/build_simulation.sh index 81ffbab5..de68a4ad 100755 --- a/Docker/build_simulation.sh +++ b/Docker/build_simulation.sh @@ -21,227 +21,57 @@ fi # Initialize ROS . /opt/ros/${ROS_DISTRO}/setup.sh -############################################################### -# Clone and bootstrap O3DE -############################################################### -echo "Cloning o3de" -git clone --single-branch -b $O3DE_BRANCH $O3DE_REPO $O3DE_ROOT && \ - git -C $O3DE_ROOT lfs install && \ - git -C $O3DE_ROOT lfs pull && \ - git -C $O3DE_ROOT reset --hard $O3DE_COMMIT -if [ $? -ne 0 ] -then - echo "Error cloning o3de from $O3DE_REPO" - exit 1 -fi - -$WORKSPACE/o3de/python/get_python.sh && \ - $WORKSPACE/o3de/scripts/o3de.sh register -ep $O3DE_ROOT -if [ $? -ne 0 ] -then - echo "Error bootstrapping O3DE from $O3DE_REPO" - exit 1 -fi - -############################################################### -# Clone and register o3de-extras -############################################################### -echo "Cloning o3de-extras" -git clone --single-branch -b $O3DE_EXTRAS_BRANCH $O3DE_EXTRAS_REPO $O3DE_EXTRAS_ROOT && \ - git -C $O3DE_EXTRAS_ROOT lfs install && \ - git -C $O3DE_EXTRAS_ROOT lfs pull && \ - git -C $O3DE_EXTRAS_ROOT reset --hard $O3DE_EXTRAS_COMMIT -if [ $? -ne 0 ] -then - echo "Error cloning o3de-extras from $O3DE_EXTRAS_REPO" - exit 1 -fi - -$WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/ROS2 && \ - $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/ROS2SampleRobots && \ - $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/WarehouseAssets && \ - $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/LevelGeoreferencing && \ - $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/WarehouseAutomation -if [ $? -ne 0 ] -then - echo "Error registering o3de-extras gems" - exit 1 -fi - -############################################################### -# Clone and register the ROSCon2023Demo Human Worker Gem ############################################################### -echo "Cloning the ROSCon2023 Demo Human Worker Gem" -git clone --single-branch -b $ROSCON_DEMO_HUMAN_WORKER_BRANCH $ROSCON_DEMO_HUMAN_WORKER_REPO $ROSCON_DEMO_HUMAN_WORKER_ROOT && \ - git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT lfs install && \ - git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT lfs pull && \ - git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT reset --hard $ROSCON_DEMO_HUMAN_WORKER_COMMIT -if [ $? -ne 0 ] -then - echo "Error cloning ROSCon2023 Demo Human Worker Gem from $ROSCON_DEMO_HUMAN_WORKER_REPO" - exit 1 -fi - -$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_HUMAN_WORKER_ROOT -if [ $? -ne 0 ] -then - echo "Error registering the ROSCon2023 Demo Human Worker Gem" - exit 1 -fi - - -############################################################### -# Clone and register the ROSCon2023Demo UR10 and UR20 Robots Gem +# Clone and register the ROSCon2023Demo ############################################################### -echo "Cloning ROSCon2023 UR10 and UR20 Robots Gem" -git clone --single-branch -b $ROSCON_DEMO_UR_ROBOTS_BRANCH $ROSCON_DEMO_UR_ROBOTS_REPO $ROSCON_DEMO_UR_ROBOTS_ROOT && \ - git -C $ROSCON_DEMO_UR_ROBOTS_ROOT lfs install && \ - git -C $ROSCON_DEMO_UR_ROBOTS_ROOT lfs pull && \ - git -C $ROSCON_DEMO_UR_ROBOTS_ROOT reset --hard $ROSCON_DEMO_UR_ROBOTS_COMMIT -if [ $? -ne 0 ] -then - echo "Error cloning ROSCon2023 UR10 and UR20 Robots Gem from $ROSCON_DEMO_UR_ROBOTS_REPO" - exit 1 -fi - -$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_UR_ROBOTS_ROOT -if [ $? -ne 0 ] -then - echo "Error registering the ROSCon2023 UR10 and UR20 Robots Gem" - exit 1 -fi - -####################################################################### -# Clone and register the ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem -####################################################################### -echo "Cloning ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem" -git clone --single-branch -b $ROSCON_DEMO_OTTO_ROBOTS_BRANCH $ROSCON_DEMO_OTTO_ROBOTS_REPO $ROSCON_DEMO_OTTO_ROBOTS_ROOT && \ - git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT lfs install && \ - git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT lfs pull && \ - git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT reset --hard $ROSCON_DEMO_OTTO_ROBOTS_COMMIT -if [ $? -ne 0 ] -then - echo "Error cloning ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem from $ROSCON_DEMO_OTTO_ROBOTS_REPO" - exit 1 -fi - -$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_OTTO_ROBOTS_ROOT -if [ $? -ne 0 ] -then - echo "Error registering the ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem" - exit 1 -fi - -####################################################################### -# Clone and register assets only gems -####################################################################### -echo "Cloning Warehouse and Generic Assets Gems" -git clone --single-branch $ROSCON_DEMO_WAREHOUSE_ASSETS_REPO $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT && \ - git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT lfs install && \ - git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT lfs pull -if [ $? -ne 0 ] -then - echo "Error cloning Warehouse Assets Gems from $ROSCON_DEMO_WAREHOUSE_ASSETS_REPO" - exit 1 -fi - -$WORKSPACE/o3de/scripts/o3de.sh register -agp $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT -if [ $? -ne 0 ] -then - echo "Error registering the Warehouse Assets Gems" - exit 1 -fi - -git clone --single-branch $ROSCON_DEMO_GENERIC_ASSETS_REPO $ROSCON_DEMO_GENERIC_ASSETS_ROOT && \ - git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT lfs install && \ - git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT lfs pull -if [ $? -ne 0 ] -then - echo "Error cloning Generic Assets Gems from $ROSCON_DEMO_GENERIC_ASSETS_REPO" - exit 1 -fi +git config --global http.postBuffer 524288000 +git config --global http.lowSpeedLimit 0 +git config --global http.lowSpeedTime 300 -$WORKSPACE/o3de/scripts/o3de.sh register -agp $ROSCON_DEMO_GENERIC_ASSETS_ROOT +echo "Cloning the RosCon2023Demo project" +git clone --single-branch -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \ + git -C $ROSCON_DEMO_ROOT lfs install && \ + git -C $ROSCON_DEMO_ROOT lfs pull && \ + git -C $ROSCON_DEMO_ROOT reset --hard $ROSCON_DEMO_COMMIT if [ $? -ne 0 ] then - echo "Error registering the Generic Assets Gems" + echo "Error cloning RosCon2023Demo project $ROSCON_DEMO_REPO" exit 1 fi -####################################################################### -# Clone and register additional tooling Gems -####################################################################### -echo "Cloning the additional tooling Gems" -git clone --single-branch -b $ROSCON_DEMO_ROBOTEC_GEMS_BRANCH $ROSCON_DEMO_ROBOTEC_GEMS_REPO $ROSCON_DEMO_ROBOTEC_GEMS_ROOT && \ - git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT lfs install && \ - git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT lfs pull && \ - git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT reset --hard $ROSCON_DEMO_ROBOTEC_GEMS_COMMIT +echo "Initializing submodules" +git -C $ROSCON_DEMO_ROOT submodule update --init --recursive if [ $? -ne 0 ] then - echo "Error cloning the additional tooling Gems from $ROSCON_DEMO_ROBOTEC_GEMS_REPO" + echo "Error initializing submodules" exit 1 fi -$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_ROBOTEC_GEMS_ROOT/Gems/ROS2ScriptIntegration +$ROSCON_DEMO_ROOT/engine/o3de/python/get_python.sh if [ $? -ne 0 ] then - echo "Error registering the additional tooling Gems" + echo "Error downloading/configuring O3DE Python" exit 1 fi -############################################################### -# Clone and register the ROSCon2023Demo -############################################################### -echo "Cloning the RosCon2023Demo project" -git clone --single-branch -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \ - git -C $ROSCON_DEMO_ROOT lfs install && \ - git -C $ROSCON_DEMO_ROOT lfs pull && \ - git -C $ROSCON_DEMO_ROOT reset --hard $ROSCON_DEMO_COMMIT +$ROSCON_DEMO_ROOT/engine/o3de/scripts/o3de.sh register -ep $ROSCON_DEMO_ROOT/engine/o3de if [ $? -ne 0 ] then - echo "Error cloning RosCon2023Demo project $ROSCON_DEMO_REPO" + echo "Error registering the O3DE engine" exit 1 fi -$WORKSPACE/o3de/scripts/o3de.sh register -pp $ROSCON_DEMO_PROJECT -if [ $? -ne 0 ] -then - echo "Error registering the RosCon2023Demo Project" - exit 1 -fi - - -############################################################################### -# Track the git commits from all the repos -############################################################################### -echo -e "\n\ -Repository | Commit | Branch\n\ -----------------------------------+-----------------------------------------\n\ -o3de | $(git -C $O3DE_ROOT rev-parse --short HEAD) | $(git -C $O3DE_ROOT rev-parse --abbrev-ref HEAD) \n\ -o3de-extras | $(git -C $O3DE_EXTRAS_ROOT rev-parse --short HEAD) | $(git -C $O3DE_EXTRAS_ROOT rev-parse --abbrev-ref HEAD) \n\ -ROSCon2023 Demo Human Worker Gem | $(git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT rev-parse --abbrev-ref HEAD) \n\ -ROSCon2023 UR Robots Gem | $(git -C $ROSCON_DEMO_UR_ROBOTS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_UR_ROBOTS_ROOT rev-parse --abbrev-ref HEAD) \n\ -ROSCon2023 OTTO Robots Gem | $(git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT rev-parse --abbrev-ref HEAD) \n\ -Warehouse Assets Gems | $(git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT rev-parse --abbrev-ref HEAD) \n\ -Generic Assets Gems | $(git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT rev-parse --abbrev-ref HEAD) \n\ -ROS2ScriptIntegration Gem | $(git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT rev-parse --abbrev-ref HEAD) \n\ -RosCon2023Demo Project | $(git -C $ROSCON_DEMO_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_ROOT rev-parse --abbrev-ref HEAD) \n\ -\n\ -" >> $WORKSPACE/git_commit.txt - ############################################################### # Set the filename of the level in the registry file ############################################################### -sed -i "s/demolevel1/${DEMO_LEVEL}/g" Registry/load_level.setreg +sed -i "s/demolevel1/${DEMO_LEVEL}/g" $ROSCON_DEMO_PROJECT/Registry/load_level.setreg ############################################################### # Build and install the additional ROS 2 packages and drivers ############################################################### pushd $ROSCON_DEMO_ROOT/ros2_ws && \ - ./setup_submodules.bash && \ rosdep update && \ - rosdep install --ignore-src --from-paths src/Universal_Robots_ROS2_Driver -y && \ colcon build --symlink-install && \ . ./install/setup.sh && \ popd @@ -375,13 +205,13 @@ cp $ROSCON_DEMO_PROJECT/build/game/bin/profile/ROSCon2023Demo.GameLauncher $ROSC cp $ROSCON_DEMO_PROJECT/build/game/bin/profile/*.json $ROSCON_SIMULATION_HOME/ cp $ROSCON_DEMO_PROJECT/build/game/bin/profile/*.so $ROSCON_SIMULATION_HOME -# Cleanup -rm -rf $O3DE_ROOT -rm -rf $O3DE_EXTRAS_ROOT -rm -rf $ROSCON_DEMO_HUMAN_WORKER_ROOT -rm -rf $ROSCON_DEMO_UR_ROBOTS_ROOT -rm -rf $ROSCON_DEMO_OTTO_ROBOTS_ROOT -rm -rf $ROSCON_DEMO_PROJECT +# Cleanup - keep ros2_ws/install for runtime (GameLauncher needs custom message libs) +rm -rf $ROSCON_DEMO_ROOT/engine +rm -rf $ROSCON_DEMO_ROOT/gems +rm -rf $ROSCON_DEMO_ROOT/Project/build +rm -rf $ROSCON_DEMO_ROOT/ros2_ws/src +rm -rf $ROSCON_DEMO_ROOT/ros2_ws/build +rm -rf $ROSCON_DEMO_ROOT/ros2_ws/log rm -rf /root/.o3de exit 0 diff --git a/Project/Assets/BoxMesh/Box5.fbx b/Project/Assets/BoxMesh/Box5.fbx new file mode 100644 index 0000000000000000000000000000000000000000..10b4fa197b11867d6f66d09c373f5c4a5de16f4e GIT binary patch literal 25308 zcmc&-30xD$_YW22QpEcPtOp(yP`u?7JSe9|QPB#4ED#Mz%pswosAxUv(boRzRiXa+ zYpq8M^{7`7mDXF(s#R3P6TAUI5xM^F?an3}NJ7+p{+&8xcW2&r-n{qb&70Xt8X!m% z3giOEv7@ItjuuG-@6KO(EN9 zio+;57WzMF!sDqqHLRfqTZZ5pIAykDB+>FjnG)zGCCVs&DB>+bXp&m_$|(U|DvGE0 zNH?%y1qdU2jM3ld3GO3HsIJfFgS&ZnZK5~05XJXdm_+XRWkVv&L=w8DnD={Tu5 z03KS<9hJ)Yec)!an390J9s4Mhf+#UXYsf#Ouj2s6A$qGvDCr}Ey0VOcNYXR9Dh0o`f4ke|iVvU%E zaMO&_3(Fu%DL^ctq1y8}1x+W3lwyhx7`(4Jk1hDBs999Bk}lZADQM=SQpSNqkl+O8 zxn%&Am>`u46?DmMZplPyt_W?AE~(^{Solig<0%Q#2m)$S635h=hsvcgO0E=9ieauX z&{6FD2*_rkd>i=ilSZo$WwKn%N3sCEQZACj@=+xC3_f^tMVA;Uh+pm;6Q#}|Fz!$W zFt%7l9{nyzcLB*9$a^wKsI3sWC>BPpm{uKhQ6^PMgbW){%5#V6*o8pI&~|6|U@4M( zWHPZRnjTwWU~M30ZjYcQkHKjTSFAmbMR=NIBS8* z0`AR#cQF7?2EPG(>^D7HM#B}}1TknhI5ez+?NXD#vqX#wnncTxeV~;g9~pHW=mP%+ zju__Z=;}I>{^#uK>biB( z0p)gXrqeH!l7{3xwW}u3p$s>j3_%;|pAq$*BHyb)@Xv7|F<3BL*TLX45d58IoZUDhl4Q%w zF?>p?1ShD7BiN`5&5ZF7eAW*f8XXUN04T6_U&vteU>3Z|G9R@_K|53tcx&h*&tIaX zVku@C@CTR9Dt1Z-^L`3Y*U1M2t$rjK|OM# z93cNY3B+&)q9uGxmWY)6Xn~j-D~MLYyn}idN>vc((3iog_$Z=oKPZ7z;#Emdyx|U1 zjux(AGekFbm2B23$j1s0U$(P!$aUUnqpoGKhu1n_MJty%;#;31_MxsgUC1 zOhHLh@!DC+ALoXN%%5>1VU%IlI}|Y{Rk203;3kN1N`JoBmjfp8URo* zS^%lcAbrNwhets}ybXk&qikQ5LMe?OD+duwgvqvXWe@iTAOq<>3Y8=)HiS|XK&xnK z*!8Bq5TYpk@%AcI#=xu_WJ|Vk;0NXCOd+_z+H_#7z1qcr*Kt%cp#UY;8#0j#AC?Ev zR0tEfq6JH}K`gD7G@#)qqYYH?p%v>R5ygW#qGubKJ)yF0Is<6fDfC#D6QxpRFxWw$ zZXJDhmN?`|vYtrAP;yEVO)1z%^k*v^-Xz(8$%2_K?PxM(;K#!=FEN-0mwYlwpr#8pCy_G?E% z`ou|8yiAN1h$DY&lsbq~#GPSm0Up2{%8mVJfuF*9K9E7-sK>@#!={ax9(nmSxcHsG z`7v;aJbJWL4U0+I*Mz}{m&)Dz=)u9<&?bb{>D2JT7C1+k`iKJcyCMbvBKFe-GISYz zeW+X%kGle4u%?O@lcUX zIwq6~z}O1$r5MglP=Wo)CAdcdF^ya%rR~uiO6oat1grph)NlY~&<75piBcs5no>zf zOpJn3zN?}`K(z?`F$0XcVu3?NbEWT$yR9KE&hii%z8}A}1lOP87d1j~-;3Rm;HFSN z&I~L_n>R@=kSIVWAY#T<>oZ%Z$6E)q^>o9beUD-N)Hv|FkM7&7rBF<5 zJm})_!b|{~W(rW62|(ed0Ob=PSEg$?-f+1TNJ$!}?&<9YYXl@AF+Rp8p>j$i8;l~} zVcK0uP&vLRRH{(EFKjlzq89r@uIKBGJEBgo@m8;wEHCfjg``GM-`xfM2&mY}zDy_4 zk8^l6IHL27k{KM%ZDBYWZq49W4lqJy#O*9LN@kGBgGR{=GFeQ>`Y@72+xC~lQF4)z zj<*d26i%@HixT0uDKd{5x3MIkLmL~%w1$xsp?eP#yJ#5HGz%;7@&iU7aV{)i4-|XI zk&Bj7g9hedjLM+u6vn6wYHqt>DkIiaV2sKjhwWfz(10`qYJ(gqfeN)f0W!EEn26cc zmMEGNF}!Q=d4a$OGw>L7k;R-Sn)L?nirpVp`p9|^gAGdyEjF& zGSC<^gYo;p>&S@$Ni1d347ej%=G9TKi(S7j0`=SVCD}NJNqxySj$u+? ztl@<#_GJX47gRaX3%r@5B(cgklTeOxmGYnKjLL7+4a6d}uBZ(E8HiRk~0WqmV?%f%=7~;gF?#KZI=UFn<;Oab3 zDxK}4WVf5>7`6VM;0{7XreHMJ$ucGkHAF<6x>4!j21g` zCo6r=kd%+o@*!Sc-=2OV!5$CwK=2r|BDQ9xYVZImG>&?nppIowF@8f-c8;ol-vCqJ z4Ar71qjR#|gi#u2+pgZN9>hpOKL*O6r?B?o&^wawQUH6$#)@cM{6lXF;)MyR239?& z2b@&7TXdFiAA}obB7yigaEEo!*K>C1N(d=NDGfJzQR}eL%U8)`U^N{YCzZtB0|GYb z?A8VJV!#JNDN!_TUBc!Sy-R4|-3_us<1QrRP7FDUI|yFU-KUZhaKFl9EI5nlW1sZnFKgVz&CLQDXC5{t)q)5dwdrh{1G6#?|fj}K%b1D)4m zdf8$2x=*v4-kgh6!VVEBc8|cB#LcsY-1xzUhDu>fI1P5*HGAsS z={!ClJn|VJ*asrpQe3$A;dF36hEt*x*i6yWfa&}$0XUQ?$7k{3g|$j7kQ?z?hMmM8 zgguVWV(~ak8Mfm(LO+0!AKEcL4qjm5zNgV4FxY!E3>wto5QY@ZLqj@7Et5(xPBJ!% z277-E5GV~a5HJJg^;L`*U*Jn6M&tq2>D17${w7QfhH^keKLc-V38G07VUQdBYXy!F zXH<+}xU(*HXA-4Ws^rwLkC-YbB+jH;?aDlcR~33DU7U4b(#3;I1g043vq@*pJqY-S zO`I1}5)$0Tf@7+5#HVNDyqFMzgFqqKz=w}m7AIid$?K!~0IIlwjbL+}H9Tp~Q9x6p zt{ZVF5`sa@4b=myn0TD(W#UAJ3G{pQW_uKL1|cPy#gXo-lH=?_xS$VN8am#A2+s(D z3tSVYLlD4e%OF%Sy8GwM^d3Zq#3+c#VQ_TIKxBhvAY@LjOed7R8A=>tQ{(~}aynU` ztf8E@)-X+&A)2FvhO<%t4ijKL(j!r9q&)}%`5X_Km;pEFw}i*)oiDz=tyMIMN9`;rqSNe*tu~ zzdj5)4qq7TY^ZNY+jj{S#|)85B*TcsfQ10EDajnB032Y}m^lYmkjXHSkdpckXNeCu zp0EPOGSanx+;I7Uss&F-13bo2Pm+!gJOs!bS>WXqkx&_Dcu|cgrGyHC2ef>2T;nNG zY@E_KS#OwSu>~iF422ddfVR+*^d4o0=e+5;r{3H_5C(!6~ zV8)reKuC$BqGxoaRAvIDHAIToJwl06Atw*;sj+i!9}`Mw8s&*?hKdD=5Q)I)Ys4`+ zE%0~?2|dT6ag$@BN&=BctRd@6Csf^;R#6?Whh)&0i%4~dc#ugnI{Fw1#cVs0_XL9@*ta+e$m8V`dX6#R z8Fv$m0b76DbTvXtVZrzTg(Em^>|!s-mh8E+z#_{XuuTOieqZ0XmT zbFy9ArbHCAy17HX<@)NuKD}jkKHtB5^X0tm3H^32d(>&hLH?GHS}itHx4oaXGWMpE zyL)JuU-N<+XZyZ5_{e3x=e_8pzFFJXN_TFw&w8>f>E()hvr83q`9=F4KKGrO_;^N{ z{~6!3HMRMI$?~P8{K8*DI%efowck>Ge3{4iboZC#Wd*)lW*;hh*kWFE`k?i{zu8qa z)bnp36?i4)!a^8VIdw7-qIpcB2{2wdiYi%4Z{b$dmnnPKooBG?&|8QHmWAP#N z%b`D6v{sd#ahX}wZ|#$umN$o$F8DKGTuz(kTTiFVFE0ISUwYN}DZ!OH zhh<9t`tz`}y@#X2t3Nv(8h2#>iwO&g_?Mhg)2^kIpQ_ng`-|7T+4gU~OY_W~<8c4m zN7XsQiz}ZbWWTynA-m{SyEZxO%=~Ttfn8FRqzwMF4wZ@%W2F)lGo_|?H$~Toq@!s` z5BTaqfZrUuF$LH2KRG-%p{A~2Qbxv@X@@h8I+u6dXt92yTg8z#1Go3|w+?lF^WeAoWoYdsTyrHQVMH!v4O5L6pe^=~Rl#!V`IN5yLcDFt$ zYwkGjn5LL^E#YjA%N@xqhZpl&_DI`WJjNm;b))@Wo9R@|>XNEQ78lxyy_SD=AvmLA z)pzmgq3&**OZuofp7xZkdVH>W!Rwsf7dnf>lDqzV^!c*P+S#vjZhqNIz4Ec`p@^Ls zvG>kZkKE-H@_l-Vhi~GDYZX;l)2`KAaZ`M7IHGo4@w~;)ww&KOK%M$HPi_A^?eM+8 zf|_;to!o3n91d=~Tlguw%0YEpg4}eBFqTq?#6$xp;8ShZBKv&*Y^ZS|E!}U)rgm0i z?zqnGAJAuz?bKGb^3E0!eS7We)3%juK%bBMobl=ZG5>k+#8*zwGC%dPGw=0Hc+A0e zVd2!iA%BO*X14fDJXpN${BPH0ZGJZQnrMCgtB${3{b}I6R~s`5%q+UeueBN%G_vqO zo8Xbu8By%Fs+`0QGX_8V>g+EE9&dUgIq>M48_ze)x$05jQF5WjT94ApZn>GRPkxv( zbKbq56K+-A{yxOB>h4ZyVNykQNZEqQXKS-+E2YOi?RVtP-4 z*@N+i$GrVS5LicZ`j^PB>6`V28vHy_DBwuS5VWIcf2{)0UoT#V97gO*S>I#I{Q zM-j5tP}EU#KDa(1GuOag|0JoONDj-}=dkgCT1taI77Wu0;WzLAAASXY)Ml&s9sx~! z?DCTZodp5Oi(jjz=QUgP;rNw*ns+~TVr<5ZTgqSC-0wH0y5)%zx6Yg>v}?Px?e<+; zhK*9>jVeAmKq4tPlIT_@$?X_z|0cVeb#3puZ~f2p`72y@Gs5dc;)e9*4xQE<@LHv= z{p8P-+o}Z@tIm$|NLY{;ou7WC)#D4{GKbj?wg)yxZ23WLcO?Bz$npLEjUKh`M*KJZ z9d^xrmTO-=W01?^X{FsQ*DS9*R^%y6_dM8s{_%uqS#F8>D}Trv=cGEDwEbRc#G1b< zqpV*hB$TdsQ@7%w*Mln+JH8)2ZsWZ8lzwv6-rK(2iZWjhc%YtHXfyNGh;C`eTdu!-s$#Ho zWrr>)&V```NoVJWe$wA_+o5oWfy>j*Oi69y)h_qJ;oDskYk$rQDY>{mZ`J%AsdqOy z2ye9=XaDBd?|1H}7CYrXIWymOQir0wud`OB|B<_+F5nB#vi1v{lOBj7mR{}^v0jyI zM#W8WaU(YO5oo75QJJoXbD;GW^w)~u4}9#F+JwAPs`QOvsLvPhR*yZx5yW~ae zj-8*b*>Z08lS7#$t)6F3P+Onfk+}P?W0%i7OU`{?kn($C%EJj4cAgAhyQt1iSRT9K z>Q8?wW_&*)XRD{xoBM-9=9YvMuRocPbK~edTlY8pzJ=mFUCK}Wwm50xCa0p}CC^GG zZrYZcRTh^J8T9@2@WJI(-`JAMGf%<&NUXVe|-2}~U)d$YyMdmd^vlU0qcBYV4f`UY&Qs>f7Yp zjU6g7_il53*6r7_+pdc1&v*KIhP0G+3{b|T&bThyns{^ExNn;#CSKlH_4UA_CBMsM zN0T0SrsSM!xopcuhhyhHA7xuEmXY_GKP+_>QQj7RJ8>I#3(J)iqD zWNe*zO!DsI>&q^6OWRe_q_F(7>T0*-v;?mW>B+GpySjKjxiRn9@AjWO8kDs0$>y}% z>mIGMNs>QpSCw^T%gH0ZeJf8^@A5eP;?4YNxpyvXUuv6uwMXpv+>+Df@L$ualM!bN zZe%_UX~SmvLK?AWyJo!_$pdNi%d**O2MSn7;WzM!S8AOJ7cl9ca5pHGH;5%8IG^qxi?W z%q(5f!F_CeOhI+)DF>EcKX))}@74|;9amhbiM!k>toT&knNjrjmQ};oTt8Pa;#l9LlWwn5|BlHSwSQH+Yl_0ISEnvKSd(~dSn_9enO3VGde3`0 z?W=wp5{{>;Y<5JeiqCymczcgW_I0tpicB6#$G5JI}4WfiHPJuQ`=t)3v*S3zxp|MfibwmcL85ec*n#N~fV8IGWbG{OvY|(O@((p;`Xo zYb?}j7-TS{$Vl1LC{?0YlP|*dWQkk;uT$st9T&c~4lOnRZus(+ZDM&VQ!X$19PDZ z;RRv?c1_eAE-}HTD4md$%LYPVbEqoZV8sX?4HA9K*>Ox$SjW)nW5`%-9nDaqfFOWV zp!F+@$Jq>fg< z6&V%g)^Q@37Q_H216o%g`&i!}3r(ia0Vs+*)APCr)Y zU1=L@yD-1P+xdRqsaf&oeC%4>b6EJ;%kjIbGak+fir}ZZ;LEvz&3-)A9V^lY zAu!m8fU}^kJTtmfv(tW;)3!!W4}t7j5E3&syf}Az--5xYtom37GtTkI}k0FBFfyf(V%$8Zv zWs?N6nV((jMT*eXSdhbyzGmaeQ*<5{zAE@NGkBq84L9T(-U7jmHgyhdpv3$<_rX{} zM~M(J>MC&?hcg`|ZVAz%>nO1;6#Ual3d$1(Zv+Xe7Cky!?? zl>q?0L{FMUfofEW=CXwppdB^WIcJMi=@YdFIkffrKa)m>nvirXqWc8KB7C3#hIMoJ zX#C75RQito*@gxevW9StABY7MZ%OkV^w-mLFVX=H`!^6Wd4X&Cfmj}|j&L(tOU@pZ zGk(;}K<~UJGVGv|fgM};VDU^iXm-KtQ$jz0p~r|sbAHa~xw#SEnS>PIkV4a~xTGc> zy&K`(5^MkmKl)*SK+D!1lzS(6OaMew5Be%Vw9`Q}K_XD!U^)Z~RSe!;A!`TJ`UCf9 z3Vt{E&<-e==O~4q;dB}pWL<*JaC%A#j0`8sNm|X+r-F!>Kta5SxCF;WQH<{@LO59bsxPF!oOm zr<$qEa6(yGkdtYFL4l|H!#$7wnM(n+?hM?_Aq6-Q+7K%GO)Pw?nP<4^p9xt%sMR!x5{d-;UT|4| zCS|rHon?|(#tG2;jDarW;7@^UsrhZm1#ssQ2S0}75-*C56Np`e)La*-n~)j+y_O3U zF5{?pg^Q*E9|inwjKYO{2$(xfsS6#DDO}h&T;W2x#z7#Hy_UtV314XTb`vT5^%Ulp z5GDB2pQxa>f-3oK9+0lw%%O)??jG*e7yKB?8f zg!Ynxw=|*0gsdlUNlXY4G&-c`4y|^0X0-7v3}<*<1XZ=hgQtuBUyY|8bLRzKnBN(^^Kq6{P&#%=?3%h74VN;#y(hSj_}f}(|#aZ zEYdhR+KK%8{3jB={vjvF$btMl6T#TiP`D@dG<<*%?|Ae=tC69tv80ED$A*@agMUZKKN88cA&3z`}>L2lUI-=0I zc`DG}+W1N(66WhjiuRF=p>={{GhaUL5QKzicGzGGjY%Gn`l_*eIGSogz17%ru^QOV z^;TowAqKLryY*IMHyku*d3vj{%P37X9!Q`GkH^#PsRoU0)JbnO4H{c*22?{Q>jasV zTc{@5)b5Jlz++}!ILGs)ULrQW2xJ?fkD6T=AlbE{IiR`gy_uP*+-9saHKI(*fv STQBn#Jbl#so@#AhoBsm?X%T7w literal 0 HcmV?d00001 diff --git a/Project/Assets/Factory/Box5.prefab b/Project/Assets/Factory/Box5.prefab new file mode 100755 index 00000000..6e50dfde --- /dev/null +++ b/Project/Assets/Factory/Box5.prefab @@ -0,0 +1,332 @@ +{ + "ContainerEntity": { + "Id": "ContainerEntity", + "Name": "Box4", + "Components": { + "EditorDisabledCompositionComponent": { + "$type": "EditorDisabledCompositionComponent", + "Id": 8715409578771130289 + }, + "EditorEntityIconComponent": { + "$type": "EditorEntityIconComponent", + "Id": 8256705382262763300 + }, + "EditorEntitySortComponent": { + "$type": "EditorEntitySortComponent", + "Id": 1541884963070135492, + "Child Entity Order": [ + "Entity_[191891890211650]" + ] + }, + "EditorInspectorComponent": { + "$type": "EditorInspectorComponent", + "Id": 7723945754314690856 + }, + "EditorLockComponent": { + "$type": "EditorLockComponent", + "Id": 12354894372506658654 + }, + "EditorOnlyEntityComponent": { + "$type": "EditorOnlyEntityComponent", + "Id": 9007498808683063333 + }, + "EditorPendingCompositionComponent": { + "$type": "EditorPendingCompositionComponent", + "Id": 14340065101907575651 + }, + "EditorPrefabComponent": { + "$type": "EditorPrefabComponent", + "Id": 3621804511817194472 + }, + "EditorVisibilityComponent": { + "$type": "EditorVisibilityComponent", + "Id": 2622557367775789750 + }, + "TransformComponent": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 4101209608094465705, + "Parent Entity": "" + } + } + }, + "Entities": { + "Entity_[143149087751449]": { + "Id": "Entity_[143149087751449]", + "Name": "VIS", + "Components": { + "AZ::Render::EditorMeshComponent": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 8675883885105925543, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{06FD692F-3EFF-513B-9773-57B2E3B5AE6D}", + "subId": 280320852 + }, + "assetHint": "assets/boxmesh/box5.fbx.azmodel" + } + } + } + }, + "EditorDisabledCompositionComponent": { + "$type": "EditorDisabledCompositionComponent", + "Id": 11839446511482333085 + }, + "EditorEntityIconComponent": { + "$type": "EditorEntityIconComponent", + "Id": 14561066232028838835 + }, + "EditorEntitySortComponent": { + "$type": "EditorEntitySortComponent", + "Id": 7030674297684814699 + }, + "EditorInspectorComponent": { + "$type": "EditorInspectorComponent", + "Id": 13226171051440185542, + "ComponentOrderEntryArray": [ + { + "ComponentId": 8903659711004105110 + }, + { + "ComponentId": 13569015630530104047, + "SortIndex": 1 + }, + { + "ComponentId": 13226171051440185542, + "SortIndex": 2 + }, + { + "ComponentId": 7030674297684814699, + "SortIndex": 3 + }, + { + "ComponentId": 12358938230356911200, + "SortIndex": 4 + }, + { + "ComponentId": 4848749736236174155, + "SortIndex": 5 + }, + { + "ComponentId": 554919628147339253, + "SortIndex": 6 + }, + { + "ComponentId": 14561066232028838835, + "SortIndex": 7 + }, + { + "ComponentId": 11839446511482333085, + "SortIndex": 8 + }, + { + "ComponentId": 8675883885105925543, + "SortIndex": 9 + }, + { + "ComponentId": 7097559180465575381, + "SortIndex": 10 + } + ] + }, + "EditorLockComponent": { + "$type": "EditorLockComponent", + "Id": 4848749736236174155 + }, + "EditorMaterialComponent": { + "$type": "EditorMaterialComponent", + "Id": 7097559180465575381, + "Controller": { + "Configuration": { + "materials": [ + { + "Key": { + "materialSlotStableId": 1773863654 + }, + "Value": { + "MaterialAsset": { + "assetId": { + "guid": "{5468360F-1789-50A3-96FF-118192B81B48}" + }, + "assetHint": "assets/warehouse/materials/mwarehouseboxes.azmaterial" + } + } + }, + { + "Key": { + "materialSlotStableId": 2919702015 + }, + "Value": { + "MaterialAsset": { + "assetId": { + "guid": "{5468360F-1789-50A3-96FF-118192B81B48}" + }, + "assetHint": "assets/warehouse/materials/mwarehouseboxes.azmaterial" + } + } + } + ] + } + } + }, + "EditorOnlyEntityComponent": { + "$type": "EditorOnlyEntityComponent", + "Id": 13569015630530104047 + }, + "EditorPendingCompositionComponent": { + "$type": "EditorPendingCompositionComponent", + "Id": 554919628147339253 + }, + "EditorVisibilityComponent": { + "$type": "EditorVisibilityComponent", + "Id": 12358938230356911200 + }, + "TransformComponent": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 8903659711004105110, + "Parent Entity": "Entity_[191891890211650]", + "Transform Data": { + "Translate": [ + 0.0, + 0.0, + -0.10000000149011612 + ] + } + } + } + }, + "Entity_[191891890211650]": { + "Id": "Entity_[191891890211650]", + "Name": "Box5", + "Components": { + "Component_[13574867754902005040]": { + "$type": "EditorInspectorComponent", + "Id": 13574867754902005040, + "ComponentOrderEntryArray": [ + { + "ComponentId": 16246303725359178974 + }, + { + "ComponentId": 5935093852243013826, + "SortIndex": 1 + }, + { + "ComponentId": 7605271439870430818, + "SortIndex": 2 + }, + { + "ComponentId": 3144205669266579244, + "SortIndex": 3 + }, + { + "ComponentId": 1552691188429355007, + "SortIndex": 4 + }, + { + "ComponentId": 17867042698575286426, + "SortIndex": 5 + } + ] + }, + "Component_[13890549230067286886]": { + "$type": "EditorOnlyEntityComponent", + "Id": 13890549230067286886 + }, + "Component_[14299065573721311548]": { + "$type": "EditorVisibilityComponent", + "Id": 14299065573721311548 + }, + "Component_[16246303725359178974]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 16246303725359178974, + "Parent Entity": "ContainerEntity" + }, + "Component_[17438889026096965443]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 17438889026096965443 + }, + "Component_[2635600976954600347]": { + "$type": "EditorEntitySortComponent", + "Id": 2635600976954600347, + "Child Entity Order": [ + "Entity_[143149087751449]" + ] + }, + "Component_[7619205353932880281]": { + "$type": "EditorLockComponent", + "Id": 7619205353932880281 + }, + "Component_[8458290980975423191]": { + "$type": "EditorEntityIconComponent", + "Id": 8458290980975423191 + }, + "Component_[9483887954899180333]": { + "$type": "EditorPendingCompositionComponent", + "Id": 9483887954899180333 + }, + "EditorColliderComponent": { + "$type": "EditorColliderComponent", + "Id": 17867042698575286426, + "ColliderConfiguration": { + "MaterialSlots": { + "Slots": [ + { + "Name": "Entire object", + "MaterialAsset": { + "assetId": { + "guid": "{7FC39784-D1D8-5D99-B4B3-1EB59CF8EAF6}", + "subId": 1 + }, + "assetHint": "factory/conveyorline/box.physicsmaterial" + } + } + ] + } + }, + "ShapeConfiguration": { + "ShapeType": 1, + "Box": { + "Configuration": [ + 0.30000001192092896, + 0.30000001192092896, + 0.20000000298023224 + ] + } + }, + "DebugDrawSettings": { + "LocallyEnabled": false + } + }, + "EditorRigidBodyComponent": { + "$type": "EditorRigidBodyComponent", + "Id": 1552691188429355007, + "Configuration": { + "entityId": "", + "Compute Mass": false, + "Mass": 0.5, + "Inertia tensor": [ + 0.005416667088866234, + 0.0, + 0.0, + 0.0, + 0.005416667088866234, + 0.0, + 0.0, + 0.0, + 0.0075000012293457985 + ] + } + }, + "EditorTagComponent": { + "$type": "EditorTagComponent", + "Id": 17200051048558680531, + "Tags": [ + "Grippable", + "Box" + ] + } + } + } + } +} \ No newline at end of file diff --git a/Project/Assets/Factory/Objects/PalletWithBarrell.prefab b/Project/Assets/Factory/Objects/PalletWithBarrell.prefab index ea11dad3..bf2902e2 100755 --- a/Project/Assets/Factory/Objects/PalletWithBarrell.prefab +++ b/Project/Assets/Factory/Objects/PalletWithBarrell.prefab @@ -190,7 +190,7 @@ ] }, "Instance_[985462854478322]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", diff --git a/Project/Assets/Factory/Signs/WarningPlates_Restricted.fbx b/Project/Assets/Factory/Signs/WarningPlates_Restricted.fbx index d5901260e692cfd1af52621c62807742fb1c8cc6..b745d96f0f3cf2ed7d2a7178e60e55a3cab2445c 100644 GIT binary patch delta 3591 zcma)9dvudU7SBxDBz+`Jnl^2drb*ML>4TG0}nYnZC{qB6!|rg@0N~%!NkhbkczGj}FQ)en8adk&=;vI_g0*36v1@4F!(4ZO7i=|N$|k`k5Au#WfC>*lQ3_JzCllJiDmZF z-4Ym+Sm{*>2&3#IAEsdc2rP`6LbkxJC_DW!3a&&|5Ch~#I|v8;(beP+up@dZy%`PH zq8p-`V=$g*XB}*ECc%xIQnC@&#Wc|mW8gxJg~Wp<)=666f!Ip&JJ=B0nS4&ld>m|1 zwZ8750nQunpNfTW<(*^|m=$`G3e5@?c^u{|vgtr3KYb%?Q&iIH3b>$XC(Te5-%ehI zb@A==r+D~2zLk_gowA&Q5>6_$@RG8OUShDFWWj<2J+vjHkS;`avYsCw#qqxpr2$RU zP+1~8nxKUWgmpo9K1D-D;n_qRJ(LLVB~}wDY*J-_MP(#yJbGMZgf>+s98?+U7b>`@ zsvyN+N@^v)f~84q^k5QvoMa;@AWd#1KI}EHEV+zsO@{B1Q<*jN3kIzu0j?x#p*AH2 zopA-VhH>NNJlcuqZ#+U{=;ajn+))Ud%n`%{cD0Qxfk)M|$%ojh;k3Gph+&o{6>ORm zG6j*9`1vtg_%%doIHA#yQ#_KUYG`6A?A2&sYHA7zKxgVh^jIpqojQl)fm%C<`n2$q zRtumt(mw~`353@ftS049l~zMWuulVIlY=}upJpV{Ak|GHv#?Kx>3Sn(G(&rIMtVvI zkLvXxL?*^V9~2KDnnvHy!ySDZ9M|Ip4Ax+Us7kLTgYaa!mAnpn(rxt9boe1XpXeaN zFcsf25BAT)4nrY5Vt_M-0+IoWjJb3;1DuX3*pZ>6?`OcFj1~-9Qf4K_y*+c7-pPZ1 zWg6&#OqQ_pN*+j!1@y~2KDTB-o6&*se$H4zj~U@TV-t~sI;)a&!knxod}UwDa?o$H zV7jvyew`%(gDHVb0-MQ!Zg|YpLJykYsHvLXHi0bLMrOjaY!|+4>$98a>1?=|U5P%+ z&6z`1!Y^{_=vO)LK~5(rfr8v7WG%~WriXIjgIot4&xN==JE?~HylS!*R_D#4$MfJ+ zUN0OIOJ^UqPrRr25I6I6+OH}J7K9w+N$%r(16*KmxZ%xjH?TKU;EKntW@sK~E-bVN zNJ#EtLiS=VpTtfd$5ijOmnXr;R^2=y7EQd81T&B%ZQNkM)6MyNl5xbi4x~k-yQ{0C zt7z%@Wg`7sp8urF@9eYX2*!>Wym2k7GG%AGU2)1)uZchE7`rd&zV^7Y885^k=dWTx zd}q~DzsZNgrDY>{iSPxDmB^dp9> zb8t5{Gor~o5WGbD%+PGN(ihFJs@yvA*@TV>b;M1+!2x%_zlX(wnW;u%zS}2qeA2Dt zx^C>$wQl(AVsf%z>M_X+T?Ij{0o00}m|E}c;TCzA?^)|YVw;B(JI_7B-I;&FiTNm; zm?0s8@201*#Wq{u$H{4QYXLiJI)|M76UH#F1kcL!TH6}k3vLwf2QDb&53IBVm-`sS zw6(2=`I;^N4icXyldqh+ymYZhzI%&c>&;}H{;Jk-XK~z_Q%}58yziUE*|$Z_C(i4K zq%*H}-4^bVUsXB3a(})5X8(>ioVR4J>|XIh@ueqre@WK9xL~+mS(kQrVPVss=$od* zmrm|qGOzrXBRh6V4|HB>S8YE@j`nVo{W0R*@(nBB(RC~}3&$!WcQp&=ZCrln$rD|E zU(F@|n&sb*JKukA<@cMf8GCAO7I;@2+<)fqYFpQxXXWFQc1NADZC~-p^?mcRI`(cB zolO%h*6RcvLQl)ui9@o`h+Esjq5@BsiAV5bLx4A>APFfEi8+ns9=n>^C#4E00g0s< zORZ3vvAmEYu~cTM$ov+{PlSA&St$RfttkpBvUnskxQDqxP?jgq)0Vq=dTqj5rg1M% zjYZH=o=+brVqv2ziePVfQA!jR5wX-Kd07P3|lG;bVX3@_Rpz(R17gwvgu`BjeXEfca{e879Z@Jy@%^> zcw|X6bD_Yc!>-*u==FGeU7lXAzq7?R&xduY3csEOgjc>>=@yo-vxvUIDF>~r=+UoB z@UkdNy>w=*Mljm8ua+%|Z8QV~WmddG9IE@B6Pz$GYK4alP8KY|U#xg7SJ6{e&{eAG zEi05)rXX zIEM*<{U6-dUz(cS=6!f&`~R>1{5 zCe$CV=;F*4u~;M=w7OOoj178rN`#V{!Z{94wmCKu-Xgh0kXw-pG4odiyjp>u;sGvw-vgg=Tb-o_Pkd=nXzUzmR$;qF2OP_W6)hc>4($&a z9R|o~<-!H{Z{hN@E6Xb@&$0fisI08KUZACIk99&fh9gEE@o7#DEBQH)AhmWTF6gra zw`M(&4CtGTkVoTA8RwFVT1t}~W$SJh=r+a86ffvJ^5tpX#|6Dcp<_VsV%!=|3bpSv z*caP(wSqgz1!uSCFdO(Mf_<&R{v>W`+i`TD)#wwO47Rujv#UT@f6n^p)7#>$8ykWh ziRshVx0~H&(g@ZxtzT5RXz}`mmGfJJNweFCuV1Ujqi`#25m;x!{Z@g|AQ}RipEMpW zf*zhGKaSirh1$#TJnM&Z{{F!9-#+@#6F-=9@7(v^IA6-KB}!f6EnAURKfiJz{wrT7 zwvQfAd4&)SckDV;3T#QosL?85B$JRkalb&bRnue79(cdK4jPxQE<%T4X%4^WJ}@w? zGgdPYPFSuv48Kn&)D%q`y@nc4ny8rbglxVdV_YC);ofL|(oI52@ukBy#t~iQuM{Ja z_U}SjsVF)8W+)5RyEnVuIunCo{(4b|HV@)aM~-?klm+X(OsE$E0rGMfvwK1zO@DxN zpO7zAgYOgtKCCp3Vpptd$Cl=2_F<9Y%;yXGXvf3|X_D+E>&DSgrbu2TeH2 z^{`ub6bDHQsW*D`R3ur4@ieY`IGGbr4gpLk6-4CNhFCm?s0w~*D%fJ(XX1j$5nNpd-=ZzF>mn}JL862Lqo zXtb&rn4Zhbgu_;|>;VlqlEye5k2O}q)=pnq^>c|jNXFxX-A z$2c@w-LSEHpv6e^9naWLlB>ag2w-}M8eC{_YM`)dxb0S^*Q)BX9>&7t2v@J*_*h$O z4q#Sl_3JM5cr(7Z-s&9cC4eINoXuJfM15emh&Ka~axTCHk?HH(;^BTSFLYsc)*X(7 zlY^G$={8N7G@*=U^|jv$@f=0WHmgG*oG1_U=^=A-!i#Pk8i19~Q*<01+Kr$A_g9D# zCHAGc9`@gPbAGoPgD60U8Q}P_zd-QM;Mc*)v;vdJ;x*xD9=a0AHwp*;Y1iTX>T> zY}|d>xE$pX8Xg_LE8tJ4h$h7^TSRb=irwviWusRpSbBnvxE@WQO`u}ss&knw%4yFF zOOCd2&>ls%UW#a7NTWM}hu^zR01xSCPT+9#A}?9*Ekt>-7v;-^DA##Wo`&9%hg*HX zliRh0C_TCTav@4jZg&c$!}-}Asx^-FKugLTJ$w=-y_E7ST-W*aAi}xb{ZoY?&*mdiNr;PgDy?`x(}d>{Q&Lp0kqB!&G{WuTm@LkaViIB6Eko4mYUOjvC4D<`?CO4U9cm8xETu`>c2l&^h=-F_yzLQC#DvP>reqw=Z)1;vjyASJ z)y7Cl=#Ij~refjK1Js{|?W?K>BS?;iHh@x{4!vYJ^)#^0<)iX!x(D-7dA8h}-c)(4 zYZjLHJmk^`JUP51AC)JEKLZsTW(_X5A`Id7Y%3geL=3|XKBr(dPWaUdo>7-f=E6bS z8w?jaDcCIv8&i@Dw%CCmXoo?iP3*^jW(&wr&6pX+Uypswc0Jl__!?o~%a7q}aIMB# zb{;-_jjKCyVCVx!Cd(7~F?`8VdV01j4nBOz5)h2#nI@NZ!5*Ix?M?RiYMR>$!uXQt zrGhZNgql^Z6yp?1DdvcTG7G}^66%41FusI3Brs=d=@19;7}ujhHPPOPzb;gLhSH1| zh%bSzDFEV2oSy=Og=?sKDH zl4GxD*Cerl-pvCQIPNguz2m|ygck+npA;`#DQ%1!#%I(b_K<3ksgKj_ zdoY`B>ocRh^FUxH*J|C(sDR)LaY;jS=@N@q)+(XL-VG@%+?_%`Q;}2ME!g-8H|v8k z|IcCRQ?Q*t!>v_Bl)s@roJgRXs>No)XSSXS8tcWtBZ-&*eUgpm*lBZYuelKSRox@} z)PPWQ;Mx|;$&Om<-f1s-J05lmJEBsGCvd*FISaa^b{yQ)V?iU8$fumFmG|^od2c`QqjY;if_9hMwDUFfkorhHM+=)DH?;Dci}EV(cJ^#FSV)bwCCOeXxc06%1K8 zpuSqMbi|eVad`G_>svv{(v7&#)+H=##{2b1iyre6BCxy3jkq`B;?VQm5 zd90YDcnl~YEHBBjloRe~IK2WDP>a$iScAz?fq#CV6n-5(D}W8_R78*G@mbzZViGKu z>^Xdvjpty>+m2TX{d{1E9S8cbfys5xyj@^P_4Pu!RFTp=(xeRoF*C|IDPJ#IQvE-G zpoP&uP`lc`>WOdz-;Czb2Z~!M+ptc@07ZQ)!39M68SL5$qA!hDz=i*`!x0vtSSc>& zs7rA=jDch-Zfuj$mHfz{%f|+x#2!eFL6@Tr23?+85}0KuZztE7I|_|PKq!&2l2S;x zjD-WQR>YTM;e448!rzc^B5pO2Sf8%;+H6&9*M!Qhp>DxY^Bv zSxi5N`dDO8F+smKWVENE-w{%2S@!h0RGg!SaA6&*^g7-_gtID?z82saV$KOtrS1Y+vFvkOPJJR%#KK}elmxl1T#C`t|$YvX#1oOb5YHS)DTc++%w(Ud?g zvgHW;!Qp0%M>#agN;ZIie6GYLX5b9^$K&%bmiYfoP#Y8~QPSc5Fd@fOy4(bLwqt!C zh`FNupdhYMOfvozE3$b#s=d)i1inqdv!@HZ@O@P12Y}9oo~6*)ebL$NP~WSy=faJU z%3+423db0+cvuLE`$;Vr0@%SAVmN&vtLqAf4D&j1dHmq;gw;Yf37@m4A8cB9LJMFq z2N_8&A2=EVpF9|%J;oiPvelkbDB}8z?h3X7dE1Lsr zNS?-AiIIbXAOa(kG&<`T3FFy(ZPAy5u3zsp0>?YbpOa2>I~w0} z9@WKn?RCL$DE0`B0;02{-wZJZo|gAv46OY~)8{YAP!y{JY>7?ht5by3`gr@?S@T6d z`2$B`EkLcnRH6ocSg>3xvI|%`HBgkg@f*iJT3yy~_EQZLzHr^Qv~R9?VoCM9sbfZ6b!X9Y)q3Kl z?mb0ide!DDdwP4MzS4`pTiNKeu>l)nE4g@h3|U|M~69o(W&^r{ERuZ$9Uh z!>?bsEBNIXKRf@>8_ys5>gK%%E?9n`Z2#sf-+kn@KW+W{p{;vwJ*0nW_vAyLhLc zWsl`JvLEm47?W`wgX=B4m*IXKE;iL(yq}2s3Aj$ewFmFJ9K4Ke2=y9?oYgagBnzyb z?PRlHS5F^D78p>I1y)ZsSpBiMY!+BGSzz@H0^h+ZEmc9x4D)+VOsp`Gtkn*>RDZ3IQHqn(XGMn+QttY2 z9CMu4rF<*C6f15sHpvO%KvD40ZQF~_t(viS`@ReQ@Qa2iC*LzWTDn&%YlanN)+3~xzJKT6MtA*Q`^x5RZ=QDh#)n^>**u}>nLS&sX_|CwdE%5i-#mHCJ?|G! zUG?z0Cq8v>;*8q27x&e^^7K0;XH?C3 zQ!r6Sc7J21U@Ndw(2&@9*kRZqXm+$pb_#YFYLESz{oIxIIqcvBrybZKq-71&j#4gb z=yGIa`ph-*mE4@<(Pzj>O(YV)S@s8|_z@bw%R)x^N^Eu$VOv#HVO9!b1hUO~tR=1` zU-@~N&uRHWpuP?nb}DtMM;8hzSp9UA+&fFCPJD#}c>+(=+kESNMxT9K8V4gq#LDo;1m9*~>{NISVE1s7bPtbR3e5$Um0 z9Qlsc!>2Cqd#E0ycV2x@Pc_X=z`;uowz^YdH`%-PjM#kH=*W79jEMNgk zD=jWN(beu&fZ6*T+@;Ng_{Uc(kyvr5Yg3B4vbLWVND+P*D)qBq%1$mT`9u z;1vAn))U5tAb+d30aFI9Rcl4|0u>82)j>|&>4((FKnA6RwIEX$3CFsn6qTFqalgjP zZIV%r=ZQjP1=j`Y{+rOj8DfkuLSa3CI8k%`FnB|IdZ5@)3o$J1S2)~4MJ(E@6qyFy+ErTwxVGin^Hf*0T@G#+)6-tupfsrxc&*AN(HDNC{ z_dEE@w&0P&=NiUql3WH{kBkq~fG4j~2F!sfZNM8#4|1xYS^pME)H)~7ug7xx-p9aD zVc+|Ll*+Q*6A`MBoTlosU7SMKysPdOGR&`Rv*o&_r`f8Rj)&1|7b+gE1wzJXci`=# zHQL-v-tFKn+hj)ym!n`uc5)f)ez5;x8tl%N90t4l^#7vsQwAG1Q@wpW5RltoH-Xc_ z2Kyx`m1VGxOGZwE^{)D)W>u@-SfSk(!oy~NBzPZptl-J#rD!LrnG9x|?MELgcryAR z7`2nja=(v^57TnDwkgYo1<~G~~SRW{CxGSYpmf>!d zj8CFAm#5`=if7GF3YFjZfdAGQMes1&{#GT!^{6xBYCrmM*Ne>)(MHrU`OCK2k;CWZ z;L}bnqYWYB!!+8}Sgc@x%lgJzvy|pJ73Zl1j-#6FSnFk+mc1(~=Nws0-p1gGInS@b zgCv)byO2R4@56=pEz9TM*#79PIH!TZzr)GlSu@I$se@0>hAP1lZQ;*&P#ouZa(bN)^T+f^l(Ie!fqw1Ds7@@38+ zy&v+LPl-6{_88>wux6uEWu^VTWz8c;j!7_!k>vM%>HCF?lr1xW5#Rjkje}f@&;rAs z4W%vlCecZ@CCAsQ2IpUwB^$_~C4U!}FH0UN(-%sTPG5u+9(FtzDreTUxUBfavg45= z#nTS%vZI%g!ev^|e7NsZS@FfqU%Q`^e=YxFs%Jbei>YZdUU#u-vTQRxZyl>q$z{e1 zkTJsJ3vcmliFjWNK|Cz^pk#gA@r9=#-+*P1_YpsVbShl?%q3azMcqpuFjCe6dE*PO z8Ocy{p1t17oF{xb!->nB4})Zc#}}T`XGFq3jR*lftobp?`ncl@FFE>Q7G!;-&nunk zc0bS2Gw&1Y%xF~o>Lu~G7(7=Iis}NRaBFQ%pOt8~iT*cdG5cI)y8HGH-rETdw!^{?ZDe|40+}8-*To;|aUz4GmgnT;$vv%zMQwV3e2<>(93?T;@ zwTz21MF)h4vt?T~;8NBqGekMJco$!)M67TT+sj26;xgn9-HKfYT29*CTD0fwX+2$) zvzR>{YPQvKPtIa?q}gmMVOP##_F$eC`yc*_od$Eu7QuF<&9)viXX #include -#include +#include namespace ROS2::Demo { - class GrayscaleCamera : public AZ::Component - , private CameraPostProcessingRequestBus::Handler + , private ROS2Sensors::CameraPostProcessingRequestBus::Handler { public: AZ_COMPONENT(GrayscaleCamera, "{0191e0df-a2df-748a-9ddf-6e1337d8cb73}"); diff --git a/Project/Gem/Source/Scripting/ObjectDetectionComponent.cpp b/Project/Gem/Source/Scripting/ObjectDetectionComponent.cpp index 7b1b682f..60ac004b 100644 --- a/Project/Gem/Source/Scripting/ObjectDetectionComponent.cpp +++ b/Project/Gem/Source/Scripting/ObjectDetectionComponent.cpp @@ -21,7 +21,6 @@ #include #include #include -#include #include namespace ROS2::Demo @@ -76,9 +75,12 @@ namespace ROS2::Demo AZ_Assert(ROS2Interface, "ROS2Interface not available"); auto ROS2Node = ROS2Interface->GetNode(); AZ_Assert(ROS2Node, "ROS2Node not available"); - auto ros2Frame = ROS2::Utils::GetGameOrEditorComponent(GetEntity()); - AZ_Assert(ros2Frame, "Missing ROS2FrameComponent"); - AZStd::string topicName = ros2Frame->GetNamespace() + m_configuration.m_topicConfiguration.m_topic; + AZStd::string namespaceFromFrame; + ROS2::ROS2FrameComponentBus::EventResult(namespaceFromFrame, m_entity->GetId(), &ROS2::ROS2FrameComponentRequests::GetNamespace); + + AZStd::string topicName; + ROS2::ROS2NamesRequestBus::BroadcastResult(topicName, &ROS2::ROS2NamesRequestBus::Events::GetNamespacedName, namespaceFromFrame, m_configuration.m_topicConfiguration.m_topic); + m_topicPublisher = ROS2Node->create_publisher(topicName.c_str(), m_configuration.m_topicConfiguration.GetQoS()); diff --git a/Project/Gem/Source/Scripting/ScriptSpawnLevelComponent.cpp b/Project/Gem/Source/Scripting/ScriptSpawnLevelComponent.cpp index 18c8b9b4..06317b5e 100644 --- a/Project/Gem/Source/Scripting/ScriptSpawnLevelComponent.cpp +++ b/Project/Gem/Source/Scripting/ScriptSpawnLevelComponent.cpp @@ -93,7 +93,7 @@ namespace ROS2::Demo AzFramework::SpawnAllEntitiesOptionalArgs optionalArgs; AzFramework::EntitySpawnTicket ticket(spawnable); // Set the pre-spawn callback to set the name of the root entity to the name of the spawnable - optionalArgs.m_preInsertionCallback = [transform, spawnableName, parent](auto id, auto view) + optionalArgs.m_preInsertionCallback = [transform, spawnableName](auto id, auto view) { if (view.empty()) { @@ -109,16 +109,11 @@ namespace ROS2::Demo AZ_Assert(childEntity, "Invalid child entity"); childEntity->SetName(spawnableName.c_str()); } - auto* transformInterface = root->FindComponent(); transformInterface->SetWorldTM(transform); - if (parent.IsValid()) - { - transformInterface->SetParent(parent); - } }; - optionalArgs.m_completionCallback = [this, spawnableName](auto ticket, auto result) + optionalArgs.m_completionCallback = [this, spawnableName, parent](auto ticket, auto result) { if (!result.empty() && result.size() > 1) { @@ -126,6 +121,15 @@ namespace ROS2::Demo const AZ::Entity* firstChild = *(result.begin() + 1); m_spawnedEntitiesToNames[spawnableName] = firstChild->GetId(); } + + if (parent.IsValid() && !result.empty()) + { + const AZ::Entity* child = *result.begin(); + AZ_Assert(child, "Invalid child entity"); + auto* transformInterface = child->FindComponent(); + transformInterface->SetParent(parent); + } + }; optionalArgs.m_priority = AzFramework::SpawnablePriority_Lowest; diff --git a/Project/Gem/Source/Vision/IdealVisionSystem.cpp b/Project/Gem/Source/Vision/IdealVisionSystem.cpp index 2aa1edfd..4e84a734 100644 --- a/Project/Gem/Source/Vision/IdealVisionSystem.cpp +++ b/Project/Gem/Source/Vision/IdealVisionSystem.cpp @@ -22,9 +22,10 @@ #include #include #include +#include #include -#include - +#include +#include namespace ROS2::Demo { @@ -123,9 +124,13 @@ namespace ROS2::Demo void IdealVisionSystem::Activate() { - ROS2::CameraCalibrationRequestBus::EventResult(m_cameraMatrix, GetEntityId(), &ROS2::CameraCalibrationRequest::GetCameraMatrix); - ROS2::CameraCalibrationRequestBus::EventResult(m_cameraWidth, GetEntityId(), &ROS2::CameraCalibrationRequest::GetWidth); - ROS2::CameraCalibrationRequestBus::EventResult(m_cameraHeight, GetEntityId(), &ROS2::CameraCalibrationRequest::GetHeight); + ROS2Sensors::CameraConfigurationRequestBus::EventResult(m_cameraMatrix, GetEntityId(), &ROS2Sensors::CameraConfigurationRequest::GetCameraMatrix); + int cameraWidth = 0; + ROS2Sensors::CameraConfigurationRequestBus::EventResult(cameraWidth, GetEntityId(), &ROS2Sensors::CameraConfigurationRequest::GetWidth); + m_cameraWidth = static_cast(cameraWidth); + int cameraHeight = 0; + ROS2Sensors::CameraConfigurationRequestBus::EventResult(cameraHeight, GetEntityId(), &ROS2Sensors::CameraConfigurationRequest::GetHeight); + m_cameraHeight = static_cast(cameraHeight); m_frustumPoints = CreateFrustumPoints(m_cameraMatrix, m_cameraWidth, m_cameraHeight, m_configuration.m_maximumDetectionRange); m_cookedMesh = CookFrustumMesh(m_frustumPoints); @@ -141,17 +146,18 @@ namespace ROS2::Demo m_sensorConfiguration.m_publishersConfigurations.size() == 3, "Invalid configuration of publishers for IdealVisionSystem sensor"); const TopicConfiguration& publisherConfig2DDetection = m_sensorConfiguration.m_publishersConfigurations[Detection2DType]; - AZStd::string fullTopic = ROS2Names::GetNamespacedName(GetNamespace(), publisherConfig2DDetection.m_topic); + AZStd::string fullTopic; + ROS2::ROS2NamesRequestBus::BroadcastResult(fullTopic, &ROS2::ROS2NamesRequests::GetNamespacedName, GetNamespace(), publisherConfig2DDetection.m_topic); m_detection2DPublisher = ros2Node->create_publisher(fullTopic.data(), publisherConfig2DDetection.GetQoS()); const TopicConfiguration& publisherConfig3DDetection = m_sensorConfiguration.m_publishersConfigurations[Detection3DType]; - fullTopic = ROS2Names::GetNamespacedName(GetNamespace(), publisherConfig3DDetection.m_topic); + ROS2::ROS2NamesRequestBus::BroadcastResult(fullTopic, &ROS2::ROS2NamesRequests::GetNamespacedName, GetNamespace(), publisherConfig3DDetection.m_topic); m_detection3DPublisher = ros2Node->create_publisher(fullTopic.data(), publisherConfig3DDetection.GetQoS()); const TopicConfiguration& publisherConfigPoseArray = m_sensorConfiguration.m_publishersConfigurations[DetectionPoseArrayType]; - fullTopic = ROS2Names::GetNamespacedName(GetNamespace(), publisherConfigPoseArray.m_topic); + ROS2::ROS2NamesRequestBus::BroadcastResult(fullTopic, &ROS2::ROS2NamesRequests::GetNamespacedName, GetNamespace(), publisherConfigPoseArray.m_topic); m_detectionArrayPublisher = ros2Node->create_publisher(fullTopic.data(), publisherConfigPoseArray.GetQoS()); @@ -242,8 +248,13 @@ namespace ROS2::Demo vision_msgs::msg::Detection3DArray detection3DArray; std_msgs::msg::Header header; - header.frame_id = GetFrameID().c_str(); - header.stamp = ROS2Interface::Get()->GetROSTimestamp(); + + + AZStd::string frameName; + ROS2FrameComponentBus::EventResult(frameName, m_entity->GetId(), &ROS2::ROS2FrameComponentRequests::GetNamespacedFrameID); + + header.frame_id = frameName.c_str(); + header.stamp = ROS2::ROS2ClockInterface::Get()->GetROSTimestamp(); poseArray.header = header; detection3DArray.header = header; @@ -275,18 +286,8 @@ namespace ROS2::Demo AZ::ComponentApplicationBus::BroadcastResult( targetName, &AZ::ComponentApplicationBus::Events::GetEntityName, result.m_entityId); - AZ::Entity* targetEntity = nullptr; - AZ::ComponentApplicationBus::BroadcastResult( - targetEntity, &AZ::ComponentApplicationBus::Events::FindEntity, result.m_entityId); - - AZ_Assert(targetEntity, "IdealVisionSystem result entity not found"); - - auto targetROS2FrameComponent = ROS2::Utils::GetGameOrEditorComponent(targetEntity); AZStd::string frameNamespace = ""; - if (targetROS2FrameComponent) - { - frameNamespace = targetROS2FrameComponent->GetNamespace(); - } + ROS2::ROS2FrameComponentBus::EventResult(frameNamespace, result.m_entityId, &ROS2::ROS2FrameComponentRequests::GetNamespace); AZStd::string targetId = frameNamespace + "/" + targetName; diff --git a/Project/Gem/Source/Vision/IdealVisionSystem.h b/Project/Gem/Source/Vision/IdealVisionSystem.h index 005a6ec3..49bf51ac 100644 --- a/Project/Gem/Source/Vision/IdealVisionSystem.h +++ b/Project/Gem/Source/Vision/IdealVisionSystem.h @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/Project/Levels/DemoLevel1/DemoLevel1.prefab b/Project/Levels/DemoLevel1/DemoLevel1.prefab index 90af2826..e40365d9 100644 --- a/Project/Levels/DemoLevel1/DemoLevel1.prefab +++ b/Project/Levels/DemoLevel1/DemoLevel1.prefab @@ -30,7 +30,8 @@ "Entity_[157997884966234]", "Entity_[1842731393655449]", "Instance_[447351292908083]/ContainerEntity", - "Instance_[46481451049499]/ContainerEntity" + "Instance_[46481451049499]/ContainerEntity", + "Instance_[33076730978615]/ContainerEntity" ] }, "Component_[15230859088967841193]": { @@ -938,10 +939,10 @@ "configuration": { "Spawnable": { "assetId": { - "guid": "{A340D2D4-3D29-5C22-ADC1-FAAF9C2CE30B}", - "subId": 1877876294 + "guid": "{C420DDAB-BCD2-5826-9D8B-45204E56B5CE}", + "subId": 2124516451 }, - "assetHint": "assets/factory/box2.spawnable" + "assetHint": "assets/factory/box5.spawnable" }, "MaxBoxCount": 4, "BoxSpawnInterval": 3.0, @@ -1354,10 +1355,10 @@ "configuration": { "Spawnable": { "assetId": { - "guid": "{A340D2D4-3D29-5C22-ADC1-FAAF9C2CE30B}", - "subId": 1877876294 + "guid": "{C420DDAB-BCD2-5826-9D8B-45204E56B5CE}", + "subId": 2124516451 }, - "assetHint": "assets/factory/box2.spawnable" + "assetHint": "assets/factory/box5.spawnable" }, "MaxBoxCount": 4, "BoxSpawnInterval": 3.0, @@ -1982,10 +1983,10 @@ "configuration": { "Spawnable": { "assetId": { - "guid": "{A340D2D4-3D29-5C22-ADC1-FAAF9C2CE30B}", - "subId": 1877876294 + "guid": "{C420DDAB-BCD2-5826-9D8B-45204E56B5CE}", + "subId": 2124516451 }, - "assetHint": "assets/factory/box2.spawnable" + "assetHint": "assets/factory/box5.spawnable" }, "MaxBoxCount": 4, "BoxSpawnInterval": 3.0, @@ -2166,10 +2167,10 @@ "configuration": { "Spawnable": { "assetId": { - "guid": "{A340D2D4-3D29-5C22-ADC1-FAAF9C2CE30B}", - "subId": 1877876294 + "guid": "{C420DDAB-BCD2-5826-9D8B-45204E56B5CE}", + "subId": 2124516451 }, - "assetHint": "assets/factory/box2.spawnable" + "assetHint": "assets/factory/box5.spawnable" }, "MaxBoxCount": 4, "BoxSpawnInterval": 3.0, @@ -2504,6 +2505,31 @@ } ] }, + "Instance_[33076730978615]": { + "Source": "Assets/Factory/Box5.prefab", + "Patches": [ + { + "op": "replace", + "path": "/ContainerEntity/Components/TransformComponent/Parent Entity", + "value": "../Entity_[1146574390643]" + }, + { + "op": "replace", + "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/0", + "value": -1.976193904876709 + }, + { + "op": "replace", + "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", + "value": 10.68496322631836 + }, + { + "op": "replace", + "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/2", + "value": 7.803696632385254 + } + ] + }, "Instance_[4001389725264]": { "Source": "Assets/Factory/Workstation/CellConveyor.prefab", "Patches": [ @@ -2528,199 +2554,269 @@ "Source": "Assets/Factory/Objects/WarehouseObjects_300m2.prefab", "Patches": [ { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/1", - "value": "Instance_[612481889784870]/ContainerEntity" + "op": "replace", + "path": "/ContainerEntity/Components/TransformComponent/Parent Entity", + "value": "../Entity_[1146574390643]" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/2", - "value": "Instance_[852429577377864]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/18", + "value": "Instance_[547916396091464]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/3", - "value": "Instance_[553267175674918]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/19", + "value": "Instance_[547929280993352]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/4", - "value": "Instance_[731864800744486]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/20", + "value": "Instance_[399263283009608]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/5", - "value": "Instance_[437298763715622]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/21", + "value": "Instance_[399250398107720]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/6", - "value": "Instance_[437272993911846]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/22", + "value": "Instance_[351481771841608]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/7", - "value": "Instance_[437247224108070]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/23", + "value": "Instance_[351468886939720]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/8", - "value": "Instance_[437260109009958]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/24", + "value": "Instance_[399276167911496]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/9", - "value": "Instance_[852399512606792]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/25", + "value": "Instance_[399211743402056]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/10", - "value": "Instance_[612507659588646]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/26", + "value": "Instance_[547877741385800]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/11", - "value": "Instance_[553237110903846]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/27", + "value": "Instance_[323941691872294]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/12", - "value": "Instance_[672117510689830]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/28", + "value": "Instance_[448457838417992]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/13", - "value": "Instance_[553207046132774]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/29", + "value": "Instance_[399224628303944]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/14", - "value": "Instance_[612494774686758]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/30", + "value": "Instance_[698888791513160]/ContainerEntity" }, { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/15", - "value": "Instance_[437285878813734]/ContainerEntity" + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/31", + "value": "Instance_[598107383912520]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/32", + "value": "Instance_[323928806970406]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/33", + "value": "Instance_[399173088696392]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/34", + "value": "Instance_[399185973598280]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/35", + "value": "Instance_[448483608221768]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/36", + "value": "Instance_[448470723319880]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/37", + "value": "Instance_[323915922068518]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/38", + "value": "Instance_[399198858500168]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/39", + "value": "Instance_[351456002037832]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/40", + "value": "Instance_[399160203794504]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/41", + "value": "Instance_[399237513205832]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/42", + "value": "Instance_[397537968252480]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/43", + "value": "Instance_[448483608221768]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/44", + "value": "Instance_[448470723319880]/ContainerEntity" + }, + { + "op": "replace", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/45", + "value": "Instance_[399276167911496]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/18", - "value": "Instance_[547916396091464]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/46", + "value": "Instance_[399160203794504]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/19", - "value": "Instance_[547929280993352]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/47", + "value": "Instance_[448457838417992]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/20", - "value": "Instance_[399263283009608]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/48", + "value": "Instance_[320282437192559]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/21", - "value": "Instance_[399250398107720]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/49", + "value": "Instance_[698888791513160]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/22", - "value": "Instance_[351481771841608]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/50", + "value": "Instance_[399224628303944]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/23", - "value": "Instance_[351468886939720]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/51", + "value": "Instance_[598107383912520]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/24", - "value": "Instance_[399276167911496]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/52", + "value": "Instance_[399198858500168]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/25", - "value": "Instance_[399211743402056]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/53", + "value": "Instance_[547916396091464]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/26", - "value": "Instance_[547877741385800]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/54", + "value": "Instance_[399173088696392]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/27", - "value": "Instance_[323941691872294]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/55", + "value": "Instance_[547877741385800]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/28", - "value": "Instance_[448457838417992]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/56", + "value": "Instance_[351468886939720]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/29", - "value": "Instance_[399224628303944]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/57", + "value": "Instance_[320295322094447]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/30", - "value": "Instance_[698888791513160]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/58", + "value": "Instance_[323915922068518]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/31", - "value": "Instance_[598107383912520]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/59", + "value": "Instance_[399250398107720]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/32", - "value": "Instance_[323928806970406]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/60", + "value": "Instance_[351481771841608]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/33", - "value": "Instance_[399173088696392]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/61", + "value": "Instance_[323941691872294]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/34", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/62", "value": "Instance_[399185973598280]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/35", - "value": "Instance_[448483608221768]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/63", + "value": "Instance_[399211743402056]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/36", - "value": "Instance_[448470723319880]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/64", + "value": "Instance_[399237513205832]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/37", - "value": "Instance_[323915922068518]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/65", + "value": "Instance_[323928806970406]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/38", - "value": "Instance_[399198858500168]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/66", + "value": "Instance_[547929280993352]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/39", + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/67", "value": "Instance_[351456002037832]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/40", - "value": "Instance_[399160203794504]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/68", + "value": "Instance_[399263283009608]/ContainerEntity" }, { "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/41", - "value": "Instance_[399237513205832]/ContainerEntity" + "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/69", + "value": "Instance_[53661239531787]/ContainerEntity" }, { "op": "add", @@ -2740,7 +2836,7 @@ { "op": "add", "path": "/Entities/Entity_[351430232234056]/Components/EditorEntitySortComponent/Child Entity Order/13", - "value": "Instance_[498111955327048]/ContainerEntity" + "value": "" }, { "op": "add", @@ -2757,11 +2853,94 @@ "path": "/Entities/Entity_[372520970666328]/Components/EditorEntitySortComponent/Child Entity Order/26", "value": "Instance_[380064029529126]/ContainerEntity" }, + { + "op": "remove", + "path": "/Entities/Entity_[372529560600920]/Components/EditorEntitySortComponent/Child Entity Order/5" + }, + { + "op": "remove", + "path": "/Entities/Entity_[372598280077656]/Components/EditorEntitySortComponent/Child Entity Order/7" + }, { "op": "add", "path": "/Entities/Entity_[372606870012248]/Components/EditorEntitySortComponent/Child Entity Order/25", "value": "Instance_[792213386220582]/ContainerEntity" }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/1", + "value": "Instance_[612481889784870]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/2", + "value": "Instance_[852429577377864]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/3", + "value": "Instance_[553267175674918]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/4", + "value": "Instance_[731864800744486]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/5", + "value": "Instance_[437298763715622]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/6", + "value": "Instance_[437272993911846]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/7", + "value": "Instance_[437247224108070]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/8", + "value": "Instance_[437260109009958]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/9", + "value": "Instance_[852399512606792]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/10", + "value": "Instance_[612507659588646]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/11", + "value": "Instance_[553237110903846]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/12", + "value": "Instance_[672117510689830]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/13", + "value": "Instance_[553207046132774]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/14", + "value": "Instance_[612494774686758]/ContainerEntity" + }, + { + "op": "add", + "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/15", + "value": "Instance_[437285878813734]/ContainerEntity" + }, { "op": "add", "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/4", @@ -2810,7 +2989,7 @@ { "op": "add", "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/13", - "value": "Instance_[904600545122376]/ContainerEntity" + "value": "" }, { "op": "add", @@ -2842,10 +3021,203 @@ "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/19", "value": "Instance_[380016784888870]/ContainerEntity" }, + { + "op": "remove", + "path": "/Instances/Instance_[102588833340186]" + }, + { + "op": "remove", + "path": "/Instances/Instance_[102597423274778]" + }, { "op": "replace", - "path": "/ContainerEntity/Components/TransformComponent/Parent Entity", - "value": "../Entity_[1146574390643]" + "path": "/Instances/Instance_[233886234173254]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233886234173254]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233881939205958]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233881939205958]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233877644238662]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233877644238662]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233864759336774]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233864759336774]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233813219729222]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233813219729222]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233808924761926]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233808924761926]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233632831102790]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[233632831102790]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[1549978296134]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[1549978296134]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[102601718242074]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[102601718242074]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[102593128307482]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[102593128307482]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", + "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14801240651808]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14801240651808]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14801240651808]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14788355749920]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14788355749920]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14788355749920]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14775470848032]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14775470848032]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14775470848032]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14762585946144]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14762585946144]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14762585946144]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14749701044256]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14749701044256]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14749701044256]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14728226207776]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14728226207776]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14728226207776]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" } ] }, @@ -2976,43 +3348,123 @@ }, { "op": "replace", - "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 + }, + { + "op": "replace", + "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" + }, + { + "op": "replace", + "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 }, { "op": "replace", - "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" }, { "op": "replace", - "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" }, { "op": "replace", - "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 }, { "op": "replace", - "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" }, { "op": "replace", - "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", + "value": "{00000000-0000-0000-0000-000000000000}" }, { "op": "replace", - "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", + "value": 0 }, { "op": "replace", - "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[14793421525127928751]/Controller/Configuration/materials/0/Value/MaterialAsset/assetHint", - "value": "assets/warehouse/materials/mwarehouseprops.azmaterial" + "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", + "value": "" } ] }, @@ -3094,4 +3546,4 @@ ] } } -} +} \ No newline at end of file diff --git a/Project/Prefabs/Features/Lines.prefab b/Project/Prefabs/Features/Lines.prefab index 18a2b9ca..80d7ed2a 100755 --- a/Project/Prefabs/Features/Lines.prefab +++ b/Project/Prefabs/Features/Lines.prefab @@ -3274,4 +3274,4 @@ ] } } -} +} \ No newline at end of file diff --git a/Project/Prefabs/OTTO600/OTTO600WithPallet.prefab b/Project/Prefabs/OTTO600/OTTO600WithPallet.prefab index 69bc4217..c9c8085b 100755 --- a/Project/Prefabs/OTTO600/OTTO600WithPallet.prefab +++ b/Project/Prefabs/OTTO600/OTTO600WithPallet.prefab @@ -414,7 +414,7 @@ ], "TopicConfiguration": { "Type": "std_msgs::msg::Empty", - "Topic": "/object_detector", + "Topic": "object_detector", "QoS": { "Reliability": 1, "Durability": 2, diff --git a/Project/Prefabs/OTTO600/Otto600StandWithPaths.prefab b/Project/Prefabs/OTTO600/Otto600StandWithPaths.prefab index 01fd6a8e..abb8653e 100644 --- a/Project/Prefabs/OTTO600/Otto600StandWithPaths.prefab +++ b/Project/Prefabs/OTTO600/Otto600StandWithPaths.prefab @@ -346,6 +346,10 @@ "Instance_[52986282575201]": { "Source": "OTTO600/Stand/Otto600Stand.prefab", "Patches": [ + { + "op": "remove", + "path": "/Entities/Entity_[3817754087158]/Components/EditorMeshColliderComponent" + }, { "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Parent Entity", @@ -367,8 +371,9 @@ "value": 2.384185791015625e-7 }, { - "op": "remove", - "path": "/Entities/Entity_[3817754087158]/Components/EditorMeshColliderComponent" + "op": "replace", + "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", + "value": -90.0 } ] } diff --git a/Project/Prefabs/ur20_cameras.prefab b/Project/Prefabs/ur20_cameras.prefab index a1bf0430..e6af70f9 100755 --- a/Project/Prefabs/ur20_cameras.prefab +++ b/Project/Prefabs/ur20_cameras.prefab @@ -486,7 +486,7 @@ "Translate": [ -1.213998794555664, 4.76837158203125e-7, - 1.3859866857528687 + 1.3859866857528689 ], "Rotate": [ 180.0, diff --git a/Project/project.json b/Project/project.json index 9bfa2b74..0b9355fd 100644 --- a/Project/project.json +++ b/Project/project.json @@ -19,6 +19,10 @@ "external_subdirectories": [ "Gem", "../engine/o3de-extras/Gems/ROS2", + "../engine/o3de-extras/Gems/ROS2Controllers", + "../engine/o3de-extras/Gems/ROS2RobotImporter", + "../engine/o3de-extras/Gems/SimulationInterfaces", + "../engine/o3de-extras/Gems/ROS2Sensors", "../engine/o3de-extras/Gems/LevelGeoreferencing", "../engine/o3de-extras/Gems/WarehouseAssets", "../engine/o3de-extras/Gems/WarehouseAutomation", @@ -36,14 +40,18 @@ "gem_names": [ "HumanWorker==2.0.0", "OTTORobots==2.0.0", + "OpenParticleSystem", "ROS2>=3.3.0", - "URRobots==2.0.0", - "WarehouseAssets>=2.0.0", - "WarehouseAutomation==2.0.0", - "RobotecWarehouseRacksAssets", + "ROS2Controllers", + "ROS2RobotImporter", + "ROS2ScriptIntegration", + "ROS2Sensors", + "RobotecSmallContainersAssets", "RobotecWarehouseBarriersAndCagesAssets", "RobotecWarehouseForkliftsAssets", - "RobotecSmallContainersAssets", - "ROS2ScriptIntegration" + "RobotecWarehouseRacksAssets", + "URRobots==2.0.0", + "WarehouseAssets>=2.0.0", + "WarehouseAutomation==2.0.0" ] } diff --git a/README.md b/README.md index c7415f0c..634ee132 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ The Gems are open to your contributions! ### ROS 2 packages Make sure to install the necessary ROS 2 packages. ```bash -sudo apt install ros-${ROS_DISTRO}-ackermann-msgs ros-${ROS_DISTRO}-control-toolbox ros-${ROS_DISTRO}-nav-msgs ros-${ROS_DISTRO}-gazebo-msgs ros-${ROS_DISTRO}-vision-msgs ros-${ROS_DISTRO}-ur-msgs ros-${ROS_DISTRO}-moveit-servo ros-${ROS_DISTRO}-moveit-visual-tools ros-${ROS_DISTRO}-moveit ros-${ROS_DISTRO}-pilz-industrial-motion-planner ros-${ROS_DISTRO}-controller-manager ros-${ROS_DISTRO}-ur-client-library ros-${ROS_DISTRO}-nav2-common ros-${ROS_DISTRO}-navigation2 libopencv-dev ros-${ROS_DISTRO}-nav2-map-server +sudo apt install ros-${ROS_DISTRO}-ackermann-msgs ros-${ROS_DISTRO}-control-toolbox ros-${ROS_DISTRO}-nav-msgs ros-${ROS_DISTRO}-gazebo-msgs ros-${ROS_DISTRO}-vision-msgs ros-${ROS_DISTRO}-ur-msgs ros-${ROS_DISTRO}-moveit-servo ros-${ROS_DISTRO}-moveit-visual-tools ros-${ROS_DISTRO}-moveit ros-${ROS_DISTRO}-pilz-industrial-motion-planner ros-${ROS_DISTRO}-controller-manager ros-${ROS_DISTRO}-ur-client-library ros-${ROS_DISTRO}-nav2-common ros-${ROS_DISTRO}-navigation2 libopencv-dev ros-${ROS_DISTRO}-nav2-map-server ros-${ROS_DISTRO}-simulation-interfaces ``` ### Project @@ -186,12 +186,11 @@ To build the game launcher and bundle assets: ```bash cd ${RC2023_WORKDIR}/engine/o3de ./scripts/o3de.sh export-project -es ExportScripts/export_source_built_project.py \ - --project-path ${RC2023_WORKDIR}/ROSCon2023Demo/Project \ - --seedlist ${RC2023_WORKDIR}/ROSCon2023Demo/Project/AssetBundling/SeedLists/demo.seed \ + --project-path ${RC2023_WORKDIR}/Project \ + --seedlist ${RC2023_WORKDIR}/Project/AssetBundling/SeedLists/demo.seed \ --fail-on-asset-errors \ -noserver \ -out ${RC2023_WORKDIR}/ROSCon2023Demo/Project/build/release \ - --build-tools \ --no-unified-launcher ``` The build package is available here: @@ -214,8 +213,8 @@ Please consider copying ROS 2 workspace to the release package. The ROS 2 worksp ```bash # Consider copying ROS 2 workspace -mkdir -p ${RC2023_WORKDIR}/ROSCon2023Demo/Project/build/release/ros2_ws/ -cp -r ${RC2023_WORKDIR}/ROSCon2023Demo/ros2_ws/src ${RC2023_WORKDIR}/ROSCon2023Demo/Project/build/release/ros2_ws/ +mkdir -p ${RC2023_WORKDIR}/Project/build/release/ros2_ws/ +cp -r ${RC2023_WORKDIR}/ros2_ws/src ${RC2023_WORKDIR}/ROSCon2023Demo/Project/build/release/ros2_ws/ ``` To start a released the GameLauncher simply: @@ -325,6 +324,15 @@ Please also refer to the common [Troubleshooting Guide](https://docs.o3de.org/do ## Release notes +### ROSCon2023Demo 4.0.0 for O3DE 2604.x and ROS 2 Jazzy +Changes compared to 3.0.0 +- updated demo the newest available version of O3DE and ROS 2 Gem +- Updated code to new API in ROS 2 Gem and other canonical gems in O3DE 2604. +- made flat copy of UR MoveIt2, to avoid issues with building UR ROS2 Driver +- Updated Nav2 configuration for ROS 2 Jazzy + + + ### ROSCon2023Demo 3.0.0 for O3DE 2505.x Changes compared to 2.0.0 - updated demo the newest available version of O3DE and ROS 2 Gem diff --git a/engine/o3de b/engine/o3de index faeeba43..09ac09d2 160000 --- a/engine/o3de +++ b/engine/o3de @@ -1 +1 @@ -Subproject commit faeeba431d2b22facb020608054ddfb4c66b7224 +Subproject commit 09ac09d262e2afe2a58385c08d584145b7148863 diff --git a/engine/o3de-extras b/engine/o3de-extras index 3d6f4e48..e9c2d0aa 160000 --- a/engine/o3de-extras +++ b/engine/o3de-extras @@ -1 +1 @@ -Subproject commit 3d6f4e485eb126a7af64efa4cb541f2911308a0e +Subproject commit e9c2d0aa0cc36ca797b0acdd9e47824d85a64151 diff --git a/gems/o3de-humanworker-gem b/gems/o3de-humanworker-gem index 25abe695..744488e1 160000 --- a/gems/o3de-humanworker-gem +++ b/gems/o3de-humanworker-gem @@ -1 +1 @@ -Subproject commit 25abe695a1cdc0e0bf02507c855d56aedc486187 +Subproject commit 744488e11a5eb87d72f47bf7d0db605074e9a992 diff --git a/gems/o3de-otto-robots-gem b/gems/o3de-otto-robots-gem index 949bfc5d..78881083 160000 --- a/gems/o3de-otto-robots-gem +++ b/gems/o3de-otto-robots-gem @@ -1 +1 @@ -Subproject commit 949bfc5d11fc8797975542b0042cdc00d6dd8de0 +Subproject commit 788810837e803cd2f5a08b28efd1a715972db534 diff --git a/gems/o3de-ur-robots-gem b/gems/o3de-ur-robots-gem index 33fc9f1f..83b70947 160000 --- a/gems/o3de-ur-robots-gem +++ b/gems/o3de-ur-robots-gem @@ -1 +1 @@ -Subproject commit 33fc9f1f0629d7d8dd5378958dae774434c9334d +Subproject commit 83b70947e4fe5febfde3f5c188ce31131a63e548 diff --git a/gems/robotec-o3de-tools b/gems/robotec-o3de-tools index 741cd276..4811db4f 160000 --- a/gems/robotec-o3de-tools +++ b/gems/robotec-o3de-tools @@ -1 +1 @@ -Subproject commit 741cd276177728a78566d327871ab7e342b83567 +Subproject commit 4811db4f29dde08418e9348fd8a2a6d9ee606322 diff --git a/gems/robotec-warehouse-assets b/gems/robotec-warehouse-assets index 42236163..ab6b54a0 160000 --- a/gems/robotec-warehouse-assets +++ b/gems/robotec-warehouse-assets @@ -1 +1 @@ -Subproject commit 4223616381876126cda8a6a8de6b1e9b0f4bdb1b +Subproject commit ab6b54a0f54cbbe6c3fb0d6aa32af18cf071ee40 diff --git a/ros2_ws/setup_submodules.bash b/ros2_ws/setup_submodules.bash deleted file mode 100755 index 147f47cd..00000000 --- a/ros2_ws/setup_submodules.bash +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -if [ "$ROS_DISTRO" == "iron" ] -then - git submodule init - git submodule update - - cd ./src/Universal_Robots_ROS2_Driver/ - git checkout 129687763140508b4b5cb497b197ce1057defe88 - if [ $? -ne 0 ] - then - echo "Failed to checkout ROS 2 iron branch." - exit 1 - fi -elif [ "$ROS_DISTRO" == "humble" ] -then - # submodule init and update are sufficient for humble - git submodule init - git submodule update - cd ./src/Universal_Robots_ROS2_Driver/ - git checkout humble - if [ $? -ne 0 ] - then - echo "Failed to checkout ROS 2 humble branch." - exit 1 - fi - -elif [ -z "$ROS_DISTRO" ] -then - echo "ROS 2 distribution not found." - exit 1 -else - echo "ROS 2 $ROS_DISTRO is not supported in this project - switch to humble or iron distribution." - exit 1 -fi - -echo "Submodules updated for ROS2 $ROS_DISTRO." -exit 0 diff --git a/ros2_ws/src/Universal_Robots_ROS2_Driver b/ros2_ws/src/Universal_Robots_ROS2_Driver deleted file mode 160000 index f06092e4..00000000 --- a/ros2_ws/src/Universal_Robots_ROS2_Driver +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f06092e4f32ae1d042459cfaaae96b5c0ea1b21d diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml new file mode 100644 index 00000000..3cce78ba --- /dev/null +++ b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml @@ -0,0 +1,262 @@ +robot_spawner_client: + ros__parameters: + robot_name: + robot_namespace: + robot_initial_position: [, , ] + +amcl: + ros__parameters: + use_sim_time: True + alpha1: 0.2 + alpha2: 0.2 + alpha3: 0.2 + alpha4: 0.2 + alpha5: 0.2 + base_frame_id: "/base_link" + beam_skip_distance: 0.5 + beam_skip_error_threshold: 0.9 + beam_skip_threshold: 0.3 + do_beamskip: false + global_frame_id: "map" + map_topic: "map" + lambda_short: 0.1 + laser_likelihood_max_dist: 2.0 + laser_max_range: 100.0 + laser_min_range: -1.0 + laser_model_type: "/likelihood_field" + max_beams: 60 + max_particles: 2000 + min_particles: 500 + odom_frame_id: "/odom" + pf_err: 0.05 + pf_z: 0.99 + recovery_alpha_fast: 0.0 + recovery_alpha_slow: 0.0 + resample_interval: 1 + robot_model_type: "nav2_amcl::DifferentialMotionModel" + save_pose_rate: 0.5 + sigma_hit: 0.2 + tf_broadcast: true + transform_tolerance: 1.0 + update_min_a: 0.2 + update_min_d: 0.25 + z_hit: 0.5 + z_max: 0.05 + z_rand: 0.5 + z_short: 0.05 + scan_topic: scan + set_initial_pose: True + initial_pose: + x: + y: + z: + +bt_navigator: + ros__parameters: + use_sim_time: True + global_frame: map + robot_base_frame: /base_link + odom_topic: odom + bt_loop_duration: 10 + default_server_timeout: 20 + navigators: ["navigate_to_pose", "navigate_through_poses"] + navigate_to_pose: + plugin: "nav2_bt_navigator::NavigateToPoseNavigator" + navigate_through_poses: + plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" + # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: + # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml + # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml + # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. + + + +controller_server: + ros__parameters: + use_sim_time: True + controller_frequency: 20.0 + min_x_velocity_threshold: 0.001 + min_y_velocity_threshold: 0.5 + min_theta_velocity_threshold: 0.001 + progress_checker_plugin: "progress_checker" + goal_checker_plugins: ["goal_checker"] + controller_plugins: ["FollowPath"] + + # Progress checker parameters + progress_checker: + plugin: "nav2_controller::SimpleProgressChecker" + required_movement_radius: 0.5 + movement_time_allowance: 10.0 + # Goal checker parameters + goal_checker: + plugin: "nav2_controller::SimpleGoalChecker" + xy_goal_tolerance: 0.25 + yaw_goal_tolerance: 0.25 + stateful: True + # DWB parameters + FollowPath: + plugin: "dwb_core::DWBLocalPlanner" + debug_trajectory_details: True + min_vel_x: 0.0 + min_vel_y: 0.0 + max_vel_x: 0.26 + max_vel_y: 0.0 + max_vel_theta: 1.0 + min_speed_xy: 0.0 + max_speed_xy: 0.26 + min_speed_theta: 0.0 + acc_lim_x: 2.5 + acc_lim_y: 0.0 + acc_lim_theta: 3.2 + decel_lim_x: -2.5 + decel_lim_y: 0.0 + decel_lim_theta: -3.2 + vx_samples: 20 + vy_samples: 5 + vtheta_samples: 20 + sim_time: 1.7 + linear_granularity: 0.05 + angular_granularity: 0.025 + transform_tolerance: 0.2 + trans_stopped_velocity: 0.25 + short_circuit_trajectory_evaluation: True + stateful: True + critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] + BaseObstacle.scale: 0.02 + PathAlign.scale: 0.0 + GoalAlign.scale: 0.0 + PathDist.scale: 32.0 + GoalDist.scale: 24.0 + RotateToGoal.scale: 32.0 + RotateToGoal.slowing_factor: 5.0 + RotateToGoal.lookahead_time: -1.0 + +local_costmap: + local_costmap: + ros__parameters: + robot_base_frame: "/base_link" + use_sim_time: True + global_frame: /odom + rolling_window: true + width: 3 + height: 3 + resolution: 0.05 + robot_radius: 0.22 + plugins: ["voxel_layer", "inflation_layer"] + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 3.0 + inflation_radius: 0.55 + voxel_layer: + plugin: "nav2_costmap_2d::VoxelLayer" + enabled: True + publish_voxel_map: False + origin_z: 0.0 + z_resolution: 0.05 + z_voxels: 16 + max_obstacle_height: 2.0 + mark_threshold: 0 + observation_sources: scan + scan: + topic: //scan + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + map_subscribe_transient_local: True + always_send_full_costmap: True + +global_costmap: + global_costmap: + ros__parameters: + robot_base_frame: "/base_link" + global_frame: "map" + use_sim_time: True + robot_radius: 0.22 + plugins: ["static_layer", "obstacle_layer", "inflation_layer"] + obstacle_layer: + plugin: "nav2_costmap_2d::ObstacleLayer" + enabled: True + observation_sources: scan + scan: + topic: //scan + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + plugin: "nav2_costmap_2d::StaticLayer" + map_subscribe_transient_local: True + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 3.0 + inflation_radius: 0.55 + always_send_full_costmap: True + +map_server: + ros__parameters: + use_sim_time: True + yaml_filename: "map_warehouse.yaml" + save_map_timeout: 5.0 + frame_id: "map" + +planner_server: + ros__parameters: + use_sim_time: True + planner_plugins: ["GridBased"] + GridBased: + plugin: "nav2_navfn_planner::NavfnPlanner" + tolerance: 0.5 + use_astar: false + allow_unknown: true + +smoother_server: + ros__parameters: + use_sim_time: True + robot_base_frame: "/base_link" + +behavior_server: + ros__parameters: + costmap_topic: local_costmap/costmap_raw + footprint_topic: local_costmap/published_footprint + cycle_frequency: 10.0 + behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] + spin: + plugin: "nav2_behaviors::Spin" + backup: + plugin: "nav2_behaviors::BackUp" + drive_on_heading: + plugin: "nav2_behaviors::DriveOnHeading" + wait: + plugin: "nav2_behaviors::Wait" + global_frame: /odom + robot_base_frame: /base_link + transform_tolerance: 0.1 + use_sim_time: true + simulate_ahead_time: 2.0 + max_rotational_vel: 1.0 + min_rotational_vel: 0.4 + rotational_acc_lim: 3.2 + +robot_state_publisher: + ros__parameters: + use_sim_time: True + +waypoint_follower: + ros__parameters: + loop_rate: 20 + stop_on_failure: false + waypoint_task_executor_plugin: "wait_at_waypoint" + wait_at_waypoint: + plugin: "nav2_waypoint_follower::WaitAtWaypoint" + enabled: True + waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml new file mode 100644 index 00000000..ab31468c --- /dev/null +++ b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml @@ -0,0 +1,252 @@ +amcl: + ros__parameters: + use_sim_time: True + alpha1: 0.2 + alpha2: 0.2 + alpha3: 0.2 + alpha4: 0.2 + alpha5: 0.2 + base_frame_id: "base_link" + beam_skip_distance: 0.5 + beam_skip_error_threshold: 0.9 + beam_skip_threshold: 0.3 + do_beamskip: false + global_frame_id: "map" + map_topic: "map" + lambda_short: 0.1 + laser_likelihood_max_dist: 2.0 + laser_max_range: 100.0 + laser_min_range: -1.0 + laser_model_type: "likelihood_field" + max_beams: 60 + max_particles: 2000 + min_particles: 500 + odom_frame_id: "odom" + pf_err: 0.05 + pf_z: 0.99 + recovery_alpha_fast: 0.0 + recovery_alpha_slow: 0.0 + resample_interval: 1 + robot_model_type: "nav2_amcl::DifferentialMotionModel" + save_pose_rate: 0.5 + sigma_hit: 0.2 + tf_broadcast: true + transform_tolerance: 1.0 + update_min_a: 0.2 + update_min_d: 0.25 + z_hit: 0.5 + z_max: 0.05 + z_rand: 0.5 + z_short: 0.05 + scan_topic: scan + set_initial_pose: False + +bt_navigator: + ros__parameters: + use_sim_time: True + global_frame: map + robot_base_frame: base_link + odom_topic: odom + bt_loop_duration: 10 + default_server_timeout: 20 + navigators: ["navigate_to_pose", "navigate_through_poses"] + navigate_to_pose: + plugin: "nav2_bt_navigator::NavigateToPoseNavigator" + navigate_through_poses: + plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" + # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: + # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml + # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml + # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. + + + +controller_server: + ros__parameters: + use_sim_time: True + controller_frequency: 20.0 + min_x_velocity_threshold: 0.001 + min_y_velocity_threshold: 0.5 + min_theta_velocity_threshold: 0.001 + progress_checker_plugin: "progress_checker" + goal_checker_plugins: ["goal_checker"] + controller_plugins: ["FollowPath"] + + # Progress checker parameters + progress_checker: + plugin: "nav2_controller::SimpleProgressChecker" + required_movement_radius: 0.5 + movement_time_allowance: 10.0 + # Goal checker parameters + goal_checker: + plugin: "nav2_controller::SimpleGoalChecker" + xy_goal_tolerance: 0.25 + yaw_goal_tolerance: 0.25 + stateful: True + # DWB parameters + FollowPath: + plugin: "dwb_core::DWBLocalPlanner" + debug_trajectory_details: True + min_vel_x: 0.0 + min_vel_y: 0.0 + max_vel_x: 0.26 + max_vel_y: 0.0 + max_vel_theta: 1.0 + min_speed_xy: 0.0 + max_speed_xy: 0.26 + min_speed_theta: 0.0 + acc_lim_x: 2.5 + acc_lim_y: 0.0 + acc_lim_theta: 3.2 + decel_lim_x: -2.5 + decel_lim_y: 0.0 + decel_lim_theta: -3.2 + vx_samples: 20 + vy_samples: 5 + vtheta_samples: 20 + sim_time: 1.7 + linear_granularity: 0.05 + angular_granularity: 0.025 + transform_tolerance: 0.2 + trans_stopped_velocity: 0.25 + short_circuit_trajectory_evaluation: True + stateful: True + critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] + BaseObstacle.scale: 0.02 + PathAlign.scale: 0.0 + GoalAlign.scale: 0.0 + PathDist.scale: 32.0 + GoalDist.scale: 24.0 + RotateToGoal.scale: 32.0 + RotateToGoal.slowing_factor: 5.0 + RotateToGoal.lookahead_time: -1.0 + +local_costmap: + local_costmap: + ros__parameters: + robot_base_frame: "base_link" + use_sim_time: True + global_frame: odom + rolling_window: true + width: 3 + height: 3 + resolution: 0.05 + robot_radius: 0.22 + plugins: ["voxel_layer", "inflation_layer"] + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 3.0 + inflation_radius: 0.55 + voxel_layer: + plugin: "nav2_costmap_2d::VoxelLayer" + enabled: True + publish_voxel_map: False + origin_z: 0.0 + z_resolution: 0.05 + z_voxels: 16 + max_obstacle_height: 2.0 + mark_threshold: 0 + observation_sources: scan + scan: + topic: /scan + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + map_subscribe_transient_local: True + always_send_full_costmap: True + +global_costmap: + global_costmap: + ros__parameters: + robot_base_frame: "base_link" + global_frame: "map" + use_sim_time: True + robot_radius: 0.22 + plugins: ["static_layer", "obstacle_layer", "inflation_layer"] + obstacle_layer: + plugin: "nav2_costmap_2d::ObstacleLayer" + enabled: True + observation_sources: scan + scan: + topic: /scan + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + plugin: "nav2_costmap_2d::StaticLayer" + map_subscribe_transient_local: True + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 3.0 + inflation_radius: 0.55 + always_send_full_costmap: True + +map_server: + ros__parameters: + use_sim_time: True + yaml_filename: "map_warehouse.yaml" + save_map_timeout: 5.0 + frame_id: "map" + +planner_server: + ros__parameters: + use_sim_time: True + planner_plugins: ["GridBased"] + GridBased: + plugin: "nav2_navfn_planner::NavfnPlanner" + tolerance: 0.5 + use_astar: false + allow_unknown: true + +smoother_server: + ros__parameters: + use_sim_time: True + robot_base_frame: "base_link" + +behavior_server: + ros__parameters: + costmap_topic: local_costmap/costmap_raw + footprint_topic: local_costmap/published_footprint + cycle_frequency: 10.0 + behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] + spin: + plugin: "nav2_behaviors::Spin" + backup: + plugin: "nav2_behaviors::BackUp" + drive_on_heading: + plugin: "nav2_behaviors::DriveOnHeading" + wait: + plugin: "nav2_behaviors::Wait" + global_frame: odom + robot_base_frame: base_link + transform_tolerance: 0.1 + use_sim_time: true + simulate_ahead_time: 2.0 + max_rotational_vel: 1.0 + min_rotational_vel: 0.4 + rotational_acc_lim: 3.2 + +robot_state_publisher: + ros__parameters: + use_sim_time: True + +waypoint_follower: + ros__parameters: + loop_rate: 20 + stop_on_failure: false + waypoint_task_executor_plugin: "wait_at_waypoint" + wait_at_waypoint: + plugin: "nav2_waypoint_follower::WaitAtWaypoint" + enabled: True + waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml new file mode 100644 index 00000000..2b8d2171 --- /dev/null +++ b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml @@ -0,0 +1,302 @@ +amcl: + ros__parameters: + use_sim_time: True + alpha1: 0.2 + alpha2: 0.2 + alpha3: 0.2 + alpha4: 0.2 + alpha5: 0.2 + base_frame_id: "base_footprint" + beam_skip_distance: 0.5 + beam_skip_error_threshold: 0.9 + beam_skip_threshold: 0.3 + do_beamskip: false + global_frame_id: "map" + lambda_short: 0.1 + laser_likelihood_max_dist: 2.0 + laser_max_range: 100.0 + laser_min_range: -1.0 + laser_model_type: "likelihood_field" + max_beams: 60 + max_particles: 2000 + min_particles: 500 + odom_frame_id: "odom" + pf_err: 0.05 + pf_z: 0.99 + recovery_alpha_fast: 0.0 + recovery_alpha_slow: 0.0 + resample_interval: 1 + robot_model_type: "nav2_amcl::DifferentialMotionModel" + save_pose_rate: 0.5 + sigma_hit: 0.2 + tf_broadcast: true + transform_tolerance: 1.0 + update_min_a: 0.2 + update_min_d: 0.25 + z_hit: 0.5 + z_max: 0.05 + z_rand: 0.5 + z_short: 0.05 + scan_topic: scan + +bt_navigator: + ros__parameters: + use_sim_time: True + global_frame: map + robot_base_frame: base_link + odom_topic: /odom + bt_loop_duration: 10 + default_server_timeout: 20 + navigators: ["navigate_to_pose", "navigate_through_poses"] + navigate_to_pose: + plugin: "nav2_bt_navigator::NavigateToPoseNavigator" + navigate_through_poses: + plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" + # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: + # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml + # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml + # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. + + + +controller_server: + ros__parameters: + use_sim_time: True + controller_frequency: 20.0 + min_x_velocity_threshold: 0.001 + min_y_velocity_threshold: 0.5 + min_theta_velocity_threshold: 0.001 + failure_tolerance: 0.3 + progress_checker_plugin: "progress_checker" + goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker" + controller_plugins: ["FollowPath"] + + # Progress checker parameters + progress_checker: + plugin: "nav2_controller::SimpleProgressChecker" + required_movement_radius: 0.5 + movement_time_allowance: 10.0 + # Goal checker parameters + #precise_goal_checker: + # plugin: "nav2_controller::SimpleGoalChecker" + # xy_goal_tolerance: 0.25 + # yaw_goal_tolerance: 0.25 + # stateful: True + general_goal_checker: + stateful: True + plugin: "nav2_controller::SimpleGoalChecker" + xy_goal_tolerance: 0.25 + yaw_goal_tolerance: 0.25 + # DWB parameters + FollowPath: + plugin: "dwb_core::DWBLocalPlanner" + debug_trajectory_details: True + min_vel_x: 0.0 + min_vel_y: 0.0 + max_vel_x: 0.26 + max_vel_y: 0.0 + max_vel_theta: 1.0 + min_speed_xy: 0.0 + max_speed_xy: 0.26 + min_speed_theta: 0.0 + # Add high threshold velocity for turtlebot 3 issue. + # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75 + acc_lim_x: 2.5 + acc_lim_y: 0.0 + acc_lim_theta: 3.2 + decel_lim_x: -2.5 + decel_lim_y: 0.0 + decel_lim_theta: -3.2 + vx_samples: 20 + vy_samples: 5 + vtheta_samples: 20 + sim_time: 1.7 + linear_granularity: 0.05 + angular_granularity: 0.025 + transform_tolerance: 0.2 + xy_goal_tolerance: 0.25 + trans_stopped_velocity: 0.25 + short_circuit_trajectory_evaluation: True + stateful: True + critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] + BaseObstacle.scale: 0.02 + PathAlign.scale: 32.0 + PathAlign.forward_point_distance: 0.1 + GoalAlign.scale: 24.0 + GoalAlign.forward_point_distance: 0.1 + PathDist.scale: 32.0 + GoalDist.scale: 24.0 + RotateToGoal.scale: 32.0 + RotateToGoal.slowing_factor: 5.0 + RotateToGoal.lookahead_time: -1.0 + +local_costmap: + local_costmap: + ros__parameters: + update_frequency: 5.0 + publish_frequency: 2.0 + global_frame: odom + robot_base_frame: base_link + use_sim_time: True + rolling_window: true + width: 3 + height: 3 + resolution: 0.05 + robot_radius: 0.22 + plugins: ["voxel_layer", "inflation_layer"] + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 3.0 + inflation_radius: 0.55 + voxel_layer: + plugin: "nav2_costmap_2d::VoxelLayer" + enabled: True + publish_voxel_map: True + origin_z: 0.0 + z_resolution: 0.05 + z_voxels: 16 + max_obstacle_height: 2.0 + mark_threshold: 0 + observation_sources: scan + scan: + topic: /scan + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + plugin: "nav2_costmap_2d::StaticLayer" + map_subscribe_transient_local: True + always_send_full_costmap: True + +global_costmap: + global_costmap: + ros__parameters: + width: 50 + height: 50 + update_frequency: 1.0 + publish_frequency: 1.0 + global_frame: map + robot_base_frame: base_link + use_sim_time: True + robot_radius: 0.22 + resolution: 0.05 + track_unknown_space: true + plugins: ["static_layer", "obstacle_layer", "inflation_layer"] + obstacle_layer: + plugin: "nav2_costmap_2d::ObstacleLayer" + enabled: True + observation_sources: scan + scan: + topic: /scan + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + plugin: "nav2_costmap_2d::StaticLayer" + map_subscribe_transient_local: True + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 3.0 + inflation_radius: 0.55 + always_send_full_costmap: True + +map_server: + ros__parameters: + use_sim_time: True + # Overridden in launch by the "map" launch configuration or provided default value. + # To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below. + yaml_filename: "" + +map_saver: + ros__parameters: + use_sim_time: True + save_map_timeout: 5.0 + free_thresh_default: 0.25 + occupied_thresh_default: 0.65 + map_subscribe_transient_local: True + +planner_server: + ros__parameters: + expected_planner_frequency: 20.0 + use_sim_time: True + planner_plugins: ["GridBased"] + GridBased: + plugin: "nav2_navfn_planner::NavfnPlanner" + tolerance: 0.5 + use_astar: false + allow_unknown: true + +smoother_server: + ros__parameters: + use_sim_time: True + smoother_plugins: ["simple_smoother"] + simple_smoother: + plugin: "nav2_smoother::SimpleSmoother" + tolerance: 1.0e-10 + max_its: 1000 + do_refinement: True + +behavior_server: + ros__parameters: + costmap_topic: local_costmap/costmap_raw + footprint_topic: local_costmap/published_footprint + cycle_frequency: 10.0 + behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"] + spin: + plugin: "nav2_behaviors::Spin" + backup: + plugin: "nav2_behaviors::BackUp" + drive_on_heading: + plugin: "nav2_behaviors::DriveOnHeading" + wait: + plugin: "nav2_behaviors::Wait" + assisted_teleop: + plugin: "nav2_behaviors::AssistedTeleop" + global_frame: odom + robot_base_frame: base_link + transform_tolerance: 0.1 + use_sim_time: true + simulate_ahead_time: 2.0 + max_rotational_vel: 1.0 + min_rotational_vel: 0.4 + rotational_acc_lim: 3.2 + +robot_state_publisher: + ros__parameters: + use_sim_time: True + +waypoint_follower: + ros__parameters: + use_sim_time: True + loop_rate: 20 + stop_on_failure: false + waypoint_task_executor_plugin: "wait_at_waypoint" + wait_at_waypoint: + plugin: "nav2_waypoint_follower::WaitAtWaypoint" + enabled: True + waypoint_pause_duration: 200 + +velocity_smoother: + ros__parameters: + use_sim_time: True + smoothing_frequency: 20.0 + scale_velocities: False + feedback: "OPEN_LOOP" + max_velocity: [0.26, 0.0, 1.0] + min_velocity: [-0.26, 0.0, -1.0] + max_accel: [2.5, 0.0, 3.2] + max_decel: [-2.5, 0.0, -3.2] + odom_topic: "odom" + odom_duration: 0.1 + deadband_velocity: [0.0, 0.0, 0.0] + velocity_timeout: 1.0 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml new file mode 100644 index 00000000..5e87383d --- /dev/null +++ b/ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml @@ -0,0 +1,292 @@ +robot_spawner_client: + ros__parameters: + robot_name: + robot_namespace: + robot_initial_position: [, , ] + +amcl: + ros__parameters: + use_sim_time: True + alpha1: 0.2 + alpha2: 0.2 + alpha3: 0.2 + alpha4: 0.2 + alpha5: 0.2 + base_frame_id: "/base_link" + beam_skip_distance: 0.5 + beam_skip_error_threshold: 0.9 + beam_skip_threshold: 0.3 + do_beamskip: false + global_frame_id: "map" + map_topic: "map" + lambda_short: 0.1 + laser_likelihood_max_dist: 2.0 + laser_max_range: 100.0 + laser_min_range: -1.0 + laser_model_type: "/likelihood_field" + max_beams: 60 + max_particles: 2000 + min_particles: 500 + odom_frame_id: "/odom" + pf_err: 0.05 + pf_z: 0.99 + recovery_alpha_fast: 0.0 + recovery_alpha_slow: 0.0 + resample_interval: 1 + robot_model_type: "nav2_amcl::DifferentialMotionModel" + save_pose_rate: 0.5 + sigma_hit: 0.2 + tf_broadcast: true + transform_tolerance: 1.0 + update_min_a: 0.2 + update_min_d: 0.25 + z_hit: 0.5 + z_max: 0.05 + z_rand: 0.5 + z_short: 0.05 + scan_topic: scan + set_initial_pose: True + initial_pose: + x: + y: + z: + +bt_navigator: + ros__parameters: + use_sim_time: True + global_frame: map + robot_base_frame: /base_link + robot_base_frame_blackboard_id: "/base_link" + odom_topic: odom + bt_loop_duration: 10 + default_server_timeout: 20 + # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: + # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml + # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml + # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. + default_nav_through_poses_bt_xml: "" + navigators: ["navigate_to_pose", "navigate_through_poses"] + navigate_to_pose: + plugin: "nav2_bt_navigator::NavigateToPoseNavigator" + navigate_through_poses: + plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" + error_code_names: + - compute_path_error_code + - follow_path_error_code + +controller_server: + ros__parameters: + use_sim_time: True + controller_frequency: 20.0 + min_x_velocity_threshold: 0.001 + min_y_velocity_threshold: 0.5 + min_theta_velocity_threshold: 0.001 + progress_checker_plugin: "progress_checker" + goal_checker_plugins: ["goal_checker"] + controller_plugins: ["FollowPath"] + + # Progress checker parameters + progress_checker: + plugin: "nav2_controller::SimpleProgressChecker" + required_movement_radius: 0.5 + movement_time_allowance: 10.0 + # Goal checker parameters + goal_checker: + plugin: "nav2_controller::SimpleGoalChecker" + xy_goal_tolerance: 0.25 + yaw_goal_tolerance: 0.25 + stateful: True + # DWB parameters + FollowPath: + plugin: "dwb_core::DWBLocalPlanner" + debug_trajectory_details: True + min_vel_x: -0.7 + min_vel_y: 0.0 + max_vel_x: 0.7 + max_vel_y: 0.0 + max_vel_theta: 1.0 + min_speed_xy: 0.0 + max_speed_xy: 1.0 + min_speed_theta: 0.0 + acc_lim_x: 2.5 + acc_lim_y: 0.0 + acc_lim_theta: 3.2 + decel_lim_x: -2.5 + decel_lim_y: 0.0 + decel_lim_theta: -3.2 + vx_samples: 20 + vy_samples: 5 + vtheta_samples: 20 + sim_time: 1.7 + linear_granularity: 0.05 + angular_granularity: 0.025 + transform_tolerance: 0.2 + trans_stopped_velocity: 0.25 + short_circuit_trajectory_evaluation: True + stateful: True + critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] + BaseObstacle.scale: 0.02 + PathAlign.scale: 0.0 + GoalAlign.scale: 0.0 + PathDist.scale: 32.0 + GoalDist.scale: 24.0 + RotateToGoal.scale: 32.0 + RotateToGoal.slowing_factor: 5.0 + RotateToGoal.lookahead_time: -1.0 + +local_costmap: + local_costmap: + ros__parameters: + robot_base_frame: "/base_link" + use_sim_time: True + global_frame: /odom + rolling_window: true + width: 3 + height: 3 + resolution: 0.05 + footprint: "[ [0.96, 0.61], [-0.96, 0.61],[-0.96, -0.61],[0.96, -0.61]]" + plugins: ["voxel_layer", "inflation_layer"] + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 20.0 + inflation_radius: 4. + voxel_layer: + plugin: "nav2_costmap_2d::VoxelLayer" + enabled: True + publish_voxel_map: False + origin_z: 0.0 + z_resolution: 0.05 + z_voxels: 16 + max_obstacle_height: 2.0 + mark_threshold: 0 + observation_sources: scan_front scan_rear + scan_front: + topic: //scan_front + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + scan_rear: + topic: //scan_rear + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + map_subscribe_transient_local: True + always_send_full_costmap: True + +global_costmap: + global_costmap: + ros__parameters: + robot_base_frame: "/base_link" + global_frame: "map" + use_sim_time: True + # robot_radius: 0.22 + footprint: "[ [0.55, 0.35], [-0.55, 0.35],[-0.55, -0.35],[0.55, -0.35]]" + plugins: ["static_layer", "obstacle_layer", "inflation_layer"] + obstacle_layer: + plugin: "nav2_costmap_2d::ObstacleLayer" + enabled: True + observation_sources: scan_front scan_rear + scan_front: + topic: //scan_front + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + scan_rear: + topic: //scan_rear + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + plugin: "nav2_costmap_2d::StaticLayer" + map_subscribe_transient_local: True + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 20.0 + inflation_radius: 5. + always_send_full_costmap: True + +map_server: + ros__parameters: + use_sim_time: True + yaml_filename: "map_warehouse.yaml" + save_map_timeout: 5.0 + frame_id: "map" + +planner_server: + ros__parameters: + use_sim_time: True + planner_plugins: ["GridBased"] + GridBased: + plugin: "nav2_navfn_planner::NavfnPlanner" + tolerance: 0.5 + use_astar: false + allow_unknown: true + + +velocity_smoother: + ros__parameters: + max_velocity: [1.25, 0.0, 1.0] + min_velocity: [-1.25, 0.0, -1.0] + +smoother_server: + ros__parameters: + use_sim_time: True + robot_base_frame: "/base_link" + +behavior_server: + ros__parameters: + costmap_topic: local_costmap/costmap_raw + footprint_topic: local_costmap/published_footprint + cycle_frequency: 10.0 + behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] + spin: + plugin: "nav2_behaviors::Spin" + backup: + plugin: "nav2_behaviors::BackUp" + drive_on_heading: + plugin: "nav2_behaviors::DriveOnHeading" + wait: + plugin: "nav2_behaviors::Wait" + global_frame: /odom + robot_base_frame: /base_link + transform_tolerance: 0.1 + use_sim_time: true + simulate_ahead_time: 2.0 + max_rotational_vel: 1.0 + min_rotational_vel: 0.4 + rotational_acc_lim: 3.2 + +robot_state_publisher: + ros__parameters: + use_sim_time: True + +waypoint_follower: + ros__parameters: + loop_rate: 20 + stop_on_failure: false + waypoint_task_executor_plugin: "wait_at_waypoint" + wait_at_waypoint: + plugin: "nav2_waypoint_follower::WaitAtWaypoint" + enabled: True + waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml new file mode 100644 index 00000000..5dc607ff --- /dev/null +++ b/ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml @@ -0,0 +1,291 @@ +robot_spawner_client: + ros__parameters: + robot_name: + robot_namespace: + robot_initial_position: [, , ] + +amcl: + ros__parameters: + use_sim_time: True + alpha1: 0.2 + alpha2: 0.2 + alpha3: 0.2 + alpha4: 0.2 + alpha5: 0.2 + base_frame_id: "/base_link" + beam_skip_distance: 0.5 + beam_skip_error_threshold: 0.9 + beam_skip_threshold: 0.3 + do_beamskip: false + global_frame_id: "map" + map_topic: "map" + lambda_short: 0.1 + laser_likelihood_max_dist: 2.0 + laser_max_range: 100.0 + laser_min_range: -1.0 + laser_model_type: "/likelihood_field" + max_beams: 60 + max_particles: 2000 + min_particles: 500 + odom_frame_id: "/odom" + pf_err: 0.05 + pf_z: 0.99 + recovery_alpha_fast: 0.0 + recovery_alpha_slow: 0.0 + resample_interval: 1 + robot_model_type: "nav2_amcl::DifferentialMotionModel" + save_pose_rate: 0.5 + sigma_hit: 0.2 + tf_broadcast: true + transform_tolerance: 1.0 + update_min_a: 0.2 + update_min_d: 0.25 + z_hit: 0.5 + z_max: 0.05 + z_rand: 0.5 + z_short: 0.05 + scan_topic: scan + set_initial_pose: True + initial_pose: + x: + y: + z: + +bt_navigator: + ros__parameters: + use_sim_time: True + global_frame: map + robot_base_frame: /base_link + robot_base_frame_blackboard_id: "/base_link" + odom_topic: odom + bt_loop_duration: 10 + default_server_timeout: 20 + # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: + # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml + # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml + # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. + default_nav_through_poses_bt_xml: "" + navigators: ["navigate_to_pose", "navigate_through_poses"] + navigate_to_pose: + plugin: "nav2_bt_navigator::NavigateToPoseNavigator" + navigate_through_poses: + plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" + error_code_names: + - compute_path_error_code + - follow_path_error_code + +controller_server: + ros__parameters: + use_sim_time: True + controller_frequency: 20.0 + min_x_velocity_threshold: 0.001 + min_y_velocity_threshold: 0.5 + min_theta_velocity_threshold: 0.001 + progress_checker_plugin: "progress_checker" + goal_checker_plugins: ["goal_checker"] + controller_plugins: ["FollowPath"] + + # Progress checker parameters + progress_checker: + plugin: "nav2_controller::SimpleProgressChecker" + required_movement_radius: 0.5 + movement_time_allowance: 10.0 + # Goal checker parameters + goal_checker: + plugin: "nav2_controller::SimpleGoalChecker" + xy_goal_tolerance: 0.25 + yaw_goal_tolerance: 0.25 + stateful: True + # DWB parameters + FollowPath: + plugin: "dwb_core::DWBLocalPlanner" + debug_trajectory_details: True + min_vel_x: -0.7 + min_vel_y: 0.0 + max_vel_x: 0.7 + max_vel_y: 0.0 + max_vel_theta: 1.0 + min_speed_xy: 0.0 + max_speed_xy: 1.0 + min_speed_theta: 0.0 + acc_lim_x: 2.5 + acc_lim_y: 0.0 + acc_lim_theta: 3.2 + decel_lim_x: -2.5 + decel_lim_y: 0.0 + decel_lim_theta: -3.2 + vx_samples: 20 + vy_samples: 5 + vtheta_samples: 20 + sim_time: 1.7 + linear_granularity: 0.05 + angular_granularity: 0.025 + transform_tolerance: 0.2 + trans_stopped_velocity: 0.25 + short_circuit_trajectory_evaluation: True + stateful: True + critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] + BaseObstacle.scale: 0.02 + PathAlign.scale: 0.0 + GoalAlign.scale: 0.0 + PathDist.scale: 32.0 + GoalDist.scale: 24.0 + RotateToGoal.scale: 32.0 + RotateToGoal.slowing_factor: 5.0 + RotateToGoal.lookahead_time: -1.0 + +local_costmap: + local_costmap: + ros__parameters: + robot_base_frame: "/base_link" + use_sim_time: True + global_frame: /odom + rolling_window: true + width: 3 + height: 3 + resolution: 0.05 + footprint: "[ [0.55, 0.35], [-0.55, 0.35],[-0.55, -0.35],[0.55, -0.35]]" + plugins: ["voxel_layer", "inflation_layer"] + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 20.0 + inflation_radius: 4. + voxel_layer: + plugin: "nav2_costmap_2d::VoxelLayer" + enabled: True + publish_voxel_map: False + origin_z: 0.0 + z_resolution: 0.05 + z_voxels: 16 + max_obstacle_height: 2.0 + mark_threshold: 0 + observation_sources: scan_front scan_rear + scan_front: + topic: //scan_front + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + scan_rear: + topic: //scan_rear + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + map_subscribe_transient_local: True + always_send_full_costmap: True + +global_costmap: + global_costmap: + ros__parameters: + robot_base_frame: "/base_link" + global_frame: "map" + use_sim_time: True + # robot_radius: 0.22 + footprint: "[ [0.55, 0.35], [-0.55, 0.35],[-0.55, -0.35],[0.55, -0.35]]" + plugins: ["static_layer", "obstacle_layer", "inflation_layer"] + obstacle_layer: + plugin: "nav2_costmap_2d::ObstacleLayer" + enabled: True + observation_sources: scan_front scan_rear + scan_front: + topic: //scan_front + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + scan_rear: + topic: //scan_rear + max_obstacle_height: 2.0 + clearing: True + marking: True + data_type: "LaserScan" + raytrace_max_range: 3.0 + raytrace_min_range: 0.0 + obstacle_max_range: 2.5 + obstacle_min_range: 0.0 + static_layer: + plugin: "nav2_costmap_2d::StaticLayer" + map_subscribe_transient_local: True + inflation_layer: + plugin: "nav2_costmap_2d::InflationLayer" + cost_scaling_factor: 20.0 + inflation_radius: 5. + always_send_full_costmap: True + +map_server: + ros__parameters: + use_sim_time: True + yaml_filename: "map_warehouse.yaml" + save_map_timeout: 5.0 + frame_id: "map" + +planner_server: + ros__parameters: + use_sim_time: True + planner_plugins: ["GridBased"] + GridBased: + plugin: "nav2_navfn_planner::NavfnPlanner" + tolerance: 0.5 + use_astar: false + allow_unknown: true + +smoother_server: + ros__parameters: + use_sim_time: True + robot_base_frame: "/base_link" + +velocity_smoother: + ros__parameters: + max_velocity: [1.25, 0.0, 1.0] + min_velocity: [-1.25, 0.0, -1.0] + +behavior_server: + ros__parameters: + costmap_topic: local_costmap/costmap_raw + footprint_topic: local_costmap/published_footprint + cycle_frequency: 10.0 + behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] + spin: + plugin: "nav2_behaviors::Spin" + backup: + plugin: "nav2_behaviors::BackUp" + drive_on_heading: + plugin: "nav2_behaviors::DriveOnHeading" + wait: + plugin: "nav2_behaviors::Wait" + global_frame: /odom + robot_base_frame: /base_link + transform_tolerance: 0.1 + use_sim_time: true + simulate_ahead_time: 2.0 + max_rotational_vel: 1.0 + min_rotational_vel: 0.4 + rotational_acc_lim: 3.2 + +robot_state_publisher: + ros__parameters: + use_sim_time: True + +waypoint_follower: + ros__parameters: + loop_rate: 20 + stop_on_failure: false + waypoint_task_executor_plugin: "wait_at_waypoint" + wait_at_waypoint: + plugin: "nav2_waypoint_follower::WaitAtWaypoint" + enabled: True + waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/setup.py b/ros2_ws/src/otto_fleet_nav/setup.py index 63e0ca67..baa447a2 100644 --- a/ros2_ws/src/otto_fleet_nav/setup.py +++ b/ros2_ws/src/otto_fleet_nav/setup.py @@ -17,6 +17,7 @@ (os.path.join('share', package_name, 'maps'), glob(os.path.join('maps', '*.yaml'))), (os.path.join('share', package_name, 'params', 'iron'), glob(os.path.join('params', 'iron', '*.yaml'))), (os.path.join('share', package_name, 'params', 'humble'), glob(os.path.join('params', 'humble', '*.yaml'))), + (os.path.join('share', package_name, 'params', 'jazzy'), glob(os.path.join('params', 'jazzy', '*.yaml'))), (os.path.join('share', package_name, 'rviz'), glob(os.path.join('rviz', '*.rviz'))), (os.path.join('share', package_name, 'config'), glob(os.path.join('config', '*.yaml'))), (os.path.join('share', package_name, 'behaviour_trees'), glob(os.path.join('behaviour_trees', '*.xml'))) diff --git a/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml b/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml index c30edfc1..952af90a 100644 --- a/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml +++ b/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml @@ -42,17 +42,17 @@ fleet: arms: - namespace: ur1 - num_of_boxes: 18 + num_of_boxes: 12 launch_rviz: false - namespace: ur2 - num_of_boxes: 18 + num_of_boxes: 12 launch_rviz: false - namespace: ur3 - num_of_boxes: 18 + num_of_boxes: 12 launch_rviz: false - namespace: ur4 - num_of_boxes: 18 + num_of_boxes: 12 launch_rviz: false \ No newline at end of file diff --git a/ros2_ws/src/ur_moveit_config/CHANGELOG.rst b/ros2_ws/src/ur_moveit_config/CHANGELOG.rst new file mode 100644 index 00000000..12234f56 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/CHANGELOG.rst @@ -0,0 +1,108 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package ur_moveit_config +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +2.5.2 (2025-01-21) +------------------ +* ur_moveit_config: Do not change default controller when using fake hardware (`#1237 `_) +* Contributors: Felix Exner + +2.5.1 (2024-12-21) +------------------ + +2.5.0 (2024-12-18) +------------------ +* Update package maintainers (backport of `#1203 `_) +* Contributors: mergify[bot] + +2.2.16 (2024-10-28) +------------------- +* Properly handle use_sim_time (`#1146 `_) (`#1159 `_) +* Disable execution_duration_monitoring by default (`#1133 `_) +* Added option to publish SRDF file. +* Contributors: Felix Exner, mergify[bot], v-marsh + +2.2.15 (2024-07-26) +------------------- + +2.2.14 (2024-07-01) +------------------- + +2.2.13 (2024-06-17) +------------------- +* Add servo node config to disable advertising /get_planning_scene (backport of `#990 `_) +* Contributors: Ruddick Lawrence + +2.2.12 (2024-05-16) +------------------- +* Define default maximum accelerations for MoveIt (backport of `#645 `_) +* Fix multi-line strings in DeclareLaunchArgument (`#948 `_) +* Contributors: Robert Wilbrandt, Matthijs van der Burgh + +2.2.11 (2024-04-08) +------------------- +* Add UR30 support (`#930 `_) +* Contributors: Felix Exner, Vincenzo Di Pentima + +2.2.10 (2024-01-03) +------------------- + +2.2.9 (2023-09-22) +------------------ +* Added support for UR20 (`#805 `_) +* Contributors: mergify[bot], Felix Exner + +2.2.8 (2023-06-26) +------------------ + +2.2.7 (2023-06-02) +------------------ +* Update linters & checkers (backport `#426 `_) (`#556 `_) +* Contributors: mergify[bot], Felix Exner + +2.2.6 (2022-11-28) +------------------ + +2.2.5 (2022-11-19) +------------------ + +2.2.4 (2022-10-07) +------------------ +* Fix selecting the right controller given fake_hw + This was falsely introduced earlier. This is a working version. +* add ur_moveit.launch.py parameter to use working controller when using fake hardware (`#464 `_) + add script parameter to use correct controller when using fake hardware +* Contributors: Felix Exner, adverley + +2.2.3 (2022-07-27) +------------------ + +2.2.2 (2022-07-19) +------------------ +* Made sure all past maintainers are listed as authors (`#429 `_) +* Contributors: Felix Exner + +2.2.1 (2022-06-27) +------------------ +* Remove non-required dependency from CMakeLists (`#414 `_) +* Contributors: Felix Exner + +2.2.0 (2022-06-20) +------------------ +* Updated package maintainers +* Prepare for humble (`#394 `_) +* Update dependencies on all packages (`#391 `_) +* Replace warehouse_ros_mongo with warehouse_ros_sqlite (`#362 `_) +* Add missing dep to warehouse_ros_mongo (`#352 `_) +* Update license to BSD-3-Clause (`#277 `_) +* Correct loading kinematics parameters from yaml (`#308 `_) +* Update MoveIt file for working with simulation. (`#278 `_) +* Changing default controller in MoveIt config. (`#288 `_) +* Move Servo launching into the main MoveIt launch file. Make it optional. (`#239 `_) +* Joint limits parameters for Moveit planning (`#187 `_) +* Update Servo parameters, for smooth motion (`#188 `_) +* Enabling velocity mode (`#146 `_) +* Remove obsolete and unused files and packages. (`#80 `_) +* Review CI by correcting the configurations (`#71 `_) +* Add support for gpios, update MoveIt and ros2_control launching (`#66 `_) +* Contributors: AndyZe, Denis Štogl, Felix Exner, livanov93, Robert Wilbrandt diff --git a/ros2_ws/src/ur_moveit_config/CMakeLists.txt b/ros2_ws/src/ur_moveit_config/CMakeLists.txt new file mode 100644 index 00000000..e47ea764 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.5) +project(ur_moveit_config) + +find_package(ament_cmake REQUIRED) +find_package(ament_cmake_python REQUIRED) + +install(DIRECTORY config launch rviz srdf + DESTINATION share/${PROJECT_NAME} +) + +# Install Python modules +ament_python_install_package(${PROJECT_NAME}) +ament_python_install_module(${PROJECT_NAME}/launch_common.py) + +ament_package() diff --git a/ros2_ws/src/ur_moveit_config/config/controllers.yaml b/ros2_ws/src/ur_moveit_config/config/controllers.yaml new file mode 100644 index 00000000..784ebd31 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/config/controllers.yaml @@ -0,0 +1,29 @@ +controller_names: + - scaled_joint_trajectory_controller + - joint_trajectory_controller + + +scaled_joint_trajectory_controller: + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: true + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + + +joint_trajectory_controller: + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: false + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint diff --git a/ros2_ws/src/ur_moveit_config/config/joint_limits.yaml b/ros2_ws/src/ur_moveit_config/config/joint_limits.yaml new file mode 100644 index 00000000..dc216949 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/config/joint_limits.yaml @@ -0,0 +1,25 @@ +# These limits are used by MoveIt and augment/override the definitions in ur_description. +# +# While the robot does not inherently have any limits on joint accelerations (only on torques), +# MoveIt needs them for time parametrization. They were chosen conservatively to work in most use +# cases. For specific applications, higher values might lead to better execution performance. + +joint_limits: + shoulder_pan_joint: + has_acceleration_limits: true + max_acceleration: 5.0 + shoulder_lift_joint: + has_acceleration_limits: true + max_acceleration: 5.0 + elbow_joint: + has_acceleration_limits: true + max_acceleration: 5.0 + wrist_1_joint: + has_acceleration_limits: true + max_acceleration: 5.0 + wrist_2_joint: + has_acceleration_limits: true + max_acceleration: 5.0 + wrist_3_joint: + has_acceleration_limits: true + max_acceleration: 5.0 diff --git a/ros2_ws/src/ur_moveit_config/config/kinematics.yaml b/ros2_ws/src/ur_moveit_config/config/kinematics.yaml new file mode 100644 index 00000000..af3d30e8 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/config/kinematics.yaml @@ -0,0 +1,8 @@ +/**: + ros__parameters: + robot_description_kinematics: + ur_manipulator: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.005 + kinematics_solver_attempts: 3 diff --git a/ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml b/ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml new file mode 100644 index 00000000..4dcc7a77 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml @@ -0,0 +1,70 @@ +planner_configs: + SBLkConfigDefault: + type: geometric::SBL + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + ESTkConfigDefault: + type: geometric::EST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + LBKPIECEkConfigDefault: + type: geometric::LBKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + BKPIECEkConfigDefault: + type: geometric::BKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + KPIECEkConfigDefault: + type: geometric::KPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.] + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + RRTkConfigDefault: + type: geometric::RRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + RRTConnectkConfigDefault: + type: geometric::RRTConnect + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + RRTstarkConfigDefault: + type: geometric::RRTstar + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1 + TRRTkConfigDefault: + type: geometric::TRRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + max_states_failed: 10 # when to start increasing temp. default: 10 + temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0 + min_temperature: 10e-10 # lower limit of temp change. default: 10e-10 + init_temperature: 10e-6 # initial temperature. default: 10e-6 + frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() + frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 + k_constant: 0.0 # value used to normalize expression. default: 0.0 set in setup() + PRMkConfigDefault: + type: geometric::PRM + max_nearest_neighbors: 10 # use k nearest neighbors. default: 10 + PRMstarkConfigDefault: + type: geometric::PRMstar +ur_manipulator: + planner_configs: + - SBLkConfigDefault + - ESTkConfigDefault + - LBKPIECEkConfigDefault + - BKPIECEkConfigDefault + - KPIECEkConfigDefault + - RRTkConfigDefault + - RRTConnectkConfigDefault + - RRTstarkConfigDefault + - TRRTkConfigDefault + - PRMkConfigDefault + - PRMstarkConfigDefault + ##Note: commenting the following line lets moveit chose RRTConnect as default planner rather than LBKPIECE + #projection_evaluator: joints(shoulder_pan_joint,shoulder_lift_joint) + longest_valid_segment_fraction: 0.01 diff --git a/ros2_ws/src/ur_moveit_config/config/ur_servo.yaml b/ros2_ws/src/ur_moveit_config/config/ur_servo.yaml new file mode 100644 index 00000000..3b1b0ba1 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/config/ur_servo.yaml @@ -0,0 +1,82 @@ +############################################### +# Modify all parameters related to servoing here +############################################### +use_gazebo: false # Whether the robot is started in a Gazebo simulation environment + +## Properties of incoming commands +command_in_type: "speed_units" # "unitless"> in the range [-1:1], as if from joystick. "speed_units"> cmds are in m/s and rad/s +scale: + # Scale parameters are only used if command_in_type=="unitless" + linear: 0.6 # Max linear velocity. Meters per publish_period. Unit is [m/s]. Only used for Cartesian commands. + rotational: 0.3 # Max angular velocity. Rads per publish_period. Unit is [rad/s]. Only used for Cartesian commands. + # Max joint angular/linear velocity. Rads or Meters per publish period. Only used for joint commands on joint_command_in_topic. + joint: 0.01 +# This is a fudge factor to account for any latency in the system, e.g. network latency or poor low-level +# controller performance. It essentially increases the timestep when calculating the target pose, to move the target +# pose farther away. [seconds] +system_latency_compensation: 0.04 + +## Properties of outgoing commands +publish_period: 0.004 # 1/Nominal publish rate [seconds] +low_latency_mode: false # Set this to true to publish as soon as an incoming Twist command is received (publish_period is ignored) + +# What type of topic does your robot driver expect? +# Currently supported are std_msgs/Float64MultiArray or trajectory_msgs/JointTrajectory +command_out_type: std_msgs/Float64MultiArray + +# What to publish? Can save some bandwidth as most robots only require positions or velocities +publish_joint_positions: true +publish_joint_velocities: false +publish_joint_accelerations: false + +## Plugins for smoothing outgoing commands +smoothing_filter_plugin_name: "online_signal_smoothing::ButterworthFilterPlugin" + +# If is_primary_planning_scene_monitor is set to true, the Servo server's PlanningScene advertises the /get_planning_scene service, +# which other nodes can use as a source for information about the planning environment. +# NOTE: If a different node in your system is responsible for the "primary" planning scene instance (e.g. the MoveGroup node), +# then is_primary_planning_scene_monitor needs to be set to false. +is_primary_planning_scene_monitor: false + +## Incoming Joint State properties +low_pass_filter_coeff: 10.0 # Larger --> trust the filtered data more, trust the measurements less. + +## MoveIt properties +move_group_name: ur_manipulator # Often 'manipulator' or 'arm' +planning_frame: base_link # The MoveIt planning frame. Often 'base_link' or 'world' + +## Other frames +ee_frame_name: tool0 # The name of the end effector link, used to return the EE pose +robot_link_command_frame: tool0 # commands must be given in the frame of a robot link. Usually either the base or end effector + +## Stopping behaviour +incoming_command_timeout: 0.1 # Stop servoing if X seconds elapse without a new command +# If 0, republish commands forever even if the robot is stationary. Otherwise, specify num. to publish. +# Important because ROS may drop some messages and we need the robot to halt reliably. +num_outgoing_halt_msgs_to_publish: 4 + +## Configure handling of singularities and joint limits +lower_singularity_threshold: 100.0 # Start decelerating when the condition number hits this (close to singularity) +hard_stop_singularity_threshold: 200.0 # Stop when the condition number hits this +joint_limit_margin: 0.1 # added as a buffer to joint limits [radians]. If moving quickly, make this larger. + +## Topic names +cartesian_command_in_topic: ~/delta_twist_cmds # Topic for incoming Cartesian twist commands +joint_command_in_topic: ~/delta_joint_cmds # Topic for incoming joint angle commands +joint_topic: /joint_states +status_topic: ~/status # Publish status to this topic +command_out_topic: /forward_position_controller/commands # Publish outgoing commands here + +## Collision checking for the entire robot body +check_collisions: true # Check collisions? +collision_check_rate: 5.0 # [Hz] Collision-checking can easily bog down a CPU if done too often. +# Two collision check algorithms are available: +# "threshold_distance" begins slowing down when nearer than a specified distance. Good if you want to tune collision thresholds manually. +# "stop_distance" stops if a collision is nearer than the worst-case stopping distance and the distance is decreasing. Requires joint acceleration limits +collision_check_type: threshold_distance +# Parameters for "threshold_distance"-type collision checking +self_collision_proximity_threshold: 0.01 # Start decelerating when a self-collision is this far [m] +scene_collision_proximity_threshold: 0.02 # Start decelerating when a scene collision is this far [m] +# Parameters for "stop_distance"-type collision checking +collision_distance_safety_factor: 1000.0 # Must be >= 1. A large safety factor is recommended to account for latency +min_allowable_collision_distance: 0.01 # Stop if a collision is closer than this [m] diff --git a/ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py b/ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py new file mode 100644 index 00000000..3ceb5558 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py @@ -0,0 +1,382 @@ +# Copyright (c) 2021 PickNik, Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of the {copyright_holder} nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# +# Author: Denis Stogl + +import os + +from launch_ros.actions import Node +from launch_ros.substitutions import FindPackageShare +from ur_moveit_config.launch_common import load_yaml + +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument, OpaqueFunction +from launch.conditions import IfCondition +from launch.substitutions import ( + Command, + FindExecutable, + LaunchConfiguration, + PathJoinSubstitution, +) + + +def launch_setup(context, *args, **kwargs): + + # Initialize Arguments + ur_type = LaunchConfiguration("ur_type") + safety_limits = LaunchConfiguration("safety_limits") + safety_pos_margin = LaunchConfiguration("safety_pos_margin") + safety_k_position = LaunchConfiguration("safety_k_position") + # General arguments + description_package = LaunchConfiguration("description_package") + description_file = LaunchConfiguration("description_file") + _publish_robot_description_semantic = LaunchConfiguration("publish_robot_description_semantic") + moveit_config_package = LaunchConfiguration("moveit_config_package") + moveit_joint_limits_file = LaunchConfiguration("moveit_joint_limits_file") + moveit_config_file = LaunchConfiguration("moveit_config_file") + warehouse_sqlite_path = LaunchConfiguration("warehouse_sqlite_path") + prefix = LaunchConfiguration("prefix") + use_sim_time = LaunchConfiguration("use_sim_time") + launch_rviz = LaunchConfiguration("launch_rviz") + launch_servo = LaunchConfiguration("launch_servo") + + joint_limit_params = PathJoinSubstitution( + [FindPackageShare(description_package), "config", ur_type, "joint_limits.yaml"] + ) + kinematics_params = PathJoinSubstitution( + [FindPackageShare(description_package), "config", ur_type, "default_kinematics.yaml"] + ) + physical_params = PathJoinSubstitution( + [FindPackageShare(description_package), "config", ur_type, "physical_parameters.yaml"] + ) + visual_params = PathJoinSubstitution( + [FindPackageShare(description_package), "config", ur_type, "visual_parameters.yaml"] + ) + + robot_description_content = Command( + [ + PathJoinSubstitution([FindExecutable(name="xacro")]), + " ", + PathJoinSubstitution([FindPackageShare(description_package), "urdf", description_file]), + " ", + "robot_ip:=xxx.yyy.zzz.www", + " ", + "joint_limit_params:=", + joint_limit_params, + " ", + "kinematics_params:=", + kinematics_params, + " ", + "physical_params:=", + physical_params, + " ", + "visual_params:=", + visual_params, + " ", + "safety_limits:=", + safety_limits, + " ", + "safety_pos_margin:=", + safety_pos_margin, + " ", + "safety_k_position:=", + safety_k_position, + " ", + "name:=", + "ur", + " ", + "ur_type:=", + ur_type, + " ", + "script_filename:=ros_control.urscript", + " ", + "input_recipe_filename:=rtde_input_recipe.txt", + " ", + "output_recipe_filename:=rtde_output_recipe.txt", + " ", + "prefix:=", + prefix, + " ", + ] + ) + robot_description = {"robot_description": robot_description_content} + + # MoveIt Configuration + robot_description_semantic_content = Command( + [ + PathJoinSubstitution([FindExecutable(name="xacro")]), + " ", + PathJoinSubstitution( + [FindPackageShare(moveit_config_package), "srdf", moveit_config_file] + ), + " ", + "name:=", + # Also ur_type parameter could be used but then the planning group names in yaml + # configs has to be updated! + "ur", + " ", + "prefix:=", + prefix, + " ", + ] + ) + robot_description_semantic = {"robot_description_semantic": robot_description_semantic_content} + + publish_robot_description_semantic = { + "publish_robot_description_semantic": _publish_robot_description_semantic + } + + robot_description_kinematics = PathJoinSubstitution( + [FindPackageShare(moveit_config_package), "config", "kinematics.yaml"] + ) + + robot_description_planning = { + "robot_description_planning": load_yaml( + str(moveit_config_package.perform(context)), + os.path.join("config", str(moveit_joint_limits_file.perform(context))), + ) + } + + # Planning Configuration + ompl_planning_pipeline_config = { + "move_group": { + "planning_plugin": "ompl_interface/OMPLPlanner", + "request_adapters": """default_planner_request_adapters/AddTimeOptimalParameterization default_planner_request_adapters/FixWorkspaceBounds default_planner_request_adapters/FixStartStateBounds default_planner_request_adapters/FixStartStateCollision default_planner_request_adapters/FixStartStatePathConstraints""", + "start_state_max_bounds_error": 0.1, + } + } + ompl_planning_yaml = load_yaml("ur_moveit_config", "config/ompl_planning.yaml") + ompl_planning_pipeline_config["move_group"].update(ompl_planning_yaml) + + # Trajectory Execution Configuration + controllers_yaml = load_yaml("ur_moveit_config", "config/controllers.yaml") + # the scaled_joint_trajectory_controller does not work on fake hardware + change_controllers = context.perform_substitution(use_sim_time) + if change_controllers == "true": + controllers_yaml["scaled_joint_trajectory_controller"]["default"] = False + controllers_yaml["joint_trajectory_controller"]["default"] = True + + moveit_controllers = { + "moveit_simple_controller_manager": controllers_yaml, + "moveit_controller_manager": "moveit_simple_controller_manager/MoveItSimpleControllerManager", + } + + trajectory_execution = { + "moveit_manage_controllers": False, + "trajectory_execution.allowed_execution_duration_scaling": 1.2, + "trajectory_execution.allowed_goal_duration_margin": 0.5, + "trajectory_execution.allowed_start_tolerance": 0.01, + # Execution time monitoring can be incompatible with the scaled JTC + "trajectory_execution.execution_duration_monitoring": False, + } + + planning_scene_monitor_parameters = { + "publish_planning_scene": True, + "publish_geometry_updates": True, + "publish_state_updates": True, + "publish_transforms_updates": True, + } + + warehouse_ros_config = { + "warehouse_plugin": "warehouse_ros_sqlite::DatabaseConnection", + "warehouse_host": warehouse_sqlite_path, + } + + # Start the actual move_group node/action server + move_group_node = Node( + package="moveit_ros_move_group", + executable="move_group", + output="screen", + parameters=[ + robot_description, + robot_description_semantic, + publish_robot_description_semantic, + robot_description_kinematics, + robot_description_planning, + ompl_planning_pipeline_config, + trajectory_execution, + moveit_controllers, + planning_scene_monitor_parameters, + {"use_sim_time": use_sim_time}, + warehouse_ros_config, + ], + ) + + # rviz with moveit configuration + rviz_config_file = PathJoinSubstitution( + [FindPackageShare(moveit_config_package), "rviz", "view_robot.rviz"] + ) + rviz_node = Node( + package="rviz2", + condition=IfCondition(launch_rviz), + executable="rviz2", + name="rviz2_moveit", + output="log", + arguments=["-d", rviz_config_file], + parameters=[ + robot_description, + robot_description_semantic, + ompl_planning_pipeline_config, + robot_description_kinematics, + robot_description_planning, + warehouse_ros_config, + { + "use_sim_time": use_sim_time, + }, + ], + ) + + # Servo node for realtime control + servo_yaml = load_yaml("ur_moveit_config", "config/ur_servo.yaml") + servo_params = {"moveit_servo": servo_yaml} + servo_node = Node( + package="moveit_servo", + condition=IfCondition(launch_servo), + executable="servo_node_main", + parameters=[ + servo_params, + robot_description, + robot_description_semantic, + ], + output="screen", + ) + + nodes_to_start = [move_group_node, rviz_node, servo_node] + + return nodes_to_start + + +def generate_launch_description(): + + declared_arguments = [] + # UR specific arguments + declared_arguments.append( + DeclareLaunchArgument( + "ur_type", + description="Type/series of used UR robot.", + choices=["ur3", "ur3e", "ur5", "ur5e", "ur10", "ur10e", "ur16e", "ur20", "ur30"], + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "safety_limits", + default_value="true", + description="Enables the safety limits controller if true.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "safety_pos_margin", + default_value="0.15", + description="The margin to lower and upper limits in the safety controller.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "safety_k_position", + default_value="20", + description="k-position factor in the safety controller.", + ) + ) + # General arguments + declared_arguments.append( + DeclareLaunchArgument( + "description_package", + default_value="ur_description", + description="Description package with robot URDF/XACRO files. Usually the argument " + "is not set, it enables use of a custom description.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "description_file", + default_value="ur.urdf.xacro", + description="URDF/XACRO description file with the robot.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "publish_robot_description_semantic", + default_value="True", + description="Whether to publish the SRDF description on topic /robot_description_semantic.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "moveit_config_package", + default_value="ur_moveit_config", + description="MoveIt config package with robot SRDF/XACRO files. Usually the argument " + "is not set, it enables use of a custom moveit config.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "moveit_config_file", + default_value="ur.srdf.xacro", + description="MoveIt SRDF/XACRO description file with the robot.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "moveit_joint_limits_file", + default_value="joint_limits.yaml", + description="MoveIt joint limits that augment or override the values from the URDF robot_description.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "warehouse_sqlite_path", + default_value=os.path.expanduser("~/.ros/warehouse_ros.sqlite"), + description="Path where the warehouse database should be stored", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "use_sim_time", + default_value="false", + description="Make MoveIt to use simulation time. This is needed for the trajectory planing in simulation.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "prefix", + default_value='""', + description="Prefix of the joint names, useful for " + "multi-robot setup. If changed than also joint names in the controllers' configuration " + "have to be updated.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument("launch_rviz", default_value="true", description="Launch RViz?") + ) + declared_arguments.append( + DeclareLaunchArgument("launch_servo", default_value="true", description="Launch Servo?") + ) + + return LaunchDescription(declared_arguments + [OpaqueFunction(function=launch_setup)]) diff --git a/ros2_ws/src/ur_moveit_config/package.xml b/ros2_ws/src/ur_moveit_config/package.xml new file mode 100644 index 00000000..fa9e18e9 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/package.xml @@ -0,0 +1,41 @@ + + + + ur_moveit_config + 2.5.2 + + An example package with MoveIt2 configurations for UR robots. + + + Felix Exner + Rune Søe-Knudsen + Universal Robots A/S + + Apache2.0 + + Lovro Ivanov + Andy Zelenak + Vincenzo Di Pentima + Denis Stogl + + ament_cmake + ament_cmake_python + + launch + launch_ros + moveit_kinematics + moveit_planners_ompl + moveit_ros_move_group + moveit_ros_visualization + moveit_servo + moveit_simple_controller_manager + rviz2 + ur_description + urdf + warehouse_ros_sqlite + xacro + + + ament_cmake + + diff --git a/ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz b/ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz new file mode 100644 index 00000000..47e8f87d --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz @@ -0,0 +1,311 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 87 + Name: Displays + Property Tree Widget: + Expanded: + - /Global Options1 + Splitter Ratio: 0.4957627058029175 + Tree Height: 573 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Acceleration_Scaling_Factor: 0.1 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Warehouse_Host: 127.0.0.1 + MoveIt_Warehouse_Port: 33829 + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: true + Interrupt Display: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 0.05 s + Trail Step Size: 1 + Trajectory Topic: /display_planned_path + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0 + Joint Violation Color: 255; 0; 255 + Planning Group: ur_manipulator + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.1 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: world + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /goal_pose + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 6.619869709014893 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 0.2489434778690338 + Y: -0.013962505385279655 + Z: 0.13800443708896637 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.4103981554508209 + Target Frame: + Value: Orbit (rviz) + Yaw: 1.210397720336914 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 1381 + Hide Left Dock: false + Hide Right Dock: false + MotionPlanning: + collapsed: false + MotionPlanning - Trajectory Slider: + collapsed: false + QMainWindow State: 000000ff00000000fd0000000400000000000001e0000004f6fc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000007901000003fb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000046000002e3000000ff01000003fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000005201000003fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000032a00000212000001b9010000030000000100000110000004f6fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000046000004f6000000d701000003fb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d006501000000000000045000000000000000000000070e000004f600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 2560 + X: 0 + Y: 30 diff --git a/ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro b/ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro new file mode 100644 index 00000000..0ae2cca2 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro b/ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro new file mode 100644 index 00000000..04554f33 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ros2_ws/src/ur_moveit_config/ur_moveit_config/__init__.py b/ros2_ws/src/ur_moveit_config/ur_moveit_config/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py b/ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py new file mode 100644 index 00000000..c680e878 --- /dev/null +++ b/ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2021 PickNik, Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of the {copyright_holder} nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# +# Author: Lovro Ivanov + +import math +import os +import yaml + +from ament_index_python.packages import get_package_share_directory + + +def construct_angle_radians(loader, node): + """Utility function to construct radian values from yaml.""" + value = loader.construct_scalar(node) + try: + return float(value) + except SyntaxError: + raise Exception("invalid expression: %s" % value) + + +def construct_angle_degrees(loader, node): + """Utility function for converting degrees into radians from yaml.""" + return math.radians(construct_angle_radians(loader, node)) + + +def load_yaml(package_name, file_path): + package_path = get_package_share_directory(package_name) + absolute_file_path = os.path.join(package_path, file_path) + + try: + yaml.SafeLoader.add_constructor("!radians", construct_angle_radians) + yaml.SafeLoader.add_constructor("!degrees", construct_angle_degrees) + except Exception: + raise Exception("yaml support not available; install python-yaml") + + try: + with open(absolute_file_path) as file: + return yaml.safe_load(file) + except OSError: # parent of IOError, OSError *and* WindowsError where available + return None + + +def load_yaml_abs(absolute_file_path): + + try: + yaml.SafeLoader.add_constructor("!radians", construct_angle_radians) + yaml.SafeLoader.add_constructor("!degrees", construct_angle_degrees) + except Exception: + raise Exception("yaml support not available; install python-yaml") + + try: + with open(absolute_file_path) as file: + return yaml.safe_load(file) + except OSError: # parent of IOError, OSError *and* WindowsError where available + return None diff --git a/ros2_ws/src/ur_palletization/CMakeLists.txt b/ros2_ws/src/ur_palletization/CMakeLists.txt index f45e8c51..d807d57c 100644 --- a/ros2_ws/src/ur_palletization/CMakeLists.txt +++ b/ros2_ws/src/ur_palletization/CMakeLists.txt @@ -78,6 +78,7 @@ install(TARGETS palletizationNode install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(DIRECTORY rviz DESTINATION share/${PROJECT_NAME}) +install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) diff --git a/ros2_ws/src/ur_palletization/config/sensors_3d.yaml b/ros2_ws/src/ur_palletization/config/sensors_3d.yaml new file mode 100644 index 00000000..2c6318b6 --- /dev/null +++ b/ros2_ws/src/ur_palletization/config/sensors_3d.yaml @@ -0,0 +1,6 @@ +/**: + ros__parameters: + sensors: + - "noop" + noop: + sensor_plugin: "~" diff --git a/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py b/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py index d53827ac..4f0d78a0 100644 --- a/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py +++ b/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py @@ -44,6 +44,7 @@ from launch.conditions import IfCondition from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution from launch_ros.actions import Node +from launch_ros.parameter_descriptions import ParameterFile from launch_ros.substitutions import FindPackageShare from moveit_configs_utils import MoveItConfigsBuilder from ur_moveit_config.launch_common import load_yaml @@ -205,6 +206,12 @@ def launch_setup(context, *args, **kwargs): "publish_transforms_updates": True, } + # Disable octomap (no 3D sensors in simulation) + sensor_manager_parameters = ParameterFile( + PathJoinSubstitution([FindPackageShare("ur_palletization"), "config", "sensors_3d.yaml"]), + allow_substs=False, + ) + warehouse_ros_config = { "warehouse_plugin": "warehouse_ros_sqlite::DatabaseConnection", "warehouse_host": warehouse_sqlite_path, @@ -219,7 +226,7 @@ def launch_setup(context, *args, **kwargs): "pilz_industrial_motion_planner": { "default_planner_config": "PTP", - "planning_plugin": "pilz_industrial_motion_planner/CommandPlanner" + "planning_plugins": ["pilz_industrial_motion_planner/CommandPlanner"] }, "robot_description_planning":{ "cartesian_limits":{ @@ -272,6 +279,7 @@ def launch_setup(context, *args, **kwargs): trajectory_execution, moveit_controllers, planning_scene_monitor_parameters, + sensor_manager_parameters, {"use_sim_time": use_sim_time}, warehouse_ros_config, pilz_config @@ -293,6 +301,7 @@ def launch_setup(context, *args, **kwargs): trajectory_execution, moveit_controllers, planning_scene_monitor_parameters, + sensor_manager_parameters, {"use_sim_time": use_sim_time}, warehouse_ros_config, {'publish_robot_description': True}, diff --git a/ros2_ws/src/ur_palletization/src/taskConstructor.cpp b/ros2_ws/src/ur_palletization/src/taskConstructor.cpp index 95dc9e9d..403bf3b7 100644 --- a/ros2_ws/src/ur_palletization/src/taskConstructor.cpp +++ b/ros2_ws/src/ur_palletization/src/taskConstructor.cpp @@ -57,7 +57,7 @@ namespace Palletization if ((errorCode = m_moveGroupInterface->plan(plan)) != moveit::core::MoveItErrorCode::SUCCESS || (errorCode = m_moveGroupInterface->execute(plan)) != moveit::core::MoveItErrorCode::SUCCESS) { - RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan for pose " << poseName << " (error code: " << moveit::core::error_code_to_string(errorCode) << ")"); + RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan for pose " << poseName << " (error code: " << moveit::core::errorCodeToString(errorCode) << ")"); return false; } return true; @@ -79,7 +79,7 @@ namespace Palletization if ((errorCode = m_moveGroupInterface->plan(plan)) != moveit::core::MoveItErrorCode::SUCCESS || (errorCode = m_moveGroupInterface->execute(plan)) != moveit::core::MoveItErrorCode::SUCCESS) { - RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan (error code: " << moveit::core::error_code_to_string(errorCode) << ")"); + RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan (error code: " << moveit::core::errorCodeToString(errorCode) << ")"); return false; } return true; From 66cb1b452be24ef919ff25715ed67a27f718784e Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 14:05:20 +0200 Subject: [PATCH 02/12] Code review fixes Signed-off-by: Jan Hanca --- Project/Gem/CMakeLists.txt | 3 --- Project/project.json | 8 ++------ README.md | 12 +++++++----- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Project/Gem/CMakeLists.txt b/Project/Gem/CMakeLists.txt index 8ebe5ee3..c02e783d 100644 --- a/Project/Gem/CMakeLists.txt +++ b/Project/Gem/CMakeLists.txt @@ -64,8 +64,6 @@ ly_add_target( Gem::Atom_AtomBridge.Static Gem::ROS2.Static Gem::ROS2Sensors.API - Gem::ImGui.Static - Gem::ImGui.imguilib Gem::LmbrCentral.API Gem::PhysX5.Static Gem::RecastNavigation.API @@ -90,7 +88,6 @@ ly_add_target( Gem::RecastNavigation.API Gem::ROS2.Static Gem::ROS2Sensors.API - Gem::ImGui.imguilib Gem::LmbrCentral.API ) diff --git a/Project/project.json b/Project/project.json index 0b9355fd..0796e605 100644 --- a/Project/project.json +++ b/Project/project.json @@ -20,8 +20,6 @@ "Gem", "../engine/o3de-extras/Gems/ROS2", "../engine/o3de-extras/Gems/ROS2Controllers", - "../engine/o3de-extras/Gems/ROS2RobotImporter", - "../engine/o3de-extras/Gems/SimulationInterfaces", "../engine/o3de-extras/Gems/ROS2Sensors", "../engine/o3de-extras/Gems/LevelGeoreferencing", "../engine/o3de-extras/Gems/WarehouseAssets", @@ -40,12 +38,10 @@ "gem_names": [ "HumanWorker==2.0.0", "OTTORobots==2.0.0", - "OpenParticleSystem", - "ROS2>=3.3.0", + "ROS2>=4.0.0", "ROS2Controllers", - "ROS2RobotImporter", - "ROS2ScriptIntegration", "ROS2Sensors", + "ROS2ScriptIntegration", "RobotecSmallContainersAssets", "RobotecWarehouseBarriersAndCagesAssets", "RobotecWarehouseForkliftsAssets", diff --git a/README.md b/README.md index 634ee132..99cc4e43 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ The Gems are open to your contributions! ### ROS 2 packages Make sure to install the necessary ROS 2 packages. ```bash -sudo apt install ros-${ROS_DISTRO}-ackermann-msgs ros-${ROS_DISTRO}-control-toolbox ros-${ROS_DISTRO}-nav-msgs ros-${ROS_DISTRO}-gazebo-msgs ros-${ROS_DISTRO}-vision-msgs ros-${ROS_DISTRO}-ur-msgs ros-${ROS_DISTRO}-moveit-servo ros-${ROS_DISTRO}-moveit-visual-tools ros-${ROS_DISTRO}-moveit ros-${ROS_DISTRO}-pilz-industrial-motion-planner ros-${ROS_DISTRO}-controller-manager ros-${ROS_DISTRO}-ur-client-library ros-${ROS_DISTRO}-nav2-common ros-${ROS_DISTRO}-navigation2 libopencv-dev ros-${ROS_DISTRO}-nav2-map-server ros-${ROS_DISTRO}-simulation-interfaces +sudo apt install ros-${ROS_DISTRO}-ackermann-msgs ros-${ROS_DISTRO}-control-toolbox ros-${ROS_DISTRO}-nav-msgs ros-${ROS_DISTRO}-gazebo-msgs ros-${ROS_DISTRO}-vision-msgs ros-${ROS_DISTRO}-ur-msgs ros-${ROS_DISTRO}-moveit-servo ros-${ROS_DISTRO}-moveit-visual-tools ros-${ROS_DISTRO}-moveit ros-${ROS_DISTRO}-pilz-industrial-motion-planner ros-${ROS_DISTRO}-controller-manager ros-${ROS_DISTRO}-ur-client-library ros-${ROS_DISTRO}-nav2-common ros-${ROS_DISTRO}-navigation2 libopencv-dev ros-${ROS_DISTRO}-nav2-map-server ``` ### Project @@ -324,14 +324,16 @@ Please also refer to the common [Troubleshooting Guide](https://docs.o3de.org/do ## Release notes -### ROSCon2023Demo 4.0.0 for O3DE 2604.x and ROS 2 Jazzy -Changes compared to 3.0.0 +### ROSCon2023Demo 4.0.0 for O3DE 2605.x and ROS 2 Jazzy +Changes compared to 3.0.1 - updated demo the newest available version of O3DE and ROS 2 Gem -- Updated code to new API in ROS 2 Gem and other canonical gems in O3DE 2604. +- Updated code to new API in ROS 2 Gem and other canonical gems in O3DE 2605.0 - made flat copy of UR MoveIt2, to avoid issues with building UR ROS2 Driver - Updated Nav2 configuration for ROS 2 Jazzy - +### ROSCon2023Demo 3.0.1 for O3DE 2505.x +Changes compared to 3.0.0 +- fix branch names in Docker ### ROSCon2023Demo 3.0.0 for O3DE 2505.x Changes compared to 2.0.0 From 4a48a48213f6b302850cef3af3498ae6ae716974 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 14:09:01 +0200 Subject: [PATCH 03/12] Revert ros2_ws to keep it humble Signed-off-by: Jan Hanca --- ros2_ws/setup_submodules.bash | 38 ++ .../params/jazzy/nav2_multirobot_params.yaml | 262 ------------ .../params/jazzy/nav2_params.yaml | 252 ------------ .../params/jazzy/nav2_slam.yaml | 302 -------------- .../params/jazzy/otto1500Params.yaml | 292 ------------- .../params/jazzy/otto600Params.yaml | 291 ------------- ros2_ws/src/otto_fleet_nav/setup.py | 1 - .../config/ROSCon2023Config_4.yaml | 8 +- ros2_ws/src/ur_moveit_config/CHANGELOG.rst | 108 ----- ros2_ws/src/ur_moveit_config/CMakeLists.txt | 15 - .../ur_moveit_config/config/controllers.yaml | 29 -- .../ur_moveit_config/config/joint_limits.yaml | 25 -- .../ur_moveit_config/config/kinematics.yaml | 8 - .../config/ompl_planning.yaml | 70 ---- .../src/ur_moveit_config/config/ur_servo.yaml | 82 ---- .../launch/ur_moveit.launch.py | 382 ------------------ ros2_ws/src/ur_moveit_config/package.xml | 41 -- .../src/ur_moveit_config/rviz/view_robot.rviz | 311 -------------- .../src/ur_moveit_config/srdf/ur.srdf.xacro | 13 - .../ur_moveit_config/srdf/ur_macro.srdf.xacro | 57 --- .../ur_moveit_config/__init__.py | 0 .../ur_moveit_config/launch_common.py | 84 ---- ros2_ws/src/ur_palletization/CMakeLists.txt | 1 - .../ur_palletization/config/sensors_3d.yaml | 6 - .../launch/ur_palletization.launch.py | 11 +- .../ur_palletization/src/taskConstructor.cpp | 4 +- 26 files changed, 45 insertions(+), 2648 deletions(-) create mode 100755 ros2_ws/setup_submodules.bash delete mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml delete mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml delete mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml delete mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml delete mode 100644 ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml delete mode 100644 ros2_ws/src/ur_moveit_config/CHANGELOG.rst delete mode 100644 ros2_ws/src/ur_moveit_config/CMakeLists.txt delete mode 100644 ros2_ws/src/ur_moveit_config/config/controllers.yaml delete mode 100644 ros2_ws/src/ur_moveit_config/config/joint_limits.yaml delete mode 100644 ros2_ws/src/ur_moveit_config/config/kinematics.yaml delete mode 100644 ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml delete mode 100644 ros2_ws/src/ur_moveit_config/config/ur_servo.yaml delete mode 100644 ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py delete mode 100644 ros2_ws/src/ur_moveit_config/package.xml delete mode 100644 ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz delete mode 100644 ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro delete mode 100644 ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro delete mode 100644 ros2_ws/src/ur_moveit_config/ur_moveit_config/__init__.py delete mode 100644 ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py delete mode 100644 ros2_ws/src/ur_palletization/config/sensors_3d.yaml diff --git a/ros2_ws/setup_submodules.bash b/ros2_ws/setup_submodules.bash new file mode 100755 index 00000000..147f47cd --- /dev/null +++ b/ros2_ws/setup_submodules.bash @@ -0,0 +1,38 @@ +#!/bin/bash + +if [ "$ROS_DISTRO" == "iron" ] +then + git submodule init + git submodule update + + cd ./src/Universal_Robots_ROS2_Driver/ + git checkout 129687763140508b4b5cb497b197ce1057defe88 + if [ $? -ne 0 ] + then + echo "Failed to checkout ROS 2 iron branch." + exit 1 + fi +elif [ "$ROS_DISTRO" == "humble" ] +then + # submodule init and update are sufficient for humble + git submodule init + git submodule update + cd ./src/Universal_Robots_ROS2_Driver/ + git checkout humble + if [ $? -ne 0 ] + then + echo "Failed to checkout ROS 2 humble branch." + exit 1 + fi + +elif [ -z "$ROS_DISTRO" ] +then + echo "ROS 2 distribution not found." + exit 1 +else + echo "ROS 2 $ROS_DISTRO is not supported in this project - switch to humble or iron distribution." + exit 1 +fi + +echo "Submodules updated for ROS2 $ROS_DISTRO." +exit 0 diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml deleted file mode 100644 index 3cce78ba..00000000 --- a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_multirobot_params.yaml +++ /dev/null @@ -1,262 +0,0 @@ -robot_spawner_client: - ros__parameters: - robot_name: - robot_namespace: - robot_initial_position: [, , ] - -amcl: - ros__parameters: - use_sim_time: True - alpha1: 0.2 - alpha2: 0.2 - alpha3: 0.2 - alpha4: 0.2 - alpha5: 0.2 - base_frame_id: "/base_link" - beam_skip_distance: 0.5 - beam_skip_error_threshold: 0.9 - beam_skip_threshold: 0.3 - do_beamskip: false - global_frame_id: "map" - map_topic: "map" - lambda_short: 0.1 - laser_likelihood_max_dist: 2.0 - laser_max_range: 100.0 - laser_min_range: -1.0 - laser_model_type: "/likelihood_field" - max_beams: 60 - max_particles: 2000 - min_particles: 500 - odom_frame_id: "/odom" - pf_err: 0.05 - pf_z: 0.99 - recovery_alpha_fast: 0.0 - recovery_alpha_slow: 0.0 - resample_interval: 1 - robot_model_type: "nav2_amcl::DifferentialMotionModel" - save_pose_rate: 0.5 - sigma_hit: 0.2 - tf_broadcast: true - transform_tolerance: 1.0 - update_min_a: 0.2 - update_min_d: 0.25 - z_hit: 0.5 - z_max: 0.05 - z_rand: 0.5 - z_short: 0.05 - scan_topic: scan - set_initial_pose: True - initial_pose: - x: - y: - z: - -bt_navigator: - ros__parameters: - use_sim_time: True - global_frame: map - robot_base_frame: /base_link - odom_topic: odom - bt_loop_duration: 10 - default_server_timeout: 20 - navigators: ["navigate_to_pose", "navigate_through_poses"] - navigate_to_pose: - plugin: "nav2_bt_navigator::NavigateToPoseNavigator" - navigate_through_poses: - plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" - # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: - # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml - # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml - # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. - - - -controller_server: - ros__parameters: - use_sim_time: True - controller_frequency: 20.0 - min_x_velocity_threshold: 0.001 - min_y_velocity_threshold: 0.5 - min_theta_velocity_threshold: 0.001 - progress_checker_plugin: "progress_checker" - goal_checker_plugins: ["goal_checker"] - controller_plugins: ["FollowPath"] - - # Progress checker parameters - progress_checker: - plugin: "nav2_controller::SimpleProgressChecker" - required_movement_radius: 0.5 - movement_time_allowance: 10.0 - # Goal checker parameters - goal_checker: - plugin: "nav2_controller::SimpleGoalChecker" - xy_goal_tolerance: 0.25 - yaw_goal_tolerance: 0.25 - stateful: True - # DWB parameters - FollowPath: - plugin: "dwb_core::DWBLocalPlanner" - debug_trajectory_details: True - min_vel_x: 0.0 - min_vel_y: 0.0 - max_vel_x: 0.26 - max_vel_y: 0.0 - max_vel_theta: 1.0 - min_speed_xy: 0.0 - max_speed_xy: 0.26 - min_speed_theta: 0.0 - acc_lim_x: 2.5 - acc_lim_y: 0.0 - acc_lim_theta: 3.2 - decel_lim_x: -2.5 - decel_lim_y: 0.0 - decel_lim_theta: -3.2 - vx_samples: 20 - vy_samples: 5 - vtheta_samples: 20 - sim_time: 1.7 - linear_granularity: 0.05 - angular_granularity: 0.025 - transform_tolerance: 0.2 - trans_stopped_velocity: 0.25 - short_circuit_trajectory_evaluation: True - stateful: True - critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] - BaseObstacle.scale: 0.02 - PathAlign.scale: 0.0 - GoalAlign.scale: 0.0 - PathDist.scale: 32.0 - GoalDist.scale: 24.0 - RotateToGoal.scale: 32.0 - RotateToGoal.slowing_factor: 5.0 - RotateToGoal.lookahead_time: -1.0 - -local_costmap: - local_costmap: - ros__parameters: - robot_base_frame: "/base_link" - use_sim_time: True - global_frame: /odom - rolling_window: true - width: 3 - height: 3 - resolution: 0.05 - robot_radius: 0.22 - plugins: ["voxel_layer", "inflation_layer"] - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 3.0 - inflation_radius: 0.55 - voxel_layer: - plugin: "nav2_costmap_2d::VoxelLayer" - enabled: True - publish_voxel_map: False - origin_z: 0.0 - z_resolution: 0.05 - z_voxels: 16 - max_obstacle_height: 2.0 - mark_threshold: 0 - observation_sources: scan - scan: - topic: //scan - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - map_subscribe_transient_local: True - always_send_full_costmap: True - -global_costmap: - global_costmap: - ros__parameters: - robot_base_frame: "/base_link" - global_frame: "map" - use_sim_time: True - robot_radius: 0.22 - plugins: ["static_layer", "obstacle_layer", "inflation_layer"] - obstacle_layer: - plugin: "nav2_costmap_2d::ObstacleLayer" - enabled: True - observation_sources: scan - scan: - topic: //scan - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - plugin: "nav2_costmap_2d::StaticLayer" - map_subscribe_transient_local: True - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 3.0 - inflation_radius: 0.55 - always_send_full_costmap: True - -map_server: - ros__parameters: - use_sim_time: True - yaml_filename: "map_warehouse.yaml" - save_map_timeout: 5.0 - frame_id: "map" - -planner_server: - ros__parameters: - use_sim_time: True - planner_plugins: ["GridBased"] - GridBased: - plugin: "nav2_navfn_planner::NavfnPlanner" - tolerance: 0.5 - use_astar: false - allow_unknown: true - -smoother_server: - ros__parameters: - use_sim_time: True - robot_base_frame: "/base_link" - -behavior_server: - ros__parameters: - costmap_topic: local_costmap/costmap_raw - footprint_topic: local_costmap/published_footprint - cycle_frequency: 10.0 - behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] - spin: - plugin: "nav2_behaviors::Spin" - backup: - plugin: "nav2_behaviors::BackUp" - drive_on_heading: - plugin: "nav2_behaviors::DriveOnHeading" - wait: - plugin: "nav2_behaviors::Wait" - global_frame: /odom - robot_base_frame: /base_link - transform_tolerance: 0.1 - use_sim_time: true - simulate_ahead_time: 2.0 - max_rotational_vel: 1.0 - min_rotational_vel: 0.4 - rotational_acc_lim: 3.2 - -robot_state_publisher: - ros__parameters: - use_sim_time: True - -waypoint_follower: - ros__parameters: - loop_rate: 20 - stop_on_failure: false - waypoint_task_executor_plugin: "wait_at_waypoint" - wait_at_waypoint: - plugin: "nav2_waypoint_follower::WaitAtWaypoint" - enabled: True - waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml deleted file mode 100644 index ab31468c..00000000 --- a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_params.yaml +++ /dev/null @@ -1,252 +0,0 @@ -amcl: - ros__parameters: - use_sim_time: True - alpha1: 0.2 - alpha2: 0.2 - alpha3: 0.2 - alpha4: 0.2 - alpha5: 0.2 - base_frame_id: "base_link" - beam_skip_distance: 0.5 - beam_skip_error_threshold: 0.9 - beam_skip_threshold: 0.3 - do_beamskip: false - global_frame_id: "map" - map_topic: "map" - lambda_short: 0.1 - laser_likelihood_max_dist: 2.0 - laser_max_range: 100.0 - laser_min_range: -1.0 - laser_model_type: "likelihood_field" - max_beams: 60 - max_particles: 2000 - min_particles: 500 - odom_frame_id: "odom" - pf_err: 0.05 - pf_z: 0.99 - recovery_alpha_fast: 0.0 - recovery_alpha_slow: 0.0 - resample_interval: 1 - robot_model_type: "nav2_amcl::DifferentialMotionModel" - save_pose_rate: 0.5 - sigma_hit: 0.2 - tf_broadcast: true - transform_tolerance: 1.0 - update_min_a: 0.2 - update_min_d: 0.25 - z_hit: 0.5 - z_max: 0.05 - z_rand: 0.5 - z_short: 0.05 - scan_topic: scan - set_initial_pose: False - -bt_navigator: - ros__parameters: - use_sim_time: True - global_frame: map - robot_base_frame: base_link - odom_topic: odom - bt_loop_duration: 10 - default_server_timeout: 20 - navigators: ["navigate_to_pose", "navigate_through_poses"] - navigate_to_pose: - plugin: "nav2_bt_navigator::NavigateToPoseNavigator" - navigate_through_poses: - plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" - # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: - # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml - # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml - # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. - - - -controller_server: - ros__parameters: - use_sim_time: True - controller_frequency: 20.0 - min_x_velocity_threshold: 0.001 - min_y_velocity_threshold: 0.5 - min_theta_velocity_threshold: 0.001 - progress_checker_plugin: "progress_checker" - goal_checker_plugins: ["goal_checker"] - controller_plugins: ["FollowPath"] - - # Progress checker parameters - progress_checker: - plugin: "nav2_controller::SimpleProgressChecker" - required_movement_radius: 0.5 - movement_time_allowance: 10.0 - # Goal checker parameters - goal_checker: - plugin: "nav2_controller::SimpleGoalChecker" - xy_goal_tolerance: 0.25 - yaw_goal_tolerance: 0.25 - stateful: True - # DWB parameters - FollowPath: - plugin: "dwb_core::DWBLocalPlanner" - debug_trajectory_details: True - min_vel_x: 0.0 - min_vel_y: 0.0 - max_vel_x: 0.26 - max_vel_y: 0.0 - max_vel_theta: 1.0 - min_speed_xy: 0.0 - max_speed_xy: 0.26 - min_speed_theta: 0.0 - acc_lim_x: 2.5 - acc_lim_y: 0.0 - acc_lim_theta: 3.2 - decel_lim_x: -2.5 - decel_lim_y: 0.0 - decel_lim_theta: -3.2 - vx_samples: 20 - vy_samples: 5 - vtheta_samples: 20 - sim_time: 1.7 - linear_granularity: 0.05 - angular_granularity: 0.025 - transform_tolerance: 0.2 - trans_stopped_velocity: 0.25 - short_circuit_trajectory_evaluation: True - stateful: True - critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] - BaseObstacle.scale: 0.02 - PathAlign.scale: 0.0 - GoalAlign.scale: 0.0 - PathDist.scale: 32.0 - GoalDist.scale: 24.0 - RotateToGoal.scale: 32.0 - RotateToGoal.slowing_factor: 5.0 - RotateToGoal.lookahead_time: -1.0 - -local_costmap: - local_costmap: - ros__parameters: - robot_base_frame: "base_link" - use_sim_time: True - global_frame: odom - rolling_window: true - width: 3 - height: 3 - resolution: 0.05 - robot_radius: 0.22 - plugins: ["voxel_layer", "inflation_layer"] - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 3.0 - inflation_radius: 0.55 - voxel_layer: - plugin: "nav2_costmap_2d::VoxelLayer" - enabled: True - publish_voxel_map: False - origin_z: 0.0 - z_resolution: 0.05 - z_voxels: 16 - max_obstacle_height: 2.0 - mark_threshold: 0 - observation_sources: scan - scan: - topic: /scan - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - map_subscribe_transient_local: True - always_send_full_costmap: True - -global_costmap: - global_costmap: - ros__parameters: - robot_base_frame: "base_link" - global_frame: "map" - use_sim_time: True - robot_radius: 0.22 - plugins: ["static_layer", "obstacle_layer", "inflation_layer"] - obstacle_layer: - plugin: "nav2_costmap_2d::ObstacleLayer" - enabled: True - observation_sources: scan - scan: - topic: /scan - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - plugin: "nav2_costmap_2d::StaticLayer" - map_subscribe_transient_local: True - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 3.0 - inflation_radius: 0.55 - always_send_full_costmap: True - -map_server: - ros__parameters: - use_sim_time: True - yaml_filename: "map_warehouse.yaml" - save_map_timeout: 5.0 - frame_id: "map" - -planner_server: - ros__parameters: - use_sim_time: True - planner_plugins: ["GridBased"] - GridBased: - plugin: "nav2_navfn_planner::NavfnPlanner" - tolerance: 0.5 - use_astar: false - allow_unknown: true - -smoother_server: - ros__parameters: - use_sim_time: True - robot_base_frame: "base_link" - -behavior_server: - ros__parameters: - costmap_topic: local_costmap/costmap_raw - footprint_topic: local_costmap/published_footprint - cycle_frequency: 10.0 - behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] - spin: - plugin: "nav2_behaviors::Spin" - backup: - plugin: "nav2_behaviors::BackUp" - drive_on_heading: - plugin: "nav2_behaviors::DriveOnHeading" - wait: - plugin: "nav2_behaviors::Wait" - global_frame: odom - robot_base_frame: base_link - transform_tolerance: 0.1 - use_sim_time: true - simulate_ahead_time: 2.0 - max_rotational_vel: 1.0 - min_rotational_vel: 0.4 - rotational_acc_lim: 3.2 - -robot_state_publisher: - ros__parameters: - use_sim_time: True - -waypoint_follower: - ros__parameters: - loop_rate: 20 - stop_on_failure: false - waypoint_task_executor_plugin: "wait_at_waypoint" - wait_at_waypoint: - plugin: "nav2_waypoint_follower::WaitAtWaypoint" - enabled: True - waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml deleted file mode 100644 index 2b8d2171..00000000 --- a/ros2_ws/src/otto_fleet_nav/params/jazzy/nav2_slam.yaml +++ /dev/null @@ -1,302 +0,0 @@ -amcl: - ros__parameters: - use_sim_time: True - alpha1: 0.2 - alpha2: 0.2 - alpha3: 0.2 - alpha4: 0.2 - alpha5: 0.2 - base_frame_id: "base_footprint" - beam_skip_distance: 0.5 - beam_skip_error_threshold: 0.9 - beam_skip_threshold: 0.3 - do_beamskip: false - global_frame_id: "map" - lambda_short: 0.1 - laser_likelihood_max_dist: 2.0 - laser_max_range: 100.0 - laser_min_range: -1.0 - laser_model_type: "likelihood_field" - max_beams: 60 - max_particles: 2000 - min_particles: 500 - odom_frame_id: "odom" - pf_err: 0.05 - pf_z: 0.99 - recovery_alpha_fast: 0.0 - recovery_alpha_slow: 0.0 - resample_interval: 1 - robot_model_type: "nav2_amcl::DifferentialMotionModel" - save_pose_rate: 0.5 - sigma_hit: 0.2 - tf_broadcast: true - transform_tolerance: 1.0 - update_min_a: 0.2 - update_min_d: 0.25 - z_hit: 0.5 - z_max: 0.05 - z_rand: 0.5 - z_short: 0.05 - scan_topic: scan - -bt_navigator: - ros__parameters: - use_sim_time: True - global_frame: map - robot_base_frame: base_link - odom_topic: /odom - bt_loop_duration: 10 - default_server_timeout: 20 - navigators: ["navigate_to_pose", "navigate_through_poses"] - navigate_to_pose: - plugin: "nav2_bt_navigator::NavigateToPoseNavigator" - navigate_through_poses: - plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" - # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: - # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml - # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml - # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. - - - -controller_server: - ros__parameters: - use_sim_time: True - controller_frequency: 20.0 - min_x_velocity_threshold: 0.001 - min_y_velocity_threshold: 0.5 - min_theta_velocity_threshold: 0.001 - failure_tolerance: 0.3 - progress_checker_plugin: "progress_checker" - goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker" - controller_plugins: ["FollowPath"] - - # Progress checker parameters - progress_checker: - plugin: "nav2_controller::SimpleProgressChecker" - required_movement_radius: 0.5 - movement_time_allowance: 10.0 - # Goal checker parameters - #precise_goal_checker: - # plugin: "nav2_controller::SimpleGoalChecker" - # xy_goal_tolerance: 0.25 - # yaw_goal_tolerance: 0.25 - # stateful: True - general_goal_checker: - stateful: True - plugin: "nav2_controller::SimpleGoalChecker" - xy_goal_tolerance: 0.25 - yaw_goal_tolerance: 0.25 - # DWB parameters - FollowPath: - plugin: "dwb_core::DWBLocalPlanner" - debug_trajectory_details: True - min_vel_x: 0.0 - min_vel_y: 0.0 - max_vel_x: 0.26 - max_vel_y: 0.0 - max_vel_theta: 1.0 - min_speed_xy: 0.0 - max_speed_xy: 0.26 - min_speed_theta: 0.0 - # Add high threshold velocity for turtlebot 3 issue. - # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75 - acc_lim_x: 2.5 - acc_lim_y: 0.0 - acc_lim_theta: 3.2 - decel_lim_x: -2.5 - decel_lim_y: 0.0 - decel_lim_theta: -3.2 - vx_samples: 20 - vy_samples: 5 - vtheta_samples: 20 - sim_time: 1.7 - linear_granularity: 0.05 - angular_granularity: 0.025 - transform_tolerance: 0.2 - xy_goal_tolerance: 0.25 - trans_stopped_velocity: 0.25 - short_circuit_trajectory_evaluation: True - stateful: True - critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] - BaseObstacle.scale: 0.02 - PathAlign.scale: 32.0 - PathAlign.forward_point_distance: 0.1 - GoalAlign.scale: 24.0 - GoalAlign.forward_point_distance: 0.1 - PathDist.scale: 32.0 - GoalDist.scale: 24.0 - RotateToGoal.scale: 32.0 - RotateToGoal.slowing_factor: 5.0 - RotateToGoal.lookahead_time: -1.0 - -local_costmap: - local_costmap: - ros__parameters: - update_frequency: 5.0 - publish_frequency: 2.0 - global_frame: odom - robot_base_frame: base_link - use_sim_time: True - rolling_window: true - width: 3 - height: 3 - resolution: 0.05 - robot_radius: 0.22 - plugins: ["voxel_layer", "inflation_layer"] - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 3.0 - inflation_radius: 0.55 - voxel_layer: - plugin: "nav2_costmap_2d::VoxelLayer" - enabled: True - publish_voxel_map: True - origin_z: 0.0 - z_resolution: 0.05 - z_voxels: 16 - max_obstacle_height: 2.0 - mark_threshold: 0 - observation_sources: scan - scan: - topic: /scan - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - plugin: "nav2_costmap_2d::StaticLayer" - map_subscribe_transient_local: True - always_send_full_costmap: True - -global_costmap: - global_costmap: - ros__parameters: - width: 50 - height: 50 - update_frequency: 1.0 - publish_frequency: 1.0 - global_frame: map - robot_base_frame: base_link - use_sim_time: True - robot_radius: 0.22 - resolution: 0.05 - track_unknown_space: true - plugins: ["static_layer", "obstacle_layer", "inflation_layer"] - obstacle_layer: - plugin: "nav2_costmap_2d::ObstacleLayer" - enabled: True - observation_sources: scan - scan: - topic: /scan - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - plugin: "nav2_costmap_2d::StaticLayer" - map_subscribe_transient_local: True - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 3.0 - inflation_radius: 0.55 - always_send_full_costmap: True - -map_server: - ros__parameters: - use_sim_time: True - # Overridden in launch by the "map" launch configuration or provided default value. - # To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below. - yaml_filename: "" - -map_saver: - ros__parameters: - use_sim_time: True - save_map_timeout: 5.0 - free_thresh_default: 0.25 - occupied_thresh_default: 0.65 - map_subscribe_transient_local: True - -planner_server: - ros__parameters: - expected_planner_frequency: 20.0 - use_sim_time: True - planner_plugins: ["GridBased"] - GridBased: - plugin: "nav2_navfn_planner::NavfnPlanner" - tolerance: 0.5 - use_astar: false - allow_unknown: true - -smoother_server: - ros__parameters: - use_sim_time: True - smoother_plugins: ["simple_smoother"] - simple_smoother: - plugin: "nav2_smoother::SimpleSmoother" - tolerance: 1.0e-10 - max_its: 1000 - do_refinement: True - -behavior_server: - ros__parameters: - costmap_topic: local_costmap/costmap_raw - footprint_topic: local_costmap/published_footprint - cycle_frequency: 10.0 - behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"] - spin: - plugin: "nav2_behaviors::Spin" - backup: - plugin: "nav2_behaviors::BackUp" - drive_on_heading: - plugin: "nav2_behaviors::DriveOnHeading" - wait: - plugin: "nav2_behaviors::Wait" - assisted_teleop: - plugin: "nav2_behaviors::AssistedTeleop" - global_frame: odom - robot_base_frame: base_link - transform_tolerance: 0.1 - use_sim_time: true - simulate_ahead_time: 2.0 - max_rotational_vel: 1.0 - min_rotational_vel: 0.4 - rotational_acc_lim: 3.2 - -robot_state_publisher: - ros__parameters: - use_sim_time: True - -waypoint_follower: - ros__parameters: - use_sim_time: True - loop_rate: 20 - stop_on_failure: false - waypoint_task_executor_plugin: "wait_at_waypoint" - wait_at_waypoint: - plugin: "nav2_waypoint_follower::WaitAtWaypoint" - enabled: True - waypoint_pause_duration: 200 - -velocity_smoother: - ros__parameters: - use_sim_time: True - smoothing_frequency: 20.0 - scale_velocities: False - feedback: "OPEN_LOOP" - max_velocity: [0.26, 0.0, 1.0] - min_velocity: [-0.26, 0.0, -1.0] - max_accel: [2.5, 0.0, 3.2] - max_decel: [-2.5, 0.0, -3.2] - odom_topic: "odom" - odom_duration: 0.1 - deadband_velocity: [0.0, 0.0, 0.0] - velocity_timeout: 1.0 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml deleted file mode 100644 index 5e87383d..00000000 --- a/ros2_ws/src/otto_fleet_nav/params/jazzy/otto1500Params.yaml +++ /dev/null @@ -1,292 +0,0 @@ -robot_spawner_client: - ros__parameters: - robot_name: - robot_namespace: - robot_initial_position: [, , ] - -amcl: - ros__parameters: - use_sim_time: True - alpha1: 0.2 - alpha2: 0.2 - alpha3: 0.2 - alpha4: 0.2 - alpha5: 0.2 - base_frame_id: "/base_link" - beam_skip_distance: 0.5 - beam_skip_error_threshold: 0.9 - beam_skip_threshold: 0.3 - do_beamskip: false - global_frame_id: "map" - map_topic: "map" - lambda_short: 0.1 - laser_likelihood_max_dist: 2.0 - laser_max_range: 100.0 - laser_min_range: -1.0 - laser_model_type: "/likelihood_field" - max_beams: 60 - max_particles: 2000 - min_particles: 500 - odom_frame_id: "/odom" - pf_err: 0.05 - pf_z: 0.99 - recovery_alpha_fast: 0.0 - recovery_alpha_slow: 0.0 - resample_interval: 1 - robot_model_type: "nav2_amcl::DifferentialMotionModel" - save_pose_rate: 0.5 - sigma_hit: 0.2 - tf_broadcast: true - transform_tolerance: 1.0 - update_min_a: 0.2 - update_min_d: 0.25 - z_hit: 0.5 - z_max: 0.05 - z_rand: 0.5 - z_short: 0.05 - scan_topic: scan - set_initial_pose: True - initial_pose: - x: - y: - z: - -bt_navigator: - ros__parameters: - use_sim_time: True - global_frame: map - robot_base_frame: /base_link - robot_base_frame_blackboard_id: "/base_link" - odom_topic: odom - bt_loop_duration: 10 - default_server_timeout: 20 - # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: - # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml - # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml - # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. - default_nav_through_poses_bt_xml: "" - navigators: ["navigate_to_pose", "navigate_through_poses"] - navigate_to_pose: - plugin: "nav2_bt_navigator::NavigateToPoseNavigator" - navigate_through_poses: - plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" - error_code_names: - - compute_path_error_code - - follow_path_error_code - -controller_server: - ros__parameters: - use_sim_time: True - controller_frequency: 20.0 - min_x_velocity_threshold: 0.001 - min_y_velocity_threshold: 0.5 - min_theta_velocity_threshold: 0.001 - progress_checker_plugin: "progress_checker" - goal_checker_plugins: ["goal_checker"] - controller_plugins: ["FollowPath"] - - # Progress checker parameters - progress_checker: - plugin: "nav2_controller::SimpleProgressChecker" - required_movement_radius: 0.5 - movement_time_allowance: 10.0 - # Goal checker parameters - goal_checker: - plugin: "nav2_controller::SimpleGoalChecker" - xy_goal_tolerance: 0.25 - yaw_goal_tolerance: 0.25 - stateful: True - # DWB parameters - FollowPath: - plugin: "dwb_core::DWBLocalPlanner" - debug_trajectory_details: True - min_vel_x: -0.7 - min_vel_y: 0.0 - max_vel_x: 0.7 - max_vel_y: 0.0 - max_vel_theta: 1.0 - min_speed_xy: 0.0 - max_speed_xy: 1.0 - min_speed_theta: 0.0 - acc_lim_x: 2.5 - acc_lim_y: 0.0 - acc_lim_theta: 3.2 - decel_lim_x: -2.5 - decel_lim_y: 0.0 - decel_lim_theta: -3.2 - vx_samples: 20 - vy_samples: 5 - vtheta_samples: 20 - sim_time: 1.7 - linear_granularity: 0.05 - angular_granularity: 0.025 - transform_tolerance: 0.2 - trans_stopped_velocity: 0.25 - short_circuit_trajectory_evaluation: True - stateful: True - critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] - BaseObstacle.scale: 0.02 - PathAlign.scale: 0.0 - GoalAlign.scale: 0.0 - PathDist.scale: 32.0 - GoalDist.scale: 24.0 - RotateToGoal.scale: 32.0 - RotateToGoal.slowing_factor: 5.0 - RotateToGoal.lookahead_time: -1.0 - -local_costmap: - local_costmap: - ros__parameters: - robot_base_frame: "/base_link" - use_sim_time: True - global_frame: /odom - rolling_window: true - width: 3 - height: 3 - resolution: 0.05 - footprint: "[ [0.96, 0.61], [-0.96, 0.61],[-0.96, -0.61],[0.96, -0.61]]" - plugins: ["voxel_layer", "inflation_layer"] - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 20.0 - inflation_radius: 4. - voxel_layer: - plugin: "nav2_costmap_2d::VoxelLayer" - enabled: True - publish_voxel_map: False - origin_z: 0.0 - z_resolution: 0.05 - z_voxels: 16 - max_obstacle_height: 2.0 - mark_threshold: 0 - observation_sources: scan_front scan_rear - scan_front: - topic: //scan_front - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - scan_rear: - topic: //scan_rear - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - map_subscribe_transient_local: True - always_send_full_costmap: True - -global_costmap: - global_costmap: - ros__parameters: - robot_base_frame: "/base_link" - global_frame: "map" - use_sim_time: True - # robot_radius: 0.22 - footprint: "[ [0.55, 0.35], [-0.55, 0.35],[-0.55, -0.35],[0.55, -0.35]]" - plugins: ["static_layer", "obstacle_layer", "inflation_layer"] - obstacle_layer: - plugin: "nav2_costmap_2d::ObstacleLayer" - enabled: True - observation_sources: scan_front scan_rear - scan_front: - topic: //scan_front - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - scan_rear: - topic: //scan_rear - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - plugin: "nav2_costmap_2d::StaticLayer" - map_subscribe_transient_local: True - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 20.0 - inflation_radius: 5. - always_send_full_costmap: True - -map_server: - ros__parameters: - use_sim_time: True - yaml_filename: "map_warehouse.yaml" - save_map_timeout: 5.0 - frame_id: "map" - -planner_server: - ros__parameters: - use_sim_time: True - planner_plugins: ["GridBased"] - GridBased: - plugin: "nav2_navfn_planner::NavfnPlanner" - tolerance: 0.5 - use_astar: false - allow_unknown: true - - -velocity_smoother: - ros__parameters: - max_velocity: [1.25, 0.0, 1.0] - min_velocity: [-1.25, 0.0, -1.0] - -smoother_server: - ros__parameters: - use_sim_time: True - robot_base_frame: "/base_link" - -behavior_server: - ros__parameters: - costmap_topic: local_costmap/costmap_raw - footprint_topic: local_costmap/published_footprint - cycle_frequency: 10.0 - behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] - spin: - plugin: "nav2_behaviors::Spin" - backup: - plugin: "nav2_behaviors::BackUp" - drive_on_heading: - plugin: "nav2_behaviors::DriveOnHeading" - wait: - plugin: "nav2_behaviors::Wait" - global_frame: /odom - robot_base_frame: /base_link - transform_tolerance: 0.1 - use_sim_time: true - simulate_ahead_time: 2.0 - max_rotational_vel: 1.0 - min_rotational_vel: 0.4 - rotational_acc_lim: 3.2 - -robot_state_publisher: - ros__parameters: - use_sim_time: True - -waypoint_follower: - ros__parameters: - loop_rate: 20 - stop_on_failure: false - waypoint_task_executor_plugin: "wait_at_waypoint" - wait_at_waypoint: - plugin: "nav2_waypoint_follower::WaitAtWaypoint" - enabled: True - waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml b/ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml deleted file mode 100644 index 5dc607ff..00000000 --- a/ros2_ws/src/otto_fleet_nav/params/jazzy/otto600Params.yaml +++ /dev/null @@ -1,291 +0,0 @@ -robot_spawner_client: - ros__parameters: - robot_name: - robot_namespace: - robot_initial_position: [, , ] - -amcl: - ros__parameters: - use_sim_time: True - alpha1: 0.2 - alpha2: 0.2 - alpha3: 0.2 - alpha4: 0.2 - alpha5: 0.2 - base_frame_id: "/base_link" - beam_skip_distance: 0.5 - beam_skip_error_threshold: 0.9 - beam_skip_threshold: 0.3 - do_beamskip: false - global_frame_id: "map" - map_topic: "map" - lambda_short: 0.1 - laser_likelihood_max_dist: 2.0 - laser_max_range: 100.0 - laser_min_range: -1.0 - laser_model_type: "/likelihood_field" - max_beams: 60 - max_particles: 2000 - min_particles: 500 - odom_frame_id: "/odom" - pf_err: 0.05 - pf_z: 0.99 - recovery_alpha_fast: 0.0 - recovery_alpha_slow: 0.0 - resample_interval: 1 - robot_model_type: "nav2_amcl::DifferentialMotionModel" - save_pose_rate: 0.5 - sigma_hit: 0.2 - tf_broadcast: true - transform_tolerance: 1.0 - update_min_a: 0.2 - update_min_d: 0.25 - z_hit: 0.5 - z_max: 0.05 - z_rand: 0.5 - z_short: 0.05 - scan_topic: scan - set_initial_pose: True - initial_pose: - x: - y: - z: - -bt_navigator: - ros__parameters: - use_sim_time: True - global_frame: map - robot_base_frame: /base_link - robot_base_frame_blackboard_id: "/base_link" - odom_topic: odom - bt_loop_duration: 10 - default_server_timeout: 20 - # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults: - # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml - # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml - # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2. - default_nav_through_poses_bt_xml: "" - navigators: ["navigate_to_pose", "navigate_through_poses"] - navigate_to_pose: - plugin: "nav2_bt_navigator::NavigateToPoseNavigator" - navigate_through_poses: - plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator" - error_code_names: - - compute_path_error_code - - follow_path_error_code - -controller_server: - ros__parameters: - use_sim_time: True - controller_frequency: 20.0 - min_x_velocity_threshold: 0.001 - min_y_velocity_threshold: 0.5 - min_theta_velocity_threshold: 0.001 - progress_checker_plugin: "progress_checker" - goal_checker_plugins: ["goal_checker"] - controller_plugins: ["FollowPath"] - - # Progress checker parameters - progress_checker: - plugin: "nav2_controller::SimpleProgressChecker" - required_movement_radius: 0.5 - movement_time_allowance: 10.0 - # Goal checker parameters - goal_checker: - plugin: "nav2_controller::SimpleGoalChecker" - xy_goal_tolerance: 0.25 - yaw_goal_tolerance: 0.25 - stateful: True - # DWB parameters - FollowPath: - plugin: "dwb_core::DWBLocalPlanner" - debug_trajectory_details: True - min_vel_x: -0.7 - min_vel_y: 0.0 - max_vel_x: 0.7 - max_vel_y: 0.0 - max_vel_theta: 1.0 - min_speed_xy: 0.0 - max_speed_xy: 1.0 - min_speed_theta: 0.0 - acc_lim_x: 2.5 - acc_lim_y: 0.0 - acc_lim_theta: 3.2 - decel_lim_x: -2.5 - decel_lim_y: 0.0 - decel_lim_theta: -3.2 - vx_samples: 20 - vy_samples: 5 - vtheta_samples: 20 - sim_time: 1.7 - linear_granularity: 0.05 - angular_granularity: 0.025 - transform_tolerance: 0.2 - trans_stopped_velocity: 0.25 - short_circuit_trajectory_evaluation: True - stateful: True - critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"] - BaseObstacle.scale: 0.02 - PathAlign.scale: 0.0 - GoalAlign.scale: 0.0 - PathDist.scale: 32.0 - GoalDist.scale: 24.0 - RotateToGoal.scale: 32.0 - RotateToGoal.slowing_factor: 5.0 - RotateToGoal.lookahead_time: -1.0 - -local_costmap: - local_costmap: - ros__parameters: - robot_base_frame: "/base_link" - use_sim_time: True - global_frame: /odom - rolling_window: true - width: 3 - height: 3 - resolution: 0.05 - footprint: "[ [0.55, 0.35], [-0.55, 0.35],[-0.55, -0.35],[0.55, -0.35]]" - plugins: ["voxel_layer", "inflation_layer"] - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 20.0 - inflation_radius: 4. - voxel_layer: - plugin: "nav2_costmap_2d::VoxelLayer" - enabled: True - publish_voxel_map: False - origin_z: 0.0 - z_resolution: 0.05 - z_voxels: 16 - max_obstacle_height: 2.0 - mark_threshold: 0 - observation_sources: scan_front scan_rear - scan_front: - topic: //scan_front - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - scan_rear: - topic: //scan_rear - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - map_subscribe_transient_local: True - always_send_full_costmap: True - -global_costmap: - global_costmap: - ros__parameters: - robot_base_frame: "/base_link" - global_frame: "map" - use_sim_time: True - # robot_radius: 0.22 - footprint: "[ [0.55, 0.35], [-0.55, 0.35],[-0.55, -0.35],[0.55, -0.35]]" - plugins: ["static_layer", "obstacle_layer", "inflation_layer"] - obstacle_layer: - plugin: "nav2_costmap_2d::ObstacleLayer" - enabled: True - observation_sources: scan_front scan_rear - scan_front: - topic: //scan_front - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - scan_rear: - topic: //scan_rear - max_obstacle_height: 2.0 - clearing: True - marking: True - data_type: "LaserScan" - raytrace_max_range: 3.0 - raytrace_min_range: 0.0 - obstacle_max_range: 2.5 - obstacle_min_range: 0.0 - static_layer: - plugin: "nav2_costmap_2d::StaticLayer" - map_subscribe_transient_local: True - inflation_layer: - plugin: "nav2_costmap_2d::InflationLayer" - cost_scaling_factor: 20.0 - inflation_radius: 5. - always_send_full_costmap: True - -map_server: - ros__parameters: - use_sim_time: True - yaml_filename: "map_warehouse.yaml" - save_map_timeout: 5.0 - frame_id: "map" - -planner_server: - ros__parameters: - use_sim_time: True - planner_plugins: ["GridBased"] - GridBased: - plugin: "nav2_navfn_planner::NavfnPlanner" - tolerance: 0.5 - use_astar: false - allow_unknown: true - -smoother_server: - ros__parameters: - use_sim_time: True - robot_base_frame: "/base_link" - -velocity_smoother: - ros__parameters: - max_velocity: [1.25, 0.0, 1.0] - min_velocity: [-1.25, 0.0, -1.0] - -behavior_server: - ros__parameters: - costmap_topic: local_costmap/costmap_raw - footprint_topic: local_costmap/published_footprint - cycle_frequency: 10.0 - behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] - spin: - plugin: "nav2_behaviors::Spin" - backup: - plugin: "nav2_behaviors::BackUp" - drive_on_heading: - plugin: "nav2_behaviors::DriveOnHeading" - wait: - plugin: "nav2_behaviors::Wait" - global_frame: /odom - robot_base_frame: /base_link - transform_tolerance: 0.1 - use_sim_time: true - simulate_ahead_time: 2.0 - max_rotational_vel: 1.0 - min_rotational_vel: 0.4 - rotational_acc_lim: 3.2 - -robot_state_publisher: - ros__parameters: - use_sim_time: True - -waypoint_follower: - ros__parameters: - loop_rate: 20 - stop_on_failure: false - waypoint_task_executor_plugin: "wait_at_waypoint" - wait_at_waypoint: - plugin: "nav2_waypoint_follower::WaitAtWaypoint" - enabled: True - waypoint_pause_duration: 200 \ No newline at end of file diff --git a/ros2_ws/src/otto_fleet_nav/setup.py b/ros2_ws/src/otto_fleet_nav/setup.py index baa447a2..63e0ca67 100644 --- a/ros2_ws/src/otto_fleet_nav/setup.py +++ b/ros2_ws/src/otto_fleet_nav/setup.py @@ -17,7 +17,6 @@ (os.path.join('share', package_name, 'maps'), glob(os.path.join('maps', '*.yaml'))), (os.path.join('share', package_name, 'params', 'iron'), glob(os.path.join('params', 'iron', '*.yaml'))), (os.path.join('share', package_name, 'params', 'humble'), glob(os.path.join('params', 'humble', '*.yaml'))), - (os.path.join('share', package_name, 'params', 'jazzy'), glob(os.path.join('params', 'jazzy', '*.yaml'))), (os.path.join('share', package_name, 'rviz'), glob(os.path.join('rviz', '*.rviz'))), (os.path.join('share', package_name, 'config'), glob(os.path.join('config', '*.yaml'))), (os.path.join('share', package_name, 'behaviour_trees'), glob(os.path.join('behaviour_trees', '*.xml'))) diff --git a/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml b/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml index 952af90a..c30edfc1 100644 --- a/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml +++ b/ros2_ws/src/roscon2023_demo/config/ROSCon2023Config_4.yaml @@ -42,17 +42,17 @@ fleet: arms: - namespace: ur1 - num_of_boxes: 12 + num_of_boxes: 18 launch_rviz: false - namespace: ur2 - num_of_boxes: 12 + num_of_boxes: 18 launch_rviz: false - namespace: ur3 - num_of_boxes: 12 + num_of_boxes: 18 launch_rviz: false - namespace: ur4 - num_of_boxes: 12 + num_of_boxes: 18 launch_rviz: false \ No newline at end of file diff --git a/ros2_ws/src/ur_moveit_config/CHANGELOG.rst b/ros2_ws/src/ur_moveit_config/CHANGELOG.rst deleted file mode 100644 index 12234f56..00000000 --- a/ros2_ws/src/ur_moveit_config/CHANGELOG.rst +++ /dev/null @@ -1,108 +0,0 @@ -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Changelog for package ur_moveit_config -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -2.5.2 (2025-01-21) ------------------- -* ur_moveit_config: Do not change default controller when using fake hardware (`#1237 `_) -* Contributors: Felix Exner - -2.5.1 (2024-12-21) ------------------- - -2.5.0 (2024-12-18) ------------------- -* Update package maintainers (backport of `#1203 `_) -* Contributors: mergify[bot] - -2.2.16 (2024-10-28) -------------------- -* Properly handle use_sim_time (`#1146 `_) (`#1159 `_) -* Disable execution_duration_monitoring by default (`#1133 `_) -* Added option to publish SRDF file. -* Contributors: Felix Exner, mergify[bot], v-marsh - -2.2.15 (2024-07-26) -------------------- - -2.2.14 (2024-07-01) -------------------- - -2.2.13 (2024-06-17) -------------------- -* Add servo node config to disable advertising /get_planning_scene (backport of `#990 `_) -* Contributors: Ruddick Lawrence - -2.2.12 (2024-05-16) -------------------- -* Define default maximum accelerations for MoveIt (backport of `#645 `_) -* Fix multi-line strings in DeclareLaunchArgument (`#948 `_) -* Contributors: Robert Wilbrandt, Matthijs van der Burgh - -2.2.11 (2024-04-08) -------------------- -* Add UR30 support (`#930 `_) -* Contributors: Felix Exner, Vincenzo Di Pentima - -2.2.10 (2024-01-03) -------------------- - -2.2.9 (2023-09-22) ------------------- -* Added support for UR20 (`#805 `_) -* Contributors: mergify[bot], Felix Exner - -2.2.8 (2023-06-26) ------------------- - -2.2.7 (2023-06-02) ------------------- -* Update linters & checkers (backport `#426 `_) (`#556 `_) -* Contributors: mergify[bot], Felix Exner - -2.2.6 (2022-11-28) ------------------- - -2.2.5 (2022-11-19) ------------------- - -2.2.4 (2022-10-07) ------------------- -* Fix selecting the right controller given fake_hw - This was falsely introduced earlier. This is a working version. -* add ur_moveit.launch.py parameter to use working controller when using fake hardware (`#464 `_) - add script parameter to use correct controller when using fake hardware -* Contributors: Felix Exner, adverley - -2.2.3 (2022-07-27) ------------------- - -2.2.2 (2022-07-19) ------------------- -* Made sure all past maintainers are listed as authors (`#429 `_) -* Contributors: Felix Exner - -2.2.1 (2022-06-27) ------------------- -* Remove non-required dependency from CMakeLists (`#414 `_) -* Contributors: Felix Exner - -2.2.0 (2022-06-20) ------------------- -* Updated package maintainers -* Prepare for humble (`#394 `_) -* Update dependencies on all packages (`#391 `_) -* Replace warehouse_ros_mongo with warehouse_ros_sqlite (`#362 `_) -* Add missing dep to warehouse_ros_mongo (`#352 `_) -* Update license to BSD-3-Clause (`#277 `_) -* Correct loading kinematics parameters from yaml (`#308 `_) -* Update MoveIt file for working with simulation. (`#278 `_) -* Changing default controller in MoveIt config. (`#288 `_) -* Move Servo launching into the main MoveIt launch file. Make it optional. (`#239 `_) -* Joint limits parameters for Moveit planning (`#187 `_) -* Update Servo parameters, for smooth motion (`#188 `_) -* Enabling velocity mode (`#146 `_) -* Remove obsolete and unused files and packages. (`#80 `_) -* Review CI by correcting the configurations (`#71 `_) -* Add support for gpios, update MoveIt and ros2_control launching (`#66 `_) -* Contributors: AndyZe, Denis Štogl, Felix Exner, livanov93, Robert Wilbrandt diff --git a/ros2_ws/src/ur_moveit_config/CMakeLists.txt b/ros2_ws/src/ur_moveit_config/CMakeLists.txt deleted file mode 100644 index e47ea764..00000000 --- a/ros2_ws/src/ur_moveit_config/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(ur_moveit_config) - -find_package(ament_cmake REQUIRED) -find_package(ament_cmake_python REQUIRED) - -install(DIRECTORY config launch rviz srdf - DESTINATION share/${PROJECT_NAME} -) - -# Install Python modules -ament_python_install_package(${PROJECT_NAME}) -ament_python_install_module(${PROJECT_NAME}/launch_common.py) - -ament_package() diff --git a/ros2_ws/src/ur_moveit_config/config/controllers.yaml b/ros2_ws/src/ur_moveit_config/config/controllers.yaml deleted file mode 100644 index 784ebd31..00000000 --- a/ros2_ws/src/ur_moveit_config/config/controllers.yaml +++ /dev/null @@ -1,29 +0,0 @@ -controller_names: - - scaled_joint_trajectory_controller - - joint_trajectory_controller - - -scaled_joint_trajectory_controller: - action_ns: follow_joint_trajectory - type: FollowJointTrajectory - default: true - joints: - - shoulder_pan_joint - - shoulder_lift_joint - - elbow_joint - - wrist_1_joint - - wrist_2_joint - - wrist_3_joint - - -joint_trajectory_controller: - action_ns: follow_joint_trajectory - type: FollowJointTrajectory - default: false - joints: - - shoulder_pan_joint - - shoulder_lift_joint - - elbow_joint - - wrist_1_joint - - wrist_2_joint - - wrist_3_joint diff --git a/ros2_ws/src/ur_moveit_config/config/joint_limits.yaml b/ros2_ws/src/ur_moveit_config/config/joint_limits.yaml deleted file mode 100644 index dc216949..00000000 --- a/ros2_ws/src/ur_moveit_config/config/joint_limits.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# These limits are used by MoveIt and augment/override the definitions in ur_description. -# -# While the robot does not inherently have any limits on joint accelerations (only on torques), -# MoveIt needs them for time parametrization. They were chosen conservatively to work in most use -# cases. For specific applications, higher values might lead to better execution performance. - -joint_limits: - shoulder_pan_joint: - has_acceleration_limits: true - max_acceleration: 5.0 - shoulder_lift_joint: - has_acceleration_limits: true - max_acceleration: 5.0 - elbow_joint: - has_acceleration_limits: true - max_acceleration: 5.0 - wrist_1_joint: - has_acceleration_limits: true - max_acceleration: 5.0 - wrist_2_joint: - has_acceleration_limits: true - max_acceleration: 5.0 - wrist_3_joint: - has_acceleration_limits: true - max_acceleration: 5.0 diff --git a/ros2_ws/src/ur_moveit_config/config/kinematics.yaml b/ros2_ws/src/ur_moveit_config/config/kinematics.yaml deleted file mode 100644 index af3d30e8..00000000 --- a/ros2_ws/src/ur_moveit_config/config/kinematics.yaml +++ /dev/null @@ -1,8 +0,0 @@ -/**: - ros__parameters: - robot_description_kinematics: - ur_manipulator: - kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin - kinematics_solver_search_resolution: 0.005 - kinematics_solver_timeout: 0.005 - kinematics_solver_attempts: 3 diff --git a/ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml b/ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml deleted file mode 100644 index 4dcc7a77..00000000 --- a/ros2_ws/src/ur_moveit_config/config/ompl_planning.yaml +++ /dev/null @@ -1,70 +0,0 @@ -planner_configs: - SBLkConfigDefault: - type: geometric::SBL - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - ESTkConfigDefault: - type: geometric::EST - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup() - goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 - LBKPIECEkConfigDefault: - type: geometric::LBKPIECE - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 - min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 - BKPIECEkConfigDefault: - type: geometric::BKPIECE - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 - failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 - min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 - KPIECEkConfigDefault: - type: geometric::KPIECE - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 - border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.] - failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 - min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 - RRTkConfigDefault: - type: geometric::RRT - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 - RRTConnectkConfigDefault: - type: geometric::RRTConnect - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - RRTstarkConfigDefault: - type: geometric::RRTstar - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 - delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1 - TRRTkConfigDefault: - type: geometric::TRRT - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() - goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 - max_states_failed: 10 # when to start increasing temp. default: 10 - temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0 - min_temperature: 10e-10 # lower limit of temp change. default: 10e-10 - init_temperature: 10e-6 # initial temperature. default: 10e-6 - frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() - frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 - k_constant: 0.0 # value used to normalize expression. default: 0.0 set in setup() - PRMkConfigDefault: - type: geometric::PRM - max_nearest_neighbors: 10 # use k nearest neighbors. default: 10 - PRMstarkConfigDefault: - type: geometric::PRMstar -ur_manipulator: - planner_configs: - - SBLkConfigDefault - - ESTkConfigDefault - - LBKPIECEkConfigDefault - - BKPIECEkConfigDefault - - KPIECEkConfigDefault - - RRTkConfigDefault - - RRTConnectkConfigDefault - - RRTstarkConfigDefault - - TRRTkConfigDefault - - PRMkConfigDefault - - PRMstarkConfigDefault - ##Note: commenting the following line lets moveit chose RRTConnect as default planner rather than LBKPIECE - #projection_evaluator: joints(shoulder_pan_joint,shoulder_lift_joint) - longest_valid_segment_fraction: 0.01 diff --git a/ros2_ws/src/ur_moveit_config/config/ur_servo.yaml b/ros2_ws/src/ur_moveit_config/config/ur_servo.yaml deleted file mode 100644 index 3b1b0ba1..00000000 --- a/ros2_ws/src/ur_moveit_config/config/ur_servo.yaml +++ /dev/null @@ -1,82 +0,0 @@ -############################################### -# Modify all parameters related to servoing here -############################################### -use_gazebo: false # Whether the robot is started in a Gazebo simulation environment - -## Properties of incoming commands -command_in_type: "speed_units" # "unitless"> in the range [-1:1], as if from joystick. "speed_units"> cmds are in m/s and rad/s -scale: - # Scale parameters are only used if command_in_type=="unitless" - linear: 0.6 # Max linear velocity. Meters per publish_period. Unit is [m/s]. Only used for Cartesian commands. - rotational: 0.3 # Max angular velocity. Rads per publish_period. Unit is [rad/s]. Only used for Cartesian commands. - # Max joint angular/linear velocity. Rads or Meters per publish period. Only used for joint commands on joint_command_in_topic. - joint: 0.01 -# This is a fudge factor to account for any latency in the system, e.g. network latency or poor low-level -# controller performance. It essentially increases the timestep when calculating the target pose, to move the target -# pose farther away. [seconds] -system_latency_compensation: 0.04 - -## Properties of outgoing commands -publish_period: 0.004 # 1/Nominal publish rate [seconds] -low_latency_mode: false # Set this to true to publish as soon as an incoming Twist command is received (publish_period is ignored) - -# What type of topic does your robot driver expect? -# Currently supported are std_msgs/Float64MultiArray or trajectory_msgs/JointTrajectory -command_out_type: std_msgs/Float64MultiArray - -# What to publish? Can save some bandwidth as most robots only require positions or velocities -publish_joint_positions: true -publish_joint_velocities: false -publish_joint_accelerations: false - -## Plugins for smoothing outgoing commands -smoothing_filter_plugin_name: "online_signal_smoothing::ButterworthFilterPlugin" - -# If is_primary_planning_scene_monitor is set to true, the Servo server's PlanningScene advertises the /get_planning_scene service, -# which other nodes can use as a source for information about the planning environment. -# NOTE: If a different node in your system is responsible for the "primary" planning scene instance (e.g. the MoveGroup node), -# then is_primary_planning_scene_monitor needs to be set to false. -is_primary_planning_scene_monitor: false - -## Incoming Joint State properties -low_pass_filter_coeff: 10.0 # Larger --> trust the filtered data more, trust the measurements less. - -## MoveIt properties -move_group_name: ur_manipulator # Often 'manipulator' or 'arm' -planning_frame: base_link # The MoveIt planning frame. Often 'base_link' or 'world' - -## Other frames -ee_frame_name: tool0 # The name of the end effector link, used to return the EE pose -robot_link_command_frame: tool0 # commands must be given in the frame of a robot link. Usually either the base or end effector - -## Stopping behaviour -incoming_command_timeout: 0.1 # Stop servoing if X seconds elapse without a new command -# If 0, republish commands forever even if the robot is stationary. Otherwise, specify num. to publish. -# Important because ROS may drop some messages and we need the robot to halt reliably. -num_outgoing_halt_msgs_to_publish: 4 - -## Configure handling of singularities and joint limits -lower_singularity_threshold: 100.0 # Start decelerating when the condition number hits this (close to singularity) -hard_stop_singularity_threshold: 200.0 # Stop when the condition number hits this -joint_limit_margin: 0.1 # added as a buffer to joint limits [radians]. If moving quickly, make this larger. - -## Topic names -cartesian_command_in_topic: ~/delta_twist_cmds # Topic for incoming Cartesian twist commands -joint_command_in_topic: ~/delta_joint_cmds # Topic for incoming joint angle commands -joint_topic: /joint_states -status_topic: ~/status # Publish status to this topic -command_out_topic: /forward_position_controller/commands # Publish outgoing commands here - -## Collision checking for the entire robot body -check_collisions: true # Check collisions? -collision_check_rate: 5.0 # [Hz] Collision-checking can easily bog down a CPU if done too often. -# Two collision check algorithms are available: -# "threshold_distance" begins slowing down when nearer than a specified distance. Good if you want to tune collision thresholds manually. -# "stop_distance" stops if a collision is nearer than the worst-case stopping distance and the distance is decreasing. Requires joint acceleration limits -collision_check_type: threshold_distance -# Parameters for "threshold_distance"-type collision checking -self_collision_proximity_threshold: 0.01 # Start decelerating when a self-collision is this far [m] -scene_collision_proximity_threshold: 0.02 # Start decelerating when a scene collision is this far [m] -# Parameters for "stop_distance"-type collision checking -collision_distance_safety_factor: 1000.0 # Must be >= 1. A large safety factor is recommended to account for latency -min_allowable_collision_distance: 0.01 # Stop if a collision is closer than this [m] diff --git a/ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py b/ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py deleted file mode 100644 index 3ceb5558..00000000 --- a/ros2_ws/src/ur_moveit_config/launch/ur_moveit.launch.py +++ /dev/null @@ -1,382 +0,0 @@ -# Copyright (c) 2021 PickNik, Inc. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the {copyright_holder} nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -# -# Author: Denis Stogl - -import os - -from launch_ros.actions import Node -from launch_ros.substitutions import FindPackageShare -from ur_moveit_config.launch_common import load_yaml - -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, OpaqueFunction -from launch.conditions import IfCondition -from launch.substitutions import ( - Command, - FindExecutable, - LaunchConfiguration, - PathJoinSubstitution, -) - - -def launch_setup(context, *args, **kwargs): - - # Initialize Arguments - ur_type = LaunchConfiguration("ur_type") - safety_limits = LaunchConfiguration("safety_limits") - safety_pos_margin = LaunchConfiguration("safety_pos_margin") - safety_k_position = LaunchConfiguration("safety_k_position") - # General arguments - description_package = LaunchConfiguration("description_package") - description_file = LaunchConfiguration("description_file") - _publish_robot_description_semantic = LaunchConfiguration("publish_robot_description_semantic") - moveit_config_package = LaunchConfiguration("moveit_config_package") - moveit_joint_limits_file = LaunchConfiguration("moveit_joint_limits_file") - moveit_config_file = LaunchConfiguration("moveit_config_file") - warehouse_sqlite_path = LaunchConfiguration("warehouse_sqlite_path") - prefix = LaunchConfiguration("prefix") - use_sim_time = LaunchConfiguration("use_sim_time") - launch_rviz = LaunchConfiguration("launch_rviz") - launch_servo = LaunchConfiguration("launch_servo") - - joint_limit_params = PathJoinSubstitution( - [FindPackageShare(description_package), "config", ur_type, "joint_limits.yaml"] - ) - kinematics_params = PathJoinSubstitution( - [FindPackageShare(description_package), "config", ur_type, "default_kinematics.yaml"] - ) - physical_params = PathJoinSubstitution( - [FindPackageShare(description_package), "config", ur_type, "physical_parameters.yaml"] - ) - visual_params = PathJoinSubstitution( - [FindPackageShare(description_package), "config", ur_type, "visual_parameters.yaml"] - ) - - robot_description_content = Command( - [ - PathJoinSubstitution([FindExecutable(name="xacro")]), - " ", - PathJoinSubstitution([FindPackageShare(description_package), "urdf", description_file]), - " ", - "robot_ip:=xxx.yyy.zzz.www", - " ", - "joint_limit_params:=", - joint_limit_params, - " ", - "kinematics_params:=", - kinematics_params, - " ", - "physical_params:=", - physical_params, - " ", - "visual_params:=", - visual_params, - " ", - "safety_limits:=", - safety_limits, - " ", - "safety_pos_margin:=", - safety_pos_margin, - " ", - "safety_k_position:=", - safety_k_position, - " ", - "name:=", - "ur", - " ", - "ur_type:=", - ur_type, - " ", - "script_filename:=ros_control.urscript", - " ", - "input_recipe_filename:=rtde_input_recipe.txt", - " ", - "output_recipe_filename:=rtde_output_recipe.txt", - " ", - "prefix:=", - prefix, - " ", - ] - ) - robot_description = {"robot_description": robot_description_content} - - # MoveIt Configuration - robot_description_semantic_content = Command( - [ - PathJoinSubstitution([FindExecutable(name="xacro")]), - " ", - PathJoinSubstitution( - [FindPackageShare(moveit_config_package), "srdf", moveit_config_file] - ), - " ", - "name:=", - # Also ur_type parameter could be used but then the planning group names in yaml - # configs has to be updated! - "ur", - " ", - "prefix:=", - prefix, - " ", - ] - ) - robot_description_semantic = {"robot_description_semantic": robot_description_semantic_content} - - publish_robot_description_semantic = { - "publish_robot_description_semantic": _publish_robot_description_semantic - } - - robot_description_kinematics = PathJoinSubstitution( - [FindPackageShare(moveit_config_package), "config", "kinematics.yaml"] - ) - - robot_description_planning = { - "robot_description_planning": load_yaml( - str(moveit_config_package.perform(context)), - os.path.join("config", str(moveit_joint_limits_file.perform(context))), - ) - } - - # Planning Configuration - ompl_planning_pipeline_config = { - "move_group": { - "planning_plugin": "ompl_interface/OMPLPlanner", - "request_adapters": """default_planner_request_adapters/AddTimeOptimalParameterization default_planner_request_adapters/FixWorkspaceBounds default_planner_request_adapters/FixStartStateBounds default_planner_request_adapters/FixStartStateCollision default_planner_request_adapters/FixStartStatePathConstraints""", - "start_state_max_bounds_error": 0.1, - } - } - ompl_planning_yaml = load_yaml("ur_moveit_config", "config/ompl_planning.yaml") - ompl_planning_pipeline_config["move_group"].update(ompl_planning_yaml) - - # Trajectory Execution Configuration - controllers_yaml = load_yaml("ur_moveit_config", "config/controllers.yaml") - # the scaled_joint_trajectory_controller does not work on fake hardware - change_controllers = context.perform_substitution(use_sim_time) - if change_controllers == "true": - controllers_yaml["scaled_joint_trajectory_controller"]["default"] = False - controllers_yaml["joint_trajectory_controller"]["default"] = True - - moveit_controllers = { - "moveit_simple_controller_manager": controllers_yaml, - "moveit_controller_manager": "moveit_simple_controller_manager/MoveItSimpleControllerManager", - } - - trajectory_execution = { - "moveit_manage_controllers": False, - "trajectory_execution.allowed_execution_duration_scaling": 1.2, - "trajectory_execution.allowed_goal_duration_margin": 0.5, - "trajectory_execution.allowed_start_tolerance": 0.01, - # Execution time monitoring can be incompatible with the scaled JTC - "trajectory_execution.execution_duration_monitoring": False, - } - - planning_scene_monitor_parameters = { - "publish_planning_scene": True, - "publish_geometry_updates": True, - "publish_state_updates": True, - "publish_transforms_updates": True, - } - - warehouse_ros_config = { - "warehouse_plugin": "warehouse_ros_sqlite::DatabaseConnection", - "warehouse_host": warehouse_sqlite_path, - } - - # Start the actual move_group node/action server - move_group_node = Node( - package="moveit_ros_move_group", - executable="move_group", - output="screen", - parameters=[ - robot_description, - robot_description_semantic, - publish_robot_description_semantic, - robot_description_kinematics, - robot_description_planning, - ompl_planning_pipeline_config, - trajectory_execution, - moveit_controllers, - planning_scene_monitor_parameters, - {"use_sim_time": use_sim_time}, - warehouse_ros_config, - ], - ) - - # rviz with moveit configuration - rviz_config_file = PathJoinSubstitution( - [FindPackageShare(moveit_config_package), "rviz", "view_robot.rviz"] - ) - rviz_node = Node( - package="rviz2", - condition=IfCondition(launch_rviz), - executable="rviz2", - name="rviz2_moveit", - output="log", - arguments=["-d", rviz_config_file], - parameters=[ - robot_description, - robot_description_semantic, - ompl_planning_pipeline_config, - robot_description_kinematics, - robot_description_planning, - warehouse_ros_config, - { - "use_sim_time": use_sim_time, - }, - ], - ) - - # Servo node for realtime control - servo_yaml = load_yaml("ur_moveit_config", "config/ur_servo.yaml") - servo_params = {"moveit_servo": servo_yaml} - servo_node = Node( - package="moveit_servo", - condition=IfCondition(launch_servo), - executable="servo_node_main", - parameters=[ - servo_params, - robot_description, - robot_description_semantic, - ], - output="screen", - ) - - nodes_to_start = [move_group_node, rviz_node, servo_node] - - return nodes_to_start - - -def generate_launch_description(): - - declared_arguments = [] - # UR specific arguments - declared_arguments.append( - DeclareLaunchArgument( - "ur_type", - description="Type/series of used UR robot.", - choices=["ur3", "ur3e", "ur5", "ur5e", "ur10", "ur10e", "ur16e", "ur20", "ur30"], - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "safety_limits", - default_value="true", - description="Enables the safety limits controller if true.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "safety_pos_margin", - default_value="0.15", - description="The margin to lower and upper limits in the safety controller.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "safety_k_position", - default_value="20", - description="k-position factor in the safety controller.", - ) - ) - # General arguments - declared_arguments.append( - DeclareLaunchArgument( - "description_package", - default_value="ur_description", - description="Description package with robot URDF/XACRO files. Usually the argument " - "is not set, it enables use of a custom description.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "description_file", - default_value="ur.urdf.xacro", - description="URDF/XACRO description file with the robot.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "publish_robot_description_semantic", - default_value="True", - description="Whether to publish the SRDF description on topic /robot_description_semantic.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "moveit_config_package", - default_value="ur_moveit_config", - description="MoveIt config package with robot SRDF/XACRO files. Usually the argument " - "is not set, it enables use of a custom moveit config.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "moveit_config_file", - default_value="ur.srdf.xacro", - description="MoveIt SRDF/XACRO description file with the robot.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "moveit_joint_limits_file", - default_value="joint_limits.yaml", - description="MoveIt joint limits that augment or override the values from the URDF robot_description.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "warehouse_sqlite_path", - default_value=os.path.expanduser("~/.ros/warehouse_ros.sqlite"), - description="Path where the warehouse database should be stored", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "use_sim_time", - default_value="false", - description="Make MoveIt to use simulation time. This is needed for the trajectory planing in simulation.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument( - "prefix", - default_value='""', - description="Prefix of the joint names, useful for " - "multi-robot setup. If changed than also joint names in the controllers' configuration " - "have to be updated.", - ) - ) - declared_arguments.append( - DeclareLaunchArgument("launch_rviz", default_value="true", description="Launch RViz?") - ) - declared_arguments.append( - DeclareLaunchArgument("launch_servo", default_value="true", description="Launch Servo?") - ) - - return LaunchDescription(declared_arguments + [OpaqueFunction(function=launch_setup)]) diff --git a/ros2_ws/src/ur_moveit_config/package.xml b/ros2_ws/src/ur_moveit_config/package.xml deleted file mode 100644 index fa9e18e9..00000000 --- a/ros2_ws/src/ur_moveit_config/package.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - ur_moveit_config - 2.5.2 - - An example package with MoveIt2 configurations for UR robots. - - - Felix Exner - Rune Søe-Knudsen - Universal Robots A/S - - Apache2.0 - - Lovro Ivanov - Andy Zelenak - Vincenzo Di Pentima - Denis Stogl - - ament_cmake - ament_cmake_python - - launch - launch_ros - moveit_kinematics - moveit_planners_ompl - moveit_ros_move_group - moveit_ros_visualization - moveit_servo - moveit_simple_controller_manager - rviz2 - ur_description - urdf - warehouse_ros_sqlite - xacro - - - ament_cmake - - diff --git a/ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz b/ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz deleted file mode 100644 index 47e8f87d..00000000 --- a/ros2_ws/src/ur_moveit_config/rviz/view_robot.rviz +++ /dev/null @@ -1,311 +0,0 @@ -Panels: - - Class: rviz_common/Displays - Help Height: 87 - Name: Displays - Property Tree Widget: - Expanded: - - /Global Options1 - Splitter Ratio: 0.4957627058029175 - Tree Height: 573 - - Class: rviz_common/Selection - Name: Selection - - Class: rviz_common/Tool Properties - Expanded: - - /2D Goal Pose1 - - /Publish Point1 - Name: Tool Properties - Splitter Ratio: 0.5886790156364441 - - Class: rviz_common/Views - Expanded: - - /Current View1 - Name: Views - Splitter Ratio: 0.5 -Visualization Manager: - Class: "" - Displays: - - Alpha: 0.5 - Cell Size: 1 - Class: rviz_default_plugins/Grid - Color: 160; 160; 164 - Enabled: true - Line Style: - Line Width: 0.029999999329447746 - Value: Lines - Name: Grid - Normal Cell Count: 0 - Offset: - X: 0 - Y: 0 - Z: 0 - Plane: XY - Plane Cell Count: 10 - Reference Frame: - Value: true - - Acceleration_Scaling_Factor: 0.1 - Class: moveit_rviz_plugin/MotionPlanning - Enabled: true - Move Group Namespace: "" - MoveIt_Allow_Approximate_IK: false - MoveIt_Allow_External_Program: false - MoveIt_Allow_Replanning: false - MoveIt_Allow_Sensor_Positioning: false - MoveIt_Planning_Attempts: 10 - MoveIt_Planning_Time: 5 - MoveIt_Use_Cartesian_Path: false - MoveIt_Use_Constraint_Aware_IK: false - MoveIt_Warehouse_Host: 127.0.0.1 - MoveIt_Warehouse_Port: 33829 - MoveIt_Workspace: - Center: - X: 0 - Y: 0 - Z: 0 - Size: - X: 2 - Y: 2 - Z: 2 - Name: MotionPlanning - Planned Path: - Color Enabled: true - Interrupt Display: true - Links: - All Links Enabled: true - Expand Joint Details: false - Expand Link Details: false - Expand Tree: false - Link Tree Style: Links in Alphabetic Order - base: - Alpha: 1 - Show Axes: false - Show Trail: false - base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - base_link_inertia: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - flange: - Alpha: 1 - Show Axes: false - Show Trail: false - forearm_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - shoulder_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - tool0: - Alpha: 1 - Show Axes: false - Show Trail: false - upper_arm_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - wrist_1_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - wrist_2_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - wrist_3_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - Loop Animation: false - Robot Alpha: 0.5 - Robot Color: 150; 50; 150 - Show Robot Collision: false - Show Robot Visual: true - Show Trail: false - State Display Time: 0.05 s - Trail Step Size: 1 - Trajectory Topic: /display_planned_path - Planning Metrics: - Payload: 1 - Show Joint Torques: false - Show Manipulability: false - Show Manipulability Index: false - Show Weight Limit: false - TextHeight: 0.07999999821186066 - Planning Request: - Colliding Link Color: 255; 0; 0 - Goal State Alpha: 1 - Goal State Color: 250; 128; 0 - Interactive Marker Size: 0 - Joint Violation Color: 255; 0; 255 - Planning Group: ur_manipulator - Query Goal State: true - Query Start State: false - Show Workspace: false - Start State Alpha: 1 - Start State Color: 0; 255; 0 - Planning Scene Topic: monitored_planning_scene - Robot Description: robot_description - Scene Geometry: - Scene Alpha: 0.8999999761581421 - Scene Color: 50; 230; 50 - Scene Display Time: 0.009999999776482582 - Show Scene Geometry: true - Voxel Coloring: Z-Axis - Voxel Rendering: Occupied Voxels - Scene Robot: - Attached Body Color: 150; 50; 150 - Links: - All Links Enabled: true - Expand Joint Details: false - Expand Link Details: false - Expand Tree: false - Link Tree Style: Links in Alphabetic Order - base: - Alpha: 1 - Show Axes: false - Show Trail: false - base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - base_link_inertia: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - flange: - Alpha: 1 - Show Axes: false - Show Trail: false - forearm_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - shoulder_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - tool0: - Alpha: 1 - Show Axes: false - Show Trail: false - upper_arm_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - wrist_1_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - wrist_2_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - wrist_3_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - Robot Alpha: 1 - Show Robot Collision: false - Show Robot Visual: true - Value: true - Velocity_Scaling_Factor: 0.1 - Enabled: true - Global Options: - Background Color: 48; 48; 48 - Fixed Frame: world - Frame Rate: 30 - Name: root - Tools: - - Class: rviz_default_plugins/Interact - Hide Inactive Objects: true - - Class: rviz_default_plugins/MoveCamera - - Class: rviz_default_plugins/Select - - Class: rviz_default_plugins/FocusCamera - - Class: rviz_default_plugins/Measure - Line color: 128; 128; 0 - - Class: rviz_default_plugins/SetInitialPose - Topic: - Depth: 5 - Durability Policy: Volatile - History Policy: Keep Last - Reliability Policy: Reliable - Value: /initialpose - - Class: rviz_default_plugins/SetGoal - Topic: - Depth: 5 - Durability Policy: Volatile - History Policy: Keep Last - Reliability Policy: Reliable - Value: /goal_pose - - Class: rviz_default_plugins/PublishPoint - Single click: true - Topic: - Depth: 5 - Durability Policy: Volatile - History Policy: Keep Last - Reliability Policy: Reliable - Value: /clicked_point - Transformation: - Current: - Class: rviz_default_plugins/TF - Value: true - Views: - Current: - Class: rviz_default_plugins/Orbit - Distance: 6.619869709014893 - Enable Stereo Rendering: - Stereo Eye Separation: 0.05999999865889549 - Stereo Focal Distance: 1 - Swap Stereo Eyes: false - Value: false - Focal Point: - X: 0.2489434778690338 - Y: -0.013962505385279655 - Z: 0.13800443708896637 - Focal Shape Fixed Size: true - Focal Shape Size: 0.05000000074505806 - Invert Z Axis: false - Name: Current View - Near Clip Distance: 0.009999999776482582 - Pitch: 0.4103981554508209 - Target Frame: - Value: Orbit (rviz) - Yaw: 1.210397720336914 - Saved: ~ -Window Geometry: - Displays: - collapsed: false - Height: 1381 - Hide Left Dock: false - Hide Right Dock: false - MotionPlanning: - collapsed: false - MotionPlanning - Trajectory Slider: - collapsed: false - QMainWindow State: 000000ff00000000fd0000000400000000000001e0000004f6fc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000007901000003fb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000046000002e3000000ff01000003fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000005201000003fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000032a00000212000001b9010000030000000100000110000004f6fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000046000004f6000000d701000003fb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d006501000000000000045000000000000000000000070e000004f600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 - Selection: - collapsed: false - Tool Properties: - collapsed: false - Views: - collapsed: false - Width: 2560 - X: 0 - Y: 30 diff --git a/ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro b/ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro deleted file mode 100644 index 0ae2cca2..00000000 --- a/ros2_ws/src/ur_moveit_config/srdf/ur.srdf.xacro +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro b/ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro deleted file mode 100644 index 04554f33..00000000 --- a/ros2_ws/src/ur_moveit_config/srdf/ur_macro.srdf.xacro +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ros2_ws/src/ur_moveit_config/ur_moveit_config/__init__.py b/ros2_ws/src/ur_moveit_config/ur_moveit_config/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py b/ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py deleted file mode 100644 index c680e878..00000000 --- a/ros2_ws/src/ur_moveit_config/ur_moveit_config/launch_common.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (c) 2021 PickNik, Inc. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of the {copyright_holder} nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -# -# Author: Lovro Ivanov - -import math -import os -import yaml - -from ament_index_python.packages import get_package_share_directory - - -def construct_angle_radians(loader, node): - """Utility function to construct radian values from yaml.""" - value = loader.construct_scalar(node) - try: - return float(value) - except SyntaxError: - raise Exception("invalid expression: %s" % value) - - -def construct_angle_degrees(loader, node): - """Utility function for converting degrees into radians from yaml.""" - return math.radians(construct_angle_radians(loader, node)) - - -def load_yaml(package_name, file_path): - package_path = get_package_share_directory(package_name) - absolute_file_path = os.path.join(package_path, file_path) - - try: - yaml.SafeLoader.add_constructor("!radians", construct_angle_radians) - yaml.SafeLoader.add_constructor("!degrees", construct_angle_degrees) - except Exception: - raise Exception("yaml support not available; install python-yaml") - - try: - with open(absolute_file_path) as file: - return yaml.safe_load(file) - except OSError: # parent of IOError, OSError *and* WindowsError where available - return None - - -def load_yaml_abs(absolute_file_path): - - try: - yaml.SafeLoader.add_constructor("!radians", construct_angle_radians) - yaml.SafeLoader.add_constructor("!degrees", construct_angle_degrees) - except Exception: - raise Exception("yaml support not available; install python-yaml") - - try: - with open(absolute_file_path) as file: - return yaml.safe_load(file) - except OSError: # parent of IOError, OSError *and* WindowsError where available - return None diff --git a/ros2_ws/src/ur_palletization/CMakeLists.txt b/ros2_ws/src/ur_palletization/CMakeLists.txt index d807d57c..f45e8c51 100644 --- a/ros2_ws/src/ur_palletization/CMakeLists.txt +++ b/ros2_ws/src/ur_palletization/CMakeLists.txt @@ -78,7 +78,6 @@ install(TARGETS palletizationNode install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(DIRECTORY rviz DESTINATION share/${PROJECT_NAME}) -install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) diff --git a/ros2_ws/src/ur_palletization/config/sensors_3d.yaml b/ros2_ws/src/ur_palletization/config/sensors_3d.yaml deleted file mode 100644 index 2c6318b6..00000000 --- a/ros2_ws/src/ur_palletization/config/sensors_3d.yaml +++ /dev/null @@ -1,6 +0,0 @@ -/**: - ros__parameters: - sensors: - - "noop" - noop: - sensor_plugin: "~" diff --git a/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py b/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py index 4f0d78a0..d53827ac 100644 --- a/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py +++ b/ros2_ws/src/ur_palletization/launch/ur_palletization.launch.py @@ -44,7 +44,6 @@ from launch.conditions import IfCondition from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution from launch_ros.actions import Node -from launch_ros.parameter_descriptions import ParameterFile from launch_ros.substitutions import FindPackageShare from moveit_configs_utils import MoveItConfigsBuilder from ur_moveit_config.launch_common import load_yaml @@ -206,12 +205,6 @@ def launch_setup(context, *args, **kwargs): "publish_transforms_updates": True, } - # Disable octomap (no 3D sensors in simulation) - sensor_manager_parameters = ParameterFile( - PathJoinSubstitution([FindPackageShare("ur_palletization"), "config", "sensors_3d.yaml"]), - allow_substs=False, - ) - warehouse_ros_config = { "warehouse_plugin": "warehouse_ros_sqlite::DatabaseConnection", "warehouse_host": warehouse_sqlite_path, @@ -226,7 +219,7 @@ def launch_setup(context, *args, **kwargs): "pilz_industrial_motion_planner": { "default_planner_config": "PTP", - "planning_plugins": ["pilz_industrial_motion_planner/CommandPlanner"] + "planning_plugin": "pilz_industrial_motion_planner/CommandPlanner" }, "robot_description_planning":{ "cartesian_limits":{ @@ -279,7 +272,6 @@ def launch_setup(context, *args, **kwargs): trajectory_execution, moveit_controllers, planning_scene_monitor_parameters, - sensor_manager_parameters, {"use_sim_time": use_sim_time}, warehouse_ros_config, pilz_config @@ -301,7 +293,6 @@ def launch_setup(context, *args, **kwargs): trajectory_execution, moveit_controllers, planning_scene_monitor_parameters, - sensor_manager_parameters, {"use_sim_time": use_sim_time}, warehouse_ros_config, {'publish_robot_description': True}, diff --git a/ros2_ws/src/ur_palletization/src/taskConstructor.cpp b/ros2_ws/src/ur_palletization/src/taskConstructor.cpp index 403bf3b7..95dc9e9d 100644 --- a/ros2_ws/src/ur_palletization/src/taskConstructor.cpp +++ b/ros2_ws/src/ur_palletization/src/taskConstructor.cpp @@ -57,7 +57,7 @@ namespace Palletization if ((errorCode = m_moveGroupInterface->plan(plan)) != moveit::core::MoveItErrorCode::SUCCESS || (errorCode = m_moveGroupInterface->execute(plan)) != moveit::core::MoveItErrorCode::SUCCESS) { - RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan for pose " << poseName << " (error code: " << moveit::core::errorCodeToString(errorCode) << ")"); + RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan for pose " << poseName << " (error code: " << moveit::core::error_code_to_string(errorCode) << ")"); return false; } return true; @@ -79,7 +79,7 @@ namespace Palletization if ((errorCode = m_moveGroupInterface->plan(plan)) != moveit::core::MoveItErrorCode::SUCCESS || (errorCode = m_moveGroupInterface->execute(plan)) != moveit::core::MoveItErrorCode::SUCCESS) { - RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan (error code: " << moveit::core::errorCodeToString(errorCode) << ")"); + RCLCPP_ERROR_STREAM(m_node->get_logger(), "Failed to execute move plan (error code: " << moveit::core::error_code_to_string(errorCode) << ")"); return false; } return true; From 7c0c8cc462cd8f2278f8c732eb0b968f2aa1c1f5 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 14:09:28 +0200 Subject: [PATCH 04/12] Revert Docker to push it in separate PR Signed-off-by: Jan Hanca --- Docker/Dockerfile.O3DE | 81 ++++++++++++-- Docker/Dockerfile.ROS | 11 +- Docker/README.md | 26 ++++- Docker/build_ros.sh | 2 + Docker/build_simulation.sh | 220 ++++++++++++++++++++++++++++++++----- 5 files changed, 300 insertions(+), 40 deletions(-) diff --git a/Docker/Dockerfile.O3DE b/Docker/Dockerfile.O3DE index 2de46a24..290bcf3f 100644 --- a/Docker/Dockerfile.O3DE +++ b/Docker/Dockerfile.O3DE @@ -4,8 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 OR MIT # -ARG ROS_VERSION=jazzy -ARG UBUNTU_VERSION=noble +ARG ROS_VERSION=humble +ARG UBUNTU_VERSION=jammy FROM ros:${ROS_VERSION}-ros-base-${UBUNTU_VERSION} @@ -13,14 +13,81 @@ ENV WORKSPACE=/data/workspace WORKDIR $WORKSPACE +# O3DE Arguments +ARG O3DE_REPO=https://github.com/o3de/o3de +ARG O3DE_BRANCH=2505.1 +ARG O3DE_COMMIT=HEAD + +# O3DE Extras Arguments +ARG O3DE_EXTRAS_REPO=https://github.com/o3de/o3de-extras +ARG O3DE_EXTRAS_BRANCH=2505.1 +ARG O3DE_EXTRAS_COMMIT=HEAD + +# ROSCon2023 Human Worker Arguments +ARG ROSCON_DEMO_HUMAN_WORKER_REPO=https://github.com/RobotecAI/o3de-humanworker-gem +ARG ROSCON_DEMO_HUMAN_WORKER_BRANCH=2.0.0 +ARG ROSCON_DEMO_HUMAN_WORKER_COMMIT=HEAD + +# ROSCon2023 UR10 and UR20 Robots Gem Arguments +ARG ROSCON_DEMO_UR_ROBOTS_REPO=https://github.com/RobotecAI/o3de-ur-robots-gem +ARG ROSCON_DEMO_UR_ROBOTS_BRANCH=2.0.0 +ARG ROSCON_DEMO_UR_ROBOTS_COMMIT=HEAD + +# ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem Arguments +ARG ROSCON_DEMO_OTTO_ROBOTS_REPO=https://github.com/RobotecAI/o3de-otto-robots-gem +ARG ROSCON_DEMO_OTTO_ROBOTS_BRANCH=2.0.0 +ARG ROSCON_DEMO_OTTO_ROBOTS_COMMIT=HEAD + # ROSConDemo Arguments ARG ROSCON_DEMO_REPO=https://github.com/RobotecAI/ROSCon2023Demo.git -ARG ROSCON_DEMO_BRANCH=main +ARG ROSCON_DEMO_BRANCH=3.0.1 ARG ROSCON_DEMO_COMMIT=HEAD ARG ROSCON_DEMO_LEVEL=level1 ARG ROSCON_DEMO_FULLSCREEN=0 ARG ROSCON_DEMO_LARGE_SCALE=0 +# O3DE Environment +ENV O3DE_REPO=$O3DE_REPO +ENV O3DE_BRANCH=$O3DE_BRANCH +ENV O3DE_COMMIT=$O3DE_COMMIT +ENV O3DE_ROOT=$WORKSPACE/o3de + +# O3DE Extras Environment Variables +ENV O3DE_EXTRAS_REPO=$O3DE_EXTRAS_REPO +ENV O3DE_EXTRAS_BRANCH=$O3DE_EXTRAS_BRANCH +ENV O3DE_EXTRAS_COMMIT=$O3DE_EXTRAS_COMMIT +ENV O3DE_EXTRAS_ROOT=$WORKSPACE/o3de-extras + +# ROSCon2023 Human Worker Environment Variables +ENV ROSCON_DEMO_HUMAN_WORKER_REPO=$ROSCON_DEMO_HUMAN_WORKER_REPO +ENV ROSCON_DEMO_HUMAN_WORKER_BRANCH=$ROSCON_DEMO_HUMAN_WORKER_BRANCH +ENV ROSCON_DEMO_HUMAN_WORKER_COMMIT=$ROSCON_DEMO_HUMAN_WORKER_COMMIT +ENV ROSCON_DEMO_HUMAN_WORKER_ROOT=$WORKSPACE/o3de-humanworker-gem + +# ROSCon2023 UR10 and UR20 Robots Gem Environment Variables +ENV ROSCON_DEMO_UR_ROBOTS_REPO=$ROSCON_DEMO_UR_ROBOTS_REPO +ENV ROSCON_DEMO_UR_ROBOTS_BRANCH=$ROSCON_DEMO_UR_ROBOTS_BRANCH +ENV ROSCON_DEMO_UR_ROBOTS_COMMIT=$ROSCON_DEMO_UR_ROBOTS_COMMIT +ENV ROSCON_DEMO_UR_ROBOTS_ROOT=$WORKSPACE/o3de-ur-robots-gem + +# ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem Environment Variables +ENV ROSCON_DEMO_OTTO_ROBOTS_REPO=$ROSCON_DEMO_OTTO_ROBOTS_REPO +ENV ROSCON_DEMO_OTTO_ROBOTS_BRANCH=$ROSCON_DEMO_OTTO_ROBOTS_BRANCH +ENV ROSCON_DEMO_OTTO_ROBOTS_COMMIT=$ROSCON_DEMO_OTTO_ROBOTS_COMMIT +ENV ROSCON_DEMO_OTTO_ROBOTS_ROOT=$WORKSPACE/o3de-otto-robots-gem + +# Assets only Gems used in the demo +ENV ROSCON_DEMO_WAREHOUSE_ASSETS_REPO=https://github.com/RobotecAI/robotec-warehouse-assets.git +ENV ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT=$WORKSPACE/robotec-warehouse-assets +ENV ROSCON_DEMO_GENERIC_ASSETS_REPO=https://github.com/RobotecAI/robotec-generic-assets.git +ENV ROSCON_DEMO_GENERIC_ASSETS_ROOT=$WORKSPACE/robotec-generic-assets + +# Robotec.ai additional tooling Gems +ENV ROSCON_DEMO_ROBOTEC_GEMS_REPO=https://github.com/RobotecAI/robotec-o3de-tools.git +ENV ROSCON_DEMO_ROBOTEC_GEMS_BRANCH=o3de-2505 +ENV ROSCON_DEMO_ROBOTEC_GEMS_COMMIT=4006ef9 +ENV ROSCON_DEMO_ROBOTEC_GEMS_ROOT=$WORKSPACE/robotec-o3de-tools + # ROSConDemo Environment Variables ENV ROSCON_DEMO_REPO=$ROSCON_DEMO_REPO ENV ROSCON_DEMO_BRANCH=$ROSCON_DEMO_BRANCH @@ -52,14 +119,11 @@ RUN apt-get update \ && apt-get install -y \ binutils \ clang \ - clang-tools \ cmake \ git \ git-lfs \ libglu1-mesa-dev \ libxcb-xinerama0 \ - libxcb-randr0-dev \ - libxcb-keysyms1-dev \ libfontconfig1-dev \ libnvidia-gl-470 \ libxcb-xkb-dev \ @@ -93,9 +157,10 @@ RUN apt-get update \ ros-${ROS_DISTRO}-navigation2 \ ros-${ROS_DISTRO}-ur-description \ ros-${ROS_DISTRO}-force-torque-sensor-broadcaster \ - ros-${ROS_DISTRO}-simulation-interfaces \ python3-vcstool \ - python3-colcon-common-extensions + python3-rosdep2 \ + python3-colcon-common-extensions \ + && pip install python-statemachine ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp diff --git a/Docker/Dockerfile.ROS b/Docker/Dockerfile.ROS index eacd62b3..3e2604a7 100644 --- a/Docker/Dockerfile.ROS +++ b/Docker/Dockerfile.ROS @@ -4,8 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 OR MIT # -ARG ROS_VERSION=jazzy -ARG UBUNTU_VERSION=noble +ARG ROS_VERSION=humble +ARG UBUNTU_VERSION=jammy FROM ros:${ROS_VERSION}-ros-base-${UBUNTU_VERSION} @@ -64,12 +64,15 @@ RUN apt-get update \ ros-${ROS_DISTRO}-cyclonedds \ ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ ros-${ROS_DISTRO}-controller-manager \ + ros-${ROS_DISTRO}-ur-client-library \ ros-${ROS_DISTRO}-nav2-common \ ros-${ROS_DISTRO}-navigation2 \ + ros-${ROS_DISTRO}-ur-description \ ros-${ROS_DISTRO}-force-torque-sensor-broadcaster \ - ros-${ROS_DISTRO}-simulation-interfaces \ python3-vcstool \ - python3-colcon-common-extensions + python3-rosdep2 \ + python3-colcon-common-extensions \ + && pip install python-statemachine ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp diff --git a/Docker/README.md b/Docker/README.md index c546fa4d..8d986247 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -23,8 +23,28 @@ The script for O3DE (`Dockerfile.O3DE`) will build the ROSCon2023Demo Warehouse | Argument | Description | Default | | ------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------- | -| ROS_VERSION | The distro of ROS (jazzy ) | jazzy | -| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | noble | +| ROS_VERSION | The distro of ROS (humble or iron) | humble | +| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy | +| O3DE_REPO | The git repo for O3DE | https://github.com/o3de/o3de | +| O3DE_BRANCH | The branch/tag for O3DE | 2505.1 | +| O3DE_COMMIT | The commit on the branch/tag for O3DE (or HEAD) | HEAD | +| O3DE_EXTRAS_REPO | The git repo for O3DE Extras | https://github.com/o3de/o3de-extras | +| O3DE_EXTRAS_BRANCH | The branch/tag for O3DE Extras | 2505.1 | +| O3DE_EXTRAS_COMMIT | The commit on the branch for O3DE Extras (or HEAD) | HEAD | +| ROSCON_DEMO_HUMAN_WORKER_REPO | The git repo for Demo Human worker Gem | https://github.com/RobotecAI/o3de-humanworker-gem | +| ROSCON_DEMO_HUMAN_WORKER_BRANCH | The branch/tag for Demo Human worker Gem | 2.0.0 | +| ROSCON_DEMO_HUMAN_WORKER_COMMIT | The commit on the branch/tag for Demo Human worker Gem (or HEAD) | HEAD | +| ROSCON_DEMO_UR_ROBOTS_REPO | The git repo for Demo UR Robots Gem | https://github.com/RobotecAI/o3de-ur-robots-gem | +| ROSCON_DEMO_UR_ROBOTS_BRANCH | The branch/tag for Demo UR Robots Gem | 2.0.0 | +| ROSCON_DEMO_UR_ROBOTS_COMMIT | The commit on the branch/tag for Demo UR Robots Gem (or HEAD) | HEAD | +| ROSCON_DEMO_OTTO_ROBOTS_REPO | The git repo for the Demo Otto Robots Gem | https://github.com/RobotecAI/o3de-otto-robots-gem | +| ROSCON_DEMO_OTTO_ROBOTS_BRANCH | The branch/tag for the Demo Otto Robots Gem | 2.0.0 | +| ROSCON_DEMO_OTTO_ROBOTS_COMMIT | The commit on the branch/tag for the Demo Otto Robots Gem (or HEAD) | HEAD | +| ROSCON_DEMO_REPO | The git repo for ROSCon2023 Warehouse Demo | https://github.com/RobotecAI/ROSCon2023Demo.git | +| ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | 3.0.1 | +| ROSCON_DEMO_COMMIT | The commit on the branch/tag for ROSCon2023 Warehouse Demo (or HEAD) | HEAD | +| ROSCON_DEMO_ROBOTEC_GEMS_REPO | The git repo for Robotec Gems | https://github.com/RobotecAI/robotec-o3de-tools.git | +| ROSCON_DEMO_ROBOTEC_GEMS_BRANCH | The branch/tag for Robotec Gems | o3de-2505 | | ROSCON_DEMO_ROBOTEC_GEMS_COMMIT | The commit on the branch/tag for Robotec Gems (or HEAD) | 4006ef9 | | ROSCON_DEMO_LEVEL | The startup level (level1 or level2). **See Notes below** | level1 | | ROSCON_DEMO_FULLSCREEN | Option to launch the simulation in fullscreen mode (0=no, 1=yes) | 0 | @@ -49,7 +69,7 @@ The O3DE Docker image can reach 10 GB in size, so if you want to create a separa | Argument | Description | Default | | ----------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------- | -| ROS_VERSION | The distro of ROS (humble, or iron) | jazzy | +| ROS_VERSION | The distro of ROS (humble, or iron) | humble | | UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy | | ROSCON_DEMO_REPO | The git repo for ROSCon2023 Warehouse Demo | https://github.com/RobotecAI/ROSCon2023Demo.git | | ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | 2.0.0 | diff --git a/Docker/build_ros.sh b/Docker/build_ros.sh index a74d911e..0939e843 100755 --- a/Docker/build_ros.sh +++ b/Docker/build_ros.sh @@ -39,7 +39,9 @@ ROSCon2023Demo Project | $(git -C $ROSCON_DEMO_ROOT rev-parse --short # Build and install the additional ROS 2 packages and drivers ############################################################### pushd $ROSCON_DEMO_ROOT/ros2_ws && \ + ./setup_submodules.bash && \ rosdep update && \ + rosdep install --ignore-src --from-paths src/Universal_Robots_ROS2_Driver -y && \ colcon build --symlink-install && \ . ./install/setup.sh && \ popd diff --git a/Docker/build_simulation.sh b/Docker/build_simulation.sh index de68a4ad..81ffbab5 100755 --- a/Docker/build_simulation.sh +++ b/Docker/build_simulation.sh @@ -21,57 +21,227 @@ fi # Initialize ROS . /opt/ros/${ROS_DISTRO}/setup.sh +############################################################### +# Clone and bootstrap O3DE +############################################################### +echo "Cloning o3de" +git clone --single-branch -b $O3DE_BRANCH $O3DE_REPO $O3DE_ROOT && \ + git -C $O3DE_ROOT lfs install && \ + git -C $O3DE_ROOT lfs pull && \ + git -C $O3DE_ROOT reset --hard $O3DE_COMMIT +if [ $? -ne 0 ] +then + echo "Error cloning o3de from $O3DE_REPO" + exit 1 +fi +$WORKSPACE/o3de/python/get_python.sh && \ + $WORKSPACE/o3de/scripts/o3de.sh register -ep $O3DE_ROOT +if [ $? -ne 0 ] +then + echo "Error bootstrapping O3DE from $O3DE_REPO" + exit 1 +fi + ############################################################### -# Clone and register the ROSCon2023Demo +# Clone and register o3de-extras ############################################################### -git config --global http.postBuffer 524288000 -git config --global http.lowSpeedLimit 0 -git config --global http.lowSpeedTime 300 +echo "Cloning o3de-extras" +git clone --single-branch -b $O3DE_EXTRAS_BRANCH $O3DE_EXTRAS_REPO $O3DE_EXTRAS_ROOT && \ + git -C $O3DE_EXTRAS_ROOT lfs install && \ + git -C $O3DE_EXTRAS_ROOT lfs pull && \ + git -C $O3DE_EXTRAS_ROOT reset --hard $O3DE_EXTRAS_COMMIT +if [ $? -ne 0 ] +then + echo "Error cloning o3de-extras from $O3DE_EXTRAS_REPO" + exit 1 +fi -echo "Cloning the RosCon2023Demo project" -git clone --single-branch -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \ - git -C $ROSCON_DEMO_ROOT lfs install && \ - git -C $ROSCON_DEMO_ROOT lfs pull && \ - git -C $ROSCON_DEMO_ROOT reset --hard $ROSCON_DEMO_COMMIT +$WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/ROS2 && \ + $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/ROS2SampleRobots && \ + $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/WarehouseAssets && \ + $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/LevelGeoreferencing && \ + $WORKSPACE/o3de/scripts/o3de.sh register -gp $O3DE_EXTRAS_ROOT/Gems/WarehouseAutomation if [ $? -ne 0 ] then - echo "Error cloning RosCon2023Demo project $ROSCON_DEMO_REPO" + echo "Error registering o3de-extras gems" + exit 1 +fi + + +############################################################### +# Clone and register the ROSCon2023Demo Human Worker Gem +############################################################### +echo "Cloning the ROSCon2023 Demo Human Worker Gem" +git clone --single-branch -b $ROSCON_DEMO_HUMAN_WORKER_BRANCH $ROSCON_DEMO_HUMAN_WORKER_REPO $ROSCON_DEMO_HUMAN_WORKER_ROOT && \ + git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT lfs install && \ + git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT lfs pull && \ + git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT reset --hard $ROSCON_DEMO_HUMAN_WORKER_COMMIT +if [ $? -ne 0 ] +then + echo "Error cloning ROSCon2023 Demo Human Worker Gem from $ROSCON_DEMO_HUMAN_WORKER_REPO" + exit 1 +fi + +$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_HUMAN_WORKER_ROOT +if [ $? -ne 0 ] +then + echo "Error registering the ROSCon2023 Demo Human Worker Gem" + exit 1 +fi + + +############################################################### +# Clone and register the ROSCon2023Demo UR10 and UR20 Robots Gem +############################################################### +echo "Cloning ROSCon2023 UR10 and UR20 Robots Gem" +git clone --single-branch -b $ROSCON_DEMO_UR_ROBOTS_BRANCH $ROSCON_DEMO_UR_ROBOTS_REPO $ROSCON_DEMO_UR_ROBOTS_ROOT && \ + git -C $ROSCON_DEMO_UR_ROBOTS_ROOT lfs install && \ + git -C $ROSCON_DEMO_UR_ROBOTS_ROOT lfs pull && \ + git -C $ROSCON_DEMO_UR_ROBOTS_ROOT reset --hard $ROSCON_DEMO_UR_ROBOTS_COMMIT +if [ $? -ne 0 ] +then + echo "Error cloning ROSCon2023 UR10 and UR20 Robots Gem from $ROSCON_DEMO_UR_ROBOTS_REPO" + exit 1 +fi + +$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_UR_ROBOTS_ROOT +if [ $? -ne 0 ] +then + echo "Error registering the ROSCon2023 UR10 and UR20 Robots Gem" exit 1 fi -echo "Initializing submodules" -git -C $ROSCON_DEMO_ROOT submodule update --init --recursive +####################################################################### +# Clone and register the ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem +####################################################################### +echo "Cloning ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem" +git clone --single-branch -b $ROSCON_DEMO_OTTO_ROBOTS_BRANCH $ROSCON_DEMO_OTTO_ROBOTS_REPO $ROSCON_DEMO_OTTO_ROBOTS_ROOT && \ + git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT lfs install && \ + git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT lfs pull && \ + git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT reset --hard $ROSCON_DEMO_OTTO_ROBOTS_COMMIT if [ $? -ne 0 ] then - echo "Error initializing submodules" + echo "Error cloning ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem from $ROSCON_DEMO_OTTO_ROBOTS_REPO" exit 1 fi -$ROSCON_DEMO_ROOT/engine/o3de/python/get_python.sh +$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_OTTO_ROBOTS_ROOT if [ $? -ne 0 ] then - echo "Error downloading/configuring O3DE Python" + echo "Error registering the ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem" exit 1 fi -$ROSCON_DEMO_ROOT/engine/o3de/scripts/o3de.sh register -ep $ROSCON_DEMO_ROOT/engine/o3de +####################################################################### +# Clone and register assets only gems +####################################################################### +echo "Cloning Warehouse and Generic Assets Gems" +git clone --single-branch $ROSCON_DEMO_WAREHOUSE_ASSETS_REPO $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT && \ + git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT lfs install && \ + git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT lfs pull if [ $? -ne 0 ] then - echo "Error registering the O3DE engine" + echo "Error cloning Warehouse Assets Gems from $ROSCON_DEMO_WAREHOUSE_ASSETS_REPO" exit 1 fi +$WORKSPACE/o3de/scripts/o3de.sh register -agp $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT +if [ $? -ne 0 ] +then + echo "Error registering the Warehouse Assets Gems" + exit 1 +fi + +git clone --single-branch $ROSCON_DEMO_GENERIC_ASSETS_REPO $ROSCON_DEMO_GENERIC_ASSETS_ROOT && \ + git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT lfs install && \ + git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT lfs pull +if [ $? -ne 0 ] +then + echo "Error cloning Generic Assets Gems from $ROSCON_DEMO_GENERIC_ASSETS_REPO" + exit 1 +fi + +$WORKSPACE/o3de/scripts/o3de.sh register -agp $ROSCON_DEMO_GENERIC_ASSETS_ROOT +if [ $? -ne 0 ] +then + echo "Error registering the Generic Assets Gems" + exit 1 +fi + +####################################################################### +# Clone and register additional tooling Gems +####################################################################### +echo "Cloning the additional tooling Gems" +git clone --single-branch -b $ROSCON_DEMO_ROBOTEC_GEMS_BRANCH $ROSCON_DEMO_ROBOTEC_GEMS_REPO $ROSCON_DEMO_ROBOTEC_GEMS_ROOT && \ + git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT lfs install && \ + git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT lfs pull && \ + git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT reset --hard $ROSCON_DEMO_ROBOTEC_GEMS_COMMIT +if [ $? -ne 0 ] +then + echo "Error cloning the additional tooling Gems from $ROSCON_DEMO_ROBOTEC_GEMS_REPO" + exit 1 +fi + +$WORKSPACE/o3de/scripts/o3de.sh register -gp $ROSCON_DEMO_ROBOTEC_GEMS_ROOT/Gems/ROS2ScriptIntegration +if [ $? -ne 0 ] +then + echo "Error registering the additional tooling Gems" + exit 1 +fi + +############################################################### +# Clone and register the ROSCon2023Demo +############################################################### +echo "Cloning the RosCon2023Demo project" +git clone --single-branch -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \ + git -C $ROSCON_DEMO_ROOT lfs install && \ + git -C $ROSCON_DEMO_ROOT lfs pull && \ + git -C $ROSCON_DEMO_ROOT reset --hard $ROSCON_DEMO_COMMIT +if [ $? -ne 0 ] +then + echo "Error cloning RosCon2023Demo project $ROSCON_DEMO_REPO" + exit 1 +fi + +$WORKSPACE/o3de/scripts/o3de.sh register -pp $ROSCON_DEMO_PROJECT +if [ $? -ne 0 ] +then + echo "Error registering the RosCon2023Demo Project" + exit 1 +fi + + +############################################################################### +# Track the git commits from all the repos +############################################################################### +echo -e "\n\ +Repository | Commit | Branch\n\ +----------------------------------+-----------------------------------------\n\ +o3de | $(git -C $O3DE_ROOT rev-parse --short HEAD) | $(git -C $O3DE_ROOT rev-parse --abbrev-ref HEAD) \n\ +o3de-extras | $(git -C $O3DE_EXTRAS_ROOT rev-parse --short HEAD) | $(git -C $O3DE_EXTRAS_ROOT rev-parse --abbrev-ref HEAD) \n\ +ROSCon2023 Demo Human Worker Gem | $(git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_HUMAN_WORKER_ROOT rev-parse --abbrev-ref HEAD) \n\ +ROSCon2023 UR Robots Gem | $(git -C $ROSCON_DEMO_UR_ROBOTS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_UR_ROBOTS_ROOT rev-parse --abbrev-ref HEAD) \n\ +ROSCon2023 OTTO Robots Gem | $(git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_OTTO_ROBOTS_ROOT rev-parse --abbrev-ref HEAD) \n\ +Warehouse Assets Gems | $(git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT rev-parse --abbrev-ref HEAD) \n\ +Generic Assets Gems | $(git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_GENERIC_ASSETS_ROOT rev-parse --abbrev-ref HEAD) \n\ +ROS2ScriptIntegration Gem | $(git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_ROBOTEC_GEMS_ROOT rev-parse --abbrev-ref HEAD) \n\ +RosCon2023Demo Project | $(git -C $ROSCON_DEMO_ROOT rev-parse --short HEAD) | $(git -C $ROSCON_DEMO_ROOT rev-parse --abbrev-ref HEAD) \n\ +\n\ +" >> $WORKSPACE/git_commit.txt + ############################################################### # Set the filename of the level in the registry file ############################################################### -sed -i "s/demolevel1/${DEMO_LEVEL}/g" $ROSCON_DEMO_PROJECT/Registry/load_level.setreg +sed -i "s/demolevel1/${DEMO_LEVEL}/g" Registry/load_level.setreg ############################################################### # Build and install the additional ROS 2 packages and drivers ############################################################### pushd $ROSCON_DEMO_ROOT/ros2_ws && \ + ./setup_submodules.bash && \ rosdep update && \ + rosdep install --ignore-src --from-paths src/Universal_Robots_ROS2_Driver -y && \ colcon build --symlink-install && \ . ./install/setup.sh && \ popd @@ -205,13 +375,13 @@ cp $ROSCON_DEMO_PROJECT/build/game/bin/profile/ROSCon2023Demo.GameLauncher $ROSC cp $ROSCON_DEMO_PROJECT/build/game/bin/profile/*.json $ROSCON_SIMULATION_HOME/ cp $ROSCON_DEMO_PROJECT/build/game/bin/profile/*.so $ROSCON_SIMULATION_HOME -# Cleanup - keep ros2_ws/install for runtime (GameLauncher needs custom message libs) -rm -rf $ROSCON_DEMO_ROOT/engine -rm -rf $ROSCON_DEMO_ROOT/gems -rm -rf $ROSCON_DEMO_ROOT/Project/build -rm -rf $ROSCON_DEMO_ROOT/ros2_ws/src -rm -rf $ROSCON_DEMO_ROOT/ros2_ws/build -rm -rf $ROSCON_DEMO_ROOT/ros2_ws/log +# Cleanup +rm -rf $O3DE_ROOT +rm -rf $O3DE_EXTRAS_ROOT +rm -rf $ROSCON_DEMO_HUMAN_WORKER_ROOT +rm -rf $ROSCON_DEMO_UR_ROBOTS_ROOT +rm -rf $ROSCON_DEMO_OTTO_ROBOTS_ROOT +rm -rf $ROSCON_DEMO_PROJECT rm -rf /root/.o3de exit 0 From 2541f0ff5932e93e1a7675a0079ab71df191803c Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 14:13:06 +0200 Subject: [PATCH 05/12] Revert UR ROS2 Driver submodule to push it in separate PR Signed-off-by: Jan Hanca --- .gitmodules | 3 +++ ros2_ws/src/Universal_Robots_ROS2_Driver | 1 + 2 files changed, 4 insertions(+) create mode 160000 ros2_ws/src/Universal_Robots_ROS2_Driver diff --git a/.gitmodules b/.gitmodules index 7e8c480a..ec963426 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ +[submodule "ros2_ws/src/Universal_Robots_ROS2_Driver"] + path = ros2_ws/src/Universal_Robots_ROS2_Driver + url = https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git [submodule "engine/o3de"] path = engine/o3de url = https://github.com/o3de/o3de.git diff --git a/ros2_ws/src/Universal_Robots_ROS2_Driver b/ros2_ws/src/Universal_Robots_ROS2_Driver new file mode 160000 index 00000000..f06092e4 --- /dev/null +++ b/ros2_ws/src/Universal_Robots_ROS2_Driver @@ -0,0 +1 @@ +Subproject commit f06092e4f32ae1d042459cfaaae96b5c0ea1b21d From e504707b1bc9384c28f2964d48e1d924c4958c13 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 14:27:25 +0200 Subject: [PATCH 06/12] Update submodules Signed-off-by: Jan Hanca --- Project/Gem/CMakeLists.txt | 3 +++ Project/project.json | 4 ++-- engine/o3de-extras | 2 +- gems/o3de-otto-robots-gem | 2 +- gems/o3de-ur-robots-gem | 2 +- gems/robotec-o3de-tools | 2 +- gems/robotec-warehouse-assets | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Project/Gem/CMakeLists.txt b/Project/Gem/CMakeLists.txt index c02e783d..8ebe5ee3 100644 --- a/Project/Gem/CMakeLists.txt +++ b/Project/Gem/CMakeLists.txt @@ -64,6 +64,8 @@ ly_add_target( Gem::Atom_AtomBridge.Static Gem::ROS2.Static Gem::ROS2Sensors.API + Gem::ImGui.Static + Gem::ImGui.imguilib Gem::LmbrCentral.API Gem::PhysX5.Static Gem::RecastNavigation.API @@ -88,6 +90,7 @@ ly_add_target( Gem::RecastNavigation.API Gem::ROS2.Static Gem::ROS2Sensors.API + Gem::ImGui.imguilib Gem::LmbrCentral.API ) diff --git a/Project/project.json b/Project/project.json index 0796e605..f59a501d 100644 --- a/Project/project.json +++ b/Project/project.json @@ -36,8 +36,8 @@ "restricted": "ROSCon2023Demo", "engine_version": "2.4.0", "gem_names": [ - "HumanWorker==2.0.0", - "OTTORobots==2.0.0", + "HumanWorker==3.0.0", + "OTTORobots==3.0.0", "ROS2>=4.0.0", "ROS2Controllers", "ROS2Sensors", diff --git a/engine/o3de-extras b/engine/o3de-extras index e9c2d0aa..e9971c4d 160000 --- a/engine/o3de-extras +++ b/engine/o3de-extras @@ -1 +1 @@ -Subproject commit e9c2d0aa0cc36ca797b0acdd9e47824d85a64151 +Subproject commit e9971c4da69b3a032a9fddffa8a2f483ebc49df3 diff --git a/gems/o3de-otto-robots-gem b/gems/o3de-otto-robots-gem index 78881083..c5438381 160000 --- a/gems/o3de-otto-robots-gem +++ b/gems/o3de-otto-robots-gem @@ -1 +1 @@ -Subproject commit 788810837e803cd2f5a08b28efd1a715972db534 +Subproject commit c5438381c36af82a4e1abe7001f9ed7709dbbe1f diff --git a/gems/o3de-ur-robots-gem b/gems/o3de-ur-robots-gem index 83b70947..33fc9f1f 160000 --- a/gems/o3de-ur-robots-gem +++ b/gems/o3de-ur-robots-gem @@ -1 +1 @@ -Subproject commit 83b70947e4fe5febfde3f5c188ce31131a63e548 +Subproject commit 33fc9f1f0629d7d8dd5378958dae774434c9334d diff --git a/gems/robotec-o3de-tools b/gems/robotec-o3de-tools index 4811db4f..72f39dad 160000 --- a/gems/robotec-o3de-tools +++ b/gems/robotec-o3de-tools @@ -1 +1 @@ -Subproject commit 4811db4f29dde08418e9348fd8a2a6d9ee606322 +Subproject commit 72f39dadcd2ae5e45d816894a4ce3ca0d5856403 diff --git a/gems/robotec-warehouse-assets b/gems/robotec-warehouse-assets index ab6b54a0..11fd0daf 160000 --- a/gems/robotec-warehouse-assets +++ b/gems/robotec-warehouse-assets @@ -1 +1 @@ -Subproject commit ab6b54a0f54cbbe6c3fb0d6aa32af18cf071ee40 +Subproject commit 11fd0daf98bae0de83c3dfc55a098348df384cce From 5eb3f5d784d33631dba5ca78f15311407d40d884 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 16:29:15 +0200 Subject: [PATCH 07/12] DemoLevel1: Remove warnings Signed-off-by: Jan Hanca --- .../Decals/Materials/markings_end1.material | 3 +- .../Decals/Materials/markings_end2.material | 3 +- .../Decals/Materials/markings_mid1.material | 3 +- .../Decals/Materials/markings_mid2.material | 3 +- .../Materials/tire_tracks_approach1.material | 3 +- .../Materials/tire_tracks_approach2.material | 3 +- .../Materials/tire_tracks_curve1.material | 3 +- .../Materials/tire_tracks_straight1.material | 3 +- .../Materials/yelow_line_straight1.material | 3 +- .../Materials/yelow_line_straight2.material | 3 +- .../Materials/yelow_line_turn1.material | 3 +- .../Materials/yelow_line_turn2.material | 3 +- .../Decals/Materials/yelow_strips1a.material | 3 +- .../Objects/WarehouseObjects_300m2.prefab | 714 +--------------- .../Signs/WarningPlates_Restricted.prefab | 6 +- Project/Levels/DemoLevel1/DemoLevel1.prefab | 775 +----------------- 16 files changed, 40 insertions(+), 1494 deletions(-) diff --git a/Project/Assets/Factory/Decals/Materials/markings_end1.material b/Project/Assets/Factory/Decals/Materials/markings_end1.material index 1afd16e1..a6d49172 100755 --- a/Project/Assets/Factory/Decals/Materials/markings_end1.material +++ b/Project/Assets/Factory/Decals/Materials/markings_end1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "markings_end1.png", + "normal.textureMap": "markings_end1.png", "normal.useTexture": false, "opacity.factor": 0.9399999976158142, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/markings_end2.material b/Project/Assets/Factory/Decals/Materials/markings_end2.material index aecedadc..b1c8cede 100755 --- a/Project/Assets/Factory/Decals/Materials/markings_end2.material +++ b/Project/Assets/Factory/Decals/Materials/markings_end2.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "markings_end2.png", + "normal.textureMap": "markings_end2.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/markings_mid1.material b/Project/Assets/Factory/Decals/Materials/markings_mid1.material index 9ff10915..e3f21905 100755 --- a/Project/Assets/Factory/Decals/Materials/markings_mid1.material +++ b/Project/Assets/Factory/Decals/Materials/markings_mid1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "markings_mid1.png", + "normal.textureMap": "markings_mid1.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/markings_mid2.material b/Project/Assets/Factory/Decals/Materials/markings_mid2.material index 82946e90..5e20cf0c 100755 --- a/Project/Assets/Factory/Decals/Materials/markings_mid2.material +++ b/Project/Assets/Factory/Decals/Materials/markings_mid2.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "markings_mid2.png", + "normal.textureMap": "markings_mid2.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/tire_tracks_approach1.material b/Project/Assets/Factory/Decals/Materials/tire_tracks_approach1.material index 549123aa..f9fecf61 100755 --- a/Project/Assets/Factory/Decals/Materials/tire_tracks_approach1.material +++ b/Project/Assets/Factory/Decals/Materials/tire_tracks_approach1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "tire_tracks_approach1.png", + "normal.textureMap": "tire_tracks_approach1.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/tire_tracks_approach2.material b/Project/Assets/Factory/Decals/Materials/tire_tracks_approach2.material index fb387173..f9946c1e 100755 --- a/Project/Assets/Factory/Decals/Materials/tire_tracks_approach2.material +++ b/Project/Assets/Factory/Decals/Materials/tire_tracks_approach2.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "tire_tracks_approach2.png", + "normal.textureMap": "tire_tracks_approach2.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/tire_tracks_curve1.material b/Project/Assets/Factory/Decals/Materials/tire_tracks_curve1.material index da1387ba..685fae02 100755 --- a/Project/Assets/Factory/Decals/Materials/tire_tracks_curve1.material +++ b/Project/Assets/Factory/Decals/Materials/tire_tracks_curve1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "tire_tracks_curve1.png", + "normal.textureMap": "tire_tracks_curve1.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/tire_tracks_straight1.material b/Project/Assets/Factory/Decals/Materials/tire_tracks_straight1.material index 52de4c45..2d00b9cb 100755 --- a/Project/Assets/Factory/Decals/Materials/tire_tracks_straight1.material +++ b/Project/Assets/Factory/Decals/Materials/tire_tracks_straight1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "tire_tracks1.png", + "normal.textureMap": "tire_tracks1.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/yelow_line_straight1.material b/Project/Assets/Factory/Decals/Materials/yelow_line_straight1.material index 9ed3dd19..02564b7f 100755 --- a/Project/Assets/Factory/Decals/Materials/yelow_line_straight1.material +++ b/Project/Assets/Factory/Decals/Materials/yelow_line_straight1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "line_yellow_straight1.png", + "normal.textureMap": "line_yellow_straight1.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/yelow_line_straight2.material b/Project/Assets/Factory/Decals/Materials/yelow_line_straight2.material index 23751925..693bfaf9 100755 --- a/Project/Assets/Factory/Decals/Materials/yelow_line_straight2.material +++ b/Project/Assets/Factory/Decals/Materials/yelow_line_straight2.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "line_yellow_straight2.png", + "normal.textureMap": "line_yellow_straight2.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/yelow_line_turn1.material b/Project/Assets/Factory/Decals/Materials/yelow_line_turn1.material index 621ac312..0d419a96 100755 --- a/Project/Assets/Factory/Decals/Materials/yelow_line_turn1.material +++ b/Project/Assets/Factory/Decals/Materials/yelow_line_turn1.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "line_yellow_turn1.png", + "normal.textureMap": "line_yellow_turn1.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/yelow_line_turn2.material b/Project/Assets/Factory/Decals/Materials/yelow_line_turn2.material index 1879e67d..6eb875e4 100755 --- a/Project/Assets/Factory/Decals/Materials/yelow_line_turn2.material +++ b/Project/Assets/Factory/Decals/Materials/yelow_line_turn2.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "line_yellow_turn2.png", + "normal.textureMap": "line_yellow_turn2.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Decals/Materials/yelow_strips1a.material b/Project/Assets/Factory/Decals/Materials/yelow_strips1a.material index 2254d38e..6b158bce 100755 --- a/Project/Assets/Factory/Decals/Materials/yelow_strips1a.material +++ b/Project/Assets/Factory/Decals/Materials/yelow_strips1a.material @@ -3,8 +3,9 @@ "materialTypeVersion": 5, "propertyValues": { "baseColor.textureMap": "strips_1a.png", + "normal.textureMap": "strips_1a.png", "normal.useTexture": false, "opacity.factor": 1.0, "opacity.mode": "Blended" } -} \ No newline at end of file +} diff --git a/Project/Assets/Factory/Objects/WarehouseObjects_300m2.prefab b/Project/Assets/Factory/Objects/WarehouseObjects_300m2.prefab index 1b23a0c1..b6040c6f 100755 --- a/Project/Assets/Factory/Objects/WarehouseObjects_300m2.prefab +++ b/Project/Assets/Factory/Objects/WarehouseObjects_300m2.prefab @@ -4080,21 +4080,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": 0.0000019073486328125 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -4115,21 +4100,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": -9.5367431640625e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -4150,21 +4120,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -4185,21 +4140,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": -179.9999542236328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -4355,11 +4295,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -4395,11 +4330,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -5085,11 +5015,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -5125,11 +5050,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -5150,21 +5070,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -5319,7 +5224,7 @@ ] }, "Instance_[174627903494216]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -5344,7 +5249,7 @@ ] }, "Instance_[174640788396104]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -5570,11 +5475,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -5610,57 +5510,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, "Instance_[213244303779747]": { "Source": "Prefabs/Warehouse_storage/Storage_rack5.prefab", "Patches": [ - { - "op": "replace", - "path": "/Instances/Instance_[151111580776894]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151098695875006]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[246046564790009]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/9", - "value": "Instance_[246072334593785]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/10", - "value": "Instance_[246059449691897]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Instances/Instance_[112220651911614]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151085810973118]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5920211335614]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[226710958716547824]/Parent Entity", @@ -5680,135 +5535,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[226710958716547824]/Transform Data/Rotate/2", "value": -89.99994659423828 - }, - { - "op": "replace", - "path": "/Instances/Instance_[246072334593785]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[15671223893149508584]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[2276504649476859699]/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[2276504649476859699]/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246016500018937]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292732859297529]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[199729637469945]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246003615117049]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/7", - "value": "Instance_[246016500018937]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[246003615117049]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/9", - "value": "Instance_[199742522371833]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5915916368318]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/0", - "value": "Entity_[339380499099385]" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/1", - "value": "Entity_[339389089033977]" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/2", - "value": "Entity_[339376204132089]" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/5" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/4" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/3" - }, - - { - "op": "replace", - "path": "/Instances/Instance_[112224946878910]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - - { - "op": "replace", - "path": "/Instances/Instance_[246046564790009]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292737154264825]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/6", - "value": "Instance_[292732859297529]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/7", - "value": "Instance_[292719974395641]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[292737154264825]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292719974395641]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246059449691897]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -5989,21 +5715,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": -179.9999542236328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -6024,21 +5735,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": -9.5367431640625e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -6059,21 +5755,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": 0.0000019073486328125 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -6094,21 +5775,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": -9.5367431640625e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -6129,21 +5795,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -6164,21 +5815,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": 0.0000019073486328125 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -6199,32 +5835,12 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": -179.9999542236328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, "Instance_[24150384331644]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -6289,11 +5905,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 1.3730815649032593 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -6329,11 +5940,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -6369,11 +5975,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -6409,11 +6010,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6449,11 +6045,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6489,11 +6080,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6524,11 +6110,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6559,11 +6140,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6594,11 +6170,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6629,11 +6200,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6694,11 +6260,6 @@ "op": "replace", "path": "/Entities/Entity_[5804247218622]/Components/Component_[16246303725359178974]/Transform Data/Rotate/2", "value": -61.81346130371094 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -6719,11 +6280,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6739,11 +6295,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -0.00004673004150390625 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6774,11 +6325,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -6799,11 +6345,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6824,11 +6365,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000226974487305 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6859,11 +6395,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -6884,11 +6415,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6904,11 +6430,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -1.0564451217651367 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6934,11 +6455,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7265243530273438 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -6969,11 +6485,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -6989,11 +6500,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": 0.5281124114990234 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7024,11 +6530,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7059,11 +6560,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7089,11 +6585,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000231742858887 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7114,11 +6605,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000226974487305 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7139,11 +6625,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7265243530273438 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7174,11 +6655,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": -90.56243896484376 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7194,11 +6670,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -0.5288867950439453 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7214,11 +6685,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": 1.0888690948486328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7249,11 +6715,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -7284,11 +6745,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7319,11 +6775,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7354,11 +6805,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7389,11 +6835,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99998474121094 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7424,11 +6865,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7459,11 +6895,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7499,11 +6930,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.7712348103523254 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7539,11 +6965,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7579,11 +7000,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -7684,11 +7100,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7719,11 +7130,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": -89.99999237060547 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7754,11 +7160,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7789,11 +7190,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7824,11 +7220,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7859,11 +7250,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 104.3531723022461 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7894,11 +7280,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7929,11 +7310,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -7964,11 +7340,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 81.8930892944336 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -8649,11 +8020,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -11508,7 +10874,7 @@ ] }, "Instance_[498111955327048]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -11998,7 +11364,7 @@ ] }, "Instance_[569920473623026]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -12023,7 +11389,7 @@ ] }, "Instance_[569937653492210]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -12115,11 +11481,6 @@ "Instance_[569993488067058]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -12224,11 +11585,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -12264,11 +11620,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -12304,11 +11655,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -12374,11 +11720,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -12414,11 +11755,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -12454,11 +11790,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -12494,11 +11825,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -13009,11 +12335,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -13738,7 +13059,7 @@ ] }, "Instance_[904467401136200]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -13748,7 +13069,7 @@ ] }, "Instance_[904480286038088]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -13918,7 +13239,7 @@ ] }, "Instance_[904600545122376]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -14129,11 +13450,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -14164,11 +13480,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -14209,11 +13520,6 @@ "op": "replace", "path": "/Entities/Entity_[5722642839998]/Components/Component_[16246303725359178974]/Transform Data/Translate/1", "value": -1.1920928955078125e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -14338,7 +13644,7 @@ ] }, "Instance_[985441379641842]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", @@ -14358,7 +13664,7 @@ ] }, "Instance_[985449969576434]": { - "Source": "PlasticBarrel/PlasticBarrel.prefab", + "Source": "PlasticBarrel/PlasticBarrel1.prefab", "Patches": [ { "op": "replace", diff --git a/Project/Assets/Factory/Signs/WarningPlates_Restricted.prefab b/Project/Assets/Factory/Signs/WarningPlates_Restricted.prefab index 4fe09420..b0fd83b0 100755 --- a/Project/Assets/Factory/Signs/WarningPlates_Restricted.prefab +++ b/Project/Assets/Factory/Signs/WarningPlates_Restricted.prefab @@ -113,9 +113,9 @@ "ModelAsset": { "assetId": { "guid": "{331F9426-8F1B-5F46-A0FC-EFE8DFF26D62}", - "subId": 277118794 + "subId": 268547329 }, - "assetHint": "assets/factory/signs/default_warningplates_restricted_0174fb79_20b3_5e05_8c34_4ff95111c916_.fbx.azmodel" + "assetHint": "assets/factory/signs/warningplates_restricted.fbx.azmodel" } } } @@ -191,4 +191,4 @@ } } } -} \ No newline at end of file +} diff --git a/Project/Levels/DemoLevel1/DemoLevel1.prefab b/Project/Levels/DemoLevel1/DemoLevel1.prefab index e40365d9..52e347bd 100644 --- a/Project/Levels/DemoLevel1/DemoLevel1.prefab +++ b/Project/Levels/DemoLevel1/DemoLevel1.prefab @@ -2558,469 +2558,6 @@ "path": "/ContainerEntity/Components/TransformComponent/Parent Entity", "value": "../Entity_[1146574390643]" }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/18", - "value": "Instance_[547916396091464]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/19", - "value": "Instance_[547929280993352]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/20", - "value": "Instance_[399263283009608]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/21", - "value": "Instance_[399250398107720]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/22", - "value": "Instance_[351481771841608]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/23", - "value": "Instance_[351468886939720]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/24", - "value": "Instance_[399276167911496]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/25", - "value": "Instance_[399211743402056]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/26", - "value": "Instance_[547877741385800]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/27", - "value": "Instance_[323941691872294]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/28", - "value": "Instance_[448457838417992]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/29", - "value": "Instance_[399224628303944]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/30", - "value": "Instance_[698888791513160]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/31", - "value": "Instance_[598107383912520]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/32", - "value": "Instance_[323928806970406]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/33", - "value": "Instance_[399173088696392]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/34", - "value": "Instance_[399185973598280]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/35", - "value": "Instance_[448483608221768]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/36", - "value": "Instance_[448470723319880]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/37", - "value": "Instance_[323915922068518]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/38", - "value": "Instance_[399198858500168]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/39", - "value": "Instance_[351456002037832]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/40", - "value": "Instance_[399160203794504]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/41", - "value": "Instance_[399237513205832]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/42", - "value": "Instance_[397537968252480]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/43", - "value": "Instance_[448483608221768]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/44", - "value": "Instance_[448470723319880]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/45", - "value": "Instance_[399276167911496]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/46", - "value": "Instance_[399160203794504]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/47", - "value": "Instance_[448457838417992]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/48", - "value": "Instance_[320282437192559]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/49", - "value": "Instance_[698888791513160]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/50", - "value": "Instance_[399224628303944]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/51", - "value": "Instance_[598107383912520]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/52", - "value": "Instance_[399198858500168]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/53", - "value": "Instance_[547916396091464]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/54", - "value": "Instance_[399173088696392]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/55", - "value": "Instance_[547877741385800]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/56", - "value": "Instance_[351468886939720]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/57", - "value": "Instance_[320295322094447]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/58", - "value": "Instance_[323915922068518]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/59", - "value": "Instance_[399250398107720]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/60", - "value": "Instance_[351481771841608]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/61", - "value": "Instance_[323941691872294]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/62", - "value": "Instance_[399185973598280]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/63", - "value": "Instance_[399211743402056]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/64", - "value": "Instance_[399237513205832]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/65", - "value": "Instance_[323928806970406]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/66", - "value": "Instance_[547929280993352]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/67", - "value": "Instance_[351456002037832]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/68", - "value": "Instance_[399263283009608]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351417347332168]/Components/EditorEntitySortComponent/Child Entity Order/69", - "value": "Instance_[53661239531787]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351430232234056]/Components/EditorEntitySortComponent/Child Entity Order/10", - "value": "Instance_[801259337013320]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351430232234056]/Components/EditorEntitySortComponent/Child Entity Order/11", - "value": "Instance_[323967461676070]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351430232234056]/Components/EditorEntitySortComponent/Child Entity Order/12", - "value": "Instance_[323954576774182]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[351430232234056]/Components/EditorEntitySortComponent/Child Entity Order/13", - "value": "" - }, - { - "op": "add", - "path": "/Entities/Entity_[372520970666328]/Components/EditorEntitySortComponent/Child Entity Order/24", - "value": "Instance_[380085504365606]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[372520970666328]/Components/EditorEntitySortComponent/Child Entity Order/25", - "value": "Instance_[380098389267494]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[372520970666328]/Components/EditorEntitySortComponent/Child Entity Order/26", - "value": "Instance_[380064029529126]/ContainerEntity" - }, - { - "op": "remove", - "path": "/Entities/Entity_[372529560600920]/Components/EditorEntitySortComponent/Child Entity Order/5" - }, - { - "op": "remove", - "path": "/Entities/Entity_[372598280077656]/Components/EditorEntitySortComponent/Child Entity Order/7" - }, - { - "op": "add", - "path": "/Entities/Entity_[372606870012248]/Components/EditorEntitySortComponent/Child Entity Order/25", - "value": "Instance_[792213386220582]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/1", - "value": "Instance_[612481889784870]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/2", - "value": "Instance_[852429577377864]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/3", - "value": "Instance_[553267175674918]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/4", - "value": "Instance_[731864800744486]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/5", - "value": "Instance_[437298763715622]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/6", - "value": "Instance_[437272993911846]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/7", - "value": "Instance_[437247224108070]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/8", - "value": "Instance_[437260109009958]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/9", - "value": "Instance_[852399512606792]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/10", - "value": "Instance_[612507659588646]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/11", - "value": "Instance_[553237110903846]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/12", - "value": "Instance_[672117510689830]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/13", - "value": "Instance_[553207046132774]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/14", - "value": "Instance_[612494774686758]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[800262904600648]/Components/EditorEntitySortComponent/Child Entity Order/15", - "value": "Instance_[437285878813734]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/4", - "value": "Instance_[904549005514824]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/5", - "value": "Instance_[904647789762632]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/6", - "value": "Instance_[904634904860744]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/7", - "value": "Instance_[380029669790758]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/8", - "value": "Instance_[904561890416712]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/9", - "value": "Instance_[904587660220488]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/10", - "value": "Instance_[1012223835625544]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/11", - "value": "Instance_[904574775318600]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/12", - "value": "Instance_[380042554692646]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/13", - "value": "" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/14", - "value": "Instance_[437234339206182]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/15", - "value": "Instance_[904536120612936]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/16", - "value": "Instance_[323903037166630]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/17", - "value": "Instance_[904613430024264]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/18", - "value": "Instance_[380003899986982]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[904463106168904]/Components/EditorEntitySortComponent/Child Entity Order/19", - "value": "Instance_[380016784888870]/ContainerEntity" - }, { "op": "remove", "path": "/Instances/Instance_[102588833340186]" @@ -3028,196 +2565,6 @@ { "op": "remove", "path": "/Instances/Instance_[102597423274778]" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233886234173254]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233886234173254]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233881939205958]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233881939205958]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233877644238662]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233877644238662]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233864759336774]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233864759336774]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233813219729222]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233813219729222]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233808924761926]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233808924761926]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233632831102790]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[233632831102790]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[1549978296134]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[1549978296134]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[102601718242074]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[102601718242074]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[102593128307482]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[102593128307482]/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/models/otto1500_standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14801240651808]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14801240651808]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14801240651808]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14788355749920]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14788355749920]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14788355749920]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14775470848032]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14775470848032]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14775470848032]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14762585946144]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14762585946144]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14762585946144]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14749701044256]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14749701044256]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14749701044256]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14728226207776]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14728226207776]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[29443303357176]/Instances/Instance_[14728226207776]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" } ] }, @@ -3345,126 +2692,6 @@ { "op": "remove", "path": "/Instances/Instance_[1137435698350970]" - }, - { - "op": "replace", - "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[12678007301039]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[13150453703599]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[44675714163097]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[44680009130393]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[44954887037337]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[44959182004633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[45496052916633]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" - }, - { - "op": "replace", - "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/guid", - "value": "{00000000-0000-0000-0000-000000000000}" - }, - { - "op": "replace", - "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetId/subId", - "value": 0 - }, - { - "op": "replace", - "path": "/Instances/Instance_[45500347883929]/Entities/Entity_[1614665180534621]/Components/Component_[15264405835034640312]/ColliderConfiguration/MaterialSlots/Slots/0/MaterialAsset/assetHint", - "value": "" } ] }, @@ -3546,4 +2773,4 @@ ] } } -} \ No newline at end of file +} From 0b6a00371e05b8b44fb129bb9f9beed3f1f5082e Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 17:27:20 +0200 Subject: [PATCH 08/12] SuperShot and ImportLevel: Remove warnings Signed-off-by: Jan Hanca --- .../RobotsSuperShot/RobotsSuperShot.prefab | 51 ------------------- gems/o3de-ur-robots-gem | 2 +- 2 files changed, 1 insertion(+), 52 deletions(-) diff --git a/Project/Levels/RobotsSuperShot/RobotsSuperShot.prefab b/Project/Levels/RobotsSuperShot/RobotsSuperShot.prefab index c72e1834..b8d19f91 100644 --- a/Project/Levels/RobotsSuperShot/RobotsSuperShot.prefab +++ b/Project/Levels/RobotsSuperShot/RobotsSuperShot.prefab @@ -662,57 +662,6 @@ "guid": "{8A81B95C-3544-5EA8-B1E8-ACACE53B5812}" }, "assetHint": "assets/husky/husky_defaultmaterial.azmaterial" - }, - "PropertyOverrides": { - "general.doubleSided": { - "$type": "bool", - "Value": false - }, - "metallic.textureMap": { - "$type": "AssetId", - "Value": { - "guid": "{CA36C43E-A661-5440-8DE0-67E13CF2DF38}", - "subId": 1000 - } - }, - "normal.textureMap": { - "$type": "AssetId", - "Value": { - "guid": "{70BF36BB-F903-51A4-A18C-9DFEE822C427}", - "subId": 1000 - } - }, - "occlusion.diffuseTextureMap": { - "$type": "AssetId", - "Value": { - "guid": "{C3DA553D-A33E-5AB5-BB2E-B3FE9D53CC63}", - "subId": 1000 - } - }, - "occlusion.specularTextureMap": { - "$type": "AssetId" - }, - "parallax.textureMap": { - "$type": "AssetId", - "Value": { - "guid": "{DF475C3C-B735-57C3-A334-A6FBA79C4748}", - "subId": 1000 - } - }, - "roughness.textureMap": { - "$type": "AssetId", - "Value": { - "guid": "{073100B7-F2E4-5D49-983F-574511BF146C}", - "subId": 1000 - } - }, - "specularF0.textureMap": { - "$type": "AssetId", - "Value": { - "guid": "{1F36560C-5434-556C-A06B-D32E998EF0F6}", - "subId": 1000 - } - } } } } diff --git a/gems/o3de-ur-robots-gem b/gems/o3de-ur-robots-gem index 33fc9f1f..39e6b471 160000 --- a/gems/o3de-ur-robots-gem +++ b/gems/o3de-ur-robots-gem @@ -1 +1 @@ -Subproject commit 33fc9f1f0629d7d8dd5378958dae774434c9334d +Subproject commit 39e6b4710b4fb66a84b368b8d8d4ee1f6504f0f4 From c4541b0b73ec46122df73d0ebb3ffba926918a22 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Fri, 10 Apr 2026 17:54:52 +0200 Subject: [PATCH 09/12] DemoLevel2: Remove warnings Signed-off-by: Jan Hanca --- .../Objects/WarehouseObjects_900m2.prefab | 275 ---- .../Warehouse_900m2/Warehouse_900m2.prefab | 1154 +---------------- 2 files changed, 3 insertions(+), 1426 deletions(-) diff --git a/Project/Assets/Factory/Objects/WarehouseObjects_900m2.prefab b/Project/Assets/Factory/Objects/WarehouseObjects_900m2.prefab index fe5494eb..511d4ab1 100755 --- a/Project/Assets/Factory/Objects/WarehouseObjects_900m2.prefab +++ b/Project/Assets/Factory/Objects/WarehouseObjects_900m2.prefab @@ -1066,21 +1066,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": 0.0000019073486328125 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1101,21 +1086,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": -9.5367431640625e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1136,21 +1106,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1171,21 +1126,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": -179.9999542236328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1221,11 +1161,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -1261,11 +1196,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -1581,21 +1511,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1711,11 +1626,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -1751,11 +1661,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -1776,21 +1681,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": -179.9999542236328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1811,21 +1701,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": -9.5367431640625e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1846,21 +1721,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": 0.0000019073486328125 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1881,21 +1741,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": -9.5367431640625e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1916,21 +1761,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1951,21 +1781,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Translate/1", "value": 0.0000019073486328125 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -1986,21 +1801,6 @@ "op": "replace", "path": "/ContainerEntity/Components/TransformComponent/Transform Data/Rotate/2", "value": -179.9999542236328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/AZ::Render::EditorMeshComponent/Controller/Configuration/ModelAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Entities/Entity_[768075193863]/Components/EditorMeshColliderComponent/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "otto1500/stand/standlow.fbx.pxmesh" } ] }, @@ -2036,11 +1836,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -2076,11 +1871,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -2116,11 +1906,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -2156,11 +1941,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -2196,11 +1976,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -2236,11 +2011,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.7712348103523254 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -2276,11 +2046,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -2316,11 +2081,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -2791,11 +2551,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -2831,11 +2586,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -2871,11 +2621,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -2911,11 +2656,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.5932575464248657 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -2951,11 +2691,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -2991,11 +2726,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -3031,11 +2761,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/UniformScale", "value": 0.593257486820221 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, diff --git a/Project/Assets/Factory/Warehouse_900m2/Warehouse_900m2.prefab b/Project/Assets/Factory/Warehouse_900m2/Warehouse_900m2.prefab index ebf0e5f8..a8090b64 100755 --- a/Project/Assets/Factory/Warehouse_900m2/Warehouse_900m2.prefab +++ b/Project/Assets/Factory/Warehouse_900m2/Warehouse_900m2.prefab @@ -17453,11 +17453,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -17493,11 +17488,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -17977,243 +17967,6 @@ "Instance_[213244303779747]": { "Source": "Prefabs/Warehouse_storage/Storage_rack5.prefab", "Patches": [ - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/6", - "value": "Instance_[292732859297529]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/7", - "value": "Instance_[292719974395641]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[292737154264825]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/7", - "value": "Instance_[246016500018937]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[246003615117049]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/9", - "value": "Instance_[199742522371833]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/0", - "value": "Entity_[339380499099385]" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/1", - "value": "Entity_[339389089033977]" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/2", - "value": "Entity_[339376204132089]" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/5" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/4" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/3" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[246046564790009]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/9", - "value": "Instance_[246072334593785]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/10", - "value": "Instance_[246059449691897]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Instances/Instance_[112220651911614]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[112224946878910]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151085810973118]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151098695875006]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151111580776894]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[199729637469945]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[199742522371833]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246003615117049]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246016500018937]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246046564790009]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246059449691897]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246072334593785]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292719974395641]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292732859297529]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292737154264825]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[15671223893149508584]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[2276504649476859699]/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[2276504649476859699]/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5915916368318]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5920211335614]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5971750943166]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5984635845054]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5997520746942]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6010405648830]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6023290550718]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6027585518014]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6096304994750]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6100599962046]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6104894929342]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6109189896638]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6117779831230]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6126369765822]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6134959700414]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[226710958716547824]/Parent Entity", @@ -18573,11 +18326,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 1.6385573148727417 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -18613,11 +18361,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 1.3730815649032593 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -18648,11 +18391,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -18683,11 +18421,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -18718,11 +18451,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -18753,11 +18481,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -18818,11 +18541,6 @@ "op": "replace", "path": "/Entities/Entity_[5804247218622]/Components/Component_[16246303725359178974]/Transform Data/Rotate/2", "value": -61.81346130371094 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -19641,11 +19359,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19661,11 +19374,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -0.00004673004150390625 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19696,11 +19404,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -19721,11 +19424,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19746,11 +19444,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000226974487305 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19781,11 +19474,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -19806,11 +19494,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19826,11 +19509,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -1.0564451217651367 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19856,11 +19534,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7265243530273438 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19891,11 +19564,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -19911,11 +19579,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": 0.5281124114990234 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -19946,11 +19609,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -19981,11 +19639,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -20011,11 +19664,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000231742858887 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -20036,11 +19684,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000226974487305 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -20061,11 +19704,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7265243530273438 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -20096,11 +19734,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": -90.56243896484376 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -20116,11 +19749,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -0.5288867950439453 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -20136,11 +19764,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": 1.0888690948486328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -20171,11 +19794,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -20206,11 +19824,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -20241,11 +19854,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -20276,11 +19884,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -20311,11 +19914,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99998474121094 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -20346,11 +19944,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -20381,11 +19974,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -20417,11 +20005,6 @@ "Instance_[266889014654959]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20452,11 +20035,6 @@ "Instance_[266893309622255]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20487,11 +20065,6 @@ "Instance_[266897604589551]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20532,11 +20105,7 @@ "path": "/Entities/Entity_[5722642839998]/Components/Component_[16246303725359178974]/Transform Data/Translate/1", "value": -1.1920928955078125e-7 }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, + { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20567,11 +20136,6 @@ "Instance_[266910489491439]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20602,11 +20166,6 @@ "Instance_[266914784458735]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -20637,11 +20196,6 @@ "Instance_[266919079426031]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20672,11 +20226,6 @@ "Instance_[266927669360623]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20707,11 +20256,6 @@ "Instance_[266936259295215]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -20742,11 +20286,6 @@ "Instance_[266940554262511]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -20772,11 +20311,6 @@ "Instance_[266949144197103]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -20807,11 +20341,6 @@ "Instance_[266957734131695]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20842,11 +20371,6 @@ "Instance_[266974914000879]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -20877,11 +20401,6 @@ "Instance_[266987798902767]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -20936,22 +20455,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, "Instance_[267009273739247]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -20982,11 +20491,6 @@ "Instance_[267013568706543]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21017,11 +20521,6 @@ "Instance_[267017863673839]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21137,11 +20636,6 @@ "Instance_[267030748575727]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21172,11 +20666,6 @@ "Instance_[267035043543023]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21207,11 +20696,6 @@ "Instance_[267039338510319]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21242,11 +20726,6 @@ "Instance_[267043633477615]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -21277,11 +20756,6 @@ "Instance_[267052223412207]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21336,22 +20810,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, "Instance_[267069403281391]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -21467,11 +20931,6 @@ "Instance_[267077993215983]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -21502,11 +20961,6 @@ "Instance_[267082288183279]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -21537,11 +20991,6 @@ "Instance_[267086583150575]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -21572,11 +21021,6 @@ "Instance_[267095173085167]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21636,22 +21080,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, "Instance_[267103763019759]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21722,11 +21156,6 @@ "Instance_[267112352954351]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -21781,22 +21210,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, "Instance_[267120942888943]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -21827,11 +21246,6 @@ "Instance_[267125237856239]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -21867,11 +21281,6 @@ "Instance_[267133827790831]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -21902,11 +21311,6 @@ "Instance_[267138122758127]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox1.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Parent Entity", @@ -21937,11 +21341,6 @@ "Instance_[267146712692719]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -21972,11 +21371,6 @@ "Instance_[267151007660015]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -22012,11 +21406,6 @@ "Instance_[267163892561903]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -22077,11 +21466,6 @@ "path": "/Entities/Entity_[5804247218622]/Components/Component_[16246303725359178974]/Transform Data/Rotate/2", "value": -61.81346130371094 }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -22227,11 +21611,6 @@ "Instance_[267885447067631]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -22276,11 +21655,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -22311,11 +21685,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -22346,11 +21715,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -22366,11 +21730,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -0.5288867950439453 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -22391,11 +21750,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000226974487305 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -22411,22 +21765,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -1.0564451217651367 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, "Instance_[267915511838703]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -22481,11 +21825,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -22506,11 +21845,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -22541,11 +21875,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 104.3531723022461 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -22576,11 +21905,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -22601,11 +21925,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7265243530273438 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -22636,11 +21955,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -22711,11 +22025,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/UniformScale", "value": 0.5998637676239014 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -22756,11 +22065,6 @@ "op": "replace", "path": "/Entities/Entity_[5722642839998]/Components/Component_[16246303725359178974]/Transform Data/Translate/1", "value": -1.1920928955078125e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -22791,22 +22095,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, "Instance_[267967051446255]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox3.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Parent Entity", @@ -22837,11 +22131,6 @@ "Instance_[267971346413551]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -22891,22 +22180,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000226974487305 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, "Instance_[267984231315439]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -22937,11 +22216,6 @@ "Instance_[267988526282735]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -22995,12 +22269,7 @@ { "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", - "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" + "value": 89.99994659423828 } ] }, @@ -23021,11 +22290,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": -0.02650165557861328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -23056,11 +22320,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -23121,11 +22380,6 @@ "op": "replace", "path": "/Entities/Entity_[5804247218622]/Components/Component_[16246303725359178974]/Transform Data/Rotate/2", "value": -61.81346130371094 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23156,11 +22410,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -23186,11 +22435,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7265243530273438 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -23206,11 +22450,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": -0.00004673004150390625 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -23241,11 +22480,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23276,11 +22510,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23396,11 +22625,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": -89.99999237060547 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23431,11 +22655,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -23451,11 +22670,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": 0.5281124114990234 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -23486,11 +22700,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -23521,11 +22730,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23556,11 +22760,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -23591,11 +22790,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99998474121094 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -23706,11 +22900,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23736,11 +22925,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/2", "value": 0.7000231742858887 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -23771,22 +22955,12 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, "Instance_[268113080334319]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -23931,11 +23105,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Rotate/2", "value": 180.0 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -23966,11 +23135,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -23986,11 +23150,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[11645621937081874484]/Transform Data/Translate/1", "value": 1.0888690948486328 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" } ] }, @@ -24056,11 +23215,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99990844726563 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -24077,11 +23231,6 @@ "Instance_[268177504843759]": { "Source": "Prefabs/Warehouse_storage/Components/WarehouseBox2.prefab", "Patches": [ - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Parent Entity", @@ -24211,11 +23360,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24246,11 +23390,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": -89.99999237060547 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24281,11 +23420,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24316,11 +23450,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24351,11 +23480,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24386,11 +23510,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 104.3531723022461 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24421,11 +23540,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24456,11 +23570,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 89.99994659423828 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -24491,11 +23600,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[4983371344376764259]/Transform Data/Rotate/2", "value": 81.8930892944336 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" } ] }, @@ -37040,243 +36144,6 @@ "Instance_[825088734246895]": { "Source": "Prefabs/Warehouse_storage/Storage_rack5.prefab", "Patches": [ - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/6", - "value": "Instance_[292732859297529]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/7", - "value": "Instance_[292719974395641]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339376204132089]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[292737154264825]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/7", - "value": "Instance_[246016500018937]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[246003615117049]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339380499099385]/Components/Component_[4058468385591425268]/Child Entity Order/9", - "value": "Instance_[199742522371833]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/0", - "value": "Entity_[339380499099385]" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/1", - "value": "Entity_[339389089033977]" - }, - { - "op": "replace", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/2", - "value": "Entity_[339376204132089]" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/5" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/4" - }, - { - "op": "remove", - "path": "/Entities/Entity_[339384794066681]/Components/Component_[13951741074857396852]/Child Entity Order/3" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/8", - "value": "Instance_[246046564790009]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/9", - "value": "Instance_[246072334593785]/ContainerEntity" - }, - { - "op": "add", - "path": "/Entities/Entity_[339389089033977]/Components/Component_[4058468385591425268]/Child Entity Order/10", - "value": "Instance_[246059449691897]/ContainerEntity" - }, - { - "op": "replace", - "path": "/Instances/Instance_[112220651911614]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[112224946878910]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151085810973118]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151098695875006]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[151111580776894]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[199729637469945]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[199742522371833]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246003615117049]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246016500018937]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246046564790009]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246059449691897]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[246072334593785]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292719974395641]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292732859297529]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[292737154264825]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[15671223893149508584]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[2276504649476859699]/ShapeConfiguration/PhysicsAsset/Asset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5907326433726]/Entities/Entity_[5559434082750]/Components/Component_[2276504649476859699]/ShapeConfiguration/PhysicsAsset/Configuration/PhysicsAsset/assetHint", - "value": "assets/warehouse/models/warehouse_rack.fbx.pxmesh" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5915916368318]/Entities/Entity_[5804247218622]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box4.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5920211335614]/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5971750943166]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5984635845054]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[5997520746942]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6010405648830]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6023290550718]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6027585518014]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6096304994750]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6100599962046]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6104894929342]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6109189896638]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6117779831230]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6126369765822]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, - { - "op": "replace", - "path": "/Instances/Instance_[6134959700414]/Entities/Entity_[5641038461374]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box1.fbx.azmodel" - }, { "op": "replace", "path": "/ContainerEntity/Components/Component_[226710958716547824]/Parent Entity", @@ -37862,11 +36729,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -37897,11 +36759,6 @@ "op": "replace", "path": "/ContainerEntity/Components/Component_[6674651583343491819]/Transform Data/Rotate/2", "value": 89.99993133544922 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -37942,11 +36799,6 @@ "op": "replace", "path": "/Entities/Entity_[5722642839998]/Components/Component_[16246303725359178974]/Transform Data/Translate/1", "value": -1.1920928955078125e-7 - }, - { - "op": "replace", - "path": "/Entities/Entity_[5722642839998]/Components/Component_[7605271439870430818]/Controller/Configuration/ModelAsset/assetHint", - "value": "assets/warehouse/models/box2.fbx.azmodel" } ] }, @@ -37986,4 +36838,4 @@ ] } } -} \ No newline at end of file +} From 2a2fe43a62c6583a4bbb0c0b7b46ffd7d2457fe7 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Mon, 13 Apr 2026 09:34:33 +0200 Subject: [PATCH 10/12] Fix OTTO robot in DemoLevelStereo Signed-off-by: Jan Hanca --- .../Prefabs/Features/StereoRobotEgo.prefab | 47 +++++++++---------- gems/o3de-otto-robots-gem | 2 +- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/Project/Prefabs/Features/StereoRobotEgo.prefab b/Project/Prefabs/Features/StereoRobotEgo.prefab index 524e2705..de8d1daa 100755 --- a/Project/Prefabs/Features/StereoRobotEgo.prefab +++ b/Project/Prefabs/Features/StereoRobotEgo.prefab @@ -2061,10 +2061,10 @@ "Configuration": { "ModelAsset": { "assetId": { - "guid": "{6A947F25-4E55-5509-990B-AC20E836AB4C}", + "guid": "{BA392652-9DEE-578F-ACAF-1EC2D166EF99}", "subId": 280463597 }, - "assetHint": "otto1500/otto1500.fbx.azmodel" + "assetHint": "otto1500/models/otto1500.fbx.azmodel" } } } @@ -2172,14 +2172,7 @@ "TransformComponent": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", "Id": 16587258293270061547, - "Parent Entity": "Entity_[110053391673185]", - "Transform Data": { - "Rotate": [ - 0.0, - 0.0, - -90.0 - ] - } + "Parent Entity": "Entity_[110053391673185]" } } }, @@ -2305,10 +2298,10 @@ "Configuration": { "ModelAsset": { "assetId": { - "guid": "{22136731-DF1C-500E-BC00-D7F2B3D84BD3}", - "subId": 278063017 + "guid": "{17837BE0-E058-5AA4-9EB3-A47D1D63F1CD}", + "subId": 269519631 }, - "assetHint": "otto1500/otto1500basicplatformmeshes/platform_a.stl.azmodel" + "assetHint": "otto1500/models/otto1500_platforma.fbx.azmodel" } } } @@ -2339,6 +2332,20 @@ "Controller": { "Configuration": { "materials": [ + { + "Key": { + "materialSlotStableId": 1900983038 + }, + "Value": { + "MaterialAsset": { + "assetId": { + "guid": "{17837BE0-E058-5AA4-9EB3-A47D1D63F1CD}", + "subId": 1900983038 + }, + "assetHint": "otto1500/models/otto1500_platforma_otto1500_platforma_17011070855134753534.fbx.azmaterial" + } + } + }, { "Key": { "materialSlotStableId": 2084814471 @@ -2371,19 +2378,7 @@ "TransformComponent": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", "Id": 11427576186611773679, - "Parent Entity": "Entity_[109971787294561]", - "Transform Data": { - "Translate": [ - 0.0, - 0.0, - 0.37599998712539673 - ], - "Rotate": [ - 0.0, - 0.0, - 89.99999237060547 - ] - } + "Parent Entity": "Entity_[109971787294561]" } } }, diff --git a/gems/o3de-otto-robots-gem b/gems/o3de-otto-robots-gem index c5438381..a191c4e5 160000 --- a/gems/o3de-otto-robots-gem +++ b/gems/o3de-otto-robots-gem @@ -1 +1 @@ -Subproject commit c5438381c36af82a4e1abe7001f9ed7709dbbe1f +Subproject commit a191c4e5904803c9de8e234a5c4bb64b817a680d From b7b6f8383c5d5f12fe665bc4e9e2907c56344c84 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Mon, 13 Apr 2026 13:15:20 +0200 Subject: [PATCH 11/12] Update submodules Signed-off-by: Jan Hanca --- gems/o3de-otto-robots-gem | 2 +- gems/o3de-ur-robots-gem | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gems/o3de-otto-robots-gem b/gems/o3de-otto-robots-gem index a191c4e5..cdab7c68 160000 --- a/gems/o3de-otto-robots-gem +++ b/gems/o3de-otto-robots-gem @@ -1 +1 @@ -Subproject commit a191c4e5904803c9de8e234a5c4bb64b817a680d +Subproject commit cdab7c680f3073ce4aa6450f7664e94c5e1f930f diff --git a/gems/o3de-ur-robots-gem b/gems/o3de-ur-robots-gem index 39e6b471..56440e86 160000 --- a/gems/o3de-ur-robots-gem +++ b/gems/o3de-ur-robots-gem @@ -1 +1 @@ -Subproject commit 39e6b4710b4fb66a84b368b8d8d4ee1f6504f0f4 +Subproject commit 56440e861e73a2e728edf0b5a226ef207ca02214 From 334276482b109108fd2c22446ce5931c7d11bd15 Mon Sep 17 00:00:00 2001 From: Jan Hanca Date: Mon, 13 Apr 2026 15:45:15 +0200 Subject: [PATCH 12/12] Fix material name Signed-off-by: Jan Hanca --- Project/Assets/Factory/Workstation/CellConveyor.prefab | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Project/Assets/Factory/Workstation/CellConveyor.prefab b/Project/Assets/Factory/Workstation/CellConveyor.prefab index 6762be17..01b9a125 100755 --- a/Project/Assets/Factory/Workstation/CellConveyor.prefab +++ b/Project/Assets/Factory/Workstation/CellConveyor.prefab @@ -686,7 +686,8 @@ "subId": 1 }, "assetHint": "assets/belt_material_roscon2023.physicsmaterial" - } + }, + "GraphicalMaterialSlot": "MBelt" } } },