Closed timothy-glover closed 1 week ago
Attention: Patch coverage is 93.29609%
with 12 lines
in your changes missing coverage. Please review.
Project coverage is 93.95%. Comparing base (
ab6af2b
) to head (1a793fc
). Report is 69 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
stonesoup/sensormanager/tree_search.py | 94.21% | 6 Missing and 1 partial :warning: |
stonesoup/sensormanager/reward.py | 88.88% | 3 Missing and 2 partials :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I'm not sure why the code coverage of tree_search.py and reward.py are so low. On my PC the code coverage of those files are 99% and 96% respectively.
This pull request introduces two new sensor management techniques to Stone Soup:
MonteCarloTreeSearchSensorManager
andMCTSRolloutSensorManager
. These two managers are implementations of Monte Carlo tree search (MCTS) that construct a search tree based on actions and estimated future target states and estimate the action value resulting from this. Introducing these managers has also required a modification to reward functions that are to be compatible with MCTS. TheExpectedKLDivergence
has been modified to include an extra property calledreturn_tracks
that allows the predicted tracks that have been used to calculate the KLD value to be returned to the invoking sensor manager so that it can be stored, in the case of MCTS, in the search tree.ExpectedKLDivergence
is currently the only modified reward function. Another modification toExpectedKLDivergence
has also been introduced to allow data association to be performed when predicting tracks that have received multiple detections if sequential state updates are not the desired process. Tests for each of these new features and modifications have also been included in the PR.Two examples have also been added to the documentation. The first covers the work done for the Loughborough University Stone Soup Kitchen for autonomous STE. This example covers particle filter setup for STE and actionable platform sensor management using
BruteForceSensorManager
andMultiUpdateExpectedKLDivergence
.The second example is includes an MCTS approach to STE and compares it with a Myopic alternative. The example focusses on more on how to implement a MCTS sensor manager rather than the STE problem that is better covered by the first.
@hpritchett-dstl @nperree-dstl @sdhiscocks