ros / executive_smach

A procedural python-based task execution framework with ROS integration.
Other
171 stars 139 forks source link

Fix outcome_map disambiguation for Concurrence #80

Closed luisrayas3 closed 1 year ago

luisrayas3 commented 3 years ago

According to the documentation:

""" If the criteria for one outcome is the subset of another outcome, the container will choose the outcome which has more child outcome criteria satisfied. If both container outcomes have the same number of satisfied criteria, the behavior is undefined. """

However, this did not seem to be implemented as such, instead it appears the behavior was undefined regardless of the number of satisfied criteria. This fixes the outcome_map handling such that a new outcome from the map is only accepted if it satisfies strictly more child labels than any previously consider outcome, thus satisfying the documented behavior.

130s commented 1 year ago

Thanks for contrubition. I have not tested nor thoroughly reviewed but brief look the goal you describe seems achieved.

Merging and will depend on the community to further test.