topological_navigation icon indicating copy to clipboard operation
topological_navigation copied to clipboard

Restrictions reworked for ROS2 utilising the eval system to enable more modularity at runtime

Open Iranaphor opened this issue 2 years ago • 5 comments

This is a draft for an alternative restrictions handling system which utilises the python eval functionality in an efficient manner to filter out nodes which do not match a given condition.

Some examples are included towards the end of restrictions_handler.py showing how this can be utilised with the existing restriction conditions in practice, while also offering new facilities.

A key limitation with the old approach was the assumption that planning restrictions were only capable of being categorised as robot type or task type, and new code needs to be added for any other categorising. This alternative approach by contrast is much more dynamic.

Additionally a qol update offers the inclusion of the restriction condition in the launch file so this is not needed to be published from a separate node (though this can still be done to offer dynamic changes).

I still have to include a ROS2 launch file and fully test the functionality, but am curious in the meantime to hear the thoughts of @marc-hanheide and @francescodelduchetto as to whether this is a reasoned approach.

Iranaphor avatar Nov 16 '23 23:11 Iranaphor

@Iranaphor where are we with this?

marc-hanheide avatar Dec 11 '23 09:12 marc-hanheide

It is functional and working. I will add some example maps, test cases and documentation. I will try to merge in mid Feb if there are no problems.

Iranaphor avatar Jan 25 '24 03:01 Iranaphor