Edge-based end device control using asynchronous adaptive motion primitives
A component of an edge server, including: processor circuitry; and a non-transitory computer-readable storage medium including instructions that, when executed by the processor circuitry, cause the processor circuitry to: distribute, to a client device, tokens that enable its end device to execute respective asynchronous adaptive motion primitives (A 2 MPs) of a task graph of a task, wherein an A 2 MP is a motion primitive of encoded motion factoring in motion updates from the end device; receive A 2 MP task execution status messages during execution of the A 2 MPs; and dynamically update the distribution of the token or the task graph based on the A 2 MP task execution status messages to modify a trajectory of the end device.
1 . An edge server device, comprising:
processor circuitry; and
a non-transitory computer-readable storage medium including instructions that, when executed by the processor circuitry, cause the processor circuitry to:
distribute, to a client device, tokens that enable its end device to execute respective asynchronous adaptive motion primitives (A2MPs) of a task graph of a task, wherein an A2MP is a motion primitive of encoded motion factoring in motion updates from the end device;
receive A2MP task execution status messages including A2MP deltas in parameter, joint, or cartesian space during execution of the A2MPs; and
dynamically update the task graph based on the A2MP task execution status messages to modify a trajectory of the end device.
2 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to:
distribute, to a plurality of client devices, tokens that enable their end devices to execute A2MPs of respective task graphs defining respective tasks; and
temporally coordinate the execution of the A2MPs by the end devices.
3 . The edge server device of claim 2 , wherein the instructions that further cause the processor circuitry to:
temporally coordinate the execution of the A2MPs by inserting waypoints in each end device trajectory to be reached at a same time.
4 . The edge server device of claim 2 , wherein the instructions that further cause the processor circuitry to:
receive the A2MP task execution status messages at a rate based on the temporal coordination of the execution of the A2MPs.
5 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to:
dynamically update the distribution of the token or the task graph based on a monotonically changing canonical progress variable that changes independently of the modification of the trajectory of the end device.
6 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to:
receive the A2MP task execution status messages at a rate based on a condition of a communication channel between the edge server and the client device.
7 . The edge server device of claim 6 , wherein the condition of the communication channel is based on communication channel throughput, capacity, or latency.
8 . The edge server device of claim 6 , wherein the communication channel between the edge server and the client device is a wireless communication channel, and a communication channel between the client device and the end device is a wired communication channel having a lower latency than the wireless communication channel.
9 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to:
receive the A2MP task execution status messages at a rate corresponding with a location along the trajectory in a canonical variable domain.
10 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to:
receive the A2MP task execution status messages at a rate based on task variability with respect to the trajectory in task space.
11 . The edge server device of claim 1 , wherein the A2MP task execution status messages include A2MP deltas in parameter, joint, or cartesian space.
12 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to:
define the task graph; and
distribute the task graph to the client device when the task is assigned or changed.
13 . The edge server device of claim 1 , wherein the instructions that further cause the processor circuitry to distribute the tokens by:
identifying an initial set of A2MPs corresponding to the task to be executed and their corresponding A2MP parameters; and
based on the A2MP parameters and a condition of a communication channel between the edge server and the client device, select which of the A2MPs of the initial set are distributable.
14 . A component-of-a-client device, comprising:
processor circuitry; and
a non-transitory computer-readable storage medium including instructions that, when executed by the processor circuitry, cause the processor circuitry to:
receive, from an edge server, tokens that enable an end device of the client device to execute respective asynchronous adaptive motion primitives (A2MPs) of a task graph of a task, wherein an A2MP is a motion primitive of encoded motion factoring in motion updates from the end device;
send, to the edge server, A2MP task execution status messages including A2MP deltas in parameter, joint, or cartesian space during execution of the A2MPs; and
modify a trajectory of the end device based on the task graph that is dynamically updated by the edge server based on the A2MP task execution status messages.
15 . The client device of claim 14 , wherein the instructions that further cause the processor circuitry to:
send, to the edge server, the A2MP task execution status messages at a rate based on a condition of a communication channel between the edge server and the client device.
16 . The client device of claim 15 , wherein the condition of the communication channel is based on communication channel throughput, capacity, or latency.
17 . The client device of claim 15 , wherein the communication channel between the edge server and the client device is a wireless communication channel, and a communication channel between the client device and the end device is a wired communication channel having a lower latency than the wireless communication channel.
18 . The client device of claim 14 , wherein the instructions that further cause the processor circuitry to:
send the A2MP task execution status messages at a rate corresponding with a location along the trajectory in a canonical variable domain.
19 . The client device of claim 14 , wherein the instructions that further cause the processor circuitry to:
receive the A2MP task execution status messages at a rate based on task variability with respect to the trajectory in task space.
20 . The client device of claim 14 , wherein the instructions that further cause the processor circuitry to:
receive dynamically updated tokens or task graphs based on a monotonically changing canonical progress variable that changes independently of the modification of the trajectory of the end device.