Skip to content

Commit

Permalink
Clean up sentences (white space changes only)
Browse files Browse the repository at this point in the history
  • Loading branch information
DLu committed Feb 6, 2025
1 parent b0a330a commit f3610ba
Show file tree
Hide file tree
Showing 73 changed files with 651 additions and 316 deletions.
3 changes: 2 additions & 1 deletion source/Concepts/Basic/About-Client-Libraries.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ While the C++ and Python client libraries are maintained by the core ROS 2 team,
* `C <https://github.com/ros2/rclc>`__ ``rclc`` does not put a layer on top of rcl but complements rcl to make rcl+rclc a feature-complete client library in C. See `micro.ros.org <https://micro.ros.org/>`__ for tutorials.
* `JVM and Android <https://github.com/ros2-java>`__ Java and Android bindings for ROS 2.
* `.NET Core, UWP and C# <https://github.com/esteve/ros2_dotnet>`__ This is a collection of projects (bindings, code generator, examples and more) for writing ROS 2 applications for .NET Core and .NET Standard.
* `Node.js <https://www.npmjs.com/package/rclnodejs>`__ rclnodejs is a Node.js client for ROS 2. It provides a simple and easy JavaScript API for ROS 2 programming.
* `Node.js <https://www.npmjs.com/package/rclnodejs>`__ rclnodejs is a Node.js client for ROS 2.
It provides a simple and easy JavaScript API for ROS 2 programming.
* `Rust <https://github.com/ros2-rust/ros2_rust>`__ This is a set of projects (the rclrs client library, code generator, examples and more) that enables developers to write ROS 2 applications in Rust.
* `Flutter and Dart <https://github.com/rcldart>`__ Flutter and Dart bindings for ROS 2.

Expand Down
10 changes: 7 additions & 3 deletions source/Concepts/Basic/About-Interfaces.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,13 @@ This description makes it easy for ROS tools to automatically generate source co

In this document we will describe the supported types:

* msg: ``.msg`` files are simple text files that describe the fields of a ROS message. They are used to generate source code for messages in different languages.
* srv: ``.srv`` files describe a service. They are composed of two parts: a request and a response. The request and response are message declarations.
* action: ``.action`` files describe actions. They are composed of three parts: a goal, a result, and feedback.
* msg: ``.msg`` files are simple text files that describe the fields of a ROS message.
They are used to generate source code for messages in different languages.
* srv: ``.srv`` files describe a service.
They are composed of two parts: a request and a response.
The request and response are message declarations.
* action: ``.action`` files describe actions.
They are composed of three parts: a goal, a result, and feedback.
Each part is a message declaration itself.

Messages
Expand Down
9 changes: 6 additions & 3 deletions source/Concepts/Basic/About-Parameters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,14 @@ The services that are created by default are:
* ``/node_name/get_parameters``: Uses a service type of ``rcl_interfaces/srv/GetParameters``.
Given a list of parameter names, returns a list of parameter values associated with the parameters.
* ``/node_name/list_parameters``: Uses a service type of ``rcl_interfaces/srv/ListParameters``.
Given an optional list of parameter prefixes, returns a list of the available parameters with that prefix. If the prefixes are empty, returns all parameters.
Given an optional list of parameter prefixes, returns a list of the available parameters with that prefix.
If the prefixes are empty, returns all parameters.
* ``/node_name/set_parameters``: Uses a service type of ``rcl_interfaces/srv/SetParameters``.
Given a list of parameter names and values, attempts to set the parameters on the node. Returns a list of results from trying to set each parameter; some of them may have succeeded and some may have failed.
Given a list of parameter names and values, attempts to set the parameters on the node.
Returns a list of results from trying to set each parameter; some of them may have succeeded and some may have failed.
* ``/node_name/set_parameters_atomically``: Uses a service type of ``rcl_interfaces/srv/SetParametersAtomically``.
Given a list of parameter names and values, attempts to set the parameters on the node. Returns a single result from trying to set all parameters, so if one failed, all of them failed.
Given a list of parameter names and values, attempts to set the parameters on the node.
Returns a single result from trying to set all parameters, so if one failed, all of them failed.

Setting initial parameter values when running a node
----------------------------------------------------
Expand Down
5 changes: 4 additions & 1 deletion source/Concepts/Basic/About-Topics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,7 @@ That has two meanings in this context:
Then the code will ensure that ``field1`` is always an unsigned integer and that ``field2`` is always a string.

2. The semantics of each field are well-defined. There is no automated mechanism to ensure this, but all of the core ROS types have strong semantics associated with them. For instance, the IMU message contains a 3-dimensional vector for the measured angular velocity, and each of the dimensions is specified to be in radians/second. Other interpretations should not be placed into the message.
2. The semantics of each field are well-defined.
There is no automated mechanism to ensure this, but all of the core ROS types have strong semantics associated with them.
For instance, the IMU message contains a 3-dimensional vector for the measured angular velocity, and each of the dimensions is specified to be in radians/second.
Other interpretations should not be placed into the message.
4 changes: 3 additions & 1 deletion source/Concepts/Intermediate/About-Cross-Compilation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ How does it work ?
Cross-compiling simple software (e.g. no dependencies on external libraries) is relatively simple and only requiring a cross-compiler toolchain to be used instead of the native toolchain.

There are a number of factors which make this process more complex:
- The software being built must support the target architecture. Architecture specific code must be properly isolated and enabled during the build according to the target architecture. Examples include assembly code.
- The software being built must support the target architecture.
Architecture specific code must be properly isolated and enabled during the build according to the target architecture.
Examples include assembly code.
- All dependencies (e.g. libraries) must be present, either as pre-built or cross-compiled packages, before the target software using them is cross-compiled.
- When building software stacks (as opposed to standalone software) using build tools (e.g. colcon), it is expected that the build tool provides a mechanism to allow the developer to enable cross-compilation on the underlying build system used by each piece of software in the stack.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,24 @@ Supported RMW implementations
* - eProsima *Fast DDS*
- Apache 2
- ``rmw_fastrtps_cpp``
- Full support. Default RMW. Packaged with binary releases.
- Full support.
Default RMW.
Packaged with binary releases.
* - Eclipse *Cyclone DDS*
- Eclipse Public License v2.0
- ``rmw_cyclonedds_cpp``
- Full support. Packaged with binary releases.
- Full support.
Packaged with binary releases.
* - RTI *Connext DDS*
- commercial, research
- ``rmw_connextdds``
- Full support. Support included in binaries, but Connext installed separately.
- Full support.
Support included in binaries, but Connext installed separately.
* - GurumNetworks *GurumDDS*
- commercial
- ``rmw_gurumdds_cpp``
- Community support. Support included in binaries, but GurumDDS installed separately.
- Community support.
Support included in binaries, but GurumDDS installed separately.

For practical information on working with multiple RMW implementations, see the :doc:`"Working with multiple RMW implementations" <../../How-To-Guides/Working-with-multiple-RMW-implementations>` tutorial.

Expand Down
13 changes: 10 additions & 3 deletions source/Concepts/Intermediate/About-Executors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ The following flow diagram visualizes this scheduling semantics.
.. image:: ../images/executors_scheduling_semantics.png

This semantics was first described in a `paper by Casini et al. at ECRTS 2019 <https://drops.dagstuhl.de/opus/volltexte/2019/10743/pdf/LIPIcs-ECRTS-2019-6.pdf>`_.
(Note: The paper also explains that timer events are prioritized over all other messages. `This prioritization was removed in Eloquent. <https://github.com/ros2/rclcpp/pull/841>`_)
(Note: The paper also explains that timer events are prioritized over all other messages.
`This prioritization was removed in Eloquent. <https://github.com/ros2/rclcpp/pull/841>`_)


Outlook
Expand Down Expand Up @@ -198,6 +199,12 @@ These issues have been partially addressed by the following developments:
Further information
-------------------

* Michael Pöhnl et al.: `"ROS 2 Executor: How to make it efficient, real-time and deterministic?" <https://www.apex.ai/roscon-21>`_. Workshop at ROS World 2021. Virtual event. 19 October 2021.
* Ralph Lange: `"Advanced Execution Management with ROS 2" <https://www.youtube.com/watch?v=Sz-nllmtcc8&t=109s>`_. ROS Industrial Conference. Virtual event. 16 December 2020.
* Michael Pöhnl et al.: `"ROS 2 Executor: How to make it efficient, real-time and deterministic?" <https://www.apex.ai/roscon-21>`_.
Workshop at ROS World 2021.
Virtual event.
19 October 2021.
* Ralph Lange: `"Advanced Execution Management with ROS 2" <https://www.youtube.com/watch?v=Sz-nllmtcc8&t=109s>`_.
ROS Industrial Conference.
Virtual event.
16 December 2020.
* Daniel Casini, Tobias Blass, Ingo Lütkebohle, and Björn Brandenburg: `“Response-Time Analysis of ROS 2 Processing Chains under Reservation-Based Scheduling” <https://drops.dagstuhl.de/opus/volltexte/2019/10743/pdf/LIPIcs-ECRTS-2019-6.pdf>`_, Proc. of 31st ECRTS 2019, Stuttgart, Germany, July 2019.
11 changes: 8 additions & 3 deletions source/Contact.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,14 @@ When filing an issue, please make sure to:
Describe exactly what you were doing or are trying to do, and exactly what, if anything, went wrong.
If following a tutorial or online instructions provide a link to the specific instructions.

* Use a descriptive headline or subject line. Bad: "rviz doesn't work". Good: "Rviz crashing looking for missing .so after latest apt update"
* Include information about the exact platform, software, versions, and environment relevant to the problem. This includes how you installed the software (from binaries or from source) and which ROS middleware/DDS vendor you are using (if you know it).
* Any warnings or errors. Cut and paste them directly from the terminal window to which they were printed. Please do not re-type or include a screenshot.
* Use a descriptive headline or subject line.
Bad: "rviz doesn't work".
Good: "Rviz crashing looking for missing .so after latest apt update"
* Include information about the exact platform, software, versions, and environment relevant to the problem.
This includes how you installed the software (from binaries or from source) and which ROS middleware/DDS vendor you are using (if you know it).
* Any warnings or errors.
Cut and paste them directly from the terminal window to which they were printed.
Please do not re-type or include a screenshot.
* In case of a bug consider providing a `short, self contained, correct (compilable), example <http://sscce.org/>`__.
* When discussing any compiling/linking/installation issues, also provide the compiler version

Expand Down
12 changes: 9 additions & 3 deletions source/Glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ Glossary of terms used throughout this documentation:
.. glossary::

API
An API, or Application Programming Interface, is an interface that is provided by an "application", which in this case is usually a shared library or other language appropriate shared resource. APIs are made up of files that define a contract between the software using the interface and the software providing the interface. These files typically manifest as header files in C and C++ and as Python files in Python. In either case it is important that APIs are grouped and described in documentation and that they are declared as either public or private. Public interfaces are subject to change rules and changes to the public interfaces prompt a new version number of the software that provides them.
An API, or Application Programming Interface, is an interface that is provided by an "application", which in this case is usually a shared library or other language appropriate shared resource.
APIs are made up of files that define a contract between the software using the interface and the software providing the interface.
These files typically manifest as header files in C and C++ and as Python files in Python.
In either case it is important that APIs are grouped and described in documentation and that they are declared as either public or private.
Public interfaces are subject to change rules and changes to the public interfaces prompt a new version number of the software that provides them.

client_library
A client library is an :term:`API` that provides access to the ROS graph using primitive middleware concepts like Topics, Services, and Actions.
Expand All @@ -17,15 +21,17 @@ Glossary of terms used throughout this documentation:
A single unit of software, including source code, build system files, documentation, tests, and other associated resources.

REP
ROS Enhancement Proposal. A document that describes an enhancement, standardization, or convention for the ROS community.
ROS Enhancement Proposal.
A document that describes an enhancement, standardization, or convention for the ROS community.
The associated REP approval process allows the community to iterate on a proposal until some consensus has been made, at which point it can be ratified and implemented, which then becomes documentation.
All REPs are viewable from the `REP index <http://www.ros.org/reps/rep-0000.html>`_.

VCS
Version Control System, such as CVS, SVN, git, mercurial, etc...

rclcpp
The C++ specific :term:`Client Library <client_library>` for ROS. This includes any middleware related APIs as well as the related message generation of C++ data structures based on interface definitions like Messages, Services, and Actions.
The C++ specific :term:`Client Library <client_library>` for ROS.
This includes any middleware related APIs as well as the related message generation of C++ data structures based on interface definitions like Messages, Services, and Actions.

repository
A collection of packages usually managed using a :term:`VCS` like git or mercurial and usually hosted on a site like GitHub or BitBucket.
Expand Down
10 changes: 7 additions & 3 deletions source/How-To-Guides/Ament-CMake-Documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,8 @@ One example of how to do so can be found in the `ament_cmake_lint_cmake document
Testing
^^^^^^^

Ament contains CMake macros to simplify setting up GTests. Call:
Ament contains CMake macros to simplify setting up GTests.
Call:

.. code-block:: cmake
Expand All @@ -348,7 +349,9 @@ The macros have additional parameters:

- ``ENV``: set environment variables (same syntax as ``APPEND_ENV``).

- ``TIMEOUT``: set a test timeout in second. The default for GTests is 60 seconds. For example:
- ``TIMEOUT``: set a test timeout in second.
The default for GTests is 60 seconds.
For example:

.. code-block:: cmake
Expand Down Expand Up @@ -550,7 +553,8 @@ For the RViz mesh resource, the corresponding choices were:

- ``rviz_ogre_media_exports`` as name of the resource,

- install path relative paths to all folders containing resources. This will already enable you to write the logic for using the corresponding resource in your package.
- install path relative paths to all folders containing resources.
This will already enable you to write the logic for using the corresponding resource in your package.

To allow users to easily register resources for your package, you should furthermore provide macros or functions such as the pluginlib function or ``rviz_ogre_media_exports`` function.

Expand Down
4 changes: 2 additions & 2 deletions source/How-To-Guides/Ament-CMake-Python-Documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ In this case, it is ``my_project``, or ``${PROJECT_NAME}``.
.. warning::

Calling ``rosidl_generate_interfaces`` and ``ament_python_install_package`` in the same CMake project does not work.
See this `Github issue <https://github.com/ros2/rosidl_python/issues/141>`_ for more info. It is best practice to instead
separate out the message generation into a separate package.
See this `Github issue <https://github.com/ros2/rosidl_python/issues/141>`_ for more info.
It is best practice to instead separate out the message generation into a separate package.

Then, another Python package that correctly depends on ``my_project`` can use it as a normal Python module:

Expand Down
3 changes: 2 additions & 1 deletion source/How-To-Guides/DDS-tuning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,8 @@ However, it always at least managed to complete the delivery.

**Solution:** Use the `Connext QoS profile <https://github.com/jacobperron/pc_pipe/blob/master/etc/ROS2TEST_QOS_PROFILES.xml>`_ *without* adjusting ``rmem_max``.

The ROS2TEST_QOS_PROFILES.xml file was configured using RTI’s documentation on `configuring flow controllers <https://community.rti.com/forum-topic/transfering-large-data-over-dds>`_. It has slow, medium and fast flow controllers (seen in the Connext QoS profile link).
The ROS2TEST_QOS_PROFILES.xml file was configured using RTI’s documentation on `configuring flow controllers <https://community.rti.com/forum-topic/transfering-large-data-over-dds>`_.
It has slow, medium and fast flow controllers (seen in the Connext QoS profile link).

The medium flow controller produced the best results for our case.
However, the controllers will still need to be tuned for the particular machine/network/environment they are operating in.
Expand Down
9 changes: 6 additions & 3 deletions source/How-To-Guides/Installation-Troubleshooting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ If so, compare the libraries present in the directory with the one mentioned in
Assuming a file with a similar name exists (same prefix like ``_rclpy.`` and same suffix like ``.so`` but a different Python version / architecture) you are using a different Python interpreter than which was used to build the C extension.
Be sure to use the same Python interpreter as the one used to build the binary.

For example, such a mismatch can crop up after an update of the OS. Then, rebuilding the workspace may fix the issue.
For example, such a mismatch can crop up after an update of the OS.
Then, rebuilding the workspace may fix the issue.

.. _linux-troubleshooting:

Expand Down Expand Up @@ -289,7 +290,8 @@ Use this information to install additional dependencies or adjust your path as n
CMake error setting modification time
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If you run into the CMake error ``file INSTALL cannot set modification time on ...`` when installing files it is likely that an anti virus software or Windows Defender are interfering with the build. E.g. for Windows Defender you can list the workspace location to be excluded to prevent it from scanning those files.
If you run into the CMake error ``file INSTALL cannot set modification time on ...`` when installing files it is likely that an anti virus software or Windows Defender are interfering with the build.
E.g. for Windows Defender you can list the workspace location to be excluded to prevent it from scanning those files.

260 character path limit
^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -323,7 +325,8 @@ patch.exe opens a new command window and asks for administrator

This will also cause the build of packages which need to use patch to fail, even you allow it to use administrator rights.

- ``choco uninstall patch; colcon build --cmake-clean-cache`` - This is a bug in the `GNU Patch For Windows package <https://chocolatey.org/packages/patch>`_. If this package is not installed, the build process will instead use the version of Patch distributed with git.
- ``choco uninstall patch; colcon build --cmake-clean-cache`` - This is a bug in the `GNU Patch For Windows package <https://chocolatey.org/packages/patch>`_.
If this package is not installed, the build process will instead use the version of Patch distributed with git.

Failed to load Fast RTPS shared library
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
3 changes: 2 additions & 1 deletion source/How-To-Guides/Installing-on-Raspberry-Pi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ After flashing the OS, `install Docker <https://docs.docker.com/engine/install/d

The official ROS 2 Docker images can be found `here <https://hub.docker.com/_/ros/tags>`__.

You may choose from ros-core, ros-base, or perception. See `here <https://www.ros.org/reps/rep-2001.html>`__ for more information on these variants.
You may choose from ros-core, ros-base, or perception.
See `here <https://www.ros.org/reps/rep-2001.html>`__ for more information on these variants.

Fetch and run an image:

Expand Down
Loading

0 comments on commit f3610ba

Please sign in to comment.