2
0
Эх сурвалжийг харах

Fix nitpicks in simulation interfaces (#893)

Signed-off-by: Jan Hanca <[email protected]>
Jan Hanca 3 сар өмнө
parent
commit
6384ec8cca
36 өөрчлөгдсөн 142 нэмэгдсэн , 184 устгасан
  1. 0 1
      Gems/ROS2/Code/CMakeLists.txt
  2. 3 4
      Gems/ROS2/Code/Include/ROS2/Clock/ROS2Clock.h
  3. 37 37
      Gems/SimulationInterfaces/Code/CMakeLists.txt
  4. 1 1
      Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/ROS2SimulationInterfacesTypeIds.h
  5. 1 1
      Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/Result.h
  6. 6 6
      Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/SimulationEntityManagerRequestBus.h
  7. 3 3
      Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/SimulationInterfacesTypeIds.h
  8. 1 1
      Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/TagFilter.h
  9. 3 3
      Gems/SimulationInterfaces/Code/Source/Actions/SimulateStepsActionServerHandler.cpp
  10. 1 1
      Gems/SimulationInterfaces/Code/Source/Actions/SimulateStepsActionServerHandler.h
  11. 17 8
      Gems/SimulationInterfaces/Code/Source/Clients/ROS2SimulationInterfacesSystemComponent.cpp
  12. 5 18
      Gems/SimulationInterfaces/Code/Source/Clients/ROS2SimulationInterfacesSystemComponent.h
  13. 17 25
      Gems/SimulationInterfaces/Code/Source/Clients/SimulationEntitiesManager.cpp
  14. 0 1
      Gems/SimulationInterfaces/Code/Source/Clients/SimulationEntitiesManager.h
  15. 0 4
      Gems/SimulationInterfaces/Code/Source/Clients/SimulationFeaturesAggregator.cpp
  16. 0 3
      Gems/SimulationInterfaces/Code/Source/Clients/SimulationFeaturesAggregator.h
  17. 0 3
      Gems/SimulationInterfaces/Code/Source/Clients/SimulationManager.cpp
  18. 0 1
      Gems/SimulationInterfaces/Code/Source/Clients/SimulationManager.h
  19. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/DeleteEntityServiceHandler.h
  20. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/GetEntitiesServiceHandler.h
  21. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/GetEntitiesStatesServiceHandler.h
  22. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/GetEntityStateServiceHandler.h
  23. 4 4
      Gems/SimulationInterfaces/Code/Source/Services/GetSimulationFeaturesServiceHandler.cpp
  24. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/GetSimulationFeaturesServiceHandler.h
  25. 0 1
      Gems/SimulationInterfaces/Code/Source/Services/GetSpawnablesServiceHandler.cpp
  26. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/GetSpawnablesServiceHandler.h
  27. 2 2
      Gems/SimulationInterfaces/Code/Source/Services/ResetSimulationServiceHandler.cpp
  28. 0 2
      Gems/SimulationInterfaces/Code/Source/Services/SetEntityStateServiceHandler.h
  29. 6 6
      Gems/SimulationInterfaces/Code/Source/Services/SpawnEntityServiceHandler.cpp
  30. 1 1
      Gems/SimulationInterfaces/Code/Source/Services/SpawnEntityServiceHandler.h
  31. 2 2
      Gems/SimulationInterfaces/Code/Source/SimulationInterfacesModuleInterface.cpp
  32. 2 2
      Gems/SimulationInterfaces/Code/Source/Utils/Utils.h
  33. 0 11
      Gems/SimulationInterfaces/Code/Tests/Clients/ROS2SimulationInterfacesTest.cpp
  34. 0 11
      Gems/SimulationInterfaces/Code/Tests/Clients/SimulationInterfacesTest.cpp
  35. 21 4
      Gems/SimulationInterfaces/Code/Tests/Tools/InterfacesTest.cpp
  36. 9 5
      Gems/SimulationInterfaces/gem.json

+ 0 - 1
Gems/ROS2/Code/CMakeLists.txt

@@ -185,7 +185,6 @@ if(PAL_TRAIT_BUILD_HOST_TOOLS)
                 Gem::Atom_Feature_Common.Public
     )
 
-
     # By default, we will specify that the above target ROS2 would be used by
     # Tool and Builder type targets when this gem is enabled. If you don't want it
     # active in Tools or Builders by default, delete one or both of the following lines:

+ 3 - 4
Gems/ROS2/Code/Include/ROS2/Clock/ROS2Clock.h

@@ -8,12 +8,12 @@
 #pragma once
 
 #include "ITimeSource.h"
+#include <AzCore/Outcome/Outcome.h>
 #include <AzCore/std/chrono/chrono.h>
 #include <AzCore/std/smart_ptr/unique_ptr.h>
+#include <AzCore/std/string/string.h>
 #include <rclcpp/publisher.hpp>
 #include <rosgraph_msgs/msg/clock.hpp>
-#include <AzCore/Outcome/Outcome.h>
-#include <AzCore/std/string/string.h>
 
 namespace ROS2
 {
@@ -23,7 +23,6 @@ namespace ROS2
     //! the /use_sim_time parameter set to true.
     class ROS2Clock
     {
-
     public:
         ROS2Clock();
         ROS2Clock(AZStd::unique_ptr<ITimeSource> timeSource, bool publishClock);
@@ -37,7 +36,7 @@ namespace ROS2
         //! Sets the time source to the given time.
         //! @param time The time to set the time source to.
         //! @return An outcome indicating success or failure.
-        AZ::Outcome<void, AZStd::string> AdjustTime(const builtin_interfaces::msg::Time & time) const;
+        AZ::Outcome<void, AZStd::string> AdjustTime(const builtin_interfaces::msg::Time& time) const;
 
         //! Update time in the ROS 2 ecosystem.
         //! This will publish current time to the ROS 2 `/clock` topic, if Clock is configured to do it.

+ 37 - 37
Gems/SimulationInterfaces/Code/CMakeLists.txt

@@ -261,26 +261,26 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
             )
 
             ly_add_target(
-                    NAME ${gem_name}.TestApp ${PAL_TRAIT_TEST_TARGET_TYPE}
-                    NAMESPACE Gem
-                    FILES_CMAKE
+                NAME ${gem_name}.TestApp ${PAL_TRAIT_TEST_TARGET_TYPE}
+                NAMESPACE Gem
+                FILES_CMAKE
                     simulationinterfaces_editor_app_test.cmake
-                    INCLUDE_DIRECTORIES
+                INCLUDE_DIRECTORIES
                     PRIVATE
-                    Tests
-                    Source
-                    Include
-                    BUILD_DEPENDENCIES
+                        Tests
+                        Source
+                        Include
+                BUILD_DEPENDENCIES
                     PRIVATE
-                    AZ::AzTest
-                    AZ::AzTestShared
-                    AZ::AzToolsFramework
-                    Legacy::CryCommon
-                    Legacy::EditorCommon
-                    Legacy::Editor.Headers
-                    AZ::AzManipulatorTestFramework.Static
-                    Gem::${gem_name}.API
-                    Gem::${gem_name}.Editor.Private.Object
+                        AZ::AzTest
+                        AZ::AzTestShared
+                        AZ::AzToolsFramework
+                        Legacy::CryCommon
+                        Legacy::EditorCommon
+                        Legacy::Editor.Headers
+                        AZ::AzManipulatorTestFramework.Static
+                        Gem::${gem_name}.API
+                        Gem::${gem_name}.Editor.Private.Object
             )
 
             # Add ${gem_name}.Editor.Tests to googletest
@@ -289,29 +289,29 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
             )
 
             ly_add_target(
-                    NAME ${gem_name}.ROS2Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
-                    NAMESPACE Gem
-                    FILES_CMAKE
+                NAME ${gem_name}.ROS2Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
+                NAMESPACE Gem
+                FILES_CMAKE
                     ros2_simulationinterfaces_tests_files.cmake
-                    INCLUDE_DIRECTORIES
+                INCLUDE_DIRECTORIES
                     PRIVATE
-                    Tests
-                    Source
-                    Include
-                    BUILD_DEPENDENCIES
+                        Tests
+                        Source
+                        Include
+                BUILD_DEPENDENCIES
                     PRIVATE
-                    AZ::AzTest
-                    AZ::AzTestShared
-                    AZ::AzToolsFramework
-                    Legacy::CryCommon
-                    Legacy::EditorCommon
-                    Legacy::Editor.Headers
-                    AZ::AzManipulatorTestFramework.Static
-                    Gem::${gem_name}.API
-                    Gem::${gem_name}.Editor.Private.Object
-                    Gem::SimulationInterfaces.API
-                    Gem::ROS2.Static
-                    Gem::${gem_name}.Editor.Private.Object
+                        AZ::AzTest
+                        AZ::AzTestShared
+                        AZ::AzToolsFramework
+                        Legacy::CryCommon
+                        Legacy::EditorCommon
+                        Legacy::Editor.Headers
+                        AZ::AzManipulatorTestFramework.Static
+                        Gem::${gem_name}.API
+                        Gem::${gem_name}.Editor.Private.Object
+                        Gem::SimulationInterfaces.API
+                        Gem::ROS2.Static
+                        Gem::${gem_name}.Editor.Private.Object
                 )
 
                 # Add ${gem_name}.Editor.Tests to googletest

+ 1 - 1
Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/ROS2SimulationInterfacesTypeIds.h

@@ -22,5 +22,5 @@ namespace ROS2SimulationInterfaces
     inline constexpr const char* ROS2SimulationInterfacesEditorModuleTypeId = ROS2SimulationInterfacesModuleTypeId;
 
     // API TypeIds
-    inline constexpr const char* ROS2SimulationInterfacesRequestBusTypeId = "{00d08870-e329-4bd7-bb8c-f67fe369de92}";
+    inline constexpr const char* ROS2SimulationInterfacesRequestBusTypeId = "{00D08870-E329-4BD7-BB8C-F67FE369DE92}";
 } // namespace ROS2SimulationInterfaces

+ 1 - 1
Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/Result.h

@@ -13,7 +13,7 @@
 namespace SimulationInterfaces
 {
     //! Result codes to be used in the Result message
-    //!  @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/Result.msg">Result.msg</a>
+    //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/Result.msg">Result.msg</a>
     using ErrorCodeType = simulation_interfaces::msg::Result::_result_type;
 
     //! A message type to represent the result of a failed operation

+ 6 - 6
Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/SimulationEntityManagerRequestBus.h

@@ -33,7 +33,7 @@ namespace SimulationInterfaces
         AZ::Transform m_boundsPose{ AZ::Transform::CreateIdentity() };
     };
 
-    //!  @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/EntityState.msg">EntityState.msg</a>
+    //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/EntityState.msg">EntityState.msg</a>
     struct EntityState
     {
         AZ::Transform m_pose; //! The pose of the entity
@@ -41,6 +41,7 @@ namespace SimulationInterfaces
         AZ::Vector3 m_twistAngular; //! The angular velocity of the entity (in the entity frame)
     };
 
+    //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/Spawnable.msg">Spawnable.msg</a>
     struct Spawnable
     {
         AZStd::string m_uri;
@@ -64,16 +65,15 @@ namespace SimulationInterfaces
         //! Supported filters:
         //! - name : a posix regular expression to match against entity names
         //! - bounds : a shape to use for filtering entities, null means no bounds filtering
-        //!  @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/srv/GetEntities.srv">GetEntities.srv</a>
+        //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/srv/GetEntities.srv">GetEntities.srv</a>
         virtual AZ::Outcome<EntityNameList, FailedResult> GetEntities(const EntityFilters& filter) = 0;
 
         //! Get the state of an entity.
-        //!  @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/srv/GetEntityState.srv">GetEntityState.srv</a>
+        //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/srv/GetEntityState.srv">GetEntityState.srv</a>
         virtual AZ::Outcome<EntityState, FailedResult> GetEntityState(const AZStd::string& name) = 0;
 
         //! Get the state of all entities that match the filter.
-        //! @see <a
-        //! href="https://github.com/ros-simulation/simulation_interfaces/blob/main/srv/GetEntitiesStates.srv">GetEntitiesStates.srv</a>
+        //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/srv/GetEntitiesStates.srv">GetEntitiesStates.srv</a>
         virtual AZ::Outcome<MultipleEntitiesStates, FailedResult> GetEntitiesStates(const EntityFilters& filter) = 0;
 
         //! Set the state of an entity.
@@ -92,7 +92,7 @@ namespace SimulationInterfaces
         virtual AZ::Outcome<SpawnableList, FailedResult> GetSpawnables() = 0;
 
         //! Callback for when an entity has been spawned and registered. The string is the name of the entity in the simulation interface.
-        //! Note : The names is empty, if the entity could not be registered (e.g. prefab has no simulated entities)
+        //! Note: The names are empty, if the entity could not be registered (e.g. prefab has no simulated entities)
         virtual void SpawnEntity(
             const AZStd::string& name,
             const AZStd::string& uri,

+ 3 - 3
Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/SimulationInterfacesTypeIds.h

@@ -18,7 +18,7 @@ namespace SimulationInterfaces
     inline constexpr const char* SimulationManagerEditorTypeId = "{2CC8D67B-CFD3-4E89-AAF0-8935640B51C1}";
 
     inline constexpr const char* SimulationFeaturesAggregatorTypeId = "{5c5ae765-1776-4ba0-8e32-b66c8f4edafe}";
-    inline constexpr const char* SimulationFeaturesAggregatorEditorTypeId = "{504a86ef-df0a-45ec-b69d-315ff4ec8121}";
+    inline constexpr const char* SimulationFeaturesAggregatorEditorTypeId = "{504A86EF-DF0A-45EC-B69D-315FF4EC8121}";
 
     // Module derived classes TypeIds
     inline constexpr const char* SimulationInterfacesModuleInterfaceTypeId = "{675797BF-E5D5-438A-BF86-4B4554F09CEF}";
@@ -30,7 +30,7 @@ namespace SimulationInterfaces
     // Interface TypeIds
     inline constexpr const char* SimulationInterfacesRequestsTypeId = "{6818E5E3-BBF5-41BD-96BB-7AF57CCC7528}";
     inline constexpr const char* SimulationManagerRequestsTypeId = "{056477BA-8153-4901-9401-0146A5E3E9ED}";
-    inline constexpr const char* SimulationFeaturesAggregatorRequestsTypeId = "{099fd08b-b0e2-4705-9c35-cc09c8e45076}";
-    inline constexpr const char* SimulationManagerNotificationsTypeId = "{0201067b-9d52-4ab7-9a45-284287f53b00}";
+    inline constexpr const char* SimulationFeaturesAggregatorRequestsTypeId = "{099FD08B-B0E2-4705-9C35-CC09C8E45076}";
+    inline constexpr const char* SimulationManagerNotificationsTypeId = "{0201067B-9D52-4AB7-9A45-284287F53B00}";
 
 } // namespace SimulationInterfaces

+ 1 - 1
Gems/SimulationInterfaces/Code/Include/SimulationInterfaces/TagFilter.h

@@ -14,7 +14,7 @@
 namespace SimulationInterfaces
 {
     //! Structure to design a filter for tags
-    //!  @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/TagsFilter.msg">TagsFilter.msg</a>
+    //! @see <a href="https://github.com/ros-simulation/simulation_interfaces/blob/main/msg/TagsFilter.msg">TagsFilter.msg</a>
     using TagFilterMode = uint8_t;
 
     struct TagFilter

+ 3 - 3
Gems/SimulationInterfaces/Code/Source/Actions/SimulateStepsActionServerHandler.cpp

@@ -57,7 +57,7 @@ namespace ROS2SimulationInterfaces
     {
         SimulationInterfaces::SimulationManagerRequestBus::Broadcast(
             &SimulationInterfaces::SimulationManagerRequests::CancelStepSimulation);
-        m_isCancelled = true;
+        m_cancelAction = true;
         return rclcpp_action::CancelResponse::ACCEPT;
     }
 
@@ -80,7 +80,7 @@ namespace ROS2SimulationInterfaces
             m_goalHandle.reset();
             return;
         }
-        m_isCancelled = false;
+        m_cancelAction = false;
         AZ::TickBus::Handler::BusConnect();
         SimulationInterfaces::SimulationManagerRequestBus::Broadcast(
             &SimulationInterfaces::SimulationManagerRequests::StepSimulation, m_goalSteps);
@@ -88,7 +88,7 @@ namespace ROS2SimulationInterfaces
 
     void SimulateStepsActionServerHandler::OnTick([[maybe_unused]] float deltaTime, [[maybe_unused]] AZ::ScriptTimePoint time)
     {
-        if (m_isCancelled)
+        if (m_cancelAction)
         {
             auto result = std::make_shared<Result>();
             result->result.error_message = "Action has been cancelled.";

+ 1 - 1
Gems/SimulationInterfaces/Code/Source/Actions/SimulateStepsActionServerHandler.h

@@ -44,7 +44,7 @@ namespace ROS2SimulationInterfaces
 
     private:
         AZ::u64 m_goalSteps{ 0 };
-        bool m_isCancelled{ false };
+        bool m_cancelAction{ false };
     };
 
 } // namespace ROS2SimulationInterfaces

+ 17 - 8
Gems/SimulationInterfaces/Code/Source/Clients/ROS2SimulationInterfacesSystemComponent.cpp

@@ -9,15 +9,28 @@
 #include "ROS2SimulationInterfacesSystemComponent.h"
 
 #include <Actions/SimulateStepsActionServerHandler.h>
+#include <AzCore/Serialization/SerializeContext.h>
+#include <AzCore/std/smart_ptr/make_shared.h>
 #include <AzCore/std/string/string.h>
-#include <Services/ROS2ServiceBase.h>
-#include <SimulationInterfaces/ROS2SimulationInterfacesRequestBus.h>
+#include <AzFramework/API/ApplicationAPI.h>
 
 #include <ROS2/ROS2Bus.h>
+#include <SimulationInterfaces/ROS2SimulationInterfacesRequestBus.h>
 #include <SimulationInterfaces/ROS2SimulationInterfacesTypeIds.h>
 
-#include <AzCore/Serialization/SerializeContext.h>
-#include <AzCore/std/smart_ptr/make_shared.h>
+#include <Services/DeleteEntityServiceHandler.h>
+#include <Services/GetEntitiesServiceHandler.h>
+#include <Services/GetEntitiesStatesServiceHandler.h>
+#include <Services/GetEntityStateServiceHandler.h>
+#include <Services/GetSimulationFeaturesServiceHandler.h>
+#include <Services/GetSimulationStateServiceHandler.h>
+#include <Services/GetSpawnablesServiceHandler.h>
+#include <Services/ROS2ServiceBase.h>
+#include <Services/ResetSimulationServiceHandler.h>
+#include <Services/SetEntityStateServiceHandler.h>
+#include <Services/SetSimulationStateServiceHandler.h>
+#include <Services/SpawnEntityServiceHandler.h>
+#include <Services/StepSimulationServiceHandler.h>
 
 namespace ROS2SimulationInterfaces
 {
@@ -67,10 +80,6 @@ namespace ROS2SimulationInterfaces
     {
     }
 
-    void ROS2SimulationInterfacesSystemComponent::Init()
-    {
-    }
-
     void ROS2SimulationInterfacesSystemComponent::Activate()
     {
         ROS2SimulationInterfacesRequestBus::Handler::BusConnect();

+ 5 - 18
Gems/SimulationInterfaces/Code/Source/Clients/ROS2SimulationInterfacesSystemComponent.h

@@ -9,26 +9,14 @@
 #pragma once
 
 #include <AzCore/Component/Component.h>
-#include <AzFramework/API/ApplicationAPI.h>
-
-#include "Services/DeleteEntityServiceHandler.h"
-#include "Services/GetEntitiesServiceHandler.h"
-#include "Services/GetEntitiesStatesServiceHandler.h"
-#include "Services/GetEntityStateServiceHandler.h"
-#include "Services/GetSimulationFeaturesServiceHandler.h"
-#include "Services/GetSimulationStateServiceHandler.h"
-#include "Services/GetSpawnablesServiceHandler.h"
-#include "Services/ROS2ServiceBase.h"
-#include "Services/ResetSimulationServiceHandler.h"
-#include "Services/SetEntityStateServiceHandler.h"
-#include "Services/SetSimulationStateServiceHandler.h"
-#include "Services/SpawnEntityServiceHandler.h"
-#include "Services/StepSimulationServiceHandler.h"
-#include "SimulationInterfaces/ROS2SimulationInterfacesRequestBus.h"
 #include <AzCore/std/containers/unordered_map.h>
-#include <AzCore/std/optional.h>
 #include <AzCore/std/smart_ptr/shared_ptr.h>
 #include <AzCore/std/string/string.h>
+#include <AzFramework/API/ApplicationAPI.h>
+
+#include <SimulationInterfaces/ROS2SimulationInterfacesRequestBus.h>
+
+#include <Interfaces/IROS2HandlerBase.h>
 
 namespace ROS2SimulationInterfaces
 {
@@ -51,7 +39,6 @@ namespace ROS2SimulationInterfaces
 
     protected:
         // AZ::Component interface implementation
-        void Init() override;
         void Activate() override;
         void Deactivate() override;
 

+ 17 - 25
Gems/SimulationInterfaces/Code/Source/Clients/SimulationEntitiesManager.cpp

@@ -8,12 +8,12 @@
 
 #include "SimulationEntitiesManager.h"
 
+#include <Clients/SimulationFeaturesAggregator.h>
+#include <SimulationInterfaces/SimulationFeaturesAggregatorRequestBus.h>
 #include <SimulationInterfaces/SimulationInterfacesTypeIds.h>
 
-#include "Clients/SimulationFeaturesAggregator.h"
 #include "CommonUtilities.h"
 #include "ConsoleCommands.inl"
-#include "SimulationInterfaces/SimulationFeaturesAggregatorRequestBus.h"
 #include <AzCore/Asset/AssetManager.h>
 #include <AzCore/Asset/AssetManagerBus.h>
 #include <AzCore/Component/ComponentApplicationBus.h>
@@ -114,10 +114,6 @@ namespace SimulationInterfaces
         }
     }
 
-    void SimulationEntitiesManager::Init()
-    {
-    }
-
     bool SimulationEntitiesManager::RegisterNewSimulatedBody(AzPhysics::SceneHandle sceneHandle, AzPhysics::SimulatedBodyHandle bodyHandle)
     {
         auto* scene = GetSceneHelper(sceneHandle);
@@ -264,15 +260,16 @@ namespace SimulationInterfaces
 
         SimulationFeaturesAggregatorRequestBus::Broadcast(
             &SimulationFeaturesAggregatorRequests::AddSimulationFeatures,
-            AZStd::unordered_set<SimulationFeatureType>{ // simulation_interfaces::msg::SimulatorFeatures::ENTITY_TAGS,
-                                                         simulation_interfaces::msg::SimulatorFeatures::ENTITY_BOUNDS_BOX,
-                                                         // simulation_interfaces::msg::SimulatorFeatures::ENTITY_BOUNDS_CONVEX,
-                                                         // simulation_interfaces::msg::SimulatorFeatures::ENTITY_CATEGORIES,
-                                                         simulation_interfaces::msg::SimulatorFeatures::ENTITY_STATE_GETTING,
-                                                         simulation_interfaces::msg::SimulatorFeatures::ENTITY_STATE_SETTING,
-                                                         simulation_interfaces::msg::SimulatorFeatures::DELETING,
-                                                         simulation_interfaces::msg::SimulatorFeatures::SPAWNABLES,
-                                                         simulation_interfaces::msg::SimulatorFeatures::SPAWNING });
+            AZStd::unordered_set<SimulationFeatureType>{
+                // not implemented: simulation_interfaces::msg::SimulatorFeatures::ENTITY_TAGS,
+                simulation_interfaces::msg::SimulatorFeatures::ENTITY_BOUNDS_BOX,
+                // not implemented: simulation_interfaces::msg::SimulatorFeatures::ENTITY_BOUNDS_CONVEX,
+                // not implemented: simulation_interfaces::msg::SimulatorFeatures::ENTITY_CATEGORIES,
+                simulation_interfaces::msg::SimulatorFeatures::ENTITY_STATE_GETTING,
+                simulation_interfaces::msg::SimulatorFeatures::ENTITY_STATE_SETTING,
+                simulation_interfaces::msg::SimulatorFeatures::DELETING,
+                simulation_interfaces::msg::SimulatorFeatures::SPAWNABLES,
+                simulation_interfaces::msg::SimulatorFeatures::SPAWNING });
         AZ::TickBus::Handler::BusConnect();
     }
 
@@ -287,7 +284,6 @@ namespace SimulationInterfaces
         m_physicsScenesHandle = AzPhysics::InvalidSceneHandle;
 
         m_sceneAddedHandler.Disconnect();
-        m_sceneAddedHandler.Disconnect();
     }
 
     AZStd::string SimulationEntitiesManager::AddSimulatedEntity(AZ::EntityId entityId, const AZStd::string& userProposedName)
@@ -311,17 +307,15 @@ namespace SimulationInterfaces
 
     void SimulationEntitiesManager::RemoveSimulatedEntity(AZ::EntityId entityId)
     {
-        auto findIt = m_entityIdToSimulatedEntityMap.find(entityId);
-        if (findIt != m_entityIdToSimulatedEntityMap.end())
+        if (auto findIt = m_entityIdToSimulatedEntityMap.find(entityId); findIt != m_entityIdToSimulatedEntityMap.end())
         {
             const auto& simulatedEntityName = findIt->second;
             m_entityIdToSimulatedEntityMap.erase(findIt);
             m_simulatedEntityToEntityIdMap.erase(simulatedEntityName);
         }
-        auto findIt2 = m_entityIdToInitialState.find(entityId);
-        if (findIt2 != m_entityIdToInitialState.end())
+        if (auto findIt = m_entityIdToInitialState.find(entityId); findIt != m_entityIdToInitialState.end())
         {
-            m_entityIdToInitialState.erase(findIt2);
+            m_entityIdToInitialState.erase(findIt);
         }
     }
 
@@ -371,8 +365,7 @@ namespace SimulationInterfaces
             for (const auto& hit : result.m_hits)
             {
                 const AZ::EntityId entityId = hit.m_entityId;
-                auto findIt = m_entityIdToSimulatedEntityMap.find(entityId);
-                if (findIt != m_entityIdToSimulatedEntityMap.end())
+                if (auto findIt = m_entityIdToSimulatedEntityMap.find(entityId); findIt != m_entityIdToSimulatedEntityMap.end())
                 {
                     entities.push_back(findIt->second);
                 }
@@ -404,7 +397,7 @@ namespace SimulationInterfaces
         const auto findIt = m_simulatedEntityToEntityIdMap.find(name);
         if (findIt == m_simulatedEntityToEntityIdMap.end())
         {
-            AZ_Warning("SimulationInterfaces", findIt != m_simulatedEntityToEntityIdMap.end(), "Entity %s not found", name.c_str());
+            AZ_Warning("SimulationInterfaces", false, "Entity %s not found", name.c_str());
             return AZ::Failure(FailedResult(simulation_interfaces::msg::Result::RESULT_NOT_FOUND, "Entity not found"));
         }
         EntityState entityState{};
@@ -523,7 +516,6 @@ namespace SimulationInterfaces
     void SimulationEntitiesManager::DeleteEntity(const AZStd::string& name, DeletionCompletedCb completedCb)
     {
         const auto findIt = m_simulatedEntityToEntityIdMap.find(name);
-
         if (findIt == m_simulatedEntityToEntityIdMap.end())
         {
             completedCb(AZ::Failure(FailedResult(simulation_interfaces::msg::Result::RESULT_NOT_FOUND, "Entity not found")));

+ 0 - 1
Gems/SimulationInterfaces/Code/Source/Clients/SimulationEntitiesManager.h

@@ -36,7 +36,6 @@ namespace SimulationInterfaces
         SimulationEntitiesManager();
         ~SimulationEntitiesManager();
         // AZ::Component interface implementation
-        void Init() override;
         void Activate() override;
         void Deactivate() override;
 

+ 0 - 4
Gems/SimulationInterfaces/Code/Source/Clients/SimulationFeaturesAggregator.cpp

@@ -60,10 +60,6 @@ namespace SimulationInterfaces
         }
     }
 
-    void SimulationFeaturesAggregator::Init()
-    {
-    }
-
     void SimulationFeaturesAggregator::Activate()
     {
         SimulationFeaturesAggregatorRequestBus::Handler::BusConnect();

+ 0 - 3
Gems/SimulationInterfaces/Code/Source/Clients/SimulationFeaturesAggregator.h

@@ -14,9 +14,7 @@
 #include <AzFramework/Entity/EntityContextBus.h>
 #include <AzFramework/Physics/PhysicsScene.h>
 #include <AzFramework/Spawnable/SpawnableEntitiesInterface.h>
-#include <SimulationInterfaces/SimulationEntityManagerRequestBus.h>
 #include <SimulationInterfaces/SimulationFeaturesAggregatorRequestBus.h>
-#include <SimulationInterfaces/SimulationMangerRequestBus.h>
 
 namespace SimulationInterfaces
 {
@@ -38,7 +36,6 @@ namespace SimulationInterfaces
         ~SimulationFeaturesAggregator();
 
         // AZ::Component
-        void Init() override;
         void Activate() override;
         void Deactivate() override;
 

+ 0 - 3
Gems/SimulationInterfaces/Code/Source/Clients/SimulationManager.cpp

@@ -81,9 +81,6 @@ namespace SimulationInterfaces
         }
     }
 
-    void SimulationManager::Init()
-    {
-    }
     void SimulationManager::InitializeSimulationState()
     {
         // if start in stopped state, pause simulation. Default state for simulation by the standard is STOPPED and

+ 0 - 1
Gems/SimulationInterfaces/Code/Source/Clients/SimulationManager.h

@@ -42,7 +42,6 @@ namespace SimulationInterfaces
         ~SimulationManager();
 
         // AZ::Component
-        void Init() override;
         void Activate() override;
         void Deactivate() override;
 

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/DeleteEntityServiceHandler.h

@@ -30,8 +30,6 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 
 } // namespace ROS2SimulationInterfaces

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/GetEntitiesServiceHandler.h

@@ -29,8 +29,6 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 
 } // namespace ROS2SimulationInterfaces

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/GetEntitiesStatesServiceHandler.h

@@ -30,8 +30,6 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 
 } // namespace ROS2SimulationInterfaces

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/GetEntityStateServiceHandler.h

@@ -30,7 +30,5 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 } // namespace ROS2SimulationInterfaces

+ 4 - 4
Gems/SimulationInterfaces/Code/Source/Services/GetSimulationFeaturesServiceHandler.cpp

@@ -32,12 +32,12 @@ namespace ROS2SimulationInterfaces
             o3deInterfaces, &SimulationInterfaces::SimulationFeaturesAggregatorRequests::GetSimulationFeatures);
         // create common features and return it;
         // common features are logical AND between two sets
-        AZStd::unordered_set<SimulationFeatureType> commonFeatures;
-        commonFeatures.insert(ros2Interfaces.begin(), ros2Interfaces.end());
-        commonFeatures.insert(o3deInterfaces.begin(), o3deInterfaces.end());
+        AZStd::unordered_set<SimulationFeatureType> allFeatures;
+        allFeatures.insert(ros2Interfaces.begin(), ros2Interfaces.end());
+        allFeatures.insert(o3deInterfaces.begin(), o3deInterfaces.end());
 
         Response response;
-        for (auto id : commonFeatures)
+        for (auto id : allFeatures)
         {
             if (ros2Interfaces.contains(id) && o3deInterfaces.contains(SimulationInterfaces::SimulationFeatureType(id)))
             {

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/GetSimulationFeaturesServiceHandler.h

@@ -31,8 +31,6 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 
 } // namespace ROS2SimulationInterfaces

+ 0 - 1
Gems/SimulationInterfaces/Code/Source/Services/GetSpawnablesServiceHandler.cpp

@@ -45,7 +45,6 @@ namespace ROS2SimulationInterfaces
                 simSpawnable.description = spawnable.m_description.c_str();
                 return simSpawnable;
             });
-        response.result.result = simulation_interfaces::msg::Result::RESULT_OK;
 
         return response;
     }

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/GetSpawnablesServiceHandler.h

@@ -30,8 +30,6 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 
 } // namespace ROS2SimulationInterfaces

+ 2 - 2
Gems/SimulationInterfaces/Code/Source/Services/ResetSimulationServiceHandler.cpp

@@ -31,7 +31,7 @@ namespace ROS2SimulationInterfaces
     AZStd::optional<ResetSimulationServiceHandler::Response> ResetSimulationServiceHandler::HandleServiceRequest(
         const std::shared_ptr<rmw_request_id_t> header, const Request& request)
     {
-        if (request.scope == simulation_interfaces::srv::ResetSimulation::Request::SCOPE_STATE)
+        if (request.scope == Request::SCOPE_STATE)
         {
             Response response;
             SimulationInterfaces::SimulationEntityManagerRequestBus::Broadcast(
@@ -40,7 +40,7 @@ namespace ROS2SimulationInterfaces
             return response;
         }
 
-        if (request.scope == simulation_interfaces::srv::ResetSimulation::Request::SCOPE_SPAWNED)
+        if (request.scope == Request::SCOPE_SPAWNED)
         {
             auto deletionCompletedCb = [this](const AZ::Outcome<void, SimulationInterfaces::FailedResult>& outcome)
             {

+ 0 - 2
Gems/SimulationInterfaces/Code/Source/Services/SetEntityStateServiceHandler.h

@@ -30,8 +30,6 @@ namespace ROS2SimulationInterfaces
         AZStd::unordered_set<SimulationFeatureType> GetProvidedFeatures() override;
 
         AZStd::optional<Response> HandleServiceRequest(const std::shared_ptr<rmw_request_id_t> header, const Request& request) override;
-
-    private:
     };
 
 } // namespace ROS2SimulationInterfaces

+ 6 - 6
Gems/SimulationInterfaces/Code/Source/Services/SpawnEntityServiceHandler.cpp

@@ -37,8 +37,8 @@ namespace ROS2SimulationInterfaces
             return AZStd::nullopt;
         }
 
-        // Validate frame name
-        if (!entityNamespace.empty() && !ValidateFrameName(entityNamespace))
+        // Validate namespace name
+        if (!entityNamespace.empty() && !ValidateNamespaceName(entityNamespace))
         {
             Response response;
             response.result.result = simulation_interfaces::srv::SpawnEntity::Response::NAMESPACE_INVALID;
@@ -81,12 +81,12 @@ namespace ROS2SimulationInterfaces
         return AZStd::regex_match(entityName, entityRegex);
     }
 
-    bool SpawnEntityServiceHandler::ValidateFrameName(const AZStd::string& frameName)
+    bool SpawnEntityServiceHandler::ValidateNamespaceName(const AZStd::string& namespaceName)
     {
-        const AZStd::regex frameRegex{
+        const AZStd::regex namespaceRegex{
             R"(^[a-zA-Z0-9_/]+$)"
-        }; // Entity names can only contain alphanumeric characters and underscores and forward slashes
-        return AZStd::regex_match(frameName, frameRegex);
+        }; // Namespace names can only contain alphanumeric characters and underscores and forward slashes
+        return AZStd::regex_match(namespaceName, namespaceRegex);
     }
 
 } // namespace ROS2SimulationInterfaces

+ 1 - 1
Gems/SimulationInterfaces/Code/Source/Services/SpawnEntityServiceHandler.h

@@ -32,7 +32,7 @@ namespace ROS2SimulationInterfaces
 
     private:
         bool ValidateEntityName(const AZStd::string& entityName);
-        bool ValidateFrameName(const AZStd::string& frameName);
+        bool ValidateNamespaceName(const AZStd::string& namespaceName);
     };
 
 } // namespace ROS2SimulationInterfaces

+ 2 - 2
Gems/SimulationInterfaces/Code/Source/SimulationInterfacesModuleInterface.cpp

@@ -11,10 +11,10 @@
 
 #include <SimulationInterfaces/SimulationInterfacesTypeIds.h>
 
-#include "Clients/SimulationFeaturesAggregator.h"
-#include "Clients/SimulationManager.h"
 #include <Clients/ROS2SimulationInterfacesSystemComponent.h>
 #include <Clients/SimulationEntitiesManager.h>
+#include <Clients/SimulationFeaturesAggregator.h>
+#include <Clients/SimulationManager.h>
 
 namespace SimulationInterfaces
 {

+ 2 - 2
Gems/SimulationInterfaces/Code/Source/Utils/Utils.h

@@ -38,7 +38,7 @@ namespace ROS2SimulationInterfaces::Utils
             const AZ::Aabb aabb = AZ::Aabb::CreateFromMinMax(lowerLeft, upperRight);
             filter.m_boundsShape = AZStd::make_shared<Physics::BoxShapeConfiguration>(aabb.GetExtents());
         }
-        else if (type == simulation_interfaces::msg::Bounds::TYPE_CONVEX_HULL) // TYPE_CONVEX_HULL
+        else if (type == simulation_interfaces::msg::Bounds::TYPE_CONVEX_HULL)
         {
             if (request.filters.bounds.points.size() < 3)
             {
@@ -46,7 +46,7 @@ namespace ROS2SimulationInterfaces::Utils
             }
             filter.m_boundsShape = AZStd::make_shared<Physics::ConvexHullShapeConfiguration>();
         }
-        else if (type == simulation_interfaces::msg::Bounds::TYPE_SPHERE) // TYPE_SPHERE
+        else if (type == simulation_interfaces::msg::Bounds::TYPE_SPHERE)
         {
             if (request.filters.bounds.points.size() != 2)
             {

+ 0 - 11
Gems/SimulationInterfaces/Code/Tests/Clients/ROS2SimulationInterfacesTest.cpp

@@ -1,11 +0,0 @@
-/*
- * 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
- *
- */
-
-#include <AzTest/AzTest.h>
-
-AZ_UNIT_TEST_HOOK(DEFAULT_UNIT_TEST_ENV);

+ 0 - 11
Gems/SimulationInterfaces/Code/Tests/Clients/SimulationInterfacesTest.cpp

@@ -1,11 +0,0 @@
-/*
- * 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
- *
- */
-
-#include <AzTest/AzTest.h>
-
-AZ_UNIT_TEST_HOOK(DEFAULT_UNIT_TEST_ENV);

+ 21 - 4
Gems/SimulationInterfaces/Code/Tests/Tools/InterfacesTest.cpp

@@ -23,20 +23,37 @@
 #include <AzToolsFramework/ToolsComponents/TransformComponent.h>
 #include <AzToolsFramework/UnitTest/ToolsTestApplication.h>
 
-#include "Clients/ROS2SimulationInterfacesSystemComponent.h"
+#include <Clients/ROS2SimulationInterfacesSystemComponent.h>
+#include <ROS2/ROS2Bus.h>
+#include <Services/DeleteEntityServiceHandler.h>
+#include <Services/GetEntitiesServiceHandler.h>
+#include <Services/GetEntitiesStatesServiceHandler.h>
+#include <Services/GetEntityStateServiceHandler.h>
+#include <Services/GetSimulationFeaturesServiceHandler.h>
+#include <Services/GetSimulationStateServiceHandler.h>
+#include <Services/GetSpawnablesServiceHandler.h>
+#include <Services/ROS2ServiceBase.h>
+#include <Services/ResetSimulationServiceHandler.h>
+#include <Services/SetEntityStateServiceHandler.h>
+#include <Services/SetSimulationStateServiceHandler.h>
+#include <Services/SpawnEntityServiceHandler.h>
+#include <Services/StepSimulationServiceHandler.h>
+
 #include "Mocks/SimulationEntityManagerMock.h"
 #include "Mocks/SimulationFeaturesAggregatorRequestsHandlerMock.h"
 #include "Mocks/SimulationManagerMock.h"
+
 #include <QApplication>
-#include <ROS2/ROS2Bus.h>
-#include <gtest/gtest.h>
-#include <memory>
+
 #include <rclcpp/publisher.hpp>
 #include <rclcpp/rclcpp.hpp>
 #include <rclcpp_action/create_client.hpp>
 #include <simulation_interfaces/action/simulate_steps.hpp>
 #include <simulation_interfaces/msg/simulator_features.hpp>
 #include <std_msgs/msg/string.hpp>
+
+#include <gtest/gtest.h>
+#include <memory>
 #include <string>
 #include <string_view>
 #include <vector>

+ 9 - 5
Gems/SimulationInterfaces/gem.json

@@ -7,22 +7,26 @@
     "origin": "RobotecAI",
     "origin_url": "https://robotec.ai",
     "type": "Code",
-    "summary": "This gem provides C++ API for simulation interfaces.",
+    "summary": "This gem provides ROS 2 and C++ API for simulation interfaces.",
     "canonical_tags": [
         "Gem"
     ],
     "user_tags": [
-        "SimulationInterfaces", "ROS2", "ROS 2"
+        "SimulationInterfaces",
+        "ROS2",
+        "ROS 2"
     ],
     "platforms": [
         ""
     ],
     "icon_path": "preview.png",
-    "requirements": "",
+    "requirements": "Requires ROS 2 Gem",
     "documentation_url": "",
-    "dependencies": ["ROS2"],
+    "dependencies": [
+        "ROS2>=3.3.0"
+    ],
     "repo_uri": "",
     "compatible_engines": [],
     "engine_api_dependencies": [],
     "restricted": "SimulationInterfaces"
-}
+}