Browse Source

Merge pull request #1 from o3de/spham_amzn/robot_vacuum_sample

Initial Population of Robot Vacuum Sample from original repo

Signed-off-by: Steve Pham <[email protected]>
Steve Pham 2 years ago
parent
commit
ab5af27788
100 changed files with 9000 additions and 1 deletions
  1. 0 1
      .gitignore
  2. 10 0
      Assets/Importer/Examples/turtlebot4/irobot_create_description/LICENSE
  3. 61 0
      Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/body_visual.dae
  4. 143 0
      Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/bumper_collision.dae
  5. 109 0
      Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/bumper_visual.dae
  6. 126 0
      Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/dock/visual.dae
  7. 1657 0
      Assets/Importer/Examples/turtlebot4/turtlebot4.urdf
  8. 202 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/LICENSE
  9. 5 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/NOTICE.txt
  10. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/camera_bracket.dae
  11. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/oakd_lite.dae
  12. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/oakd_pro.dae
  13. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/rplidar.dae
  14. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/shell.dae
  15. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/shell_collision.dae
  16. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/tower.dae
  17. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/tower_sensor_plate.dae
  18. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/tower_standoff.dae
  19. 54 0
      Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/weight_block.dae
  20. 3 0
      Assets/LightingPresets/diffuse.dds
  21. 3 0
      Assets/LightingPresets/o3de_brdf.dds
  22. 3 0
      Assets/LightingPresets/skybox.dds
  23. 3 0
      Assets/LightingPresets/specular.dds
  24. 0 0
      Assets/Objects/Shoes/leather-shoes/stub
  25. 16 0
      Assets/Passes/MainRenderPipeline.azasset
  26. 158 0
      Assets/Physics/SurfaceTypeMaterialLibrary.physmaterial
  27. 5091 0
      Assets/RoboVac/RobotVacuum.prefab
  28. 21 0
      Assets/RoboVac/assets/RobotVacuum_ABSGrey.material
  29. 23 0
      Assets/RoboVac/assets/RobotVacuum_ABS_White_.material
  30. 29 0
      Assets/RoboVac/assets/RobotVacuum_Acrylic_Clear_.material
  31. 20 0
      Assets/RoboVac/assets/RobotVacuum_Chip.material
  32. 24 0
      Assets/RoboVac/assets/RobotVacuum_DefaultMaterial.material
  33. 13 0
      Assets/RoboVac/assets/RobotVacuum_Display.material
  34. 21 0
      Assets/RoboVac/assets/RobotVacuum_FR4.material
  35. 21 0
      Assets/RoboVac/assets/RobotVacuum_Gold_-_Polished.material
  36. 23 0
      Assets/RoboVac/assets/RobotVacuum_Paint_-_Enamel_Glossy_Black_.material
  37. 21 0
      Assets/RoboVac/assets/RobotVacuum_Plastic_-_Sensor.material
  38. 20 0
      Assets/RoboVac/assets/RobotVacuum_Polymide_Kapton_.material
  39. 20 0
      Assets/RoboVac/assets/RobotVacuum_Rubber_-_Bumpy.material
  40. 20 0
      Assets/RoboVac/assets/RobotVacuum_Rubber_-_Weathered.material
  41. 21 0
      Assets/RoboVac/assets/RobotVacuum_Steel_-_Satin.material
  42. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BackBumper.fbx
  43. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BackBumperSensor.fbx
  44. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Battery.fbx
  45. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BottomBase.fbx
  46. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BottomWheelOne.fbx
  47. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BottomWheelTwo.fbx
  48. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BrushB.fbx
  49. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_BrushC.fbx
  50. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_CPUCase.fbx
  51. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_CPUCover.fbx
  52. 44 0
      Assets/RoboVac/assets/Robot_Vacuum_CPUCover.fbx.assetinfo
  53. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_CPUCoverDoor.fbx
  54. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Capture.fbx
  55. 44 0
      Assets/RoboVac/assets/Robot_Vacuum_Capture.fbx.assetinfo
  56. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_DepthDensorLeft.fbx
  57. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_DepthDensorRight.fbx
  58. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Display.fbx
  59. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_GearBoxLeft.fbx
  60. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_GearBoxRight.fbx
  61. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_MainLogicBoard.fbx
  62. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_NavDisplayCamera.fbx
  63. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_NavLogicBoard.fbx
  64. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_NavSensor_Left.fbx
  65. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_NavSensor_Right.fbx
  66. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_OSensorBoardHolder.fbx
  67. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_O_CenterSensor.fbx
  68. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_O_LeftSensor.fbx
  69. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_O_RightSensor.fbx
  70. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_O_Sensor_Board.fbx
  71. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Pariscope.fbx
  72. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_PariscopeGlass.fbx
  73. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_PariscopeSenesor.fbx
  74. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube.fbx
  75. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube1.fbx
  76. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube2.fbx
  77. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube3.fbx
  78. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Rails.fbx
  79. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_RightDriveGear.fbx
  80. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_ScreenBody.fbx
  81. 44 0
      Assets/RoboVac/assets/Robot_Vacuum_ScreenBody.fbx.assetinfo
  82. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_ScreenBoltRight.fbx
  83. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_ScreenGlass.fbx
  84. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_SuspensionBracketLeft.fbx
  85. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_SuspensionBracketRight.fbx
  86. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_SuspensionPinLeft.fbx
  87. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_SuspensionPinRight.fbx
  88. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_TowerStableBase.fbx
  89. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_TowerTop.fbx
  90. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_VacCase.fbx
  91. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_VacVaseDoor.fbx
  92. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Wheel_Left.fbx
  93. 3 0
      Assets/RoboVac/assets/Robot_Vacuum_Wheel_Right.fbx
  94. 3 0
      Assets/RoboVac/assets/Robot_vacuum_base_link.fbx
  95. 47 0
      Assets/RoboVac/assets/Robot_vacuum_base_link.fbx.assetinfo
  96. 3 0
      Assets/RoboVac/textures/Eye_BaseColor.png
  97. 197 0
      Assets/RoboVac/urdf/RobotVacuum_description/CMakeLists.txt
  98. 21 0
      Assets/RoboVac/urdf/RobotVacuum_description/LICENSE
  99. 9 0
      Assets/RoboVac/urdf/RobotVacuum_description/launch/controller.launch
  100. 14 0
      Assets/RoboVac/urdf/RobotVacuum_description/launch/controller.yaml

+ 0 - 1
.gitignore

@@ -20,4 +20,3 @@ server*.cfg
 _savebackup/
 *.swatches
 /imgui.ini
-

+ 10 - 0
Assets/Importer/Examples/turtlebot4/irobot_create_description/LICENSE

@@ -0,0 +1,10 @@
+Copyright 2021 iRobot Corporation.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. 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.
+3. 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.

File diff suppressed because it is too large
+ 61 - 0
Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/body_visual.dae


File diff suppressed because it is too large
+ 143 - 0
Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/bumper_collision.dae


File diff suppressed because it is too large
+ 109 - 0
Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/bumper_visual.dae


File diff suppressed because it is too large
+ 126 - 0
Assets/Importer/Examples/turtlebot4/irobot_create_description/meshes/dock/visual.dae


+ 1657 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4.urdf

@@ -0,0 +1,1657 @@
+<?xml version="1.0" ?>
+<!-- =================================================================================== -->
+<!-- |    This document was autogenerated by xacro from turtlebot4.urdf.xacro          | -->
+<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
+<!-- =================================================================================== -->
+<robot name="turtlebot4">
+  <!-- Create 3 base definition-->
+  <link name="base_link">
+    <visual>
+      <origin rpy="0 0 1.5707963267948966" xyz="0 0 0.039200000000000006"/>
+      <geometry>
+        <mesh filename="package://irobot_create_description/meshes/body_visual.dae"/>
+      </geometry>
+    </visual>
+    <collision name="create3_base_collision">
+      <origin rpy="0 0 1.5707963267948966" xyz="0 0 0.04920000000000001"/>
+      <geometry>
+        <cylinder length="0.06" radius="0.16399999999999998"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin xyz="0.0 0 0.0742"/>
+      <mass value="2.3"/>
+      <inertia ixx="0.016155199999999998" ixy="0.0" ixz="0.0" iyy="0.016155199999999998" iyz="0.0" izz="0.03093039999999999"/>
+    </inertial>
+  </link>
+  <joint name="bump_front_center_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="bump_front_center"/>
+    <origin xyz="0 0 0.039200000000000006"/>
+  </joint>
+  <link name="bump_front_center">
+    <visual>
+      <geometry>
+        <mesh filename="package://irobot_create_description/meshes/bumper_visual.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://irobot_create_description/meshes/bumper_collision.dae"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin xyz="0.08 0 0.02"/>
+      <mass value="0.1"/>
+      <inertia ixx="0.0013483753405" ixy="0.0000000454352" ixz="0.0000014434849" iyy="0.0002521736852" iyz="-0.0000000006721" izz="0.0015442525386"/>
+    </inertial>
+  </link>
+  <gazebo reference="bump_front_center">
+    <mu1>0.1</mu1>
+    <mu2>0.1</mu2>
+    <maxVel>0.01</maxVel>
+    <minDepth>0.001</minDepth>
+    <maxContacts>10</maxContacts>
+    <material>Gazebo/DarkGrey</material>
+    <sensor name="bump_front_center_contact_sensor" type="contact">
+      <always_on>true</always_on>
+      <update_rate>62.0</update_rate>
+      <contact>
+        <collision>bump_front_center_collision</collision>
+      </contact>
+      <plugin filename="libgazebo_ros_create_bumper.so" name="bump_front_center_plugin">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/bumper/event</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <gazebo reference="bump_front_center_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <joint name="bump_front_left_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="bump_front_left"/>
+    <origin rpy="0 0 0.5235985" xyz="0.02345 -0.0875 0.025"/>
+  </joint>
+  <link name="bump_front_left"/>
+  <joint name="bump_front_right_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="bump_front_right"/>
+    <origin rpy="0 0 -0.5235985" xyz="0.02345 0.0875 0.025"/>
+  </joint>
+  <link name="bump_front_right"/>
+  <joint name="bump_left_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="bump_left"/>
+    <origin rpy="0 0 1.047193" xyz="0.0875 -0.15155 0.025"/>
+  </joint>
+  <link name="bump_left"/>
+  <joint name="bump_right_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="bump_right"/>
+    <origin rpy="0 0 -1.047193" xyz="0.0875 0.15155 0.025"/>
+  </joint>
+  <link name="bump_right"/>
+  <joint name="wheel_drop_left_joint" type="prismatic">
+    <parent link="base_link"/>
+    <child link="wheel_drop_left"/>
+    <origin rpy="-1.5707963267948966 0 0" xyz="0 0.1165 0.04020000000000001"/>
+    <axis xyz="0 1 0"/>
+    <limit effort="0" lower="0" upper="0.03" velocity="0"/>
+    <!-- Damping is big enough to not make the body oscillate too much when it's lifted up -->
+    <dynamics damping="50" friction="0.1"/>
+  </joint>
+  <!-- Gazebo parameters to simulate a spring -->
+  <gazebo reference="wheel_drop_left_joint">
+    <provideFeedback>false</provideFeedback>
+    <implicitSpringDamper>true</implicitSpringDamper>
+    <!-- This value should be high enough so that the wheeldrop can
+          retract with the robot's weight (mass * gravity) -->
+    <springStiffness>400</springStiffness>
+    <springReference>0.03</springReference>
+  </gazebo>
+  <link name="wheel_drop_left">
+    <inertial>
+      <mass value="0.05"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="2.0833333333333336e-05" ixy="0.0" ixz="0.0" iyy="2.0833333333333336e-05" iyz="0.0" izz="2.0833333333333336e-05"/>
+    </inertial>
+  </link>
+  <gazebo>
+    <plugin filename="libgazebo_ros_create_wheel_drop.so" name="wheel_drop_left_plugin">
+      <ros>
+        <namespace>/</namespace>
+        <remapping>~/out:=_internal/wheel_drop/left_wheel/event</remapping>
+      </ros>
+      <update_rate>62</update_rate>
+      <detection_threshold>0.03</detection_threshold>
+      <joint_name>wheel_drop_left_joint</joint_name>
+      <frame_id>wheel_drop_left</frame_id>
+    </plugin>
+  </gazebo>
+  <joint name="left_wheel_joint" type="continuous">
+    <parent link="wheel_drop_left"/>
+    <child link="left_wheel"/>
+    <origin rpy="0 0 0" xyz="0 0 0"/>
+    <axis xyz="0 0 1"/>
+  </joint>
+  <link name="left_wheel">
+    <visual>
+      <geometry>
+        <cylinder length="0.015" radius="0.035750000000000004"/>
+      </geometry>
+      <!-- Give black color to wheels in Rviz -->
+      <material name="black">
+        <color rgba="0.1 0.1 0.1 1"/>
+      </material>
+    </visual>
+    <collision>
+      <geometry>
+        <cylinder length="0.015" radius="0.035750000000000004"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin xyz="0 0 0"/>
+      <mass value="0.2"/>
+      <inertia ixx="6.765312500000001e-05" ixy="0.0" ixz="0.0" iyy="6.765312500000001e-05" iyz="0.0" izz="0.00012780625000000003"/>
+    </inertial>
+  </link>
+  <gazebo reference="left_wheel">
+    <mu1>1.0</mu1>
+    <mu2>1.0</mu2>
+    <kp>1000000.0</kp>
+    <kd>100.0</kd>
+    <minDepth>0.0001</minDepth>
+    <maxVel>1.0</maxVel>
+    <material>Gazebo/DarkGrey</material>
+  </gazebo>
+  <ros2_control name="left_wheel_controller" type="system">
+    <hardware>
+      <plugin>gazebo_ros2_control/GazeboSystem</plugin>
+    </hardware>
+    <joint name="left_wheel_joint">
+      <state_interface name="velocity"/>
+      <state_interface name="position"/>
+      <command_interface name="velocity"/>
+    </joint>
+  </ros2_control>
+  <joint name="wheel_drop_right_joint" type="prismatic">
+    <parent link="base_link"/>
+    <child link="wheel_drop_right"/>
+    <origin rpy="-1.5707963267948966 0 0" xyz="0 -0.1165 0.04020000000000001"/>
+    <axis xyz="0 1 0"/>
+    <limit effort="0" lower="0" upper="0.03" velocity="0"/>
+    <!-- Damping is big enough to not make the body oscillate too much when it's lifted up -->
+    <dynamics damping="50" friction="0.1"/>
+  </joint>
+  <!-- Gazebo parameters to simulate a spring -->
+  <gazebo reference="wheel_drop_right_joint">
+    <provideFeedback>false</provideFeedback>
+    <implicitSpringDamper>true</implicitSpringDamper>
+    <!-- This value should be high enough so that the wheeldrop can
+          retract with the robot's weight (mass * gravity) -->
+    <springStiffness>400</springStiffness>
+    <springReference>0.03</springReference>
+  </gazebo>
+  <link name="wheel_drop_right">
+    <inertial>
+      <mass value="0.05"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="2.0833333333333336e-05" ixy="0.0" ixz="0.0" iyy="2.0833333333333336e-05" iyz="0.0" izz="2.0833333333333336e-05"/>
+    </inertial>
+  </link>
+  <gazebo>
+    <plugin filename="libgazebo_ros_create_wheel_drop.so" name="wheel_drop_right_plugin">
+      <ros>
+        <namespace>/</namespace>
+        <remapping>~/out:=_internal/wheel_drop/right_wheel/event</remapping>
+      </ros>
+      <update_rate>62</update_rate>
+      <detection_threshold>0.03</detection_threshold>
+      <joint_name>wheel_drop_right_joint</joint_name>
+      <frame_id>wheel_drop_right</frame_id>
+    </plugin>
+  </gazebo>
+  <joint name="right_wheel_joint" type="continuous">
+    <parent link="wheel_drop_right"/>
+    <child link="right_wheel"/>
+    <origin rpy="0 0 0" xyz="0 0 0"/>
+    <axis xyz="0 0 1"/>
+  </joint>
+  <link name="right_wheel">
+    <visual>
+      <geometry>
+        <cylinder length="0.015" radius="0.035750000000000004"/>
+      </geometry>
+      <!-- Give black color to wheels in Rviz -->
+      <material name="black">
+        <color rgba="0.1 0.1 0.1 1"/>
+      </material>
+    </visual>
+    <collision>
+      <geometry>
+        <cylinder length="0.015" radius="0.035750000000000004"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin xyz="0 0 0"/>
+      <mass value="0.2"/>
+      <inertia ixx="6.765312500000001e-05" ixy="0.0" ixz="0.0" iyy="6.765312500000001e-05" iyz="0.0" izz="0.00012780625000000003"/>
+    </inertial>
+  </link>
+  <gazebo reference="right_wheel">
+    <mu1>1.0</mu1>
+    <mu2>1.0</mu2>
+    <kp>1000000.0</kp>
+    <kd>100.0</kd>
+    <minDepth>0.0001</minDepth>
+    <maxVel>1.0</maxVel>
+    <material>Gazebo/DarkGrey</material>
+  </gazebo>
+  <ros2_control name="right_wheel_controller" type="system">
+    <hardware>
+      <plugin>gazebo_ros2_control/GazeboSystem</plugin>
+    </hardware>
+    <joint name="right_wheel_joint">
+      <state_interface name="velocity"/>
+      <state_interface name="position"/>
+      <command_interface name="velocity"/>
+    </joint>
+  </ros2_control>
+  <joint name="front_caster_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="front_caster_link"/>
+    <origin rpy="-1.5707963267948966 0 0" xyz="0.125 0 0.012200000000000003"/>
+  </joint>
+  <link name="front_caster_link">
+    <visual>
+      <geometry>
+        <sphere radius="0.01"/>
+      </geometry>
+      <!-- Give black color to caster in Rviz -->
+      <material name="black">
+        <color rgba="0.1 0.1 0.1 1"/>
+      </material>
+    </visual>
+    <collision>
+      <geometry>
+        <sphere radius="0.01"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.01"/>
+      <inertia ixx="4.0000000000000003e-07" ixy="0.0" ixz="0.0" iyy="4.0000000000000003e-07" iyz="0.0" izz="4.0000000000000003e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_caster_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_caster_link">
+    <material>Gazebo/DarkGrey</material>
+    <mu1>0.1</mu1>
+    <mu2>0.1</mu2>
+    <kp>1000000.0</kp>
+    <kd>1.0</kd>
+  </gazebo>
+  <joint name="imu_joint" type="fixed">
+    <origin xyz="0.050613 0.043673 0.0844"/>
+    <parent link="base_link"/>
+    <child link="imu_link"/>
+  </joint>
+  <link name="imu_link">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="imu_link">
+    <sensor name="imu" type="imu">
+      <always_on>true</always_on>
+      <update_rate>62</update_rate>
+      <imu>
+        <angular_velocity>
+          <x>
+            <noise type="gaussian">
+              <mean>0.0</mean>
+              <stddev>0.0</stddev>
+            </noise>
+          </x>
+          <y>
+            <noise type="gaussian">
+              <mean>0.0</mean>
+              <stddev>0.0</stddev>
+            </noise>
+          </y>
+          <z>
+            <noise type="gaussian">
+              <mean>0.0</mean>
+              <stddev>0.0</stddev>
+            </noise>
+          </z>
+        </angular_velocity>
+        <linear_acceleration>
+          <x>
+            <noise type="gaussian">
+              <mean>0.0</mean>
+              <stddev>0.0</stddev>
+            </noise>
+          </x>
+          <y>
+            <noise type="gaussian">
+              <mean>0.0</mean>
+              <stddev>0.0</stddev>
+            </noise>
+          </y>
+          <z>
+            <noise type="gaussian">
+              <mean>0.0</mean>
+              <stddev>0.0</stddev>
+            </noise>
+          </z>
+        </linear_acceleration>
+      </imu>
+      <plugin filename="libgazebo_ros_create_imu.so" name="imu_plugin">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=imu</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <gazebo reference="imu_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo>
+    <plugin filename="libgazebo_ros2_control.so" name="gazebo_ros2_control">
+      <parameters> /home/adam/turtlebot4_ws/install/irobot_create_control/share/irobot_create_control/config/control.yaml </parameters>
+    </plugin>
+  </gazebo>
+  <joint name="mouse_joint" type="fixed">
+    <origin rpy="0 0 -0.7853981633974483" xyz="0.1015 0.087 0.009200000000000007"/>
+    <parent link="base_link"/>
+    <child link="mouse"/>
+  </joint>
+  <link name="mouse">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo>
+    <plugin filename="libgazebo_ros_create_optical_mouse.so" name="mouse_plugin">
+      <ros>
+        <namespace>/</namespace>
+        <remapping>~/out:=mouse</remapping>
+      </ros>
+      <update_rate>62</update_rate>
+      <link_name>mouse</link_name>
+    </plugin>
+  </gazebo>
+  <gazebo reference="mouse_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <joint name="cliff_side_left_joint" type="fixed">
+    <origin rpy="0 1.3962634015954636 2.921681167838508" xyz="0.06 0.145 0.01920000000000001"/>
+    <parent link="base_link"/>
+    <child link="cliff_side_left"/>
+  </joint>
+  <link name="cliff_side_left">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="cliff_side_left">
+    <sensor name="cliff_side_left" type="ray">
+      <update_rate>62</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>1.0</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.04363323129985824</min_angle>
+            <max_angle>0.04363323129985824</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>1</samples>
+            <resolution>1</resolution>
+            <min_angle>0</min_angle>
+            <max_angle>0</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.0001</min>
+          <max>0.15</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_cliff_sensor.so" name="cliff_side_left">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/cliff_side_left/event</remapping>
+        </ros>
+        <detection_threshold>0.08</detection_threshold>
+        <frame_id>cliff_side_left</frame_id>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="cliff_side_right_joint" type="fixed">
+    <origin rpy="0 1.3962634015954636 -2.921681167838508" xyz="0.06 -0.145 0.01920000000000001"/>
+    <parent link="base_link"/>
+    <child link="cliff_side_right"/>
+  </joint>
+  <link name="cliff_side_right">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="cliff_side_right">
+    <sensor name="cliff_side_right" type="ray">
+      <update_rate>62</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>1.0</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.04363323129985824</min_angle>
+            <max_angle>0.04363323129985824</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>1</samples>
+            <resolution>1</resolution>
+            <min_angle>0</min_angle>
+            <max_angle>0</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.0001</min>
+          <max>0.15</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_cliff_sensor.so" name="cliff_side_right">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/cliff_side_right/event</remapping>
+        </ros>
+        <detection_threshold>0.08</detection_threshold>
+        <frame_id>cliff_side_right</frame_id>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="cliff_front_left_joint" type="fixed">
+    <origin rpy="0 1.3962634015954636 1.1397000015522971" xyz="0.16 0.045 0.01920000000000001"/>
+    <parent link="base_link"/>
+    <child link="cliff_front_left"/>
+  </joint>
+  <link name="cliff_front_left">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="cliff_front_left">
+    <sensor name="cliff_front_left" type="ray">
+      <update_rate>62</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>1.0</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.04363323129985824</min_angle>
+            <max_angle>0.04363323129985824</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>1</samples>
+            <resolution>1</resolution>
+            <min_angle>0</min_angle>
+            <max_angle>0</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.0001</min>
+          <max>0.15</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_cliff_sensor.so" name="cliff_front_left">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/cliff_front_left/event</remapping>
+        </ros>
+        <detection_threshold>0.08</detection_threshold>
+        <frame_id>cliff_front_left</frame_id>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="cliff_front_right_joint" type="fixed">
+    <origin rpy="0 1.3962634015954636 -1.1397000015522971" xyz="0.16 -0.045 0.01920000000000001"/>
+    <parent link="base_link"/>
+    <child link="cliff_front_right"/>
+  </joint>
+  <link name="cliff_front_right">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="cliff_front_right">
+    <sensor name="cliff_front_right" type="ray">
+      <update_rate>62</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>1.0</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.04363323129985824</min_angle>
+            <max_angle>0.04363323129985824</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>1</samples>
+            <resolution>1</resolution>
+            <min_angle>0</min_angle>
+            <max_angle>0</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.0001</min>
+          <max>0.15</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_cliff_sensor.so" name="cliff_front_right">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/cliff_front_right/event</remapping>
+        </ros>
+        <detection_threshold>0.08</detection_threshold>
+        <frame_id>cliff_front_right</frame_id>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_front_center_left_joint" type="fixed">
+    <origin xyz="0.1540 0 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_front_center_left"/>
+  </joint>
+  <link name="ir_intensity_front_center_left">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_front_center_left_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_front_center_left">
+    <sensor name="ir_intensity_front_center_left" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_front_center_left">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_front_center_left</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_front_center_right_joint" type="fixed">
+    <origin rpy="0 0 -0.436" xyz="0.1396 -0.0651 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_front_center_right"/>
+  </joint>
+  <link name="ir_intensity_front_center_right">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_front_center_right_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_front_center_right">
+    <sensor name="ir_intensity_front_center_right" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_front_center_right">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_front_center_right</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_front_left_joint" type="fixed">
+    <origin rpy="0 0 0.436" xyz="0.1396 0.0651 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_front_left"/>
+  </joint>
+  <link name="ir_intensity_front_left">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_front_left_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_front_left">
+    <sensor name="ir_intensity_front_left" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_front_left">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_front_left</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_front_right_joint" type="fixed">
+    <origin rpy="0 0 -0.873" xyz="0.0990 -0.1180 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_front_right"/>
+  </joint>
+  <link name="ir_intensity_front_right">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_front_right_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_front_right">
+    <sensor name="ir_intensity_front_right" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_front_right">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_front_right</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_left_joint" type="fixed">
+    <origin rpy="0 0 0.873" xyz="0.0990 0.1180 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_left"/>
+  </joint>
+  <link name="ir_intensity_left">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_left_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_left">
+    <sensor name="ir_intensity_left" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_left">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_left</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_right_joint" type="fixed">
+    <origin rpy="0 0 -1.309" xyz="0.0399 -0.1488 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_right"/>
+  </joint>
+  <link name="ir_intensity_right">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_right_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_right">
+    <sensor name="ir_intensity_right" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_right">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_right</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="ir_intensity_side_left_joint" type="fixed">
+    <origin rpy="0 0 1.309" xyz="0.0399 0.1488 0.05720000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_intensity_side_left"/>
+  </joint>
+  <link name="ir_intensity_side_left">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo reference="ir_intensity_side_left_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="ir_intensity_side_left">
+    <sensor name="ir_intensity_side_left" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>False</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>5</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-0.08726646259971647</min_angle>
+            <max_angle>0.08726646259971647</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.025</min>
+          <max>0.2</max>
+          <resolution>1.0</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="libgazebo_ros_create_ir_intensity_sensor.so" name="ir_intensity_side_left">
+        <ros>
+          <namespace>/</namespace>
+          <remapping>~/out:=_internal/ir_intensity_side_left</remapping>
+        </ros>
+      </plugin>
+    </sensor>
+  </gazebo>
+  <joint name="button_1_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="button_1"/>
+    <origin rpy="0 -1.5707963267948966 0" xyz="0.06 0.37 0.1442"/>
+  </joint>
+  <link name="button_1"/>
+  <joint name="button_2_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="button_2"/>
+    <origin rpy="0 -1.5707963267948966 0" xyz="0.06 -0.37 0.1442"/>
+  </joint>
+  <link name="button_2"/>
+  <joint name="button_power_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="button_power"/>
+    <origin rpy="0 -1.5707963267948966 0" xyz="0.06 0 0.1442"/>
+  </joint>
+  <link name="button_power"/>
+  <joint name="ir_omni_joint" type="fixed">
+    <origin xyz="0.153 0 0.09920000000000001"/>
+    <parent link="base_link"/>
+    <child link="ir_omni"/>
+  </joint>
+  <link name="ir_omni">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <gazebo>
+    <plugin filename="libgazebo_ros_create_ir_opcode.so" name="ir_omni_plugin">
+      <ros>
+        <namespace>/</namespace>
+        <remapping>~/out:=ir_opcode</remapping>
+      </ros>
+      <update_rate>31</update_rate>
+      <robot_model_name>create3</robot_model_name>
+      <receiver_link_name>ir_omni</receiver_link_name>
+      <dock_model_name>standard_dock</dock_model_name>
+      <emitter_link_name>halo_link</emitter_link_name>
+      <sensor_0_fov>3.839724354387525</sensor_0_fov>
+      <sensor_0_range>0.01</sensor_0_range>
+      <sensor_1_fov>1.5707963267948966</sensor_1_fov>
+      <sensor_1_range>0.5</sensor_1_range>
+    </plugin>
+  </gazebo>
+  <gazebo reference="ir_omni_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <!-- Ground truth pose -->
+  <gazebo>
+    <plugin filename="libgazebo_ros_p3d.so" name="gazebo_ros_p3d_robot">
+      <ros>
+        <namespace>/</namespace>
+        <remapping>odom:=sim_ground_truth_pose</remapping>
+      </ros>
+      <body_name>base_link</body_name>
+      <frame_name>world</frame_name>
+      <update_rate>62</update_rate>
+      <xyz_offset>0 0 0</xyz_offset>
+      <rpy_offset>0.0 0.0 0.0</rpy_offset>
+      <gaussian_noise>0.0</gaussian_noise>
+    </plugin>
+  </gazebo>
+  <!-- Dock status -->
+  <gazebo>
+    <plugin filename="libgazebo_ros_create_docking_status.so" name="dock_status_publisher">
+      <ros>
+        <namespace>/</namespace>
+        <remapping>~/out:=dock</remapping>
+      </ros>
+      <update_rate>1.0</update_rate>
+      <robot_model_name>create3</robot_model_name>
+      <receiver_link_name>ir_omni</receiver_link_name>
+      <dock_model_name>standard_dock</dock_model_name>
+      <emitter_link_name>halo_link</emitter_link_name>
+    </plugin>
+  </gazebo>
+  <joint name="shell_link_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="shell_link"/>
+    <origin rpy="0 0 0" xyz="0 0 0.0942"/>
+  </joint>
+  <!-- Turtlebot4 shell definition -->
+  <link name="shell_link">
+    <visual>
+      <origin rpy="1.5707963267948966 0 1.5707963267948966" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/shell.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision name="shell_collision">
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/shell_collision.dae" scale="1 1 1"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.39"/>
+      <inertia ixx="0.00281295367" ixy="-0.00000137675" ixz="-0.00005790057" iyy="0.00164666421" iyz="0.00000564466" izz="0.00424540124"/>
+    </inertial>
+  </link>
+  <gazebo reference="shell_link">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="front_left_bottom_weight_block_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="front_left_bottom_weight_block"/>
+    <origin xyz="0.06005267 0.08758841 0.09788546000000001"/>
+  </joint>
+  <link name="front_left_bottom_weight_block">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/weight_block.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <inertial>
+      <origin xyz="0.1 0 0"/>
+      <mass value="0.061"/>
+      <inertia ixx="0.0000093482" ixy="-0.00000337434" ixz="0.0" iyy="0.00000436382" iyz="0.0" izz="0.00001288852"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_left_bottom_weight_block_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_left_bottom_weight_block">
+    <visual>
+      <material>
+        <diffuse>0.011764705882352941 0.011764705882352941 0.011764705882352941 1</diffuse>
+        <specular>0 0 0 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="front_left_top_weight_block_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="front_left_top_weight_block"/>
+    <origin xyz="0.06005267 0.08758841 0.10688546"/>
+  </joint>
+  <link name="front_left_top_weight_block">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/weight_block.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <inertial>
+      <origin xyz="0.1 0 0"/>
+      <mass value="0.061"/>
+      <inertia ixx="0.0000093482" ixy="-0.00000337434" ixz="0.0" iyy="0.00000436382" iyz="0.0" izz="0.00001288852"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_left_top_weight_block_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_left_top_weight_block">
+    <visual>
+      <material>
+        <diffuse>0.011764705882352941 0.011764705882352941 0.011764705882352941 1</diffuse>
+        <specular>0 0 0 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="front_right_bottom_weight_block_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="front_right_bottom_weight_block"/>
+    <origin rpy="3.141592653589793 0 0" xyz="0.06005267 -0.08758841 0.09788546000000001"/>
+  </joint>
+  <link name="front_right_bottom_weight_block">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/weight_block.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <inertial>
+      <origin xyz="0.1 0 0"/>
+      <mass value="0.061"/>
+      <inertia ixx="0.0000093482" ixy="-0.00000337434" ixz="0.0" iyy="0.00000436382" iyz="0.0" izz="0.00001288852"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_right_bottom_weight_block_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_right_bottom_weight_block">
+    <visual>
+      <material>
+        <diffuse>0.011764705882352941 0.011764705882352941 0.011764705882352941 1</diffuse>
+        <specular>0 0 0 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="front_right_top_weight_block_joint" type="fixed">
+    <parent link="base_link"/>
+    <child link="front_right_top_weight_block"/>
+    <origin rpy="3.141592653589793 0 0" xyz="0.06005267 -0.08758841 0.10688546"/>
+  </joint>
+  <link name="front_right_top_weight_block">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/weight_block.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <inertial>
+      <origin xyz="0.1 0 0"/>
+      <mass value="0.061"/>
+      <inertia ixx="0.0000093482" ixy="-0.00000337434" ixz="0.0" iyy="0.00000436382" iyz="0.0" izz="0.00001288852"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_right_top_weight_block_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_right_top_weight_block">
+    <visual>
+      <material>
+        <diffuse>0.011764705882352941 0.011764705882352941 0.011764705882352941 1</diffuse>
+        <specular>0 0 0 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="front_left_tower_standoff_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="front_left_tower_standoff"/>
+    <origin xyz="0.03063 0.11431 0.14757"/>
+  </joint>
+  <link name="front_left_tower_standoff">
+    <visual>
+      <origin rpy="0 1.5707963267948966 0"/>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/tower_standoff.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0"/>
+      <geometry>
+        <cylinder length="0.205" radius="0.006"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.26"/>
+      <inertia ixx="0.00000019604" ixy="0.0" ixz="0.0" iyy="0.00005262313" iyz="0.0" izz="0.00005262313"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_left_tower_standoff_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_left_tower_standoff">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="front_right_tower_standoff_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="front_right_tower_standoff"/>
+    <origin xyz="0.03063 -0.11431 0.14757"/>
+  </joint>
+  <link name="front_right_tower_standoff">
+    <visual>
+      <origin rpy="0 1.5707963267948966 0"/>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/tower_standoff.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0"/>
+      <geometry>
+        <cylinder length="0.205" radius="0.006"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.26"/>
+      <inertia ixx="0.00000019604" ixy="0.0" ixz="0.0" iyy="0.00005262313" iyz="0.0" izz="0.00005262313"/>
+    </inertial>
+  </link>
+  <gazebo reference="front_right_tower_standoff_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="front_right_tower_standoff">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="rear_left_tower_standoff_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="rear_left_tower_standoff"/>
+    <origin xyz="-0.07607 0.09066 0.14757"/>
+  </joint>
+  <link name="rear_left_tower_standoff">
+    <visual>
+      <origin rpy="0 1.5707963267948966 0"/>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/tower_standoff.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0"/>
+      <geometry>
+        <cylinder length="0.205" radius="0.006"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.26"/>
+      <inertia ixx="0.00000019604" ixy="0.0" ixz="0.0" iyy="0.00005262313" iyz="0.0" izz="0.00005262313"/>
+    </inertial>
+  </link>
+  <gazebo reference="rear_left_tower_standoff_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="rear_left_tower_standoff">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="rear_right_tower_standoff_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="rear_right_tower_standoff"/>
+    <origin xyz="-0.07607 -0.09066 0.14757"/>
+  </joint>
+  <link name="rear_right_tower_standoff">
+    <visual>
+      <origin rpy="0 1.5707963267948966 0"/>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/tower_standoff.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0"/>
+      <geometry>
+        <cylinder length="0.205" radius="0.006"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.26"/>
+      <inertia ixx="0.00000019604" ixy="0.0" ixz="0.0" iyy="0.00005262313" iyz="0.0" izz="0.00005262313"/>
+    </inertial>
+  </link>
+  <gazebo reference="rear_right_tower_standoff_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="rear_right_tower_standoff">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <joint name="tower_sensor_plate_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="tower_sensor_plate"/>
+    <origin xyz="0 0 0.25257"/>
+  </joint>
+  <link name="tower_sensor_plate">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/tower_sensor_plate.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin xyz="0 0 0.001"/>
+      <geometry>
+        <cylinder length="0.003" radius="0.137"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.332"/>
+      <inertia ixx="0.00092982299" ixy="0.0" ixz="0.0" iyy="0.00083033498" iyz="0.0" izz="0.00175985947"/>
+    </inertial>
+  </link>
+  <gazebo reference="tower_sensor_plate_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="tower_sensor_plate">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <!-- Turtlebot4 sensor definitions -->
+  <joint name="rplidar_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="rplidar_link"/>
+    <origin rpy="0 0 1.5707963267948966" xyz="-0.04 0.0 0.098715"/>
+  </joint>
+  <link name="rplidar_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/rplidar.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin xyz="0.0 0.013000000000000001 -0.019"/>
+      <geometry>
+        <box size="0.071 0.1 0.06"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.17"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="0.0001926666666666667" ixy="0.0" ixz="0.0" iyy="0.00012241416666666666" iyz="0.0" izz="0.00021308083333333337"/>
+    </inertial>
+  </link>
+  <gazebo reference="rplidar_link">
+    <sensor name="rplidar" type="ray">
+      <update_rate>62.0</update_rate>
+      <visualize>1</visualize>
+      <always_on>true</always_on>
+      <ray>
+        <scan>
+          <horizontal>
+            <samples>640</samples>
+            <resolution>1.0</resolution>
+            <min_angle>-3.141592653589793</min_angle>
+            <max_angle>3.141592653589793</max_angle>
+          </horizontal>
+          <vertical>
+            <samples>1</samples>
+            <resolution>1</resolution>
+            <min_angle>0</min_angle>
+            <max_angle>0</max_angle>
+          </vertical>
+        </scan>
+        <range>
+          <min>0.164</min>
+          <max>12.0</max>
+          <resolution>0.01</resolution>
+        </range>
+      </ray>
+      <!-- Noise is currently disabled -->
+      <noise>
+        <type>gaussian</type>
+        <mean>0.0</mean>
+        <stddev>0.0</stddev>
+      </noise>
+      <plugin filename="dummyfile" name="dummy"/>
+    </sensor>
+    <visual>
+      <material>
+        <diffuse>0.011764705882352941 0.011764705882352941 0.011764705882352941 1</diffuse>
+        <specular>0 0 0 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <gazebo reference="rplidar_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <joint name="oakd_pro_camera_bracket_joint" type="fixed">
+    <parent link="shell_link"/>
+    <child link="oakd_pro_camera_bracket"/>
+    <origin xyz="-0.11800000000000001 0.0 0.05257"/>
+  </joint>
+  <link name="oakd_pro_camera_bracket">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/camera_bracket.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <inertial>
+      <mass value="0.033"/>
+      <inertia ixx="0.0000579181" ixy="0.0" ixz="0.0000090679" iyy="0.0000559785" iyz="0.0" izz="0.0000140955"/>
+    </inertial>
+  </link>
+  <gazebo reference="oakd_pro_camera_bracket_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_camera_bracket">
+    <visual>
+      <material>
+        <diffuse>0 0 0 1</diffuse>
+        <specular>0.3137254901960784 0.3137254901960784 0.3137254901960784 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <!-- Base frame -->
+  <joint name="oakd_pro_joint" type="fixed">
+    <parent link="oakd_pro_camera_bracket"/>
+    <child link="oakd_pro_link"/>
+    <origin xyz="0.0584 0.0 0.09676"/>
+  </joint>
+  <link name="oakd_pro_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://turtlebot4_description/meshes/oakd_pro.dae" scale="1 1 1"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin xyz="-0.011000000000000001 0.0 -0.005"/>
+      <geometry>
+        <box size="0.0225 0.09699999999999999 0.03"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.061"/>
+      <inertia ixx="0.00000202475" ixy="0.0" ixz="0.0" iyy="0.00001527320" iyz="0.0" izz="0.00001605536"/>
+    </inertial>
+  </link>
+  <!-- RGB Camera -->
+  <link name="oakd_pro_rgb_camera_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_rgb_camera_joint" type="fixed">
+    <parent link="oakd_pro_link"/>
+    <child link="oakd_pro_rgb_camera_frame"/>
+    <origin rpy="0 0 0" xyz="0 0 0"/>
+  </joint>
+  <link name="oakd_pro_rgb_camera_optical_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_rgb_camera_optical_joint" type="fixed">
+    <origin rpy="-1.5707963267948966 0.0 -1.5707963267948966" xyz="0 0 0"/>
+    <parent link="oakd_pro_rgb_camera_frame"/>
+    <child link="oakd_pro_rgb_camera_optical_frame"/>
+  </joint>
+  <!-- Left Camera -->
+  <link name="oakd_pro_left_camera_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_left_camera_joint" type="fixed">
+    <parent link="oakd_pro_link"/>
+    <child link="oakd_pro_left_camera_frame"/>
+    <origin rpy="0 0 0" xyz="0 0.0375 0"/>
+  </joint>
+  <link name="oakd_pro_left_camera_optical_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_left_camera_optical_joint" type="fixed">
+    <origin rpy="-1.5707963267948966 0.0 -1.5707963267948966" xyz="0 0 0"/>
+    <parent link="oakd_pro_left_camera_frame"/>
+    <child link="oakd_pro_left_camera_optical_frame"/>
+  </joint>
+  <!-- Right Camera -->
+  <link name="oakd_pro_right_camera_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_right_camera_joint" type="fixed">
+    <parent link="oakd_pro_link"/>
+    <child link="oakd_pro_right_camera_frame"/>
+    <origin rpy="0 0 0" xyz="0 -0.0375 0"/>
+  </joint>
+  <link name="oakd_pro_right_camera_optical_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_right_camera_optical_joint" type="fixed">
+    <origin rpy="-1.5707963267948966 0.0 -1.5707963267948966" xyz="0 0 0"/>
+    <parent link="oakd_pro_right_camera_frame"/>
+    <child link="oakd_pro_right_camera_optical_frame"/>
+  </joint>
+  <!-- IMU -->
+  <link name="oakd_pro_imu_frame">
+    <inertial>
+      <mass value="0.01"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="1.6666666666666668e-07" ixy="0.0" ixz="0.0" iyy="1.6666666666666668e-07" iyz="0.0" izz="1.6666666666666668e-07"/>
+    </inertial>
+  </link>
+  <joint name="oakd_pro_imu_joint" type="fixed">
+    <parent link="oakd_pro_link"/>
+    <child link="oakd_pro_imu_frame"/>
+    <origin rpy="-1.5707963267948966 0 -1.5707963267948966" xyz="0 0 0"/>
+  </joint>
+  <!-- Gazebo links and joints -->
+  <gazebo reference="oakd_pro_rgb_camera_frame">
+    <sensor name="rgbd_camera" type="rgbd_camera">
+      <camera>
+        <horizontal_fov>1.25</horizontal_fov>
+        <image>
+          <width>320</width>
+          <height>240</height>
+        </image>
+        <clip>
+          <near>0.3</near>
+          <far>100</far>
+        </clip>
+      </camera>
+      <always_on>1</always_on>
+      <update_rate>30</update_rate>
+      <visualize>true</visualize>
+    </sensor>
+    <visual>
+      <material>
+        <diffuse>0.011764705882352941 0.011764705882352941 0.011764705882352941 1</diffuse>
+        <specular>0 0 0 1</specular>
+        <emissive>0 0 0 1</emissive>
+      </material>
+    </visual>
+  </gazebo>
+  <gazebo reference="oakd_pro_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_rgb_camera_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_rgb_camera_optical_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_left_camera_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_left_camera_optical_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_right_camera_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_right_camera_optical_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+  <gazebo reference="oakd_pro_imu_joint">
+    <preserveFixedJoint>true</preserveFixedJoint>
+  </gazebo>
+</robot>

+ 202 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/LICENSE

@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 5 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/NOTICE.txt

@@ -0,0 +1,5 @@
+This URDF was generated with Xacro from the turtlebot4_description package, which can be found here: https://github.com/turtlebot/turtlebot4.
+It is otherwise unmodified. 
+
+This robot definition file has been developed by turtlebot4 contributors and shared under Apache-2.0 license (https://github.com/turtlebot/turtlebot4/blob/galactic/LICENSE).
+

File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/camera_bracket.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/oakd_lite.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/oakd_pro.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/rplidar.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/shell.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/shell_collision.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/tower.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/tower_sensor_plate.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/tower_standoff.dae


File diff suppressed because it is too large
+ 54 - 0
Assets/Importer/Examples/turtlebot4/turtlebot4_description/meshes/weight_block.dae


+ 3 - 0
Assets/LightingPresets/diffuse.dds

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef97c7b7ebe8a369648ed38ff49e635e38b9f62696055057c8f3244cb2d3d04d
+size 98452

+ 3 - 0
Assets/LightingPresets/o3de_brdf.dds

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6227a37547a43c3ef94b69361192bb34a3f1af4a203b8ef62e3134d45947b4a7
+size 262292

+ 3 - 0
Assets/LightingPresets/skybox.dds

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c37745a2379fd22829ddae1be85f5e97fad9b849e2adee2410444d901186b04
+size 25165972

+ 3 - 0
Assets/LightingPresets/specular.dds

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a63069fe8b19b9a66278560495d91f790f74a23d8b5fbcc742f15d4f343a544
+size 2096788

+ 0 - 0
Assets/Objects/Shoes/leather-shoes/stub


+ 16 - 0
Assets/Passes/MainRenderPipeline.azasset

@@ -0,0 +1,16 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "RenderPipelineDescriptor",
+    "ClassData": {
+        "Name": "MainPipeline",
+        "MainViewTag": "MainCamera",
+        "RootPassTemplate": "MainPipeline",
+        "AllowModification": true,
+        "RenderSettings": {
+            "MultisampleState": {
+                "samples": 4
+            }
+        }
+    }
+}

+ 158 - 0
Assets/Physics/SurfaceTypeMaterialLibrary.physmaterial

@@ -0,0 +1,158 @@
+<ObjectStream version="3">
+	<Class name="Physics::MaterialLibraryAsset" version="2" type="{9E366D8C-33BB-4825-9A1F-FA3ADBE11D0F}">
+		<Class name="AssetData" field="BaseClass1" version="1" type="{AF3F7D32-1536-422A-89F3-A11E1F5B5A9C}"/>
+		<Class name="AZStd::vector" field="Properties" type="{A8E59F8C-2F9A-525A-B549-A9E197EB9632}">
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Character" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.7000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.8000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.3000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="2" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="985.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.9183642 0.6973526 0.4447700 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{FDECD8B6-5BAF-42CB-AEFE-C66E1E1CF557}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Concrete" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.8000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.9000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.3800000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="2400.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.5918365 0.4927596 0.3795224 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{A9CACCFF-E0D2-4149-8891-E92319229B2D}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Glass" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.4000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.5000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.7000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="2500.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.4825971 0.8975662 0.9523766 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{FD59CBE9-D1C4-4119-81CB-CD7AD72FC295}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Metal" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.4200000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.7800000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.4000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="8050.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.2312963 0.2312963 0.2312963 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{76CDC778-ACA9-449F-BFD7-C361F89F3207}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Plastic" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.3500000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.3000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.6900000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="900.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.9394675 1.0000000 0.2735485 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{E2FFB000-D15B-4760-A819-9E490D1D3741}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Rubber" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="1.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="1.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.8500000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="1200.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.1088426 0.1088426 0.1088426 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{8C7A6011-61C2-46B7-9BF4-8D4DD2A624F1}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Terrain_Dirt" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.4000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.4000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.3000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="1600.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.3333333 0.2619974 0.1973144 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{303C5A49-22F2-45A8-B24C-9F2C3CA13402}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Terrain_Grass" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.2500000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.3500000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.2000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="1400.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="0.1483177 0.5986419 0.1073777 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{53733840-A095-40C4-B653-C40D233B3BE1}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Vehicle" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.2000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.5000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.3000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="1" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="1" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="140.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="1.0000000 0.0000000 0.0000000 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{4080A6D4-AF4E-41CE-B7C9-7699C07123E7}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+			<Class name="Physics::MaterialFromAssetConfiguration" field="element" version="1" type="{FBD76628-DE57-435E-BE00-6FFAE64DDF1D}">
+				<Class name="Physics::MaterialConfiguration" field="Configuration" version="3" type="{8807CAA1-AD08-4238-8FDB-2154ADD084A1}">
+					<Class name="AZStd::string" field="SurfaceType" value="Wood" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
+					<Class name="float" field="DynamicFriction" value="0.5000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="StaticFriction" value="0.6000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="float" field="Restitution" value="0.6000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="unsigned char" field="FrictionCombine" value="3" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="unsigned char" field="RestitutionCombine" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
+					<Class name="float" field="Density" value="540.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
+					<Class name="Color" field="DebugColor" value="1.0000000 0.7318379 0.3004501 1.0000000" type="{7894072A-9050-4F0F-901B-34B1A0D29417}"/>
+				</Class>
+				<Class name="Physics::MaterialId" field="UID" version="1" type="{744CCE6C-9F69-4E2F-B950-DAB8514F870B}">
+					<Class name="AZ::Uuid" field="MaterialId" value="{6ACE67AA-CB32-41CD-8740-58371CCCD3F3}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
+				</Class>
+			</Class>
+		</Class>
+	</Class>
+</ObjectStream>
+

+ 5091 - 0
Assets/RoboVac/RobotVacuum.prefab

@@ -0,0 +1,5091 @@
+{
+    "ContainerEntity": {
+        "Id": "ContainerEntity",
+        "Name": "RobotVacuum",
+        "Components": {
+            "Component_[10968750635921263389]": {
+                "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                "Id": 10968750635921263389,
+                "Parent Entity": ""
+            },
+            "Component_[11920575689657805645]": {
+                "$type": "EditorDisabledCompositionComponent",
+                "Id": 11920575689657805645
+            },
+            "Component_[13542798806271282092]": {
+                "$type": "EditorVisibilityComponent",
+                "Id": 13542798806271282092
+            },
+            "Component_[3553722274441367439]": {
+                "$type": "EditorEntityIconComponent",
+                "Id": 3553722274441367439
+            },
+            "Component_[45046133969296221]": {
+                "$type": "EditorOnlyEntityComponent",
+                "Id": 45046133969296221
+            },
+            "Component_[6131669295631726586]": {
+                "$type": "EditorPrefabComponent",
+                "Id": 6131669295631726586
+            },
+            "Component_[6817966866890090293]": {
+                "$type": "EditorLockComponent",
+                "Id": 6817966866890090293
+            },
+            "Component_[761745188714332364]": {
+                "$type": "EditorEntitySortComponent",
+                "Id": 761745188714332364,
+                "Child Entity Order": [
+                    "Entity_[30055431164411]",
+                    ""
+                ]
+            },
+            "Component_[8724271900824416155]": {
+                "$type": "EditorInspectorComponent",
+                "Id": 8724271900824416155
+            },
+            "Component_[9366716203479672115]": {
+                "$type": "EditorPendingCompositionComponent",
+                "Id": 9366716203479672115
+            }
+        }
+    },
+    "Entities": {
+        "Entity_[15934909250224]": {
+            "Id": "Entity_[15934909250224]",
+            "Name": "FollowCamera",
+            "Components": {
+                "Component_[16797873418433915706]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16797873418433915706
+                },
+                "Component_[17541973633878539421]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 17541973633878539421
+                },
+                "Component_[2741853701054493828]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 2741853701054493828
+                },
+                "Component_[3599238926902838088]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 3599238926902838088
+                },
+                "Component_[3816953534651368458]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 3816953534651368458
+                },
+                "Component_[4358438849696264694]": {
+                    "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
+                    "Id": 4358438849696264694,
+                    "Controller": {
+                        "Configuration": {
+                            "EditorEntityId": 5766567449104301076
+                        }
+                    }
+                },
+                "Component_[5247198885622374930]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5247198885622374930
+                },
+                "Component_[6432147303510452185]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 6432147303510452185
+                },
+                "Component_[6482509919667147636]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 6482509919667147636
+                },
+                "Component_[935550930618451361]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 935550930618451361,
+                    "Parent Entity": "Entity_[30055431164411]",
+                    "Transform Data": {
+                        "Translate": [
+                            -1.4058618545532227,
+                            0.10479402542114258,
+                            1.2001819610595703
+                        ],
+                        "Rotate": [
+                            2.812905788421631,
+                            29.03843116760254,
+                            -95.78008270263672
+                        ]
+                    }
+                }
+            }
+        },
+        "Entity_[29844977766907]": {
+            "Id": "Entity_[29844977766907]",
+            "Name": "robot_vacuum_display",
+            "Components": {
+                "Component_[12985102679617967668]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 12985102679617967668
+                },
+                "Component_[13842411102741348727]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 13842411102741348727
+                },
+                "Component_[14644196525901684926]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 14644196525901684926,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3328602885
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{B40251EE-D393-5721-BD0D-4B7E974FED9E}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_display.azmaterial"
+                                        },
+                                        "PropertyOverrides": {
+                                            "baseColor.textureBlendMode": {
+                                                "$type": "unsigned int",
+                                                "Value": 3
+                                            },
+                                            "baseColor.textureMap": {
+                                                "$type": "AssetId",
+                                                "Value": {
+                                                    "guid": "{C86377E6-04B6-54CF-9909-B9392E646FA9}",
+                                                    "subId": 1000
+                                                }
+                                            },
+                                            "baseColor.useTexture": {
+                                                "$type": "bool",
+                                                "Value": true
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[14662789210804931598]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14662789210804931598
+                },
+                "Component_[16257108268870135419]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 16257108268870135419,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{E8A04E15-DBF1-5627-AAAC-866820CB04A9}",
+                                    "subId": 275937803
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_display.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[5569798894058426913]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 5569798894058426913
+                },
+                "Component_[6666158346010074145]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 6666158346010074145
+                },
+                "Component_[7248756551800098299]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7248756551800098299
+                },
+                "Component_[8797991750568259235]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 8797991750568259235,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[9127282801278350722]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 9127282801278350722
+                },
+                "Component_[9237683100440409518]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 9237683100440409518
+                }
+            }
+        },
+        "Entity_[29849272734203]": {
+            "Id": "Entity_[29849272734203]",
+            "Name": "robot_vacuum_suspensionbracketright",
+            "Components": {
+                "Component_[10298441692952143132]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 10298441692952143132
+                },
+                "Component_[10723801744550018465]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 10723801744550018465
+                },
+                "Component_[10949980557844373573]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 10949980557844373573
+                },
+                "Component_[12316448049210817715]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12316448049210817715,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[16356173703235151267]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16356173703235151267,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[17905695045664625886]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17905695045664625886
+                },
+                "Component_[2658632129933647119]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 2658632129933647119
+                },
+                "Component_[3209016605494797976]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 3209016605494797976
+                },
+                "Component_[4490309095897116918]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 4490309095897116918,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{FC8FF4AA-7522-5CE2-9EC9-DF772B4DE574}",
+                                    "subId": 272040854
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_suspensionbracketright.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[6851231101142110419]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 6851231101142110419
+                },
+                "Component_[7645880101176993360]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 7645880101176993360
+                }
+            }
+        },
+        "Entity_[29853567701499]": {
+            "Id": "Entity_[29853567701499]",
+            "Name": "robot_vacuum_pariscopetube1",
+            "Components": {
+                "Component_[1002136966040176776]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1002136966040176776
+                },
+                "Component_[10128585282897083339]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10128585282897083339,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{410C68DE-BBC0-5593-A494-AE6B2ECA7F9C}",
+                                    "subId": 275150240
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscopetube1.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[10800271596998239108]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10800271596998239108
+                },
+                "Component_[11818208575759954307]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 11818208575759954307
+                },
+                "Component_[12820935042511127306]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 12820935042511127306
+                },
+                "Component_[13566021088355530138]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 13566021088355530138,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[15311464831601862343]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15311464831601862343
+                },
+                "Component_[15455988475518883085]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15455988475518883085
+                },
+                "Component_[2858097557887295587]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 2858097557887295587,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[4883359567806575815]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 4883359567806575815
+                },
+                "Component_[6350799983451887617]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 6350799983451887617
+                }
+            }
+        },
+        "Entity_[29857862668795]": {
+            "Id": "Entity_[29857862668795]",
+            "Name": "robot_vacuum_pariscope",
+            "Components": {
+                "Component_[12715334844369802531]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12715334844369802531
+                },
+                "Component_[16497743669364808333]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16497743669364808333
+                },
+                "Component_[3395440951971074979]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 3395440951971074979
+                },
+                "Component_[4526271521347260222]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 4526271521347260222
+                },
+                "Component_[575749947944104586]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 575749947944104586,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{56843DF7-DC70-5F7F-9747-DDC149EBFD43}",
+                                    "subId": 275770736
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscope.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[7075169527212756160]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 7075169527212756160
+                },
+                "Component_[7097362263958718526]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 7097362263958718526,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[8608222016900599759]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 8608222016900599759,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[919166424632691535]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 919166424632691535
+                },
+                "Component_[924672989739984043]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 924672989739984043
+                },
+                "Component_[942580204921412069]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 942580204921412069
+                }
+            }
+        },
+        "Entity_[29862157636091]": {
+            "Id": "Entity_[29862157636091]",
+            "Name": "robot_vacuum_bottombase",
+            "Components": {
+                "Component_[10473678182139113293]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10473678182139113293
+                },
+                "Component_[11711118031855619896]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 11711118031855619896
+                },
+                "Component_[12377244213778742025]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12377244213778742025
+                },
+                "Component_[12600399872005644428]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12600399872005644428
+                },
+                "Component_[14239430947160819486]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 14239430947160819486
+                },
+                "Component_[16250576811704652257]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 16250576811704652257
+                },
+                "Component_[5513140803037900469]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5513140803037900469,
+                    "Parent Entity": "Entity_[6506158658343]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            2.9802322387695313e-8
+                        ]
+                    }
+                },
+                "Component_[6166861922786349090]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 6166861922786349090,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 467460050
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[6266003952878640001]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 6266003952878640001,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{6C355820-2D59-577D-A9B2-ED406064741F}",
+                                    "subId": 283296393
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_bottombase.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[696281406360914553]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 696281406360914553
+                },
+                "Component_[9749413441073393266]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9749413441073393266
+                }
+            }
+        },
+        "Entity_[29866452603387]": {
+            "Id": "Entity_[29866452603387]",
+            "Name": "robot_vacuum_cpucase",
+            "Components": {
+                "Component_[10356958028194817037]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10356958028194817037
+                },
+                "Component_[12000926685701110958]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12000926685701110958
+                },
+                "Component_[12521928875866731675]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 12521928875866731675
+                },
+                "Component_[14489412466059887599]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14489412466059887599
+                },
+                "Component_[14551909316430055988]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 14551909316430055988,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[15559936702154199996]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 15559936702154199996
+                },
+                "Component_[17629115463019695778]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17629115463019695778
+                },
+                "Component_[3569088812992678077]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 3569088812992678077
+                },
+                "Component_[4530210423896011184]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 4530210423896011184
+                },
+                "Component_[8400181125726189581]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 8400181125726189581,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[8795666149603220285]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 8795666149603220285,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{4E46E0A8-9380-541D-AC32-D79018377184}",
+                                    "subId": 281912776
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_cpucase.azmodel"
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[29870747570683]": {
+            "Id": "Entity_[29870747570683]",
+            "Name": "robot_vacuum_pariscopesenesor",
+            "Components": {
+                "Component_[14057256557477939584]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 14057256557477939584
+                },
+                "Component_[14342767911560119442]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 14342767911560119442
+                },
+                "Component_[14803829603787579583]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14803829603787579583
+                },
+                "Component_[15750648033352986070]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 15750648033352986070,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1247756951
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{B410214E-804E-5CD7-A152-17B36FBEA0E6}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_chip.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[16343894006606552871]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 16343894006606552871,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{BED398BE-2FA7-57A9-9FFC-5EE0E8C44376}",
+                                    "subId": 272685569
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscopesenesor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16975852043683064842]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 16975852043683064842
+                },
+                "Component_[17536351687905434953]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17536351687905434953
+                },
+                "Component_[17740077145147291214]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 17740077145147291214
+                },
+                "Component_[6285435226352030312]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 6285435226352030312
+                },
+                "Component_[6476914044393995797]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 6476914044393995797,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[9206431687324815402]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9206431687324815402
+                }
+            }
+        },
+        "Entity_[29875042537979]": {
+            "Id": "Entity_[29875042537979]",
+            "Name": "robot_vacuum_o_centersensor",
+            "Components": {
+                "Component_[116219169295708513]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 116219169295708513
+                },
+                "Component_[13729794818213659006]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 13729794818213659006
+                },
+                "Component_[14591639774278218260]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14591639774278218260
+                },
+                "Component_[14628550509204703666]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 14628550509204703666,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{007D6954-ABCC-5A0A-A8E6-EC2A663AD278}",
+                                    "subId": 270514493
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_o_centersensor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[14912635637951794805]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 14912635637951794805,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[3403129396161458684]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 3403129396161458684
+                },
+                "Component_[3900914160506900203]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 3900914160506900203
+                },
+                "Component_[4643733694507146017]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 4643733694507146017
+                },
+                "Component_[5595142197387249384]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 5595142197387249384
+                },
+                "Component_[6495087388840514113]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 6495087388840514113,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 467460050
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3551048943
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[6601702759309726542]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 6601702759309726542
+                }
+            }
+        },
+        "Entity_[29879337505275]": {
+            "Id": "Entity_[29879337505275]",
+            "Name": "robot_vacuum_screenbody",
+            "Components": {
+                "Component_[12038150070017414966]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12038150070017414966,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[12927181747641970582]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 12927181747641970582,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "Paint - Enamel Glossy (Black)"
+                                }
+                            ]
+                        },
+                        "MaterialSelection": {
+                            "MaterialIds": [
+                                {}
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{472B20AC-6801-58F9-B178-6ECB7D489E22}",
+                                    "subId": 3058355074
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_screenbody.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{472B20AC-6801-58F9-B178-6ECB7D489E22}",
+                                        "subId": 3058355074
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/robovac/assets/robot_vacuum_screenbody.pxmesh"
+                                }
+                            }
+                        }
+                    }
+                },
+                "Component_[14426575678646087440]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 14426575678646087440,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[15166588050066116986]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15166588050066116986
+                },
+                "Component_[15312243562797946371]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 15312243562797946371
+                },
+                "Component_[17191691642584128721]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17191691642584128721
+                },
+                "Component_[18365507416467044590]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18365507416467044590
+                },
+                "Component_[3402092418478522962]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 3402092418478522962
+                },
+                "Component_[5555446476205528163]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5555446476205528163
+                },
+                "Component_[6510969327740399678]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 6510969327740399678
+                },
+                "Component_[8812972052876778785]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 8812972052876778785
+                },
+                "Component_[8911318239089158695]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 8911318239089158695,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{472B20AC-6801-58F9-B178-6ECB7D489E22}",
+                                    "subId": 274459091
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_screenbody.azmodel"
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[29883632472571]": {
+            "Id": "Entity_[29883632472571]",
+            "Name": "robot_vacuum_pariscopetube",
+            "Components": {
+                "Component_[11337381847282403410]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 11337381847282403410
+                },
+                "Component_[1134983352825847540]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1134983352825847540
+                },
+                "Component_[14299466247563877658]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 14299466247563877658
+                },
+                "Component_[1687230777002068203]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 1687230777002068203,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[18134433113086217528]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18134433113086217528
+                },
+                "Component_[2312105305446844838]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 2312105305446844838
+                },
+                "Component_[4865491440710470583]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 4865491440710470583
+                },
+                "Component_[521554514952015962]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 521554514952015962
+                },
+                "Component_[5534952458813085516]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 5534952458813085516,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[9350595258357518349]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 9350595258357518349,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{EA6AAF93-0D8C-57CE-8D94-4A562B041C71}",
+                                    "subId": 284014725
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscopetube.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[9715495271434390931]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9715495271434390931
+                }
+            }
+        },
+        "Entity_[29887927439867]": {
+            "Id": "Entity_[29887927439867]",
+            "Name": "robot_vacuum_cpucover",
+            "Components": {
+                "Component_[10025315339984209842]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 10025315339984209842
+                },
+                "Component_[10332769047543096197]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 10332769047543096197,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3436397348
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{0AF7BE25-7818-5DEB-A848-FBF2575C04CA}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_plastic_-_sensor.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[11371991638107009117]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 11371991638107009117,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[14595306096618604571]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14595306096618604571
+                },
+                "Component_[16147848150206823670]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16147848150206823670
+                },
+                "Component_[17368774951420809643]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 17368774951420809643,
+                    "DisabledComponents": [
+                        {
+                            "$type": "EditorColliderComponent",
+                            "Id": 14386255473429959438,
+                            "ColliderConfiguration": {
+                                "MaterialSlots": {
+                                    "Slots": [
+                                        {
+                                            "Name": "Plastic - Sensor"
+                                        }
+                                    ]
+                                },
+                                "MaterialSelection": {
+                                    "MaterialIds": [
+                                        {}
+                                    ]
+                                }
+                            },
+                            "ShapeConfiguration": {
+                                "PhysicsAsset": {
+                                    "Asset": {
+                                        "assetId": {
+                                            "guid": "{44254E4F-53F4-5C53-BF81-411AFEB75789}",
+                                            "subId": 2981717856
+                                        },
+                                        "assetHint": "assets/robovac/assets/robot_vacuum_cpucover.pxmesh"
+                                    },
+                                    "Configuration": {
+                                        "PhysicsAsset": {
+                                            "assetId": {
+                                                "guid": "{44254E4F-53F4-5C53-BF81-411AFEB75789}",
+                                                "subId": 2981717856
+                                            },
+                                            "loadBehavior": "QueueLoad",
+                                            "assetHint": "assets/robovac/assets/robot_vacuum_cpucover.pxmesh"
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    ]
+                },
+                "Component_[18180067841158939512]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 18180067841158939512
+                },
+                "Component_[6737035184120536175]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 6737035184120536175,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{44254E4F-53F4-5C53-BF81-411AFEB75789}",
+                                    "subId": 285199714
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_cpucover.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[7017274689486827012]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 7017274689486827012
+                },
+                "Component_[7036945985460570540]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 7036945985460570540
+                },
+                "Component_[8842819203641128695]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 8842819203641128695
+                }
+            }
+        },
+        "Entity_[29892222407163]": {
+            "Id": "Entity_[29892222407163]",
+            "Name": "robot_vacuum_navdisplaycamera",
+            "Components": {
+                "Component_[11433011431204834190]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 11433011431204834190
+                },
+                "Component_[1367065363202865187]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1367065363202865187
+                },
+                "Component_[15249786871612411618]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15249786871612411618
+                },
+                "Component_[15483889718527123585]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 15483889718527123585,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{4191CA27-DC5C-51B5-B12B-FA42849FF266}",
+                                    "subId": 269723792
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_navdisplaycamera.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16243294016245134249]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 16243294016245134249
+                },
+                "Component_[16435443952550190677]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16435443952550190677
+                },
+                "Component_[3306545662102859474]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 3306545662102859474,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3551048943
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[40546633900605231]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 40546633900605231,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[6193008417045434597]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 6193008417045434597
+                },
+                "Component_[8478923596115389847]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 8478923596115389847
+                },
+                "Component_[9887849855476749867]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9887849855476749867
+                }
+            }
+        },
+        "Entity_[29896517374459]": {
+            "Id": "Entity_[29896517374459]",
+            "Name": "robot_vacuum_battery",
+            "Components": {
+                "Component_[10423770966231978871]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 10423770966231978871
+                },
+                "Component_[12035807572453480741]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12035807572453480741
+                },
+                "Component_[12920308688802330448]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12920308688802330448,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[13958036992729066340]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 13958036992729066340
+                },
+                "Component_[15097518247046901590]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 15097518247046901590,
+                    "Parent Entity": "Entity_[6506158658343]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            -5.960464477539063e-8
+                        ]
+                    }
+                },
+                "Component_[15668197313822929305]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15668197313822929305
+                },
+                "Component_[15959986482832278310]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 15959986482832278310
+                },
+                "Component_[2345816431385096198]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 2345816431385096198
+                },
+                "Component_[4028256576739017793]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 4028256576739017793,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{DF2994F3-CDAF-5AA1-89F0-13E822ED5B67}",
+                                    "subId": 277740550
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_battery.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[6219971229759892183]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 6219971229759892183
+                },
+                "Component_[7746097945937138952]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 7746097945937138952
+                }
+            }
+        },
+        "Entity_[29900812341755]": {
+            "Id": "Entity_[29900812341755]",
+            "Name": "robot_vacuum_cpucoverdoor",
+            "Components": {
+                "Component_[1160898461646756509]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 1160898461646756509
+                },
+                "Component_[11693874107024939493]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 11693874107024939493,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[12680365327553012751]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12680365327553012751,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[1297133237731893804]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1297133237731893804
+                },
+                "Component_[1622304547483087437]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 1622304547483087437,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{058D9B06-830E-51BC-B66D-CC0BA948501A}",
+                                    "subId": 277978673
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_cpucoverdoor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16476213380140018196]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16476213380140018196
+                },
+                "Component_[4120695950251520283]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 4120695950251520283
+                },
+                "Component_[4975169445261639817]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 4975169445261639817
+                },
+                "Component_[8533221928053165578]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 8533221928053165578
+                },
+                "Component_[8900053515996941211]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 8900053515996941211
+                },
+                "Component_[8922078388251675692]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8922078388251675692
+                }
+            }
+        },
+        "Entity_[29905107309051]": {
+            "Id": "Entity_[29905107309051]",
+            "Name": "robot_vacuum_depthdensorleft",
+            "Components": {
+                "Component_[11494312482997210625]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11494312482997210625
+                },
+                "Component_[13981390298683343246]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13981390298683343246
+                },
+                "Component_[14718637354657612910]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14718637354657612910
+                },
+                "Component_[15124373171622813264]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 15124373171622813264
+                },
+                "Component_[17861282930077705308]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 17861282930077705308
+                },
+                "Component_[279716219125983537]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 279716219125983537
+                },
+                "Component_[5284750579111323888]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 5284750579111323888,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{4C43FC92-2409-58E9-8DDE-D9BCCC84F4CE}",
+                                    "subId": 284522806
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_depthdensorleft.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[5902437826772068932]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5902437826772068932,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[6155037425782808290]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 6155037425782808290,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3551048943
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[664833020306432049]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 664833020306432049
+                },
+                "Component_[7353472286713300832]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 7353472286713300832
+                }
+            }
+        },
+        "Entity_[29909402276347]": {
+            "Id": "Entity_[29909402276347]",
+            "Name": "robot_vacuum_backbumper",
+            "Components": {
+                "Component_[1014096401474372943]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 1014096401474372943
+                },
+                "Component_[12094592484391732975]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 12094592484391732975
+                },
+                "Component_[12573602655672009410]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12573602655672009410
+                },
+                "Component_[13499748203624767807]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 13499748203624767807
+                },
+                "Component_[16494407832622749468]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16494407832622749468,
+                    "Parent Entity": "Entity_[6506158658343]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            -2.9802322387695313e-8
+                        ]
+                    }
+                },
+                "Component_[17012961892723687314]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 17012961892723687314,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 467460050
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[18138520316301864088]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18138520316301864088
+                },
+                "Component_[2190499505831493840]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 2190499505831493840,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{7C1552C5-7322-5C3D-B1FE-5C71BBD9941F}",
+                                    "subId": 279299367
+                                },
+                                "assetHint": "assets/robovac/assets/default_robot_vacuum_backbumper_67301715_5cb3_52f8_917e_6921a5bf842c_.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[3476046400629899620]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3476046400629899620
+                },
+                "Component_[577491611541296416]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 577491611541296416
+                },
+                "Component_[9829318224754840890]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9829318224754840890
+                }
+            }
+        },
+        "Entity_[29913697243643]": {
+            "Id": "Entity_[29913697243643]",
+            "Name": "robot_vacuum_depthdensorright",
+            "Components": {
+                "Component_[11687252647046139603]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11687252647046139603
+                },
+                "Component_[12178265791218007998]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12178265791218007998
+                },
+                "Component_[13349755174293871721]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 13349755174293871721
+                },
+                "Component_[14236251140759845637]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 14236251140759845637,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{53886C06-FC86-5589-BDB4-65F7F7035E35}",
+                                    "subId": 273455993
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_depthdensorright.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[15060908410058061725]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 15060908410058061725
+                },
+                "Component_[15919697516053595824]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 15919697516053595824
+                },
+                "Component_[4986084949100319144]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 4986084949100319144
+                },
+                "Component_[6302847338612665076]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 6302847338612665076,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3551048943
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[7851939175819994978]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 7851939175819994978
+                },
+                "Component_[8699479437331363671]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 8699479437331363671
+                },
+                "Component_[9378645190676979903]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 9378645190676979903,
+                    "Parent Entity": "Entity_[6506158658343]"
+                }
+            }
+        },
+        "Entity_[29917992210939]": {
+            "Id": "Entity_[29917992210939]",
+            "Name": "robot_vacuum_screenboltright",
+            "Components": {
+                "Component_[12292319564083887590]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12292319564083887590,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[12726580132435775133]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12726580132435775133
+                },
+                "Component_[14102005060516896856]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14102005060516896856
+                },
+                "Component_[14339044020650005895]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14339044020650005895
+                },
+                "Component_[1593828453855235581]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 1593828453855235581
+                },
+                "Component_[17050674051210069790]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 17050674051210069790,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[3733454906690206524]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 3733454906690206524,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{F6B52F5E-A2AF-5AF0-9A75-F7BADC2A75E4}",
+                                    "subId": 278270265
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_screenboltright.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[4804727057274159324]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 4804727057274159324
+                },
+                "Component_[5066516253442437737]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5066516253442437737
+                },
+                "Component_[8506706896382946194]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 8506706896382946194
+                },
+                "Component_[8636090317667778661]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 8636090317667778661
+                }
+            }
+        },
+        "Entity_[29922287178235]": {
+            "Id": "Entity_[29922287178235]",
+            "Name": "robot_vacuum_navlogicboard",
+            "Components": {
+                "Component_[10051983211610109492]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 10051983211610109492
+                },
+                "Component_[11412451456793240277]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 11412451456793240277
+                },
+                "Component_[1284872308139332819]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 1284872308139332819
+                },
+                "Component_[13844027668023298287]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 13844027668023298287
+                },
+                "Component_[14223864992109437780]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 14223864992109437780,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1247756951
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{B410214E-804E-5CD7-A152-17B36FBEA0E6}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_chip.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 2088635577
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{B732DCB8-247F-5040-8956-17BE3CE61ECB}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_gold_-_polished.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[2422242582223629779]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 2422242582223629779
+                },
+                "Component_[7284251414179909196]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 7284251414179909196
+                },
+                "Component_[7393546430428996290]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 7393546430428996290
+                },
+                "Component_[8442266590165968802]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 8442266590165968802,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[8700461298150480671]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 8700461298150480671,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{D3805517-8DC0-567A-B40C-340FC11DDF4E}",
+                                    "subId": 268596572
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_navlogicboard.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[89094339636559295]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 89094339636559295
+                }
+            }
+        },
+        "Entity_[29926582145531]": {
+            "Id": "Entity_[29926582145531]",
+            "Name": "robot_vacuum_screenglass",
+            "Components": {
+                "Component_[12002731711356285631]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12002731711356285631,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 46062180
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[12330259195616372942]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 12330259195616372942
+                },
+                "Component_[12341404943232303919]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12341404943232303919
+                },
+                "Component_[12993371939032694725]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 12993371939032694725,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{D74CBC2A-3B76-580E-BC60-1DD127B8D1B2}",
+                                    "subId": 282926451
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_screenglass.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16128151194242008487]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16128151194242008487
+                },
+                "Component_[17206641155412004585]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 17206641155412004585
+                },
+                "Component_[2796450025346289110]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 2796450025346289110
+                },
+                "Component_[4096916641474984795]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 4096916641474984795
+                },
+                "Component_[6132862612852279101]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 6132862612852279101
+                },
+                "Component_[7309820908155270804]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 7309820908155270804
+                },
+                "Component_[8572598678422046028]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 8572598678422046028,
+                    "Parent Entity": "Entity_[6506158658343]"
+                }
+            }
+        },
+        "Entity_[29930877112827]": {
+            "Id": "Entity_[29930877112827]",
+            "Name": "robot_vacuum_pariscopeglass",
+            "Components": {
+                "Component_[10442046716566583284]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10442046716566583284,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{C61E6543-D095-5E81-B289-3F63B1305D3B}",
+                                    "subId": 272346069
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscopeglass.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[1142168535653003146]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1142168535653003146
+                },
+                "Component_[14307060787665841517]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14307060787665841517
+                },
+                "Component_[1459036190848484461]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 1459036190848484461
+                },
+                "Component_[16761550464080407825]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16761550464080407825
+                },
+                "Component_[16890571128475542206]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16890571128475542206,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[5647316105829875101]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5647316105829875101
+                },
+                "Component_[585745993048077569]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 585745993048077569
+                },
+                "Component_[6235887042103616804]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 6235887042103616804
+                },
+                "Component_[8053322179614039518]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 8053322179614039518,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 46062180
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[8660062993588394122]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8660062993588394122
+                }
+            }
+        },
+        "Entity_[29935172080123]": {
+            "Id": "Entity_[29935172080123]",
+            "Name": "robot_vacuum_o_rightsensor",
+            "Components": {
+                "Component_[11218109192251318216]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 11218109192251318216
+                },
+                "Component_[12142412471193877135]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 12142412471193877135
+                },
+                "Component_[14094796423703552457]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 14094796423703552457,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 467460050
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3551048943
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[15829508757323248550]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 15829508757323248550,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{C8D87B76-1AC1-5E08-84FE-939B73E6857E}",
+                                    "subId": 282962690
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_o_rightsensor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16955695451460729126]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16955695451460729126
+                },
+                "Component_[3967112649105054567]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3967112649105054567,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[4558962009475079380]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 4558962009475079380
+                },
+                "Component_[6430225031028498980]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 6430225031028498980
+                },
+                "Component_[8633773277579890589]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 8633773277579890589
+                },
+                "Component_[9127186941005400797]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9127186941005400797
+                },
+                "Component_[9634498388101526903]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 9634498388101526903
+                }
+            }
+        },
+        "Entity_[29939467047419]": {
+            "Id": "Entity_[29939467047419]",
+            "Name": "robot_vacuum_suspensionpinright",
+            "Components": {
+                "Component_[13661706989266729235]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 13661706989266729235,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[1376852104874912431]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1376852104874912431
+                },
+                "Component_[14870085098253688937]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14870085098253688937
+                },
+                "Component_[16241779256380439800]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 16241779256380439800
+                },
+                "Component_[17160263932622188569]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 17160263932622188569
+                },
+                "Component_[25153992274563351]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 25153992274563351
+                },
+                "Component_[3326445525557959534]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3326445525557959534,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[3619274201172812811]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 3619274201172812811,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{2707E8B4-F734-5A5A-8608-BE8E67739A55}",
+                                    "subId": 279595858
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_suspensionpinright.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[5335631611909721679]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5335631611909721679
+                },
+                "Component_[6062135761031311688]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 6062135761031311688
+                },
+                "Component_[9010939866745871567]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 9010939866745871567
+                }
+            }
+        },
+        "Entity_[29943762014715]": {
+            "Id": "Entity_[29943762014715]",
+            "Name": "robot_vacuum_towertop",
+            "Components": {
+                "Component_[10901145661741858064]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 10901145661741858064,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[16438259712171818029]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16438259712171818029
+                },
+                "Component_[17073211457377932781]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17073211457377932781
+                },
+                "Component_[17639246189034827164]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 17639246189034827164
+                },
+                "Component_[18302758798047544602]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 18302758798047544602
+                },
+                "Component_[2885749364514971795]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 2885749364514971795,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{9679E0B7-D5F3-53B1-AE62-90E1E4435A30}",
+                                    "subId": 277454678
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_towertop.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[4466859611759804964]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 4466859611759804964,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[5731077585958708357]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 5731077585958708357
+                },
+                "Component_[5807683078544418992]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5807683078544418992
+                },
+                "Component_[845632872150187464]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 845632872150187464
+                },
+                "Component_[9591280779050569951]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9591280779050569951
+                }
+            }
+        },
+        "Entity_[29948056982011]": {
+            "Id": "Entity_[29948056982011]",
+            "Name": "robot_vacuum_backbumpersensor",
+            "Components": {
+                "Component_[10607103240231917169]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10607103240231917169
+                },
+                "Component_[10774933117776932712]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 10774933117776932712,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1979588969
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{996BEAD2-C595-5851-BC40-A2A0F94A39A3}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_rubber_-_weathered.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[10958693856247034196]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10958693856247034196,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{200D5507-75F1-5A03-AE9F-C7E1067DD835}",
+                                    "subId": 268733097
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_backbumpersensor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16888724097605859568]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 16888724097605859568
+                },
+                "Component_[17399400900561916105]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17399400900561916105
+                },
+                "Component_[17425599155819026738]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 17425599155819026738
+                },
+                "Component_[3992404803994896552]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3992404803994896552,
+                    "Parent Entity": "Entity_[6506158658343]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            2.9802322387695313e-8
+                        ]
+                    }
+                },
+                "Component_[464428997971359781]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 464428997971359781
+                },
+                "Component_[6714861625275427256]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 6714861625275427256
+                },
+                "Component_[8594697907173469593]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 8594697907173469593
+                },
+                "Component_[9568700914252394640]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9568700914252394640
+                }
+            }
+        },
+        "Entity_[29952351949307]": {
+            "Id": "Entity_[29952351949307]",
+            "Name": "robot_vacuum_brushb",
+            "Components": {
+                "Component_[12899601372624759729]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12899601372624759729
+                },
+                "Component_[14359914609974335934]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 14359914609974335934,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3569418037
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{A1E7367C-4A8E-5C11-A768-0661925C18AC}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_rubber_-_bumpy.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[14462753786176814970]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14462753786176814970
+                },
+                "Component_[14941610346605136382]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 14941610346605136382,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{526E0345-A3AB-5384-B659-43C54D108444}",
+                                    "subId": 270271159
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_brushb.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16761083537322087315]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16761083537322087315
+                },
+                "Component_[18011478391887594297]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 18011478391887594297
+                },
+                "Component_[202200107630449173]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 202200107630449173,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[5852860452079171804]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 5852860452079171804
+                },
+                "Component_[7098133004677005239]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 7098133004677005239
+                },
+                "Component_[7328595170748800939]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 7328595170748800939
+                },
+                "Component_[7751471148092836156]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 7751471148092836156
+                }
+            }
+        },
+        "Entity_[29956646916603]": {
+            "Id": "Entity_[29956646916603]",
+            "Name": "robot_vacuum_wheel_left",
+            "Components": {
+                "Component_[11244768160826187048]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 11244768160826187048
+                },
+                "Component_[11547087866408447036]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 11547087866408447036,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[12726666706066360153]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12726666706066360153
+                },
+                "Component_[13922205784861414527]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 13922205784861414527
+                },
+                "Component_[14062545106494077405]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 14062545106494077405
+                },
+                "Component_[1623897863065915511]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1623897863065915511
+                },
+                "Component_[16860373427348564323]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16860373427348564323
+                },
+                "Component_[1900296011798294093]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 1900296011798294093,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1979588969
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{996BEAD2-C595-5851-BC40-A2A0F94A39A3}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_rubber_-_weathered.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[2603373599504855572]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 2603373599504855572,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{4C0493EF-CE6C-523F-83C7-91D11E710079}",
+                                    "subId": 270189410
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_wheel_left.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[5234091435548567145]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 5234091435548567145
+                },
+                "Component_[7938151298383120238]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 7938151298383120238
+                }
+            }
+        },
+        "Entity_[29960941883899]": {
+            "Id": "Entity_[29960941883899]",
+            "Name": "robot_vacuum_suspensionbracketleft",
+            "Components": {
+                "Component_[10843760723871178303]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 10843760723871178303
+                },
+                "Component_[12946777638102353407]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 12946777638102353407
+                },
+                "Component_[15111140379365606835]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 15111140379365606835,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[15605340846412630545]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15605340846412630545
+                },
+                "Component_[2551459834313168220]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 2551459834313168220,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[2666628857887568501]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 2666628857887568501
+                },
+                "Component_[3340172902193628375]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 3340172902193628375
+                },
+                "Component_[3606538888856163283]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 3606538888856163283,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{BA8E1DF2-159C-5C10-BC64-0EC2256578B5}",
+                                    "subId": 280150939
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_suspensionbracketleft.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[6989258203518356489]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 6989258203518356489
+                },
+                "Component_[9281657231695438786]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9281657231695438786
+                },
+                "Component_[9880047728119638596]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 9880047728119638596
+                }
+            }
+        },
+        "Entity_[29965236851195]": {
+            "Id": "Entity_[29965236851195]",
+            "Name": "robot_vacuum_o_sensor_board",
+            "Components": {
+                "Component_[1156667096148260854]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 1156667096148260854,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[14076738285367838024]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 14076738285367838024
+                },
+                "Component_[14164259235291776849]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 14164259235291776849
+                },
+                "Component_[14655558145422723260]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14655558145422723260
+                },
+                "Component_[15666286428402309977]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 15666286428402309977,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 467460050
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1247756951
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{B410214E-804E-5CD7-A152-17B36FBEA0E6}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_chip.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[1678449190952949220]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1678449190952949220
+                },
+                "Component_[17491009838706205916]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17491009838706205916
+                },
+                "Component_[18421908823466002119]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 18421908823466002119
+                },
+                "Component_[299216117097721405]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 299216117097721405,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{AD4B016C-E6FB-553B-A2C8-AF607D64F268}",
+                                    "subId": 273610155
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_o_sensor_board.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[3153684224292724288]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3153684224292724288
+                },
+                "Component_[8974640813787282107]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 8974640813787282107
+                }
+            }
+        },
+        "Entity_[29969531818491]": {
+            "Id": "Entity_[29969531818491]",
+            "Name": "robot_vacuum_pariscopetube2",
+            "Components": {
+                "Component_[10304117471988230418]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 10304117471988230418
+                },
+                "Component_[11439563233684343748]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 11439563233684343748,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[1614729706419118426]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1614729706419118426
+                },
+                "Component_[17440446447410127143]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 17440446447410127143,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{C4782BA6-ED02-5D3C-8197-460309515802}",
+                                    "subId": 275719194
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscopetube2.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17764376460995465825]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 17764376460995465825
+                },
+                "Component_[18410157112535562065]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 18410157112535562065
+                },
+                "Component_[3523791602667311912]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 3523791602667311912
+                },
+                "Component_[5141697230707294358]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 5141697230707294358
+                },
+                "Component_[5235798553595209213]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 5235798553595209213,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[5518781946181943462]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5518781946181943462
+                },
+                "Component_[951254728151626344]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 951254728151626344
+                }
+            }
+        },
+        "Entity_[29973826785787]": {
+            "Id": "Entity_[29973826785787]",
+            "Name": "robot_vacuum_navsensor_right",
+            "Components": {
+                "Component_[12018261331184779302]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 12018261331184779302,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[16545126784841313456]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 16545126784841313456,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{C352F5A2-0626-5B90-A283-5E8251D6B693}",
+                                    "subId": 272195081
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_navsensor_right.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16663873681846995418]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16663873681846995418
+                },
+                "Component_[17078704738758693698]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 17078704738758693698
+                },
+                "Component_[17625718939444989840]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 17625718939444989840,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[3909921484646562599]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3909921484646562599
+                },
+                "Component_[6873145759493866747]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 6873145759493866747
+                },
+                "Component_[719399110469979006]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 719399110469979006
+                },
+                "Component_[7553567324437214623]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7553567324437214623
+                },
+                "Component_[800566869202382851]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 800566869202382851
+                },
+                "Component_[8051037575167622138]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 8051037575167622138
+                }
+            }
+        },
+        "Entity_[29978121753083]": {
+            "Id": "Entity_[29978121753083]",
+            "Name": "robot_vacuum_o_leftsensor",
+            "Components": {
+                "Component_[11066946282277036911]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11066946282277036911
+                },
+                "Component_[11601242142187750433]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 11601242142187750433
+                },
+                "Component_[12547982344495647208]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 12547982344495647208
+                },
+                "Component_[15074524417671635060]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 15074524417671635060,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[16418433750839317280]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 16418433750839317280
+                },
+                "Component_[16709684141193916503]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 16709684141193916503,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 467460050
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 3551048943
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{18DE1187-52B8-5414-BA97-1247B28DCE4F}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_acrylic_clear_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[17576515446066858482]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 17576515446066858482
+                },
+                "Component_[3883591470894058362]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 3883591470894058362,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{F18D5EFA-5B8D-53EC-AA6F-ADDDD0891EC2}",
+                                    "subId": 272654703
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_o_leftsensor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[6904489747366718141]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 6904489747366718141
+                },
+                "Component_[7818376573401693370]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 7818376573401693370
+                },
+                "Component_[8837684612698729081]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8837684612698729081
+                }
+            }
+        },
+        "Entity_[29982416720379]": {
+            "Id": "Entity_[29982416720379]",
+            "Name": "robot_vacuum_gearboxleft",
+            "Components": {
+                "Component_[11984952559158485498]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 11984952559158485498
+                },
+                "Component_[13883695774641414570]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 13883695774641414570
+                },
+                "Component_[14302659583683576937]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 14302659583683576937
+                },
+                "Component_[15205423224621303423]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 15205423224621303423,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{0AF7BE25-7818-5DEB-A848-FBF2575C04CA}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_plastic_-_sensor.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[15957032383373808758]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15957032383373808758
+                },
+                "Component_[18005221952569609025]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 18005221952569609025,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[2001254569755661517]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 2001254569755661517
+                },
+                "Component_[4293762197237276665]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 4293762197237276665,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{1AC71EDF-C901-5B2A-B7CB-8FC6A83C423D}",
+                                    "subId": 273459944
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_gearboxleft.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[4591041123605381219]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 4591041123605381219
+                },
+                "Component_[4852401704918741352]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 4852401704918741352
+                },
+                "Component_[9766530642002435173]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 9766530642002435173
+                }
+            }
+        },
+        "Entity_[29986711687675]": {
+            "Id": "Entity_[29986711687675]",
+            "Name": "robot_vacuum_suspensionpinleft",
+            "Components": {
+                "Component_[11644099126241511922]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 11644099126241511922
+                },
+                "Component_[12299844390103792750]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12299844390103792750
+                },
+                "Component_[12461709617141381815]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 12461709617141381815,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{2F2FAB67-CA72-54E7-838D-766CB087679A}",
+                                    "subId": 283612820
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_suspensionpinleft.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[12896358021212703794]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12896358021212703794
+                },
+                "Component_[14462526257775052370]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14462526257775052370
+                },
+                "Component_[14632875078243209710]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 14632875078243209710
+                },
+                "Component_[16665646200351104073]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 16665646200351104073,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[16684564562606483997]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16684564562606483997
+                },
+                "Component_[4613754866214292476]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 4613754866214292476,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[4713074442491719492]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 4713074442491719492
+                },
+                "Component_[4882396129806514916]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 4882396129806514916
+                }
+            }
+        },
+        "Entity_[29991006654971]": {
+            "Id": "Entity_[29991006654971]",
+            "Name": "robot_vacuum_navsensor_left",
+            "Components": {
+                "Component_[1380808013849181618]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 1380808013849181618
+                },
+                "Component_[16263631943659708417]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16263631943659708417
+                },
+                "Component_[16570651763080717548]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16570651763080717548,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[16696465630512642554]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 16696465630512642554,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{1FD55167-737B-5E3F-8AFD-9F833B6CECCB}",
+                                    "subId": 275423677
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_navsensor_left.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17993939794131594135]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17993939794131594135
+                },
+                "Component_[4261845577561539323]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 4261845577561539323,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{52A3E0FB-AF6E-527E-AAF3-21FFA27B1919}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_absgrey.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[5809364070817595727]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5809364070817595727
+                },
+                "Component_[603401864020856526]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 603401864020856526
+                },
+                "Component_[6555720991509805955]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 6555720991509805955
+                },
+                "Component_[6835581242267498103]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 6835581242267498103
+                },
+                "Component_[7537063425890049355]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 7537063425890049355
+                }
+            }
+        },
+        "Entity_[29995301622267]": {
+            "Id": "Entity_[29995301622267]",
+            "Name": "robot_vacuum_vacvasedoor",
+            "Components": {
+                "Component_[11880722833110957786]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 11880722833110957786
+                },
+                "Component_[11987811603410743577]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 11987811603410743577
+                },
+                "Component_[12998870142110447449]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 12998870142110447449,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1687924491
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{E1884D12-B60F-5CF7-8BD0-D8EAFF0FE181}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_polymide_kapton_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[15026157217562700326]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15026157217562700326
+                },
+                "Component_[1606793269942993686]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1606793269942993686
+                },
+                "Component_[3598123321435834848]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3598123321435834848
+                },
+                "Component_[7162383783240629247]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 7162383783240629247,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[7755340245799285993]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 7755340245799285993,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{9EC51CAC-6D19-5CE6-822D-114E6A0A9686}",
+                                    "subId": 275582958
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_vacvasedoor.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[8646172083658144112]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8646172083658144112
+                },
+                "Component_[9033172683501361641]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 9033172683501361641
+                },
+                "Component_[9310383425768524804]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 9310383425768524804
+                }
+            }
+        },
+        "Entity_[29999596589563]": {
+            "Id": "Entity_[29999596589563]",
+            "Name": "robot_vacuum_bottomwheelone",
+            "Components": {
+                "Component_[17098427013790263647]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17098427013790263647
+                },
+                "Component_[2435213322421110972]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 2435213322421110972
+                },
+                "Component_[2489777411115429950]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 2489777411115429950,
+                    "Parent Entity": "Entity_[6506158658343]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            2.9802322387695313e-8
+                        ]
+                    }
+                },
+                "Component_[3698799949376954268]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3698799949376954268
+                },
+                "Component_[4808059948074318028]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 4808059948074318028
+                },
+                "Component_[498704701938875074]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 498704701938875074
+                },
+                "Component_[5514337834801407013]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 5514337834801407013
+                },
+                "Component_[6116338082524157478]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 6116338082524157478,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{ED25280D-25D6-5B96-98FF-5609D1F5B19D}",
+                                    "subId": 277321324
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_bottomwheelone.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[6866919899933988363]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 6866919899933988363
+                },
+                "Component_[7603001383940913731]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 7603001383940913731
+                },
+                "Component_[7975178403225927265]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 7975178403225927265,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[30003891556859]": {
+            "Id": "Entity_[30003891556859]",
+            "Name": "robot_vacuum_rails",
+            "Components": {
+                "Component_[13583003163065014935]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 13583003163065014935
+                },
+                "Component_[15067095634436349471]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15067095634436349471
+                },
+                "Component_[16011275311072274726]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16011275311072274726,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[16838630867639204964]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 16838630867639204964,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[169500293911945972]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 169500293911945972
+                },
+                "Component_[1999492667193267803]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 1999492667193267803,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{B7B22E2E-8891-5074-A6D1-59F52E4ED9D5}",
+                                    "subId": 279195488
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_rails.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[2716721790910499113]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 2716721790910499113
+                },
+                "Component_[3906801444970843942]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3906801444970843942
+                },
+                "Component_[5277479938788874759]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 5277479938788874759
+                },
+                "Component_[9142641814314589986]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9142641814314589986
+                },
+                "Component_[9604075921779488569]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 9604075921779488569
+                }
+            }
+        },
+        "Entity_[30008186524155]": {
+            "Id": "Entity_[30008186524155]",
+            "Name": "robot_vacuum_capture",
+            "Components": {
+                "Component_[10407116969981419608]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 10407116969981419608
+                },
+                "Component_[13095834662090245426]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 13095834662090245426
+                },
+                "Component_[13531111235357671619]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 13531111235357671619
+                },
+                "Component_[17267597419950408018]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 17267597419950408018,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{ECF1C183-6C68-5CCD-AD24-4924C65CB0C7}",
+                                    "subId": 274574925
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_capture.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17717685925639233758]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 17717685925639233758,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[17812014709847617194]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 17812014709847617194
+                },
+                "Component_[17911155472116189313]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17911155472116189313
+                },
+                "Component_[2654742047251156582]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 2654742047251156582,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[6352395979757277379]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 6352395979757277379
+                },
+                "Component_[7390230706451251440]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 7390230706451251440
+                },
+                "Component_[9400612936246896464]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 9400612936246896464
+                }
+            }
+        },
+        "Entity_[30012481491451]": {
+            "Id": "Entity_[30012481491451]",
+            "Name": "robot_vacuum_pariscopetube3",
+            "Components": {
+                "Component_[12880168912967059759]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 12880168912967059759
+                },
+                "Component_[15778580180650212910]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15778580180650212910
+                },
+                "Component_[16768404115373048488]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16768404115373048488
+                },
+                "Component_[3625889452996272264]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 3625889452996272264
+                },
+                "Component_[4887345707029686]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 4887345707029686,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{64119CB4-A7C6-5969-B6C0-1EE5E6FC2252}",
+                                    "subId": 275256460
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_pariscopetube3.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[6155009947093850461]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 6155009947093850461
+                },
+                "Component_[6325646382614719107]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 6325646382614719107
+                },
+                "Component_[654981359032710042]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 654981359032710042,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[7326914943494189567]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 7326914943494189567,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[7703415841191096284]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 7703415841191096284
+                },
+                "Component_[8457773976516588943]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 8457773976516588943
+                }
+            }
+        },
+        "Entity_[30016776458747]": {
+            "Id": "Entity_[30016776458747]",
+            "Name": "robot_vacuum_base_link",
+            "Components": {
+                "Component_[1817880946152815022]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 1817880946152815022,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "ABS (White)"
+                                }
+                            ]
+                        },
+                        "MaterialSelection": {
+                            "MaterialIds": [
+                                {}
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{5AE935FF-A90A-59AF-BFD4-F38CEB3F8CDF}",
+                                    "subId": 3876031564
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_base_link.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{5AE935FF-A90A-59AF-BFD4-F38CEB3F8CDF}",
+                                        "subId": 3876031564
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/robovac/assets/robot_vacuum_base_link.pxmesh"
+                                }
+                            }
+                        }
+                    }
+                },
+                "Component_[344085018016650483]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 344085018016650483
+                },
+                "Component_[3599416590072694646]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 3599416590072694646,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{5AE935FF-A90A-59AF-BFD4-F38CEB3F8CDF}",
+                                    "subId": 281735281
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_base_link.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[3767947283461603081]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 3767947283461603081
+                },
+                "Component_[3845306205339995033]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 3845306205339995033
+                },
+                "Component_[4855684525398601046]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 4855684525398601046,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[4975798632544902102]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 4975798632544902102
+                },
+                "Component_[7103247526655008858]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 7103247526655008858,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[7608249923350219080]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 7608249923350219080
+                },
+                "Component_[7986653469645499570]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 7986653469645499570
+                },
+                "Component_[8879182223984542773]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 8879182223984542773
+                },
+                "Component_[9083243899270705702]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 9083243899270705702
+                }
+            }
+        },
+        "Entity_[30021071426043]": {
+            "Id": "Entity_[30021071426043]",
+            "Name": "robot_vacuum_towerstablebase",
+            "Components": {
+                "Component_[12475386664588628871]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 12475386664588628871
+                },
+                "Component_[1402737904758723794]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 1402737904758723794
+                },
+                "Component_[14426832034326352041]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 14426832034326352041,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[15570075083272083678]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 15570075083272083678,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{F07142B9-F47B-5A34-BDCA-1A951A2B722B}",
+                                    "subId": 284192294
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_towerstablebase.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[3633854916444915713]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 3633854916444915713
+                },
+                "Component_[3824736560703254374]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 3824736560703254374
+                },
+                "Component_[4470687351955558889]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 4470687351955558889,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[5476737228447272011]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 5476737228447272011
+                },
+                "Component_[6963453425367601209]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 6963453425367601209
+                },
+                "Component_[845623584106570611]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 845623584106570611
+                },
+                "Component_[9791205326329950834]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 9791205326329950834
+                }
+            }
+        },
+        "Entity_[30025366393339]": {
+            "Id": "Entity_[30025366393339]",
+            "Name": "robot_vacuum_bottomwheeltwo",
+            "Components": {
+                "Component_[11486843524168740793]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 11486843524168740793
+                },
+                "Component_[11517677698538696102]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 11517677698538696102,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[11892970256911596569]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 11892970256911596569
+                },
+                "Component_[13415828729565192744]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 13415828729565192744,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{30F3B098-95A6-511D-86FC-1F9E8B626477}",
+                                    "subId": 270637819
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_bottomwheeltwo.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17461939584671632810]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17461939584671632810
+                },
+                "Component_[18276348651685546120]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18276348651685546120
+                },
+                "Component_[5030734836737076151]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 5030734836737076151
+                },
+                "Component_[5439690085647965510]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5439690085647965510
+                },
+                "Component_[7155087601813549035]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 7155087601813549035
+                },
+                "Component_[9818824692836354306]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 9818824692836354306
+                },
+                "Component_[9902098114589520976]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 9902098114589520976,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[30029661360635]": {
+            "Id": "Entity_[30029661360635]",
+            "Name": "robot_vacuum_mainlogicboard",
+            "Components": {
+                "Component_[10241546628040874120]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10241546628040874120,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{8F190CD8-69E6-5910-9246-B2C3E22FC6B3}",
+                                    "subId": 271853391
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_mainlogicboard.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[1137980311062119702]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 1137980311062119702
+                },
+                "Component_[13699028550573905962]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 13699028550573905962
+                },
+                "Component_[15250978781301659058]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 15250978781301659058
+                },
+                "Component_[16615264906452507175]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16615264906452507175
+                },
+                "Component_[3525954281636674520]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 3525954281636674520
+                },
+                "Component_[4300523563177321077]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 4300523563177321077
+                },
+                "Component_[5331318633270037190]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 5331318633270037190,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1247756951
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{B410214E-804E-5CD7-A152-17B36FBEA0E6}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_chip.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 2685768749
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{72A191F2-05C0-50A8-9590-896336FEC9AC}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_fr4.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[5435042190051421878]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 5435042190051421878
+                },
+                "Component_[5435929030723335900]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 5435929030723335900
+                },
+                "Component_[5980272100921284882]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5980272100921284882,
+                    "Parent Entity": "Entity_[6506158658343]"
+                }
+            }
+        },
+        "Entity_[30033956327931]": {
+            "Id": "Entity_[30033956327931]",
+            "Name": "robot_vacuum_brushc",
+            "Components": {
+                "Component_[10056716655303761556]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 10056716655303761556,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1979588969
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{996BEAD2-C595-5851-BC40-A2A0F94A39A3}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_rubber_-_weathered.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[11205876090528442303]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 11205876090528442303,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[11387276796358957676]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 11387276796358957676
+                },
+                "Component_[114464133465390289]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 114464133465390289
+                },
+                "Component_[1788839891950967143]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 1788839891950967143,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{8A17DB80-F64A-5B35-90BC-DF7A390F2001}",
+                                    "subId": 270217761
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_brushc.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[4150366641201823465]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 4150366641201823465
+                },
+                "Component_[4412915056593362733]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 4412915056593362733
+                },
+                "Component_[6285506504893937226]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 6285506504893937226
+                },
+                "Component_[6581271400812256723]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 6581271400812256723
+                },
+                "Component_[726750158276824077]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 726750158276824077
+                },
+                "Component_[7281494098851044446]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7281494098851044446
+                }
+            }
+        },
+        "Entity_[30038251295227]": {
+            "Id": "Entity_[30038251295227]",
+            "Name": "robot_vacuum_gearboxright",
+            "Components": {
+                "Component_[1133023484187037027]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1133023484187037027
+                },
+                "Component_[1239364706239211319]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 1239364706239211319
+                },
+                "Component_[13720404771539331043]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 13720404771539331043
+                },
+                "Component_[14174827805731672074]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14174827805731672074
+                },
+                "Component_[14965498366807840581]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14965498366807840581
+                },
+                "Component_[16194815260036076114]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16194815260036076114
+                },
+                "Component_[2519269325213884748]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 2519269325213884748,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[3780554651226155816]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 3780554651226155816
+                },
+                "Component_[5122398714384839784]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 5122398714384839784,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[9002846224351078899]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 9002846224351078899,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{D9ECA641-E87C-5379-8EF6-164558ED841B}",
+                                    "subId": 278453625
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_gearboxright.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[9390233368193709296]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9390233368193709296
+                }
+            }
+        },
+        "Entity_[30042546262523]": {
+            "Id": "Entity_[30042546262523]",
+            "Name": "robot_vacuum_rightdrivegear",
+            "Components": {
+                "Component_[10170119661745965980]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 10170119661745965980
+                },
+                "Component_[10944562783028267678]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 10944562783028267678
+                },
+                "Component_[1251625587252810393]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 1251625587252810393
+                },
+                "Component_[13523723562617065969]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 13523723562617065969,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{B378D436-3D8F-593D-9D4A-B910E43FACBB}",
+                                    "subId": 274677411
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_rightdrivegear.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[13782790080474671215]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13782790080474671215
+                },
+                "Component_[14450145972002754509]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 14450145972002754509
+                },
+                "Component_[15674135959119870335]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15674135959119870335
+                },
+                "Component_[3435973274348604176]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 3435973274348604176
+                },
+                "Component_[3587373179464577687]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 3587373179464577687,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 642792236
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F577C6B7-C42B-5CE8-87C2-8248A315A468}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_steel_-_satin.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[6124322051370137604]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 6124322051370137604,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[8035867096751189057]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 8035867096751189057
+                }
+            }
+        },
+        "Entity_[30046841229819]": {
+            "Id": "Entity_[30046841229819]",
+            "Name": "robot_vacuum_wheel_right",
+            "Components": {
+                "Component_[10318422179640899640]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 10318422179640899640
+                },
+                "Component_[11753601225620024279]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 11753601225620024279
+                },
+                "Component_[12855737534834744424]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12855737534834744424
+                },
+                "Component_[13254538320255520595]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 13254538320255520595,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 840771816
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{241AAEC3-59DF-5792-B463-93287A162A83}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_abs_white_.azmaterial"
+                                        }
+                                    }
+                                },
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1979588969
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{996BEAD2-C595-5851-BC40-A2A0F94A39A3}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_rubber_-_weathered.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[13327589018019843257]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 13327589018019843257
+                },
+                "Component_[13800265395195759351]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13800265395195759351
+                },
+                "Component_[14844364127576081774]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 14844364127576081774
+                },
+                "Component_[14949361985832914947]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 14949361985832914947,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[18038086914908374883]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18038086914908374883
+                },
+                "Component_[2944624180499581291]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 2944624180499581291,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{552355B7-B59D-589D-A162-46D2141B1462}",
+                                    "subId": 284877102
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_wheel_right.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[4306775618786459448]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 4306775618786459448
+                }
+            }
+        },
+        "Entity_[30051136197115]": {
+            "Id": "Entity_[30051136197115]",
+            "Name": "robot_vacuum_vaccase",
+            "Components": {
+                "Component_[10171691559656925088]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10171691559656925088,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{3A435A14-ECF6-5787-86B1-B8B438A11F15}",
+                                    "subId": 268543421
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_vaccase.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[1071801426654793983]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1071801426654793983
+                },
+                "Component_[11944597572094354218]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11944597572094354218
+                },
+                "Component_[14203484318855151935]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14203484318855151935
+                },
+                "Component_[1436035291182106083]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 1436035291182106083,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 1687924491
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{E1884D12-B60F-5CF7-8BD0-D8EAFF0FE181}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_polymide_kapton_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[16829937000198065444]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16829937000198065444,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[17219561062194009311]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17219561062194009311
+                },
+                "Component_[2013876049405035287]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 2013876049405035287
+                },
+                "Component_[5466038758009434737]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5466038758009434737
+                },
+                "Component_[5651843339576349886]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5651843339576349886
+                },
+                "Component_[5667314715290078262]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5667314715290078262
+                }
+            }
+        },
+        "Entity_[30055431164411]": {
+            "Id": "Entity_[30055431164411]",
+            "Name": "RobotVacuum",
+            "Components": {
+                "Component_[12335778149585122117]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12335778149585122117
+                },
+                "Component_[13195787262642532680]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 13195787262642532680,
+                    "Configuration": {
+                        "entityId": "",
+                        "Linear damping": 0.009999999776482582,
+                        "Angular damping": 0.10000000149011612,
+                        "Compute Mass": false,
+                        "Mass": 3.0,
+                        "Centre of mass offset": [
+                            2.091176787288873e-9,
+                            3.9075187530102085e-9,
+                            -7.555317482754731e-11
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            2.0,
+                            0.0,
+                            0.0,
+                            0.0,
+                            2.0,
+                            0.0,
+                            0.0,
+                            0.0,
+                            2.0
+                        ]
+                    }
+                },
+                "Component_[15286078445589088466]": {
+                    "$type": "EditorShapeColliderComponent",
+                    "Id": 15286078445589088466,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "Entire object"
+                                }
+                            ]
+                        },
+                        "MaterialSelection": {
+                            "MaterialIds": [
+                                {
+                                    "MaterialId": "{4080A6D4-AF4E-41CE-B7C9-7699C07123E7}"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfigs": [
+                        {
+                            "$type": "CookedMeshShapeConfiguration",
+                            "CookedData": "TlhTAUNWWE0NAAAAAAAAAElDRQFDTEhMCQAAACAAAAAwAAAAEgAAAGAAAAAcSiq+iRKNPQrXo7scSiq+iRKNPQrXozt9VQK+e1UCPgrXozt9VQK+e1UCPgrXo7vsUTi+DSyHsgrXo7vsUTi+DSyHsgrXozuKEo09HEoqPgrXozt8VQI+fFUCPgrXozt8VQI+fFUCPgrXo7uKEo09HEoqPgrXo7sNLAey7FE4PgrXo7sNLAey7FE4PgrXozsbSiq+jRKNvQrXo7t7VQK+fVUCvgrXo7t7VQK+fVUCvgrXozsbSiq+jRKNvQrXozuHEo29HEoqvgrXo7uHEo29HEoqvgrXozsUwsoy7FE4vgrXo7sUwsoy7FE4vgrXozsbSio+ixKNPQrXozsbSio+ixKNPQrXo7uMEo29G0oqPgrXozuOEo09G0oqvgrXozt+VQI+e1UCvgrXozsdSio+hxKNvQrXozvsUTg+AAAAAArXozvsUTg+AAAAAArXo7uMEo29G0oqPgrXo7sdSio+hxKNvQrXo7t+VQI+e1UCvgrXo7uOEo09G0oqvgrXo7sAAAAAAAAAAAAAgD8K16O7AAAQADHbVL/aOQ4/AAAAAELHNL4QAAQYvhR7v7rFRz4AAAAAQsc0vhQABBncOQ4/MNtUPwAAAABCxzS+GAAEDbrFRz6+FHs/AAAAAELHNL4cAAQQLttUv9w5Dr8AAAAAQcc0viAABAe+FHu/yMVHvgAAAABDxzS+JAAEFNg5Dr8z21S/AAAAAEHHNL4oAAQGu8VHvr4Ue78AAAAAQsc0viwABAYx21Q/2jkOPwAAAABCxzS+MAAEDL4Uez/IxUc+AAAAAELHNL40AAQE3DkOvzDbVD8AAAAAQsc0vjgABBfIxUe+vhR7PwAAAABDxzS+PAAEEjPbVD/YOQ6/AAAAAEPHNL5AAAQAwBR7P7PFR74AAAAAQ8c0vkQABAQAAAAAAAAAAAAAgL8K16O7SAAQAdw5Dj8w21S/AAAAAELHNL5YAAQCyMVHPr4Ue78AAAAAQ8c0vlwABAoUBwYLFgIBBQ8OERMXGBkaAAECAwAEBQEGBwgJBgkKCwwNDg8MDwUEEBEODRASExEUFQgHFBobFRwDAhYcFgsKHRkYHh0bGhkfEhANDAQAAxwKCQgVGx0eHx4YFx8XExIACQADAAQADAALAAEAAgAGAAUABwAIABEAEAANAA4ACgECAQsBDwIPAgYDCQMPAwQEDwQMBQ8FBwUGBg8HCAcPCA8IEQkKCQ8KDgoPCw8LDAwPDQ4NEA0PDg8PEQ8QEBEBAg8AAQIAAQsBCw8CBg8AAgYAAwQAAwkDCQ8DBA8EDA8ABAwFBg8FBw8ABQcABQYHCA8ABwgIDxEACBEACQoJCg8ACwwAEBEADRAADQ4ACg4KDg8LDA8NDg8NDxAPEBEAAAAA7FE4vuxROL4K16O77FE4PuxROD4K16M7KQOCOuaDAzccpd4p4Xv9Jhyl3inmgwM39lA9nOF7/Sb2UD2cZmCDN160DzHmQoYxpySmrgAAgL8K16M7Zrs3PqcvPTunLz07",
+                            "Type": 1
+                        }
+                    ]
+                },
+                "Component_[15309293085555674908]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15309293085555674908,
+                    "Child Entity Order": [
+                        "Entity_[15934909250224]",
+                        "Entity_[6506158658343]",
+                        "Entity_[8859800736551]"
+                    ]
+                },
+                "Component_[15910097906063283013]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 15910097906063283013,
+                    "m_template": {
+                        "$type": "ROS2FrameComponent",
+                        "Namespace Configuration": {
+                            "Namespace Strategy": 1
+                        },
+                        "Frame Name": "base_link"
+                    }
+                },
+                "Component_[16572099067667838198]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16572099067667838198
+                },
+                "Component_[18115319375137189991]": {
+                    "$type": "EditorCylinderShapeComponent",
+                    "Id": 18115319375137189991,
+                    "ShapeColor": [
+                        1.0,
+                        1.0,
+                        0.7803921699523926
+                    ],
+                    "CylinderShape": {
+                        "Configuration": {
+                            "DrawColor": [
+                                1.0,
+                                1.0,
+                                0.7803921699523926
+                            ],
+                            "Height": 0.009999999776482582,
+                            "Radius": 0.18000000715255737
+                        }
+                    }
+                },
+                "Component_[223082360444566403]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 223082360444566403,
+                    "ComponentOrderEntryArray": [
+                        {
+                            "ComponentId": 8050084937550776360
+                        }
+                    ]
+                },
+                "Component_[2317561115070792535]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 2317561115070792535
+                },
+                "Component_[5567970943382624113]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 5567970943382624113
+                },
+                "Component_[5957548067248555519]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 5957548067248555519
+                },
+                "Component_[7715341178742189308]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 7715341178742189308,
+                    "m_template": {
+                        "$type": "ROS2RobotControlComponent",
+                        "ControlConfiguration": {
+                        },
+                        "SubscriberConfiguration": {
+                            "Type": "ackermann_msgs::msg::AckermannDrive",
+                            "Topic": "cmd_vel"
+                        }
+                    }
+                },
+                "Component_[8050084937550776360]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 8050084937550776360,
+                    "Parent Entity": "ContainerEntity"
+                },
+                "Component_[9192919221946408591]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 9192919221946408591,
+                    "m_template": {
+                        "$type": "RigidBodyTwistControlComponent"
+                    }
+                },
+                "Component_[9387051024545712596]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 9387051024545712596
+                }
+            }
+        },
+        "Entity_[30059726131707]": {
+            "Id": "Entity_[30059726131707]",
+            "Name": "robot_vacuum_osensorboardholder",
+            "Components": {
+                "Component_[10741789439431487362]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 10741789439431487362
+                },
+                "Component_[12823283736088704650]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 12823283736088704650,
+                    "Parent Entity": "Entity_[6506158658343]"
+                },
+                "Component_[12872069760461567186]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12872069760461567186
+                },
+                "Component_[13270684703792889476]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 13270684703792889476,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{3DFC70D2-228C-505C-9078-89970FBE1E84}",
+                                    "subId": 272031789
+                                },
+                                "assetHint": "assets/robovac/assets/robot_vacuum_osensorboardholder.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[13285217915550335661]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 13285217915550335661
+                },
+                "Component_[16122814623279561882]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16122814623279561882
+                },
+                "Component_[17667284355890202398]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17667284355890202398
+                },
+                "Component_[3439142514294566174]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 3439142514294566174
+                },
+                "Component_[5750714056929933670]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5750714056929933670
+                },
+                "Component_[6065822064279006146]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 6065822064279006146,
+                    "Controller": {
+                        "Configuration": {
+                            "materials": [
+                                {
+                                    "Key": {
+                                        "materialSlotStableId": 713658209
+                                    },
+                                    "Value": {
+                                        "MaterialAsset": {
+                                            "assetId": {
+                                                "guid": "{F0459FD0-3485-565F-89B9-BC678699B78D}"
+                                            },
+                                            "assetHint": "assets/robovac/assets/robotvacuum_paint_-_enamel_glossy_black_.azmaterial"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                },
+                "Component_[7866814265491933405]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 7866814265491933405
+                }
+            }
+        },
+        "Entity_[5002252716067]": {
+            "Id": "Entity_[5002252716067]",
+            "Name": "Lidar",
+            "Components": {
+                "Component_[14456088025367877347]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 14456088025367877347
+                },
+                "Component_[14551933034245337847]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 14551933034245337847
+                },
+                "Component_[15934807076508388308]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 15934807076508388308,
+                    "Parent Entity": "Entity_[8859800736551]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.1501830816268921,
+                            -0.010563373565673828,
+                            0.035237789154052734
+                        ]
+                    }
+                },
+                "Component_[15975027362231334963]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15975027362231334963
+                },
+                "Component_[1621831901319912704]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 1621831901319912704
+                },
+                "Component_[16456422260517615133]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16456422260517615133
+                },
+                "Component_[17357346482856591089]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 17357346482856591089,
+                    "m_template": {
+                        "$type": "ROS2LidarSensorComponent",
+                        "SensorConfiguration": {
+                            "Visualise": false,
+                            "Publishers": {
+                                "sensor_msgs::msg::PointCloud2": {
+                                    "Type": "sensor_msgs::msg::PointCloud2",
+                                    "Topic": "pc"
+                                }
+                            }
+                        },
+                        "LidarTransparentEntityId": "",
+                        "LidarParameters": {
+                            "Layers": 16,
+                            "Points per layer": 516,
+                            "Min horizontal angle": -90.0,
+                            "Max horizontal angle": 90.0,
+                            "Min vertical angle": 5.0,
+                            "Max vertical angle": -10.0,
+                            "Max range": 30.0
+                        }
+                    }
+                },
+                "Component_[18249910351855492071]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 18249910351855492071
+                },
+                "Component_[3490167280358485747]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 3490167280358485747,
+                    "m_template": {
+                        "$type": "ROS2FrameComponent",
+                        "Namespace Configuration": {
+                            "Namespace Strategy": 1
+                        },
+                        "Frame Name": "lidar"
+                    }
+                },
+                "Component_[5861697099478679034]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 5861697099478679034
+                },
+                "Component_[8530803261175423250]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8530803261175423250
+                }
+            }
+        },
+        "Entity_[6506158658343]": {
+            "Id": "Entity_[6506158658343]",
+            "Name": "Mesh",
+            "Components": {
+                "Component_[10933917820466561585]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 10933917820466561585
+                },
+                "Component_[1120705527766950611]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 1120705527766950611
+                },
+                "Component_[11366492275209164279]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11366492275209164279
+                },
+                "Component_[1295897211617435201]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 1295897211617435201,
+                    "Parent Entity": "Entity_[30055431164411]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            -0.005482405424118042
+                        ],
+                        "Rotate": [
+                            0.0,
+                            0.0,
+                            180.0
+                        ]
+                    }
+                },
+                "Component_[17642228670508097488]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17642228670508097488
+                },
+                "Component_[4175025945549480712]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 4175025945549480712,
+                    "Child Entity Order": [
+                        "Entity_[29909402276347]",
+                        "Entity_[29948056982011]",
+                        "Entity_[30016776458747]",
+                        "Entity_[29896517374459]",
+                        "Entity_[29862157636091]",
+                        "Entity_[29999596589563]",
+                        "Entity_[30025366393339]",
+                        "Entity_[29952351949307]",
+                        "Entity_[30033956327931]",
+                        "Entity_[30008186524155]",
+                        "Entity_[29866452603387]",
+                        "Entity_[29887927439867]",
+                        "Entity_[29900812341755]",
+                        "Entity_[29905107309051]",
+                        "Entity_[29913697243643]",
+                        "Entity_[29844977766907]",
+                        "Entity_[29982416720379]",
+                        "Entity_[30038251295227]",
+                        "Entity_[30029661360635]",
+                        "Entity_[29892222407163]",
+                        "Entity_[29922287178235]",
+                        "Entity_[29991006654971]",
+                        "Entity_[29973826785787]",
+                        "Entity_[29875042537979]",
+                        "Entity_[29978121753083]",
+                        "Entity_[29935172080123]",
+                        "Entity_[29965236851195]",
+                        "Entity_[30059726131707]",
+                        "Entity_[29857862668795]",
+                        "Entity_[29930877112827]",
+                        "Entity_[29870747570683]",
+                        "Entity_[29883632472571]",
+                        "Entity_[29853567701499]",
+                        "Entity_[29969531818491]",
+                        "Entity_[30012481491451]",
+                        "Entity_[30003891556859]",
+                        "Entity_[30042546262523]",
+                        "Entity_[29879337505275]",
+                        "Entity_[29917992210939]",
+                        "Entity_[29926582145531]",
+                        "Entity_[29960941883899]",
+                        "Entity_[29849272734203]",
+                        "Entity_[29986711687675]",
+                        "Entity_[29939467047419]",
+                        "Entity_[30021071426043]",
+                        "Entity_[29943762014715]",
+                        "Entity_[30051136197115]",
+                        "Entity_[29995301622267]",
+                        "Entity_[29956646916603]",
+                        "Entity_[30046841229819]"
+                    ]
+                },
+                "Component_[5075023512203644777]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 5075023512203644777
+                },
+                "Component_[9106650773510172942]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 9106650773510172942
+                },
+                "Component_[9115969056810346082]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9115969056810346082
+                }
+            }
+        },
+        "Entity_[8859800736551]": {
+            "Id": "Entity_[8859800736551]",
+            "Name": "Sensors",
+            "Components": {
+                "Component_[11093905779932289212]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 11093905779932289212
+                },
+                "Component_[12228418348456879928]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12228418348456879928
+                },
+                "Component_[14081951032431453423]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 14081951032431453423,
+                    "Child Entity Order": [
+                        "Instance_[8975764853543]/ContainerEntity",
+                        "Entity_[5002252716067]"
+                    ]
+                },
+                "Component_[2172420079327414534]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 2172420079327414534
+                },
+                "Component_[2939692639054844657]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 2939692639054844657
+                },
+                "Component_[3624826975054373222]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3624826975054373222,
+                    "Parent Entity": "Entity_[30055431164411]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.007144808769226074
+                        ]
+                    }
+                },
+                "Component_[6166339791366712155]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 6166339791366712155
+                },
+                "Component_[8798470866560069553]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 8798470866560069553
+                },
+                "Component_[9079236517366404702]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 9079236517366404702
+                }
+            }
+        }
+    },
+    "Instances": {
+        "Instance_[8975764853543]": {
+            "Source": "Prefabs/Sensors/Imu.prefab",
+            "Patches": [
+                {
+                    "op": "replace",
+                    "path": "/ContainerEntity/Components/Component_[6700600896017100313]/Parent Entity",
+                    "value": "../Entity_[8859800736551]"
+                },
+                {
+                    "op": "replace",
+                    "path": "/ContainerEntity/Components/Component_[6700600896017100313]/Transform Data/Translate/0",
+                    "value": -0.09387588500976563
+                },
+                {
+                    "op": "replace",
+                    "path": "/ContainerEntity/Components/Component_[6700600896017100313]/Transform Data/Translate/2",
+                    "value": 0.04095920920372009
+                },
+                {
+                    "op": "replace",
+                    "path": "/ContainerEntity/Components/Component_[901516877242196147]/Child Entity Order/0",
+                    "value": "Entity_[690707340010]"
+                },
+                {
+                    "op": "replace",
+                    "path": "/Entities/Entity_[690707340010]/Components/Component_[12053638524449760314]/ColliderConfiguration/MaterialSlots/Slots/0/Name",
+                    "value": "DefaultMaterial"
+                }
+            ]
+        }
+    }
+}

+ 21 - 0
Assets/RoboVac/assets/RobotVacuum_ABSGrey.material

@@ -0,0 +1,21 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.07483024150133133,
+            0.07483024150133133,
+            0.07483024150133133,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "general.applySpecularAA": true,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.3400000035762787
+    }
+}

+ 23 - 0
Assets/RoboVac/assets/RobotVacuum_ABS_White_.material

@@ -0,0 +1,23 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.8231326937675476,
+            0.8231326937675476,
+            0.8231326937675476,
+            1.0
+        ],
+        "baseColor.factor": 0.7699999809265137,
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "metallic.factor": 0.4099999964237213,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.3400000035762787,
+        "specularF0.factor": 0.25
+    }
+}

+ 29 - 0
Assets/RoboVac/assets/RobotVacuum_Acrylic_Clear_.material

@@ -0,0 +1,29 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.9647058844566345,
+            0.9647058844566345,
+            0.9529411792755127,
+            1.0
+        ],
+        "baseColor.factor": 0.07000000029802322,
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "general.applySpecularAA": true,
+        "general.doubleSided": true,
+        "general.forwardPassIBLSpecular": true,
+        "metallic.factor": 0.18000000715255737,
+        "opacity.alphaAffectsSpecular": 0.47999998927116394,
+        "opacity.alphaSource": "Split",
+        "opacity.factor": 1.0,
+        "opacity.mode": "Blended",
+        "roughness.factor": 0.33000001311302185,
+        "specularF0.factor": 0.3499999940395355
+    }
+}

+ 20 - 0
Assets/RoboVac/assets/RobotVacuum_Chip.material

@@ -0,0 +1,20 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.04898146167397499,
+            0.13604943454265594,
+            0.053223468363285065,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.6499999761581421
+    }
+}

+ 24 - 0
Assets/RoboVac/assets/RobotVacuum_DefaultMaterial.material

@@ -0,0 +1,24 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.01361104752868414,
+            0.01361104752868414,
+            0.01361104752868414,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "general.applySpecularAA": true,
+        "general.forwardPassIBLSpecular": true,
+        "metallic.factor": 0.009999999776482582,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.1599999964237213,
+        "specularF0.factor": 1.0
+    }
+}

+ 13 - 0
Assets/RoboVac/assets/RobotVacuum_Display.material

@@ -0,0 +1,13 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "baseColor.textureBlendMode": "Lerp"
+    }
+}

+ 21 - 0
Assets/RoboVac/assets/RobotVacuum_FR4.material

@@ -0,0 +1,21 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.05687037482857704,
+            0.061219196766614914,
+            0.05976958945393562,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "metallic.factor": 0.6399999856948853,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.3499999940395355
+    }
+}

+ 21 - 0
Assets/RoboVac/assets/RobotVacuum_Gold_-_Polished.material

@@ -0,0 +1,21 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.45578697323799133,
+            0.3669947385787964,
+            0.0,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "metallic.factor": 1.0,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.30000001192092896
+    }
+}

+ 23 - 0
Assets/RoboVac/assets/RobotVacuum_Paint_-_Enamel_Glossy_Black_.material

@@ -0,0 +1,23 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.09803920239210129,
+            0.09803920239210129,
+            0.09803920239210129,
+            1.0
+        ],
+        "baseColor.factor": 0.1899999976158142,
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "general.applySpecularAA": true,
+        "metallic.factor": 0.28999999165534973,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.5099999904632568
+    }
+}

+ 21 - 0
Assets/RoboVac/assets/RobotVacuum_Plastic_-_Sensor.material

@@ -0,0 +1,21 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.01361104752868414,
+            0.01361104752868414,
+            0.01361104752868414,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "metallic.factor": 0.14000000059604645,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.2199999988079071
+    }
+}

+ 20 - 0
Assets/RoboVac/assets/RobotVacuum_Polymide_Kapton_.material

@@ -0,0 +1,20 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.2381017804145813,
+            0.11905089020729065,
+            0.0,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.5699999928474426
+    }
+}

+ 20 - 0
Assets/RoboVac/assets/RobotVacuum_Rubber_-_Bumpy.material

@@ -0,0 +1,20 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.15294119715690613,
+            0.15294119715690613,
+            0.15294119715690613,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.6299999952316284
+    }
+}

+ 20 - 0
Assets/RoboVac/assets/RobotVacuum_Rubber_-_Weathered.material

@@ -0,0 +1,20 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.04081788286566734,
+            0.04081788286566734,
+            0.04081788286566734,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.6000000238418579
+    }
+}

+ 21 - 0
Assets/RoboVac/assets/RobotVacuum_Steel_-_Satin.material

@@ -0,0 +1,21 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "materialTypeVersion": 5,
+    "propertyValues": {
+        "baseColor.color": [
+            0.6274510025978088,
+            0.6274510025978088,
+            0.6274510025978088,
+            1.0
+        ],
+        "emissive.color": [
+            0.0,
+            0.0,
+            0.0,
+            1.0
+        ],
+        "metallic.factor": 1.0,
+        "opacity.factor": 1.0,
+        "roughness.factor": 0.23000000417232513
+    }
+}

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BackBumper.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13737d7201e62dc973d021180bd102e50f7d2bc3dced9cedfa000c0210e940f3
+size 37804

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BackBumperSensor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:38db433b86d5f5aa322de6d2d15edbf2f57895287c2899f27cb36ec77068dcce
+size 79132

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Battery.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a47a2be13d07288335644a4776ef3bebae48c101f8a1de8097d7aaa7ebdb7c43
+size 19932

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BottomBase.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27eb56daee7a051be33e583c064b2406cf64e6b8027b5737388d26bfd0a986e2
+size 155676

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BottomWheelOne.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c545ef8faef25505f216cd5797be791bb74dd849dfc6d338bf5cd5f1ae9246fa
+size 220028

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BottomWheelTwo.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc67373e108899df616544df0556e3e2d570ed5c5a84e9f06583024e3b13a005
+size 295692

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BrushB.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24dbbd1ade0add3b590fd3533eb9224b78dd303ecd5caa6e6aaca697bd451c31
+size 186828

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_BrushC.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b9755a1cab7b69451e072b0ea43685a6c9c9fce75c27d8d33a6ab89ba46de2a
+size 1416428

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_CPUCase.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afc3782b969fbf0b47f6d57839c02a58b4f139cd38538f801fb831ec59b4cb81
+size 139468

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_CPUCover.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:533e14109b9732057a124eeb3cf7608d0f57fdb17d83755e0f426c0ba0c06593
+size 319788

+ 44 - 0
Assets/RoboVac/assets/Robot_Vacuum_CPUCover.fbx.assetinfo

@@ -0,0 +1,44 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{1C525C8C-2D53-5DF5-86EB-25AEBE8CB737}",
+            "name": "Robot_Vacuum_CPUCover",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "RootNode.CPUCover"
+                ],
+                "unselectedNodes": [
+                    {},
+                    "RootNode"
+                ]
+            },
+            "export method": 1,
+            "MaterialSlots": [
+                "Plastic - Sensor"
+            ],
+            "PhysicsMaterials": [
+                "<Default Physics Material>"
+            ]
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "Robot_Vacuum_CPUCover",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "RootNode",
+                    "RootNode.CPUCover"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{341DFF1F-F908-50C1-BF06-48303E3858D5}"
+        }
+    ]
+}

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_CPUCoverDoor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a04b399f8c025422de518ff17bff5b8541ec89cc34198b62d07429ad26af8641
+size 51068

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Capture.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d4a5f5829439e4a6617e7d47073296714b6f74e7da4b52b2a7fbea46ec6d71fe
+size 282524

+ 44 - 0
Assets/RoboVac/assets/Robot_Vacuum_Capture.fbx.assetinfo

@@ -0,0 +1,44 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{68DE7E71-7B71-5C30-812B-F1807971D3DA}",
+            "name": "Robot_Vacuum_Capture",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "RootNode.Capture"
+                ],
+                "unselectedNodes": [
+                    {},
+                    "RootNode"
+                ]
+            },
+            "export method": 1,
+            "MaterialSlots": [
+                "ABS (White)"
+            ],
+            "PhysicsMaterials": [
+                "<Default Physics Material>"
+            ]
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "Robot_Vacuum_Capture",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "RootNode",
+                    "RootNode.Capture"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{4F2F2B4C-58AD-5268-BF33-0866D1E90CEC}"
+        }
+    ]
+}

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_DepthDensorLeft.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf2d623db4966e1b25c6269c667d2856ec89ae08350b1578ba9e77667f62b891
+size 80780

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_DepthDensorRight.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76b3150024b55b31aca58ab88c743a768cdf7e6976a7b5f92ff9b347b1459ccb
+size 80748

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Display.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3305cf80cb11a2044aa327c76589ec72a745c17c9f651bdfa303a72129e461d7
+size 19116

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_GearBoxLeft.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f5f1406ac0c70edfa14b7a4c130c9c854e6a5817337c65b3fe411d2a66ec2707
+size 623372

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_GearBoxRight.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f0e8b5be6beb155cda629f728d8318f0d145b70914de494e1c5094384ab45199
+size 621132

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_MainLogicBoard.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:36241fa4e8968565b769a5c0407d9ba347376b6bd616f80221cb7706ca758e32
+size 603516

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_NavDisplayCamera.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99f4bb8a8e4082dafea8c101d583223ba44888b03cb14b2fa8e951746918f069
+size 107404

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_NavLogicBoard.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f1678b8d82fb9c3be9596a3d11a39b6af399b5a101c21ac7a5ce4037f2bdd6ef
+size 152044

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_NavSensor_Left.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4e98cfce83f663d1c0d2d0b3f4242f77770f2bcf7c6a00676c966d85c093640
+size 49676

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_NavSensor_Right.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57e2edaa209f969a0ee950cb17c21463ca8f2fbfe2298286599011f8b5b99d38
+size 49564

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_OSensorBoardHolder.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71b29b5dca85d4cda7bd9f1c6087111886478817443dc9c5fe067fc5b4c2a6a8
+size 62060

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_O_CenterSensor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2f2193da01ef976103e5268af13a8fdd298cc9ea49fc2f2f8994600cfabcd14d
+size 152060

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_O_LeftSensor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ff26c94d6b3fdb5515e7c438ee06c3ce9f3af3b7e76349ec5a91478016c476b8
+size 154348

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_O_RightSensor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a68e1d2174401cf24488d09a22e6640caaad773a3600684500bb32828840eb3
+size 153052

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_O_Sensor_Board.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a684b8d8efe5111dd3399c24ef1cebfc596625f5df1fe840b2888a46889a1df1
+size 160140

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Pariscope.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d10b0f0fc15e0c133606184ddcfffe3be62ca6107c4ef9479773672017ae102e
+size 105740

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_PariscopeGlass.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42c15125e2113392694f1fda7bf3fe936b5371aa930f33b203876ecbc7773072
+size 15084

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_PariscopeSenesor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a801077d5938efd596913f159aea7c185f63ea16c95028242ac77f6cd888a210
+size 17276

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9142989fba646dc49786d9cbe125c34fc38ce8efef401732aea5d648d933c55
+size 20204

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube1.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0d8170e3d8e03eb340a3d907c577bc47132bad5ec711794eb7a39f1db2d9567b
+size 20252

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube2.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a48addba804a3cfe67ae6ac1892feb5d477dd88c4634cd6e29a7d9d3cb6bc80
+size 26108

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_PariscopeTube3.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f22f1415066ff5ea80c83df27e53d93e0bc806b2548d458212e761825a61a42a
+size 25980

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Rails.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3113b0e415d1fb24d64b755e2edb8797b77883faafabfa955e0224c7513e5d74
+size 90732

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_RightDriveGear.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c39f4edcb0d2d6830f5d6985ec25bc200631f99e4bf6c1bdedac87b0fa958de8
+size 169276

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_ScreenBody.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac16d578c12cc5c968c18f8be69ef98e4350e5d64ba2899b3e6b5c726bc2a235
+size 126476

+ 44 - 0
Assets/RoboVac/assets/Robot_Vacuum_ScreenBody.fbx.assetinfo

@@ -0,0 +1,44 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{67E72016-67D0-5326-9265-2D5ABBF5112C}",
+            "name": "Robot_Vacuum_ScreenBody",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "RootNode.ScreenBody"
+                ],
+                "unselectedNodes": [
+                    {},
+                    "RootNode"
+                ]
+            },
+            "export method": 1,
+            "MaterialSlots": [
+                "Paint - Enamel Glossy (Black)"
+            ],
+            "PhysicsMaterials": [
+                "<Default Physics Material>"
+            ]
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "Robot_Vacuum_ScreenBody",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "RootNode",
+                    "RootNode.ScreenBody"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{FEDF80F3-FAD1-503E-855E-6956B0D99A1D}"
+        }
+    ]
+}

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_ScreenBoltRight.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e373854b1c9685846f9c2343d8dc537ce768cb73d787eb5ad5e32d4cddca1c1
+size 37932

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_ScreenGlass.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e2bec5fb37100d19ce57a26fc1becd0162862f661fb9c27de68504671a9f169
+size 15084

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_SuspensionBracketLeft.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aae2ff0c57aab2fc9c1025e34c463fe782696d92e0b8dd5b69d071a155bf328b
+size 55756

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_SuspensionBracketRight.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6b3deae2ef13a601918427e45ca1d019879dc84c86e483b4d4367b3e7df423d7
+size 59068

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_SuspensionPinLeft.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:913efab702344ad617e5c1a585ed9636ee68602cdab46b8cd1ee72bfc8cd199a
+size 27500

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_SuspensionPinRight.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a2a858c23aa591e2d0e93e1dc736a0440cfdec1981eb290ae5110c75ce1405d3
+size 27484

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_TowerStableBase.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:95cd78015cf517e8c6d3661a58d83e464a192826981eb62ebe7c0ff15c9e4bf6
+size 44316

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_TowerTop.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af6e49300dafe0df16dd4ebae2bb5d118de814deb4a0e988dd560b1499119401
+size 225244

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_VacCase.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c976c711e84c77a6dbcc174b3a8a4f11af43025a52c28807c48137c8efd84cde
+size 78940

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_VacVaseDoor.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d0b5af0ff4e91f92b80ed67473dee13ee2f36befb7c3b64eee0c543aea55b1cc
+size 39580

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Wheel_Left.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4959036781ef11c7cc45948304d1349dda5707afe4ea10ab33f9ed4c4514c1dc
+size 148460

+ 3 - 0
Assets/RoboVac/assets/Robot_Vacuum_Wheel_Right.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e58a3c623456b9b6775774591854d1e23e1b5ca06628d702846d0267b3f7db76
+size 149036

+ 3 - 0
Assets/RoboVac/assets/Robot_vacuum_base_link.fbx

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85639488e69e27ddaa5ae6b1b3df1a377ab4184cf70b6de2d6c3335106fead2c
+size 368860

+ 47 - 0
Assets/RoboVac/assets/Robot_vacuum_base_link.fbx.assetinfo

@@ -0,0 +1,47 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{64C0CE17-1B32-5AFA-8B1D-C56E382A36FB}",
+            "name": "Robot_Vacuum_base_link",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "RootNode.base_link_001",
+                    "RootNode.base_link_001.custom_properties",
+                    "RootNode.base_link_001.Texture UVs",
+                    "RootNode.base_link_001.ABS (White)"
+                ],
+                "unselectedNodes": [
+                    "RootNode"
+                ]
+            },
+            "MaterialSlots": [
+                "ABS (White)"
+            ],
+            "PhysicsMaterials": [
+                "<Default Physics Material>"
+            ]
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "Robot_Vacuum_base_link",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "RootNode",
+                    "RootNode.base_link_001",
+                    "RootNode.base_link_001.custom_properties",
+                    "RootNode.base_link_001.Texture UVs",
+                    "RootNode.base_link_001.ABS (White)"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{CF07CD9E-AF36-5868-9235-C8EAD3A0D2B0}"
+        }
+    ]
+}

+ 3 - 0
Assets/RoboVac/textures/Eye_BaseColor.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b81b6dfe4d4bcde818c50ae5726952e5d15354ed615c08e2cfdc6f3c3ad0c093
+size 57164

+ 197 - 0
Assets/RoboVac/urdf/RobotVacuum_description/CMakeLists.txt

@@ -0,0 +1,197 @@
+cmake_minimum_required(VERSION 2.8.3)
+project(RobotVacuum_description)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+  rospy
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+##   * add a build_depend tag for "message_generation"
+##   * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+##   * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+##     but can be declared for certainty nonetheless:
+##     * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+##   * add "message_generation" and every package in MSG_DEP_SET to
+##     find_package(catkin REQUIRED COMPONENTS ...)
+##   * add "message_runtime" and every package in MSG_DEP_SET to
+##     catkin_package(CATKIN_DEPENDS ...)
+##   * uncomment the add_*_files sections below as needed
+##     and list every .msg/.srv/.action file to be processed
+##   * uncomment the generate_messages entry below
+##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+#   FILES
+#   Message1.msg
+#   Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+#   FILES
+#   Service1.srv
+#   Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+#   FILES
+#   Action1.action
+#   Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+#   DEPENDENCIES
+#   std_msgs  # Or other packages containing msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+##   * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+##   * add "dynamic_reconfigure" to
+##     find_package(catkin REQUIRED COMPONENTS ...)
+##   * uncomment the "generate_dynamic_reconfigure_options" section below
+##     and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+#   cfg/DynReconf1.cfg
+#   cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+#  INCLUDE_DIRS include
+#  LIBRARIES fusion2urdf
+#  CATKIN_DEPENDS rospy
+#  DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+  ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+#   src/${PROJECT_NAME}/fusion2urdf.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+# add_executable(${PROJECT_NAME}_node src/fusion2urdf_node.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(${PROJECT_NAME}_node
+#   ${catkin_LIBRARIES}
+# )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# install(PROGRAMS
+#   scripts/my_python_script
+#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables and/or libraries for installation
+# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
+#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+#   FILES_MATCHING PATTERN "*.h"
+#   PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+#   # myfile1
+#   # myfile2
+#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_fusion2urdf.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)

+ 21 - 0
Assets/RoboVac/urdf/RobotVacuum_description/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Toshinori Kitamura
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 9 - 0
Assets/RoboVac/urdf/RobotVacuum_description/launch/controller.launch

@@ -0,0 +1,9 @@
+<launch>
+
+<rosparam file="$(find RobotVacuum_description)/launch/controller.yaml" command="load"/>
+<node args="joint_state_controller " name="controller_spawner" ns="RobotVacuum" output="screen" pkg="controller_manager" respawn="false" type="spawner"/>
+<node name="robot_state_publisher" output="screen" pkg="robot_state_publisher" respawn="false" type="robot_state_publisher">
+  <remap from="/joint_states" to="/RobotVacuum/joint_states"/>
+</node>
+
+</launch>

+ 14 - 0
Assets/RoboVac/urdf/RobotVacuum_description/launch/controller.yaml

@@ -0,0 +1,14 @@
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+RobotVacuum_controller:
+  # Publish all joint states -----------------------------------
+  joint_state_controller:
+    type: joint_state_controller/JointStateController
+    publish_rate: 50
+
+  # Position Controllers --------------------------------------

Some files were not shown because too many files changed in this diff