Adding a layer of business logic onto ROS bots
For the past few days I've been trying to find whether there is a tool that allows one to build a layer of business logic components on top of a ROS bot with basic functionality.
For example, say there is a basic autonomous drone running ROS, with capabilities to fly, avoid obstacles, navigate a plan etc. as "basic" capabilities. Is there a way to build on top of this drone, an extra layer of business logic components, that specializes the drone in some way i.e. now allows it to carry out some 'business goal" like "find the number of dogs from point x to y" (kind of like the concept of decorators).
I'm saying "an extra layer" because it would make sense to not incorporate the logic into the ROS computation graph as it should build on top of the basic capabilities rather than extend it directly.
So I guess I'm looking for a tool that can recognize the current computation graph of a hooked up bot and an API that allows one to make calls to different nodes/topics/services on the bot such that having written some business logic elsewhere I could incorporate to work with the bot through this API.
Does such a thing exist? Even if not - do you think it makes sense/would be good if it existed at least?
Cheers.