Skip to content

Commit a9b7a85

Browse files
committed
Update docs
1 parent aef5ad5 commit a9b7a85

File tree

1 file changed

+55
-104
lines changed

1 file changed

+55
-104
lines changed

docs/robot/autonomy/tasks.md

Lines changed: 55 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,38 @@ geometry_msgs/Point current_position
4141

4242
---
4343

44+
### FixedTrajectoryTask
45+
46+
**File:** `action/FixedTrajectoryTask.action`
47+
**Action server:** `/{robot_name}/tasks/fixed_trajectory`
48+
**Implemented by:** *(not yet implemented)*
49+
50+
Follow a pre-defined trajectory specified by shape type and parameters. With `loop: true`, the trajectory repeats until the task is cancelled.
51+
52+
#### Goal
53+
54+
| Field | Type | Description |
55+
| ----- | ---- | ----------- |
56+
| `trajectory_spec` | airstack_msgs/FixedTrajectory | Trajectory type (e.g. `Circle`, `Figure8`, `Lawnmower`) and key-value attributes |
57+
| `loop` | bool | If true, repeat trajectory indefinitely until cancelled |
58+
59+
#### Result
60+
61+
| Field | Type | Description |
62+
| ----- | ---- | ----------- |
63+
| `success` | bool | True if trajectory completed (or cancelled normally when looping); false on error |
64+
| `message` | string | Completion reason |
65+
66+
#### Feedback
67+
68+
| Field | Type | Description |
69+
| ----- | ---- | ----------- |
70+
| `status` | string | Task status string |
71+
| `progress` | float32 | Fraction of current pass completed (0.0–1.0) |
72+
| `current_position` | geometry_msgs/Point | Current robot position |
73+
74+
---
75+
4476
### NavigateTask
4577

4678
**File:** `action/NavigateTask.action`
@@ -156,158 +188,77 @@ Perform a systematic lawnmower-pattern coverage survey of a polygonal area. Comp
156188

157189
---
158190

159-
### ObjectSearchTask
191+
### SemanticSearchTask
160192

161-
**File:** `action/ObjectSearchTask.action`
162-
**Action server:** `/{robot_name}/tasks/object_search`
193+
**File:** `action/SemanticSearchTask.action`
194+
**Action server:** `/{robot_name}/tasks/semantic_search`
163195
**Implemented by:** *(not yet implemented)*
164196

165-
Search an area for instances of a named object class. Stops early when `target_count` objects have been found (or 0 to search until time limit or full coverage).
197+
Search an area for a target described in natural language. Uses a vision-language model to match the query against observations during flight. Stops early once `target_count` matches have been found.
166198

167199
#### Goal
168200

169201
| Field | Type | Description |
170202
| ----- | ---- | ----------- |
171-
| `object_class` | string | Object class to search for (e.g. `"person"`, `"vehicle"`) |
203+
| `query` | string | Natural-language description of the target (e.g. `"a red truck near a building"`) |
172204
| `search_area` | geometry_msgs/Polygon | Area to search |
173205
| `min_altitude_agl` | float32 | Minimum flight altitude above ground (m) |
174206
| `max_altitude_agl` | float32 | Maximum flight altitude above ground (m) |
175207
| `min_flight_speed` | float32 | Minimum flight speed (m/s) |
176208
| `max_flight_speed` | float32 | Maximum flight speed (m/s) |
177209
| `time_limit_sec` | float32 | Maximum task duration in seconds (0 = no limit) |
178-
| `target_count` | int32 | Stop after finding this many objects (0 = search all) |
179-
180-
#### Result
181-
182-
| Field | Type | Description |
183-
| ----- | ---- | ----------- |
184-
| `success` | bool | True if target count reached or area exhausted; false if cancelled |
185-
| `message` | string | Completion reason |
186-
| `objects_found` | int32 | Total number of objects found |
187-
| `object_poses` | geometry_msgs/PoseArray | Poses of all detected objects |
188-
189-
#### Feedback
190-
191-
| Field | Type | Description |
192-
| ----- | ---- | ----------- |
193-
| `status` | string | Task status string |
194-
| `progress` | float32 | Search area fraction covered (0.0–1.0) |
195-
| `objects_found_so_far` | int32 | Objects detected so far |
196-
| `current_position` | geometry_msgs/Point | Current robot position |
197-
198-
---
199-
200-
### ObjectCountingTask
201-
202-
**File:** `action/ObjectCountingTask.action`
203-
**Action server:** `/{robot_name}/tasks/object_counting`
204-
**Implemented by:** *(not yet implemented)*
205-
206-
Count all instances of a named object class within a defined area. Unlike `ObjectSearchTask`, this task always covers the full area regardless of how many objects are found.
207-
208-
#### Goal
209-
210-
| Field | Type | Description |
211-
| ----- | ---- | ----------- |
212-
| `object_class` | string | Object class to count (e.g. `"car"`, `"tree"`) |
213-
| `count_area` | geometry_msgs/Polygon | Area to survey |
214-
| `min_altitude_agl` | float32 | Minimum flight altitude above ground (m) |
215-
| `max_altitude_agl` | float32 | Maximum flight altitude above ground (m) |
216-
| `min_flight_speed` | float32 | Minimum flight speed (m/s) |
217-
| `max_flight_speed` | float32 | Maximum flight speed (m/s) |
218-
219-
#### Result
220-
221-
| Field | Type | Description |
222-
| ----- | ---- | ----------- |
223-
| `success` | bool | True if area fully surveyed; false if cancelled |
224-
| `message` | string | Completion reason |
225-
| `count` | int32 | Total number of objects counted |
226-
| `object_poses` | geometry_msgs/PoseArray | Poses of all detected objects |
227-
228-
#### Feedback
229-
230-
| Field | Type | Description |
231-
| ----- | ---- | ----------- |
232-
| `status` | string | Task status string |
233-
| `progress` | float32 | Survey coverage fraction (0.0–1.0) |
234-
| `current_count` | int32 | Objects counted so far |
235-
| `current_position` | geometry_msgs/Point | Current robot position |
236-
237-
---
238-
239-
### FixedTrajectoryTask
240-
241-
**File:** `action/FixedTrajectoryTask.action`
242-
**Action server:** `/{robot_name}/tasks/fixed_trajectory`
243-
**Implemented by:** *(not yet implemented)*
244-
245-
Follow a pre-defined `TrajectoryXYZVYaw` waypoint trajectory. With `loop: true`, the trajectory repeats until the task is cancelled.
246-
247-
#### Goal
248-
249-
| Field | Type | Description |
250-
| ----- | ---- | ----------- |
251-
| `trajectory` | airstack_msgs/TrajectoryXYZVYaw | Waypoint trajectory to execute |
252-
| `loop` | bool | If true, repeat trajectory indefinitely until cancelled |
210+
| `confidence_threshold` | float32 | Minimum confidence to accept a match (0.0–1.0) |
211+
| `target_count` | int32 | Stop after finding this many matches (0 = search until time limit or full coverage) |
253212

254213
#### Result
255214

256215
| Field | Type | Description |
257216
| ----- | ---- | ----------- |
258-
| `success` | bool | True if trajectory completed (or cancelled normally when looping); false on error |
217+
| `success` | bool | True if at least one match above threshold was found; false if cancelled or not found |
259218
| `message` | string | Completion reason |
219+
| `found_poses` | geometry_msgs/PoseArray | Poses of all matches found |
220+
| `confidence` | float32 | Confidence of the best match (0.0–1.0) |
221+
| `objects_found` | int32 | Total number of matches found |
260222

261223
#### Feedback
262224

263225
| Field | Type | Description |
264226
| ----- | ---- | ----------- |
265227
| `status` | string | Task status string |
266-
| `progress` | float32 | Fraction of waypoints completed (0.0–1.0) in current pass |
267-
| `current_waypoint_index` | int32 | Index of current waypoint |
268-
| `total_waypoints` | int32 | Total number of waypoints in trajectory |
228+
| `progress` | float32 | Search coverage fraction (0.0–1.0) |
229+
| `best_confidence_so_far` | float32 | Highest confidence match seen so far |
230+
| `objects_found_so_far` | int32 | Number of matches found so far |
269231
| `current_position` | geometry_msgs/Point | Current robot position |
270232

271233
---
272234

273-
### SemanticSearchTask
235+
### ChatTask
274236

275-
**File:** `action/SemanticSearchTask.action`
276-
**Action server:** `/{robot_name}/tasks/semantic_search`
237+
**File:** `action/ChatTask.action`
238+
**Action server:** `/{robot_name}/tasks/chat`
277239
**Implemented by:** *(not yet implemented)*
278240

279-
Search for a location or object described in natural language. Uses a vision-language model to match the query against observations during flight.
241+
Send a free-form text prompt and optional images to the robot for processing by an onboard language model or remote AI service. The task completes when the model produces a response.
280242

281243
#### Goal
282244

283245
| Field | Type | Description |
284246
| ----- | ---- | ----------- |
285-
| `query` | string | Natural-language description of the target (e.g. `"a red truck near a building"`) |
286-
| `search_area` | geometry_msgs/Polygon | Area to search |
287-
| `min_altitude_agl` | float32 | Minimum flight altitude above ground (m) |
288-
| `max_altitude_agl` | float32 | Maximum flight altitude above ground (m) |
289-
| `min_flight_speed` | float32 | Minimum flight speed (m/s) |
290-
| `max_flight_speed` | float32 | Maximum flight speed (m/s) |
291-
| `time_limit_sec` | float32 | Maximum task duration in seconds (0 = no limit) |
292-
| `confidence_threshold` | float32 | Minimum confidence to accept a match (0.0–1.0) |
247+
| `text` | string | Free-form text prompt or question |
248+
| `images` | sensor_msgs/CompressedImage[] | Zero or more images to include with the prompt |
293249

294250
#### Result
295251

296252
| Field | Type | Description |
297253
| ----- | ---- | ----------- |
298-
| `success` | bool | True if a match above threshold was found; false if cancelled or not found |
299-
| `message` | string | Completion reason |
300-
| `found_pose` | geometry_msgs/Pose | Pose of the best match (if found) |
301-
| `confidence` | float32 | Confidence of the best match (0.0–1.0) |
254+
| `success` | bool | True if the model produced a response; false on error |
255+
| `message` | string | Model response text, or error description on failure |
302256

303257
#### Feedback
304258

305259
| Field | Type | Description |
306260
| ----- | ---- | ----------- |
307-
| `status` | string | Task status string |
308-
| `progress` | float32 | Search coverage fraction (0.0–1.0) |
309-
| `best_confidence_so_far` | float32 | Highest confidence match seen so far |
310-
| `current_position` | geometry_msgs/Point | Current robot position |
261+
| `status` | string | Processing status (e.g. `"processing"`, `"streaming"`) |
311262

312263
---
313264

0 commit comments

Comments
 (0)