Skip to content

Commit

Permalink
Imported upstream version '0.2.4' of 'upstream'
Browse files Browse the repository at this point in the history
  • Loading branch information
mkabtoul committed Dec 27, 2024
1 parent 768367e commit 9dc7f33
Show file tree
Hide file tree
Showing 75 changed files with 11,506 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/debian_packaging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build Debian packaging

on:
workflow_dispatch:
pull_request:
push:
branches:
- main

jobs:
build_debs:
name: Build debs on linux x86_64
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: automatika-robotics/create-ros-debs-action@v1
with:
ros-versions-matrix: 'humble iron jazzy rolling'

- uses: actions/upload-artifact@v4
with:
name: debs-${{ strategy.job-index }}
path: ./debs/*.deb
27 changes: 27 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: documentation

on: [push, pull_request, workflow_dispatch]

permissions:
contents: write

jobs:
docs:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install dependencies
run: |
pip install --break-system-packages sphinx myst_parser sphinx-copybutton sphinx-autodoc2 sphinx-book-theme linkify-it-py
- name: Sphinx build
run: |
sphinx-build docs _build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: _build/
force_orphan: true
24 changes: 24 additions & 0 deletions .github/workflows/release_mirror.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Copy repo to release mirror

on:
workflow_dispatch:
release:
types:
- published


jobs:
release_mirror:
name: Push main to release repo
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
ref: main

- uses: automatika-robotics/push-to-release-repo-action@v2
with:
destination-username: "${{ secrets.DESTINATION_USERNAME }}"
destination-access-token: ${{ secrets.DESTINATION_ACCESS_TOKEN }}
destination-repository: "automatika-robotics/ros-sugar-release"
45 changes: 45 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-docstring-first
- id: check-toml
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.5.1
hooks:
# Run the linter.
- id: ruff
types_or: [ python, pyi, jupyter ]
# Run the formatter.
- id: ruff-format
types_or: [ python, pyi, jupyter ]
- repo: https://github.com/econchick/interrogate
rev: 1.5.0
hooks:
- id: interrogate
# Interrogate a codebase for docstring coverage.
args: [-vv,
--fail-under=80
]


## Uncomment mypy for type-checking errors in pre-commit

# - repo: https://github.com/pre-commit/mirrors-mypy
# rev: v1.5.0
# hooks:
# - id: mypy
# additional_dependencies: [tokenize-rt==3.2.0, 'types-PyYAML']
# exclude: ^tests/
# args:
# [
# "--ignore-missing-imports",
# "--check-untyped-defs",
# "--warn-redundant-casts",
# "--no-implicit-optional",
# "--warn-return-any"
# ]
185 changes: 185 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package automatika_ros_sugar
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.2.4 (2024-12-27)
------------------
* (fix) Adds algorithm auto re-configuration from YAML file
* (fix) Fixes callback got_msg property
* (feature) Adds topics callbacks/conversions reparsing to component
Supports running components from different packages in one script and each component uses its own package callbacks/conversions
* (fix) Updates AllowedTopics config and its validator
* (refactor) Removes PIL as a dependancy
* (fix) Fixes component state transition logging
* (fix) Fixes order to custom method execution in component lifecycle transition methods
* (refactor) Removes BaseNode class
* (fix) Fixes packaging workflow formatting
* (fix) Removes redundant methods from components
* (chore) Increments release action version
* (chore) Adds new action in debs creation workflow
* (refactor) Formats utils
* (refactor) Minor refactoring in utils
* (fix) Removes fix for color correction as the transformation is now applied at the time of visualization
* (fix) Adds color transformation when reading images of yuv encoding
* (chore) Changes name of release action
* (feature) Adds component algorithm config management to the api
* (fix) fixes datatypes update method for using multiple packages
* (chore) Cleans up cmake and packaging
* (refactor) Improves error message when a topic of unsupported type is created
* (refactor) Handles additional datatypes provided by user packages
* (fix) Pins release mirror workflow to run only on release publishing
* (fix) Adds branch name to release workflow
* (fix) Fixes name of action
* (feature) Adds release mirror action
* (docs) Removes autogenerated docs
* (docs) Adds minor modification to readme
* (docs) Changes package description
* (feature) Adds ExecuteMethod service to BaseComponent
* (fix) Minor fix in conversion method
* (refactor) Makes compressed image a realization of image
* (fix) Fixes ros compressed image conversion util
* (feature) Adds support for CompressedImage msg
* (feature) Adds ros_log_level option to each added package
* (feature) Adds additional supported types argument to BaseComponent and Topic validators
* (fix) Adds algorithm auto re-configuration from YAML file
* (fix) Fixes callback got_msg property
* (feature) Adds topics callbacks/conversions reparsing to component
Supports running components from different packages in one script and each component uses its own package callbacks/conversions
* (fix) Updates AllowedTopics config and its validator
* (refactor) Removes PIL as a dependancy
* (fix) Fixes component state transition logging
* (fix) Fixes order to custom method execution in component lifecycle transition methods
* (refactor) Removes BaseNode class
* (fix) Fixes packaging workflow formatting
* (fix) Removes redundant methods from components
* (chore) Increments release action version
* (chore) Adds new action in debs creation workflow
* (refactor) Formats utils
* (refactor) Minor refactoring in utils
* (fix) Removes fix for color correction as the transformation is now applied at the time of visualization
* (fix) Adds color transformation when reading images of yuv encoding
* (chore) Changes name of release action
* (feature) Adds component algorithm config management to the api
* (fix) fixes datatypes update method for using multiple packages
* (chore) Cleans up cmake and packaging
* (refactor) Improves error message when a topic of unsupported type is created
* (refactor) Handles additional datatypes provided by user packages
* (fix) Pins release mirror workflow to run only on release publishing
* (fix) Adds branch name to release workflow
* (fix) Fixes name of action
* (feature) Adds release mirror action
* (docs) Removes autogenerated docs
* (docs) Adds minor modification to readme
* (docs) Changes package description
* (feature) Adds ExecuteMethod service to BaseComponent
* (fix) Fixes OccupnacyGrid data publishing from numpy
* (fix) Minor fix in conversion method
* (refactor) Makes compressed image a realization of image
* (fix) Fixes ros compressed image conversion util
* (feature) Adds support for CompressedImage msg
* (feature) Adds ros_log_level option to each added package
* (feature) Adds additional supported types argument to BaseComponent and Topic validators
* (fix) Merge pull request `#14 <https://github.com/automatika-robotics/ros-sugar/issues/14>`_
* (chore) Updates package name to automatika_ros_sugar
* (fix) Checks numpy array shape in OccupancyGrid converter
* (feature) Adds stamped header and frame_id to ros publishers/callbacks
* (docs) Updates install instructions
* Contributors: ahr, mkabtoul

0.2.3 (2024-11-13)
------------------
* (chore) bump version 0.2.2 -> 0.2.3
* (chore) Adds deb packaging scripts and actions (`#13 <https://github.com/automatika-robotics/ros-sugar/issues/13>`_)
* (docs) Removes notice
* Contributors: ahr

0.2.2 (2024-11-04)
------------------
* (chore) bump version 0.2.1 -> 0.2.2
* (feature) Adds activation timeout to monitor and launcher
* (fix) Fixes publishing numpy data to ROS OcuupancyGrid
* (refactor) Updates OccupancyGrid get_output using numpy operations
* Contributors: mkabtoul

0.2.1 (2024-10-29)
------------------
* (chore) bump version 0.2.0 -> 0.2.1
* (feature) Adds support for external tool calling in multiprocessing
* Contributors: ahr

0.2.0 (2024-10-25)
------------------
* (chore) Bump version 0.1.1 -> 0.2.0
* Merge pull request `#12 <https://github.com/automatika-robotics/ros-sugar/issues/12>`_ from automatika-robotics/feature/external_processors
Adds external processor support when running components in multiprocessing
* (refactor) Makes msgpack a global dependancy
* (fix) Fixes deserialization of external processors and handling of processor result in launcher
* (fix) Corrects the serialization of numpy arrays within lists
* (feature) Changes defaults for launcher parameters when using multiprocessing
* (fix) Fixes handling composite type check for deserialization and input/output deserialization in components
* (fix) Adds node name as parameter to callbacks for init
* (fix) Adds alias to attrs private attribute in BaseComponentConfig
* (fix) Restores executable to old version
* Merge branch 'feature/external_processors' of github.com:automatika-robotics/ros-sugar into feature/external_processors
* (fix) Fixes new method name in launcher
* (fix) Moves callbackgroup to BaseComponentConfig and changes initialization of inputs/outputs in component
* (fix) Fixes serialization of callbackgroup in config
* (fix) Fixes type hints for compatibility
* (docs) Fixes ubuntu version for dependancy problems
* (refactor) Makes msgpack a functional dependency
* (refactor) Adds handling of callback group and input/output initialization to facilitate multiprocessing
* (feature) Adds handling of callback group for multiprocess launch
* (fix) Adds serialization of np arrays and tuples
* (fix) Adds converter for QoS profile for serialization
* (refactor) Changes inputs/outputs handling in executable
* (refactor) Changes name of enum convert utility function
* (fix) Fixes use of multi processors for same topic in launcher
* (fix) Fix package installation for documentation workflow
* (feature) Adds support for multiple external processors on the same topic
* (fix) Fixes visibility of external_processors to protected
* (fix) Fixes typo in attaching external preprocessors
* (feature) Adds unix socket based listener threads for using external processors with components being run in multiprocessing
- Modifies executable to add an argument for external processors
- Adds setting and getting for external processor json in component
- Adds setting up of external processors on component activation and destruction on component stop
- Adds setup of external processor sockets and thread pool in launcher
* (fix) Moves callbackgroup to BaseComponentConfig and changes initialization of inputs/outputs in component
* (fix) Fixes serialization of callbackgroup in config
* (fix) Fixes type hints for compatibility
* (docs) Fixes ubuntu version for dependancy problems
* (refactor) Makes msgpack a functional dependency
* (refactor) Adds handling of callback group and input/output initialization to facilitate multiprocessing
* (feature) Adds handling of callback group for multiprocess launch
* (fix) Adds serialization of np arrays and tuples
* (fix) Adds converter for QoS profile for serialization
* (refactor) Changes inputs/outputs handling in executable
* (refactor) Changes name of enum convert utility function
* (feature) Adds event processing options and supports lists in event values
Adds options to handle an event once or handle with a time delay
* (fix) Uses List from typing in type hints
* (feature) Adds handle_once and event_delay options to Event
* (feature) Adds list to supported event trigger values
* (fix) Handles keep_alive in component parameter update service requests
* (fix) Passes monitor executor to service client send_req
* (fix) Fixes use of multi processors for same topic in launcher
* (fix) Fix package installation for documentation workflow
* (feature) Adds support for multiple external processors on the same topic
* (fix) Fixes visibility of external_processors to protected
* (fix) Fixes typo in attaching external preprocessors
* (feature) Adds unix socket based listener threads for using external processors with components being run in multiprocessing
- Modifies executable to add an argument for external processors
- Adds setting and getting for external processor json in component
- Adds setting up of external processors on component activation and destruction on component stop
- Adds setup of external processor sockets and thread pool in launcher
* (fix) Fixes minor bugs in base component and launcher (`#10 <https://github.com/automatika-robotics/ros-sugar/issues/10>`_)
* (fix) Fixes the handling of yuv422_yuy2 encoding in image reading util function
* (fix) Adds process id to monitor node name
* (fix) Fixes type check for callables in attaching post and pre processors
* (fix) Updates component launch arguments after parsing events_actions
* (docs) Updates docs url links in readme
* (docs) Adds github workflow for docs (`#9 <https://github.com/automatika-robotics/ros-sugar/issues/9>`_)
* (fix) Adds handling image encodings with alpha channel
* Create LICENSE
* Initial release version 0.1.1 (`#8 <https://github.com/automatika-robotics/ros-sugar/issues/8>`_)
* init commit
* Contributors: ahr, aleph-ra, mkabtoul
49 changes: 49 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
cmake_minimum_required(VERSION 3.8)
project(automatika_ros_sugar)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)
find_package(ament_cmake_python REQUIRED)
find_package(rosidl_default_generators REQUIRED)
find_package(builtin_interfaces REQUIRED)

find_package(rclcpp REQUIRED)
find_package(rclpy REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(lifecycle_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)

set(msg_files

"msg/ComponentStatus.msg"
)


set(service_files

"srv/ChangeParameter.srv"
"srv/ChangeParameters.srv"
"srv/ConfigureFromYaml.srv"
"srv/ReplaceTopic.srv"
"srv/ExecuteMethod.srv"
)

rosidl_generate_interfaces(${PROJECT_NAME}
${msg_files}
${service_files}
DEPENDENCIES builtin_interfaces
)

ament_export_dependencies(rosidl_default_runtime)

# Install Python modules
ament_python_install_package(ros_sugar)

ament_package()
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Automatika Robotics

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading

0 comments on commit 9dc7f33

Please sign in to comment.