... | @@ -11,6 +11,27 @@ You should create a new package `air_lab_5`, you should check [Lab2](lab2) for h |
... | @@ -11,6 +11,27 @@ You should create a new package `air_lab_5`, you should check [Lab2](lab2) for h |
|
|
|
|
|
## New map and database of points
|
|
## New map and database of points
|
|
|
|
|
|
|
|
For this lab we use a different map, that simulates an office environment, and it looks like this:
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
In theory you should be exploring that environment to extract all the interesting points. And you will have to do that in the project phase, but for this lab we provide you the ground truth. You can generate a `turtle` file to insert in the database with:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
ros2 run air_simple_sim generate_rdf office_1
|
|
|
|
```
|
|
|
|
|
|
|
|
You will notice that we have more classes, such as `office` or `vendingmachine`. And also, objects have `tags` which indicate the name of a person or the content of the vending machine.
|
|
|
|
|
|
|
|
To insert the file in the database, simply run:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
ros2 service call /kdb_server/insert_triples ros2_kdb_msgs/srv/InsertTriples "
|
|
|
|
graphname: 'semanticobject'
|
|
|
|
format: 'ttl'
|
|
|
|
content: '`ros2 run air_simple_sim generate_rdf office_1`'"
|
|
|
|
```
|
|
|
|
|
|
## Goal message
|
|
## 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`.
|
|
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`.
|
... | @@ -39,4 +60,11 @@ Examples of text commands: |
... | @@ -39,4 +60,11 @@ Examples of text commands: |
|
|
|
|
|
## Decision Node
|
|
## 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). |
|
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 |
|
|
|
|
|
## Demonstration
|
|
|
|
|
|
|
|
* Use the following command:
|
|
|
|
- "Goto Anders" should make the robot go to `Anders` office
|
|
|
|
- "Bring Coffee" should make the robot go to a vending machine with coffee and bring it back
|
|
|
|
- "Explore!" should make the robot start a spiral and explore |
|
|
|
\ No newline at end of file |