-
 

rclc repository

Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version humble
Last Updated 2023-12-15
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 4.0.2
rclc_examples 4.0.2
rclc_lifecycle 4.0.2
rclc_parameter 4.0.2

README

The rclc repository

This repository provides the rclc package, which complements the ROS Client Support Library (rcl) to make up a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, most important an Executor, Lifecycle Node and the Parameter server.

In detail, this repository contains four packages:

  • rclc provides the mentioned convenience functions for creating instances of publishers, subscriptions, nodes, etc. with the corresponding rcl types. Furthermore, it provides the rclc Executor for C, analogously to rclcpp’s Executor class for C++. A key feature compared to the rclcpp Executor is that it includes features for implementing deterministic timing behavior.
  • rclc_lifecycle introduces an rclc Lifecycle Node, bundling an rcl Node and the lifecycle state machine from the rcl_lifecycle package.
  • rclc_examples provides small examples for the use of the convenience functions and the rclc Executor, as well as a small example for the use of the rclc Lifecycle Node.
  • rclc_parameter provides convenience functions for creating parameter server instances with full ROS2 parameters client compatibility.

Technical information on the interfaces and the usage of these packages is given in the README.md files in the corresponding subfolders.

The quality declarations for the packages are avaiable in QUALITY_DECLARATION.md files in the corresponding subfolders.

Purpose of the project

The software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

Requirements, how to build, test and install

Source your ROS2 distribution with source /opt/ros/distribution/setup.bash. This will setup the environment variable $ROS-DISTRO. Clone the repository into a ROS2 workspace (e.g. ~/ros2_ws/) and build the packages using colcon build from the Colcon Command Line Tools. To test the RCLC package run colcon test or if you have multiple repositories in this workspace colcon test --packages-select rclc. For correct installation of the rclc-package do a source ~/ros2_ws/install/local_setup.bash. Then you are ready to run the examples in the rclc_examples package.

The following repositories might not be in the default ROS 2 distribution: osrf_testing_tools_cpp and test_msgs. In this case install them manually:

 sudo apt-get install ros-$ROS_DISTRO-osrf-testing-tools-cpp
 sudo apt-get install ros-$ROS_DISTRO-test-msgs

License

rclc is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in rclc, see the file 3rd-party-licenses.txt.

Quality assurance

  • Coding style:
    • The uncrustify tool is used to check the coding style.
  • Linters:
    • The cpplint tool is used to detect common flaws and problems in C/C++ code.
    • The cppcheck tool is used for code analysis.
    • The CMakeLists.txt is checked with lint_cmake and the package.xml with xmllint
  • Unit tests:

Known issues/limitations

Please notice the following issues/limitations:

  • The rclc executor is single-threaded. You cannot create nodes in multiple threads and manage the corresponding subscriptions/services/etc. by one executor.

Bloom Release Status of Code Repository ros2/rclc

Bloom release status of the packages in github.com/ros2/rclc/ for amd64 and arm64 architectures and ROS 2 distributions Foxy, Galactic, Humble and Rolling.

Package Release amd64 arm64
rclc Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_examples      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_lifecycle      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_parameter      
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status

Code coverage

The code coverage is tested with every commit, pull request. Results are available at codecov.

codecov

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version rolling
Last Updated 2024-10-30
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 6.2.0
rclc_examples 6.2.0
rclc_lifecycle 6.2.0
rclc_parameter 6.2.0

README

The rclc repository

This repository provides the rclc package, which complements the ROS Client Support Library (rcl) to make up a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, most important an Executor, Lifecycle Node and the Parameter server.

In detail, this repository contains four packages:

  • rclc provides the mentioned convenience functions for creating instances of publishers, subscriptions, nodes, etc. with the corresponding rcl types. Furthermore, it provides the rclc Executor for C, analogously to rclcpp’s Executor class for C++. A key feature compared to the rclcpp Executor is that it includes features for implementing deterministic timing behavior.
  • rclc_lifecycle introduces an rclc Lifecycle Node, bundling an rcl Node and the lifecycle state machine from the rcl_lifecycle package.
  • rclc_examples provides small examples for the use of the convenience functions and the rclc Executor, as well as a small example for the use of the rclc Lifecycle Node.
  • rclc_parameter provides convenience functions for creating parameter server instances with full ROS2 parameters client compatibility.

Technical information on the interfaces and the usage of these packages is given in the README.md files in the corresponding subfolders.

The quality declarations for the packages are avaiable in QUALITY_DECLARATION.md files in the corresponding subfolders.

Purpose of the project

The software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

Requirements, how to build, test and install

Source your ROS2 distribution with source /opt/ros/distribution/setup.bash. This will setup the environment variable $ROS-DISTRO. Clone the repository into a ROS2 workspace (e.g. ~/ros2_ws/) and build the packages using colcon build from the Colcon Command Line Tools. To test the RCLC package run colcon test or if you have multiple repositories in this workspace colcon test --packages-select rclc. For correct installation of the rclc-package do a source ~/ros2_ws/install/local_setup.bash. Then you are ready to run the examples in the rclc_examples package.

The following repositories might not be in the default ROS 2 distribution: osrf_testing_tools_cpp and test_msgs. In this case install them manually:

 sudo apt-get install ros-$ROS_DISTRO-osrf-testing-tools-cpp
 sudo apt-get install ros-$ROS_DISTRO-test-msgs

License

rclc is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in rclc, see the file 3rd-party-licenses.txt.

Quality assurance

  • Coding style:
    • The uncrustify tool is used to check the coding style.
  • Linters:
    • The cpplint tool is used to detect common flaws and problems in C/C++ code.
    • The cppcheck tool is used for code analysis.
    • The CMakeLists.txt is checked with lint_cmake and the package.xml with xmllint
  • Unit tests:

Known issues/limitations

Please notice the following issues/limitations:

  • The rclc executor is single-threaded. You cannot create nodes in multiple threads and manage the corresponding subscriptions/services/etc. by one executor.

Bloom Release Status of Code Repository ros2/rclc

Bloom release status of the packages in github.com/ros2/rclc/ for amd64 and arm64 architectures and ROS 2 distributions Foxy, Galactic, Humble and Rolling.

Package Release amd64 arm64
rclc Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_examples      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_lifecycle      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_parameter      
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status

Code coverage

The code coverage is tested with every commit, pull request. Results are available at codecov.

codecov

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version rolling
Last Updated 2024-10-30
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 6.2.0
rclc_examples 6.2.0
rclc_lifecycle 6.2.0
rclc_parameter 6.2.0

README

The rclc repository

This repository provides the rclc package, which complements the ROS Client Support Library (rcl) to make up a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, most important an Executor, Lifecycle Node and the Parameter server.

In detail, this repository contains four packages:

  • rclc provides the mentioned convenience functions for creating instances of publishers, subscriptions, nodes, etc. with the corresponding rcl types. Furthermore, it provides the rclc Executor for C, analogously to rclcpp’s Executor class for C++. A key feature compared to the rclcpp Executor is that it includes features for implementing deterministic timing behavior.
  • rclc_lifecycle introduces an rclc Lifecycle Node, bundling an rcl Node and the lifecycle state machine from the rcl_lifecycle package.
  • rclc_examples provides small examples for the use of the convenience functions and the rclc Executor, as well as a small example for the use of the rclc Lifecycle Node.
  • rclc_parameter provides convenience functions for creating parameter server instances with full ROS2 parameters client compatibility.

Technical information on the interfaces and the usage of these packages is given in the README.md files in the corresponding subfolders.

The quality declarations for the packages are avaiable in QUALITY_DECLARATION.md files in the corresponding subfolders.

Purpose of the project

The software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

Requirements, how to build, test and install

Source your ROS2 distribution with source /opt/ros/distribution/setup.bash. This will setup the environment variable $ROS-DISTRO. Clone the repository into a ROS2 workspace (e.g. ~/ros2_ws/) and build the packages using colcon build from the Colcon Command Line Tools. To test the RCLC package run colcon test or if you have multiple repositories in this workspace colcon test --packages-select rclc. For correct installation of the rclc-package do a source ~/ros2_ws/install/local_setup.bash. Then you are ready to run the examples in the rclc_examples package.

The following repositories might not be in the default ROS 2 distribution: osrf_testing_tools_cpp and test_msgs. In this case install them manually:

 sudo apt-get install ros-$ROS_DISTRO-osrf-testing-tools-cpp
 sudo apt-get install ros-$ROS_DISTRO-test-msgs

License

rclc is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in rclc, see the file 3rd-party-licenses.txt.

Quality assurance

  • Coding style:
    • The uncrustify tool is used to check the coding style.
  • Linters:
    • The cpplint tool is used to detect common flaws and problems in C/C++ code.
    • The cppcheck tool is used for code analysis.
    • The CMakeLists.txt is checked with lint_cmake and the package.xml with xmllint
  • Unit tests:

Known issues/limitations

Please notice the following issues/limitations:

  • The rclc executor is single-threaded. You cannot create nodes in multiple threads and manage the corresponding subscriptions/services/etc. by one executor.

Bloom Release Status of Code Repository ros2/rclc

Bloom release status of the packages in github.com/ros2/rclc/ for amd64 and arm64 architectures and ROS 2 distributions Foxy, Galactic, Humble and Rolling.

Package Release amd64 arm64
rclc Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_examples      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_lifecycle      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_parameter      
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status

Code coverage

The code coverage is tested with every commit, pull request. Results are available at codecov.

codecov

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version master
Last Updated 2023-06-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 6.0.0
rclc_examples 6.0.0
rclc_lifecycle 6.0.0
rclc_parameter 6.0.0

README

NOTICE

The master branch is deprecated. Following ROS 2 naming conventions, the rolling branch is now the active development branch.

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version dashing
Last Updated 2021-07-20
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 1.0.1
rclc_examples 1.0.1
rclc_lifecycle 1.0.1

README

The rclc repository

This repository provides the rclc package, which complements the ROS Client Support Library (rcl) to make up a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, most important an Executor and a Lifecycle Node.

In detail, this repository contains three packages:

  • rclc provides the mentioned convenience functions for creating instances of publishers, subscriptions, nodes, etc. with the corresponding rcl types. Furthermore, it provides the rclc Executor for C, analogously to rclcpp’s Executor class for C++. A key feature compared to the rclcpp Executor is that it includes features for implementing deterministic timing behavior.
  • rclc_lifecycle introduces an rclc Lifecycle Node, bundling an rcl Node and the lifecycle state machine from the rcl_lifecycle package.
  • rclc_examples provides small examples for the use of the convenience functions and the rclc Executor, as well as a small example for the use of the rclc Lifecycle Node.

Technical information on the interfaces and the usage of these packages is given in the README.md files in the corresponding subfolders.

The quality declarations for the packages are avaiable in QUALITY_DECLARATION.md files in the corresponding subfolders.

Purpose of the project

The software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

Requirements, how to build, test and install

Source your ROS2 distribution with source /opt/ros/distribution/setup.bash. This will setup the environment variable $ROS-DISTRO. Clone the repository into a ROS2 workspace (e.g. ~/ros2_ws/) and build the packages using colcon build from the Colcon Command Line Tools. To test the RCLC package run colcon test or if you have multiple repositories in this workspace colcon test --packages-select rclc. For correct installation of the rclc-package do a source ~/ros2_ws/install/local_setup.bash. Then you are ready to run the examples in the rclc_examples package.

The following repositories might not be in the default ROS 2 distribution: osrf_testing_tools_cpp and test_msgs. In this case install them manually:

 sudo apt-get install ros-$ROS_DISTRO-osrf-testing-tools-cpp
 sudo apt-get install ros-$ROS_DISTRO-test-msgs

License

rclc is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in rclc, see the file 3rd-party-licenses.txt.

Quality assurance

  • Coding style:
    • The uncrustify tool is used to check the coding style.
  • Linters:
    • The cpplint tool is used to detect common flaws and problems in C/C++ code.
    • The cppcheck tool is used for code analysis.
    • The CMakeLists.txt is checked with lint_cmake and the package.xml with xmllint
  • Unit tests:

Known issues/limitations

Please notice the following issues/limitations:

  • The rclc executor is single-threaded. You cannot create nodes in multiple threads and manage the corresponding subscriptions/services/etc. by one executor.

Bloom Release Status of Code Repository ros2/rclc

Bloom release status of all packages in repository github.com/ros2/rclc/ for different architectures and releases.

Package Release amd64 arm64 armhf
rclc Dashing Build Status Build Status Build Status
  Foxy Build Status Build Status  
  Rolling Build Status Build Status  
         
rclc_examples Dashing Build Status Build Status Build Status
  Foxy Build Status Build Status  
  Rolling Build Status Build Status  
         
rclc_lifecycle Dashing Build Status Build Status Build Status
  Foxy Build Status Build Status  
  Rolling Build Status Build Status  

Code coverage

The code coverage is tested with every commit, pull request. Results are available at codecov.

codecov

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version galactic
Last Updated 2023-01-25
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 2.0.6
rclc_examples 2.0.6
rclc_lifecycle 2.0.6
rclc_parameter 2.0.6

README

ROS 2 Galactic Distribution reached End-Of-Life.

The rclc repositoy is not supported any more for ROS 2 Galactic distribution as it reached its End-Of-Life in December 2022.

Please consider to use Foxy, Humble, or Rolling distribution.

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version foxy
Last Updated 2023-06-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 1.1.2
rclc_examples 1.1.2
rclc_lifecycle 1.1.2
rclc_parameter 1.1.2

README

The rclc repository

This repository provides the rclc package, which complements the ROS Client Support Library (rcl) to make up a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, most important an Executor and a Lifecycle Node.

In detail, this repository contains three packages:

  • rclc provides the mentioned convenience functions for creating instances of publishers, subscriptions, nodes, etc. with the corresponding rcl types. Furthermore, it provides the rclc Executor for C, analogously to rclcpp’s Executor class for C++. A key feature compared to the rclcpp Executor is that it includes features for implementing deterministic timing behavior.
  • rclc_lifecycle introduces an rclc Lifecycle Node, bundling an rcl Node and the lifecycle state machine from the rcl_lifecycle package.
  • rclc_examples provides small examples for the use of the convenience functions and the rclc Executor, as well as a small example for the use of the rclc Lifecycle Node.

Technical information on the interfaces and the usage of these packages is given in the README.md files in the corresponding subfolders.

The quality declarations for the packages are avaiable in QUALITY_DECLARATION.md files in the corresponding subfolders.

Purpose of the project

The software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

Requirements, how to build, test and install

Source your ROS2 distribution with source /opt/ros/distribution/setup.bash. This will setup the environment variable $ROS-DISTRO. Clone the repository into a ROS2 workspace (e.g. ~/ros2_ws/) and build the packages using colcon build from the Colcon Command Line Tools. To test the RCLC package run colcon test or if you have multiple repositories in this workspace colcon test --packages-select rclc. For correct installation of the rclc-package do a source ~/ros2_ws/install/local_setup.bash. Then you are ready to run the examples in the rclc_examples package.

The following repositories might not be in the default ROS 2 distribution: osrf_testing_tools_cpp and test_msgs. In this case install them manually:

 sudo apt-get install ros-$ROS_DISTRO-osrf-testing-tools-cpp
 sudo apt-get install ros-$ROS_DISTRO-test-msgs

License

rclc is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in rclc, see the file 3rd-party-licenses.txt.

Quality assurance

  • Coding style:
    • The uncrustify tool is used to check the coding style.
  • Linters:
    • The cpplint tool is used to detect common flaws and problems in C/C++ code.
    • The cppcheck tool is used for code analysis.
    • The CMakeLists.txt is checked with lint_cmake and the package.xml with xmllint
  • Unit tests:

Known issues/limitations

Please notice the following issues/limitations:

  • The rclc executor is single-threaded. You cannot create nodes in multiple threads and manage the corresponding subscriptions/services/etc. by one executor.

Bloom Release Status of Code Repository ros2/rclc

Bloom release status of the packages in github.com/ros2/rclc/ for amd64 and arm64 architectures and ROS 2 distributions Foxy, Galactic, Humble and Rolling.

Package Release amd64 arm64
rclc Foxy Build Status Build Status
  Humble Build Status Build Status
  Rolling Build Status Build Status
       
rclc_examples      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Rolling Build Status Build Status
       
rclc_lifecycle      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Rolling Build Status Build Status

Code coverage

The code coverage is tested with every commit, pull request. Results are available at codecov.

codecov

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.


Repository Summary

Checkout URI https://github.com/ros2/rclc.git
VCS Type git
VCS Version iron
Last Updated 2023-12-14
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rclc 5.0.1
rclc_examples 5.0.1
rclc_lifecycle 5.0.1
rclc_parameter 5.0.1

README

The rclc repository

This repository provides the rclc package, which complements the ROS Client Support Library (rcl) to make up a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, most important an Executor, Lifecycle Node and the Parameter server.

In detail, this repository contains four packages:

  • rclc provides the mentioned convenience functions for creating instances of publishers, subscriptions, nodes, etc. with the corresponding rcl types. Furthermore, it provides the rclc Executor for C, analogously to rclcpp’s Executor class for C++. A key feature compared to the rclcpp Executor is that it includes features for implementing deterministic timing behavior.
  • rclc_lifecycle introduces an rclc Lifecycle Node, bundling an rcl Node and the lifecycle state machine from the rcl_lifecycle package.
  • rclc_examples provides small examples for the use of the convenience functions and the rclc Executor, as well as a small example for the use of the rclc Lifecycle Node.
  • rclc_parameter provides convenience functions for creating parameter server instances with full ROS2 parameters client compatibility.

Technical information on the interfaces and the usage of these packages is given in the README.md files in the corresponding subfolders.

The quality declarations for the packages are avaiable in QUALITY_DECLARATION.md files in the corresponding subfolders.

Purpose of the project

The software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

Requirements, how to build, test and install

Source your ROS2 distribution with source /opt/ros/distribution/setup.bash. This will setup the environment variable $ROS-DISTRO. Clone the repository into a ROS2 workspace (e.g. ~/ros2_ws/) and build the packages using colcon build from the Colcon Command Line Tools. To test the RCLC package run colcon test or if you have multiple repositories in this workspace colcon test --packages-select rclc. For correct installation of the rclc-package do a source ~/ros2_ws/install/local_setup.bash. Then you are ready to run the examples in the rclc_examples package.

The following repositories might not be in the default ROS 2 distribution: osrf_testing_tools_cpp and test_msgs. In this case install them manually:

 sudo apt-get install ros-$ROS_DISTRO-osrf-testing-tools-cpp
 sudo apt-get install ros-$ROS_DISTRO-test-msgs

License

rclc is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in rclc, see the file 3rd-party-licenses.txt.

Quality assurance

  • Coding style:
    • The uncrustify tool is used to check the coding style.
  • Linters:
    • The cpplint tool is used to detect common flaws and problems in C/C++ code.
    • The cppcheck tool is used for code analysis.
    • The CMakeLists.txt is checked with lint_cmake and the package.xml with xmllint
  • Unit tests:

Known issues/limitations

Please notice the following issues/limitations:

  • The rclc executor is single-threaded. You cannot create nodes in multiple threads and manage the corresponding subscriptions/services/etc. by one executor.

Bloom Release Status of Code Repository ros2/rclc

Bloom release status of the packages in github.com/ros2/rclc/ for amd64 and arm64 architectures and ROS 2 distributions Foxy, Galactic, Humble and Rolling.

Package Release amd64 arm64
rclc Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_examples      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_lifecycle      
  Foxy Build Status Build Status
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status
       
rclc_parameter      
  Humble Build Status Build Status
  Iron Build Status Build Status
  Rolling Build Status Build Status

Code coverage

The code coverage is tested with every commit, pull request. Results are available at codecov.

codecov

CONTRIBUTING

Contribution Guidelines

The present document provides a set of guidelines to which contributors must adhere.

Contributions Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Developer Certificate of Origin

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO) Version 1.1.