-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add XML/YAML launch file equivalents to Tf2 tutorials #6031
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: rolling
Are you sure you want to change the base?
Changes from all commits
e13ec1d
e396180
8314093
43c2088
766849b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -182,18 +182,48 @@ Finally, add the ``install(TARGETS…)`` section so ``ros2 run`` can find your e | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| Now let's create a launch file for this example. | ||
| With your text editor, create a new file called ``turtle_tf2_fixed_frame_demo_launch.py`` in the ``src/learning_tf2_cpp/launch`` directory, and add the following lines: | ||
| With your text editor, create a new file called ``turtle_tf2_fixed_frame_demo_launch`` with extension ``.py``, ``.xml``, or ``.yaml`` in the ``src/learning_tf2_cpp/launch`` directory, and add the following lines: | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.py | ||
| :language: python | ||
| .. tabs:: | ||
|
|
||
| .. group-tab:: Python | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.py | ||
| :language: python | ||
|
|
||
| .. group-tab:: XML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.xml | ||
| :language: xml | ||
|
|
||
| .. group-tab:: YAML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.yaml | ||
| :language: yaml | ||
|
|
||
| This launch file imports the required packages and then creates a ``demo_nodes`` variable that will store nodes that we created in the previous tutorial's launch file. | ||
|
|
||
| The last part of the code will add our fixed ``carrot1`` frame to the turtlesim world using our ``fixed_frame_tf2_broadcaster`` node. | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.py | ||
| :language: python | ||
| :lines: 14-18 | ||
| .. tabs:: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||
|
|
||
| .. group-tab:: Python | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.py | ||
| :language: python | ||
| :lines: 14-18 | ||
|
|
||
| .. group-tab:: XML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.xml | ||
| :language: xml | ||
| :lines: 3-4 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't this be line 4 only. |
||
|
|
||
| .. group-tab:: YAML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_fixed_frame_demo_launch.yaml | ||
| :language: yaml | ||
| :lines: 6-9 | ||
|
|
||
| 1.4 Build | ||
| ~~~~~~~~~ | ||
|
|
@@ -275,7 +305,7 @@ Now you can start the turtle broadcaster demo: | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| You should notice that the new ``carrot1`` frame appeared in the transformation tree. | ||
|
|
||
|
|
@@ -290,7 +320,7 @@ One way is to pass the ``target_frame`` argument to the launch file directly fro | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.py target_frame:=carrot1 | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.xml target_frame:=carrot1 # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| The second way is to update the launch file. | ||
| To do so, open the ``turtle_tf2_fixed_frame_demo_launch.py`` file, and add the ``'target_frame': 'carrot1'`` parameter via ``launch_arguments`` argument. | ||
|
|
@@ -442,10 +472,24 @@ Finally, add the ``install(TARGETS…)`` section so ``ros2 run`` can find your e | |
| 2.3 Write the launch file | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| To test this code, create a new launch file ``turtle_tf2_dynamic_frame_demo_launch.py`` in the ``src/learning_tf2_cpp/launch`` directory and paste the following code: | ||
| To test this code, create a new launch file ``turtle_tf2_dynamic_frame_demo_launch`` with extension ``.py``, ``.xml``, or ``.yaml`` in the ``src/learning_tf2_cpp/launch`` directory and paste the following code: | ||
|
|
||
| .. tabs:: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||
|
|
||
| .. group-tab:: Python | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_dynamic_frame_demo_launch.py | ||
| :language: python | ||
|
|
||
| .. group-tab:: XML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_dynamic_frame_demo_launch.xml | ||
| :language: xml | ||
|
|
||
| .. group-tab:: YAML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_dynamic_frame_demo_launch.py | ||
| :language: python | ||
| .. literalinclude:: launch/turtle_tf2_dynamic_frame_demo_launch.yaml | ||
| :language: yaml | ||
|
|
||
|
|
||
| 2.4 Build | ||
|
|
@@ -528,7 +572,7 @@ Now you can start the dynamic frame demo: | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_dynamic_frame_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_dynamic_frame_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I considered this and I came down on that it is probably fine for one liners. My general metric here is, "Is this better than what we presently have?" The answer in this case is yes. |
||
|
|
||
| You should see that the second turtle is following the carrot's position that is constantly changing. | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -159,19 +159,49 @@ Add the following line between the ``'console_scripts':`` brackets: | |||||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||||
|
|
||||||||
| Now let's create a launch file for this example. | ||||||||
| With your text editor, create a new file called ``turtle_tf2_fixed_frame_demo_launch.py`` in the ``src/learning_tf2_py/launch`` directory, and add the following lines: | ||||||||
| With your text editor, create a new file called ``turtle_tf2_fixed_frame_demo_launch`` with extension ``.py``, ``.xml``, or ``.yaml`` in the ``src/learning_tf2_py/launch`` directory, and add the following lines: | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.py | ||||||||
| :name: turtle_tf2_fixed_frame_demo_launch.py | ||||||||
| :language: python | ||||||||
| .. tabs:: | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||||||||
|
|
||||||||
| .. group-tab:: Python | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.py | ||||||||
| :name: turtle_tf2_fixed_frame_demo_launch.py | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can the name be added to all tabs? |
||||||||
| :language: python | ||||||||
|
|
||||||||
| .. group-tab:: XML | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.xml | ||||||||
| :language: xml | ||||||||
|
|
||||||||
| .. group-tab:: YAML | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.yaml | ||||||||
| :language: yaml | ||||||||
|
|
||||||||
| This launch file imports the required packages and then creates a ``demo_nodes`` variable that will store nodes that we created in the previous tutorial's launch file. | ||||||||
|
|
||||||||
| The last part of the code will add our fixed ``carrot1`` frame to the turtlesim world using our ``fixed_frame_tf2_broadcaster`` node. | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.py | ||||||||
| :language: python | ||||||||
| :lines: 14-18 | ||||||||
| .. tabs:: | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||||||||
|
|
||||||||
| .. group-tab:: Python | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.py | ||||||||
| :language: python | ||||||||
| :lines: 14-18 | ||||||||
|
|
||||||||
| .. group-tab:: XML | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.xml | ||||||||
| :language: xml | ||||||||
| :lines: 3-4 | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't this be only line 4? |
||||||||
|
|
||||||||
| .. group-tab:: YAML | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_fixed_frame_demo_launch.yaml | ||||||||
| :language: yaml | ||||||||
| :lines: 6-9 | ||||||||
|
|
||||||||
| 1.4 Build | ||||||||
| ~~~~~~~~~ | ||||||||
|
|
@@ -253,7 +283,7 @@ Now you can start the turtle broadcaster demo: | |||||||
|
|
||||||||
| .. code-block:: console | ||||||||
|
|
||||||||
| $ ros2 launch learning_tf2_py turtle_tf2_fixed_frame_demo_launch.py | ||||||||
| $ ros2 launch learning_tf2_py turtle_tf2_fixed_frame_demo_launch.xml # .py or .yaml are also acceptable | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||||||||
|
|
||||||||
| You should notice that the new ``carrot1`` frame appeared in the transformation tree. | ||||||||
|
|
||||||||
|
|
@@ -268,7 +298,7 @@ One way is to pass the ``target_frame`` argument to the launch file directly fro | |||||||
|
|
||||||||
| .. code-block:: console | ||||||||
|
|
||||||||
| $ ros2 launch learning_tf2_py turtle_tf2_fixed_frame_demo_launch.py target_frame:=carrot1 | ||||||||
| $ ros2 launch learning_tf2_py turtle_tf2_fixed_frame_demo_launch.xml target_frame:=carrot1 # .py or .yaml are also acceptable | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||||||||
|
|
||||||||
| The second way is to update the launch file. | ||||||||
| To do so, open the ``turtle_tf2_fixed_frame_demo_launch.py`` file, and add the ``'target_frame': 'carrot1'`` parameter via ``launch_arguments`` argument. | ||||||||
|
|
@@ -398,10 +428,24 @@ Add the following line between the ``'console_scripts':`` brackets: | |||||||
| 2.3 Write the launch file | ||||||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||||
|
|
||||||||
| To test this code, create a new launch file ``turtle_tf2_dynamic_frame_demo_launch.py`` in the ``src/learning_tf2_py/launch`` directory and paste the following code: | ||||||||
| To test this code, create a new launch file ``turtle_tf2_dynamic_frame_demo_launch`` with extension ``.py``, ``.xml``, or ``.yaml`` in the ``src/learning_tf2_py/launch`` directory and paste the following code: | ||||||||
|
|
||||||||
| .. tabs:: | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||||||||
|
|
||||||||
| .. group-tab:: Python | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_dynamic_frame_demo_launch.py | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
| :name: turtle_tf2_dynamic_frame_demo_launch.py | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can the name be added to all tabs? |
||||||||
|
|
||||||||
| .. group-tab:: XML | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_dynamic_frame_demo_launch.xml | ||||||||
| :language: xml | ||||||||
|
|
||||||||
| .. group-tab:: YAML | ||||||||
|
|
||||||||
| .. literalinclude:: launch/py_turtle_tf2_dynamic_frame_demo_launch.py | ||||||||
| :name: turtle_tf2_dynamic_frame_demo_launch.py | ||||||||
| .. literalinclude:: launch/py_turtle_tf2_dynamic_frame_demo_launch.yaml | ||||||||
| :language: yaml | ||||||||
|
|
||||||||
|
|
||||||||
| 2.4 Build | ||||||||
|
|
@@ -485,7 +529,7 @@ Now you can start the dynamic frame demo: | |||||||
|
|
||||||||
| .. code-block:: console | ||||||||
|
|
||||||||
| $ ros2 launch learning_tf2_py turtle_tf2_dynamic_frame_demo_launch.py | ||||||||
| $ ros2 launch learning_tf2_py turtle_tf2_dynamic_frame_demo_launch.xml # .py or .yaml are also acceptable | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||||||||
|
|
||||||||
| You should see that the second turtle is following the carrot's position that is constantly changing. | ||||||||
|
|
||||||||
|
|
||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -70,18 +70,32 @@ to | |
| } catch (const tf2::TransformException & ex) { | ||
|
|
||
| And save changes to the file. | ||
| In order to run this demo, we need to create a launch file ``start_tf2_debug_demo_launch.py`` in the ``launch`` subdirectory of package ``learning_tf2_cpp``: | ||
| In order to run this demo, we need to create a launch file ``start_tf2_debug_demo_launch`` with extension ``.py``, ``.xml``, or ``.yaml`` in the ``launch`` subdirectory of package ``learning_tf2_cpp``: | ||
|
|
||
| .. literalinclude:: launch/start_tf2_debug_demo_launch.py | ||
| :language: python | ||
| .. tabs:: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||
|
|
||
| .. group-tab:: Python | ||
|
|
||
| .. literalinclude:: launch/start_tf2_debug_demo_launch.py | ||
| :language: python | ||
|
|
||
| .. group-tab:: XML | ||
|
|
||
| .. literalinclude:: launch/start_tf2_debug_demo_launch.xml | ||
| :language: xml | ||
|
|
||
| .. group-tab:: YAML | ||
|
|
||
| .. literalinclude:: launch/start_tf2_debug_demo_launch.yaml | ||
| :language: yaml | ||
|
|
||
| Don't forget to add the ``turtle_tf2_listener_debug`` executable to the ``CMakeLists.txt`` and build the package. | ||
|
|
||
| Now let's run it to see what happens: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp start_tf2_debug_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp start_tf2_debug_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| You will now see that the turtlesim came up. | ||
| At the same time, if you run the ``turtle_teleop_key`` in another terminal window, you can use the arrow keys to drive the ``turtle1`` around. | ||
|
|
@@ -155,7 +169,7 @@ And now stop the running demo, build it, and run it again: | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp start_tf2_debug_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp start_tf2_debug_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
| [turtle_tf2_listener_debug-4] [INFO] [1630223704.617382464] [listener_debug]: Could not | ||
| transform turtle2 to turtle1: Lookup would require extrapolation into the future. Requested | ||
| time 1630223704.617054 but the latest data is at time 1630223704.616726, when looking up | ||
|
|
@@ -203,7 +217,7 @@ Stop the demo, build and run: | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch turtle_tf2 start_tf2_debug_demo_launch.py | ||
| $ ros2 launch turtle_tf2 start_tf2_debug_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| And you should finally see the turtle move! | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -70,7 +70,7 @@ Now build the package and try to run the launch file. | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
| [INFO] [1629873136.345688064] [listener]: Could not transform turtle2 to turtle1: Lookup would | ||
| require extrapolation into the future. Requested time 1629873136.345539 but the latest data | ||
| is at time 1629873136.338804, when looking up transform from frame [turtle1] to frame [turtle2] | ||
|
|
@@ -110,7 +110,7 @@ You can now build the package and run the launch file. | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| You should notice that ``lookupTransform()`` will actually block until the transform between the two turtles becomes available (this will usually take a few milliseconds). | ||
| Once the timeout has been reached (fifty milliseconds in this case), an exception will be raised only if the transform is still not available. | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -53,7 +53,7 @@ Build the package then let's just give it a try: | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| .. image:: images/turtlesim_delay1.png | ||
|
|
||
|
|
@@ -112,7 +112,7 @@ Build the package then let's run the simulation again, this time with the advanc | |
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.py | ||
| $ ros2 launch learning_tf2_cpp turtle_tf2_fixed_frame_demo_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| .. image:: images/turtlesim_delay2.png | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -233,10 +233,24 @@ Then we fill up the ``PointStamped`` messages of ``turtle3`` with incoming ``Pos | |
| 1.2 Write the launch file | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| In order to run this demo, we need to create a launch file ``turtle_tf2_sensor_message_launch.py`` in the ``launch`` subdirectory of package ``learning_tf2_py``: | ||
| In order to run this demo, we need to create a launch file ``turtle_tf2_sensor_message_launch`` with extension ``.py``, ``.xml``, or ``.yaml`` in the ``launch`` subdirectory of package ``learning_tf2_py``: | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_sensor_message_launch.py | ||
| :language: python | ||
| .. tabs:: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The order in most other tutorials is |
||
|
|
||
| .. group-tab:: Python | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_sensor_message_launch.py | ||
| :language: python | ||
|
|
||
| .. group-tab:: XML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_sensor_message_launch.xml | ||
| :language: xml | ||
|
|
||
| .. group-tab:: YAML | ||
|
|
||
| .. literalinclude:: launch/turtle_tf2_sensor_message_launch.yaml | ||
| :language: yaml | ||
|
|
||
|
|
||
| 1.3 Add an entry point | ||
|
|
@@ -669,11 +683,11 @@ Open a new terminal, navigate to the root of your workspace, and source the setu | |
| 3 Run | ||
| ^^^^^ | ||
|
|
||
| First we need to run several nodes (including the broadcaster node of PointStamped messages) by launching the launch file ``turtle_tf2_sensor_message_launch.py``: | ||
| First we need to run several nodes (including the broadcaster node of PointStamped messages) by launching the launch file ``turtle_tf2_sensor_message_launch``: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ ros2 launch learning_tf2_py turtle_tf2_sensor_message_launch.py | ||
| $ ros2 launch learning_tf2_py turtle_tf2_sensor_message_launch.xml # .py or .yaml are also acceptable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also be tabs per launch file type for consistency between all tutorials? |
||
|
|
||
| This will bring up the ``turtlesim`` window with two turtles, where ``turtle3`` is moving along a circle, while ``turtle1`` isn't moving at first. | ||
| But you can run the ``turtle_teleop_key`` node in another terminal to drive ``turtle1`` to move: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The order in most other tutorials is
XML,YAML,Python, could we make it consistent?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a little pedantic. We're not implying any particular superiority and we wouldn't enforce it on subsequent PRs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same reasoning as other comment #6031 (comment)