ROS 2 rclcpp + rcl - humble
humble
ROS 2 C++ Client Library with ROS Client Library
|
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types. More...
Classes | |
struct | AnyExecutable |
class | Service |
class | AnyServiceCallback |
class | AnySubscriptionCallback |
class | CallbackGroup |
class | ClientBase |
class | Client |
class | JumpHandler |
class | Clock |
class | ContextAlreadyInitialized |
Thrown when init is called on an already initialized context. More... | |
class | ShutdownCallbackHandle |
class | Context |
Context which encapsulates shared state between nodes and other similar entities. More... | |
class | Duration |
class | Event |
class | Executor |
Coordinate the order and timing of available communication tasks. More... | |
struct | ExecutorOptions |
Options to be passed to the executor constructor. More... | |
class | GenericPublisher |
Publisher for serialized messages whose type is not known at compile time. More... | |
class | GenericSubscription |
Subscription for serialized messages whose type is not known at compile time. More... | |
class | GuardCondition |
A condition that can be waited on in a single wait set and asynchronously triggered. More... | |
class | InitOptions |
Encapsulation of options for initializing rclcpp. More... | |
struct | is_ros_compatible_type |
class | LoanedMessage |
class | Logger |
class | MessageInfo |
Additional meta data about messages taken from subscriptions. More... | |
class | NetworkFlowEndpoint |
class | Node |
Node is the single point of entry for creating publishers and subscribers. More... | |
class | TopicEndpointInfo |
class | NodeOptions |
Encapsulation of options for node initialization. More... | |
class | Parameter |
Structure to store an arbitrary parameter with templated get/set methods. More... | |
class | AsyncParametersClient |
class | SyncParametersClient |
struct | ParameterCallbackHandle |
struct | ParameterEventCallbackHandle |
class | ParameterEventHandler |
A class used to "handle" (monitor and respond to) changes to parameters. More... | |
class | ParameterEventsFilter |
class | ParameterService |
class | ParameterTypeException |
Indicate the parameter type does not match the expected type. More... | |
class | ParameterValue |
Store the type and value of a parameter. More... | |
class | Publisher |
A publisher publishes messages of any type to a topic. More... | |
class | PublisherBase |
struct | PublisherFactory |
Factory with functions used to create a MessageT specific PublisherT. More... | |
struct | PublisherOptionsBase |
Non-templated part of PublisherOptionsWithAllocator<Allocator>. More... | |
struct | PublisherOptionsWithAllocator |
Structure containing optional configuration for Publishers. More... | |
struct | QoSInitialization |
QoS initialization values, cannot be created directly, use KeepAll or KeepLast instead. More... | |
struct | KeepAll |
Use to initialize the QoS with the keep_all history setting. More... | |
struct | KeepLast |
Use to initialize the QoS with the keep_last history setting and the given depth. More... | |
class | QoS |
Encapsulation of Quality of Service settings. More... | |
struct | QoSCheckCompatibleResult |
Result type for checking QoS compatibility. More... | |
class | ClockQoS |
class | SensorDataQoS |
class | ParametersQoS |
class | ServicesQoS |
class | ParameterEventsQoS |
class | RosoutQoS |
class | SystemDefaultsQoS |
struct | PublisherEventCallbacks |
Contains callbacks for various types of events a Publisher can receive from the middleware. More... | |
struct | SubscriptionEventCallbacks |
Contains callbacks for non-message events that a Subscription can receive from the middleware. More... | |
class | UnsupportedEventTypeException |
class | QOSEventHandlerBase |
class | QOSEventHandler |
class | QosOverridingOptions |
Options that are passed in subscription/publisher constructor to specify QoSConfigurability. More... | |
class | RateBase |
class | GenericRate |
struct | ScopeExit |
class | SerializationBase |
Interface to (de)serialize a message. More... | |
class | Serialization |
Default implementation to (de)serialize a message by using rmw_(de)serialize. More... | |
class | SerializedMessage |
Object oriented version of rcl_serialized_message_t with destructor to avoid memory leaks. More... | |
class | ServiceBase |
class | Subscription |
Subscription implementation, templated on the type of message this subscription receives. More... | |
class | SubscriptionBase |
struct | ContentFilterOptions |
Options to configure content filtered topic in the subscription. More... | |
struct | SubscriptionFactory |
Factory containing a function used to create a Subscription<MessageT>. More... | |
struct | SubscriptionOptionsBase |
Non-template base class for subscription options. More... | |
struct | SubscriptionOptionsWithAllocator |
Structure containing optional configuration for Subscriptions. More... | |
class | SubscriptionWaitSetMask |
Options used to determine what parts of a subscription get added to or removed from a wait set. More... | |
class | Time |
class | TimeSource |
class | TimerBase |
class | GenericTimer |
Generic timer. Periodically executes a user-specified callback. More... | |
class | WallTimer |
struct | TypeAdapter |
Template structure used to adapt custom, user-defined types to ROS types. More... | |
struct | is_type_adapter |
Helper template to determine if a type is a TypeAdapter, false specialization. More... | |
struct | is_type_adapter< TypeAdapter< Ts... > > |
Helper template to determine if a type is a TypeAdapter, true specialization. More... | |
struct | TypeAdapter< T, void, std::enable_if_t< is_type_adapter< T >::value > > |
Identity specialization for TypeAdapter. More... | |
struct | adapt_type |
Template metafunction that can make the type being adapted explicit. More... | |
struct | ImplicitTypeAdapter |
Implicit type adapter used as a short hand way to create something with just the custom type. More... | |
struct | TypeAdapter< T, void, std::enable_if_t< ImplicitTypeAdapter< T >::is_specialized::value > > |
Specialization of TypeAdapter for ImplicitTypeAdapter. More... | |
class | WaitResult |
Interface for introspecting a wait set after waiting on it. More... | |
class | WaitSetTemplate |
Encapsulates sets of waitable items which can be waited on as a group. More... | |
class | Waitable |
class | WeakContextsWrapper |
Class to manage vector of weak pointers to all created contexts. More... | |
class | SignalHandler |
Responsible for managing the SIGINT/SIGTERM signal handling. More... | |
class | ClocksState |
Typedefs | |
using | OnShutdownCallbackHandle = ShutdownCallbackHandle |
using | PreShutdownCallbackHandle = ShutdownCallbackHandle |
typedef std::map< rclcpp::CallbackGroup::WeakPtr, rclcpp::node_interfaces::NodeBaseInterface::WeakPtr, std::owner_less< rclcpp::CallbackGroup::WeakPtr > > | WeakCallbackGroupsToNodesMap |
using | ParameterMap = std::unordered_map< std::string, std::vector< Parameter > > |
A map of fully qualified node names to a list of parameters. | |
using | PublisherOptions = PublisherOptionsWithAllocator< std::allocator< void > > |
using | QOSDeadlineRequestedInfo = rmw_requested_deadline_missed_status_t |
using | QOSDeadlineOfferedInfo = rmw_offered_deadline_missed_status_t |
using | QOSLivelinessChangedInfo = rmw_liveliness_changed_status_t |
using | QOSLivelinessLostInfo = rmw_liveliness_lost_status_t |
using | QOSMessageLostInfo = rmw_message_lost_status_t |
using | QOSOfferedIncompatibleQoSInfo = rmw_offered_qos_incompatible_event_status_t |
using | QOSRequestedIncompatibleQoSInfo = rmw_requested_qos_incompatible_event_status_t |
using | QOSDeadlineRequestedCallbackType = std::function< void(QOSDeadlineRequestedInfo &)> |
using | QOSDeadlineOfferedCallbackType = std::function< void(QOSDeadlineOfferedInfo &)> |
using | QOSLivelinessChangedCallbackType = std::function< void(QOSLivelinessChangedInfo &)> |
using | QOSLivelinessLostCallbackType = std::function< void(QOSLivelinessLostInfo &)> |
using | QOSMessageLostCallbackType = std::function< void(QOSMessageLostInfo &)> |
using | QOSOfferedIncompatibleQoSCallbackType = std::function< void(QOSOfferedIncompatibleQoSInfo &)> |
using | QOSRequestedIncompatibleQoSCallbackType = std::function< void(QOSRequestedIncompatibleQoSInfo &)> |
using | QosCallbackResult = rcl_interfaces::msg::SetParametersResult |
using | QosCallback = std::function< QosCallbackResult(const rclcpp::QoS &)> |
using | Rate = GenericRate< std::chrono::system_clock > |
using | WallRate = GenericRate< std::chrono::steady_clock > |
using | SubscriptionOptions = SubscriptionOptionsWithAllocator< std::allocator< void > > |
using | VoidCallbackType = std::function< void()> |
using | TimerCallbackType = std::function< void(TimerBase &)> |
using | WaitSet = rclcpp::WaitSetTemplate< rclcpp::wait_set_policies::SequentialSynchronization, rclcpp::wait_set_policies::DynamicStorage > |
Most common user configuration of a WaitSet, which is dynamic but not thread-safe. More... | |
template<std::size_t NumberOfSubscriptions, std::size_t NumberOfGuardCondtions, std::size_t NumberOfTimers, std::size_t NumberOfClients, std::size_t NumberOfServices, std::size_t NumberOfWaitables> | |
using | StaticWaitSet = rclcpp::WaitSetTemplate< rclcpp::wait_set_policies::SequentialSynchronization, rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables > > |
WaitSet configuration which does not allow changes after construction. More... | |
using | ThreadSafeWaitSet = rclcpp::WaitSetTemplate< rclcpp::wait_set_policies::ThreadSafeSynchronization, rclcpp::wait_set_policies::DynamicStorage > |
Like WaitSet, this configuration is dynamic, but is also thread-safe. More... | |
Enumerations | |
enum class | CallbackGroupType { MutuallyExclusive , Reentrant } |
enum class | FutureReturnCode { SUCCESS , INTERRUPTED , TIMEOUT } |
Return codes to be used with spin_until_future_complete. More... | |
enum class | IntraProcessBufferType { SharedPtr , UniquePtr , CallbackDefault } |
enum class | IntraProcessSetting { Enable , Disable , NodeDefault } |
Used as argument in create_publisher and create_subscriber. More... | |
enum class | EndpointType { Invalid = RMW_ENDPOINT_INVALID , Publisher = RMW_ENDPOINT_PUBLISHER , Subscription = RMW_ENDPOINT_SUBSCRIPTION } |
enum | ParameterType : uint8_t { PARAMETER_NOT_SET = rcl_interfaces::msg::ParameterType::PARAMETER_NOT_SET , PARAMETER_BOOL = rcl_interfaces::msg::ParameterType::PARAMETER_BOOL , PARAMETER_INTEGER = rcl_interfaces::msg::ParameterType::PARAMETER_INTEGER , PARAMETER_DOUBLE = rcl_interfaces::msg::ParameterType::PARAMETER_DOUBLE , PARAMETER_STRING = rcl_interfaces::msg::ParameterType::PARAMETER_STRING , PARAMETER_BYTE_ARRAY = rcl_interfaces::msg::ParameterType::PARAMETER_BYTE_ARRAY , PARAMETER_BOOL_ARRAY = rcl_interfaces::msg::ParameterType::PARAMETER_BOOL_ARRAY , PARAMETER_INTEGER_ARRAY = rcl_interfaces::msg::ParameterType::PARAMETER_INTEGER_ARRAY , PARAMETER_DOUBLE_ARRAY = rcl_interfaces::msg::ParameterType::PARAMETER_DOUBLE_ARRAY , PARAMETER_STRING_ARRAY = rcl_interfaces::msg::ParameterType::PARAMETER_STRING_ARRAY } |
enum class | HistoryPolicy { KeepLast = RMW_QOS_POLICY_HISTORY_KEEP_LAST , KeepAll = RMW_QOS_POLICY_HISTORY_KEEP_ALL , SystemDefault = RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT , Unknown = RMW_QOS_POLICY_HISTORY_UNKNOWN } |
enum class | ReliabilityPolicy { BestEffort = RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT , Reliable = RMW_QOS_POLICY_RELIABILITY_RELIABLE , SystemDefault = RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT , Unknown = RMW_QOS_POLICY_RELIABILITY_UNKNOWN } |
enum class | DurabilityPolicy { Volatile = RMW_QOS_POLICY_DURABILITY_VOLATILE , TransientLocal = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL , SystemDefault = RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT , Unknown = RMW_QOS_POLICY_DURABILITY_UNKNOWN } |
enum class | LivelinessPolicy { Automatic = RMW_QOS_POLICY_LIVELINESS_AUTOMATIC , ManualByTopic = RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC , SystemDefault = RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT , Unknown = RMW_QOS_POLICY_LIVELINESS_UNKNOWN } |
enum class | QoSCompatibility { Ok = RMW_QOS_COMPATIBILITY_OK , Warning = RMW_QOS_COMPATIBILITY_WARNING , Error = RMW_QOS_COMPATIBILITY_ERROR } |
enum class | TopicStatisticsState { Enable , Disable , NodeDefault } |
enum class | SignalHandlerOptions { All , SigInt , SigTerm , None } |
Option to indicate which signal handlers rclcpp should install. More... | |
Functions | |
RCLCPP_PUBLIC std::vector< Context::SharedPtr > | get_contexts () |
Return a copy of the list of context shared pointers. More... | |
template<typename ServiceT > | |
rclcpp::Client< ServiceT >::SharedPtr | create_client (std::shared_ptr< node_interfaces::NodeBaseInterface > node_base, std::shared_ptr< node_interfaces::NodeGraphInterface > node_graph, std::shared_ptr< node_interfaces::NodeServicesInterface > node_services, const std::string &service_name, const rmw_qos_profile_t &qos_profile, rclcpp::CallbackGroup::SharedPtr group) |
template<typename AllocatorT = std::allocator<void>> | |
std::shared_ptr< GenericPublisher > | create_generic_publisher (rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr topics_interface, const std::string &topic_name, const std::string &topic_type, const rclcpp::QoS &qos, const rclcpp::PublisherOptionsWithAllocator< AllocatorT > &options=(rclcpp::PublisherOptionsWithAllocator< AllocatorT >())) |
Create and return a GenericPublisher. More... | |
template<typename AllocatorT = std::allocator<void>> | |
std::shared_ptr< GenericSubscription > | create_generic_subscription (rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr topics_interface, const std::string &topic_name, const std::string &topic_type, const rclcpp::QoS &qos, std::function< void(std::shared_ptr< rclcpp::SerializedMessage >)> callback, const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > &options=(rclcpp::SubscriptionOptionsWithAllocator< AllocatorT >())) |
Create and return a GenericSubscription. More... | |
template<typename MessageT , typename AllocatorT = std::allocator<void>, typename PublisherT = rclcpp::Publisher<MessageT, AllocatorT>, typename NodeT > | |
std::shared_ptr< PublisherT > | create_publisher (NodeT &&node, const std::string &topic_name, const rclcpp::QoS &qos, const rclcpp::PublisherOptionsWithAllocator< AllocatorT > &options=(rclcpp::PublisherOptionsWithAllocator< AllocatorT >())) |
Create and return a publisher of the given MessageT type. More... | |
template<typename MessageT , typename AllocatorT = std::allocator<void>, typename PublisherT = rclcpp::Publisher<MessageT, AllocatorT>> | |
std::shared_ptr< PublisherT > | create_publisher (rclcpp::node_interfaces::NodeParametersInterface::SharedPtr &node_parameters, rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr &node_topics, const std::string &topic_name, const rclcpp::QoS &qos, const rclcpp::PublisherOptionsWithAllocator< AllocatorT > &options=(rclcpp::PublisherOptionsWithAllocator< AllocatorT >())) |
Create and return a publisher of the given MessageT type. | |
template<typename ServiceT , typename CallbackT > | |
rclcpp::Service< ServiceT >::SharedPtr | create_service (std::shared_ptr< node_interfaces::NodeBaseInterface > node_base, std::shared_ptr< node_interfaces::NodeServicesInterface > node_services, const std::string &service_name, CallbackT &&callback, const rmw_qos_profile_t &qos_profile, rclcpp::CallbackGroup::SharedPtr group) |
template<typename MessageT , typename CallbackT , typename AllocatorT = std::allocator<void>, typename SubscriptionT = rclcpp::Subscription<MessageT, AllocatorT>, typename MessageMemoryStrategyT = typename SubscriptionT::MessageMemoryStrategyType, typename NodeT > | |
std::shared_ptr< SubscriptionT > | create_subscription (NodeT &node, const std::string &topic_name, const rclcpp::QoS &qos, CallbackT &&callback, const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > &options=(rclcpp::SubscriptionOptionsWithAllocator< AllocatorT >()), typename MessageMemoryStrategyT::SharedPtr msg_mem_strat=(MessageMemoryStrategyT::create_default())) |
Create and return a subscription of the given MessageT type. More... | |
template<typename MessageT , typename CallbackT , typename AllocatorT = std::allocator<void>, typename SubscriptionT = rclcpp::Subscription<MessageT, AllocatorT>, typename MessageMemoryStrategyT = typename SubscriptionT::MessageMemoryStrategyType> | |
std::shared_ptr< SubscriptionT > | create_subscription (rclcpp::node_interfaces::NodeParametersInterface::SharedPtr &node_parameters, rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr &node_topics, const std::string &topic_name, const rclcpp::QoS &qos, CallbackT &&callback, const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > &options=(rclcpp::SubscriptionOptionsWithAllocator< AllocatorT >()), typename MessageMemoryStrategyT::SharedPtr msg_mem_strat=(MessageMemoryStrategyT::create_default())) |
Create and return a subscription of the given MessageT type. More... | |
template<typename CallbackT > | |
rclcpp::TimerBase::SharedPtr | create_timer (std::shared_ptr< node_interfaces::NodeBaseInterface > node_base, std::shared_ptr< node_interfaces::NodeTimersInterface > node_timers, rclcpp::Clock::SharedPtr clock, rclcpp::Duration period, CallbackT &&callback, rclcpp::CallbackGroup::SharedPtr group=nullptr) |
template<typename NodeT , typename CallbackT > | |
rclcpp::TimerBase::SharedPtr | create_timer (NodeT node, rclcpp::Clock::SharedPtr clock, rclcpp::Duration period, CallbackT &&callback, rclcpp::CallbackGroup::SharedPtr group=nullptr) |
Create a timer with a given clock. | |
template<typename DurationRepT , typename DurationT , typename CallbackT > | |
rclcpp::WallTimer< CallbackT >::SharedPtr | create_wall_timer (std::chrono::duration< DurationRepT, DurationT > period, CallbackT callback, rclcpp::CallbackGroup::SharedPtr group, node_interfaces::NodeBaseInterface *node_base, node_interfaces::NodeTimersInterface *node_timers) |
Convenience method to create a timer with node resources. More... | |
RCLCPP_PUBLIC void | spin_some (rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr) |
Create a default single-threaded executor and execute any immediately available work. More... | |
RCLCPP_PUBLIC void | spin_some (rclcpp::Node::SharedPtr node_ptr) |
RCLCPP_PUBLIC void | spin (rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr) |
Create a default single-threaded executor and spin the specified node. More... | |
RCLCPP_PUBLIC void | spin (rclcpp::Node::SharedPtr node_ptr) |
template<typename FutureT , typename TimeRepT = int64_t, typename TimeT = std::milli> | |
rclcpp::FutureReturnCode | spin_until_future_complete (rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr, const FutureT &future, std::chrono::duration< TimeRepT, TimeT > timeout=std::chrono::duration< TimeRepT, TimeT >(-1)) |
template<typename NodeT = rclcpp::Node, typename FutureT , typename TimeRepT = int64_t, typename TimeT = std::milli> | |
rclcpp::FutureReturnCode | spin_until_future_complete (std::shared_ptr< NodeT > node_ptr, const FutureT &future, std::chrono::duration< TimeRepT, TimeT > timeout=std::chrono::duration< TimeRepT, TimeT >(-1)) |
RCLCPP_PUBLIC std::string | expand_topic_or_service_name (const std::string &name, const std::string &node_name, const std::string &namespace_, bool is_service=false) |
Expand a topic or service name and throw if it is not valid. More... | |
RCLCPP_PUBLIC std::ostream & | operator<< (std::ostream &os, const FutureReturnCode &future_return_code) |
Stream operator for FutureReturnCode. | |
RCLCPP_PUBLIC std::string | to_string (const FutureReturnCode &future_return_code) |
String conversion function for FutureReturnCode. | |
template<typename MessageT > | |
constexpr std::enable_if_t< rosidl_generator_traits::is_message< MessageT >::value, const rosidl_message_type_support_t & > | get_message_type_support_handle () |
template<typename AdaptedType > | |
constexpr std::enable_if_t< !rosidl_generator_traits::is_message< AdaptedType >::value &&rclcpp::TypeAdapter< AdaptedType >::is_specialized::value, const rosidl_message_type_support_t & > | get_message_type_support_handle () |
template<typename AdaptedType > | |
constexpr std::enable_if_t< !rosidl_generator_traits::is_message< AdaptedType >::value &&!TypeAdapter< AdaptedType >::is_specialized::value, const rosidl_message_type_support_t & > | get_message_type_support_handle () |
RCLCPP_PUBLIC Logger | get_logger (const std::string &name) |
Return a named logger. More... | |
RCLCPP_PUBLIC Logger | get_node_logger (const rcl_node_t *node) |
Return a named logger using an rcl_node_t. More... | |
RCLCPP_PUBLIC rcpputils::fs::path | get_logging_directory () |
Get the current logging directory. More... | |
RCLCPP_PUBLIC bool | operator== (const NetworkFlowEndpoint &left, const NetworkFlowEndpoint &right) |
Check if two NetworkFlowEndpoint instances are equal. | |
RCLCPP_PUBLIC bool | operator!= (const NetworkFlowEndpoint &left, const NetworkFlowEndpoint &right) |
Check if two NetworkFlowEndpoint instances are not equal. | |
RCLCPP_PUBLIC std::ostream & | operator<< (std::ostream &os, const NetworkFlowEndpoint &network_flow_endpoint) |
Streaming helper for NetworkFlowEndpoint. | |
RCLCPP_LOCAL std::string | extend_name_with_sub_namespace (const std::string &name, const std::string &sub_namespace) |
RCLCPP_PUBLIC std::string | _to_json_dict_entry (const Parameter ¶m) |
Return a json encoded version of the parameter intended for a dict. | |
RCLCPP_PUBLIC std::ostream & | operator<< (std::ostream &os, const rclcpp::Parameter &pv) |
RCLCPP_PUBLIC std::ostream & | operator<< (std::ostream &os, const std::vector< Parameter > ¶meters) |
RCLCPP_PUBLIC ParameterMap | parameter_map_from (const rcl_params_t *const c_params) |
RCLCPP_PUBLIC ParameterMap | parameter_map_from (const rcl_params_t *const c_params, const char *node_fqn) |
RCLCPP_PUBLIC ParameterValue | parameter_value_from (const rcl_variant_t *const c_value) |
RCLCPP_PUBLIC ParameterMap | parameter_map_from_yaml_file (const std::string &yaml_filename) |
RCLCPP_PUBLIC std::string | to_string (ParameterType type) |
Return the name of a parameter type. | |
RCLCPP_PUBLIC std::ostream & | operator<< (std::ostream &os, ParameterType type) |
RCLCPP_PUBLIC std::string | to_string (const ParameterValue &type) |
Return the value of a parameter as a string. | |
template<typename MessageT , typename AllocatorT , typename PublisherT > | |
PublisherFactory | create_publisher_factory (const rclcpp::PublisherOptionsWithAllocator< AllocatorT > &options) |
Return a PublisherFactory with functions setup for creating a PublisherT<MessageT, AllocatorT>. | |
RCLCPP_PUBLIC std::string | qos_policy_name_from_kind (rmw_qos_policy_kind_t policy_kind) |
RCLCPP_PUBLIC bool | operator== (const QoS &left, const QoS &right) |
Check if two QoS profiles are exactly equal in all policy values. | |
RCLCPP_PUBLIC bool | operator!= (const QoS &left, const QoS &right) |
RCLCPP_PUBLIC QoSCheckCompatibleResult | qos_check_compatible (const QoS &publisher_qos, const QoS &subscription_qos) |
Check if two QoS profiles are compatible. More... | |
RCLCPP_PUBLIC const char * | qos_policy_kind_to_cstr (const QosPolicyKind &qpk) |
RCLCPP_PUBLIC std::ostream & | operator<< (std::ostream &os, const QosPolicyKind &qpk) |
template<typename Callable > | |
ScopeExit< Callable > | make_scope_exit (Callable callable) |
template<typename MessageT , typename CallbackT , typename AllocatorT , typename SubscriptionT = rclcpp::Subscription<MessageT, AllocatorT>, typename MessageMemoryStrategyT = typename SubscriptionT::MessageMemoryStrategyType, typename ROSMessageType = typename SubscriptionT::ROSMessageType> | |
SubscriptionFactory | create_subscription_factory (CallbackT &&callback, const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > &options, typename MessageMemoryStrategyT::SharedPtr msg_mem_strat, std::shared_ptr< rclcpp::topic_statistics::SubscriptionTopicStatistics< ROSMessageType >> subscription_topic_stats=nullptr) |
Return a SubscriptionFactory setup to create a SubscriptionT<MessageT, AllocatorT>. More... | |
RCLCPP_PUBLIC Time | operator+ (const rclcpp::Duration &lhs, const rclcpp::Time &rhs) |
RCLCPP_PUBLIC std::shared_ptr< rcpputils::SharedLibrary > | get_typesupport_library (const std::string &type, const std::string &typesupport_identifier) |
Load the type support library for the given type. More... | |
RCLCPP_PUBLIC const rosidl_message_type_support_t * | get_typesupport_handle (const std::string &type, const std::string &typesupport_identifier, rcpputils::SharedLibrary &library) |
Extract the type support handle from the library. More... | |
RCLCPP_PUBLIC void | init (int argc, char const *const *argv, const InitOptions &init_options=InitOptions(), SignalHandlerOptions signal_handler_options=SignalHandlerOptions::All) |
Initialize communications via the rmw implementation and set up a global signal handler. More... | |
RCLCPP_PUBLIC bool | install_signal_handlers (SignalHandlerOptions signal_handler_options=SignalHandlerOptions::All) |
Install the global signal handler for rclcpp. More... | |
RCLCPP_PUBLIC bool | signal_handlers_installed () |
Return true if the signal handlers are installed, otherwise false. | |
RCLCPP_PUBLIC SignalHandlerOptions | get_current_signal_handler_options () |
Get the current signal handler options. More... | |
RCLCPP_PUBLIC bool | uninstall_signal_handlers () |
Uninstall the global signal handler for rclcpp. More... | |
RCLCPP_PUBLIC std::vector< std::string > | init_and_remove_ros_arguments (int argc, char const *const *argv, const InitOptions &init_options=InitOptions()) |
Initialize communications via the rmw implementation and set up a global signal handler. More... | |
RCLCPP_PUBLIC std::vector< std::string > | remove_ros_arguments (int argc, char const *const *argv) |
Remove ROS-specific arguments from argument vector. More... | |
RCLCPP_PUBLIC bool | ok (rclcpp::Context::SharedPtr context=nullptr) |
Check rclcpp's status. More... | |
RCLCPP_PUBLIC bool | shutdown (rclcpp::Context::SharedPtr context=nullptr, const std::string &reason="user called rclcpp::shutdown()") |
Shutdown rclcpp context, invalidating it for derived entities. More... | |
RCLCPP_PUBLIC void | on_shutdown (std::function< void()> callback, rclcpp::Context::SharedPtr context=nullptr) |
Register a function to be called when shutdown is called on the context. More... | |
RCLCPP_PUBLIC bool | sleep_for (const std::chrono::nanoseconds &nanoseconds, rclcpp::Context::SharedPtr context=nullptr) |
Use the global condition variable to block for the specified amount of time. More... | |
template<typename T > | |
bool | add_will_overflow (const T x, const T y) |
Safely check if addition will overflow. More... | |
template<typename T > | |
bool | add_will_underflow (const T x, const T y) |
Safely check if addition will underflow. More... | |
template<typename T > | |
bool | sub_will_overflow (const T x, const T y) |
Safely check if subtraction will overflow. More... | |
template<typename T > | |
bool | sub_will_underflow (const T x, const T y) |
Safely check if subtraction will underflow. More... | |
RCLCPP_PUBLIC const char * | get_c_string (const char *string_in) |
Return the given string. More... | |
RCLCPP_PUBLIC const char * | get_c_string (const std::string &string_in) |
Return the C string from the given std::string. More... | |
RCLCPP_PUBLIC std::vector< const char * > | get_c_vector_string (const std::vector< std::string > &strings_in) |
Return the std::vector of C string from the given std::vector<std::string>. More... | |
template<class MsgT , class Rep = int64_t, class Period = std::milli> | |
bool | wait_for_message (MsgT &out, std::shared_ptr< rclcpp::Subscription< MsgT >> subscription, std::shared_ptr< rclcpp::Context > context, std::chrono::duration< Rep, Period > time_to_wait=std::chrono::duration< Rep, Period >(-1)) |
Wait for the next incoming message. More... | |
template<class MsgT , class Rep = int64_t, class Period = std::milli> | |
bool | wait_for_message (MsgT &out, rclcpp::Node::SharedPtr node, const std::string &topic, std::chrono::duration< Rep, Period > time_to_wait=std::chrono::duration< Rep, Period >(-1), const rclcpp::QoS &qos=rclcpp::SystemDefaultsQoS()) |
Wait for the next incoming message. More... | |
void | bounds_check_duration_sum (int64_t lhsns, int64_t rhsns, uint64_t max) |
void | bounds_check_duration_difference (int64_t lhsns, int64_t rhsns, uint64_t max) |
void | bounds_check_duration_scale (int64_t dns, double scale, uint64_t max) |
void | copy_rcl_message (const rcl_serialized_message_t &from, rcl_serialized_message_t &to) |
bool | ok (Context::SharedPtr context) |
bool | shutdown (Context::SharedPtr context, const std::string &reason) |
void | on_shutdown (std::function< void()> callback, Context::SharedPtr context) |
bool | sleep_for (const std::chrono::nanoseconds &nanoseconds, Context::SharedPtr context) |
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
using rclcpp::StaticWaitSet = typedef rclcpp::WaitSetTemplate< rclcpp::wait_set_policies::SequentialSynchronization, rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables > > |
WaitSet configuration which does not allow changes after construction.
This wait set requires that you specify all entities at construction, and prevents you from calling the typical add and remove functions. It also requires that you specify how many of each item there will be as a template argument.
It will share ownership of the entities until destroyed, therefore it will prevent the destruction of entities so long as the wait set exists, even if the user lets their copy of the shared pointer to the entity go out of scope.
Since the wait set cannot be mutated, it does not need to be thread-safe.
Definition at line 73 of file wait_set.hpp.
using rclcpp::ThreadSafeWaitSet = typedef rclcpp::WaitSetTemplate< rclcpp::wait_set_policies::ThreadSafeSynchronization, rclcpp::wait_set_policies::DynamicStorage > |
Like WaitSet, this configuration is dynamic, but is also thread-safe.
This wait set allows you to add and remove items dynamically, and it will automatically remove items that are let out of scope each time wait() or prune_destroyed_entities() is called.
It will also ensure that adding and removing items explicitly from the wait set is done in a thread-safe way, protecting against concurrent add and deletes, as well as add and deletes during a wait(). This thread-safety comes at some overhead and the use of thread synchronization primitives.
Definition at line 99 of file wait_set.hpp.
using rclcpp::WaitSet = typedef rclcpp::WaitSetTemplate< rclcpp::wait_set_policies::SequentialSynchronization, rclcpp::wait_set_policies::DynamicStorage > |
Most common user configuration of a WaitSet, which is dynamic but not thread-safe.
This wait set allows you to add and remove items dynamically, and it will automatically remove items that are let out of scope each time wait() or prune_destroyed_entities() is called.
It will not, however, provide thread-safety for adding and removing entities while waiting.
Definition at line 45 of file wait_set.hpp.
|
strong |
Return codes to be used with spin_until_future_complete.
SUCCESS: The future is complete and can be accessed with "get" without blocking. This does not indicate that the operation succeeded; "get" may still throw an exception. INTERRUPTED: The future is not complete, spinning was interrupted by Ctrl-C or another error. TIMEOUT: Spinning timed out.
Definition at line 33 of file future_return_code.hpp.
|
strong |
Used as argument in create_publisher and create_subscriber when intra-process communication is enabled
Definition at line 23 of file intra_process_buffer_type.hpp.
|
strong |
Used as argument in create_publisher and create_subscriber.
Definition at line 22 of file intra_process_setting.hpp.
|
strong |
Option to indicate which signal handlers rclcpp should install.
Enumerator | |
---|---|
All | Install both sigint and sigterm, this is the default behavior. |
SigInt | Install only a sigint handler. |
SigTerm | Install only a sigterm handler. |
None | Do not install any signal handler. |
Definition at line 47 of file utilities.hpp.
|
strong |
Represent the state of topic statistics collector. Used as argument in create_subscriber.
Enumerator | |
---|---|
Enable | Explicitly enable topic statistics at subscription level. |
Disable | Explicitly disable topic statistics at subscription level. |
NodeDefault | Take topic statistics state from the node. |
Definition at line 23 of file topic_statistics_state.hpp.
bool rclcpp::add_will_overflow | ( | const T | x, |
const T | y | ||
) |
Safely check if addition will overflow.
The type of the operands, T, should have defined std::numeric_limits<T>::max(), >
, <
and -
operators.
[in] | x | is the first addend. |
[in] | y | is the second addend. |
T | is type of the operands. |
Definition at line 248 of file utilities.hpp.
Referenced by operator+(), rclcpp::Time::operator+(), and rclcpp::Time::operator+=().
bool rclcpp::add_will_underflow | ( | const T | x, |
const T | y | ||
) |
Safely check if addition will underflow.
The type of the operands, T, should have defined std::numeric_limits<T>::min(), >
, <
and -
operators.
[in] | x | is the first addend. |
[in] | y | is the second addend. |
T | is type of the operands. |
Definition at line 265 of file utilities.hpp.
Referenced by operator+(), rclcpp::Time::operator+(), and rclcpp::Time::operator+=().
rclcpp::Client<ServiceT>::SharedPtr rclcpp::create_client | ( | std::shared_ptr< node_interfaces::NodeBaseInterface > | node_base, |
std::shared_ptr< node_interfaces::NodeGraphInterface > | node_graph, | ||
std::shared_ptr< node_interfaces::NodeServicesInterface > | node_services, | ||
const std::string & | service_name, | ||
const rmw_qos_profile_t & | qos_profile, | ||
rclcpp::CallbackGroup::SharedPtr | group | ||
) |
Create a service client with a given type.
Definition at line 32 of file create_client.hpp.
References rcl_client_options_s::qos, and rcl_client_get_default_options().
std::shared_ptr<GenericPublisher> rclcpp::create_generic_publisher | ( | rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr | topics_interface, |
const std::string & | topic_name, | ||
const std::string & | topic_type, | ||
const rclcpp::QoS & | qos, | ||
const rclcpp::PublisherOptionsWithAllocator< AllocatorT > & | options = ( rclcpp::PublisherOptionsWithAllocator<AllocatorT>() ) |
||
) |
Create and return a GenericPublisher.
The returned pointer will never be empty, but this function can throw various exceptions, for instance when the message's package can not be found on the AMENT_PREFIX_PATH.
topics_interface | NodeTopicsInterface pointer used in parts of the setup |
topic_name | Topic name |
topic_type | Topic type |
qos | QoS settings |
options | Publisher options. Not all publisher options are currently respected, the only relevant options for this publisher are event_callbacks , use_default_callbacks , and callback_group . |
Definition at line 45 of file create_generic_publisher.hpp.
References get_typesupport_library().
Referenced by rclcpp::Node::create_generic_publisher().
std::shared_ptr<GenericSubscription> rclcpp::create_generic_subscription | ( | rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr | topics_interface, |
const std::string & | topic_name, | ||
const std::string & | topic_type, | ||
const rclcpp::QoS & | qos, | ||
std::function< void(std::shared_ptr< rclcpp::SerializedMessage >)> | callback, | ||
const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > & | options = ( rclcpp::SubscriptionOptionsWithAllocator<AllocatorT>() ) |
||
) |
Create and return a GenericSubscription.
The returned pointer will never be empty, but this function can throw various exceptions, for instance when the message's package can not be found on the AMENT_PREFIX_PATH.
topics_interface | NodeTopicsInterface pointer used in parts of the setup. |
topic_name | Topic name |
topic_type | Topic type |
qos | QoS settings |
callback | Callback for new messages of serialized form |
options | Publisher options. Not all publisher options are currently respected, the only relevant options for this publisher are event_callbacks , use_default_callbacks , and callback_group . |
Definition at line 49 of file create_generic_subscription.hpp.
References get_typesupport_library().
Referenced by rclcpp::Node::create_generic_subscription().
std::shared_ptr<PublisherT> rclcpp::create_publisher | ( | NodeT && | node, |
const std::string & | topic_name, | ||
const rclcpp::QoS & | qos, | ||
const rclcpp::PublisherOptionsWithAllocator< AllocatorT > & | options = ( rclcpp::PublisherOptionsWithAllocator<AllocatorT>() ) |
||
) |
Create and return a publisher of the given MessageT type.
The NodeT type only needs to have a method called get_node_topics_interface() which returns a shared_ptr to a NodeTopicsInterface.
In case options.qos_overriding_options
is enabling qos parameter overrides, NodeT must also have a method called get_node_parameters_interface() which returns a shared_ptr to a NodeParametersInterface.
Definition at line 94 of file create_publisher.hpp.
rclcpp::Service<ServiceT>::SharedPtr rclcpp::create_service | ( | std::shared_ptr< node_interfaces::NodeBaseInterface > | node_base, |
std::shared_ptr< node_interfaces::NodeServicesInterface > | node_services, | ||
const std::string & | service_name, | ||
CallbackT && | callback, | ||
const rmw_qos_profile_t & | qos_profile, | ||
rclcpp::CallbackGroup::SharedPtr | group | ||
) |
Create a service with a given type.
Definition at line 34 of file create_service.hpp.
References rcl_service_options_s::qos, and rcl_service_get_default_options().
std::shared_ptr<SubscriptionT> rclcpp::create_subscription | ( | NodeT & | node, |
const std::string & | topic_name, | ||
const rclcpp::QoS & | qos, | ||
CallbackT && | callback, | ||
const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > & | options = ( rclcpp::SubscriptionOptionsWithAllocator<AllocatorT>() ) , |
||
typename MessageMemoryStrategyT::SharedPtr | msg_mem_strat = ( MessageMemoryStrategyT::create_default() ) |
||
) |
Create and return a subscription of the given MessageT type.
The NodeT type only needs to have a method called get_node_topics_interface() which returns a shared_ptr to a NodeTopicsInterface, or be a NodeTopicsInterface pointer itself.
In case options.qos_overriding_options
is enabling qos parameter overrides, NodeT must also have a method called get_node_parameters_interface() which returns a shared_ptr to a NodeParametersInterface.
MessageT | |
CallbackT | |
AllocatorT | |
SubscriptionT | |
MessageMemoryStrategyT | |
NodeT |
node | |
topic_name | |
qos | |
callback | |
options | |
msg_mem_strat |
std::invalid_argument | if topic statistics is enabled and the publish period is less than or equal to zero. |
Definition at line 177 of file create_subscription.hpp.
std::shared_ptr<SubscriptionT> rclcpp::create_subscription | ( | rclcpp::node_interfaces::NodeParametersInterface::SharedPtr & | node_parameters, |
rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr & | node_topics, | ||
const std::string & | topic_name, | ||
const rclcpp::QoS & | qos, | ||
CallbackT && | callback, | ||
const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > & | options = ( rclcpp::SubscriptionOptionsWithAllocator<AllocatorT>() ) , |
||
typename MessageMemoryStrategyT::SharedPtr | msg_mem_strat = ( MessageMemoryStrategyT::create_default() ) |
||
) |
Create and return a subscription of the given MessageT type.
Definition at line 206 of file create_subscription.hpp.
SubscriptionFactory rclcpp::create_subscription_factory | ( | CallbackT && | callback, |
const rclcpp::SubscriptionOptionsWithAllocator< AllocatorT > & | options, | ||
typename MessageMemoryStrategyT::SharedPtr | msg_mem_strat, | ||
std::shared_ptr< rclcpp::topic_statistics::SubscriptionTopicStatistics< ROSMessageType >> | subscription_topic_stats = nullptr |
||
) |
Return a SubscriptionFactory setup to create a SubscriptionT<MessageT, AllocatorT>.
[in] | callback | The user-defined callback function to receive a message |
[in] | options | Additional options for the creation of the Subscription. |
[in] | msg_mem_strat | The message memory strategy to use for allocating messages. |
[in] | subscription_topic_stats | Optional stats callback for topic_statistics |
Definition at line 82 of file subscription_factory.hpp.
References rclcpp::AnySubscriptionCallback< MessageT, AllocatorT >::set().
rclcpp::TimerBase::SharedPtr rclcpp::create_timer | ( | std::shared_ptr< node_interfaces::NodeBaseInterface > | node_base, |
std::shared_ptr< node_interfaces::NodeTimersInterface > | node_timers, | ||
rclcpp::Clock::SharedPtr | clock, | ||
rclcpp::Duration | period, | ||
CallbackT && | callback, | ||
rclcpp::CallbackGroup::SharedPtr | group = nullptr |
||
) |
Create a timer with a given clock
Definition at line 36 of file create_timer.hpp.
References rclcpp::Duration::to_chrono().
Referenced by create_timer().
rclcpp::WallTimer<CallbackT>::SharedPtr rclcpp::create_wall_timer | ( | std::chrono::duration< DurationRepT, DurationT > | period, |
CallbackT | callback, | ||
rclcpp::CallbackGroup::SharedPtr | group, | ||
node_interfaces::NodeBaseInterface * | node_base, | ||
node_interfaces::NodeTimersInterface * | node_timers | ||
) |
Convenience method to create a timer with node resources.
DurationRepT | |
DurationT | |
CallbackT |
period | period to execute callback. This duration must be 0 <= period < nanoseconds::max() |
callback | callback to execute via the timer period |
group | |
node_base | |
node_timers |
std::invalid | argument if either node_base or node_timers are null, or period is negative or too large |
Definition at line 90 of file create_timer.hpp.
References rclcpp::node_interfaces::NodeTimersInterface::add_timer(), and rclcpp::node_interfaces::NodeBaseInterface::get_context().
Referenced by rclcpp::Node::create_wall_timer().
std::string rclcpp::expand_topic_or_service_name | ( | const std::string & | name, |
const std::string & | node_name, | ||
const std::string & | namespace_, | ||
bool | is_service = false |
||
) |
Expand a topic or service name and throw if it is not valid.
This function can be used to "just" validate a topic or service name too, since expanding the topic name is required to fully validate a name.
If the name is invalid, then InvalidTopicNameError is thrown or InvalidServiceNameError if is_service is true.
This function can take any form of a topic or service name, i.e. it does not have to be a fully qualified name. The node name and namespace are used to expand it if necessary while validating it.
Expansion is done with rcl_expand_topic_name. The validation is doen with rcl_validate_topic_name and rmw_validate_full_topic_name, so details about failures can be found in the documentation for those functions.
name | the topic or service name to be validated |
node_name | the name of the node associated with the name |
namespace_ | the namespace of the node associated with the name |
is_service | if true InvalidServiceNameError is thrown instead |
InvalidTopicNameError | if name is invalid and is_service is false |
InvalidServiceNameError | if name is invalid and is_service is true |
std::bad_alloc | if memory cannot be allocated |
RCLError | if an unexpect error occurs |
std::runtime_error | if the topic name is unexpectedly valid or, if the rcl name is invalid or if the rcl namespace is invalid |
Definition at line 32 of file expand_topic_or_service_name.cpp.
References rcl_expand_topic_name(), rcl_get_default_allocator, rcl_get_default_topic_name_substitutions(), RCL_RET_BAD_ALLOC, RCL_RET_ERROR, RCL_RET_INVALID_ARGUMENT, RCL_RET_NODE_INVALID_NAME, RCL_RET_NODE_INVALID_NAMESPACE, RCL_RET_OK, RCL_RET_TOPIC_NAME_INVALID, RCL_RET_UNKNOWN_SUBSTITUTION, RCL_TOPIC_NAME_VALID, rcl_topic_name_validation_result_string(), and rcl_validate_topic_name().
Referenced by rclcpp::Client< ServiceT >::Client(), rclcpp::node_interfaces::NodeGraph::count_publishers(), rclcpp::node_interfaces::NodeGraph::count_subscribers(), rclcpp::PublisherBase::PublisherBase(), rclcpp::Service< ServiceT >::Service(), and rclcpp::SubscriptionBase::SubscriptionBase().
const char * rclcpp::get_c_string | ( | const char * | string_in | ) |
Return the given string.
This function is overloaded to transform any string to C-style string.
[in] | string_in | is the string to be returned |
Definition at line 206 of file utilities.cpp.
Referenced by rclcpp::SubscriptionBase::set_content_filter(), and rclcpp::SubscriptionOptionsWithAllocator< Allocator >::to_rcl_subscription_options().
const char * rclcpp::get_c_string | ( | const std::string & | string_in | ) |
Return the C string from the given std::string.
[in] | string_in | is a std::string |
Definition at line 212 of file utilities.cpp.
std::vector< const char * > rclcpp::get_c_vector_string | ( | const std::vector< std::string > & | strings_in | ) |
Return the std::vector of C string from the given std::vector<std::string>.
[in] | strings_in | is a std::vector of std::string |
Definition at line 218 of file utilities.cpp.
Referenced by rclcpp::SubscriptionBase::set_content_filter(), and rclcpp::SubscriptionOptionsWithAllocator< Allocator >::to_rcl_subscription_options().
std::vector< Context::SharedPtr > rclcpp::get_contexts | ( | ) |
Return a copy of the list of context shared pointers.
This function is thread-safe.
Definition at line 523 of file context.cpp.
SignalHandlerOptions rclcpp::get_current_signal_handler_options | ( | ) |
Get the current signal handler options.
If no signal handler is installed, SignalHandlerOptions::None is returned.
Definition at line 59 of file utilities.cpp.
References rclcpp::SignalHandler::get_current_signal_handler_options(), and rclcpp::SignalHandler::get_global_signal_handler().
Logger rclcpp::get_logger | ( | const std::string & | name | ) |
Return a named logger.
The returned logger's name will include any naming conventions, such as a name prefix. Currently there are no such naming conventions but they may be introduced in the future.
[in] | name | the name of the logger |
Definition at line 27 of file logger.cpp.
Referenced by rclcpp::SubscriptionBase::clear_on_new_intra_process_message_callback(), rclcpp::PublisherBase::clear_on_new_qos_event_callback(), rclcpp::SubscriptionBase::clear_on_new_qos_event_callback(), rclcpp::experimental::IntraProcessManager::do_intra_process_publish(), rclcpp::node_interfaces::NodeGraph::get_client_names_and_types_by_node(), rclcpp::SubscriptionBase::get_content_filter(), get_node_logger(), rclcpp::node_interfaces::NodeGraph::get_publisher_names_and_types_by_node(), rclcpp::node_interfaces::NodeGraph::get_subscriber_names_and_types_by_node(), rclcpp::experimental::IntraProcessManager::get_subscription_count(), rclcpp::Context::init(), rclcpp::LoanedMessage< MessageT, AllocatorT >::LoanedMessage(), rclcpp::SerializedMessage::operator=(), rclcpp::SubscriptionBase::set_content_filter(), rclcpp::SubscriptionBase::set_on_new_intra_process_message_callback(), rclcpp::PublisherBase::set_on_new_qos_event_callback(), rclcpp::SubscriptionBase::set_on_new_qos_event_callback(), rclcpp::experimental::SubscriptionIntraProcessBase::set_on_ready_callback(), rclcpp::QOSEventHandlerBase::set_on_ready_callback(), rclcpp::graph_listener::GraphListener::shutdown(), rclcpp::LoanedMessage< MessageT, AllocatorT >::~LoanedMessage(), rclcpp::SerializedMessage::~SerializedMessage(), and rclcpp::SubscriptionBase::~SubscriptionBase().
rcpputils::fs::path rclcpp::get_logging_directory | ( | ) |
Get the current logging directory.
For more details of how the logging directory is determined, see rcl_logging_get_logging_directory().
rclcpp::exceptions::RCLError | if an unexpected error occurs. |
Definition at line 52 of file logger.cpp.
Logger rclcpp::get_node_logger | ( | const rcl_node_t * | node | ) |
Return a named logger using an rcl_node_t.
This is a convenience function that does error checking and returns the node logger name, or "rclcpp" if it is unable to get the node name.
[in] | node | the rcl node from which to get the logger name |
Definition at line 38 of file logger.cpp.
References get_logger(), and rcl_node_get_logger_name().
Referenced by rclcpp::PublisherBase::PublisherBase(), and rclcpp::SubscriptionBase::SubscriptionBase().
const rosidl_message_type_support_t * rclcpp::get_typesupport_handle | ( | const std::string & | type, |
const std::string & | typesupport_identifier, | ||
rcpputils::SharedLibrary & | library | ||
) |
Extract the type support handle from the library.
The library needs to match the topic type. The shared library must stay loaded for the lifetime of the result.
[in] | type | The topic type, e.g. "std_msgs/msg/String" |
[in] | typesupport_identifier | Type support identifier, typically "rosidl_typesupport_cpp" |
[in] | library | The shared type support library |
Definition at line 105 of file typesupport_helpers.cpp.
std::shared_ptr< rcpputils::SharedLibrary > rclcpp::get_typesupport_library | ( | const std::string & | type, |
const std::string & | typesupport_identifier | ||
) |
Load the type support library for the given type.
[in] | type | The topic type, e.g. "std_msgs/msg/String" |
[in] | typesupport_identifier | Type support identifier, typically "rosidl_typesupport_cpp" |
Definition at line 97 of file typesupport_helpers.cpp.
Referenced by create_generic_publisher(), and create_generic_subscription().
void rclcpp::init | ( | int | argc, |
char const *const * | argv, | ||
const InitOptions & | init_options = InitOptions() , |
||
SignalHandlerOptions | signal_handler_options = SignalHandlerOptions::All |
||
) |
Initialize communications via the rmw implementation and set up a global signal handler.
Initializes the global context which is accessible via the function rclcpp::contexts::get_global_default_context(). Also, installs the global signal handlers with the function rclcpp::install_signal_handlers().
[in] | argc | number of command-line arguments to parse. |
[in] | argv | array of command-line arguments to parse. |
[in] | init_options | initialization options to apply. |
[in] | signal_handler_options | option to indicate which signal handlers should be installed. |
Definition at line 34 of file utilities.cpp.
References install_signal_handlers().
Referenced by init_and_remove_ros_arguments().
std::vector< std::string > rclcpp::init_and_remove_ros_arguments | ( | int | argc, |
char const *const * | argv, | ||
const InitOptions & | init_options = InitOptions() |
||
) |
Initialize communications via the rmw implementation and set up a global signal handler.
Additionally removes ROS-specific arguments from the argument vector.
anything | remove_ros_arguments can throw |
Definition at line 113 of file utilities.cpp.
References init(), and rcl_get_default_allocator.
bool rclcpp::install_signal_handlers | ( | SignalHandlerOptions | signal_handler_options = SignalHandlerOptions::All | ) |
Install the global signal handler for rclcpp.
This function should only need to be run one time per process. It is implicitly run by rclcpp::init(), and therefore this function does not need to be run manually if rclcpp::init() has already been run.
The signal handler will shutdown all initialized context. It will also interrupt any blocking functions in ROS allowing them react to any changes in the state of the system (like shutdown).
This function is thread-safe.
[in] | signal_handler_options | option to indicate which signal handlers should be installed. |
Definition at line 47 of file utilities.cpp.
References rclcpp::SignalHandler::get_global_signal_handler(), and rclcpp::SignalHandler::install().
Referenced by init().
RCLCPP_PUBLIC bool rclcpp::ok | ( | rclcpp::Context::SharedPtr | context = nullptr | ) |
Check rclcpp's status.
This may return false for a context which has been shutdown, or for a context that was shutdown due to SIGINT being received by the rclcpp signal handler.
If nullptr is given for the context, then the global context is used, i.e. the context initialized by rclcpp::init().
[in] | context | Optional check for shutdown of this Context. |
Referenced by rclcpp::executors::SingleThreadedExecutor::spin(), rclcpp::executors::StaticSingleThreadedExecutor::spin(), and rclcpp::node_interfaces::NodeGraph::wait_for_graph_change().
RCLCPP_PUBLIC void rclcpp::on_shutdown | ( | std::function< void()> | callback, |
rclcpp::Context::SharedPtr | context = nullptr |
||
) |
Register a function to be called when shutdown is called on the context.
If nullptr is given for the context, then the global context is used, i.e. the context initialized by rclcpp::init().
These callbacks are called when the associated Context is shutdown with the Context::shutdown() method. When shutdown by the SIGINT handler, shutdown, and therefore these callbacks, is called asynchronously from the dedicated signal handling thread, at some point after the SIGINT signal is received.
[in] | callback | to be called when the given context is shutdown |
[in] | context | with which to associate the context |
Time rclcpp::operator+ | ( | const rclcpp::Duration & | lhs, |
const rclcpp::Time & | rhs | ||
) |
std::overflow_error | if addition leads to overflow |
Definition at line 237 of file time.cpp.
References add_will_overflow(), add_will_underflow(), rclcpp::Time::get_clock_type(), rclcpp::Duration::nanoseconds(), and rclcpp::Time::nanoseconds().
ParameterMap rclcpp::parameter_map_from | ( | const rcl_params_t *const | c_params | ) |
Convert parameters from rcl_yaml_param_parser into C++ class instances.
[in] | c_params | C structures containing parameters for multiple nodes. |
InvalidParametersException | if the rcl_params_t is inconsistent or invalid. |
Definition at line 28 of file parameter_map.cpp.
References parameter_map_from().
Referenced by parameter_map_from(), and parameter_map_from_yaml_file().
ParameterMap rclcpp::parameter_map_from | ( | const rcl_params_t *const | c_params, |
const char * | node_fqn | ||
) |
Convert parameters from rcl_yaml_param_parser into C++ class instances.
[in] | c_params | C structures containing parameters for multiple nodes. |
[in] | node_fqn | a Fully Qualified Name of node, default value is nullptr. If it's not nullptr, return the relative node parameters belonging to this node_fqn. |
InvalidParametersException | if the rcl_params_t is inconsistent or invalid. |
make sure there is a leading slash on the fully qualified node name
Definition at line 34 of file parameter_map.cpp.
References parameter_value_from().
ParameterMap rclcpp::parameter_map_from_yaml_file | ( | const std::string & | yaml_filename | ) |
Get the ParameterMap from a yaml file.
[in] | yaml_filename | full name of the yaml file. |
from | rcl error of rcl_parse_yaml_file() |
Definition at line 151 of file parameter_map.cpp.
References parameter_map_from(), and RCL_RET_ERROR.
Referenced by rclcpp::AsyncParametersClient::load_parameters().
ParameterValue rclcpp::parameter_value_from | ( | const rcl_variant_t *const | c_value | ) |
Convert parameter value from rcl_yaml_param_parser into a C++ class instance.
[in] | c_value | C structure containing a value of a parameter. |
InvalidParameterValueException | if the rcl_variant_t is inconsistent or invalid. |
Definition at line 92 of file parameter_map.cpp.
Referenced by parameter_map_from().
QoSCheckCompatibleResult rclcpp::qos_check_compatible | ( | const QoS & | publisher_qos, |
const QoS & | subscription_qos | ||
) |
Check if two QoS profiles are compatible.
Two QoS profiles are compatible if a publisher and subcription using the QoS policies can communicate with each other.
If any policies have value "system default" or "unknown" then it is possible that compatiblity cannot be determined. In this case, the value QoSCompatility::Warning is set as part of the returned structure.
Example usage:
[in] | publisher_qos | The QoS profile for a publisher. |
[in] | subscription_qos | The QoS profile for a subscription. |
rclcpp::exceptions::QoSCheckCompatibilityException | if an unexpected error occurs. |
Definition at line 317 of file qos.cpp.
References rclcpp::QoSCheckCompatibleResult::compatibility, rclcpp::QoS::get_rmw_qos_profile(), and rclcpp::QoSCheckCompatibleResult::reason.
std::vector< std::string > rclcpp::remove_ros_arguments | ( | int | argc, |
char const *const * | argv | ||
) |
Remove ROS-specific arguments from argument vector.
Some arguments may not have been intended as ROS arguments. This function populates the arguments in a vector. Since the first argument is always assumed to be a process name, the vector will always contain the process name.
[in] | argc | Number of arguments. |
[in] | argv | Argument vector. |
anything | throw_from_rcl_error can throw |
rclcpp::exceptions::RCLError | if the parsing fails |
Definition at line 126 of file utilities.cpp.
References rcl_arguments_fini(), rcl_get_default_allocator, rcl_get_zero_initialized_arguments(), rcl_parse_arguments(), and RCL_RET_OK.
RCLCPP_PUBLIC bool rclcpp::shutdown | ( | rclcpp::Context::SharedPtr | context = nullptr , |
const std::string & | reason = "user called rclcpp::shutdown()" |
||
) |
Shutdown rclcpp context, invalidating it for derived entities.
If nullptr is given for the context, then the global context is used, i.e. the context initialized by rclcpp::init().
If the global context is used, then the signal handlers are also uninstalled.
This will also cause the "on_shutdown" callbacks to be called.
[in] | context | Optional to be shutdown |
[in] | reason | Optional string passed to the context shutdown method |
RCLCPP_PUBLIC bool rclcpp::sleep_for | ( | const std::chrono::nanoseconds & | nanoseconds, |
rclcpp::Context::SharedPtr | context = nullptr |
||
) |
Use the global condition variable to block for the specified amount of time.
This function can be interrupted early if the associated context becomes invalid due to shutdown() or the signal handler.
If nullptr is given for the context, then the global context is used, i.e. the context initialized by rclcpp::init().
[in] | nanoseconds | A std::chrono::duration representing how long to sleep for. |
[in] | context | Optional which may interrupt this sleep |
void rclcpp::spin | ( | rclcpp::node_interfaces::NodeBaseInterface::SharedPtr | node_ptr | ) |
Create a default single-threaded executor and spin the specified node.
[in] | node_ptr | Shared pointer to the node to spin. |
Definition at line 33 of file executors.cpp.
References rclcpp::Executor::add_node(), rclcpp::Executor::remove_node(), and rclcpp::executors::SingleThreadedExecutor::spin().
void rclcpp::spin_some | ( | rclcpp::node_interfaces::NodeBaseInterface::SharedPtr | node_ptr | ) |
Create a default single-threaded executor and execute any immediately available work.
[in] | node_ptr | Shared pointer to the node to spin. |
Definition at line 18 of file executors.cpp.
References rclcpp::Executor::spin_node_some().
bool rclcpp::sub_will_overflow | ( | const T | x, |
const T | y | ||
) |
Safely check if subtraction will overflow.
The type of the operands, T, should have defined std::numeric_limits<T>::max(), >
, <
and +
operators.
[in] | x | is the minuend. |
[in] | y | is the subtrahend. |
T | is type of the operands. |
x - y
sum is grater than T::max value. Definition at line 282 of file utilities.hpp.
Referenced by rclcpp::Time::operator-(), and rclcpp::Time::operator-=().
bool rclcpp::sub_will_underflow | ( | const T | x, |
const T | y | ||
) |
Safely check if subtraction will underflow.
The type of the operands, T, should have defined std::numeric_limits<T>::min(), >
, <
and +
operators.
[in] | x | is the minuend. |
[in] | y | is the subtrahend. |
T | is type of the operands. |
x - y
sum is less than T::min value. Definition at line 299 of file utilities.hpp.
Referenced by rclcpp::Time::operator-(), and rclcpp::Time::operator-=().
bool rclcpp::uninstall_signal_handlers | ( | ) |
Uninstall the global signal handler for rclcpp.
This function does not necessarily need to be called, but can be used to undo what rclcpp::install_signal_handlers() or rclcpp::init() do with respect to signal handling. If you choose to use it, this function only needs to be run one time. It is implicitly run by rclcpp::shutdown(), and therefore this function does not need to be run manually if rclcpp::shutdown() has already been run.
This function is thread-safe.
Definition at line 66 of file utilities.cpp.
References rclcpp::SignalHandler::get_global_signal_handler(), and rclcpp::SignalHandler::uninstall().
bool rclcpp::wait_for_message | ( | MsgT & | out, |
rclcpp::Node::SharedPtr | node, | ||
const std::string & | topic, | ||
std::chrono::duration< Rep, Period > | time_to_wait = std::chrono::duration<Rep, Period>(-1) , |
||
const rclcpp::QoS & | qos = rclcpp::SystemDefaultsQoS() |
||
) |
Wait for the next incoming message.
Wait for the next incoming message to arrive on a specified topic before the specified timeout.
[out] | out | is the message to be filled when a new message is arriving |
[in] | node | the node pointer to initialize the subscription on. |
[in] | topic | the topic to wait for messages. |
[in] | time_to_wait | parameter specifying the timeout before returning. |
[in] | qos | parameter specifying QoS settings for the subscription. |
Definition at line 93 of file wait_for_message.hpp.
bool rclcpp::wait_for_message | ( | MsgT & | out, |
std::shared_ptr< rclcpp::Subscription< MsgT >> | subscription, | ||
std::shared_ptr< rclcpp::Context > | context, | ||
std::chrono::duration< Rep, Period > | time_to_wait = std::chrono::duration<Rep, Period>(-1) |
||
) |
Wait for the next incoming message.
Given an already initialized subscription, wait for the next incoming message to arrive before the specified timeout.
[out] | out | is the message to be filled when a new message is arriving. |
[in] | subscription | shared pointer to a previously initialized subscription. |
[in] | context | shared pointer to a context to watch for SIGINT requests. |
[in] | time_to_wait | parameter specifying the timeout before returning. |
Definition at line 44 of file wait_for_message.hpp.
References rclcpp::WaitSetTemplate< SynchronizationPolicy, StoragePolicy >::add_guard_condition(), rclcpp::WaitSetTemplate< SynchronizationPolicy, StoragePolicy >::add_subscription(), rclcpp::WaitSetTemplate< SynchronizationPolicy, StoragePolicy >::get_rcl_wait_set(), rcl_wait_set_s::guard_conditions, rclcpp::WaitSetTemplate< SynchronizationPolicy, StoragePolicy >::remove_subscription(), and rclcpp::WaitSetTemplate< SynchronizationPolicy, StoragePolicy >::wait().