Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New example that shows linearised ODE as transition model #1009

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

A-acuto
Copy link
Contributor

@A-acuto A-acuto commented May 8, 2024

This PR follows the (now closed #952) where I changed the example from a space domain case to a navigation like transition model (constant heading).
The example provides a snapshot on how to linearise a non-linear time variant transition model using the Van Loan method.

Some feedback on the document provided in the previous PR are incomporated already.

The example considered mimics the one presented in the following paper:
[1] Kountouriotis, Panagiotis-Aristidis, and Simon Maskell. "Maneuvering target tracking using an unbiased nearly constant heading model." 2012 15th International Conference on Information Fusion. IEEE, 2012.
(https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6290578.)

@A-acuto A-acuto requested a review from a team as a code owner May 8, 2024 09:50
@A-acuto A-acuto requested review from orosoman-dstl and csherman-dstl and removed request for a team May 8, 2024 09:50
Copy link

codecov bot commented May 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 93.74%. Comparing base (0b20e96) to head (2b97a9e).
Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1009      +/-   ##
==========================================
+ Coverage   93.72%   93.74%   +0.02%     
==========================================
  Files         214      214              
  Lines       14004    14004              
  Branches     1925     1925              
==========================================
+ Hits        13125    13128       +3     
+ Misses        627      625       -2     
+ Partials      252      251       -1     
Flag Coverage Δ
integration 66.90% <ø> (+0.03%) ⬆️
unittests 90.95% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

# %%
# 2. Create the linearised function;
# ----------------------------------
# We have create a series of detections from a target moving with peculiar dynamics as can be seen
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# We have create a series of detections from a target moving with peculiar dynamics as can be seen
# We have created a series of detections from a target moving with peculiar dynamics as can be seen

Copy link
Contributor

@csherman-dstl csherman-dstl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a small grammatical change.

# nearly constant heading transition model [2]_.
#
# We can use Stone Soup components to create a linearised model and use standard components to
# perform the tracking. This method can be used in other context such as space domain (i.e.,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# perform the tracking. This method can be used in other context such as space domain (i.e.,
# perform the tracking. This method can be used in other contexts such as the space domain (i.e.,

@A-acuto
Copy link
Contributor Author

A-acuto commented Dec 12, 2024

Added the comments @csherman-dstl made, rebased the branch and fixed the conflict with the new 1.5 stone soup version

Comment on lines 222 to 225
(x, vx, s, vy, theta) = state
# generate the s component
s = torch.sqrt(vx*vx + vy*vy)
return s * torch.cos(theta), 0 * s, s * torch.sin(theta), 0. * s, 0. * theta
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(x, vx, s, vy, theta) = state
# generate the s component
s = torch.sqrt(vx*vx + vy*vy)
return s * torch.cos(theta), 0 * s, s * torch.sin(theta), 0. * s, 0. * theta
(x, vx, y, vy, theta) = state
# generate the s component
s = torch.sqrt(vx*vx + vy*vy)
return s * torch.cos(theta), 0. * s, s * torch.sin(theta), 0. * s, 0. * theta

Just a small last thing that I noticed. Is the s taken from the state supposed to be a y. (the variable isn't used so it doesn't change anything)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants