Skip to content

Fixed inverse kinematics#214

Open
MarleneBusch wants to merge 96 commits into
mainfrom
features/combined_optimization
Open

Fixed inverse kinematics#214
MarleneBusch wants to merge 96 commits into
mainfrom
features/combined_optimization

Conversation

@MarleneBusch

@MarleneBusch MarleneBusch commented May 29, 2026

Copy link
Copy Markdown
Member

Description

The main feature of this PR is the fixed inverse kinematics.

  • add second kinematics reconstruction method
  • add train test dataset splits for the kinematics reconstructor and surface reconstructor
  • rename the motor position optimizer to aim point optimizer
  • for the kinematics and surface reconstruction pytests, i have removed test heliostat AA31 and instead added one more sample to test heliostat AA39, to keep the compute load similar but increase the information gain in the reconstruction with very few samples.

Fixes #205
Fixes #213 (there is now only one .pt file storing all tensors used in the pytests in a dict, this reduces 35 files into 1 file, it is slightly less userfriendly maybe, so if this change is not wanted I can revert it.)

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

@mcw92 mcw92 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, I think we are now very close to release-ready. A couple of things to be addressed before we do the merge:

  • I checked the inverse kinematics and all related changes carefully. The implemented functionality matches the formulae provided by @Filos1992 and makes sense to me.

  • I made some small changes for obvious things, like minor modifications to docstrings or comments etc. The commit suggestions I was not sure about I left unchanged to be addressed once @MarleneBusch is back from vacation.

  • Some methods (I made specific comments there) would really benefit from further refactoring into helper functions to improve clarity and readability of the code.

  • I am very unsure about whether we should have plotting functionality implemented at such a deep level inside the package as it is the case for the KinematicsReconstructor class. Can we move these "analysis" methods somewhere else?

  • I think we should really move all scripts related to the full-field optimization to another repo inside the ARTIST Association that just imports artist as a package. We should have done the same for the PAINT plots; however, we cannot move these scripts anymore as they are explicitly linked in the Nature Energy paper.

Note that I did not check the plotting and example scripts properly.

Comment thread artist/field/kinematics_rigid_body.py Outdated
Comment thread artist/field/kinematics_rigid_body.py Outdated
Comment thread artist/field/kinematics_rigid_body.py Outdated
Comment thread artist/field/kinematics_rigid_body.py Outdated
Comment thread artist/field/kinematics_rigid_body.py Outdated
Comment thread artist/optim/loss.py Outdated
Comment thread artist/optim/loss.py Outdated
Comment thread artist/optim/surface_reconstructor.py
Comment thread tests/optim/test_loss_functions.py Outdated
Comment thread tests/optim/test_loss_functions.py Outdated
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.

Combine all data files in the tests dir Rename motor position optimization to aim point optimization

2 participants