-
Notifications
You must be signed in to change notification settings - Fork 1
Predicates
Yoan Sallami edited this page Apr 28, 2018
·
10 revisions
The situation assessment component represent the symbolic relations among objects and agents with stamped predicates that compose the timeline.
Here is some examples : "isMoving(robot)" or "isSpeakingTo(robot,human-42)"
- isPerceiving(X,Y) when X perceive Y (given by perception, when the robot perceive a human, a predicate is generated)
- isVisibleBy(X,Y) when X is visible from Y, X can be an object or an agent and Y an agent
- isMoving(X) when X is moving
- isClose(X,Y) when X and Y distance < 1.0m
- isNear(X,Y) when X and Y distance < 2.0m
- isAbove(X,Y) when X bounding-box is above Y bounding-box
- isIn(X,Y) when X bounding-box is above Y bounding-box
- isOnTop(X,Y) when X bounding-box is on top of Y bounding-box
- isSpeakingTo(X,Y) when X speak to Y (X and Y are agents)
- isLookingAt(X,Y) when X is looking at Y (X and Y are agents at the moment)
- isPointingAt(X,Y)
- isSpeaking(X)
- isNavigating(X)
- isAproaching(X,Y)
- isWaitingFor(X,Y)
Two topics are used to broadcast the symbolic data :
-
<world>/current_factsfor the facts that are still active in the given world -
<world>/all_factsfor all the facts of the given world
And two other topics are used to broadcast the geometric data :
-
<world>/objectsfor the objects in the given world -
<world>/agentsfor the agents in the given world
The situation assessment component generate a set of predicates, however externals component can add new predicates to the Underworlds server by using the ROS services StartPredicate and EndPredicate. The predicates generated with ROS will then be broadcast through the topics current_predicates and all_predicates