From 7785e0f4cfffc775cf67b8ef02e770d47a5e9622 Mon Sep 17 00:00:00 2001 From: Jonas Otto Date: Wed, 15 May 2024 21:16:26 +0200 Subject: [PATCH] tf2 listener cpp tutorial: minor syntax/wording improvements (#4434) * tf2 listener cpp tutorial: minor syntax/wording improvements * add link to tf2 concepts page (cherry picked from commit bfbd9bc4312d447fafb691802ae11569e49c30a6) --- .../Intermediate/Tf2/Writing-A-Tf2-Listener-Cpp.rst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Cpp.rst b/source/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Cpp.rst index e8d8ec1a9f..9e7fc63df2 100644 --- a/source/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Cpp.rst +++ b/source/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Cpp.rst @@ -111,7 +111,7 @@ Open the file using your preferred text editor. // Call on_timer function every second timer_ = this->create_wall_timer( - 1s, [this](){return this->on_timer();}); + 1s, [this]() {return this->on_timer();}); } private: @@ -212,7 +212,7 @@ Open the file using your preferred text editor. To understand how the service behind spawning turtle works, please refer to :doc:`writing a simple service and client (C++) <../../Beginner-Client-Libraries/Writing-A-Simple-Cpp-Service-And-Client>` tutorial. Now, let's take a look at the code that is relevant to get access to frame transformations. -The ``tf2_ros`` contains a ``TransformListener`` header file implementation that makes the task of receiving transforms easier. +The ``tf2_ros`` contains a ``TransformListener`` class that makes the task of receiving transforms easier. .. code-block:: C++ @@ -235,7 +235,7 @@ We call ``lookup_transform`` method with following arguments: #. The time at which we want to transform -Providing ``tf2::TimePointZero()`` will just get us the latest available transform. +Providing ``tf2::TimePointZero`` will just get us the latest available transform. All this is wrapped in a try-catch block to handle possible exceptions. .. code-block:: C++ @@ -244,6 +244,10 @@ All this is wrapped in a try-catch block to handle possible exceptions. toFrameRel, fromFrameRel, tf2::TimePointZero); +The resulting transformation represents the position and orientation of the target turtle relative to ``turtle2``. +The angle between the turtles is then used to calculate a velocity command to follow the target turtle. +For more general information about tf2 see also the :doc:`tf2 page in the Concepts section <../../../Concepts/Intermediate/About-Tf2>`. + 1.2 CMakeLists.txt ~~~~~~~~~~~~~~~~~~ @@ -323,7 +327,7 @@ The resulting file should look like: ), ]) -This will declare a ``target_frame`` launch argument, start a broadcaster for second turtle that we will spawn and listener that will subscribe to those transformations. +This will declare a ``target_frame`` launch argument, start a broadcaster for the second turtle that we will spawn and a listener that will subscribe to those transformations. 3 Build ^^^^^^^