New Focus Algorithm

Hy Murveit murveit at gmail.com
Sat May 7 09:38:25 BST 2022


John,

Thanks very much for doing this. Here are a few quick notes:

   - Please check out kstars/Tests/focus/testfocus.cpp. You'll find some
   unit tests for the Linear algorithm there, and you can model unit tests for
   your new scheme after that. You can also use that test to help check that
   you haven't changed the standard Linear.
   - Please include the new scheme in
   kstars/ekos/focus/focusalgorithms.cpp/h which is where most of Linear is
   implemented. (Haven't had a chance to look, I assume you're already doing
   that, but just in case.)
   - I'd be happy to help code review, as will some of the others, I'm
   sure.
   - Feel free to continue asking questions on this email list, and later
   on the merge review (MR) page once you've started that. Any question is
   welcome. There are some instructions on the kstars README page about git
   and MRs if you want to refer to that.

Looking forward to it,
Hy

On Sat, May 7, 2022 at 10:24 AM Jasem Mutlaq <mutlaqja at ikarustech.com>
wrote:

> Hello John,
>
> I've been following your progress on INDI forum and this is indeed looking
> very good. I believe after this is merged in KStars, we need to create a
> table for the different algorithms used to explain use cases, pros/cons for
> each, which type of equipment they are mostly suited for..etc.. This should
> help clear up any confusion for end users.
>
> We can only comment on the code after you submit an MR to KStars, and then
> we'll start the review process. This is very exciting and I'm looking
> forward to it.
>
> --
> Best Regards,
> Jasem Mutlaq
>
>
>
> On Sat, May 7, 2022 at 11:06 AM John Evans <john.e.evans.email at gmail.com>
> wrote:
>
>> Hello Everyone,
>>
>> Hope you're all well? I have been working on a change to improve focus on
>> my rig. Iterative and Polynomial don't work so well for me on the ASI EAF,
>> due, I think to backlash. The Linear algorithm works best but the second
>> pass usually overshoots the ideal focus position.
>>
>> So I built a "Linear 1 Pass" algo, that is based on Linear for the 1st
>> pass, but instead of doing a second pass it moves straight to the minimum
>> of the first pass.
>>
>> I've implemented a couple of curve types (Hyperbola and Parabola) using a
>> generic GSL curve fitting algorithm which could be extended in the future
>> if necessary. The fitting can be done either giving each point equal
>> weighting or weighting them based on the HFR standard deviation of the
>> stars.
>>
>> See the enclosed document for more details.
>>
>> I have written most of the code and it basically works on my rig and the
>> simulator. I have a couple of things still to work out though, and more
>> testing to do.
>>
>> Since this is the first Kstars change I have done (using QT on Mac) I
>> have been following Ron Lancaster's work on getting Kstars running on Mac.
>> In terms of coding standards I've just followed what's been done in the
>> areas I've changed. If there are any resources that someone could point me
>> to, that would be great.
>>
>> If anyone has any feedback on the change that would also be great (I'll
>> also post on the forum to see if there are any suggestions).
>>
>> I estimate I'll be finished with coding and testing in a couple of weeks.
>> I would like feedback on deployment as I'm not familiar with the process at
>> all. So if anyone can point me to any resources that would be very helpful.
>>
>> At the moment I'm thinking:
>> 1. Release 1 - deploy Linear 1 Pass code but concentrate on minimising
>> risk to breaking existing code, esp the Linear algorithm. I have cloned
>> some Linear code for this.
>> 2. Release 2. When Release 1 is working as expected, interface Linear 1
>> Pass code with Linear in a more integrated way, removing cloned code. If
>> any features of Linear 1 Pass would be useful for other focus algos, this
>> could be done here.
>>
>> The reason I'm thinking of doing this in 2 steps is that I'm a novice
>> with C++ and this seems the best way to minimize the risks of breaking
>> existing code. However, I'm happy to take advice from more experienced
>> people here.
>>
>> If anyone would like to offer to help me, do a code review, etc., that
>> would be really appreciated. As I mentioned I'm a novice with C++ so
>> probably not doing things in the best way, but happy to be guided. Also,
>> any suggestions on:
>> 1. Test cases to write for this change.
>> 2. Best way to profile the code, test for memory leaks, etc.
>> 3. Since this would run on a range of different machines, how to
>> configure for different setups, things to watch out for, etc.
>>
>> Thanks for reading!
>>
>> Regards,
>> John.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kstars-devel/attachments/20220507/56b7042e/attachment.htm>


More information about the Kstars-devel mailing list