Skip to content
42 changes: 42 additions & 0 deletions source/About-analysis.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Analysis
========

Analyzing introspection data can help with improving it's performance.
This article summarizes the ROS developer tools and guidance available to help with analysis.

**Area: analysis, tools | Content-type: about | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:local:

Summary
-------

Understanding what is happening inside your robot's software starts with introspection, which allows you to collect data.
Analysis tools in ROS help you go further by making sense of that data and revealing insights at the right level of detail.

Core ROS packages:

* `tracetools <https://docs.ros.org/en/kilted/p/tracetools/>`_: Trace points for creating and debugging execution traces.
QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER CORE ROS PACKAGES THAT WE CAN LIST HERE?

Community-contributed packages:

* `Plotjuggler <https://index.ros.org/p/plotjuggler/>`_: Visualization and analysis tool for inspecting, monitoring, and interpreting time-series data.
QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER COMMUNITY-CONTRIBUTED PACKAGES THAT WE CAN LIST HERE?

Related content (placeholder)
-----------------------------

More articles about analysis:

* Example

* Example

FAQs (placeholder)
------------------

* Example

* Example
59 changes: 59 additions & 0 deletions source/About-builds.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Builds
======

The ability to work with multiple packages together is useful for developing complex robotics systems.
This article summarizes the ROS developer tools and guidance available to help with builds.


**Area: builds, tools | Content-type: about | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:local:

Summary
-------

Most ROS systems use multiple packages working together.
Build tools in ROS enable you to work with multiple packages in a single project and to share your packages with other members of the ROS community.

Core ROS packages:

* `colcon <https://docs.ros.org/en/lyrical/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html>`_: Tool for creating and building a ROS workspace.

* `ament_cmake <https://docs.ros.org/en/lyrical/How-To-Guides/Ament-CMake-Documentation.html>`_: Build system for CMake-based packages in ROS.

* `rosdoc2 <https://docs.ros.org/en/rolling/How-To-Guides/Documenting-a-ROS-2-Package.html>`_: Tool for documenting a ROS package.
QUESTION FOR THE REVIEWER: IN THE SPREADSHEET THERE IS A QUESTION MARK NEXT TO THIS ENTRY.
DO WE NEED TO INCLUDE ros2doc IN THIS LIST?

QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER CORE ROS PACKAGES THAT WE CAN LIST HERE?

Community-contributed packages:

QUESTION FOR THE REVIEWER: ARE THERE ANY COMMUNITY-CONTRIBUTED PACKAGES THAT WE CAN LIST HERE?

ROS build farm location
-----------------------

The ROS build farm is critical infrastructure maintained by Open Robotics.
It supports the building of source and binary packages, as well as continuous integration, testing, and analysis for ROS packages:

* `<https://build.ros2.org/>`_

Read more about ROS build farms: `ROS Build Farms — ROS 2 Documentation: Lyrical documentation <https://docs.ros.org/en/lyrical/The-ROS2-Project/Contributing/Build-Farms.html>`_

Related content (placeholder)
-----------------------------

More articles about builds:

* Example

* Example

FAQs (placeholder)
------------------

* Example

* Example
53 changes: 53 additions & 0 deletions source/About-introspection.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Introspection
=============

Sometimes you need to understand what is happening inside your robot's software.
This article summarizes the ROS developer tools and guidance available to help with introspection.

**Area: introspection, tools | Content-type: about | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:local:

Summary
-------

Understanding what is happening inside your robot's software is key to understanding how to improve it.
Introspection tools in ROS allow you to understand and modify, at run-time, node state, parameters, flowing data, and more.
ROS Analysis tools build further on this ability by enabling you to analyze the data gathered by introspection.

See :doc:`About analysis <About-analysis>`

Core ROS packages:

* `ros2 <https://github.com/ros2>`_: A set of software libraries and tools for building robot applications.

* `rqt <https://github.com/ros-visualization/rqt>`_: A set of graphical tools for visualizing and interacting with ROS data.

* `rosbag2 <https://docs.ros.org/en/kilted/p/ros2bag/>`_: Tool for recording and playing back data moving across topics, services and actions in a ROS application.

* `rosconsole <https://github.com/ros/rosconsole/>`_: A logging tool for monitoring, debugging, and diagnosing running applications.

Community-contributed packages:

* `colcon <https://docs.ros.org/en/lyrical/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html>`_: Tool for creating and building a ROS workspace.

* `ament_cmake <https://docs.ros.org/en/lyrical/How-To-Guides/Ament-CMake-Documentation.html>`_: Build system for CMake-based packages in ROS.

* `tracetools <https://docs.ros.org/en/kilted/p/tracetools/>`_: Trace points for creating and debugging execution traces.

Related content (placeholder)
-----------------------------

More articles about introspection:

* Example

* Example

FAQs (placeholder)
------------------

* Example

* Example
42 changes: 42 additions & 0 deletions source/About-node-management.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Node management
===============

Sometimes you need to manage many interconnected nodes at once to reliably start, configure, and shut down your system.
Managing multiple interconnected nodes is essential for complex robotic systems.
This article summarizes the ROS developer tools and guidance available to help with node management.


**Area: node management, tools | Content-type: about | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:local:

Summary
-------

Complex robotic systems can include many interconnected nodes, each with different settings and interfaces.
Node management tools in ROS help you start, configure, and stop multiple nodes together using launch files.

Core ROS packages:

* `ros2launch <https://github.com/ros2/launch>`_: Command line tool for launching multiple processes and for writing tests involving multiple processes.
QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER CORE ROS PACKAGES THAT WE CAN LIST HERE?

Community-contributed packages:
QUESTION FOR THE REVIEWER: ARE THERE ANY COMMUNITY-CONTRIBUTED PACKAGES THAT WE CAN LIST HERE?

Related content (placeholder)
-----------------------------

More articles about node management:

* Example

* Example

FAQs (placeholder)
------------------

* Example

* Example
91 changes: 91 additions & 0 deletions source/About-package-documentation.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
Package documentation
=====================

Package documentation is essential for others to understand and use the package you've developed.
This article summarizes the tools and guidance available to help with creating documentation for ROS packages.

**Area: package documentation, tools | Content-type: about | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:local:

Summary
--------

When creating a new package, clear documentation is essential for others who may use it.
Package documentation tools in ROS make it easy to write, maintain, and generate web-browsable documentation from your source code.

Core ROS packages:

* `rosdoc2 <https://docs.ros.org/en/rolling/How-To-Guides/Documenting-a-ROS-2-Package.html>`_: Tool for documenting a ROS package.
QUESTION FOR THE REVIEWER: IN THE SPREADSHEET THERE IS A QUESTION MARK NEXT TO THIS ENTRY.
DO WE NEED TO INCLUDE IN THIS LIST?

QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER CORE ROS PACKAGES THAT WE CAN LIST HERE?

Community-contributed packages:

QUESTION FOR THE REVIEWER: ARE THERE ANY COMMUNITY-CONTRIBUTED PACKAGES THAT WE CAN LIST HERE?


Package documentation locations
-------------------------------

ROS package documentation can be found in multiple places.
Here is a brief list of where to look for specific ROS package documentation.

* Most ROS packages have their package level documentation `included in this index page <https://docs.ros.org/en/lyrical/p/>`_.

* All ROS package documentation is hosted alongside its information on the `ROS Index <https://index.ros.org/>`_.

Searching for packages on ROS Index will yield their information such as released distributions, README.md files, URLs, and other important metadata.

Larger packages
---------------

Larger packages like MoveIt, Nav2, and microROS, are given their own domain or subdomain on ros.org.
Here is a short list.

* `MoveIt <https://moveit.ros.org/>`_

* `Navigation2 <https://nav2.org/>`_

* `Control <https://control.ros.org/rolling/index.html>`_

* `microROS (embedded systems) <https://micro.vulcanexus.org/>`_

API documentation
-----------------

You can find the API level documentation for the ROS client libraries in the Lyrical distribution using the links below:

* `rclcpp - C++ client library <https://docs.ros.org/en/lyrical/p/rclcpp/generated/index.html>`_

* `rclcpp_lifecycle - C++ lifecycle library <https://docs.ros.org/en/lyrical/p/rclcpp_lifecycle/generated/index.html>`_

* `rclcpp_components - C++ components library <https://docs.ros.org/en/lyrical/p/rclcpp_components/generated/index.html>`_

* `rclcpp_action - C++ actions library <https://docs.ros.org/en/lyrical/p/rclcpp_action/generated/index.html>`_

Guidelines for adding your package documentation
------------------------------------------------

All released ROS packages are automatically added to docs.ros.org and `ROS Index <https://index.ros.org/>`_.
If you would like to enable or configure your own package, see `Documenting a ROS package <https://docs.ros.org/en/lyrical/How-To-Guides/
Documenting-a-ROS-2-Package.html>`_.

Related content (placeholder)
-----------------------------

More articles about package documentation:

* Example

* Example

FAQs (placeholder)
------------------

* Example

* Example
43 changes: 43 additions & 0 deletions source/About-visualization.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Visualization
=============

Sometimes you need to visualize what your robot is sensing and planning to better develop, test, and debug your system.
This article summarizes the ROS developer tools and guidance available to help with visualization.


**Area: visualization, tools | Content-type: about | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:local:

Summary
-------

Understanding what a robot is sensing, experiencing, and planning makes development and debugging much easier.
Visualization tools in ROS help you convert raw robot data into clear, human-readable visual formats.

Core ROS packages:

* `RViz <https://docs.ros.org/en/kilted/Tutorials/Intermediate/RViz/RViz-User-Guide/RViz-User-Guide.html>`_: Provides a 3D visualization of the robot's perspective, including sensor data and intentions.

QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER CORE ROS PACKAGES THAT WE CAN LIST HERE?

Community-contributed packages:

QUESTION FOR THE REVIEWER: ARE THERE ANY COMMUNITY-CONTRIBUTED PACKAGES THAT WE CAN LIST HERE?

Related content (placeholder)
-----------------------------

More articles about visualization:

* Example

* Example

FAQs (placeholder)
------------------

* Example

* Example
48 changes: 48 additions & 0 deletions source/Concepts/Intermediate/About-Debugging.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Debugging
=========

Sometimes your robot won't behave as you expected. This article summarizes the ROS developer tools and guidance available to help with debugging.

.. contents:: Table of Contents
:local:

**Area: debugging, tools | Content-type: about | Experience: beginner, intermediate, expert**

Summary
-------

ROS provides a range of tools to help developers build, test, and monitor robotic systems.
Debugging is an essential part of development, and many of these tools can be used to identify and fix issues.
Some of the tools are also useful for other aspects of robotic system development.
For example, debugging overlaps with introspection, analysis, node management, visualization, and simulation, as these activities are often used to investigate and diagnose issues in a system.

Core ROS packages:

* `ros2doctor <https://docs.ros.org/en/kilted/p/ros2doctor/>`_: Command line tool to check for common misconfigurations in a ROS system.

* `tracetools <https://docs.ros.org/en/kilted/p/tracetools/>`_: Trace points for creating and debugging execution traces.

* `rosbag2 <https://docs.ros.org/en/kilted/p/rosbag2/>`_: Record and play back data moving across topics, services and actions in a ROS application, for later visualization and debugging.
QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER CORE ROS PACKAGES THAT WE CAN LIST HERE?

Community-contributed packages:

* `PlotJuggler <https://docs.ros.org/en/kilted/p/plotjuggler/>`_: A tool for visualizing and analyzing data from ROS applications.
QUESTION FOR THE REVIEWER: ARE THERE ANY OTHER COMMUNITY-CONTRIBUTED PACKAGES THAT WE CAN LIST HERE?

Related content
---------------

More articles about debugging:

..
* `Debugging a ROS application - overview <https://docs.google.com/document/d/1fz0O2xkaS8u3aoW7eEnA79DThredxxm7O6Cw_UggYu8/edit?usp=sharing>`_
* `Using ros2doctor to identify issues - how-to <https://docs.ros.org/en/kilted/t/ros2doctor.html>`_
* `Building ROS 2 with tracing - how-to <https://docs.ros.org/en/kilted/t/tracetools.html>`_

FAQs (placeholder)
-------------------

* Example

* Example
7 changes: 6 additions & 1 deletion source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@ ROS 2 Documentation
Related-Projects
Glossary
Citations

About-introspection
About-analysis
About-node-management
About-builds
About-visualization
About-package-documentation

**The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications.**
From drivers and state-of-the-art algorithms to powerful developer tools, ROS has the open source tools you need for your next robotics project.
Expand Down