skiros2
skiros2 copied to clipboard
Loading of reasoners in ROS 2 - Missing TF reasoning in skills
Loading reasoners in ROS 2 needs to be tackled:
- Currently we do not use the
reasoners_pkgs
parameter that is passed - When loading we initialize a new node. This means that one must not override the node name when launching the skill manager
- It seems that the
AauSpatialReasoner
is not spinning and therefore does not receive TF data
1. "reasoner_pkgs" parameter
As a workaround we hard-coded this parameter here for now:
https://github.com/RVMI/skiros2/blob/ed5bc907f8509f8223bf5c75ff2b7bcf9ff056e7/skiros2_common/skiros2_common/core/world_element.py#L119-L122
2. Creating a new node
When loading the reasoners for the first time we create a new node. Not only should that prevent us from accessing the parameter (afaik), but if the name of the "SkillManagerNode" is overwritten in the launch file, this name would also be used here when creating the second node. This leads to issues with ROS.
https://github.com/RVMI/skiros2/blob/ed5bc907f8509f8223bf5c75ff2b7bcf9ff056e7/skiros2_common/skiros2_common/core/world_element.py#L119-L120
3. The AauSpatialReasoner does seem to spin
It looks like the reasoner that is started with the procedure above does not spin. The would make sense since this node is never spun by any executor.
The observation is that TF operations from within skills can not be performed.
Solution:
All those 3 issues could be resolved if the node is passed.