Extension Hooks#
Interfaces the shipped setups leave at their default or never call. Each has a default that leaves the shipped setups unchanged; a custom robot or plugin overrides or reads it. The API reference documents each, and Extending Open Apero shows how to write the plugin that overrides one.
Hook |
Default |
What a custom robot or plugin does with it |
|---|---|---|
Hit regions: |
No regions; every state reachable |
Record where a collision or a vetoed step happened; the map keeps the blocked regions until |
|
|
Report the ground under a state, so the path markers draw its ground track |
|
Admits every position |
Restrict where nodes may be placed, separately from traversability; generators exempt only the seed at the robot’s own position |
|
Attaches none |
Give a new cluster’s nodes gain anchors they share, which an evaluator that keeps them scores once; |
|
Disabled (both thresholds |
Ask whether a pose was already looked from (History and Observed Viewpoints) |
|
−π/2, π/2, |
Plan the gaze pitch or the full sensor orientation; every shipped plugin plans yaw only |
|
|
Sample candidates around a point of interest; test without occlusion whether a point is in a sensor’s view |
|
No samples, columns or markers |
Report the samples behind a recovery decision, add |
|
The nearest node; every position admissible; one spatial index |
A subclass keeps its own expansion anchors and indices, or rejects sample positions early |
|
Set on every recovery edge; the backtrackers and edge revalidation skip such edges |
Exempt recovery edges from a platform’s own pre-flight checks in |
|
The active layer, distance and time; roots the graph in the first state after a reset |
Add lines to the RViz overlay, or react to each arriving state |
Agent::sendMovement(), which every platform implements, and the loop hooks Agent::readyToExpand() and
RobotModel::refineBeforeExecute() are described in Agent and Execution and
Layers.