-
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 |