diff --git a/controller_interface/src/controller_interface_base.cpp b/controller_interface/src/controller_interface_base.cpp index 1e8aafd7b4..7bb1ddfc3e 100644 --- a/controller_interface/src/controller_interface_base.cpp +++ b/controller_interface/src/controller_interface_base.cpp @@ -62,6 +62,8 @@ return_type ControllerInterfaceBase::init( node_->register_on_cleanup( [this](const rclcpp_lifecycle::State & previous_state) -> CallbackReturn { + // make sure introspection is disabled on controller cleanup as users may manually enable + // it in `on_configure` and `on_deactivate` - see the docs for details enable_introspection(false); if (is_async() && async_handler_ && async_handler_->is_running()) { diff --git a/doc/introspection.rst b/doc/introspection.rst index 8f4fb5b6ef..d3cccf7446 100644 --- a/doc/introspection.rst +++ b/doc/introspection.rst @@ -13,7 +13,7 @@ All the registered variables are published over 3 topics: ``~/introspection_data The topics ``~/introspection_data/full`` and ``~/introspection_data/values`` are always published on every update cycle asynchronously, provided that there is at least one subscriber to these topics. -The topic ``~/introspection_data/full`` can be used to integrate with your custom visualization tools or to track the variables from the command line. The topic ``~/introspection_data/names`` and ``~/introspection_data/values`` are to be used for visualization tools like `PlotJuggler `_ to visualize the data. +The topic ``~/introspection_data/full`` can be used to integrate with your custom visualization tools or to track the variables from the command line. The topic ``~/introspection_data/names`` and ``~/introspection_data/values`` are to be used for visualization tools like `PlotJuggler `_ or `RQT plot `_ to visualize the data. .. note:: If you have a high frequency of data, it is recommended to use the ``~/introspection_data/names`` and ``~/introspection_data/values`` topic. So, that the data transferred and stored is minimized. @@ -59,7 +59,7 @@ Types of entities that can be introspected - Any variable that can be cast to a double is suitable for registration. - A function that returns a value that can be cast to a double is also suitable for registration. -- Variables of complex structures can be registered by having defined introspection for its every internal variable. +- Variables of complex structures can be registered by having defined introspection for their every internal variable. - Introspection of custom types can be done by defining a `custom introspection function `_. .. note::