... | ... | @@ -2,12 +2,41 @@ |
|
|
|
|
|
**This is a draft, wait for the lab instructions to be finished before starting**
|
|
|
|
|
|
The goal of this lab is to provide the basic structure of the group work. In this lab you will create a basic robot that fulfill goal of an office assistant:
|
|
|
The goal of this lab is to provide the basic structure of the group work. In this lab you will create a basic robot that fulfill the goal of an office assistant:
|
|
|
|
|
|
* Create a node that convert a text command into a goal request
|
|
|
* From the requested goal send a TST to be executed
|
|
|
* Create a `text_to_goals` node that convert a text command into a goal request. It should listen to a string and output a set of goals.
|
|
|
* Create a `decision` node, it takes the set of goals and request execution of TST by the `tst_executor` of [Lab3](lab3).
|
|
|
|
|
|
You should create a new package `air_lab_5`, you should check [Lab2](lab2) for how to create a package.
|
|
|
|
|
|
## New map and database of points
|
|
|
|
|
|
## Goal message
|
|
|
|
|
|
In your `air_lab_interfaces`, you should add two new messages ``Goal` and `GoalsRequest`. They will be used to communicate goals between `text_to_goals` and `decision`.
|
|
|
|
|
|
`Goal` should have the following fields:
|
|
|
|
|
|
* `type` (`string`) the type of goal with possible values `goto`, `bring`, `explore`...
|
|
|
* `object` (`string`) the object, can be empty. For example, for `bring` it could be coffee, sandwich...
|
|
|
* `destination` (`string`) the destination of the goal, or who to bring the `object`...
|
|
|
|
|
|
`Goals` should have the following field:
|
|
|
|
|
|
* `goals` (list of `Goal`) a list of goals.
|
|
|
|
|
|
Do note that in this lab, we use a single `Goal` but it might be that for your project you will want to handle multiple goals.
|
|
|
|
|
|
## Text Command Node
|
|
|
|
|
|
This node should listen to a topic called `text_command` of type `std_msgs/string`, parse the commands and output a set of goals on a topic called `goals_requests` of type `air_lab_interfaces/GoalsRequest`.
|
|
|
|
|
|
Examples of text commands:
|
|
|
|
|
|
* "Goto George" this should lead to a `Goal` with field `{ type: "goto", destination: "George" }`
|
|
|
* "Bring Coffee" this should lead to a `Goal` with field `{ type: "bring", object: "Coffee", destination: "User" }`
|
|
|
* "Explore!" this should lead to a `Goal` with field `{ type: "explore" }`
|
|
|
|
|
|
## Decision Node
|
|
|
|
|
|
This node should listen to the topic `goals_requests` and generate TSTs that are then send as a service call to your `tst_executor` like you did in [Lab4](lab4). |
|
|
\ No newline at end of file |