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::