# On-Board Decentralized Observation Planning for LEO Satellite Constellations

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Problem Description

#### 2.1. Constellation Configuration

#### 2.2. Mathematical Formulation

- Satellite-related variables: Let $\mathcal{I}=\left\{1,2,\dots ,N\right\}$ be index set of $N$ satellites. The $i$th satellite $sa{t}_{i}$ is associated with the maximum available storage $st{o}_{i}^{\mathrm{sat}}$ and the maximum available energy $en{e}_{i}^{\mathrm{sat}}$.
- Task-related variables: Let $\mathcal{J}=\left\{1,2,\dots ,M\right\}$ be an index set of $M$ tasks. The $j$th task $tas{k}_{j}$ is associated with the estimated consumed storage $st{o}_{j}^{\mathrm{task}}$, the estimated consumed energy $en{e}_{j}^{\mathrm{task}}$, the estimated duration $du{r}_{j}^{\mathrm{task}}$, the execution start time $s{t}_{j}^{\mathrm{task}}$, the execution end time $e{t}_{j}^{\mathrm{task}}$, the attitude maneuver time $am{t}_{j{j}^{\prime}}^{\mathrm{task}}$ between $e{t}_{j}^{\mathrm{task}}$ and $s{t}_{{j}^{\prime}}^{\mathrm{task}}$, the original profit $o{p}_{j}^{\mathrm{task}}$ determined by the priority of the task, and the final profit $f{p}_{j}^{\mathrm{task}}$ obtained by the observation of the task. $\lambda $ is the time-discounted parameter of $f{p}_{j}^{\mathrm{task}}$, and $f{p}_{j}^{\mathrm{task}}$ can be calculated as:$$f{p}_{j}^{\mathrm{task}}=o{p}_{j}^{\mathrm{task}}{e}^{-\lambda s{t}_{j}^{\mathrm{task}}}.$$
- Mask-related variables: Let ${\mathcal{K}}_{ij}=\left\{1,2,\dots ,{O}_{ij}\right\}$ be index set of ${O}_{ij}$ $sa{t}_{i}$-to-$tas{k}_{j}$ observation availability masks. The $k$th mask $oa{m}_{ijk}$ is associated with the start time $s{t}_{ijk}^{\mathrm{oam}}$ and the end time $e{t}_{ijk}^{\mathrm{oam}}$.
- Decision variable: To finally find the “task-mask” mappings in MSOOP, ${x}_{ijk}$ is introduced as a decision variable. ${x}_{ijk}=1$ if $tas{k}_{j}$ is assigned to $oa{m}_{ijk}$, and ${x}_{ijk}=0$ otherwise.

#### 2.3. Communication Network Topology

- Communication-related variables: Let ${\mathcal{L}}_{i{i}^{\prime}}=\left\{1,2,\dots ,{P}_{i{i}^{\prime}}\right\}$ be an index set of ${P}_{i{i}^{\prime}}$ $sa{t}_{i}$-to-$sa{t}_{{i}^{\prime}}$ communication availability masks. The $l$th mask $ca{m}_{i{i}^{\prime}l}$ is associated with the start time $s{t}_{i{i}^{\prime}l}^{\mathrm{cam}}$ and the end time $e{t}_{i{i}^{\prime}l}^{\mathrm{cam}}$. If $\exists l\in {\mathcal{L}}_{i{i}^{\prime}}$ satisfies $s{t}_{i{i}^{\prime}l}^{\mathrm{cam}}\le t\le e{t}_{i{i}^{\prime}l}^{\mathrm{cam}}$ at time $t$, $sa{t}_{{i}^{\prime}}$ is called the neighbor of $sa{t}_{i}$ at time $t$. The index set of the neighbors of $sa{t}_{i}$ at time $t$ is denoted as ${\mathcal{N}}_{i}^{t}=\left\{1,2,\dots ,{Q}_{i}^{t}\right\}$, where ${Q}_{i}^{t}$ is the number of the neighbors of $sa{t}_{i}$ at time $t$. Due to the bi-directional characteristic, ${\mathcal{L}}_{i{i}^{\prime}}={\mathcal{L}}_{{i}^{\prime}i}$ and ${i}^{\prime}\in {\mathcal{N}}_{i}^{t}\equiv i\in {\mathcal{N}}_{{i}^{\prime}}^{t}$.

## 3. Improved CBBA

#### 3.1. Main Procedure of ICBBA

- Algorithm-related variables: $T$ is the iteration time that records the running times of bundle construction. ${b}_{i}$ is the bundle of $sa{t}_{i}$ with the length of ${B}_{i}$, where the element ${b}_{in}$ is the $n$th entry of ${b}_{i}$. ${y}_{i}$ is the winning bid list of $sa{t}_{i}$, where the element ${y}_{ij}$ is the global winning bid for $tas{k}_{j}$ with the knowledge of $sa{t}_{i}$. ${z}_{i}$ is the winning satellite list of $sa{t}_{i}$, where the element ${z}_{ij}$ is the global winning satellite index for $tas{k}_{j}$ with the knowledge of $sa{t}_{i}$. ${s}_{i}$ is the time stamp of the last information update from each of the other satellites, where the element ${s}_{i{i}^{\prime}}$ is the last information-update time stamp of $sa{t}_{{i}^{\prime}}$ with the knowledge of $sa{t}_{i}$. $DM{G}_{ij}$, Diminishing Margin Gain, indicates that if $tas{k}_{j}$ is assigned to $sa{t}_{i}$, the maximum $f{p}_{j}^{\mathrm{task}}$ that can be obtained without conflict with the tasks is already added to ${b}_{i}$. The mask index and the task execution start time corresponding to $DM{G}_{ij}$ are denoted as ${k}_{ij}^{\mathrm{DMG}}$, $s{t}_{ij}^{\mathrm{DMG}}$, respectively. Each time, the task index added to ${b}_{i}$ is denoted as ${j}^{\mathrm{add}}$. With the addition of tasks, some masks belonging to the tasks that have not been added to the bundle may be unavailable due to constraint conflicts. Therefore, a mask enabling flag ${f}_{ijk}$ initialized to 1 is introduced; ${f}_{ijk}=1$ if $oa{m}_{ijk}$ is available, ${f}_{ijk}=0$ otherwise. A consensus flag $con{f}_{i}$ is also introduced; $con{f}_{i}=1$ if the consensus is reached between $sa{t}_{i}$ and its neighbors currently, $con{f}_{i}=0$ otherwise. ${h}_{ij}$ is used as an indicator function that is 1 if $DM{G}_{ij}>{y}_{ij}$ is true and 0 otherwise, which is expressed as:$${h}_{ij}=\mathbb{I}\left(DM{G}_{ij}>{y}_{ij}\right).$$

Algorithm 1. ICBBA for $sa{t}_{i}$ |

procedure ICBBA (current satellite index $i$, satellite index set $\mathcal{I}=\left\{1,2,\dots ,N\right\}$, task index set $\mathcal{J}=\left\{1,2,\dots ,M\right\}$, observation availability mask index sets $\left\{{\mathcal{K}}_{i1},{\mathcal{K}}_{i2},\dots ,{\mathcal{K}}_{iM}\right\}$, communication availability mask index sets $\left\{{\mathcal{L}}_{i1},{\mathcal{L}}_{i2},\dots ,{\mathcal{L}}_{iN}\right\}$)Initialize $T=0$, ${b}_{i}\left(T\right)=\varnothing $, ${y}_{ij}\left(T\right)=0\forall j\in \mathcal{J}$, ${z}_{ij}\left(T\right)=-1\forall j\in \mathcal{J}$, ${s}_{i{i}^{\prime}}=0\forall {i}^{\prime}\in \mathcal{I}$, $con{f}_{i}=0$ while termination condition is not reached do /* Execute the procedure if the earliest task execution start time or the running time threshold set in advance has not been reached */if $con{f}_{i}=0$ then$T=T+1$ /* Record the iteration time */ ${b}_{i}\left(T\right),{y}_{i}\left(T\right),{z}_{i}\left(T\right)\leftarrow $ Bundle Construction($i,\mathcal{J},\left\{{\mathcal{K}}_{i1},{\mathcal{K}}_{i2},\dots ,{\mathcal{K}}_{iM}\right\},{b}_{i}\left(T-1\right),{y}_{i}\left(T-1\right),{z}_{i}\left(T-1\right)$) /* Construct the bundle and update the planning information */ $t\leftarrow $ Time Reading( ) /* Record the current time */ ${\mathcal{N}}_{i}^{t}\leftarrow $ Neighbor Getting($t,i,\left\{{\mathcal{L}}_{i1},{\mathcal{L}}_{i2},\dots ,{\mathcal{L}}_{iN}\right\}$) /* Calculate the communication availability */ for ${i}^{\prime}$ in ${\mathcal{N}}_{i}^{t}$ doPlanning Information Sending($i,{i}^{\prime},{y}_{i}\left(T\right),{z}_{i}\left(T\right),{s}_{i}$) /*Send the planning information to each neighbor */ end forend ifif neighbor $sa{t}_{{i}^{\prime}}$ is sending planning information to $sa{t}_{i}$ thenPlanning Information Receiving($i,{i}^{\prime},{y}_{{i}^{\prime}},{z}_{{i}^{\prime}},{s}_{{i}^{\prime}}$) /*Receive the planning information from the communicating neighbor */ $t\leftarrow $ Time Reading( ) /* Record the time of current communication */ $con{f}_{i},{b}_{i}\left(T\right),{y}_{i}\left(T\right),{z}_{i}\left(T\right),{s}_{i}\leftarrow $ Consensus Check($t,i,{i}^{\prime},\mathcal{I},\mathcal{J},\left\{{\mathcal{K}}_{i1},{\mathcal{K}}_{i2},\dots ,{\mathcal{K}}_{iM}\right\},{b}_{i}\left(T\right),{y}_{i}\left(T\right),{z}_{i}\left(T\right),{s}_{i},{y}_{{i}^{\prime}},{z}_{{i}^{\prime}},{s}_{{i}^{\prime}}$) /* Check the consensus between satellite itself and its neighbor and update the planning information */ end ifend whileend procedure |

#### 3.2. Bundle Construction

Algorithm 2. Bundle Construction for $sa{t}_{i}$ at iteration $T$ |

procedure Bundle Construction(current satellite index $i$, task index set $\mathcal{J}=\left\{1,2,\dots ,M\right\}$, observation availability mask index sets $\left\{{\mathcal{K}}_{i1},{\mathcal{K}}_{i2},\dots ,{\mathcal{K}}_{iM}\right\}$, ${b}_{i}\left(T-1\right)$, ${y}_{i}\left(T-1\right)$, ${z}_{i}\left(T-1\right)$)Initialize ${b}_{i}\left(T\right)={b}_{i}\left(T-1\right)$, ${y}_{i}\left(T\right)={y}_{i}\left(T-1\right)$, ${z}_{i}\left(T\right)={z}_{i}\left(T-1\right)$, termination flag $TF=0$ while $TF=0$ do /* Execute the procedure if there is still a task that can be added to the bundle */Initialize ${j}^{\mathrm{add}}=-1$, $DM{G}_{\mathrm{max}}=0$ for $j$ in $\mathcal{J}\backslash {b}_{i}$ doInitialize $DM{G}_{ij}=0$, $s{t}_{ij}^{\mathrm{DMG}}=$ planning horizon for $k$ in ${\mathcal{K}}_{ij}$ doif ${f}_{ijk}=1\wedge s{t}_{ijk}^{\mathrm{oam}}<s{t}_{ij}^{\mathrm{DMG}}$ then /* Find the earliest observation availability mask that meets the constraints */${k}_{ij}^{\mathrm{DMG}}=k$ $s{t}_{ij}^{\mathrm{DMG}}=s{t}_{ij{k}_{ij}^{\mathrm{DMG}}}^{\mathrm{oam}}$ /* Record the start time of the earliest observation availability mask found so far */ $DM{G}_{ij}=o{p}_{j}^{\mathrm{task}}{e}^{-\lambda s{t}_{ij}^{\mathrm{DMG}}}$ /* Calculate the DMG of the task */ end ifend for${h}_{ij}=\mathbb{I}\left(DM{G}_{ij}>{y}_{ij}\right)$ if ${h}_{ij}=1\wedge DM{G}_{ij}>DM{G}_{\mathrm{max}}$ then /* Find the task that meets two sufficient conditions */${j}^{\mathrm{add}}=j$ /* Record the selected task index */ $DM{G}_{\mathrm{max}}=DM{G}_{ij}$ /* Record the maximum DMG found so far */ end ifend forif ${j}^{\mathrm{add}}\ne -1$ then /* Judge whether there is a task that can be successfully added to the bunde */${B}_{i}={B}_{i}+1$ /* Extend the length of the bundle */ ${b}_{i{B}_{i}}={j}^{\mathrm{add}}$ /* Enter the task into the bundle */ ${y}_{i{j}^{\mathrm{add}}}=DM{G}_{i{j}^{\mathrm{add}}}$ /* Enter the DMG of the task into the winning bid list */ ${z}_{i{j}^{\mathrm{add}}}=i$ /* Enter the satellite index into the winning satellite list */for $j$ in $\mathcal{J}\backslash {b}_{i}$ do /* Check constraints and delete masks that conflict with the task added to bundle this time */for $k$ in ${\mathcal{K}}_{ij}$ doif $oa{m}_{ijk}$ conflicts with $tas{k}_{{j}^{\mathrm{add}}}$ then${f}_{ijk}=1$ else${f}_{ijk}=0$ end ifend forend forelse$TF=1$ end ifend whileend procedure |

#### 3.3. Consensus Check

- Update: ${y}_{ij}={y}_{{i}^{\prime}j}$, ${z}_{ij}={z}_{{i}^{\prime}j}$;
- Reset: ${y}_{ij}=0$, ${z}_{ij}=-1$;
- Leave: ${y}_{ij}={y}_{ij}$, ${z}_{ij}={z}_{ij}$.

Algorithm 3. Consensus Check for $sa{t}_{i}$ at iteration $T$ |

procedure Consensus Check (planning information receiving time $t$, current satellite index $i$, neighbor satellite index ${i}^{\prime}$, satellite index set $\mathcal{I}=\left\{1,2,\dots ,N\right\}$, task index set $\mathcal{J}=\left\{1,2,\dots ,M\right\}$, observation availability mask index sets $\left\{{\mathcal{K}}_{i1},{\mathcal{K}}_{i2},\dots ,{\mathcal{K}}_{iM}\right\}$, ${b}_{i}\left(T\right)$, ${y}_{i}\left(T\right)$, ${z}_{i}\left(T\right)$, ${s}_{i}$, ${y}_{{i}^{\prime}}$, ${z}_{{i}^{\prime}}$, ${s}_{{i}^{\prime}}$)Initialize $con{f}_{i}=1$, $\overline{n}=-1$ for $j$ in $\mathcal{J}$ doif ${y}_{ij}\ne {y}_{{i}^{\prime}j}\vee {z}_{ij}\ne {z}_{{i}^{\prime}j}$ then /* Check the consensus between satellite itself and its neighbor */$con{f}_{i}=0$ end if${y}_{ij},{z}_{ij}\leftarrow $ Action Rule(${y}_{ij},{z}_{ij},{y}_{{i}^{\prime}j},{z}_{{i}^{\prime}j}$) /* Change the winning bid list and the winning satellite list based on the action rule */ end forfor ${i}^{\u2033}$ in $\mathcal{I}$ do /* Update the time stamp */if ${i}^{\u2033}={i}^{\prime}$ then${s}_{i{i}^{\u2033}}=t$ end ifif ${i}^{\u2033}\ne i\wedge {i}^{\u2033}\ne {i}^{\prime}$ then${s}_{i{i}^{\u2033}}=\mathrm{max}\left\{{s}_{i{i}^{\u2033}},{s}_{{i}^{\prime}{i}^{\u2033}}\right\}$ end ifend forif $con{f}_{i}=0$ then for $n=1$ to ${B}_{i}$ do /* Release the earliest added task for which ${z}_{ij}\ne i$ and all of the tasks that were added after it */if $\overline{n}=-1\wedge {z}_{i{b}_{in}}\ne i$ then /* Find the earliest added task for which ${z}_{ij}\ne i$ */$\overline{n}=n$ ${b}_{in}=\varnothing $ /* Empty the corresponding location of the bundle */ end ifif $\overline{n}\ne -1$ then${y}_{i{b}_{in}}=0$ /* Reset the corresponding location of the winning bid list */ ${z}_{i{b}_{in}}=-1$ /* Reset the corresponding location of the winning satellite list */ ${b}_{in}=\varnothing $ /* Empty the corresponding location of the bundle */ end ifend for${B}_{i}=\overline{n}-1$ /* Shorten the length of the bundle */ for $j$ in $\mathcal{J}\backslash {b}_{i}$ do /* Recover the masks that have been deleted due to conflict with the released tasks */ for $k$ in ${\mathcal{K}}_{ij}$ doif $oa{m}_{ijk}$ conflicts with any task in ${b}_{i}$ then${f}_{ijk}=1$ else${f}_{ijk}=0$ end ifend forend forend ifend procedure |

## 4. Computational Experiments

- Target setting: the targets are divided into two types, global targets and regional targets. The global targets are generated by a random uniform distribution throughout the world, 60° S–60° N. The regional targets are generated by a random uniform distribution in the area, 3° N–53° N and 73° E–133° E. The position of each target is defined by latitude and longitude. For different types of targets, the number of targets includes 500, 1000, and 1500, respectively.
- Satellite constellation setting: Walker-δ (30/3/1, 600 km, 60°), Walker-δ (60/3/1, 600 km, 60°), and Walker-δ (90/3/1, 600 km, 60°) are used.
- Parameter setting: the planning horizon is set to 1.5 h, from 04:00:00 to 05:30:00 on 30 July 2022. The original profit $o{p}_{j}^{\mathrm{task}}$ and the estimated consumed storage $st{o}_{j}^{\mathrm{task}}$ of each task are generated by a random uniform distribution on $\left[50,100\right]$. The maximum available storage $st{o}_{i}^{\mathrm{sat}}$ is set to 750, which allows that about 10 tasks can be completed by each satellite in the whole planning horizon. The time-discounted parameter $\lambda $ in Formula (1) is set to ${10}^{-5}$, which means that the final profit $f{p}_{j}^{\mathrm{task}}$ of the task completed at the last moment of the planning horizon is about 95% of the original profit $o{p}_{j}^{\mathrm{task}}$.
- Experimental environment: The proposed algorithm was coded in C++ and compiled on an Intel Core i9-11900K processor (3.5 GHz and 64 GB RAM).

## 5. Conclusions

## Author Contributions

## Funding

## Data Availability Statement

## Conflicts of Interest

## References

- Zheng, Z.; Guo, J.; Gill, E. Distributed onboard mission planning for multi-satellite systems. Aerosp. Sci. Technol.
**2019**, 89, 111–122. [Google Scholar] [CrossRef] - Blackwell, W.; Allen, G.; Galbraith, C.; Leslie, R.; Osaretin, I.; Scarito, M.; Shields, M.; Thompson, E.; Toher, D.; Townzen, D.; et al. MicroMAS: A first step towards a nanosatellite constellation for global storm observation. In Proceedings of the 27th Annual AIAA/USU Conference on Small Satellites, Logan, UT, USA, 12–15 August 2013. [Google Scholar]
- Blackwell, W.J.; Braun, S.; Bennartz, R.; Velden, C.; DeMaria, M.; Atlas, R.; Dunion, J.; Marks, F.; Rogers, R.; Annane, B.; et al. An overview of the TROPICS NASA Earth Venture Mission. Q. J. R. Meteorol. Soc.
**2018**, 144, 16–26. [Google Scholar] [CrossRef] [PubMed] - Claybrook, J.R. Feasibility Analysis on the Utilization of the Iridium Satellite Communications Network for Resident Space Objects in Low Earth Orbit. Master’s Thesis, Air Force Institute of Technology, Dayton, OH, USA, March 2013. [Google Scholar]
- Santangelo, A.D.; Skentzos, P. Utilizing the Globalstar Network for CubeSat and Small Satellite Communications. In Proceedings of the 33rd AIAA International Communications Satellite Systems Conference and Exhibition, Queensland, Australia, 7–10 September 2015; p. 4308. [Google Scholar]
- Henri, Y. The OneWeb satellite system. In Handbook of Small Satellites: Technology, Design, Manufacture, Applications, Economics and Regulation; Springer: Berlin/Heidelberg, Germany, 2020; pp. 1–10. [Google Scholar]
- McDowell, J.C. The Low Earth Orbit Satellite Population and Impacts of the SpaceX Starlink Constellation. Astrophys. J.
**2020**, 892, L36. [Google Scholar] [CrossRef] - Tompkins, M.F. Optimization Techniques for Task Allocation and Scheduling in Distributed Multi-Agent Operations. Ph.D. Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2003. [Google Scholar]
- Truszkowski, W.; Hallock, H.; Rouff, C.; Karlin, J.; Rash, J.; Hinchey, M.; Sterritt, R. Autonomous and Autonomic Systems: With Applications to NASA Intelligent Spacecraft Operations and Exploration Systems; Springer Science & Business Media: New York, NY, USA, 2009. [Google Scholar]
- Qin, J.; Liu, Y.; Mao, X.; McNair, J. Deadline based resource balancing task allocation for clustered heterogeneous LEO small satellite network. In Proceedings of the MILCOM 2013-2013 IEEE Military Communications Conference, San Diego, CA, USA, 18–20 November 2013; pp. 1825–1831. [Google Scholar]
- Kennedy, A.K. Planning and Scheduling for Earth-Observing Small Satellite Constellations. Ph.D. Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2018. [Google Scholar]
- Zheng, Z.; Guo, J.; Gill, E. Swarm satellite mission scheduling & planning using Hybrid Dynamic Mutation Genetic Algorithm. Acta Astronaut.
**2017**, 137, 243–253. [Google Scholar] - Grunwald, W.C. Decentralized on-Board Planning and Scheduling for Crosslink-Enabled Earth-Observing Constellations. Ph.D. Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2019. [Google Scholar]
- Holden, B.G. Onboard Distributed Replanning for Crosslinked Small Satellite Constellations. Ph.D. Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2019. [Google Scholar]
- Herold, T.; Abramson, M.; Balakrishnan, H.; Kahn, A.; Kolitz, S. Asynchronous, distributed optimization for the coordinated planning of air and space assets. In Proceedings of the AIAA Infotech@ Aerospace, Atlanta, GA, USA, 20–22 April 2010; p. 3426. [Google Scholar]
- Agogino, A.; HolmesParker, C.; Tumer, K. Evolving distributed resource sharing for cubesat constellations. In Proceedings of the 14th Annual Conference on Genetic and Evolutionary Computation, Philadelphia, PA, USA, 7–11 July 2012; pp. 1015–1022. [Google Scholar]
- Van Der Horst, J. Market-Based Task Allocation in Distributed Satellite Systems. Ph.D. Thesis, University of Southampton, Southampton, UK, 2012. [Google Scholar]
- Smith, R.G. The contract net protocol: High-level communication and control in a distributed problem solver. IEEE Trans. Comput.
**1980**, 29, 1104–1113. [Google Scholar] [CrossRef] - Si-wei, C.; Jing, C.; Lin-Cheng, S.; Yi, T. ECNP-based method of distributed dynamic task allocation for multiple observation satellite planning. In Proceedings of the 2010 2nd International Conference on Advanced Computer Control, Shenyang, China, 27–29 March 2010; Volume 4, pp. 325–328. [Google Scholar]
- Feng, P.; Chen, H.; Peng, S.; Chen, L.; Li, L. A method of distributed multi-satellite mission scheduling based on improved contract net protocol. In Proceedings of the 2015 11th International Conference on Natural Computation (ICNC), Zhangjiajie, China, 15–17 August 2015; pp. 1062–1068. [Google Scholar]
- Du, B.; Li, S. A new multi-satellite autonomous mission allocation and planning method. Acta Astronaut.
**2018**, 163, 287–298. [Google Scholar] [CrossRef] - Li, G. Online scheduling of distributed Earth observation satellite system under rigid communication constraints. Adv. Space Res.
**2020**, 65, 2475–2496. [Google Scholar] [CrossRef] - Dalin, L.; Haijiao, W.; Zhen, Y.; Yanfeng, G.; Shi, S. An Online Distributed Satellite Cooperative Observation Scheduling Algorithm Based on Multiagent Deep Reinforcement Learning. IEEE Geosci. Remote. Sens. Lett.
**2020**, 18, 1901–1905. [Google Scholar] [CrossRef] - Choi, H.-L.; Brunet, L.; How, J.P. Consensus-Based Decentralized Auctions for Robust Task Allocation. IEEE Trans. Robot.
**2009**, 25, 912–926. [Google Scholar] [CrossRef] - Lemaître, M.; Verfaillie, G.; Jouhaud, F.; Lachiver, J.-M.; Bataille, N. Selecting and scheduling observations of agile satellites. Aerosp. Sci. Technol.
**2002**, 6, 367–381. [Google Scholar] [CrossRef]

**Figure 1.**Walker-δ (30/3/1, 600 km, 60°) constellation configuration: (

**a**) 3D constellation configuration at time $t=0$; (

**b**) 2D satellite ground tracks at time $t=0$.

**Figure 2.**The communication network topology of Walker-δ (30/3/1, 600 km, 60°) at time $t=0$ (connect any two satellites between which ISL is available).

**Figure 3.**The number of repeated claims for the whole constellation after bundle construction varies according to iteration times: (

**a**) Global targets-1500-90/3/1; (

**b**) Regional targets-1500-90/3/1.

**Figure 4.**The number of repeated claims for the whole constellation after bundle construction varies according to iteration times, with 100 tasks arriving dynamically at the 30th iteration: (

**a**) Global targets-1500-90/3/1; (

**b**) Regional targets-1500-90/3/1.

**Table 1.**Action rule for $sa{t}_{i}$ based on communication with $sa{t}_{{i}^{\prime}}$ regarding $tas{k}_{j}$.

$\mathit{s}\mathit{a}{\mathit{t}}_{{\mathit{i}}^{\prime}}$ (Sender) Thinks ${\mathit{z}}_{\mathit{i}\mathit{j}}$ Is | $\mathit{s}\mathit{a}{\mathit{t}}_{\mathit{i}}$ (Receiver) Thinks ${\mathit{z}}_{\mathit{i}\mathit{j}}$ Is | Action of $\mathit{s}\mathit{a}{\mathit{t}}_{\mathit{i}}$ (Default: Leave) |
---|---|---|

${i}^{\prime}$ | $i$ | if ${y}_{{i}^{\prime}j}>{y}_{ij}\to $ update |

${i}^{\prime}$ | update | |

${i}^{\u2033}\notin \left\{i,{i}^{\prime}\right\}$ | if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}$ or ${y}_{{i}^{\prime}j}>{y}_{ij}\to $ update | |

none | update | |

$i$ | $i$ | leave |

${i}^{\prime}$ | reset | |

${i}^{\u2033}\notin \left\{i,{i}^{\prime}\right\}$ | if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}\to $ reset | |

none | leave | |

${i}^{\u2033}\notin \left\{i,{i}^{\prime}\right\}$ | $i$ | if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}$ and ${y}_{{i}^{\prime}j}>{y}_{ij}\to $ update |

${i}^{\prime}$ | if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}\to $ update else $\to $ reset | |

${i}^{\u2033}$ | ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}\to $ update | |

${i}^{\u2034}\notin \left\{i,{i}^{\prime},{i}^{\u2033}\right\}$ | if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}$ and ${s}_{{i}^{\prime}{i}^{\u2034}}>{s}_{i{i}^{\u2034}}\to $ update if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}$ and ${y}_{{i}^{\prime}j}>{y}_{ij}\to $ update if ${s}_{{i}^{\prime}{i}^{\u2034}}>{s}_{i{i}^{\u2034}}$ and ${s}_{i{i}^{\u2033}}>{s}_{{i}^{\prime}{i}^{\u2033}}\to $ reset | |

none | $i$ | leave |

${i}^{\prime}$ | reset | |

${i}^{\u2033}\notin \left\{i,{i}^{\prime}\right\}$ | if ${s}_{{i}^{\prime}{i}^{\u2033}}>{s}_{i{i}^{\u2033}}\to $ update | |

none | leave |

**Table 2.**The comparison results of DMG(P) and DMG(P/S) on global targets. (The highest value of task completion rate and total profit in each instance are marked in bold.)

Target Type | Target Number | Constellation $(\mathit{N}/\mathit{P}/\mathit{F})$ | Available Target Number | Communication Number | DMG(P) | DMG(P/S) | ||||
---|---|---|---|---|---|---|---|---|---|---|

Completion Number | Completion Rate (%) | Total Profit | Completion Number | Completion Rate (%) | Total Profit | |||||

Global targets | 500 | 30/3/1 | 282 | 3552 | 261 | 92.55 | 20,134.6 | 263 | 93.26 | 20,201.9 |

60/3/1 | 299 | 12,434 | 297 | 99.33 | 22,233.5 | 297 | 99.33 | 22,233.4 | ||

90/3/1 | 314 | 24,786 | 312 | 99.36 | 23,313.3 | 313 | 99.68 | 23,384.9 | ||

1000 | 30/3/1 | 556 | 3241 | 289 | 51.98 | 24,863.2 | 314 | 56.47 | 25,553.5 | |

60/3/1 | 607 | 19,211 | 574 | 94.56 | 43,360.4 | 569 | 93.74 | 42,934.3 | ||

90/3/1 | 629 | 37,821 | 621 | 98.73 | 46,406.8 | 621 | 98.73 | 46,361.9 | ||

1500 | 30/3/1 | 845 | 3728 | 289 | 34.20 | 26,117.8 | 339 | 40.12 | 28,147.6 | |

60/3/1 | 882 | 16,702 | 582 | 65.99 | 48,043.5 | 609 | 69.05 | 48,573 | ||

90/3/1 | 938 | 47,181 | 866 | 92.32 | 65,918.2 | 864 | 92.11 | 65,601 |

**Table 3.**The comparison results of DMG(P) and DMG(P-L) on regional targets. (The highest value of task completion rate and total profit in each instance are marked in bold.)

Target Type | Target Number | $\mathbf{Constellation}(\mathit{N}/\mathit{P}/\mathit{F})$ | Available Target Number | Communication Number | DMG(P) | DMG(P-L) | ||||
---|---|---|---|---|---|---|---|---|---|---|

Completion Number | Completion Rate (%) | Total Profit | Completion Number | Completion Rate (%) | Total Profit | |||||

Regional targets | 500 | 30/3/1 | 256 | 4321 | 222 | 86.72 | 16,472.5 | 224 | 87.50 | 16,488.1 |

60/3/1 | 274 | 15,457 | 262 | 95.62 | 19,161.4 | 272 | 99.27 | 19,666.8 | ||

90/3/1 | 282 | 33,502 | 277 | 98.23 | 20,861 | 281 | 99.65 | 20,992.1 | ||

1000 | 30/3/1 | 546 | 5641 | 370 | 67.77 | 28,473.4 | 374 | 68.50 | 28,548.2 | |

60/3/1 | 580 | 22,816 | 510 | 87.93 | 38,045.9 | 524 | 90.34 | 38,773 | ||

90/3/1 | 586 | 46,540 | 558 | 95.22 | 41,911.1 | 577 | 98.46 | 42,943.7 | ||

1500 | 30/3/1 | 836 | 5627 | 426 | 50.96 | 34,464.7 | 454 | 54.31 | 35,541.6 | |

60/3/1 | 876 | 24,869 | 680 | 77.63 | 52,207.9 | 690 | 78.77 | 52,341.7 | ||

90/3/1 | 864 | 55,574 | 770 | 89.12 | 57,981.3 | 811 | 93.87 | 60,182.9 |

**Table 4.**The results of DMG(P) on global targets and regional targets with tasks arriving dynamically.

Target Type | Target Number | Constellation $(\mathit{N}/\mathit{P}/\mathit{F})$ | Available Target Number | Communication Number | DMG(P) | ||
---|---|---|---|---|---|---|---|

Completion Number | Completion Rate (%) | Total Profit | |||||

Global targets | 1500 | 90/3/1 | 938 | 47,181 | 866 | 92.32 | 65,918.2 |

1500 + 100 | 90/3/1 | 994 | 49,785 | 870 | 87.53 | 67,426.7 | |

Regional targets | 1500 | 90/3/1 | 864 | 55,574 | 770 | 89.12 | 57,981.3 |

1500 + 100 | 90/3/1 | 916 | 58,520 | 813 | 88.76 | 61,280.5 |

Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |

© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Song, B.; Chen, Y.; Yang, Q.; Zuo, Y.; Xu, S.; Chen, Y. On-Board Decentralized Observation Planning for LEO Satellite Constellations. *Algorithms* **2023**, *16*, 114.
https://doi.org/10.3390/a16020114

**AMA Style**

Song B, Chen Y, Yang Q, Zuo Y, Xu S, Chen Y. On-Board Decentralized Observation Planning for LEO Satellite Constellations. *Algorithms*. 2023; 16(2):114.
https://doi.org/10.3390/a16020114

**Chicago/Turabian Style**

Song, Bingyu, Yingwu Chen, Qing Yang, Yahui Zuo, Shilong Xu, and Yuning Chen. 2023. "On-Board Decentralized Observation Planning for LEO Satellite Constellations" *Algorithms* 16, no. 2: 114.
https://doi.org/10.3390/a16020114