{"action":"created","issue":{"url":"https://api.github.com/repos/TauLabs/TauLabs/issues/1676","labels_url":"https://api.github.com/repos/TauLabs/TauLabs/issues/1676/labels{/name}","comments_url":"https://api.github.com/repos/TauLabs/TauLabs/issues/1676/comments","events_url":"https://api.github.com/repos/TauLabs/TauLabs/issues/1676/events","html_url":"https://github.com/TauLabs/TauLabs/pull/1676","id":89111898,"number":1676,"title":"GCS : Expo settings and plots in Advanced Stabilization","user":{"login":"Trex4Git","id":9142182,"avatar_url":"https://avatars.githubusercontent.com/u/9142182?v=3","gravatar_id":"","url":"https://api.github.com/users/Trex4Git","html_url":"https://github.com/Trex4Git","followers_url":"https://api.github.com/users/Trex4Git/followers","following_url":"https://api.github.com/users/Trex4Git/following{/other_user}","gists_url":"https://api.github.com/users/Trex4Git/gists{/gist_id}","starred_url":"https://api.github.com/users/Trex4Git/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trex4Git/subscriptions","organizations_url":"https://api.github.com/users/Trex4Git/orgs","repos_url":"https://api.github.com/users/Trex4Git/repos","events_url":"https://api.github.com/users/Trex4Git/events{/privacy}","received_events_url":"https://api.github.com/users/Trex4Git/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-06-17T20:07:16Z","updated_at":"2015-06-19T18:57:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/TauLabs/TauLabs/pulls/1676","html_url":"https://github.com/TauLabs/TauLabs/pull/1676","diff_url":"https://github.com/TauLabs/TauLabs/pull/1676.diff","patch_url":"https://github.com/TauLabs/TauLabs/pull/1676.patch"},"body":"As there was the request for doing the Expo setup not only in the ObjectBrowser but also in the configuration widget (Stabilization/Advanced) and i wanted to take take a look at the GCS development and also QT i tried to implement this functionality.\r\n\r\nThe issue with the request: https://github.com/TauLabs/TauLabs/issues/1647\r\nAlso some different versions of the implementation including screenshots  are presented there.\r\nAnd also mentioned earlier here: https://github.com/TauLabs/TauLabs/pull/1493#issuecomment-75871884\r\n\r\nThe scope of this PR:\r\n* making the RateExpo and HorizonExpo setting available in the config widget\r\n* adding plots, that show the result\r\n\t* here i made the decision to plot the stick input not only scaled by the expo function, but also by the \"Full Stick\" setting. As Taulabs uses physical units i think its more informative this way then only plotting the relative scaling like it is done in e.g. in the Taranis or other FC software\r\n* modifying the layout to fit the new elements\r\n\r\nFor the Rate mode (inner loop) i think its easy to understand, but for the HorizonExpo setting shown in the outer loop it gets a bit more complicated.\r\n\r\nIt tried to visualize the information how the the Horizon modes works in a compact format (based on how i understand it from reading the sources). \r\nThe HorizonExpo setting has different effects:\r\n* the mixing for the transition from Attitude to Rate mode (for stick stick inputs from 0 to the threshold value) is  expo scaled\r\n* the \"Horizon Attitude\" input data is also expo scaled  with the HorizonExpo setting (no expo scaling i normal Attitude mode)\r\n* the \"Horizon Rate\" input data is expo scaled with the HorizonExpo setting (scaling in normal Rate mode is done with the RateExpo setting)\r\n\r\nI grouped the HorizonExpo setting and plot to the outer loop panel in the UI layout, but for normal attitude mode the curves might be misleading, as the shown data applies only for normal attitude mode, if the HorizonExpo is set to 0 (which is not the default setting). With using labels on the plot and tooltips i tried to give a better understanding what is shown there.\r\nThis plot shows data only for the Horizon mode, not the Attitude mode: \r\n* For each axis there are 2 curves. One for the\"Horizon Attitude\" part (horizon angle) and in darker color one for the \"Horizon Rate\" part (horizon rate).\r\n* The curves are scaled both with HorizonExpo.\r\n* There are markers on the curves which show the threshold point.\r\n\t* For stick inputs above its purely  the \"Horizon Rate\" mode  with expo scaling by  HorizonExpo.\r\n\t* For stick inputs below there is a dynamic transition from \"Horizon Attitude\" to \"Horizon Rate\" mode. In the example screenshot you can see that for different HorizonExpo settings the threshold value changes its position regarding the normalized stick input on x-axis.\r\n\r\n![gcs_expo_merge_10](https://cloud.githubusercontent.com/assets/9142182/8217281/d7a0464a-153c-11e5-94b0-46fa6bfe6dfa.png)\r\n\r\n\r\nI think its not as easy to understand this plot as the plot for the inner loop, but advanced users should can get information from it that can help tuning the Horizon mode.\r\nAnd as this is in the advanced tab, i think it might be OK to keep the HorizonExpo settings and plot there.\r\n\r\nTo reduce the information in the plots, curves can be disabled/enabled with a click on each legend entry. Maybe especially useful with the 6 curves in the HorizonExpo plot."},"comment":{"url":"https://api.github.com/repos/TauLabs/TauLabs/issues/comments/113606257","html_url":"https://github.com/TauLabs/TauLabs/pull/1676#issuecomment-113606257","issue_url":"https://api.github.com/repos/TauLabs/TauLabs/issues/1676","id":113606257,"user":{"login":"Trex4Git","id":9142182,"avatar_url":"https://avatars.githubusercontent.com/u/9142182?v=3","gravatar_id":"","url":"https://api.github.com/users/Trex4Git","html_url":"https://github.com/Trex4Git","followers_url":"https://api.github.com/users/Trex4Git/followers","following_url":"https://api.github.com/users/Trex4Git/following{/other_user}","gists_url":"https://api.github.com/users/Trex4Git/gists{/gist_id}","starred_url":"https://api.github.com/users/Trex4Git/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trex4Git/subscriptions","organizations_url":"https://api.github.com/users/Trex4Git/orgs","repos_url":"https://api.github.com/users/Trex4Git/repos","events_url":"https://api.github.com/users/Trex4Git/events{/privacy}","received_events_url":"https://api.github.com/users/Trex4Git/received_events","type":"User","site_admin":false},"created_at":"2015-06-19T18:57:38Z","updated_at":"2015-06-19T18:57:38Z","body":"As most of the discussion here was regarding code optimization i am still interested what you think about the 3 effects that the HorizonExpo has, and how the data is visualized.\r\n\r\nBefore the HorizonExpo Parameter was implemented there was no difference between \"Attitude\" and \"Horizon Attitude\" or \"Rate\" and \"Horizon Rate\". \r\nI am not sure if it really was the intention to also scale the \"Horizon Attitude\" and \"Horizon Rate\" curves with HorizonExpo or if only the transition should be scaled: https://github.com/TauLabs/TauLabs/pull/1493\r\n\r\nDo you also would support for such a additional functionality ? https://github.com/TauLabs/TauLabs/pull/1676#issuecomment-112931666"}}