diff --git a/README.md b/README.md index 033e37c..7591f56 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# ROS 2 Jazzy Tutorial Party -Welcome! The purpose of this repository is to guide the testing of various functionalities of ROS 2 Jazzy Jalisco prior to official release. +# ROS 2 Kilted Tutorial Party +Welcome! The purpose of this repository is to guide the testing of various functionalities of ROS 2 Kilted Kaiju prior to official release. In other words, welcome to the Tutorial Party! The tutorial party will run between May 1, 2024 and May 15, 2024 (inclusive). Testing after that is welcome, but will not be included in the official statistics. @@ -8,13 +8,13 @@ Testing after that is welcome, but will not be included in the official statisti Everyone, all contributions are welcome! ## How to contribute? -The [Issues](https://github.com/osrf/ros2_test_cases/issues) page has several tickets each containing specific instructions to test a particular functionality of ROS 2 Jazzy Jalisco. +The [Issues](https://github.com/osrf/ros2_test_cases/issues) page has several tickets each containing specific instructions to test a particular functionality of ROS 2 Kilted Kaiju. Each ticket will have the following sections: 1. **Setup**: Details on the desired hardware and software setup for this test. The following combinations are possible. - 1. DDS vendor: `FASTDDS`, `CYCLONEDDS` or `CONNEXTDDS` + 1. RMW vendor: `fastdds`, `cyclonedds`, `connextdds` or `zenoh` 2. BuildType: - * `binary`: pre-built packaged ROS 2 workspace from [the releases page](https://github.com/ros2/ros2/releases/tag/release-jazzy-beta-20240430) + * `binary`: pre-built packaged ROS 2 workspace from [the releases page](https://github.com/ros2/ros2/releases/tag/release-kilted-beta-20250430) * `debian`: pre-built debian packages from the apt repository * `source`: building your own workspace from source 3. Os: `Ubuntu Noble`, `Windows` and `RHEL-9` @@ -22,8 +22,11 @@ Each ticket will have the following sections: 2. **Links**: Any relevant references for this test. 3. **Checks**: A list of functionalities to validate. +> [!NOTE] +When running tests with `zenoh`, remember to start the zenoh router by running `ros2 run rmw_zenoh_cpp rmw_zenohd` in a separate terminal. + To contribute, first ensure if you have the relevant setup as described in the ticket. -If you don't have the setup, you can find the installation instructions at http://docs.ros.org/en/jazzy/Installation.html. +If you don't have the setup, you can find the installation instructions at http://docs.ros.org/en/kilted/Installation.html. Next, assign the ticket to yourself via the `Assignees` option or comment on the ticket indicating your interest. Then follow the instructions to perform the necessary checks. diff --git a/config/README.md b/config/README.md index e7873a9..f754300 100644 --- a/config/README.md +++ b/config/README.md @@ -41,3 +41,14 @@ export GITHUB_REPO_OWNER=osrf export GITHUB_REPO_NAME=ros2_test_cases export GITHUB_TOKEN= ``` + +### Jazzy + +```bash +export YATM_TEST_CASE_CONFIG_PATH=$HOME/ros2_test_cases/config/kilted/test-case.config.yaml +export YATM_REQUIREMENTS_DIRECTORY_PATH=$HOME/ros2_test_cases/config/kilted/requirements +export YATM_DISTO_LABEL=kilted +export GITHUB_REPO_OWNER=osrf +export GITHUB_REPO_NAME=ros2_test_cases +export GITHUB_TOKEN= +``` \ No newline at end of file diff --git a/config/kilted/requirements/core.yaml b/config/kilted/requirements/core.yaml new file mode 100644 index 0000000..84409e5 --- /dev/null +++ b/config/kilted/requirements/core.yaml @@ -0,0 +1,219 @@ +requirements: + - name: ros2cli on a local machine + description: | + Test the basic functionality of the ros2cli package family + labels: + - ros2cli + - local + - core + links: + - name: Repo URL + url: https://github.com/ros2/ros2cli + checks: + - name: Help text + description: | + Long-form help text should be available when invoking `ros2 --help` as well as `ros2 --help` + try: + - stdin: ros2 -h + - stdin: ros2 --help + - stdin: ros2 topic -h + - stdin: ros2 topic --help + expect: + - note: Long-form help is available. + - name: Tab completion + description: | + When using a supported shell (i.e. bash), tab completion should work for both the bare executable to list commands and for listing sub-commands, like `ros2 ` or `ros2 tab` + [Note]: Skip this test on Windows as tab completion is not supported. + try: + - stdin: ros2 + note: Lists the commands + - stdin: ros2 lau + note: Completes the word `launch` + - stdin: ros2 launch dem + note: Completes until `demo_nodes_` + - stdin: ros2 launch demo_nodes_c + note: Completes the package `demo_nodes_cpp` + - stdin: ros2 launch demo_nodes_cpp + note: Lists launch files in `demo_nodes_cpp` + - stdin: ros2 launch demo_nodes_cpp ta + note: Suggests the launch files name `talker_listener` + - stdin: ros2 launch demo_nodes_cpp talker_listener_ + note: Lists several launch files that start with `talker_listener` + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.p + note: Completes the launch files name `talker_listener_launch.py` + expect: + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py + note: You eventually get to the full command + - name: Node discovery + description: | + With another node running, use `ros2 node list` to ensure that the expected node is listed. Then stop the node and ensure that the list operation no longer shows the node. + try: + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py + terminal: 1 + - stdin: ros2 node list + terminal: 2 + expect: + - stdout: | + /listener + /talker + terminal: 2 + - name: Topic discovery + description: | + With another node running, use `ros2 topic list` to ensure that the expected topics are listed. Then stop the node and ensure that the list operation no longer shows the node's topics. + try: + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py + terminal: 1 + - stdin: ros2 topic list + terminal: 2 + expect: + - stdout: | + /chatter + /parameter_events + /rosout + terminal: 2 + - name: Service discovery + description: | + With another node running, use `ros2 service list` to ensure that the expected services are listed. Then stop the node and ensure that the list operation no longer shows the node's services. + try: + - stdin: ros2 run demo_nodes_cpp add_two_ints_server + terminal: 1 + - stdin: ros2 service list + terminal: 2 + expect: + - stdout: | + /add_two_ints + /add_two_ints_server/describe_parameters + /add_two_ints_server/get_parameter_types + /add_two_ints_server/get_parameters + /add_two_ints_server/get_type_description + /add_two_ints_server/list_parameters + /add_two_ints_server/set_parameters + /add_two_ints_server/set_parameters_atomically + terminal: 2 + - name: Parameter discovery + description: | + With another node running, use `ros2 param list` to ensure that the expected parameters are listed. Then stop the node and ensure that the list operation no longer shows the node's parameters. + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param list + terminal: 2 + expect: + - stdout: | + /turtlesim: + background_b + background_g + background_r + holonomic + qos_overrides./parameter_events.publisher.depth + qos_overrides./parameter_events.publisher.durability + qos_overrides./parameter_events.publisher.history + qos_overrides./parameter_events.publisher.reliability + start_type_description_service + use_sim_time + terminal: 2 + - name: ros2cli network tests + description: | + Test the basic functionality of the ros2cli package family in an environment where nodes are running on other machines on the network. + labels: + - ros2cli + - core + links: + - name: Repo URL + url: https://github.com/ros2/ros2cli + checks: + - name: Node discovery + description: | + With another node running, use `ros2 node list` to ensure that the expected node is listed. Then stop the node and ensure that the list operation no longer shows the node. + - name: Topic discovery + description: | + With another node running, use `ros2 topic list` to ensure that the expected topics are listed. Then stop the node and ensure that the list operation no longer shows the node's topics. + - name: Service discovery + description: | + With another node running, use `ros2 service list` to ensure that the expected services are listed. Then stop the node and ensure that the list operation no longer shows the node's services. + - name: Parameter discovery + description: | + With another node running, use `ros2 param list` to ensure that the expected parameters are listed. Then stop the node and ensure that the list operation no longer shows the node's parameters. + - name: Rviz + description: | + This is a sanity check to ensure that the GUI tools aren't fundamentally broken. + labels: + - rviz + - visualization + - core + links: + - name: Repo URL + url: https://github.com/ros2/rviz + checks: + - name: Check Rviz + description: | + Launch using the `rviz2` command. + + The rviz window should be generally usable and should be able to load some of the discovered visualizations. + + Loading visualizations into the tree and using the mouse to navigate through the virtual workspace is sufficient for this test. + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: rviz2 + terminal: 2 + - note: In RViz, in the left pane, click 'Add'. A window will pop up. In that window, under 'rviz_default_plugins', select 'TF' and click 'OK'. Under 'Displays', in the 'Global Options' section, change the 'Fixed Frame' to '/world'. + - note: In RViz, in the left pane, click 'Add'. A window will pop up. In that window, under 'rviz_default_plugins', select 'LaserScan' and click 'OK'. Under 'Displays', in the 'LaserScan' section, change the 'Topic' to '/scan'. + expect: + - note: You should see the dummy robot's kinematic tree waving back and forth in the rviz window. + - note: You should see a laser scan emitting from the waving end of the dummy robot. + - note: Play around, move the camera, enable and disable things in the 'Displays' pane. RViz should be stable. + - name: RQT + description: | + This is a sanity check to ensure that the GUI tools aren't fundamentally broken. + labels: + - rqt + - visualization + - core + links: + - name: Repo URL + url: https://github.com/ros-visualization/rqt + checks: + - name: Check RQT + description: | + Launch using the `rqt` command. + + The rqt window should be generally usable and should be able to populate some of the discovered plugins. + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: rqt + terminal: 2 + - note: In the RQT window, select 'Plugins > Visualization > Plot' in the dropdown menu. In the window that opens, set the Topic to `/joint_states/position[0]`. You should see a Sine wave. + - note: With 'Plugins > Introspection > Node Graph' you should see a network of the nodes and topics that are being published and subscribed by the dummy robot. + - note: With 'Plugins > Logging > Bag' you should be able record a ROS Bag file. + - note: With 'Plugins > Topic > Topic Monitor' you should be able to check the `/joint_states` topic and view messages streaming in. + expect: + - note: Rqt runs smoothly and the plugins work as expected. + - name: Installation instructions + labels: + - installation + - core + description: | + Follow the official installation instructions for the platform. If instructions have not been published for the platform, use the instructions for Rolling Ridley. + + For source build platforms, this includes the installation of dependencies and building the packages. + links: + - name: Installation instructions + url: https://docs.ros.org/en/kilted/Installation.html + checks: + - name: Install works + - name: Local workspace overlay + labels: + - overlays + - core + description: | + Build a package in a local workspace which depends on packages supplied for the platform. + + Run the tests for the package - all of them should pass. + + For source platforms, this means building the candidate package in a separate workspace from the one used in the installation instructions. + + TODO: Create a "dummy" package that ensures that we can target other packages using CMake, link against them, and run executables (tests) that are linked against libraries in the main workspace. + checks: + - name: Local workspace overlay works diff --git a/config/kilted/requirements/docs.ros.org.yaml b/config/kilted/requirements/docs.ros.org.yaml new file mode 100644 index 0000000..25aa2b5 --- /dev/null +++ b/config/kilted/requirements/docs.ros.org.yaml @@ -0,0 +1,1967 @@ +# This test case was generated by scraping https://docs.ros.org/en/ on kilted for the following sections: +# - Installation +# - Tutorials +# - How-to-guide +# +# This test case has been validated + +requirements: + - name: Alternatives + labels: + - installation + - docs + description: Check the documentation for the 'Alternatives' page + links: + - name: Alternatives page + url: https://docs.ros.org/en/kilted/Installation/Alternatives.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Latest Development Setup + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'Latest Development Setup' page + links: + - name: Latest Development Setup page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/Latest-Development-Setup.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RHEL Development Setup + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'RHEL Development Setup' page + links: + - name: RHEL Development Setup page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/RHEL-Development-Setup.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RHEL Install Binary + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'RHEL Install Binary' page + links: + - name: RHEL Install Binary page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/RHEL-Install-Binary.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Ubuntu Development Setup + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'Ubuntu Development Setup' page + links: + - name: Ubuntu Development Setup page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/Ubuntu-Development-Setup.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Ubuntu Install Binary + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'Ubuntu Install Binary' page + links: + - name: Ubuntu Install Binary page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/Ubuntu-Install-Binary.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Windows Development Setup + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'Windows Development Setup' page + links: + - name: Windows Development Setup page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/Windows-Development-Setup.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: macOS Development Setup + labels: + - installation + - alternatives + - docs + description: Check the documentation for the 'macOS Development Setup' page + links: + - name: macOS Development Setup page + url: >- + https://docs.ros.org/en/kilted/Installation/Alternatives/macOS-Development-Setup.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RMW Implementations + labels: + - installation + - docs + - rmw-implementations + description: Check the documentation for the 'RMW Implementations' page + links: + - name: RMW Implementations page + url: https://docs.ros.org/en/kilted/Installation/RMW-Implementations.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: DDS Implementations + labels: + - installation + - docs + - rmw-implementations + description: Check the documentation for the 'DDS Implementations' page + links: + - name: DDS Implementations page + url: https://docs.ros.org/en/kilted/Installation/RMW-Implementations/DDS-Implementations.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Working with RTI Connext DDS + labels: + - installation + - rmw-implementations + - docs + description: Check the documentation for the 'Working with RTI Connext DDS' page + links: + - name: Working with RTI Connext DDS page + url: >- + https://docs.ros.org/en/kilted/Installation/RMW-Implementations/DDS-Implementations/Working-with-RTI-Connext-DDS.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Working with Eclipse CycloneDDS + labels: + - installation + - rmw-implementations + - docs + description: Check the documentation for the 'Working with Eclipse CycloneDDS' page + links: + - name: Working with Eclipse CycloneDDS page + url: >- + https://docs.ros.org/en/kilted/Installation/RMW-Implementations/DDS-Implementations/Working-with-Eclipse-CycloneDDS.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Working with GurumNetworks GurumDDS + labels: + - installation + - rmw-implementations + - docs + description: Check the documentation for the 'Working with GurumNetworks GurumDDS' page + links: + - name: Working with GurumNetworks GurumDDS page + url: >- + https://docs.ros.org/en/kilted/Installation/RMW-Implementations/DDS-Implementations/Working-with-GurumNetworks-GurumDDS.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Working with eProsima Fast DDS + labels: + - installation + - rmw-implementations + - docs + description: Check the documentation for the 'Working with eProsima Fast DDS' page + links: + - name: Working with eProsima Fast DDS page + url: >- + https://docs.ros.org/en/kilted/Installation/RMW-Implementations/DDS-Implementations/Working-with-eProsima-Fast-DDS.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Non DDS Implementations + labels: + - installation + - docs + - rmw-implementations + description: Check the documentation for the 'Non DDS Implementations' page + links: + - name: DDS Implementations page + url: https://docs.ros.org/en/kilted/Installation/RMW-Implementations/Non-DDS-Implementations.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Working with Zenoh + labels: + - installation + - rmw-implementations + - docs + - zenoh + description: Check the documentation for the 'Working with Zenoh' page + links: + - name: Working with Zenoh page + url: >- + https://docs.ros.org/en/kilted/Installation/RMW-Implementations/Non-DDS-Implementations/Working-with-Zenoh.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Maintaining a Source Checkout + labels: + - installation + - docs + description: Check the documentation for the 'Maintaining a Source Checkout' page + links: + - name: Maintaining a Source Checkout page + url: >- + https://docs.ros.org/en/kilted/Installation/Maintaining-a-Source-Checkout.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RHEL Install RPMs + labels: + - installation + - docs + description: Check the documentation for the 'RHEL Install RPMs' page + links: + - name: RHEL Install RPMs page + url: https://docs.ros.org/en/kilted/Installation/RHEL-Install-RPMs.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Testing + labels: + - installation + - docs + description: Check the documentation for the 'Testing' page + links: + - name: Testing page + url: https://docs.ros.org/en/kilted/Installation/Testing.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Ubuntu Install Debians + labels: + - installation + - docs + description: Check the documentation for the 'Ubuntu Install Debians' page + links: + - name: Ubuntu Install Debians page + url: https://docs.ros.org/en/kilted/Installation/Ubuntu-Install-Debians.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Windows Install Binary + labels: + - installation + - docs + description: Check the documentation for the 'Windows Install Binary' page + links: + - name: Windows Install Binary page + url: https://docs.ros.org/en/kilted/Installation/Windows-Install-Binary.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Advanced + labels: + - tutorials + - docs + description: Check the documentation for the 'Advanced' page + links: + - name: Advanced page + url: https://docs.ros.org/en/kilted/Tutorials/Advanced.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Allocator Template Tutorial + labels: + - tutorials + - advanced + - docs + description: Check the documentation for the 'Allocator Template Tutorial' page + links: + - name: Allocator Template Tutorial page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Allocator-Template-Tutorial.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Discovery Server + labels: + - tutorials + - advanced + - discovery-server + - docs + description: Check the documentation for the 'Discovery Server' page + links: + - name: Discovery Server page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Discovery-Server/Discovery-Server.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: FastDDS Configuration + labels: + - tutorials + - advanced + - docs + description: Check the documentation for the 'FastDDS Configuration' page + links: + - name: FastDDS Configuration page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/FastDDS-Configuration.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Improved Dynamic Discovery + labels: + - tutorials + - advanced + - docs + description: Check the documentation for the 'Improved Dynamic Discovery' page + links: + - name: Improved Dynamic Discovery page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Improved-Dynamic-Discovery.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: ROS2 Tracing Trace and Analyze + labels: + - tutorials + - advanced + - docs + description: Check the documentation for the 'ROS2 Tracing Trace and Analyze' page + links: + - name: ROS2 Tracing Trace and Analyze page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/ROS2-Tracing-Trace-and-Analyze.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Reading From A Bag File CPP + labels: + - tutorials + - advanced + - docs + description: Check the documentation for the 'Reading From A Bag File CPP' page + links: + - name: Reading From A Bag File CPP page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Reading-From-A-Bag-File-CPP.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Recording A Bag From Your Own Node CPP + labels: + - tutorials + - advanced + - docs + description: >- + Check the documentation for the 'Recording A Bag From Your Own Node CPP' + page + links: + - name: Recording A Bag From Your Own Node CPP page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Recording-A-Bag-From-Your-Own-Node-CPP.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Recording A Bag From Your Own Node Py + labels: + - tutorials + - advanced + - docs + description: >- + Check the documentation for the 'Recording A Bag From Your Own Node Py' + page + links: + - name: Recording A Bag From Your Own Node Py page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Recording-A-Bag-From-Your-Own-Node-Py.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Access Controls + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'Access Controls' page + links: + - name: Access Controls page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/Access-Controls.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Deployment Guidelines + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'Deployment Guidelines' page + links: + - name: Deployment Guidelines page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/Deployment-Guidelines.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Examine Traffic + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'Examine Traffic' page + links: + - name: Examine Traffic page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/Examine-Traffic.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Introducing ros2 security + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'Introducing ros2 security' page + links: + - name: Introducing ros2 security page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/Introducing-ros2-security.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Security Main + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'Security Main' page + links: + - name: Security Main page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/Security-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Security on Two + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'Security on Two' page + links: + - name: Security on Two page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/Security-on-Two.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: The Keystore + labels: + - tutorials + - advanced + - security + - docs + description: Check the documentation for the 'The Keystore' page + links: + - name: The Keystore page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Security/The-Keystore.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Gazebo + labels: + - tutorials + - advanced + - simulators + - gazebo + - docs + description: Check the documentation for the 'Gazebo' page + links: + - name: Gazebo page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Gazebo/Gazebo.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Simulation Gazebo + labels: + - tutorials + - advanced + - simulators + - gazebo + - docs + description: Check the documentation for the 'Simulation Gazebo' page + links: + - name: Simulation Gazebo page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Gazebo/Simulation-Gazebo.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Simulation Main + labels: + - tutorials + - advanced + - simulators + - docs + description: Check the documentation for the 'Simulation Main' page + links: + - name: Simulation Main page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Simulation-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Installation MacOS + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Installation MacOS' page + links: + - name: Installation MacOS page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Installation-MacOS.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Installation Ubuntu + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Installation Ubuntu' page + links: + - name: Installation Ubuntu page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Installation-Ubuntu.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Installation Windows + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Installation Windows' page + links: + - name: Installation Windows page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Installation-Windows.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Setting Up Simulation Webots Advanced + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: >- + Check the documentation for the 'Setting Up Simulation Webots Advanced' + page + links: + - name: Setting Up Simulation Webots Advanced page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Setting-Up-Simulation-Webots-Advanced.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Setting Up Simulation Webots Basic + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Setting Up Simulation Webots Basic' page + links: + - name: Setting Up Simulation Webots Basic page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Setting-Up-Simulation-Webots-Basic.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Simulation Reset Handler + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Simulation Reset Handler' page + links: + - name: Simulation Reset Handler page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Simulation-Reset-Handler.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Simulation Supervisor + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Simulation Supervisor' page + links: + - name: Simulation Supervisor page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Simulation-Supervisor.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Simulation Webots + labels: + - tutorials + - advanced + - simulators + - webots + - docs + description: Check the documentation for the 'Simulation Webots' page + links: + - name: Simulation Webots page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Webots/Simulation-Webots.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Topic Statistics Tutorial + labels: + - tutorials + - advanced + - topic-statistics-tutorial + - docs + description: Check the documentation for the 'Topic Statistics Tutorial' page + links: + - name: Topic Statistics Tutorial page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Advanced/Topic-Statistics-Tutorial/Topic-Statistics-Tutorial.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Beginner CLI Tools + labels: + - tutorials + - docs + description: Check the documentation for the 'Beginner CLI Tools' page + links: + - name: Beginner CLI Tools page + url: https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Configuring ROS2 Environment + labels: + - tutorials + - beginner-cli-tools + - docs + description: Check the documentation for the 'Configuring ROS2 Environment' page + links: + - name: Configuring ROS2 Environment page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Introducing Turtlesim + labels: + - tutorials + - beginner-cli-tools + - introducing-turtlesim + - docs + description: Check the documentation for the 'Introducing Turtlesim' page + links: + - name: Introducing Turtlesim page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Launching Multiple Nodes + labels: + - tutorials + - beginner-cli-tools + - launching-multiple-nodes + - docs + description: Check the documentation for the 'Launching Multiple Nodes' page + links: + - name: Launching Multiple Nodes page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Launching-Multiple-Nodes/Launching-Multiple-Nodes.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Recording And Playing Back Data + labels: + - tutorials + - beginner-cli-tools + - recording-and-playing-back-data + - docs + description: Check the documentation for the 'Recording And Playing Back Data' page + links: + - name: Recording And Playing Back Data page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Recording-And-Playing-Back-Data/Recording-And-Playing-Back-Data.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Understanding ROS2 Actions + labels: + - tutorials + - beginner-cli-tools + - understanding-ros2-actions + - docs + description: Check the documentation for the 'Understanding ROS2 Actions' page + links: + - name: Understanding ROS2 Actions page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Actions/Understanding-ROS2-Actions.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Understanding ROS2 Nodes + labels: + - tutorials + - beginner-cli-tools + - understanding-ros2-nodes + - docs + description: Check the documentation for the 'Understanding ROS2 Nodes' page + links: + - name: Understanding ROS2 Nodes page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Nodes/Understanding-ROS2-Nodes.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Understanding ROS2 Parameters + labels: + - tutorials + - beginner-cli-tools + - understanding-ros2-parameters + - docs + description: Check the documentation for the 'Understanding ROS2 Parameters' page + links: + - name: Understanding ROS2 Parameters page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Parameters/Understanding-ROS2-Parameters.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Understanding ROS2 Services + labels: + - tutorials + - beginner-cli-tools + - understanding-ros2-services + - docs + description: Check the documentation for the 'Understanding ROS2 Services' page + links: + - name: Understanding ROS2 Services page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Services/Understanding-ROS2-Services.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Understanding ROS2 Topics + labels: + - tutorials + - beginner-cli-tools + - understanding-ros2-topics + - docs + description: Check the documentation for the 'Understanding ROS2 Topics' page + links: + - name: Understanding ROS2 Topics page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Topics/Understanding-ROS2-Topics.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using Rqt Console + labels: + - tutorials + - beginner-cli-tools + - using-rqt-console + - docs + description: Check the documentation for the 'Using Rqt Console' page + links: + - name: Using Rqt Console page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-CLI-Tools/Using-Rqt-Console/Using-Rqt-Console.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Beginner Client Libraries + labels: + - tutorials + - docs + description: Check the documentation for the 'Beginner Client Libraries' page + links: + - name: Beginner Client Libraries page + url: https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Colcon Tutorial + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Colcon Tutorial' page + links: + - name: Colcon Tutorial page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Creating A Workspace + labels: + - tutorials + - beginner-client-libraries + - creating-a-workspace + - docs + description: Check the documentation for the 'Creating A Workspace' page + links: + - name: Creating A Workspace page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Creating-A-Workspace/Creating-A-Workspace.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Creating Your First ROS2 Package + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Creating Your First ROS2 Package' page + links: + - name: Creating Your First ROS2 Package page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Custom ROS2 Interfaces + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Custom ROS2 Interfaces' page + links: + - name: Custom ROS2 Interfaces page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Custom-ROS2-Interfaces.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Getting Started With Ros2doctor + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Getting Started With Ros2doctor' page + links: + - name: Getting Started With Ros2doctor page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Getting-Started-With-Ros2doctor.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Pluginlib + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Pluginlib' page + links: + - name: Pluginlib page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Pluginlib.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Single Package Define And Use Interface + labels: + - tutorials + - beginner-client-libraries + - docs + description: >- + Check the documentation for the 'Single Package Define And Use Interface' + page + links: + - name: Single Package Define And Use Interface page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Single-Package-Define-And-Use-Interface.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using Parameters In A Class CPP + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Using Parameters In A Class CPP' page + links: + - name: Using Parameters In A Class CPP page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Using-Parameters-In-A-Class-CPP.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using Parameters In A Class Python + labels: + - tutorials + - beginner-client-libraries + - docs + description: Check the documentation for the 'Using Parameters In A Class Python' page + links: + - name: Using Parameters In A Class Python page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Using-Parameters-In-A-Class-Python.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Simple Cpp Publisher And Subscriber + labels: + - tutorials + - beginner-client-libraries + - docs + description: >- + Check the documentation for the 'Writing A Simple Cpp Publisher And + Subscriber' page + links: + - name: Writing A Simple Cpp Publisher And Subscriber page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-Publisher-And-Subscriber.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Simple Cpp Service And Client + labels: + - tutorials + - beginner-client-libraries + - docs + description: >- + Check the documentation for the 'Writing A Simple Cpp Service And Client' + page + links: + - name: Writing A Simple Cpp Service And Client page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-Service-And-Client.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Simple Py Publisher And Subscriber + labels: + - tutorials + - beginner-client-libraries + - docs + description: >- + Check the documentation for the 'Writing A Simple Py Publisher And + Subscriber' page + links: + - name: Writing A Simple Py Publisher And Subscriber page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Py-Publisher-And-Subscriber.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Simple Py Service And Client + labels: + - tutorials + - beginner-client-libraries + - docs + description: >- + Check the documentation for the 'Writing A Simple Py Service And Client' + page + links: + - name: Writing A Simple Py Service And Client page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Py-Service-And-Client.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Demos + labels: + - tutorials + - docs + description: Check the documentation for the 'Demos' page + links: + - name: Demos page + url: https://docs.ros.org/en/kilted/Tutorials/Demos.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Creating a content filtering subscription + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Creating a content filtering subscription' page + links: + - name: Creating a content filtering subscription page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Content-Filtering-Subscription.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Setting up efficient intra-process communication + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Setting up efficient intra-process communication' page + links: + - name: Setting up efficient intra-process communication page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Intra-Process-Communication.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Logging + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Logging' page + links: + - name: Logging page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Logging-and-logger-configuration.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Managing nodes with managed lifecycles + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Managing nodes with managed lifecycles' page + links: + - name: Managing nodes with managed lifecycles page + url: https://docs.ros.org/en/kilted/Tutorials/Demos/Managed-Nodes.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using quality-of-service settings for lossy networks + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Using quality-of-service settings for lossy networks' page + links: + - name: Using quality-of-service settings for lossy networks page + url: https://docs.ros.org/en/kilted/Tutorials/Demos/Quality-of-Service.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Understanding real-time programming + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Understanding real-time programming' page + links: + - name: Understanding real-time programming page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Real-Time-Programming.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Configure service introspection + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Configure service introspection' page + links: + - name: Configure service introspection page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Service-Introspection.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Configure action introspection + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Configure action introspection' page + links: + - name: Configure action introspection page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Action-Introspection.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Experimenting with a dummy robot + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Experimenting with a dummy robot' page + links: + - name: Experimenting with a dummy robot page + url: https://docs.ros.org/en/kilted/Tutorials/Demos/dummy-robot-demo.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Wait for acknowledgment + labels: + - tutorials + - demos + - docs + description: Check the documentation for the 'Wait for acknowledgment' page + links: + - name: Wait for acknowledgment page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Demos/Wait-for-Acknowledgment.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Intermediate + labels: + - tutorials + - docs + description: Check the documentation for the 'Intermediate' page + links: + - name: Intermediate page + url: https://docs.ros.org/en/kilted/Tutorials/Intermediate.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Composition + labels: + - tutorials + - intermediate + - docs + description: Check the documentation for the 'Composition' page + links: + - name: Composition page + url: https://docs.ros.org/en/kilted/Tutorials/Intermediate/Composition.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Creating an Action + labels: + - tutorials + - intermediate + - docs + description: Check the documentation for the 'Creating an Action' page + links: + - name: Creating an Action page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Creating-an-Action.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Creating Launch Files + labels: + - tutorials + - intermediate + - launch + - docs + description: Check the documentation for the 'Creating Launch Files' page + links: + - name: Creating Launch Files page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Launch/Creating-Launch-Files.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Launch Main + labels: + - tutorials + - intermediate + - launch + - docs + description: Check the documentation for the 'Launch Main' page + links: + - name: Launch Main page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Launch/Launch-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Launch system + labels: + - tutorials + - intermediate + - launch + - docs + description: Check the documentation for the 'Launch system' page + links: + - name: Launch system page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Launch/Launch-system.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using Event Handlers + labels: + - tutorials + - intermediate + - launch + - docs + description: Check the documentation for the 'Using Event Handlers' page + links: + - name: Using Event Handlers page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Launch/Using-Event-Handlers.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using ROS2 Launch For Large Projects + labels: + - tutorials + - intermediate + - launch + - docs + description: >- + Check the documentation for the 'Using ROS2 Launch For Large Projects' + page + links: + - name: Using ROS2 Launch For Large Projects page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Launch/Using-ROS2-Launch-For-Large-Projects.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using Substitutions + labels: + - tutorials + - intermediate + - launch + - docs + description: Check the documentation for the 'Using Substitutions' page + links: + - name: Using Substitutions page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Launch/Using-Substitutions.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Monitoring For Parameter Changes CPP + labels: + - tutorials + - intermediate + - docs + description: >- + Check the documentation for the 'Monitoring For Parameter Changes CPP' + page + links: + - name: Monitoring For Parameter Changes CPP page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Monitoring-For-Parameter-Changes-CPP.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Monitoring For Parameter Changes Python + labels: + - tutorials + - intermediate + - docs + description: >- + Check the documentation for the 'Monitoring For Parameter Changes Python' + page + links: + - name: Monitoring For Parameter Changes Python page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Monitoring-For-Parameter-Changes-Python.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RViz Custom Display + labels: + - tutorials + - intermediate + - rviz + - rviz-custom-display + - docs + description: Check the documentation for the 'RViz Custom Display' page + links: + - name: RViz Custom Display page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/RViz/RViz-Custom-Display/RViz-Custom-Display.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RViz Main + labels: + - tutorials + - intermediate + - rviz + - docs + description: Check the documentation for the 'RViz Main' page + links: + - name: RViz Main page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/RViz/RViz-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: RViz User Guide + labels: + - tutorials + - intermediate + - rviz + - rviz-user-guide + - docs + description: Check the documentation for the 'RViz User Guide' page + links: + - name: RViz User Guide page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/RViz/RViz-User-Guide/RViz-User-Guide.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Rosdep + labels: + - tutorials + - intermediate + - docs + description: Check the documentation for the 'Rosdep' page + links: + - name: Rosdep page + url: https://docs.ros.org/en/kilted/Tutorials/Intermediate/Rosdep.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: CLI + labels: + - tutorials + - intermediate + - testing + - docs + description: Check the documentation for the 'CLI' page + links: + - name: CLI page + url: https://docs.ros.org/en/kilted/Tutorials/Intermediate/Testing/CLI.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Cpp Testing + labels: + - tutorials + - intermediate + - testing + - docs + description: Check the documentation for the 'Writing Basic Tests with C++ with GTest' page + links: + - name: Writing Basic Tests with C++ with GTest + url: https://docs.ros.org/en/kilted/Tutorials/Intermediate/Testing/Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Python + labels: + - tutorials + - intermediate + - testing + - docs + description: Check the documentation for the 'Python' page + links: + - name: Python page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Testing/Python.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Testing Main + labels: + - tutorials + - intermediate + - testing + - docs + description: Check the documentation for the 'Testing Main' page + links: + - name: Testing Main page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Testing/Testing-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Adding A Frame Cpp + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Adding A Frame Cpp' page + links: + - name: Adding A Frame Cpp page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Adding-A-Frame-Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Adding A Frame Py + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Adding A Frame Py' page + links: + - name: Adding A Frame Py page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Adding-A-Frame-Py.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Debugging Tf2 Problems + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Debugging Tf2 Problems' page + links: + - name: Debugging Tf2 Problems page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Debugging-Tf2-Problems.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Introduction To Tf2 + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Introduction To Tf2' page + links: + - name: Introduction To Tf2 page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Learning About Tf2 And Time Cpp + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Using time (C++)' page + links: + - name: Using time (C++) page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Learning-About-Tf2-And-Time-Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Quaternion Fundamentals + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Quaternion Fundamentals' page + links: + - name: Quaternion Fundamentals page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Quaternion-Fundamentals.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Tf2 Main + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Tf2 Main' page + links: + - name: Tf2 Main page + url: https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Tf2-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Traveling in time (C++) + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Traveling in time (C++)' page + links: + - name: Traveling in time (C++) page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Time-Travel-With-Tf2-Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using stamped datatypes with tf2_ros::MessageFilter + labels: + - tutorials + - intermediate + - tf2 + - docs + description: >- + Check the documentation for the 'Using stamped datatypes with tf2_ros::MessageFilter' page + links: + - name: Using stamped datatypes with tf2_ros::MessageFilter page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Using-Stamped-Datatypes-With-Tf2-Ros-MessageFilter.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Tf2 Broadcaster Cpp + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Writing A Tf2 Broadcaster Cpp' page + links: + - name: Writing A Tf2 Broadcaster Cpp page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Broadcaster-Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Tf2 Broadcaster Py + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Writing A Tf2 Broadcaster Py' page + links: + - name: Writing A Tf2 Broadcaster Py page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Broadcaster-Py.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Tf2 Listener Cpp + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Writing A Tf2 Listener Cpp' page + links: + - name: Writing A Tf2 Listener Cpp page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Tf2 Listener Py + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Writing A Tf2 Listener Py' page + links: + - name: Writing A Tf2 Listener Py page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Py.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Tf2 Static Broadcaster Cpp + labels: + - tutorials + - intermediate + - tf2 + - docs + description: >- + Check the documentation for the 'Writing A Tf2 Static Broadcaster Cpp' + page + links: + - name: Writing A Tf2 Static Broadcaster Cpp page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Static-Broadcaster-Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing A Tf2 Static Broadcaster Py + labels: + - tutorials + - intermediate + - tf2 + - docs + description: Check the documentation for the 'Writing A Tf2 Static Broadcaster Py' page + links: + - name: Writing A Tf2 Static Broadcaster Py page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Static-Broadcaster-Py.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Adding Physical and Collision Properties to a URDF Model + labels: + - tutorials + - intermediate + - urdf + - docs + description: >- + Check the documentation for the 'Adding Physical and Collision Properties + to a URDF Model' page + links: + - name: Adding Physical and Collision Properties to a URDF Model page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/Adding-Physical-and-Collision-Properties-to-a-URDF-Model.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Building a Movable Robot Model with URDF + labels: + - tutorials + - intermediate + - urdf + - docs + description: >- + Check the documentation for the 'Building a Movable Robot Model with URDF' + page + links: + - name: Building a Movable Robot Model with URDF page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/Building-a-Movable-Robot-Model-with-URDF.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Building a Visual Robot Model with URDF from Scratch + labels: + - tutorials + - intermediate + - urdf + - docs + description: >- + Check the documentation for the 'Building a Visual Robot Model with URDF + from Scratch' page + links: + - name: Building a Visual Robot Model with URDF from Scratch page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/Building-a-Visual-Robot-Model-with-URDF-from-Scratch.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Exporting an URDF File + labels: + - tutorials + - intermediate + - urdf + - docs + description: Check the documentation for the 'Exporting an URDF File' page + links: + - name: Exporting an URDF File page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/Exporting-an-URDF-File.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: URDF Main + labels: + - tutorials + - intermediate + - urdf + - docs + description: Check the documentation for the 'URDF Main' page + links: + - name: URDF Main page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/URDF-Main.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using URDF with Robot State Publisher + labels: + - tutorials + - intermediate + - urdf + - docs + description: >- + Check the documentation for the 'Using URDF with Robot State Publisher' + page + links: + - name: Using URDF with Robot State Publisher page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/Using-URDF-with-Robot-State-Publisher.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Using Xacro to Clean Up a URDF File + labels: + - tutorials + - intermediate + - urdf + - docs + description: Check the documentation for the 'Using Xacro to Clean Up a URDF File' page + links: + - name: Using Xacro to Clean Up a URDF File page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/URDF/Using-Xacro-to-Clean-Up-a-URDF-File.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing a Composable Node + labels: + - tutorials + - intermediate + - docs + description: Check the documentation for the 'Writing a Composable Node' page + links: + - name: Writing a Composable Node page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Writing-a-Composable-Node.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing an Action Server and Client (Cpp) + labels: + - tutorials + - intermediate + - writing-an-action-server-client + - docs + description: Check the documentation for the 'Writing an action server and client' page + links: + - name: Writing an action server and client (C++) + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Writing-an-Action-Server-Client/Cpp.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Writing an Action Server and Client (Python) + labels: + - tutorials + - intermediate + - writing-an-action-server-client + - docs + description: Check the documentation for the 'Writing an action server and client' page + links: + - name: Writingan action server and client (Python) + url: >- + https://docs.ros.org/en/kilted/Tutorials/Intermediate/Writing-an-Action-Server-Client/Py.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Miscellaneous + labels: + - tutorials + - docs + description: Check the documentation for the 'Miscellaneous' page + links: + - name: Miscellaneous page + url: https://docs.ros.org/en/kilted/Tutorials/Miscellaneous.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Building ROS2 Package with eclipse 2021 06 + labels: + - tutorials + - miscellaneous + - docs + description: >- + Check the documentation for the 'Building ROS2 Package with eclipse 2021 + 06' page + links: + - name: Building ROS2 Package with eclipse 2021 06 page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Miscellaneous/Building-ROS2-Package-with-eclipse-2021-06.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Building Realtime rt_preempt kernel for ROS 2 + labels: + - tutorials + - miscellaneous + - docs + description: >- + Check the documentation for the 'Building Realtime rt_preempt kernel for + ROS 2' page + links: + - name: Building Realtime rt_preempt kernel for ROS 2 page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Miscellaneous/Building-Realtime-rt_preempt-kernel-for-ROS-2.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Deploying ROS 2 on IBM Cloud + labels: + - tutorials + - miscellaneous + - docs + description: Check the documentation for the 'Deploying ROS 2 on IBM Cloud' page + links: + - name: Deploying ROS 2 on IBM Cloud page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Miscellaneous/Deploying-ROS-2-on-IBM-Cloud.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. + - name: Eclipse Oxygen with ROS 2 and rviz2 + labels: + - tutorials + - miscellaneous + - docs + description: Check the documentation for the 'Eclipse Oxygen with ROS 2 and rviz2' page + links: + - name: Eclipse Oxygen with ROS 2 and rviz2 page + url: >- + https://docs.ros.org/en/kilted/Tutorials/Miscellaneous/Eclipse-Oxygen-with-ROS-2-and-rviz2.html + checks: + - name: I was able to follow the documentation. + - name: The documentation seemed clear to me. + - name: The documentation didn't have any obvious errors. diff --git a/config/kilted/requirements/features-cli.yaml b/config/kilted/requirements/features-cli.yaml new file mode 100644 index 0000000..6eabb2f --- /dev/null +++ b/config/kilted/requirements/features-cli.yaml @@ -0,0 +1,934 @@ +requirements: + - name: Check action Cli + labels: + - ros2cli + - feature + - ros2action + checks: + - name: Check info + try: + - stdin: ros2 run examples_rclcpp_minimal_action_server action_server_member_functions + terminal: 1 + - stdin: ros2 action info /fibonacci + terminal: 2 + expect: + - stdout: | + Action: /fibonacci + Action clients: 0 + Action servers: 1 + /minimal_action_server + terminal: 2 + - name: Check list + try: + - stdin: ros2 run examples_rclcpp_minimal_action_server action_server_member_functions + terminal: 1 + - stdin: ros2 action list + terminal: 2 + expect: + - stdout: /fibonacci + terminal: 2 + - name: Check send_goal + try: + - stdin: ros2 run examples_rclcpp_minimal_action_server action_server_member_functions + terminal: 1 + - stdin: ros2 action send_goal /fibonacci example_interfaces/action/Fibonacci order:\ 2 + terminal: 2 + expect: + - stdout: | + Waiting for an action server to become available... + Sending goal: + order: 2 + + Goal accepted with ID: 0110dbd59e804374bff8e4900c3201e8 + + Result: + sequence: + - 0 + - 1 + - 1 + + Goal finished with status: SUCCEEDED + terminal: 2 + + - name: Check ROS 2 bag CLI + labels: + - ros2cli + - feature + - ros2bag + checks: + - name: Check record + try: + - stdin: ros2 run demo_nodes_cpp talker + terminal: 1 + note: You should stop the talker once the recording is stopped. + - stdin: ros2 bag record /chatter -o my-bag + note: Run for a few seconds and then hit Ctrl-C to stop the bag recording. + terminal: 2 + expect: + - note: You should see a folder named my-bag in the current directory + - name: Check info + try: + - note: Continuing from the previous check. + - stdin: ros2 bag info my-bag + expect: + - note: Something like the following + stdout: | + Files: my-bag_0.mcap + Bag size: 3.0 KiB + Storage id: mcap + Duration: 3.999s + Start: Apr 2 2023 13:45:47.834 (1680414347.834) + End: Apr 2 2023 13:45:51.834 (1680414351.834) + Messages: 5 + Topic information: Topic: /chatter | Type: std_msgs/msg/String | Count: 5 | Serialization Format: cdr + - name: Check play + try: + - note: Continuing from the previous two checks. Make sure that the talker is stopped. + - stdin: ros2 bag play -l my-bag + note: The `-l` option loops the bag. You should kill this process eventually with Ctrl-C. + terminal: 1 + - stdin: ros2 topic echo /chatter + terminal: 2 + expect: + - stdout: | + --- + data: 'Hello World: 77' + --- + data: 'Hello World: 78' + --- + data: 'Hello World: 75' + --- + data: 'Hello World: 76' + --- + data: 'Hello World: 77' + --- + note: Something like the following. + terminal: 2 + + - name: Check ROS 2 component CLI + labels: + - ros2cli + - feature + - ros2component + checks: + - name: Check list + try: + - stdin: ros2 run rclcpp_components component_container + terminal: 1 + - stdin: ros2 component list + terminal: 2 + expect: + - stdout: /ComponentManager + terminal: 2 + - name: Check load + try: + - stdin: ros2 run rclcpp_components component_container + terminal: 1 + - stdin: ros2 component load /ComponentManager action_tutorials_cpp action_tutorials_cpp::FibonacciActionServer + terminal: 2 + expect: + - stdout: | + [INFO] [1680446030.083590920] [ComponentManager]: Found class: rclcpp_components::NodeFactoryTemplate + [INFO] [1680446030.083610890] [ComponentManager]: Instantiate class: rclcpp_components::NodeFactoryTemplate + terminal: 1 + - stdout: Loaded component 1 into '/ComponentManager' container node as '/fibonacci_action_server' + terminal: 2 + - name: Check standalone + try: + - stdin: ros2 run rclcpp_components component_container + terminal: 1 + - stdin: ros2 component standalone action_tutorials_cpp action_tutorials_cpp::FibonacciActionServer + terminal: 2 + - stdin: ros2 component list + terminal: 3 + expect: + - stdout: | + [INFO] [1680446030.083590920] [ComponentManager]: Found class: rclcpp_components::NodeFactoryTemplate + [INFO] [1680446030.083610890] [ComponentManager]: Instantiate class: rclcpp_components::NodeFactoryTemplate + terminal: 2 + - stdout: | + /ComponentManager + /standalone_container_8269218e7494 + 1 /fibonacci_action_server + terminal: 3 + - name: Check types + try: + - stdin: ros2 component types + expect: + - note: Something like the following + stdout: | + robot_state_publisher + robot_state_publisher::RobotStatePublisher + tf2_ros + tf2_ros::StaticTransformBroadcasterNode + quality_of_service_demo_cpp + quality_of_service_demo::MessageLostListener + quality_of_service_demo::MessageLostTalker + quality_of_service_demo::QosOverridesListener + quality_of_service_demo::QosOverridesTalker + image_tools + image_tools::Cam2Image + image_tools::ShowImage + logging_demo + logging_demo::LoggerConfig + logging_demo::LoggerUsage + examples_rclcpp_wait_set + Talker + Listener + examples_rclcpp_minimal_subscriber + WaitSetSubscriber + StaticWaitSetSubscriber + TimeTriggeredWaitSetSubscriber + demo_nodes_cpp_native + demo_nodes_cpp_native::Talker + demo_nodes_cpp + demo_nodes_cpp::OneOffTimerNode + demo_nodes_cpp::ReuseTimerNode + demo_nodes_cpp::ServerNode + demo_nodes_cpp::ClientNode + demo_nodes_cpp::IntrospectionServiceNode + demo_nodes_cpp::IntrospectionClientNode + demo_nodes_cpp::ListParameters + demo_nodes_cpp::ParameterBlackboard + demo_nodes_cpp::SetAndGetParameters + demo_nodes_cpp::ParameterEventsAsyncNode + demo_nodes_cpp::EvenParameterNode + demo_nodes_cpp::SetParametersCallback + demo_nodes_cpp::ContentFilteringPublisher + demo_nodes_cpp::ContentFilteringSubscriber + demo_nodes_cpp::Talker + demo_nodes_cpp::LoanedMessageTalker + demo_nodes_cpp::SerializedMessageTalker + demo_nodes_cpp::Listener + demo_nodes_cpp::SerializedMessageListener + demo_nodes_cpp::ListenerBestEffort + composition + composition::Talker + composition::Listener + composition::NodeLikeListener + composition::Server + composition::Client + action_tutorials_cpp + action_tutorials_cpp::FibonacciActionClient + action_tutorials_cpp::FibonacciActionServer + - name: Check unload + try: + - stdin: ros2 run rclcpp_components component_container + terminal: 1 + - stdin: ros2 component load /ComponentManager action_tutorials_cpp action_tutorials_cpp::FibonacciActionServer + terminal: 2 + - stdin: ros2 component unload /ComponentManager 1 + terminal: 3 + expect: + - stdout: | + Loaded component 1 into '/ComponentManager' container node as '/fibonacci_action_server' + terminal: 2 + - stdout: | + Unloaded component 1 from '/ComponentManager' container node + terminal: 3 + + - name: Check ROS 2 daemon CLI + labels: + - ros2cli + - feature + - ros2daemon + checks: + - name: Check status + try: + - stdin: ros2 daemon status + expect: + - stdout: The daemon is running + - name: Stop the daemon + try: + - stdin: ros2 daemon stop + expect: + - stdout: The daemon has been stopped + - name: Check that the daemon is not running + try: + - stdin: ros2 daemon status + expect: + - stdout: The daemon is not running + - name: Restart the daemon + try: + - stdin: ros2 daemon start + expect: + - stdout: The daemon has been started + - name: Check restart + try: + - stdin: ros2 daemon status + expect: + - stdout: The daemon is running + + - name: Check ROS 2 doctor CLI + labels: + - ros2cli + - feature + - ros2doctor + checks: + - name: Check `-r` + try: + - stdin: ros2 doctor -r + expect: + - note: A large report is generated with several sections. + - name: Check `-rf` + try: + - stdin: ros2 doctor -rf + expect: + - note: A lot of checks and a summary of the checks is given (e.g., 'All 5 checks passed'). + - name: Check `-iw` + try: + - stdin: ros2 doctor -iw + expect: + - note: A lot of checks and a summary of the checks is given (e.g., '2/5 checks passed'). + - name: Check hello + try: + - stdin: ros2 doctor hello + expect: + - note: You'll see repeated messages that look somewhat like the following. + stdout: | + MULTIMACHINE COMMUNICATION SUMMARY + Topic: /canyouhearme, Published Msg Count: 11 + Subscribed from: + Hostname Msg Count /1.0s + Multicast Group/Port: 225.0.0.1/49150, Sent Msg Count: 11 + Received from: + Hostname Msg Count /1.0s + ------------------------------------------------------------ + + - name: Check ROS 2 wtf CLI + labels: + - ros2cli + - feature + - ros2wtf + description: '`ros2 wtf` is an alias for `ros2 doctor`.' + checks: + - name: Check `-r` + try: + - stdin: ros2 wtf -r + expect: + - note: A large report is generated with several sections. + - name: Check `-rf` + try: + - stdin: ros2 wtf -rf + expect: + - note: A lot of checks and a summary of the checks is given (e.g., 'All 5 checks passed'). + - name: Check `-iw` + try: + - stdin: ros2 wtf -iw + expect: + - note: A lot of checks and a summary of the checks is given (e.g., '2/5 checks passed'). + - name: Check hello + try: + - stdin: ros2 wtf hello + expect: + - note: You'll see repeated messages that look somewhat like the following. + stdout: | + MULTIMACHINE COMMUNICATION SUMMARY + Topic: /canyouhearme, Published Msg Count: 11 + Subscribed from: + Hostname Msg Count /1.0s + Multicast Group/Port: 225.0.0.1/49150, Sent Msg Count: 11 + Received from: + Hostname Msg Count /1.0s + ------------------------------------------------------------ + + - name: Check ROS 2 interface CLI + labels: + - ros2cli + - feature + - ros2interface + checks: + - name: Check list + try: + - stdin: ros2 interface list + expect: + - note: A large list of all messages, services, and actions is given. + - name: Check package + try: + - stdin: ros2 interface package turtlesim_msgs + expect: + - stdout: | + turtlesim_msgs/srv/TeleportRelative + turtlesim_msgs/srv/Kill + turtlesim_msgs/msg/Pose + turtlesim_msgs/srv/TeleportAbsolute + turtlesim_msgs/srv/SetPen + turtlesim_msgs/action/RotateAbsolute + turtlesim_msgs/srv/Spawn + turtlesim_msgs/msg/Color + - name: Check packages + try: + - stdin: ros2 interface packages + expect: + - note: A list of all of the packages that define messages, services, or actions is given. An example is as follows. + - stdout: | + action_msgs + action_tutorials_interfaces + actionlib_msgs + builtin_interfaces + ... + turtlesim + unique_identifier_msgs + visualization_msgs + - name: Check proto + try: + - stdin: ros2 interface proto std_msgs/msg/Header + expect: + - stdout: | + "stamp: + sec: 0 + nanosec: 0 + frame_id: '' + " + - name: Check show + try: + - stdin: ros2 interface show std_msgs/msg/Header + expect: + - stdout: | + # Standard metadata for higher-level stamped data types. + # This is generally used to communicate timestamped data + # in a particular coordinate frame. + + # Two-integer timestamp that is expressed as seconds and nanoseconds. + builtin_interfaces/Time stamp + int32 sec + uint32 nanosec + + # Transform frame with which this data is associated. + string frame_id + + - name: Check ROS 2 launch CLI + labels: + - ros2cli + - feature + - ros2launch + checks: + - name: Check launch package + try: + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py + expect: + - note: You should see something like the following + stdout: | + [INFO] [launch]: All log files can be found below /home/parallels/.ros/log/2022-03-21-17-38-54-737866-parallels-Parallels-Virtual-Platform-3717 + [INFO] [launch]: Default logging verbosity is set to INFO + [INFO] [talker-1]: process started with pid [3722] + [INFO] [listener-2]: process started with pid [3724] + [talker-1] [INFO] [1647909535.937731548] [talker]: Publishing: 'Hello World: 1' + [listener-2] [INFO] [1647909535.938337387] [listener]: I heard: [Hello World: 1] + [talker-1] [INFO] [1647909536.937932068] [talker]: Publishing: 'Hello World: 2' + [listener-2] [INFO] [1647909536.938125486] [listener]: I heard: [Hello World: 2] + [talker-1] [INFO] [1647909537.936162331] [talker]: Publishing: 'Hello World: 3' + [listener-2] [INFO] [1647909537.936366391] [listener]: I heard: [Hello World: 3] + ... + + - name: Check launch launch file directly + try: + - stdin: curl https://raw.githubusercontent.com/ros2/demos/master/demo_nodes_cpp/launch/topics/talker_listener_launch.py > /tmp/talker_listener_launch.py + note: Download a launch file, for example with `curl`. + - stdin: ros2 launch /tmp/talker_listener_launch.py + expect: + - note: You should see something like the following + stdout: | + [INFO] [launch]: All log files can be found below /home/parallels/.ros/log/2022-03-21-17-38-54-737866-parallels-Parallels-Virtual-Platform-3717 + [INFO] [launch]: Default logging verbosity is set to INFO + [INFO] [talker-1]: process started with pid [3722] + [INFO] [listener-2]: process started with pid [3724] + [talker-1] [INFO] [1647909535.937731548] [talker]: Publishing: 'Hello World: 1' + [listener-2] [INFO] [1647909535.938337387] [listener]: I heard: [Hello World: 1] + [talker-1] [INFO] [1647909536.937932068] [talker]: Publishing: 'Hello World: 2' + [listener-2] [INFO] [1647909536.938125486] [listener]: I heard: [Hello World: 2] + [talker-1] [INFO] [1647909537.936162331] [talker]: Publishing: 'Hello World: 3' + [listener-2] [INFO] [1647909537.936366391] [listener]: I heard: [Hello World: 3] + ... + + - name: Check ROS 2 Multicast CLI + labels: + - ros2cli + - feature + - ros2multicast + checks: + - name: Check send and receive + try: + - stdin: ros2 multicast receive + terminal: 1 + - stdin: ros2 multicast send + terminal: 2 + expect: + - stdout: | + Waiting for UDP multicast datagram... + Received from 10.211.55.9:59527: 'Hello World!' + terminal: 1 + - stdout: | + Sending one UDP multicast datagram... + terminal: 2 + + - name: Check ROS 2 Node CLI + labels: + - ros2cli + - feature + - ros2node + checks: + - name: Check info + try: + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py + note: Launch a node + terminal: 1 + - stdin: ros2 node info /talker + terminal: 2 + note: Get the info for the `talker` that was launched. + expect: + - terminal: 2 + note: You should see something similar to the following + stdout: | + Subscribers: + /parameter_events: rcl_interfaces/msg/ParameterEvent + Publishers: + /chatter: std_msgs/msg/String + /parameter_events: rcl_interfaces/msg/ParameterEvent + /rosout: rcl_interfaces/msg/Log + Service Servers: + /talker/describe_parameters: rcl_interfaces/srv/DescribeParameters + /talker/get_parameter_types: rcl_interfaces/srv/GetParameterTypes + /talker/get_parameters: rcl_interfaces/srv/GetParameters + /talker/get_type_description: type_description_interfaces/srv/GetTypeDescription + /talker/list_parameters: rcl_interfaces/srv/ListParameters + /talker/set_parameters: rcl_interfaces/srv/SetParameters + /talker/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically + Service Clients: + + Action Servers: + + Action Clients: + - name: Check list + try: + - stdin: ros2 launch demo_nodes_cpp talker_listener_launch.py + note: Launch a node + terminal: 1 + - stdin: ros2 node list + terminal: 2 + expect: + - terminal: 2 + stdout: | + /listener + /talker + + - name: Check ROS 2 Param CLI + labels: + - ros2cli + - feature + - ros2param + checks: + - name: Check delete + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param delete /turtlesim background_b + terminal: 2 + expect: + - stdout: | + Deleting parameter failed: cannot undeclare a statically typed parameter + terminal: 2 + - name: Check describe + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param describe /turtlesim background_b + terminal: 2 + expect: + - stdout: | + Parameter name: background_b + Type: integer + Description: Blue channel of the background color + Constraints: + Min value: 0 + Max value: 255 + Step: 1 + terminal: 2 + - name: Check dump + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param dump /turtlesim + terminal: 2 + expect: + - note: Something like the following. + terminal: 2 + stdout: | + /turtlesim: + ros__parameters: + background_b: 255 + background_g: 86 + background_r: 69 + holonomic: false + qos_overrides: + /parameter_events: + publisher: + depth: 1000 + durability: volatile + history: keep_last + reliability: reliable + start_type_description_service: true + use_sim_time: false + - name: Check get + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param get /turtlesim background_b + terminal: 2 + expect: + - stdout: | + Integer value is: 255 + terminal: 2 + note: Something like the following. + - name: Check list + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param list /turtlesim + terminal: 2 + expect: + - terminal: 2 + stdout: | + ros2 param list /turtlesim + background_b + background_g + background_r + holonomic + qos_overrides./parameter_events.publisher.depth + qos_overrides./parameter_events.publisher.durability + qos_overrides./parameter_events.publisher.history + qos_overrides./parameter_events.publisher.reliability + start_type_description_service + use_sim_time + - name: Check set + try: + - stdin: ros2 run turtlesim turtlesim_node + terminal: 1 + - stdin: ros2 param set /turtlesim background_b 0 + terminal: 2 + expect: + - note: The background in the turtlesim window should have become green + stdout: Set parameter successful + terminal: 2 + + - name: Check ROS 2 Pkg CLI + labels: + - ros2cli + - feature + - ros2pkg + checks: + - name: Check create + try: + - stdin: ros2 pkg create my-pkg + expect: + - note: Creates a folder named `my-pkg`, which has a `package.xml` file, `CMakeLists.txt` file, `src` folder, and `include` folder. + - name: Check executables + try: + - stdin: ros2 pkg executables turtlesim + expect: + - stdout: | + turtlesim draw_square + turtlesim mimic + turtlesim turtle_teleop_key + turtlesim turtlesim_node + - name: Check list + try: + - stdin: ros2 pkg list + expect: + - note: Lists all the packages, for example. + stdout: | + action_msgs + action_tutorials_cpp + action_tutorials_interfaces + ... + visualization_msgs + yaml_cpp_vendor + zstd_vendor + - name: Check prefix + try: + - stdin: ros2 pkg prefix turtlesim + expect: + - note: This varies depending on your install type. For example, from binaries on Ubuntu, it will be `/opt/ros/iron` + - name: Check xml + try: + - stdin: ros2 pkg xml turtlesim + expect: + - note: The full `package.xml` of the `turtlesim` package is printed to stdout. + + - name: Check ROS 2 run CLI + labels: + - ros2cli + - feature + - ros2run + checks: + - name: Check run + try: + - stdin: ros2 run demo_nodes_cpp talker + note: You'll have to kill this command with Ctrl-C. + expect: + - stdout: | + [INFO] [1649123362.906256690] [talker]: Publishing: 'Hello World: 1' + [INFO] [1649123363.906469087] [talker]: Publishing: 'Hello World: 2' + [INFO] [1649123364.905960807] [talker]: Publishing: 'Hello World: 3' + ... + - name: Check run with prefix + try: + - stdin: ros2 run --prefix 'gdb -ex run' demo_nodes_cpp talker + expect: + - note: This runs the talker node in gdb. Once the talker is running, you can hit Ctrl-C to get to the console and then type `q` to quit gdb. + + - name: Check ROS 2 security CLI on Linux + labels: + - ros2cli + - feature + - ros2security + - linux + links: + - name: Tutorial URL + url: https://github.com/ros2/sros2/blob/master/SROS2_Linux.md + checks: + - name: The Linux tutorials work + + - name: Check ROS 2 security CLI on Windows + labels: + - ros2cli + - feature + - ros2security + - windows + links: + - name: Tutorial URL + url: https://github.com/ros2/sros2/blob/master/SROS2_Windows.md + checks: + - name: The Linux tutorials work + + - name: Check ROS 2 service CLI + labels: + - ros2cli + - feature + - ros2service + checks: + - name: Check call + try: + - stdin: ros2 run demo_nodes_cpp add_two_ints_server + terminal: 1 + - stdin: | + ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 1, b: 2}" + terminal: 2 + expect: + - stdout: | + [INFO] [1649123971.736926946] [add_two_ints_server]: Incoming request + a: 1 b: 2 + terminal: 1 + - stdout: | + requester: making request: example_interfaces.srv.AddTwoInts_Request(a=1, b=2) + + response: + example_interfaces.srv.AddTwoInts_Response(sum=3) + terminal: 2 + + - name: Check find + try: + - stdin: ros2 run demo_nodes_cpp add_two_ints_server + terminal: 1 + - stdin: ros2 service find example_interfaces/srv/AddTwoInts + terminal: 2 + expect: + - stdout: /add_two_ints + terminal: 2 + - note: Trying to find another service message that is not being used will return no text to stdout; for example `ros2 service find example_interfaces/srv/SetBool` returns nothing. + - name: Check list + try: + - stdin: ros2 run demo_nodes_cpp add_two_ints_server + terminal: 1 + - stdin: ros2 service list + terminal: 2 + expect: + - stdout: | + /add_two_ints + /add_two_ints_server/describe_parameters + /add_two_ints_server/get_parameter_types + /add_two_ints_server/get_parameters + /add_two_ints_server/get_type_description + /add_two_ints_server/list_parameters + /add_two_ints_server/set_parameters + /add_two_ints_server/set_parameters_atomically + terminal: 2 + - name: Check type + try: + - stdin: ros2 run demo_nodes_cpp add_two_ints_server + terminal: 1 + - stdin: ros2 service type /add_two_ints + terminal: 2 + expect: + - stdout: example_interfaces/srv/AddTwoInts + terminal: 2 + + # TODO this doesn't seem to exist at least on a binary build + # - name: Check ROS 2 test CLI + # labels: + # - ros2cli + # - feature + # - ros2test + # checks: + # - name: Check + # try: + # - stdin: ros2 test + + - name: Check ROS 2 topic CLI + labels: + - ros2cli + - feature + - ros2topic + checks: + - name: Check bw + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic bw /joint_states + terminal: 2 + expect: + - terminal: 2 + note: Something like the following. + stdout: | + Subscribed to [/joint_states] + 5.04 KB/s from 50 messages + Message size mean: 0.10 KB min: 0.10 KB max: 0.10 KB + 5.02 KB/s from 100 messages + Message size mean: 0.10 KB min: 0.10 KB max: 0.10 KB + ... + - name: Check delay + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic delay /joint_states + terminal: 2 + expect: + - terminal: 2 + note: Something like the following. + stdout: | + average delay: 0.001 + min: 0.000s max: 0.001s std dev: 0.00012s window: 47 + average delay: 0.001 + min: 0.000s max: 0.002s std dev: 0.00021s window: 97 + ... + - name: Check echo + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic echo /joint_states + terminal: 2 + expect: + - terminal: 2 + note: Something like the following. + stdout: | + --- + header: + stamp: + sec: 1649125169 + nanosec: 961952254 + frame_id: '' + name: + - single_rrbot_joint1 + - single_rrbot_joint2 + position: + - -0.9985924716759744 + - -0.9985924716759744 + velocity: [] + effort: [] + --- + ... + - name: Check find + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic find sensor_msgs/msg/JointState + terminal: 2 + expect: + - terminal: 2 + stdout: /joint_states + - name: Check hz + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic hz /joint_states + terminal: 2 + expect: + - terminal: 2 + note: Something like the following. + stdout: | + average rate: 50.252 + min: 0.000s max: 0.043s std dev: 0.00451s window: 52 + average rate: 50.125 + min: 0.000s max: 0.043s std dev: 0.00492s window: 102 + ... + - name: Check info + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic info /joint_states + terminal: 2 + expect: + - terminal: 2 + stdout: | + Type: sensor_msgs/msg/JointState + Publisher count: 1 + Subscription count: 1 + - name: Check list + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic list + terminal: 2 + expect: + - terminal: 2 + stdout: | + /joint_states + /map + /parameter_events + /robot_description + /rosout + /scan + /tf + /tf_static + - name: Check type + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + terminal: 1 + - stdin: ros2 topic type /joint_states + terminal: 2 + expect: + - terminal: 2 + stdout: sensor_msgs/msg/JointState + - name: Check pub + try: + - stdin: ros2 run demo_nodes_cpp listener + terminal: 1 + - stdin: | + ros2 topic pub /chatter std_msgs/msg/String "{data: 'hi'}" + terminal: 2 + expect: + - terminal: 1 + note: Something like the following. + stdout: | + [INFO] [1649125551.479505602] [listener]: I heard: [hi] + [INFO] [1649125552.480104544] [listener]: I heard: [hi] + ... + - terminal: 2 + note: Something like the following. + stdout: | + publisher: beginning loop + publishing #1: std_msgs.msg.String(data='hi') + + publishing #2: std_msgs.msg.String(data='hi') + ... + + # TODO this doesn't seem to exist at least on a binary build + # - name: Check ROS 2 trace CLI + # labels: + # - ros2cli + # - feature + # - ros2trace + # checks: + # - name: Check + # try: + # - stdin: ros2 trace diff --git a/config/kilted/requirements/features-demos-py.yaml b/config/kilted/requirements/features-demos-py.yaml new file mode 100644 index 0000000..59c1efe --- /dev/null +++ b/config/kilted/requirements/features-demos-py.yaml @@ -0,0 +1,87 @@ +requirements: + - name: Topic executables in `demo_nodes_py` + labels: + - executable + - feature + - demos-py + checks: + - name: Check `listener` and `talker` + try: + - stdin: ros2 run demo_nodes_py talker + terminal: 1 + - stdin: ros2 run demo_nodes_py listener + terminal: 2 + - name: Check `listener` and `talker` QOS + try: + - stdin: ros2 run demo_nodes_py talker_qos + terminal: 1 + - stdin: ros2 run demo_nodes_py listener_qos + terminal: 2 + - name: Check serialized `listener` and `talker` + try: + - stdin: ros2 run demo_nodes_py talker + terminal: 1 + - stdin: ros2 run demo_nodes_py listener_serialized + terminal: 2 + - name: Service executables in `demo_nodes_py` + labels: + - executable + - feature + - demos-py + checks: + - name: Add two ints + try: + - stdin: ros2 run demo_nodes_py add_two_ints_client + terminal: 1 + - stdin: ros2 run demo_nodes_py add_two_ints_server + terminal: 2 + - name: Add two ints async + try: + - stdin: ros2 run demo_nodes_py add_two_ints_client_async + terminal: 1 + - stdin: ros2 run demo_nodes_py add_two_ints_server + terminal: 2 + - name: Parameter executables in `demo_nodes_py` + labels: + - executable + - feature + - demos-py + checks: + - name: Async parameter client + try: + - stdin: ros2 run demo_nodes_cpp parameter_blackboard + terminal: 1 + - stdin: ros2 run demo_nodes_py async_param_client + terminal: 2 + - name: Check Lifecyle node py + labels: + - executable + - feature + - demos-py + links: + - name: Lifecycle Py + url: https://github.com/ros2/demos/tree/kilted/lifecycle_py + checks: + - name: Check `listener` and `talker` + try: + - stdin: ros2 run lifecycle_py lifecycle_talker + terminal: 1 + - stdin: ros2 lifecycle nodes + terminal: 2 + - stdin: ros2 lifecycle set /lc_talker 1 + terminal: 2 + - stdin: ros2 lifecycle set /lc_talker 3 + terminal: 2 + expect: + - stdout: | + [INFO] [1680583079.479073069] [lc_talker]: on_configure() is called. + [INFO] [1680583080.439717509] [lc_talker]: Lifecycle publisher is inactive. Messages are not published. + terminal: 1 + - stdout: /lc_talker + terminal: 2 + - stdout: Transitioning successful + terminal: 2 + - stdout: | + [INFO] [1680583403.113550155] [lc_talker]: on_activate() is called. + [INFO] [1680583403.439875193] [lc_talker]: Lifecycle publisher is active. Publishing: [Lifecycle HelloWorld #323] + terminal: 2 diff --git a/config/kilted/requirements/features-development-env.yaml b/config/kilted/requirements/features-development-env.yaml new file mode 100644 index 0000000..fb1652d --- /dev/null +++ b/config/kilted/requirements/features-development-env.yaml @@ -0,0 +1,9 @@ +requirements: + - name: Sane development environment + labels: + - feature + - development + checks: + - name: Test message generation using .msg, .srv, .action and .idl on top of the installed environment. + description: | + Generate messages from .msg, .srv, and .action files, which will automatically create their .idl files. Additionally, ensure that messages can be generated from .idl files alone. diff --git a/config/kilted/requirements/features-executable-from-links.yaml b/config/kilted/requirements/features-executable-from-links.yaml new file mode 100644 index 0000000..72f9b48 --- /dev/null +++ b/config/kilted/requirements/features-executable-from-links.yaml @@ -0,0 +1,205 @@ +requirements: + - name: Composition executables + labels: + - executable + - feature + links: + - name: Composition demos + url: https://github.com/ros2/demos/blob/kilted/composition/README.md + checks: + - name: The executables in the README are present and work as expected. + - name: Demo Nodes (C++) executables + labels: + - executable + - feature + links: + - name: Demo Nodes C++ + url: https://github.com/ros2/demos/blob/kilted/demo_nodes_cpp/README.md + checks: + - name: The executables in the README are present and work as expected. + - name: Demo Nodes Native (C++) executables + labels: + - executable + - feature + links: + - name: Demo Nodes C++ native + url: https://github.com/ros2/demos/blob/kilted/demo_nodes_cpp_native/README.md + checks: + - name: The executables in the README are present and work as expected. + - name: Dummy Map Server executables + labels: + - executable + - feature + links: + - name: Dummy Map Server + url: https://github.com/ros2/demos/blob/kilted/dummy_robot/dummy_map_server/README.md#run + checks: + - name: The executables in the README are present and work as expected. + - name: Dummy Sensors executables + labels: + - executable + - feature + links: + - name: Dummy Sensors + url: https://github.com/ros2/demos/blob/kilted/dummy_robot/dummy_sensors/README.md#run + checks: + - name: The executables in the README are present and work as expected. + - name: Image Tools executables + labels: + - executable + - feature + links: + - name: Image Tools + url: https://github.com/ros2/demos/blob/kilted/image_tools/README.md#run + checks: + - name: The executables in the README are present and work as expected. + - name: Intra-process executables + labels: + - executable + - feature + links: + - name: Intra-process demos + url: https://github.com/ros2/demos/blob/kilted/intra_process_demo/README.md + checks: + - name: The executables in the README are present and work as expected. + - name: Launch testing + labels: + - executable + - feature + links: + - name: Launch testing examples + url: https://github.com/ros2/launch/blob/kilted/launch_testing/README.md#examples + checks: + - name: Clone the example repository + try: + - stdin: mkdir -p ~/launch_ws/src + - stdin: git clone https://github.com/ros2/launch -b iron ~/launch_ws/src/launch + - name: Test `hello_world_launch_test.py` + try: + - stdin: launch_test ~/launch_ws/src/launch/launch_testing/test/launch_testing/examples/hello_world_launch_test.py + - name: Test `good_proc_launch_test.py` + try: + - stdin: launch_test ~/launch_ws/src/launch/launch_testing/test/launch_testing/examples/good_proc_launch_test.py + - name: Test `terminating_proc_launch_test.py` + try: + - stdin: launch_test ~/launch_ws/src/launch/launch_testing/test/launch_testing/examples/terminating_proc_launch_test.py + - name: Test `args_launch_test.py` + try: + - note: Show the arguments + stdin: launch_test ~/launch_ws/src/launch/launch_testing/test/launch_testing/examples/args_launch_test.py --show-args + - note: Run the test + stdin: launch_test ~/launch_ws/src/launch/launch_testing/test/launch_testing/examples/args_launch_test.py dut_arg:=hey + - name: Test `context_launch_test.py` + try: + - stdin: launch_test ~/launch_ws/src/launch/launch_testing/test/launch_testing/examples/context_launch_test.py + - name: Quality of Service Demos + labels: + - executable + - feature + - qos + links: + - name: Demo URL + url: https://github.com/ros2/demos/blob/kilted/quality_of_service_demo/README.md + checks: + - name: Deadline with pause + try: + - stdin: ros2 run quality_of_service_demo_cpp deadline 600 --publish-for 5000 --pause-for 2000 + - stdin: ros2 run quality_of_service_demo_py deadline 600 --publish-for 5000 --pause-for 2000 + expect: + - note: The publisher will publish for 5 seconds, then pause for 2 - deadline events will start firing on both participants, until the publisher comes back. + - name: Deadline no pause + try: + - stdin: ros2 run quality_of_service_demo_cpp deadline 600 --publish-for 5000 --pause-for 0 + - stdin: ros2 run quality_of_service_demo_py deadline 600 --publish-for 5000 --pause-for 0 + expect: + - note: The publisher doesn't actually pause, no deadline misses should occur. + - name: Lifespan, some survive + try: + - stdin: ros2 run quality_of_service_demo_cpp lifespan 1000 --publish-count 10 --subscribe-after 3000 + - stdin: ros2 run quality_of_service_demo_py lifespan 1000 --publish-count 10 --subscribe-after 3000 + expect: + - note: | + After a few seconds, you should see (approximately) messages 4-9 printed from the subscriber. + + The first few messages, with 1 second lifespan, were gone by the time the subscriber joined after 3 seconds. + - name: Lifespan, all survive + try: + - stdin: ros2 run quality_of_service_demo_cpp lifespan 4000 --publish-count 10 --subscribe-after 3000 + - stdin: ros2 run quality_of_service_demo_py lifespan 4000 --publish-count 10 --subscribe-after 3000 + expect: + - note: | + After a few seconds, you should see all of the messages (0-9) printed from the subscriber. + + All messages, with their 4 second lifespan, survived until the subscriber joined. + - name: Liveliness + try: + - stdin: ros2 run quality_of_service_demo_cpp liveliness 1000 --kill-publisher-after 2000 + - stdin: ros2 run quality_of_service_demo_py liveliness 1000 --kill-publisher-after 2000 + expect: + - note: After 2 seconds, the publisher will be killed, and the subscriber will receive a callback 1 second after that notifying it that the liveliness has changed. + - name: Incompatible QoS Offered/Requested + try: + - stdin: ros2 run quality_of_service_demo_cpp incompatible_qos durability + - stdin: ros2 run quality_of_service_demo_py incompatible_qos durability + expect: + - note: | + The publisher in this demo will publish 5 messages, but also output a notification stating that its offered QoS is incompatible with the subscriber that is also created by this demo. The subscriber in this demo will similarly output a notification stating that its requested QoS is incompatible with the QoS offered by the publisher. + - name: Interactive Quality of Service Demo + try: + - stdin: ros2 run quality_of_service_demo_cpp interactive_publisher + terminal: 1 + - stdin: ros2 run quality_of_service_demo_cpp interactive_subscriber + terminal: 2 + - note: In the publisher's terminal, press `p` to manually assert the liveliness of the publisher, for when Liveliness kind is `MANUAL_BY_TOPIC`. + - note: In the publisher's terminal, press `s` to toggle enabling/disabling of publishing messages + - note: In the publisher and subscriber's terminal, press `q` to print the current QoS policy. + - note: In the publisher and subscriptions's terminal, press `x` to stop and exit the demo. + expect: + - note: All key-press commands work. + - name: Lifecycle demo + labels: + - executable + - feature + - lifecycle + links: + - name: Reference URL + url: https://github.com/ros2/demos/blob/kilted/lifecycle/README.rst + checks: + - name: Run files individually + try: + - stdin: ros2 run lifecycle lifecycle_talker + terminal: 1 + imageUrl: https://camo.githubusercontent.com/6af40d87a90146d4ef95dadbaf346b7aafab0fd885ea6c5c42cfa33e4230ba4c/68747470733a2f2f61736369696e656d612e6f72672f612f3234393034392e706e67 + - stdin: ros2 run lifecycle lifecycle_listener + terminal: 2 + imageUrl: https://camo.githubusercontent.com/e39630aeaf1a23341e89846256563cb02d42d50741ccfea51613cf660633998b/68747470733a2f2f61736369696e656d612e6f72672f612f3234393035302e706e67 + - stdin: ros2 run lifecycle lifecycle_service_client + terminal: 3 + imageUrl: https://camo.githubusercontent.com/e4e31422fa38b07a492b13be87cd629485b688060d7440ae5cd8386624598e8e/68747470733a2f2f61736369696e656d612e6f72672f612f3234393035312e706e67 + expect: + - note: The images match. + - name: Topic monitor + labels: + - executable + - feature + - topic_monitor + links: + - name: Reference URL + url: https://github.com/ros2/demos/blob/kilted/topic_monitor/README.md + checks: + - name: Comparing reliability QoS settings + try: + - note: | + You will need two machines with ROS 2: one mobile and one stationary. + - stdin: ros2 run topic_monitor topic_monitor --display + - stdin: ros2 launch topic_monitor reliability_demo_launch.py + note: | + Run the `ros2 launch topic_monitor reliability_demo_launch.py` executable on the stationary machine. This will start two nodes: one publishing in “reliable” mode, and one in “best effort”. + - stdin: ros2 run topic_monitor topic_monitor --display --allowed-latency 5 + note: | + Start the monitor on a mobile machine such as a laptop. Use `ros2 run topic_monitor topic_monitor --display --allowed-latency 5` to account for any latency that may occur re-sending the reliable messages. + - note: Take the mobile machine out of range of the monitor, and observe how the reception rates differ for the different topics. + expect: + - note: | + You should see that the "reliable" topic has a reception rate that is almost always either 0 or 100%, while the "best effort" topic has a reception rate that fluctuates based on the strength of the connection. + imageUrl: https://raw.githubusercontent.com/ros2/demos/kilted/topic_monitor/doc/reliability_comparison.png diff --git a/config/kilted/requirements/features-executable.yaml b/config/kilted/requirements/features-executable.yaml new file mode 100644 index 0000000..f4436f4 --- /dev/null +++ b/config/kilted/requirements/features-executable.yaml @@ -0,0 +1,393 @@ +# This requirements file is not perfect but it should be a useful starting point. +# It is intended to be copied into the saved requirements directory and then modified. +# +# This file was generated by 'make-executable-requirements-from-csv.ts' +# with data from 'executable-features.csv'. + +requirements: + - name: Executables in `quality_of_service_demo_cpp` + labels: + - executable + - feature + checks: + - name: Check `lifespan` + try: + - stdin: ros2 run quality_of_service_demo_cpp lifespan + - name: Check `liveliness` + try: + - stdin: ros2 run quality_of_service_demo_cpp liveliness + - name: Check `deadline` + try: + - stdin: ros2 run quality_of_service_demo_cpp deadline + - name: Executables in `quality_of_service_demo_py` + labels: + - executable + - feature + checks: + - name: Check `lifespan` + try: + - stdin: ros2 run quality_of_service_demo_py lifespan + - name: Check `liveliness` + try: + - stdin: ros2 run quality_of_service_demo_py liveliness + - name: Check `deadline` + try: + - stdin: ros2 run quality_of_service_demo_py deadline + - name: Executables in `lifecycle` + labels: + - executable + - feature + checks: + - name: Check `lifecycle_demo_launch.py` + try: + - stdin: ros2 launch lifecycle lifecycle_demo_launch.py + - name: Executables in `tf2_ros` + labels: + - executable + - feature + checks: + - name: Check `tf2_echo` + try: + - stdin: ros2 run tf2_ros tf2_echo + - name: Check `tf2_monitor` + try: + - stdin: ros2 run tf2_ros tf2_monitor + - name: Check `static_transform_publisher` + try: + - stdin: ros2 run tf2_ros static_transform_publisher --frame-id world --child-frame-id map + - name: Executables in `examples_rclcpp_minimal_publisher` + labels: + - executable + - feature + checks: + - name: Check `publisher_lambda` + try: + - stdin: ros2 run examples_rclcpp_minimal_publisher publisher_lambda + - name: Check `publisher_member_function` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_publisher + publisher_member_function + - name: Check `publisher_not_composable` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_publisher + publisher_not_composable + - name: Executables in `examples_rclcpp_minimal_subscriber` + labels: + - executable + - feature + checks: + - name: Check `subscriber_lambda` + try: + - stdin: ros2 run examples_rclcpp_minimal_subscriber subscriber_lambda + - name: Check `subscriber_member_function` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_subscriber + subscriber_member_function + - name: Check `subscriber_not_composable` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_subscriber + subscriber_not_composable + - name: Executables in `examples_rclcpp_minimal_service` + labels: + - executable + - feature + checks: + - name: Check `service_main` + try: + - stdin: ros2 run examples_rclcpp_minimal_service service_main + - name: Executables in `examples_rclcpp_minimal_client` + labels: + - executable + - feature + checks: + - name: Check `client_main` + try: + - stdin: ros2 run examples_rclcpp_minimal_client client_main + - name: Executables in `examples_rclcpp_minimal_composition` + labels: + - executable + - feature + checks: + - name: Check `composition_composed` + try: + - stdin: ros2 run examples_rclcpp_minimal_composition composition_composed + - name: Check `composition_publisher` + try: + - stdin: ros2 run examples_rclcpp_minimal_composition composition_publisher + - name: Check `composition_subscriber` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_composition + composition_subscriber + - name: Executables in `examples_rclcpp_minimal_action_server` + labels: + - executable + - feature + checks: + - name: Check `action_server_not_composable` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_action_server + action_server_not_composable + - name: Check `action_server_member_functions` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_action_server + action_server_member_functions + - name: Executables in `examples_rclcpp_minimal_action_client` + labels: + - executable + - feature + checks: + - name: Check `action_client_not_composable` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_action_client + action_client_not_composable + - name: Check `action_client_not_composable_with_cancel` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_action_client + action_client_not_composable_with_cancel + - name: Check `action_client_not_composable_with_feedback` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_action_client + action_client_not_composable_with_feedback + - name: Check `action_client_member_functions` + try: + - stdin: >- + ros2 run examples_rclcpp_minimal_action_client + action_client_member_functions + - name: Executables in `examples_rclcpp_multithreaded_executor` + labels: + - executable + - feature + checks: + - name: Check `multithreaded_executor` + try: + - stdin: >- + ros2 run examples_rclcpp_multithreaded_executor + multithreaded_executor + - name: Executables in `examples_rclpy_minimal_action_server` + labels: + - executable + - feature + checks: + - name: Check `server_defer` + try: + - stdin: ros2 run examples_rclpy_minimal_action_server server_defer + - name: Check `server_not_composable` + try: + - stdin: >- + ros2 run examples_rclpy_minimal_action_server + server_not_composable + - name: Check `server` + try: + - stdin: ros2 run examples_rclpy_minimal_action_server server + - name: Check `server_queue_goals` + try: + - stdin: ros2 run examples_rclpy_minimal_action_server server_queue_goals + - name: Check `server_single_goal` + try: + - stdin: ros2 run examples_rclpy_minimal_action_server server_single_goal + - name: Executables in `examples_rclpy_minimal_action_client` + labels: + - executable + - feature + checks: + - name: Check `client_cancel` + try: + - stdin: ros2 run examples_rclpy_minimal_action_client client_cancel + - name: Check `client_not_composable` + try: + - stdin: >- + ros2 run examples_rclpy_minimal_action_client + client_not_composable + - name: Check `client` + try: + - stdin: ros2 run examples_rclpy_minimal_action_client client + - name: Executables in `examples_rclpy_minimal_publisher` + labels: + - executable + - feature + checks: + - name: Check `publisher_local_function` + try: + - stdin: ros2 run examples_rclpy_minimal_publisher publisher_local_function + - name: Check `publisher_member_function` + try: + - stdin: >- + ros2 run examples_rclpy_minimal_publisher + publisher_member_function + - name: Check `publisher_old_school` + try: + - stdin: ros2 run examples_rclpy_minimal_publisher publisher_old_school + - name: Executables in `examples_rclpy_minimal_subscriber` + labels: + - executable + - feature + checks: + - name: Check `subscriber_lambda` + try: + - stdin: ros2 run examples_rclpy_minimal_subscriber subscriber_lambda + - name: Check `subscriber_member_function` + try: + - stdin: >- + ros2 run examples_rclpy_minimal_subscriber + subscriber_member_function + - name: Check `subscriber_old_school` + try: + - stdin: ros2 run examples_rclpy_minimal_subscriber subscriber_old_school + - name: Executables in `examples_rclpy_minimal_client` + labels: + - executable + - feature + checks: + - name: Check `client` + try: + - stdin: ros2 run examples_rclpy_minimal_client client + - name: Check `client_async` + try: + - stdin: ros2 run examples_rclpy_minimal_client client_async + - name: Check `client_async_member_function` + try: + - stdin: >- + ros2 run examples_rclpy_minimal_client + client_async_member_function + - name: Check `client_async_callback` + try: + - stdin: ros2 run examples_rclpy_minimal_client client_async_callback + - name: Executables in `examples_rclpy_minimal_service` + labels: + - executable + - feature + checks: + - name: Check `service` + try: + - stdin: ros2 run examples_rclpy_minimal_service service + - name: Check `service_member_function` + try: + - stdin: ros2 run examples_rclpy_minimal_service service_member_function + - name: Executables in `examples_rclpy_executors` + labels: + - executable + - feature + checks: + - name: Check `callback_group` + try: + - stdin: ros2 run examples_rclpy_executors callback_group + - name: Check `composed` + try: + - stdin: ros2 run examples_rclpy_executors composed + - name: Check `custom_callback_group` + try: + - stdin: ros2 run examples_rclpy_executors custom_callback_group + - name: Check `custom_executor` + try: + - stdin: ros2 run examples_rclpy_executors custom_executor + - name: Check `listener` + try: + - stdin: ros2 run examples_rclpy_executors listener + - name: Check `talker` + try: + - stdin: ros2 run examples_rclpy_executors talker + - name: Executables in `pendulum_control` + labels: + - executable + - feature + - linux + checks: + - name: Check `pendulum_demo` + try: + - stdin: ros2 run pendulum_control pendulum_demo + - name: Check `pendulum_teleop` + try: + - stdin: ros2 run pendulum_control pendulum_teleop + - name: Check `pendulum_logger` + try: + - stdin: ros2 run pendulum_control pendulum_logger + - name: Executables in `tlsf_cpp` + labels: + - executable + - feature + - linux + checks: + - name: Check `tlsf_allocator_example` + try: + - stdin: ros2 run tlsf_cpp tlsf_allocator_example + - name: Executables in `rttest` + labels: + - executable + - feature + - linux + checks: + - name: Run pendulum_demo to generate data + try: + - stdin: ros2 run pendulum_control pendulum_demo -f pendulum_demo_results + - name: Check `rttest_plot` + try: + - stdin: ros2 run rttest rttest_plot -s pendulum_demo_results + - name: Executables in `dummy_robot_bringup` + labels: + - executable + - feature + checks: + - name: Check `dummy_robot_bringup_launch.py` + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py + - name: Check `dummy_robot_bringup_launch.xml` + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.xml + - name: Check `dummy_robot_bringup_launch.yaml` + try: + - stdin: ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.yaml + - name: Executables in `rviz2` + labels: + - executable + - feature + checks: + - name: Check `rviz2` + try: + - stdin: ros2 run rviz2 rviz2 + - name: Executables in gz vendor packages + description: You will need to install the `desktop-full` or `simulation` variants before running this test. + labels: + - executable + - feature + - linux + checks: + - name: >- + Check `gz sim -v4 shapes.sdf` + try: + - stdin: >- + gz sim -v4 shapes.sdf + - name: Executables in `rqt` + labels: + - executable + - feature + checks: + - name: Check `rqt` + try: + - stdin: rqt + - name: Executables in `rosbag2` + labels: + - executable + - feature + checks: + - name: Check `ros2 bag record -a` + try: + - stdin: ros2 bag record -a + - name: Check `ros2 bag record ` + try: + - stdin: ros2 bag record + - name: Check `ros2 bag info ` + try: + - stdin: ros2 bag info + - name: Check `ros2 bag play ` + try: + - stdin: ros2 bag play diff --git a/config/kilted/requirements/features-new.yaml b/config/kilted/requirements/features-new.yaml new file mode 100644 index 0000000..2e0d53a --- /dev/null +++ b/config/kilted/requirements/features-new.yaml @@ -0,0 +1,156 @@ +requirements: + - name: Service introspection cpp + labels: + - executable + - feature + links: + - name: demo_nodes_cpp + url: https://github.com/ros2/demos/tree/kilted/demo_nodes_cpp + checks: + - name: Run the client and server + try: + - stdin: ros2 launch demo_nodes_cpp introspect_services_launch.py + terminal: 1 + - stdin: ros2 topic list --include-hidden-topics + terminal: 2 + expect: + - stdout: | + [introspection_service-1] a: 2 b: 3 + [introspection_client-2] [INFO] [1680585324.964598437] [introspection_client]: Result of add_two_ints: 5 + terminal: 1 + - stdout: | + /parameter_events + /rosout + terminal: 2 + - name: Configure service to send introspection metadata + try: + - stdin: ros2 launch demo_nodes_cpp introspect_services_launch.py + terminal: 1 + - stdin: ros2 param set /introspection_service service_configure_introspection metadata + terminal: 2 + - stdin: ros2 topic echo /add_two_ints/_service_event + terminal: 2 + expect: + - stdout: | + [introspection_service-1] a: 2 b: 3 + [introspection_client-2] [INFO] [1680585324.964598437] [introspection_client]: Result of add_two_ints: 5 + terminal: 1 + - stdout: | + info: + event_type: 1 + stamp: + sec: 1680586531 + nanosec: 726539263 + client_gid: + - 83 + - 143 + - 248 + - 38 + - 47 + - 231 + - 185 + - 230 + - 98 + - 17 + - 45 + - 187 + - 128 + - 124 + - 253 + - 156 + sequence_number: 46 + request: [] + response: [] + --- + info: + event_type: 2 + stamp: + sec: 1680586531 + nanosec: 726695003 + client_gid: + - 83 + - 143 + - 248 + - 38 + - 47 + - 231 + - 185 + - 230 + - 98 + - 17 + - 45 + - 187 + - 128 + - 124 + - 253 + - 156 + sequence_number: 46 + request: [] + response: [] + terminal: 2 + - name: Configure client to send introspection metadata + try: + - stdin: ros2 launch demo_nodes_cpp introspect_services_launch.py + terminal: 1 + - stdin: ros2 param set /introspection_client client_configure_introspection metadata + terminal: 2 + - stdin: ros2 topic echo /add_two_ints/_service_event + terminal: 2 + expect: + - stdout: | + [introspection_service-1] a: 2 b: 3 + [introspection_client-2] [INFO] [1680585324.964598437] [introspection_client]: Result of add_two_ints: 5 + terminal: 1 + - stdout: | + info: + event_type: 0 + stamp: + sec: 1680586637 + nanosec: 158736272 + client_gid: + - 1 + - 16 + - 34 + - 142 + - 114 + - 128 + - 207 + - 116 + - 98 + - 246 + - 204 + - 52 + - 0 + - 0 + - 0 + - 7 + sequence_number: 48 + request: [] + response: [] + --- + info: + event_type: 3 + stamp: + sec: 1680586637 + nanosec: 159157853 + client_gid: + - 1 + - 16 + - 34 + - 142 + - 114 + - 128 + - 207 + - 116 + - 98 + - 246 + - 204 + - 52 + - 0 + - 0 + - 0 + - 7 + sequence_number: 48 + request: [] + response: [] + terminal: 2 diff --git a/config/kilted/test-case.config.yaml b/config/kilted/test-case.config.yaml new file mode 100644 index 0000000..7926188 --- /dev/null +++ b/config/kilted/test-case.config.yaml @@ -0,0 +1,150 @@ +generation: 1 +translation_map: + noble: "Ubuntu Noble" + installType: "Install type" + fastdds: "FastDDS" + cyclonedds: "CycloneDDS" + connextdds: "ConnextDDS" + zenoh: "Zenoh" + rmw: "RMW implementation" +sets: + # Documentation + # This is only being run on one combination since this is testing the documentation + # and the functionality seen in the documentation will be tested on several other + # platforms, chip sets, and operating systems in the core and feature test cases + - filters: + - isMatch: true + labels: + - docs + - isMatch: false + labels: + - launch-files + - isMatch: false + name: Launch system + labels: + - launch + - isMatch: false + name: Webots + labels: + - webots + - isMatch: false + name: Deploying ROS 2 on IBM Cloud + - isMatch: false + name: Security on Two + - isMatch: false + name: Eclipse Oxygen with ROS 2 and rviz2 + - isMatch: false + name: Building Realtime rt_preempt kernel for ROS 2 + - isMatch: false + name: Releasing a ROS 2 package with bloom + - isMatch: false + name: Rosbag with ROS1 Bridge + # Ignore links which are redirects. + - isMatch: false + name: Ignition + labels: + - ignition + - isMatch: false + name: Recording A Bag From Your Own Node Python + dimensions: + rmw: + - fastdds + buildType: + - debian + os: + - noble + chip: + - amd64 + + # Features + # Noble + - filters: + - isMatch: true + labels: + - feature + - isMatch: false + labels: + - windows + dimensions: + rmw: + - fastdds + - cyclone + - zenoh + buildType: + - debian + os: + - noble + chip: + - amd64 + # Windows + - filters: + - isMatch: true + labels: + - feature + - isMatch: false + labels: + - linux + dimensions: + rmw: + - fastdds + - cyclone + buildType: + - binary + os: + - windows + chip: + - amd64 + + # Core + # Noble + - filters: + - isMatch: true + labels: + - core + dimensions: + rmw: + - fastdds + - cyclone + - connext + - zenoh + buildType: + - debian + - binary + chip: + - amd64 + - arm64 + os: + - noble + # Windows (no arm64) + - filters: + - isMatch: true + labels: + - core + dimensions: + rmw: + - fastdds + - cyclone + - connext + - zenoh + buildType: + - binary + - source + chip: + - amd64 + os: + - windows + + # Core for tear 3 platforms + - filters: + - isMatch: true + labels: + - core + dimensions: + rmw: + - fastdds + buildType: + - source + chip: + - amd64 + os: + - rhel 9