From e31d8fbd334edb6c968939708c08d06d281f0d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Mart=C3=ADn=20Rico?= Date: Sat, 26 Sep 2026 21:06:16 +0200 Subject: [PATCH 1/2] Replace placeholder pages with the M48 documentation Add the software catalogue, getting started with the CoreSense Pixi channels, architecture design, tutorials (cs4home modules, RiskAM, publishing with Pixi), the manufacturing and social testbeds, real demos and about pages, and the EU funding acknowledgement. Add a redirect from /Toolchain/ to /toolchain/, which is the URL cited in deliverable D4.4. Co-Authored-By: Claude Opus 5.5 --- about/index.rst | 41 +++---- build_instructions/index.rst | 54 ++++++--- conf.py | 9 +- demos/docs/dummydemo.rst | 6 - demos/index.rst | 10 +- design/index.rst | 42 ++++++- extra/Toolchain/index.html | 12 ++ getting_started/index.rst | 52 +++++++-- images/eu_funded_en.jpg | Bin 0 -> 20561 bytes index.rst | 37 ++++-- instrumentation/index.rst | 4 +- opensourecommunity/index.rst | 12 +- packages/index.rst | 148 ++++++++++++++++++++++++ testbeds/docs/manufacturing_testbed.rst | 13 +++ testbeds/docs/social_testbed.rst | 19 +++ testbeds/index.rst | 6 +- tutorials/docs/cs4home_modules.rst | 57 +++++++++ tutorials/docs/dummy.rst | 6 - tutorials/docs/pixi_release.rst | 109 +++++++++++++++++ tutorials/docs/riskam.rst | 67 +++++++++++ tutorials/index.rst | 12 +- 21 files changed, 626 insertions(+), 90 deletions(-) delete mode 100644 demos/docs/dummydemo.rst create mode 100644 extra/Toolchain/index.html create mode 100644 images/eu_funded_en.jpg create mode 100644 packages/index.rst create mode 100644 testbeds/docs/manufacturing_testbed.rst create mode 100644 testbeds/docs/social_testbed.rst create mode 100644 tutorials/docs/cs4home_modules.rst delete mode 100644 tutorials/docs/dummy.rst create mode 100644 tutorials/docs/pixi_release.rst create mode 100644 tutorials/docs/riskam.rst diff --git a/about/index.rst b/about/index.rst index 65d9cdd..d3b4226 100644 --- a/about/index.rst +++ b/about/index.rst @@ -6,30 +6,31 @@ About and Contact About ***** -CoreSense Project(CoreSense in short) is a project whose objective is to provide blah blah +CoreSense (*A Hybrid Cognitive Architecture for Deep Understanding*) is a four-year research project (October 2022 – September 2026) funded by the European Union's Horizon Europe programme under grant agreement No 101070254. It develops a theory of understanding and awareness for robots and a cognitive architecture that implements it, and it releases the resulting software to the ROS community. -We strive to create an open community and encourage new ROS users and experts alike to collaborate. -However, that can't happen without your issues, pull requests, and support. -We would like to thank here our current and past contributors and maintainers. +The CoreSense consortium: -Our current leadership team includes (add more!!): +- Universidad Politécnica de Madrid (UPM), Spain, coordinator +- Technische Universiteit Delft (TUD), the Netherlands +- Fraunhofer IPA (FhG), Germany +- Universidad Rey Juan Carlos (URJC), Spain +- PAL Robotics (PAL), Spain +- Irish Manufacturing Research (IMR), Ireland +- Czech Technical University in Prague (CVUT), Czech Republic -+------------------+------------------------------------+-------------+----------------+ -| Name | Organization | GitHub ID | Current Role | -+==================+====================================+=============+================+ -| Ricardo Sanz | Universidad Politécnica de Madrid | ricardo_ | Project Leader | -+------------------+------------------------------------+-------------+----------------+ -| Francisco Martín | Rey Juan Carlos University | fmrico_ | WP5 Leader | -+------------------+------------------------------------+-------------+----------------+ - -.. _fmrico: https://github.com/fmrico -.. _ricardo: https://github.com/ricardo +The project website, with news, publications and the public deliverables, is https://coresense.eu. Contact ******* -If you are interested in contacting someone about CoreSense Project please email the project leader. -We intentionally make our emails easy to find. -If your inquiry relates to bugs or open-source feature requests, consider posting a ticket on our GitHub project. -If your inquiry relates to configuration support or private feature development, reach out and we may be able to connect you with -independent consultants or contractors that know this project well. +- Questions about a package, bug reports and feature requests: open an issue in the corresponding repository of the `CoreSense GitHub organisation `_. +- Questions about the project: see the contact information at https://coresense.eu. + +Funding +******* + +.. image:: ../images/eu_funded_en.jpg + :width: 300 + :alt: Funded by the European Union + +CoreSense has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No 101070254. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Commission. Neither the European Union nor the granting authority can be held responsible for them. diff --git a/build_instructions/index.rst b/build_instructions/index.rst index 5c34a9f..0bcf74c 100644 --- a/build_instructions/index.rst +++ b/build_instructions/index.rst @@ -3,32 +3,48 @@ Build and Install ################# -Install -******* +CoreSense software can be installed in three ways. Use binary packages when they exist, and build from source for the rest. -CoreSense install +========================== ============================== ====================================== +Method Requires Available for +========================== ============================== ====================================== +Pixi (conda packages) Pixi, any Linux distribution Packages in the CoreSense channels +``apt`` (Debian packages) Ubuntu with ROS 2 installed Packages in the ROS 2 buildfarm +From source ROS 2 and ``colcon`` All the repositories +========================== ============================== ====================================== +The :ref:`packages` page shows which method is available for each package. -Build -***** +Install with Pixi +***************** -Install ROS ------------ +See :ref:`getting_started`. The CoreSense channels are: -Please install ROS 2 via the usual `build instructions `_ for your desired distribution. +- Jazzy: https://prefix.dev/channels/coresense-jazzy +- Kilted: https://prefix.dev/channels/coresense-kilted -Build CoreSense ---------------- +Install with apt +**************** -Create a new workspace, ``CoreSense_ws``, and clone CoreSense master branch into it and build it. +Install ROS 2 following the `official instructions `_, then install the released packages. For example, for EasyNav on Jazzy: -.. code:: bash +.. code-block:: bash - mkdir -p ~/CoreSense_ws/src - cd ~/CoreSense_ws/src - git clone https://github.com/CoreSenseEU/whatever.git - - cd ~/CoreSense_ws - rosdep install -y -r -q --from-paths src --ignore-src --rosdistro - colcon build --symlink-install + sudo apt install ros-jazzy-easynav ros-jazzy-easynav-simple-planner +Build from source +***************** + +Install ROS 2 following the `official instructions `_. Then create a workspace, clone the repository, install its dependencies and build it. For example, for the CoreSense architecture used in the social testbed: + +.. code-block:: bash + + mkdir -p ~/coresense_ws/src + cd ~/coresense_ws/src + git clone https://github.com/CoreSenseEU/cs4home_architecture.git + cd ~/coresense_ws + rosdep install --from-paths src --ignore-src -r -y + colcon build --symlink-install + source install/setup.bash + +Replace the repository with the one you need. Each repository README describes its specific dependencies and branches. diff --git a/conf.py b/conf.py index 612d387..23525f8 100644 --- a/conf.py +++ b/conf.py @@ -55,7 +55,7 @@ # General information about the project. project = u'CoreSense' -copyright = u'2022' +copyright = u'2022-2026, CoreSense Consortium' author = u'Various' # The version info for the project you're documenting, acts as replacement for @@ -75,12 +75,12 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build','_themes','scripts' ] +exclude_patterns = ['_build','_themes','scripts','extra'] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' @@ -192,3 +192,6 @@ extlinks = {'projectfile': ('https://github.com/CoreSenseEU/%s', 'filepath ')} + +# Extra files copied as-is to the output, e.g. redirects for old URLs. +html_extra_path = ['extra'] diff --git a/demos/docs/dummydemo.rst b/demos/docs/dummydemo.rst deleted file mode 100644 index 92a651d..0000000 --- a/demos/docs/dummydemo.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _dummydemo: - -Dummy Demo -********** - -TBD diff --git a/demos/index.rst b/demos/index.rst index 8e7f8ae..5ab74ca 100644 --- a/demos/index.rst +++ b/demos/index.rst @@ -3,9 +3,9 @@ Demos ##### -CoreSense demos +Demos that can be run without the real robots: -.. toctree:: - :maxdepth: 1 - - docs/dummydemo.rst +- **Drone inspection in simulation**: the simulation environment of the inspection testbed, with Aerostack2. See :ref:`inspection_testbeds` and `TB2_Panel_Inspection_Simulation `_. +- **Interactive assistant in simulation**: a reduced version of the PAL interactive robot demo, with face detection, a chat interface and simulated objects. See `pal_assistant_demo `_. +- **ROS 2 instrumentation**: video of the virtual drivers and the RViz plugin in :ref:`instrumentation`. +- **Navigation**: EasyNav demos with simulated robots, in https://easynavigation.github.io. diff --git a/design/index.rst b/design/index.rst index 780ee46..429d827 100644 --- a/design/index.rst +++ b/design/index.rst @@ -3,6 +3,44 @@ CoreSense design ################ -CoreSense general design. +CoreSense is a hybrid cognitive architecture that gives robots the capability of *understanding*, the world and themselves, and of *awareness*, understanding in synchrony with perception. The theory behind it is described in the public deliverables `D1.3 Theory of Understanding `_ and `D1.4 Theory of Awareness `_. The terms used in the software follow the `CoreSense Ontology (CSO) `_. -TBD +Architecture subsystems +*********************** + +The architecture has three subsystems: + +- **Runtime system**: a modular software structure, based on ROS 2, used to deploy, monitor and control the modules of the robot. It uses the instrumentation of the ROS 2 platform (see :ref:`instrumentation`). +- **Understanding core**: computes meanings on demand, when another subsystem asks for it, for example to generate an explanation for a user. +- **Awareness system**: a cognitive structure that continuously uses the understanding core on the flow of percepts. When the object of perception is the robot itself, it generates self-awareness. + +The architecture is specified in `D2.2 Specification of the CoreSense Architecture `_, and its software assets are described in `D2.3 CoreSense Architecture `_. + +Cognitive modules +***************** + +A cognitive module is a set of ROS 2 nodes that performs a cognitive function. In the ROS 2 implementation of the architecture, `cs4home_architecture `_, each module has five components, managed through ROS 2 lifecycle transitions: + +- **Afferent**: receives information from the system or the environment. +- **Core**: performs the cognitive function. +- **Efferent**: sends the results to other modules or to the robot. +- **Meta**: provides information about the module. +- **Coupling**: coordinates the module with other modules. + +.. code-block:: text + + information --> Afferent --> Core (cognitive function) --> Efferent --> other modules + ^ ^ + Meta Coupling + +A master/flow mechanism coordinates several cognitive modules. The tutorial :ref:`tutorial_cs4home` shows how to build and run example modules. + +Understanding system +******************** + +The understanding system, `coresense_understanding `_, generates strategies to obtain models with given properties. It combines existing models with model-modification skills, the *engines*. Each engine is a ROS 2 node, annotated with its inputs and outputs, whose skill is wrapped in a behaviour tree. The logic of the understanding core is in `understanding-logic `_, and it uses the Vampire theorem prover through `coresense_vampire `_ and the knowledge base `triplestar_kb `_. + +Engineering toolchain +********************* + +CoreSense systems can be designed with model-based tools. See :ref:`toolchain_introduction`. diff --git a/extra/Toolchain/index.html b/extra/Toolchain/index.html new file mode 100644 index 0000000..7e0a3be --- /dev/null +++ b/extra/Toolchain/index.html @@ -0,0 +1,12 @@ + + + + + CoreSense Toolchain + + + + +

This page has moved to CoreSense Toolchain.

+ + diff --git a/getting_started/index.rst b/getting_started/index.rst index 87ecbdd..a593abc 100644 --- a/getting_started/index.rst +++ b/getting_started/index.rst @@ -3,25 +3,53 @@ Getting Started ############### -This document will take you through the process of installing the |PN| binaries -and using |PN|. +The fastest way to try a released CoreSense package is `Pixi `_. Pixi installs ROS 2 and all the dependencies in a project folder, from the `RoboStack `_ channels and the CoreSense channels. It does not need a system-wide ROS installation, ``rosdep`` or ``colcon``, and it works on any Linux distribution. + +This example installs EasyNav, the CoreSense navigation framework, for ROS 2 Jazzy. .. note:: - See the :ref:`build-instructions` for other situations such as building from source or - working with other types of robots. + See :ref:`build-instructions` to install with ``apt`` on Ubuntu, or to build from source. + +1. Install Pixi (version 0.77 or newer) and open a new terminal: + + .. code-block:: bash + + curl -fsSL https://pixi.sh/install.sh | bash + +2. Create a project that uses the CoreSense and RoboStack channels for Jazzy: + + .. code-block:: bash -Installation -************ + pixi init my_app -c https://prefix.dev/coresense-jazzy \ + -c https://prefix.dev/robostack-jazzy -c conda-forge + cd my_app -1. Install the ROS 2 binary packages as described in the official docs -2. Install the |PN| packages using your operating system's package manager: +3. Add the packages. ``ros-jazzy-ros2run`` provides the ``ros2`` command line tool: .. code-block:: bash - sudo apt install ros--CoreSense-* + pixi add ros-jazzy-easynav ros-jazzy-easynav-simple-planner ros-jazzy-ros2run + +4. Run any ROS 2 command inside the environment. Nothing needs to be sourced: + + .. code-block:: bash + + pixi run ros2 pkg list | grep easynav + pixi shell # or open a shell with the environment activated + +For ROS 2 Kilted, replace ``jazzy`` with ``kilted`` in the channels and in the package names. + +To learn how to use EasyNav, see its documentation at https://easynavigation.github.io. + +Available channels +****************** -Running the Example -******************* +============= ================================================= +Distribution Channel +============= ================================================= +Jazzy (LTS) https://prefix.dev/channels/coresense-jazzy +Kilted https://prefix.dev/channels/coresense-kilted +============= ================================================= -TBD +The channel pages list all the available packages and versions. diff --git a/images/eu_funded_en.jpg b/images/eu_funded_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ab0c75e5961223a37015b873916d9755f0ab003 GIT binary patch literal 20561 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 literal 0 HcmV?d00001 diff --git a/index.rst b/index.rst index 73d0e35..1aa69f4 100644 --- a/index.rst +++ b/index.rst @@ -7,26 +7,43 @@ Overview ######## -CoreSense Project (CoreSense in short) is a project... TBD +CoreSense (*A Hybrid Cognitive Architecture for Deep Understanding*) is a Horizon Europe research project (2022–2026) that develops a theory of understanding and awareness for robots, and a cognitive architecture that implements it on top of ROS 2. +This site is the technical documentation of the CoreSense software. It explains how to install the released packages, the design of the architecture, and how to use the cognitive modules, the engineering toolchain and the ROS 2 instrumentation developed in the project. The project website, with news, publications and public deliverables, is at https://coresense.eu. -.. image:: images/funding.png - :width: 400 - :alt: CoreSense Project funding +All the software is open source and available in the `CoreSense GitHub organisation `_. + +Where to start +************** + +- :ref:`getting_started`: install a released CoreSense package in a few minutes, with Pixi or ``apt``. +- :ref:`build-instructions`: all the installation options, including building from source. +- :ref:`design`: the CoreSense architecture. +- :ref:`packages`: the catalogue of CoreSense software, grouped by topic. +- :ref:`tutorials`: step-by-step guides. +- :ref:`testbeds`: the three testbeds where CoreSense has been validated. +- :ref:`contribution_guideline`: how to contribute and how to release a package. + +Funding +******* + +.. image:: images/eu_funded_en.jpg + :width: 300 + :alt: Funded by the European Union + +CoreSense has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No 101070254. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Commission. Neither the European Union nor the granting authority can be held responsible for them. .. toctree:: :hidden: getting_started/index.rst - opensourecommunity/index.rst build_instructions/index.rst design/index.rst + packages/index.rst tutorials/index.rst + instrumentation/index.rst + toolchain/index.rst testbeds/index.rst demos/index.rst - toolchain/index.rst + opensourecommunity/index.rst about/index.rst - instrumentation/index.rst - - - diff --git a/instrumentation/index.rst b/instrumentation/index.rst index 291ef98..03909c1 100644 --- a/instrumentation/index.rst +++ b/instrumentation/index.rst @@ -4,7 +4,7 @@ CoreSense Instrumentation ************************* -.. attention:: This package is part of the CORESENSE prject. And is still under development. any feedback is welcome. +.. note:: This package is part of the CoreSense project. Feedback is welcome in the `issue tracker `_. Monitoring robot behavior in real-world applications often requires tracking multiple nodes, each with its own topics. To simplify this, we developed CoreSense Instrumentation. It allows you to monitor the state of the robot’s systems and manage nodes and topics, including creating or deleting them as needed. @@ -24,7 +24,7 @@ The tool works by creating a virtual driver for each component, as shown in :num :scale: 100 :align: center - Coresense Instrumentation Rviz plugin + CoreSense Instrumentation RViz plugin ---------------- How to use diff --git a/opensourecommunity/index.rst b/opensourecommunity/index.rst index e98509a..5a3bd89 100644 --- a/opensourecommunity/index.rst +++ b/opensourecommunity/index.rst @@ -12,4 +12,14 @@ To streamline the review process, the pull request should have a concise yet inf Once the pull request is submitted, maintainers of the main repository will review it. This review process typically involves evaluating the code against coding standards, verifying functionality, and assessing overall impact. The repository maintainers will then decide to approve, request revisions, or reject the pull request based on these criteria. Upon approval, the pull request will be merged, thereby incorporating the changes into the upstream repository. -When implementing changes, adherence to the `CoreSense Developer’s Guidelines `_ is mandatory. Any code not aligning with these guidelines will be deemed non-compliant and will not be merged. Specifically, for contributions involving ROS code, compliance with ROS testing policies is required. This includes meeting the minimum requirement of unit test coverage, ensuring that all components are thoroughly tested to prevent regression and ensure robustness. Additionally, the code must pass all defined linter checks, which validate code quality, formatting, and adherence to stylistic conventions. +When implementing changes, adherence to the `CoreSense Developer’s Guidelines `_ is mandatory. Any code not aligning with these guidelines will be deemed non-compliant and will not be merged. Specifically, for contributions involving ROS code, compliance with ROS testing policies is required. This includes meeting the minimum requirement of unit test coverage, ensuring that all components are thoroughly tested to prevent regression and ensure robustness. Additionally, the code must pass all defined linter checks, which validate code quality, formatting, and adherence to stylistic conventions. + +Releasing a package +******************* + +Packages are released as CoreSense packages when they reach the quality required by the development guidelines and are useful for the ROS community. The package leader requests the release, the committee of package leaders reviews it, and the package leader publishes it for the newest active ROS 2 distributions: + +- In the ROS 2 buildfarm, with ``bloom``, following the `ROS 2 release guide `_. +- In the CoreSense Pixi channels at prefix.dev, following :ref:`tutorial_pixi_release`. + +Every repository must include a ``LICENSE`` file (Apache 2.0 is recommended) and the EU funding acknowledgement in its ``README.md``. diff --git a/packages/index.rst b/packages/index.rst new file mode 100644 index 0000000..efb626d --- /dev/null +++ b/packages/index.rst @@ -0,0 +1,148 @@ +.. _packages: + +Software catalogue +################## + +All the CoreSense software is open source and hosted in the `CoreSense GitHub organisation `_. This page lists the main repositories, grouped by topic. The *Install* column shows how each one can be installed (see :ref:`build-instructions`): **Pixi**, **apt** or **source**. + +Architecture +************ + +.. list-table:: + :header-rows: 1 + :widths: 30 55 15 + + * - Repository + - Description + - Install + * - `cs4home_architecture `_ + - ROS 2 implementation of the CoreSense architecture: cognitive modules (afferent, core, efferent, meta and coupling components) and flows. + - source + * - `cs4home_examples `_ + - Example cognitive modules built with ``cs4home_architecture``. + - source + * - `cs_functional_module_template `_ + - Template to start a new functional module. + - source + * - `coresense_understanding `_ + - Understanding system: generates strategies to obtain models with given properties. + - source + * - `understanding-logic `_ + - Logic of the understanding core. + - source + * - `coresense_understanding_examples `_ + - Example engines for the understanding system. + - source + * - `decision_system `_ + - CoreSense decision system for ROS 2. + - source + * - `triplestar_kb `_ + - Knowledge base for ROS 2 based on RDF-star and RDF 1.2. + - source + * - `coresense_vampire `_ + - ROS 2 node that wraps the Vampire automated theorem prover. + - source + * - `cso `_ + - CoreSense Ontology, resolvable at https://w3id.org/coresense/cso. + - -- + +Cognitive modules and structures +******************************** + +.. list-table:: + :header-rows: 1 + :widths: 30 55 15 + + * - Repository + - Description + - Install + * - `EasyNavigation `_ and `easynav_plugins `_ + - EasyNav, a plugin-based, real-time navigation framework able to include semantic and awareness representations. Documentation: https://easynavigation.github.io. + - Pixi, apt + * - `risk-awareness-module `_ + - Risk awareness module (RiskAM): real-time risk score of visually navigated robots. See :ref:`tutorial_riskam`. + - source + * - `physics-aware-module `_ + - Physics-aware modelling module based on neuro-evolutionary symbolic regression. + - source + * - `fms `_ + - Cognitive structure to deploy AI foundation models inside CoreSense systems. + - source + * - `cs-ne `_ + - CoreSense Navigation Essential. + - source + * - `cs4home_sound_module `_ + - Cognitive module for sound perception. + - source + * - `cs4home_vision_module `_ + - Cognitive module for visual perception. + - source + * - `cs4home_person_tracker_module `_ + - Person tracking from camera and laser detections. + - source + * - `cs4home-explainability `_ + - Explainability framework based on behaviour-tree status and component evidence. + - source + +Toolchain +********* + +.. list-table:: + :header-rows: 1 + :widths: 30 55 15 + + * - Repository + - Description + - Install + * - `rossdl `_ + - ROS System Definition Language: model-based description of ROS 2 systems and code generation. + - source + * - `RosTooling `_ + - Eclipse-based IDE to model ROS systems. See :ref:`toolchain_introduction`. + - update site + * - `CS_ros2model_TBs `_ + - Models of the testbed systems extracted with the introspection tools. + - -- + * - `SysML2-server-api `_ + - Dockerised local SysML v2 server and API pipeline. + - Docker + +ROS 2 instrumentation +********************* + +.. list-table:: + :header-rows: 1 + :widths: 30 55 15 + + * - Repository + - Description + - Install + * - `coresense_instrumentation `_ + - Virtual drivers to activate, deactivate and monitor data flows, and an RViz plugin. See :ref:`instrumentation`. + - source + +Testbeds +******** + +.. list-table:: + :header-rows: 1 + :widths: 30 55 15 + + * - Repository + - Description + - Install + * - `CoreSense4Home `_ + - CoreSense implementation for RoboCup@Home (social testbed). + - source + * - `cs4home_hri_challenge `_ + - HRI challenge of the social testbed. + - source + * - `tiago_sw `_ + - Open-source software for the PAL TIAGo robot used in the social testbed. + - source, apt + * - `collective_awareness_structure `_ + - Collective awareness for multi-robot systems built with Aerostack2 (inspection testbed). + - source + * - `TB2_Panel_Inspection_Simulation `_ + - Simulation of the drone panel inspection testbed. + - source diff --git a/testbeds/docs/manufacturing_testbed.rst b/testbeds/docs/manufacturing_testbed.rst new file mode 100644 index 0000000..30f4a6b --- /dev/null +++ b/testbeds/docs/manufacturing_testbed.rst @@ -0,0 +1,13 @@ +.. _manufacturing_testbed: + +TB1: Manufacturing Testbed +************************** + +The manufacturing testbed demonstrates augmented flexibility and autonomy of robots in manufacturing cells. It has been developed by IMR and by TU Delft at SAM|XL, and it evaluates how CoreSense copes with intrinsic and extrinsic variability in the manufacturing process. + +Software used in this testbed: + +- `risk-awareness-module `_: risk awareness module. See :ref:`tutorial_riskam`. +- `physics-aware-module `_: physics-aware modelling module. + +The concept and requirements of the testbed are described in the public deliverable `D6.1 Manufacturing Testbed Concept and Requirements Specification `_. diff --git a/testbeds/docs/social_testbed.rst b/testbeds/docs/social_testbed.rst new file mode 100644 index 0000000..587f3d9 --- /dev/null +++ b/testbeds/docs/social_testbed.rst @@ -0,0 +1,19 @@ +.. _social_testbed: + +TB3: Social Testbed +******************* + +The social testbed evaluates CoreSense in human-robot interaction, following the tasks of the RoboCup@Home competition: a PAL TIAGo robot interacts with people in a domestic environment. It has been developed by URJC and PAL Robotics, with a copy of the arena at the University of León (León@Home, a certified European Robotics League testbed), at URJC and at PAL. + +The main demonstrator is the RoboCup@Home HRI Challenge: the robot receives a guest, describes and introduces the person, finds a seat and helps with a bag. It uses the following CoreSense software: + +- `cs4home_architecture `_: ROS 2 implementation of the CoreSense architecture (see :ref:`tutorial_cs4home`). +- `cs4home_hri_challenge `_: coordination of the cognitive modules for the HRI challenge. +- `cs4home_sound_module `_: auditory event detection and sound source localisation. +- `cs4home_vision_module `_: scene understanding and perception of contextual entities. +- `cs4home_person_tracker_module `_: person tracking from camera and laser detections. +- `cs4home-explainability `_: human-understandable explanations when failures, timeouts or unexpected situations occur. +- `CoreSense4Home `_: behaviours and bringup for RoboCup@Home. +- `tiago_sw `_: open-source software of the TIAGo robot. + +The testbed is described in the public deliverables `D8.1 Social Testbed Concept and Requirements Specification `_ and D8.3 Social Testbed Implementation. diff --git a/testbeds/index.rst b/testbeds/index.rst index a52a5a9..1128e32 100644 --- a/testbeds/index.rst +++ b/testbeds/index.rst @@ -1,11 +1,13 @@ .. _testbeds: Testbeds -######### +######## -CoreSense Testbeds +CoreSense has been validated in three testbeds, each one focused on different properties of the robot: flexibility, resilience and explainability. The public deliverables of each testbed are available at https://coresense.eu. .. toctree:: :maxdepth: 1 + docs/manufacturing_testbed.rst docs/inspection_testbed.rst + docs/social_testbed.rst diff --git a/tutorials/docs/cs4home_modules.rst b/tutorials/docs/cs4home_modules.rst new file mode 100644 index 0000000..5776587 --- /dev/null +++ b/tutorials/docs/cs4home_modules.rst @@ -0,0 +1,57 @@ +.. _tutorial_cs4home: + +Cognitive modules with cs4home_architecture +******************************************* + +This tutorial builds and runs the example cognitive modules of `cs4home_examples `_, which use the ROS 2 implementation of the CoreSense architecture, `cs4home_architecture `_. See :ref:`design` for the structure of a cognitive module. + +The repository contains two examples: + +- **Face module**: face identities from ``hri_face_detect`` are converted into knowledge-graph updates. +- **YOLO module**: camera images are processed by YOLO and published as detections. + +Build +===== + +Requires ROS 2 and ``vcstool``. + +.. code-block:: bash + + mkdir -p ~/cs4home_examples_ws/src + cd ~/cs4home_examples_ws/src + git clone https://github.com/CoreSenseEU/cs4home_examples.git + vcs import --recursive < cs4home_examples/thirdparty.repos + cd .. + python3 -m venv --system-site-packages py_deps + source py_deps/bin/activate + pip install -r src/thirdparty/hri_face_detect/requirements.txt + pip install -r src/thirdparty/yolov8_ros/requirements.txt + rosdep install --from-paths src --ignore-src -r -y + colcon build --symlink-install + source install/setup.bash + +Run the YOLO module +=================== + +Start a camera driver, then: + +.. code-block:: bash + + ros2 launch cs4home_simple_project yolo_example.launch.py + +Run the face module +=================== + +Start ``hri_face_detect``, then run the module with its parameters: + +.. code-block:: bash + + ros2 run cs4home_simple_project face_module --ros-args \ + --params-file src/cs4home_examples/cs4home_simple_project/config/params_simple.yaml + +The result can be inspected with the knowledge-graph RQt plugin. + +Create your own module +====================== + +`cs_functional_module_template `_ is a starting point for a new module. More complete examples are the perception modules of the social testbed: `cs4home_sound_module `_ and `cs4home_vision_module `_. diff --git a/tutorials/docs/dummy.rst b/tutorials/docs/dummy.rst deleted file mode 100644 index 99e7595..0000000 --- a/tutorials/docs/dummy.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _dummy: - -Tutorial Dummy -************** - -TBD diff --git a/tutorials/docs/pixi_release.rst b/tutorials/docs/pixi_release.rst new file mode 100644 index 0000000..4734d7e --- /dev/null +++ b/tutorials/docs/pixi_release.rst @@ -0,0 +1,109 @@ +.. _tutorial_pixi_release: + +Publish a package in the CoreSense Pixi channels +************************************************ + +This tutorial publishes a ROS 2 package in the CoreSense Pixi channels, so that anyone can install it with Pixi on any Linux distribution. It summarises the second exercise of the ROSCon 2026 workshop `Declarative ROS workspaces with Pixi `_, and it is also part of the `CoreSense/ROS Development Guidelines (D5.1) `_. + +The examples use a package called ``my_package`` and ROS 2 Jazzy. For Kilted, replace ``jazzy`` with ``kilted`` everywhere. + +1. Install Pixi +=============== + +.. code-block:: bash + + curl -fsSL https://pixi.sh/install.sh | bash + +2. Add a package manifest +========================= + +Put a ``pixi.toml`` next to the ``package.xml`` of each package, and another one at the root of the repository for the workspace: + +.. code-block:: text + + my_repository/ + pixi.toml <- workspace manifest + my_package/ + package.xml + CMakeLists.txt + pixi.toml <- package manifest + +The package manifest says which build backend to use and that the package may be published. Everything else, including name, version and dependencies, comes from ``package.xml``: + +.. code-block:: toml + + [package] + publish = true + + [package.build.backend] + name = "pixi-build-ros" + workspace = true + +For ``ros2 run`` to find an executable, install it in ``lib/``, as in any ROS 2 package. + +3. Add the workspace manifest +============================= + +.. code-block:: toml + + [workspace] + name = "my_repository" + channels = ["https://prefix.dev/coresense-jazzy", + "https://prefix.dev/robostack-jazzy", + "conda-forge"] + platforms = ["linux-64"] + preview = ["pixi-build"] + + [workspace.dependencies] + pixi-build-ros = ">=0.7.5" + + [dependencies] + ros-jazzy-my-package = { path = "my_package" } + ros-jazzy-ros2run = "*" + + [tasks] + start = "ros2 run my_package my_node" + +The conda name of ``my_package`` is ``ros-jazzy-my-package``: distribution prefix, and hyphens instead of underscores. + +4. Build and test locally +========================= + +.. code-block:: bash + + pixi install # builds my_package and installs it in the environment + pixi run start # runs the node, no sourcing needed + +If the build fails, the usual reason is a dependency in ``package.xml`` with a different name in RoboStack. It can be mapped with the ``extra-package-mappings`` option of `pixi-build-ros `_. + +5. Publish to a local folder first +================================== + +.. code-block:: bash + + pixi publish --target-channel ./output + find output -name "*.conda" + +6. Publish to the CoreSense channel +=================================== + +You need a prefix.dev account with write permission on the CoreSense channels. Ask the WP5 leader to add your account, create an API key in your prefix.dev account settings, and then run: + +.. code-block:: bash + + pixi auth login prefix.dev --token + pixi publish --dry-run --target-channel https://prefix.dev/coresense-jazzy + pixi publish --target-channel https://prefix.dev/coresense-jazzy + +A version that already exists in the channel is skipped, so increase the version in ``package.xml`` for every release. Packages are built for the platform of the machine where Pixi runs. + +7. Install the published package +================================ + +.. code-block:: bash + + pixi init my_app -c https://prefix.dev/coresense-jazzy \ + -c https://prefix.dev/robostack-jazzy -c conda-forge + cd my_app + pixi add ros-jazzy-my-package ros-jazzy-ros2run + pixi run ros2 run my_package my_node diff --git a/tutorials/docs/riskam.rst b/tutorials/docs/riskam.rst new file mode 100644 index 0000000..e525efd --- /dev/null +++ b/tutorials/docs/riskam.rst @@ -0,0 +1,67 @@ +.. _tutorial_riskam: + +Risk awareness with RiskAM +************************** + +The Risk Awareness Module (RiskAM), in `risk-awareness-module `_, computes in real time a risk score between 0 and 1 for visually navigated robots, considering the risk to humans around the robot. It combines proximity, gaze, position and approach sub-scores computed from an RGB-D camera. + +Requirements +============ + +- An RGB camera and an absolute depth image in metres. The defaults are calibrated for Intel RealSense D4xx cameras. +- Optionally, the robot velocity (``cmd_vel``) and person tracking, to enable the path-aware and approach sub-scores. +- ROS 2. It is tested on Rolling. + +Build +===== + +.. code-block:: bash + + cd ~/ros2_ws/src + git clone https://github.com/CoreSenseEU/risk-awareness-module.git + cd .. + colcon build --packages-select riskam riskam_ros riskam_msgs riskam_bringup + source install/setup.bash + +Run +=== + +.. code-block:: bash + + ros2 run riskam_ros riskam_node.py --ros-args -p camera_topic:=/your/color/topic + +or, to launch the node together with the data logger: + +.. code-block:: bash + + ros2 launch riskam_bringup riskam.launch.py run_logger:=true + +The parameters are in ``riskam_bringup/config/riskam_config.yml``. The main ones are: + +.. list-table:: + :header-rows: 1 + + * - Parameter + - Default + - Purpose + * - ``camera_topic`` + - ``/camera/camera/color/image_raw`` + - RGB input + * - ``depth_topic`` + - ``/camera/camera/depth/image_rect_raw`` + - Depth input + * - ``cmd_vel_topic`` + - ``/cmd_vel`` + - Robot velocity (optional) + * - ``d_safe`` + - ``1.5`` m + - Safety distance + +Output +====== + +- ``/riskam/risk_score`` (``riskam_msgs/FloatStamped``): risk of the scene, between 0 and 1. +- ``/riskam/annotated_image`` (``sensor_msgs/Image``): visualisation overlay. +- ``/riskam/diagnostics`` (``diagnostic_msgs/DiagnosticArray``): timing and status of each sub-score. + +The full reference of parameters and topics is in the `repository documentation `_. diff --git a/tutorials/index.rst b/tutorials/index.rst index ff78d90..b58a27b 100644 --- a/tutorials/index.rst +++ b/tutorials/index.rst @@ -3,9 +3,17 @@ Tutorials ######### -CoreSense Tutorials +Step-by-step guides to use and extend CoreSense. .. toctree:: :maxdepth: 1 - docs/dummy.rst + docs/cs4home_modules.rst + docs/riskam.rst + docs/pixi_release.rst + +More guides: + +- ROS 2 instrumentation: :ref:`instrumentation`. +- Modelling ROS systems with the toolchain: `RosTooling tutorials `_. +- Navigation with EasyNav: https://easynavigation.github.io. From 88b4696aafda36e107eff1812b5053a461b7f0b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Mart=C3=ADn=20Rico?= Date: Sat, 26 Sep 2026 21:08:11 +0200 Subject: [PATCH 2/2] Add EU funding acknowledgement to the README Co-Authored-By: Claude Opus 5.5 --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 813dd14..b24b2d9 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,9 @@ Dependencies for Build: Build the docs locally with `make html` and you'll find the built docs entry point in `_build/html/index.html`. + +## Acknowledgement + +Funded by the European Union + +This work has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No 101070254 ([CORESENSE](https://coresense.eu)). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Commission. Neither the European Union nor the granting authority can be held responsible for them.