-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dev to Master Sync See merge request ros/ros_bt_py!153
- Loading branch information
Showing
34 changed files
with
894 additions
and
223 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,28 @@ | ||
variables: | ||
CI_SCRIPTS_BRANCH: master | ||
|
||
catkin_pipelines: | ||
trigger: | ||
include: | ||
- project: 'continuous_integration/ci_scripts' | ||
ref: $CI_SCRIPTS_BRANCH | ||
file: '/gitlab-ci-yml/catkin_pipeline_v2.yml' | ||
strategy: depend | ||
CI_SCRIPTS_BRANCH: dev | ||
DOCS_SOURCE: "ros_bt_py/doc/source" | ||
|
||
.build_matrix: | ||
parallel: | ||
matrix: | ||
- ROS_DISTRO: noetic | ||
CI_IMAGE: ids-git.fzi.de:5555/continuous_integration/ci_docker_images/ubuntu_20.04_ros | ||
|
||
stages: | ||
- check | ||
- build | ||
- upload | ||
- deploy | ||
|
||
include: | ||
- project: 'continuous_integration/ci_scripts' | ||
ref: dev | ||
file: '/gitlab-ci-yml/catkin_pipeline_v3.yml' | ||
- project: 'continuous_integration/ci_scripts' | ||
ref: dev | ||
file: '/gitlab-ci-yml/doc_sphinx.yml' | ||
|
||
clang-tidy-check: | ||
allow_failure: true | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Bug report | ||
|
||
<!-- Please fill out the fields below the best you can. A minimal example containing no project related code would be ideal so we can debug without building the whole project ourselves --> | ||
### Bug Description | ||
<!-- Insert Description here --> | ||
|
||
### Minimal Example | ||
<!-- Provide minimal example to reproduce the bug. Ideally you attach a tree file or a screenshot --> | ||
|
||
### Urgency | ||
<!-- Is this bug a big problem in your project? If that is the case let us know --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Feature request | ||
|
||
<!-- Please fill out the fields below the best you can --> | ||
### Feature Description | ||
<!-- Insert Description of your desired feature here --> | ||
|
||
### Minimal Example | ||
<!-- Provide minimal example of the problem your feature might solve--> | ||
|
||
### Urgency | ||
<!-- Is this feature a big need in your project? If that is the case let us know --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Node request | ||
|
||
<!-- Please fill out the fields below the best you can --> | ||
### Node Description | ||
<!-- Insert Description of your desired Node here --> | ||
<!-- This includes node inputs, outputs and options --> | ||
|
||
### Minimal Example | ||
<!-- Provide minimal example of the problem your node might solve--> | ||
|
||
### Pre-existing code | ||
<!-- Is this node something you implemented in your project? If that is the case let us know and add the code below --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Dev to Master Sync YYYY-MM-DD | ||
|
||
Before doing the sync merge make sure all items below are checked: | ||
- [ ] Check if commit history since last merge is acceptable and dev is rebased to include last | ||
merge commit | ||
- [ ] Check if CHANGELOG.md is updated with all changes to be merged to master | ||
- [ ] Check if all changes that need further documentation are well documented |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,70 @@ | ||
# Dev Sync 20.01.23 | ||
* Introduced Dual Tree Arguments - Launching in dual mode now allows for loading two separate trees | ||
* Updated ci - Removed melodic build from industrial ci (was e.o.l) | ||
* Added pre-commit config - Does formatting and linting, also protects master branch from commits | ||
* Added new NoInputParam Node - Node can get ROSParams from the parameter server without wired | ||
inputs | ||
* Fixed code styling - Fixed a lot of formatting issues noticed by introduced pre-commit and ci | ||
* Added CHANGELOG.md - File to keep track of changes in the project | ||
# Changelog | ||
|
||
History of changes and bugfixes for ros_bt_py | ||
|
||
## [Unsynced] | ||
|
||
## [Dev Sync 08-02-2023] | ||
|
||
### Added | ||
|
||
- ROS Diagnostics - Information about the current status of the BT (ticking, not ticking, error) | ||
- Templates - New templates for common issue types and sync merges | ||
|
||
### Changed | ||
|
||
- Async Service Proxy - Now utilizes a singleton architecture utilizing threads instead of processes | ||
|
||
### Fixed | ||
|
||
- Action Termination - Actions now properly wait for a result before the Node returns success | ||
- Code Coverage - Reenabled code coverage to be extracted from ci | ||
|
||
|
||
## [Dev Sync 20-01-2023] | ||
|
||
### Added | ||
|
||
- Pre-commit config - Formatting and linting, also protects master branch from direct commits | ||
- NoInputParam Node - Node can get ROSParams from the parameter server without wired inputs | ||
- CHANGELOG.md - File to keep track of changes in the project | ||
- Dual Tree Arguments - Launching in dual mode now allows for loading two separate trees | ||
|
||
### Removed | ||
|
||
- Melodic CI support - was e.o.l | ||
|
||
### Fixed | ||
|
||
- Fixed code styling - Fixed a lot of formatting issues noticed by introduced pre-commit and ci | ||
|
||
|
||
[Unsynced]: https://ids-git.fzi.de/ros/ros_bt_py/compare/master...dev | ||
[Dev Sync 08-02-2023]: https://ids-git.fzi.de/ros/ros_bt_py/compare/ba212432...6d3e71ba | ||
[Dev Sync 20-01-2023]: https://ids-git.fzi.de/ros/ros_bt_py/commits/ba212432 | ||
|
||
<!--- | ||
## [Dev Sync DD-MM-YYYY] | ||
### Added | ||
- Put all Additions to the repository in here | ||
### Changed | ||
- Put all Changes in existing functionality here | ||
### Deprecated | ||
- Put all soon-to-be removed features here | ||
### Removed | ||
- Put all removed features here | ||
### Fixed | ||
- Put bugfixes here | ||
[Dev Sync DD-MM-YYYY]: https://ids-git.fzi.de/ros/ros_bt_py/compare/OLDHASH...NEWHASH | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
Development Notes | ||
================= | ||
|
||
This section describes development notes and remarks from the developers about design decisions. | ||
|
||
AsyncServiceProxy | ||
----------------- | ||
|
||
To effectively use ServiceProxies with BehaviorTrees a method to call ROS ServiceProxies | ||
asynchronously is required. | ||
During the initial implementation of the library a solution using Process forking was implemented. | ||
This is implemented in the ``AsyncServiceProxy`` class. | ||
Each time a service is called, the ``AsyncServiceProxy`` aiming to call a service, spawns a new | ||
Process that handles the Service call. | ||
To ensure data consistency between the Process running the ``AsyncServiceProxy`` and the spawned | ||
Process a Python ``SyncManager`` was used. | ||
|
||
A downside of this implementation was that for each Service call a number of processes and IPC | ||
channels are created. | ||
When working with large trees this could lead to ``Too many open files`` errors preventing the | ||
tree from running. | ||
|
||
Thus, a version using ``Threads`` was implemented in place of ``Processes``. | ||
While a ``Thread``-based solution is limited in parts by the `GIL <https://wiki.python.org/moin/GlobalInterpreterLock>`_, | ||
the limitations are far less severe compared to the OS resource issues the ``Processes`` solution | ||
expressed. | ||
Data is now synchronized using shared memory and a mutex. | ||
Additionally a singleton pattern is implemented to allow the sharing of ``ServiceProxy``-Instances | ||
between ``AsyncServiceProxy`` for the same service URL. | ||
All created ``ServiceProxy`` instances are stored in a global dict, organized by their associated | ||
service url and type, and can be claimed by a ``AsyncServiceProxy`` for a call. | ||
Importantly, they are unclaimed after each call to make them available to other ``AsyncServiceProxy`` instances. | ||
Should two proxies aim to call the same service simultaneously, a new ``ServiceProxy`` is created on-demand, thus | ||
reducing the overall resource footprint further. | ||
As the newly created proxy is not destroyed, on further occurrences no new ``ServiceProxy`` must be allocated. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.