Edge SDK — Mission Autonomy Service
MissionAutonomyService gives an edge adapter one method: getScheduler, which reads a scheduler's
definition from the platform's mission-autonomy-service. Everything related to actually running
automated behavior on an asset — receiving commands, reporting their progress — happens through other
parts of the SDK, described below.
Full method-by-method reference: Mission Autonomy API Reference.
Table of Contents
Overview
Most edge adapters never call MissionAutonomyService directly. Automated work is authored as
Applications and Skills, and the platform runs a Skill by calling into your adapter, one command at a
time; your adapter reports each command's progress back over the Live Data connection. It doesn't poll
or manage executions itself. See Applications & Skills.
The 1.3 Mission and Task methods are gone from this interface, and the platform no longer starts work through an adapter's task methods — see Upgrading from 1.3.
MissionAutonomyService Interface
public interface MissionAutonomyService {
CompletableFuture<SchedulerDTO> getScheduler(GetSchedulerRequest getSchedulerRequest);
}
import com.zqnt.utils.mission.proto.GetSchedulerRequest;
GetSchedulerRequest request = GetSchedulerRequest.newBuilder()
.setSchedulerId("scheduler-uuid")
.build();
missionAutonomyService.getScheduler(request)
.thenAccept(scheduler -> log.info("Scheduler: {}", scheduler))
.exceptionally(err -> {
log.error("Failed to get scheduler", err);
return null;
});
A scheduler now targets a Skill or a single command directly — see the
reference. ConnectorService.getSchedulerById
reads a scheduler too, and scheduler create/update/delete is available only through ConnectorService —
see Connector.
Like the other SDK services, your adapter creates it —
new MissionAutonomyServiceImpl(MissionAutonomyServiceGrpc.newStub(channel), protoJsonMapper), with a
channel built as in Quickstart — Wire the SDK.
How Skill executions reach your adapter
| Concern | Where it lives |
|---|---|
Receiving a command — typed (takeOff, goTo, ...) or custom (mission.waypoint.execute, ...) | EdgeAdapterService — see Edge Adapter |
| Reporting a command's progress and outcome | Command execution events through LiveDataService — see Edge Adapter — Custom Commands |
| Cancelling a running command | cancelExecution(sn, externalExecutionId) on EdgeAdapterService |
| Declaring which commands your adapter supports | getCapabilities on EdgeAdapterService, and the Skill Registry — see Connector |
| Authoring Applications and Skills, and running them | The Admin Console and the Client SDK |
Configuration
The Mission Autonomy address is grpc.client.mission-autonomy.host / .port
(MISSION_AUTONOMY_SERVICE_HOST / MISSION_AUTONOMY_SERVICE_PORT, default port 8004). See the
Configuration Guide.