LCAS / topological_navigation

The topological navigation framework
Apache License 2.0
31 stars 36 forks source link

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

Open Iranaphor opened 7 months ago

Iranaphor commented 7 months ago

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.

marc-hanheide commented 6 months ago

@Iranaphor where are we with this?

Iranaphor commented 5 months ago

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.