diff --git a/docs/source/conf.py b/docs/source/conf.py index c8d12b61..eaf41a10 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -36,7 +36,7 @@ ] intersphinx_mapping = { - 'python': ('https://docs.python.org/3.10/', None), + 'python': ('https://docs.python.org/3.12/', None), 'sphinx': ('https://www.sphinx-doc.org/en/master/', None), } intersphinx_disabled_domains = ['std'] @@ -48,8 +48,8 @@ html_theme = 'sphinx_book_theme' # Tried with `furo` on May 23, 2025, but somehow it didn't look right. In particular the download button wasn't as clear. html_theme_options = { - "announcement": "The documentation is being updated to Jazzy in this branch. " - "See Humble Docs for the stable ones. " + "announcement": "This tutorial has been updated to ROS2 Jazzy. " + "See Humble Docs for the previous version. " "Create an issue for inconsistencies.", } html_title = project diff --git a/docs/source/preamble/python/installing_python.rst b/docs/source/preamble/python/installing_python.rst index e8ae374c..6b1f0ba4 100644 --- a/docs/source/preamble/python/installing_python.rst +++ b/docs/source/preamble/python/installing_python.rst @@ -7,7 +7,7 @@ Installing Python on Ubuntu If you change or try to tinker with the default Python version of Ubuntu, your system will most likely **BREAK COMPLETELY**. Do not play around with the default Python installation, because Ubuntu depends on it to work properly (or work at all). -In Ubuntu 22.04, Python is already installed! +In Ubuntu, Python is already installed! In fact, Ubuntu would not work without it. Let's check its version by running .. code-block:: console @@ -18,9 +18,9 @@ which should output .. code-block:: console - Python 3.10.6 + Python 3.12.3 -If the :code:`3.10` part of your version is different (e.g. :code:`3.9` or :code:`3.11`\), get this fixed because this tutorial will not work for you. +If the :code:`3.12` part of your version is different, this tutorial might not work for you. Please make sure to use the default Python in your Ubuntu. .. warning:: Note that the command is :program:`python3` and not :program:`python`. In fact, the result of @@ -50,13 +50,13 @@ which should output something similar to .. code-block:: console - Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux + Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> -in particular, if the :code:`GCC 11` is different, e.g. :code:`GCC 9` or :code:`GCC 12`\, then get this fixed because this tutorial will not work for you. +in particular, if the :code:`GCC 13` is different, then this tutorial might not work for you. -As you already know, to exit the `interactive shell `_ you can use :kbd:`CTRL+D` or type :code:`quit()` and press :kbd:`ENTER`. +As you already know, to exit the `interactive shell `_ you can use :kbd:`CTRL+D` or type :code:`quit()` and press :kbd:`ENTER`. Some Python packages must be installed through :program:`apt` ------------------------------------------------------------- @@ -83,7 +83,7 @@ When you want to isolate your environment, use :program:`venv` Until that is handled, we are not going to use :program:`venv` for the ROS2 tutorials. However, we will use :program:`venv` to protect our ROS2 environment from these Python preamble tutorials. -Using :program:`venv` (`More info `_) is quite straightforward. +Using :program:`venv` (`More info `_) is quite straightforward. Create a :file:`venv` ^^^^^^^^^^^^^^^^^^^^^ @@ -151,20 +151,20 @@ then, we install .. code-block:: console - python3 -m pip install dqrobotics + python3 -m pip install dqrobotics --break-system-packages which will result in something similar to (might change depending on future versions) .. code-block:: console - Collecting dqrobotics - Downloading dqrobotics-23.4.0a15-cp310-cp310-manylinux1_x86_64.whl (551 kB) - ---------------------------------------- 551.4/551.4 KB 6.3 MB/s eta 0:00:00 - Collecting numpy - Downloading numpy-1.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB) - ---------------------------------------- 17.6/17.6 MB 7.4 MB/s eta 0:00:00 - Installing collected packages: numpy, dqrobotics - Successfully installed dqrobotics-23.4.0a15 numpy-1.25.0 + Collecting dqrobotics + Downloading dqrobotics-25.4.0a17-cp312-cp312-manylinux2014_aarch64.whl.metadata (2.9 kB) + Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (from dqrobotics) (1.26.4) + Downloading dqrobotics-25.4.0a17-cp312-cp312-manylinux2014_aarch64.whl (512 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 512.5/512.5 kB 14.0 MB/s eta 0:00:00 + [...] + Installing collected packages: dqrobotics + Successfully installed dqrobotics-25.4.0a17 Removing libraries (installed with :program:`pip`) -------------------------------------------------- @@ -173,18 +173,18 @@ We can remove the library we just installed with .. code-block:: console - python3 -m pip uninstall dqrobotics + python3 -m pip uninstall dqrobotics --break-system-packages resulting in .. code-block:: console - Found existing installation: dqrobotics 23.4.0a15 - Uninstalling dqrobotics-23.4.0a15: - Would remove: - /home/murilo/ros2tutorial_venv/lib/python3.10/site-packages/dqrobotics-23.4.0a15.dist-info/* - /home/murilo/ros2tutorial_venv/lib/python3.10/site-packages/dqrobotics/* - Proceed (Y/n)? + Found existing installation: dqrobotics 25.4.0a7 + Uninstalling dqrobotics-25.4.0a7: + Would remove: + /usr/local/lib/python3.12/dist-packages/dqrobotics-25.4.0a7.dist-info/* + /usr/local/lib/python3.12/dist-packages/dqrobotics/* + Proceed (Y/n)? .. hint:: @@ -195,7 +195,7 @@ Then, press :kbd:`ENTER`, which results in .. code-block:: console - Successfully uninstalled dqrobotics-23.4.0a15 + Successfully uninstalled dqrobotics-25.4.0a7 When using :program:`pip`, do **NOT** use :code:`sudo` ------------------------------------------------------ diff --git a/docs/source/publishers_and_subscribers.rst b/docs/source/publishers_and_subscribers.rst index a2edc87a..d45bbd67 100644 --- a/docs/source/publishers_and_subscribers.rst +++ b/docs/source/publishers_and_subscribers.rst @@ -136,14 +136,14 @@ The publisher must be created with the :code:`Node.create_publisher(...)` method .. _publisher and subscriber parameter table: -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ -|:code:`msg_type` | A class, namely the message that will be used in the topic. In this case, :code:`AmazingQuote`. | -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ -|:code:`topic` | The topic through which the communication will occur. Can be arbitrarily chosen, but to make sense :code:`/amazing_quote`. | -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ -|:code:`qos_profile` | The simplest interpretation for this parameter is the maximum number of messages that will be stored in a buffer if your node (including :code:`spin(...)`) takes too long to process them. | -| | (See more on `docs for QoSProfile `_.) | -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ++--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|:code:`msg_type` | A class, namely the message that will be used in the topic. In this case, :code:`AmazingQuote`. | ++--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|:code:`topic` | The topic through which the communication will occur. Can be arbitrarily chosen, but to make sense :code:`/amazing_quote`. | ++--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|:code:`qos_profile` | The simplest interpretation for this parameter is the maximum number of messages that will be stored in a buffer if your node (including :code:`spin(...)`) takes too long to process them. | +| | (See more on `docs for QoSProfile `_.) | ++--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. warning:: @@ -292,6 +292,6 @@ which outputs .. warning:: - Unless instructed otherwise, the publisher does **NOT** wait for a subscriber to connect before it starts publishing the messages. As shown in the case above, the first message we received started with `id=3`. If we delayed longer to start the publisher, we would have received later messages only. + Unless instructed otherwise, the publisher does **NOT** wait for a subscriber to connect before it starts publishing the messages. As shown in the case above, the first message we received started with `id>0`. If we delayed longer to start the publisher, we would have received later messages only. Let's close each node with :kbd:`CTRL+C` on each terminal before we proceed to the next tutorial. diff --git a/docs/source/puppeteer-config.json b/docs/source/puppeteer-config.json new file mode 100644 index 00000000..dce67b8e --- /dev/null +++ b/docs/source/puppeteer-config.json @@ -0,0 +1,3 @@ +{ + "args": ["--no-sandbox"] +} \ No newline at end of file