rclUE
|
Class implementing ROS2 node. More...
#include "Components/ActorComponent.h"
#include "Containers/Map.h"
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Actions/ROS2GenericAction.h"
#include "Msgs/ROS2GenericMsg.h"
#include "ROS2Support.h"
#include "Srvs/ROS2GenericSrv.h"
#include "ROS2NodeComponent.generated.h"
Go to the source code of this file.
Classes | |
class | UROS2NodeComponent |
Class implementing ROS2 node. More... | |
Macros | |
#define | ROS2_CREATE_LOOP_PUBLISHER( InROS2Node, InUserObject, InTopicName, InPublisherClass, InMsgClass, InPubFrequency, InCallback, OutPublisher) |
Create #FTopicCallback and call UROS2NodeComponent::CreateLoopPublisher. More... | |
#define | ROS2_CREATE_LOOP_PUBLISHER_WITH_QOS( InROS2Node, InUserObject, InTopicName, InPublisherClass, InMsgClass, InPubFrequency, InCallback, InQoS, OutPublisher) |
Create #FTopicCallback and call UROS2NodeComponent::CreateLoopPublisher. More... | |
#define | ROS2_CREATE_SUBSCRIBER(InROS2Node, InUserObject, InTopicName, InMsgClass, InCallback) |
Create #FsSubscriptionCallback and call UROS2NodeComponent::CreateSubscriber. More... | |
#define | ROS2_CREATE_SUBSCRIBERW_WITH_QOS(InROS2Node, InUserObject, InTopicName, InMsgClass, InCallback, InQoS) |
Create #FsSubscriptionCallback and call #UROS2NodeComponent::CreateSubscriberWithQoS. More... | |
#define | ROS2_CREATE_SERVICE_CLIENT(InROS2Node, InUserObject, InServiceName, InSrvClass, InRequestCallback, OutClient) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceClient. More... | |
#define | ROS2_CREATE_SERVICE_CLIENT_WITH_QOS( InROS2Node, InUserObject, InServiceName, InSrvClass, InRequestCallback, InQoS, OutClient) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceClient. More... | |
#define | ROS2_CREATE_SERVICE_SERVER(InROS2Node, InUserObject, InServiceName, InSrvClass, InResponseCallback) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceServer. More... | |
#define | ROS2_CREATE_SERVICE_SERVER_WITH_QOS(InROS2Node, InUserObject, InServiceName, InSrvClass, InQoS, InResponseCallback) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceServer. More... | |
#define | ROS2_CREATE_ACTION_CLIENT(InROS2Node, InUserObject, InActionName, InActionClass, InGoalResponseDelegate, InResultResponseDelegate, InFeedbackDelegate, InCancelResponseDelegate, OutClient) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionClient. More... | |
#define | ROS2_CREATE_ACTION_CLIENT_WITH_QOS(InROS2Node, InUserObject, InActionName, InActionClass, InGoalResponseDelegate, InResultResponseDelegate, InFeedbackDelegate, InCancelResponseDelegate, InGoalQoS, InResultQoS, InFeedbackQoS, InCancelQoS, OutClient) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionClient. More... | |
#define | ROS2_CREATE_ACTION_SERVER( InROS2Node, InUserObject, InActionName, InActionClass, InGoalDelegate, InResultDelegate, InCancelDelegate, OutServer) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionServer. More... | |
#define | ROS2_CREATE_ACTION_SERVER_WITH_QOS(InROS2Node, InUserObject, InActionName, InActionClass, InGoalDelegate, InResultDelegate, InCancelDelegate, InGoalQoS, InResultQoS, InFeedbackQoS, InCancelQoS, OutServer) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionServer. More... | |
#define | IS_ROS2NODE_INITED(InNode, InName, OutRes) |
Check UROS2NodeComponent is initialized or not. More... | |
Functions | |
DECLARE_DYNAMIC_DELEGATE_OneParam (FSubscriptionCallback, const UROS2GenericMsg *, InMessage) | |
BP requires a custom-made callback thus it must be Dynamic. | |
Class implementing ROS2 node.
This class also handles tasks performed by the executor in rclc.
Additionally, helper structs FSubscription and FService are defined here as they are considered components of the node and not
additional distinct entities Publishers, subscribers, services, service clients, action servers and action clients should
register to the node with the appropriate methods (Add*).
#define IS_ROS2NODE_INITED | ( | InNode, | |
InName, | |||
OutRes | |||
) |
Check UROS2NodeComponent is initialized or not.
InNode | UROS2NodeComponent |
InName | Node name. Used only for logging. |
OutRes | bool result. true if initialized, false otherwise. |
#define ROS2_CREATE_ACTION_CLIENT | ( | InROS2Node, | |
InUserObject, | |||
InActionName, | |||
InActionClass, | |||
InGoalResponseDelegate, | |||
InResultResponseDelegate, | |||
InFeedbackDelegate, | |||
InCancelResponseDelegate, | |||
OutClient | |||
) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionClient.
FActionCallback is of dynamic delegate type to be serializable for BP use
FActionCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InActionName | pass to UROS2NodeComponent::CreateActionClient |
InActionClass | pass to UROS2NodeComponent::CreateActionClient |
InGoalResponseDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionClient |
InResultResponseDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionClient |
InFeedbackDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionClient |
InCancelResponseDelegate | convert to #FSimpleCallback and pass to UROS2NodeComponent::CreateActionClient |
OutClient | return value of UROS2NodeComponent::CreateActionClient |
#define ROS2_CREATE_ACTION_CLIENT_WITH_QOS | ( | InROS2Node, | |
InUserObject, | |||
InActionName, | |||
InActionClass, | |||
InGoalResponseDelegate, | |||
InResultResponseDelegate, | |||
InFeedbackDelegate, | |||
InCancelResponseDelegate, | |||
InGoalQoS, | |||
InResultQoS, | |||
InFeedbackQoS, | |||
InCancelQoS, | |||
OutClient | |||
) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionClient.
FActionCallback is of dynamic delegate type to be serializable for BP use
FActionCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InActionName | pass to UROS2NodeComponent::CreateActionClient |
InActionClass | pass to UROS2NodeComponent::CreateActionClient |
InGoalResponseDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionClient |
InResultResponseDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionClient |
InFeedbackDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionClient |
InCancelResponseDelegate | convert to #FSimpleCallback and pass to UROS2NodeComponent::CreateActionClient |
InGoalQoS | pass to UROS2NodeComponent::CreateActionClient |
InResultQoS | pass to UROS2NodeComponent::CreateActionClient |
InFeedbackQoS | pass to UROS2NodeComponent::CreateActionClient |
InCancelQoS | pass to UROS2NodeComponent::CreateActionClient |
OutClient | return value of UROS2NodeComponent::CreateActionClient |
#define ROS2_CREATE_ACTION_SERVER | ( | InROS2Node, | |
InUserObject, | |||
InActionName, | |||
InActionClass, | |||
InGoalDelegate, | |||
InResultDelegate, | |||
InCancelDelegate, | |||
OutServer | |||
) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionServer.
FActionCallback is of dynamic delegate type to be serializable for BP use
FActionCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InActionName | pass to UROS2NodeComponent::CreateActionServer |
InActionClass | pass to UROS2NodeComponent::CreateActionServer |
InGoalDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionServer |
InResultDelegate | convert to #FSimpleCallback and pass to UROS2NodeComponent::CreateActionServer |
InCancelDelegate | convert to #FSimpleCallback and pass to UROS2NodeComponent::CreateActionServer |
OutServer | return value of UROS2NodeComponent::CreateActionServer |
#define ROS2_CREATE_ACTION_SERVER_WITH_QOS | ( | InROS2Node, | |
InUserObject, | |||
InActionName, | |||
InActionClass, | |||
InGoalDelegate, | |||
InResultDelegate, | |||
InCancelDelegate, | |||
InGoalQoS, | |||
InResultQoS, | |||
InFeedbackQoS, | |||
InCancelQoS, | |||
OutServer | |||
) |
Create #FActionCallback and call UROS2NodeComponent::CreateActionServer.
FActionCallback is of dynamic delegate type to be serializable for BP use
FActionCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InActionName | pass to UROS2NodeComponent::CreateActionServer |
InActionClass | pass to UROS2NodeComponent::CreateActionServer |
InGoalDelegate | convert to #FActionCallback and pass to UROS2NodeComponent::CreateActionServer |
InResultDelegate | convert to #FSimpleCallback and pass to UROS2NodeComponent::CreateActionServer |
InCancelDelegate | convert to #FSimpleCallback and pass to UROS2NodeComponent::CreateActionServer |
InGoalQoS | pass to UROS2NodeComponent::CreateActionServer |
InResultQoS | pass to UROS2NodeComponent::CreateActionServer |
InFeedbackQoS | pass to UROS2NodeComponent::CreateActionServer |
InCancelQoS | pass to UROS2NodeComponent::CreateActionServer |
OutServer | return value of UROS2NodeComponent::CreateActionServer |
#define ROS2_CREATE_LOOP_PUBLISHER | ( | InROS2Node, | |
InUserObject, | |||
InTopicName, | |||
InPublisherClass, | |||
InMsgClass, | |||
InPubFrequency, | |||
InCallback, | |||
OutPublisher | |||
) |
Create #FTopicCallback and call UROS2NodeComponent::CreateLoopPublisher.
FTopicCallback is of dynamic delegate type to be serializable for BP use
FTopicCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InTopicName | pass to UROS2NodeComponent::CreateLoopPublisher |
InPublisherClass | pass to UROS2NodeComponent::CreateLoopPublisher |
InMsgClass | pass to UROS2NodeComponent::CreateLoopPublisher |
InPubFrequency | pass to UROS2NodeComponent::CreateLoopPublisher |
InCallback | convert to #FTopicCallback and pass to UROS2NodeComponent::CreateLoopPublisher |
OutPublisher | return value of UROS2NodeComponent::CreateLoopPublisher |
#define ROS2_CREATE_LOOP_PUBLISHER_WITH_QOS | ( | InROS2Node, | |
InUserObject, | |||
InTopicName, | |||
InPublisherClass, | |||
InMsgClass, | |||
InPubFrequency, | |||
InCallback, | |||
InQoS, | |||
OutPublisher | |||
) |
Create #FTopicCallback and call UROS2NodeComponent::CreateLoopPublisher.
FTopicCallback is of dynamic delegate type to be serializable for BP use
FTopicCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InTopicName | pass to UROS2NodeComponent::CreateLoopPublisher |
InPublisherClass | pass to UROS2NodeComponent::CreateLoopPublisher |
InMsgClass | pass to UROS2NodeComponent::CreateLoopPublisher |
InPubFrequency | pass to UROS2NodeComponent::CreateLoopPublisher |
InCallback | convert to #FTopicCallback and pass to UROS2NodeComponent::CreateLoopPublisher |
InQoS | pass to UROS2NodeComponent::CreateLoopPublisher |
OutPublisher | return value of UROS2NodeComponent::CreateLoopPublisher |
#define ROS2_CREATE_SERVICE_CLIENT | ( | InROS2Node, | |
InUserObject, | |||
InServiceName, | |||
InSrvClass, | |||
InRequestCallback, | |||
OutClient | |||
) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceClient.
FServiceCallback is of dynamic delegate type to be serializable for BP use
FServiceCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InServiceName | pass to UROS2NodeComponent::CreateServiceClient |
InSrvClass | pass to UROS2NodeComponent::CreateServiceClient |
InRequestCallback | convert to #FServiceCallback and pass to UROS2NodeComponent::CreateServiceClient |
OutClient | return value of UROS2NodeComponent::CreateServiceClient |
#define ROS2_CREATE_SERVICE_CLIENT_WITH_QOS | ( | InROS2Node, | |
InUserObject, | |||
InServiceName, | |||
InSrvClass, | |||
InRequestCallback, | |||
InQoS, | |||
OutClient | |||
) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceClient.
FServiceCallback is of dynamic delegate type to be serializable for BP use
FServiceCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InServiceName | pass to UROS2NodeComponent::CreateServiceClient |
InSrvClass | pass to UROS2NodeComponent::CreateServiceClient |
InRequestCallback | convert to #FServiceCallback and pass to UROS2NodeComponent::CreateServiceClient |
InQoS | pass to UROS2NodeComponent::CreateServiceClient |
OutClient | return value of UROS2NodeComponent::CreateServiceClient |
#define ROS2_CREATE_SERVICE_SERVER | ( | InROS2Node, | |
InUserObject, | |||
InServiceName, | |||
InSrvClass, | |||
InResponseCallback | |||
) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceServer.
FServiceCallback is of dynamic delegate type to be serializable for BP use
FServiceCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InServiceName | pass to UROS2NodeComponent::CreateServiceServer |
InSrvClass | pass to UROS2NodeComponent::CreateServiceServer |
InResponseCallback | convert to #FServiceCallback and pass to UROS2NodeComponent::CreateServiceServer |
#define ROS2_CREATE_SERVICE_SERVER_WITH_QOS | ( | InROS2Node, | |
InUserObject, | |||
InServiceName, | |||
InSrvClass, | |||
InQoS, | |||
InResponseCallback | |||
) |
Create #FServiceCallback and call UROS2NodeComponent::CreateServiceServer.
FServiceCallback is of dynamic delegate type to be serializable for BP use
FServiceCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InServiceName | pass to UROS2NodeComponent::CreateServiceServer |
InSrvClass | pass to UROS2NodeComponent::CreateServiceServer |
InResponseCallback | convert to #FServiceCallback and pass to UROS2NodeComponent::CreateServiceServer |
InQoS | pass to UROS2NodeComponent::CreateServiceServer |
#define ROS2_CREATE_SUBSCRIBER | ( | InROS2Node, | |
InUserObject, | |||
InTopicName, | |||
InMsgClass, | |||
InCallback | |||
) |
Create #FsSubscriptionCallback and call UROS2NodeComponent::CreateSubscriber.
FSubscriptionCallback is of dynamic delegate type to be serializable for BP use
FSubscriptionCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InTopicName | pass to UROS2NodeComponent::CreateSubscriber |
InMsgClass | pass to UROS2NodeComponent::CreateSubscriber |
InCallback | convert to #FSubscriptionCallback and pass to UROS2NodeComponent::CreateSubscriber |
#define ROS2_CREATE_SUBSCRIBERW_WITH_QOS | ( | InROS2Node, | |
InUserObject, | |||
InTopicName, | |||
InMsgClass, | |||
InCallback, | |||
InQoS | |||
) |
Create #FsSubscriptionCallback and call #UROS2NodeComponent::CreateSubscriberWithQoS.
FSubscriptionCallback is of dynamic delegate type to be serializable for BP use
FSubscriptionCallback::BindDynamic is a macro, instead of a function.
Thus InCallback can only be a direct UFUNCTION() method & cannot be used as typed param!
InROS2Node | UROS2NodeComponent |
InUserObject | Objects of InCallback |
InTopicName | pass to #UROS2NodeComponent::CreateSubscriberWithQoS |
InMsgClass | pass to #UROS2NodeComponent::CreateSubscriberWithQoS |
InCallback | convert to #FSubscriptionCallback and pass to UROS2NodeComponent::CreateSubscriber |
InQoS | pass to UROS2NodeComponent::CreateSubscriber |