ROS2ModuleInterface.h 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <AzCore/Memory/SystemAllocator.h>
  10. #include <AzCore/Module/Module.h>
  11. #include <Gripper/FingerGripperComponent.h>
  12. #include <Gripper/GripperActionServerComponent.h>
  13. #include <Gripper/VacuumGripperComponent.h>
  14. #include <Manipulation/Controllers/JointsArticulationControllerComponent.h>
  15. #include <Manipulation/Controllers/JointsPIDControllerComponent.h>
  16. #include <Manipulation/JointsManipulationComponent.h>
  17. #include <Manipulation/JointsPositionsComponent.h>
  18. #include <Manipulation/JointsTrajectoryComponent.h>
  19. #include <ROS2/Frame/ROS2FrameComponent.h>
  20. #include <ROS2/Manipulation/MotorizedJoints/JointMotorControllerComponent.h>
  21. #include <ROS2/Manipulation/MotorizedJoints/ManualMotorControllerComponent.h>
  22. #include <ROS2/Manipulation/MotorizedJoints/PidMotorControllerComponent.h>
  23. #include <RobotControl/Controllers/AckermannController/AckermannControlComponent.h>
  24. #include <RobotControl/Controllers/RigidBodyController/RigidBodyTwistControlComponent.h>
  25. #include <RobotControl/Controllers/SkidSteeringController/SkidSteeringControlComponent.h>
  26. #include <RobotControl/ROS2RobotControlComponent.h>
  27. #include <RobotImporter/ROS2RobotImporterSystemComponent.h>
  28. #include <SimulationUtils/FollowingCameraComponent.h>
  29. #include <Spawner/ROS2SpawnPointComponent.h>
  30. #include <Spawner/ROS2SpawnerComponent.h>
  31. #include <SystemComponents/ROS2SystemComponent.h>
  32. #include <VehicleDynamics/ModelComponents/AckermannModelComponent.h>
  33. #include <VehicleDynamics/ModelComponents/SkidSteeringModelComponent.h>
  34. #include <VehicleDynamics/VehicleModelComponent.h>
  35. #include <VehicleDynamics/WheelControllerComponent.h>
  36. namespace ROS2
  37. {
  38. class ROS2ModuleInterface : public AZ::Module
  39. {
  40. public:
  41. AZ_RTTI(ROS2ModuleInterface, "{8b5567cb-1de9-49af-9cd4-9750d4abcd6b}", AZ::Module);
  42. AZ_CLASS_ALLOCATOR(ROS2ModuleInterface, AZ::SystemAllocator);
  43. ROS2ModuleInterface()
  44. {
  45. m_descriptors.insert(
  46. m_descriptors.end(),
  47. {
  48. ROS2SystemComponent::CreateDescriptor(),
  49. ROS2RobotImporterSystemComponent::CreateDescriptor(),
  50. ROS2FrameComponent::CreateDescriptor(),
  51. ROS2RobotControlComponent::CreateDescriptor(),
  52. AckermannControlComponent::CreateDescriptor(),
  53. RigidBodyTwistControlComponent::CreateDescriptor(),
  54. SkidSteeringControlComponent::CreateDescriptor(),
  55. ROS2SpawnerComponent::CreateDescriptor(),
  56. ROS2SpawnPointComponent::CreateDescriptor(),
  57. VehicleDynamics::AckermannVehicleModelComponent::CreateDescriptor(),
  58. VehicleDynamics::WheelControllerComponent::CreateDescriptor(),
  59. VehicleDynamics::SkidSteeringModelComponent::CreateDescriptor(),
  60. JointMotorControllerComponent::CreateDescriptor(),
  61. ManualMotorControllerComponent::CreateDescriptor(),
  62. JointsManipulationComponent::CreateDescriptor(),
  63. JointsPositionsComponent::CreateDescriptor(),
  64. JointsArticulationControllerComponent::CreateDescriptor(),
  65. JointsPIDControllerComponent::CreateDescriptor(),
  66. JointsTrajectoryComponent::CreateDescriptor(),
  67. PidMotorControllerComponent::CreateDescriptor(),
  68. GripperActionServerComponent::CreateDescriptor(),
  69. VacuumGripperComponent::CreateDescriptor(),
  70. FingerGripperComponent::CreateDescriptor(),
  71. FollowingCameraComponent::CreateDescriptor(),
  72. });
  73. }
  74. AZ::ComponentTypeList GetRequiredSystemComponents() const override
  75. {
  76. return AZ::ComponentTypeList{
  77. azrtti_typeid<ROS2SystemComponent>(),
  78. azrtti_typeid<ROS2RobotImporterSystemComponent>(),
  79. };
  80. }
  81. };
  82. } // namespace ROS2