|
|
Lab 3: Task Execution
|
|
|
=====================
|
|
|
|
|
|
The goal of this lab is to create an executor for Task-Specification-Trees. The TSTs are defined using the JSON format.
|
|
|
|
|
|
TST
|
|
|
---
|
|
|
|
|
|
A Task-Specification-Tree (TST) is a hierachical tree structure which represents a complex mission. For the purpose of this lab, six types of nodes are used:
|
|
|
|
|
|
You can find the specification of the TST nodes in ```air_tst/configs```, the directory on the lab computers is ```/courses/TDDE05/software/ros2_ws/src/air_tst/configs```, to access to the directory you can do:
|
|
|
|
|
|
|
|
|
* ```seq``` allows to execute a sequence of nodes
|
|
|
* ```conc``` allows to execute a set of nodes concurrently, it has a parameter ```stop-on-first``` which controls whether the node should wait for all the children to finish or stop when the first node is done
|
|
|
* ```drive-to``` allows to send a ground robot to a specific position, it has the following parameters:
|
|
|
* ```p``` the destination
|
|
|
* ```heading``` the heading the robot must be facing at the end
|
|
|
* ```maximum-speed``` the maximum speed that the robot need to drive
|
|
|
|
|
|
* ```explore``` drives the robot in a spiral around the current location of the robot
|
|
|
* ```radius``` the radius of the spiral
|
|
|
* ```a``` and ```b``` representing the parameters of the spiral:
|
|
|
|
|
|
You should use the Archimedean spiral:
|
|
|
```math
|
|
|
r = a + b\theta
|
|
|
```
|
|
|
|
|
|
```bash
|
|
|
roscd air_tst/configs
|
|
|
```
|
|
|
|
|
|
|
|
|
|