-
Notifications
You must be signed in to change notification settings - Fork 7
D Behavior Trees Description
Irene González Fernández edited this page Mar 6, 2024
·
2 revisions
Node Name | Precondition | Effect |
---|---|---|
IsDetected(person) | Person standing in front of the robot at the beginning of the test | Person detected |
IsDetected(2 bags) | Two bags at maximum must be in front of the robot | Bags detected |
IsPointing | Bags and a person detected | Correct bag position known |
MoveTo(correct_bag) | Correct bag position known | Robot near the correct bag |
MoveArmToPredefined(gripper_front_camera) | Robot near the correct bag | Robot waiting for the person to put the bag on its arm |
LookTo(person_1) | Person was detected & Robot near correct bag | Robot looking to person |
Speak | Robot near the correct bag & Looking to the person | Person knows the robot is waiting |
LookTo(gripper) | Robot near the correct bag & Robot is waiting | Robot looking at gripper |
IsDetected(bag) | Person moved the bag to its gripper | Robot knows the bag is on its gripper |
MoveArmToPredefined(home) | Robot knows the bag is on its gripper | Bag is secured to prevent its fall |
Speak | Bag is secured | Robot is following the person |
FollowPerson (subtree) | Person is detected & Moving | We have arrived to the destination |
MoveArmToPredefined(gripper_front_camera) | We have arrived to the destination | Robot is offering the bag |
LookAt(person) | Person was detected & We have arrived to the destination | Robot is looking at the person |
Speak | Robot is looking at the person | Person knows it has to take its bag |
LookAt(gripper) | Person was noticed | Robot looking at gripper |
Not IsDetected(bag) | Robot looking at gripper | Person has the bag |
Speak | Person has the bag | Robot is going bag |
MoveTo(home) | Bag was delivered | Robot is at the beginning of the test |
Node Name | Precondition | Effect |
---|---|---|
MoveTo(entrance) | Robot is at entrance | |
Speak | Robot is at entrance | Guest is noticed, robot is ready to welcome them |
IsDetected(person) | Robot is at entrance & Guest noticed | First Guest is detected |
StoreDetection | First Guest is detected | (Optional) Possible extra characteristics could be inferred later |
LookTo(person) | Person was detected | Robot looking at person |
Query(name) | Robot looking at person | 1st Guest name is known |
Query(favorite_drink) | Robot looking at person | 1st Guest favorite drink is known |
Speak | name and favorite drink are known | Guest is following the robot |
MoveTo(party) | Guest is following the robot | Robot and guest are at the party |
IsDetected(person) | Robot and guest are at the party | Host is detected |
LookAt(person) | Person was detected | Robot looking at host |
Speak | Robot looking at host | Guest is introduced to host |
IsSittable | Guest is introduced | A sittable spot is detected |
LookTo(sittable_frame) | A sittable spot is detected | Robot is looking at chair |
MoveArmTo(sittable_frame) | Robot is looking at chair | Robot is pointing at chair |
Speak | Robot is pointing to chair | Guest knows where to sit |
Node Name | Precondition | Effect |
---|---|---|
MoveTo(kitchen) | Robot is at kitchen | |
IsDetected(table) | Robot is at kitchen | Table is detected |
MoveTo(table) | Table is detected | Robot is in front of the table |
IsDetected(bowl) | Robot is in front of the table | Bowl is detected |
LookAt(bowl) | Bowl is detected | Robot looking at bowl |
PickObject(bowl) | Robot looking at bowl | Robot has the bowl |
MoveTo(table_2) | Robot has the bowl | Robot is in front of the table_2 |
FindEmptyPlace(table_2) | Robot is in front of the table_2 | Empty place is found |
PlaceObject(empty_place) | Empty place is found | Bowl is on the table |
MoveTo(table_1) | Bowl is on the table | Robot is in front of table_1 |
IsDetected(cereal) | Robot is in front of the table_1 | Cereal is detected |
LookAt(cereal) | Cereal is detected | Robot looking at Cereal |
PickObject(cereal) | Robot looking at Cereal | Robot has the Cereal |
MoveTo(table_2) | Robot has the Cereal | Robot is in front of the table_2 |
PourObject(bowl) | Robot is in front of the table_2 | Cereal is on bowl |
FindEmptyPlace(table_2) | Robot is in front of the table_2 | Empty place is found |
PlaceObject(empty_place) | Empty place is found | Cereal is on the table |
MoveTo(table_1) | Cereal is on the table | Robot is in front of table_1 |
IsDetected(milk) | Robot is in front of the table | Milk is detected |
LookAt(milk) | Milk is detected | Robot looking at milk |
PickObject(milk) | Robot looking at milk | Robot has the milk |
MoveTo(table_2) | Robot has the milk | Robot is in front of the table_2 |
PourObject(bowl) | Robot is in front of the table_2 | milk is on bowl |
FindEmptyPlace(table_2) | Robot is in front of the table_2 | Empty place is found |
PlaceObject(empty_place) | Empty place is found | Milk is on the table |
MoveTo(table_1) | Bowl is on the table | Robot is at table_1 |
IsDetected(spoon) | Robot is in front of the table | Spoon is detected |
LookAt(spoon) | Spoon is detected | Robot looking at spoon |
PickObject(spoon) | Robot looking at bowl | Robot has the spoon |
MoveTo(table_2) | Robot has the spoon | Robot is in front of the table_2 |
FindEmptyPlace(table_2) | Robot is in front of the table_2 | Empty place is found |
PlaceObject(empty_place) | Empty place is found | Spoon is on the table |
Node Name | Precondition | Effect |
---|---|---|
MoveTo(kitchen) | Robot is at kitchen | |
IsDetected(table) | Robot is at kitchen | Table is detected |
MoveTo(table) | Table is detected | Robot is in front of the table |
LookAt(table) | Robot is in front of the table | Robot looking at the table |
DetectNearestEntity | Robot is in front of the table | Nearest is detected |
LookAt(nearest) | Nearest is detected | Robot looking at nearest |
PickObject(nearest) | Robot looking at nearest | Robot has the nearest |
MoveArmTo(camera_frame) | Robot has the nearest | Robot is looking at its gripper |
IsDetected(nearest) | Robot is looking at its gripper | Nearest is confirmed it was picked |
MoveArmToPredefined(home) | Nearest is confirmed | The object is secured |
MoveTo(shelf) | The object is secured | Robot is in front of the shelf |
IsDetected(shelf) | Robot is in front of the shelf | Shelf is detected again and confirmed |
LookAt(shelf) | Shelf is detected again and confirmed | Robot looking at the shelf |
DetermineObjectPosition(nearest) | Robot looking at the shelf | Place found |
PlaceObject(to_place) | Place found | Nearest is in the shelf |
Name | Type of Node | Description | Ports (I: Input / O: Output) |
---|---|---|---|
PickObject | Action | Picks an object of a given position | I: tf_frame |
ReleaseObject | Action | Place an object to an empty place and return the... | None |
PlaceObject | Action | Place an object to an empty place and return the... | I: position O: left position |
PourObjectToObject2 | Action | Pour one object into another | I: position_obj2 |
MoveArmTo | Action | Moves the arm to a position | I: tf_frame, tolerance |
SetWayPoints | Action | Set the initial waypoints | None |
InitReceptionist | Action | Set the initial parameters, such as host name | None |
InitBreakfast | Action | Set initial parameters | None |
InitGroceries | Action | Set initial parameters | None |
Speak | Action | Speaks a certain text | I: say text |
Listen | Action | Listen to the person | O: text listened |
DialogConfirmation | Action | Confirms a prompt | I: prompt O: intention |
Query | Action | The robot processes the information to extract the value of the intention | I: intention O: intention_value |
MoveArmToPredefined | Action | Moves the arm to a position predefined | None |
GoBack | Action | Increase linear velocity backward | I: velocity |
Spin | Action | Moves within an area | I: velocity |
LookAt | Action | The robot stare to a frame | I: tf_frame |
MoveTo | Action | Moves to a frame with a margin of distance tolerance | I: distance_tolerance, tf_frame |
IsDetected | Condition | Check if an entity is detected and return the... | O: frames |
IsPointing | Condition | Check if the robot is pointing to an entity return... | O: tf_target |
IsEntityMoving | Condition | Detects if an entity is moving | I: distance_tolerance |
IsSeatable | Condition | Checks if there is enough space to sit a person... | O: frame |
LookAround | Condition | The robot looks around his head | None |
FindEmptyPlace | Condition | Finds an empty place in an entity and returns the... | I: where, position |
FindCorrectPlace | Action | Determine a position of the object | I: tf_frame, entity O: frame_to_put |
StoreDetection | Action | Store the detection (picture) and relates to an id | I: entity, id |
Name | Category | Subsystem |
---|---|---|
PickObject | Arm - Grasping | Manipulation |
ReleaseObject | Arm - Grasping | Manipulation |
PlaceObject | Arm - Manipulation | Manipulation |
PourObjectToObject2 | Arm - Manipulation | Manipulation |
MoveArmTo | Arm - Poses | Manipulation |
SetWayPoints | Configuration | Navigation |
InitReceptionist | Configuration | Navigation |
InitBreakfast | Configuration | Navigation |
InitGroceries | Configuration | Navigation |
Speak | HRI - Dialogue | HRI |
Listen | HRI - Dialogue | HRI |
DialogConfirmation | HRI - Dialogue | HRI |
Query | HRI - Dialogue | HRI |
MoveArmToPredefined | Arm - Poses | Manipulation |
GoBack | Motion - Base | Attention |
Spin | Motion - Base | Attention |
LookAt | Motion - Head | Attention |
MoveTo | Motion - Navigation | Navigation |
IsDetected | Perception | Perception |
IsPointing | Perception | Perception |
IsEntityMoving | Perception | Perception |
IsSeatable | Perception | Perception |
LookAround | Perception | Perception |
FindEmptyPlace | Perception | Perception |
FindCorrectPlace | Perception | Perception |
StoreDetection | Perception | Perception |
Name | CarryMyLuggage | Receptionist | ServeBreakfast | StoreGroceries |
---|---|---|---|---|
PickObject | No | No | Yes | Yes |
ReleaseObject | No | No | Yes | Yes |
PlaceObject | No | No | Yes | Yes |
PourObjectToObject2 | No | No | Yes | No |
MoveArmTo | No | Yes | No | Yes |
SetWayPoints | No | Yes | Yes | Yes |
InitReceptionist | No | Yes | No | No |
InitBreakfast | No | No | Yes | No |
InitGroceries | No | No | No | Yes |
Speak | Yes | Yes | No | No |
Listen | Yes | Yes | No | No |
DialogConfirmation | Yes | Yes | No | No |
Query | No | Yes | No | No |
MoveArmToPredefined | Yes | Yes | No | Yes |
GoBack | Yes | No | Yes | No |
Spin | No | Yes | Yes | No |
LookAt | Yes | Yes | Yes | Yes |
MoveTo | Yes | Yes | Yes | Yes |
IsDetected | Yes | Yes | Yes | Yes |
IsPointing | Yes | No | No | No |
IsEntityMoving | Yes | No | No | No |
IsSeatable | No | Yes | No | No |
LookAround | No | Yes | Yes | Yes |
FindEmptyPlace | No | No | Yes | No |
FindCorrectPlace | No | No | No | Yes |
StoreDetection | No | Yes | No | No |