ROS2ModuleInterface.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 <Camera/PostProcessing/ROS2ImageEncodingConversionComponent.h>
  12. #include <Camera/ROS2CameraSensorComponent.h>
  13. #include <Camera/ROS2CameraSystemComponent.h>
  14. #include <ContactSensor/ROS2ContactSensorComponent.h>
  15. #include <GNSS/ROS2GNSSSensorComponent.h>
  16. #include <Gripper/FingerGripperComponent.h>
  17. #include <Gripper/GripperActionServerComponent.h>
  18. #include <Gripper/VacuumGripperComponent.h>
  19. #include <Imu/ROS2ImuSensorComponent.h>
  20. #include <Lidar/ClassSegmentationConfigurationComponent.h>
  21. #include <Lidar/LidarRegistrarSystemComponent.h>
  22. #include <Lidar/ROS2Lidar2DSensorComponent.h>
  23. #include <Lidar/ROS2LidarSensorComponent.h>
  24. #include <Manipulation/Controllers/JointsArticulationControllerComponent.h>
  25. #include <Manipulation/Controllers/JointsPIDControllerComponent.h>
  26. #include <Manipulation/JointsManipulationComponent.h>
  27. #include <Manipulation/JointsPositionsComponent.h>
  28. #include <Manipulation/JointsTrajectoryComponent.h>
  29. #include <Odometry/ROS2OdometrySensorComponent.h>
  30. #include <Odometry/ROS2WheelOdometry.h>
  31. #include <ROS2/Frame/ROS2FrameComponent.h>
  32. #include <ROS2/Manipulation/MotorizedJoints/JointMotorControllerComponent.h>
  33. #include <ROS2/Manipulation/MotorizedJoints/ManualMotorControllerComponent.h>
  34. #include <ROS2/Manipulation/MotorizedJoints/PidMotorControllerComponent.h>
  35. #include <RobotControl/Controllers/AckermannController/AckermannControlComponent.h>
  36. #include <RobotControl/Controllers/RigidBodyController/RigidBodyTwistControlComponent.h>
  37. #include <RobotControl/Controllers/SkidSteeringController/SkidSteeringControlComponent.h>
  38. #include <RobotControl/ROS2RobotControlComponent.h>
  39. #include <RobotImporter/ROS2RobotImporterSystemComponent.h>
  40. #include <SimulationUtils/FollowingCameraComponent.h>
  41. #include <Spawner/ROS2SpawnPointComponent.h>
  42. #include <Spawner/ROS2SpawnerComponent.h>
  43. #include <SystemComponents/ROS2SystemComponent.h>
  44. #include <VehicleDynamics/ModelComponents/AckermannModelComponent.h>
  45. #include <VehicleDynamics/ModelComponents/SkidSteeringModelComponent.h>
  46. #include <VehicleDynamics/VehicleModelComponent.h>
  47. #include <VehicleDynamics/WheelControllerComponent.h>
  48. namespace ROS2
  49. {
  50. class ROS2ModuleInterface : public AZ::Module
  51. {
  52. public:
  53. AZ_RTTI(ROS2ModuleInterface, "{8b5567cb-1de9-49af-9cd4-9750d4abcd6b}", AZ::Module);
  54. AZ_CLASS_ALLOCATOR(ROS2ModuleInterface, AZ::SystemAllocator);
  55. ROS2ModuleInterface()
  56. {
  57. m_descriptors.insert(
  58. m_descriptors.end(),
  59. {
  60. ROS2SystemComponent::CreateDescriptor(),
  61. ROS2SystemCameraComponent::CreateDescriptor(),
  62. ROS2SensorComponentBase<TickBasedSource>::CreateDescriptor(),
  63. ROS2SensorComponentBase<PhysicsBasedSource>::CreateDescriptor(),
  64. LidarRegistrarSystemComponent::CreateDescriptor(),
  65. ROS2RobotImporterSystemComponent::CreateDescriptor(),
  66. ROS2ImuSensorComponent::CreateDescriptor(),
  67. ROS2GNSSSensorComponent::CreateDescriptor(),
  68. ROS2LidarSensorComponent::CreateDescriptor(),
  69. ROS2Lidar2DSensorComponent::CreateDescriptor(),
  70. ROS2OdometrySensorComponent::CreateDescriptor(),
  71. ROS2WheelOdometryComponent::CreateDescriptor(),
  72. ROS2FrameComponent::CreateDescriptor(),
  73. ROS2RobotControlComponent::CreateDescriptor(),
  74. ROS2CameraSensorComponent::CreateDescriptor(),
  75. ROS2ImageEncodingConversionComponent::CreateDescriptor(),
  76. AckermannControlComponent::CreateDescriptor(),
  77. RigidBodyTwistControlComponent::CreateDescriptor(),
  78. SkidSteeringControlComponent::CreateDescriptor(),
  79. ROS2CameraSensorComponent::CreateDescriptor(),
  80. ROS2SpawnerComponent::CreateDescriptor(),
  81. ROS2SpawnPointComponent::CreateDescriptor(),
  82. VehicleDynamics::AckermannVehicleModelComponent::CreateDescriptor(),
  83. VehicleDynamics::WheelControllerComponent::CreateDescriptor(),
  84. VehicleDynamics::SkidSteeringModelComponent::CreateDescriptor(),
  85. JointMotorControllerComponent::CreateDescriptor(),
  86. ManualMotorControllerComponent::CreateDescriptor(),
  87. JointsManipulationComponent::CreateDescriptor(),
  88. JointsPositionsComponent::CreateDescriptor(),
  89. JointsArticulationControllerComponent::CreateDescriptor(),
  90. JointsPIDControllerComponent::CreateDescriptor(),
  91. JointsTrajectoryComponent::CreateDescriptor(),
  92. PidMotorControllerComponent::CreateDescriptor(),
  93. GripperActionServerComponent::CreateDescriptor(),
  94. VacuumGripperComponent::CreateDescriptor(),
  95. FingerGripperComponent::CreateDescriptor(),
  96. ROS2ContactSensorComponent::CreateDescriptor(),
  97. FollowingCameraComponent::CreateDescriptor(),
  98. ClassSegmentationConfigurationComponent::CreateDescriptor(),
  99. });
  100. }
  101. AZ::ComponentTypeList GetRequiredSystemComponents() const override
  102. {
  103. return AZ::ComponentTypeList{
  104. azrtti_typeid<ROS2SystemComponent>(),
  105. azrtti_typeid<ROS2SystemCameraComponent>(),
  106. azrtti_typeid<LidarRegistrarSystemComponent>(),
  107. azrtti_typeid<ROS2RobotImporterSystemComponent>(),
  108. };
  109. }
  110. };
  111. } // namespace ROS2