{"action":"created","issue":{"url":"https://api.github.com/repos/PX4/Firmware/issues/9765","repository_url":"https://api.github.com/repos/PX4/Firmware","labels_url":"https://api.github.com/repos/PX4/Firmware/issues/9765/labels{/name}","comments_url":"https://api.github.com/repos/PX4/Firmware/issues/9765/comments","events_url":"https://api.github.com/repos/PX4/Firmware/issues/9765/events","html_url":"https://github.com/PX4/Firmware/pull/9765","id":335735771,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk3MzU5NDE4","number":9765,"title":"ekf2: Add support for use of multiple GPS receivers","user":{"login":"priseborough","id":3596952,"node_id":"MDQ6VXNlcjM1OTY5NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/3596952?v=4","gravatar_id":"","url":"https://api.github.com/users/priseborough","html_url":"https://github.com/priseborough","followers_url":"https://api.github.com/users/priseborough/followers","following_url":"https://api.github.com/users/priseborough/following{/other_user}","gists_url":"https://api.github.com/users/priseborough/gists{/gist_id}","starred_url":"https://api.github.com/users/priseborough/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/priseborough/subscriptions","organizations_url":"https://api.github.com/users/priseborough/orgs","repos_url":"https://api.github.com/users/priseborough/repos","events_url":"https://api.github.com/users/priseborough/events{/privacy}","received_events_url":"https://api.github.com/users/priseborough/received_events","type":"User","site_admin":false},"labels":[{"id":666022583,"node_id":"MDU6TGFiZWw2NjYwMjI1ODM=","url":"https://api.github.com/repos/PX4/Firmware/labels/ekf2","name":"ekf2","color":"1d76db","default":false},{"id":10884840,"node_id":"MDU6TGFiZWwxMDg4NDg0MA==","url":"https://api.github.com/repos/PX4/Firmware/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":706033618,"node_id":"MDU6TGFiZWw3MDYwMzM2MTg=","url":"https://api.github.com/repos/PX4/Firmware/labels/proposal","name":"proposal","color":"d93f0b","default":false}],"state":"open","locked":false,"assignee":{"login":"priseborough","id":3596952,"node_id":"MDQ6VXNlcjM1OTY5NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/3596952?v=4","gravatar_id":"","url":"https://api.github.com/users/priseborough","html_url":"https://github.com/priseborough","followers_url":"https://api.github.com/users/priseborough/followers","following_url":"https://api.github.com/users/priseborough/following{/other_user}","gists_url":"https://api.github.com/users/priseborough/gists{/gist_id}","starred_url":"https://api.github.com/users/priseborough/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/priseborough/subscriptions","organizations_url":"https://api.github.com/users/priseborough/orgs","repos_url":"https://api.github.com/users/priseborough/repos","events_url":"https://api.github.com/users/priseborough/events{/privacy}","received_events_url":"https://api.github.com/users/priseborough/received_events","type":"User","site_admin":false},"assignees":[{"login":"priseborough","id":3596952,"node_id":"MDQ6VXNlcjM1OTY5NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/3596952?v=4","gravatar_id":"","url":"https://api.github.com/users/priseborough","html_url":"https://github.com/priseborough","followers_url":"https://api.github.com/users/priseborough/followers","following_url":"https://api.github.com/users/priseborough/following{/other_user}","gists_url":"https://api.github.com/users/priseborough/gists{/gist_id}","starred_url":"https://api.github.com/users/priseborough/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/priseborough/subscriptions","organizations_url":"https://api.github.com/users/priseborough/orgs","repos_url":"https://api.github.com/users/priseborough/repos","events_url":"https://api.github.com/users/priseborough/events{/privacy}","received_events_url":"https://api.github.com/users/priseborough/received_events","type":"User","site_admin":false}],"milestone":null,"comments":12,"created_at":"2018-06-26T09:33:56Z","updated_at":"2018-06-29T22:49:02Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/PX4/Firmware/pulls/9765","html_url":"https://github.com/PX4/Firmware/pull/9765","diff_url":"https://github.com/PX4/Firmware/pull/9765.diff","patch_url":"https://github.com/PX4/Firmware/pull/9765.patch"},"body":"Submitted in response to  https://github.com/PX4/Firmware/issues/9431\r\n\r\nThis PR  gives ekf2 the ability to use two GPS receivers if available to create a blended solution where the blending weights and position/height offset correction adapts to the reported accuracy. If one receiver loses lock or data, it will automatically switch across to the good receiver.\r\n\r\nBecause a long term position offset is calculated separately for each receiver, switching between either GPS1, GPS2 and the blended solution can be performed without large position and altitude jumps.\r\n\r\nThis feature relies on use of the reported accuracy metrics contained in the vehicle_gps_position.eph, epv and s_variance_m_s messages.  The EKF2_GPS_MASK parameter controls which accuracy metrics are used to set the blending ratios. By default it is zero which disables the blending. If different model receivers are used, they must both have the same update rate and both output the accuracy metrics selected by the EKF2_GPS_MASK parameter. An RTK and non RTK receiver can be used.\r\n\r\nThe EKF2_GPS_TAU parameter controls the time constant used to adjust the position offset that is applied to each GPS solution.\r\n\r\nThe blended GPS solution is published as a third GPS instance and can be found in the log as vehicle_gps_position_2\r\n\r\nBench test log here: https://logs.px4.io/plot_app?log=1bfcfab1-1652-48e3-b349-a42cd493e3cd\r\n\r\nMethod used to log blended GPS to a third instance may not be correct. I am relying on the uORB orb_publish_auto function to correctly assign a new instance.\r\n\r\nNoise on blended lat/lon in log needs investigating. It was not present on logs generated using earlier replay data."},"comment":{"url":"https://api.github.com/repos/PX4/Firmware/issues/comments/401492507","html_url":"https://github.com/PX4/Firmware/pull/9765#issuecomment-401492507","issue_url":"https://api.github.com/repos/PX4/Firmware/issues/9765","id":401492507,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMTQ5MjUwNw==","user":{"login":"hamishwillee","id":5368500,"node_id":"MDQ6VXNlcjUzNjg1MDA=","avatar_url":"https://avatars2.githubusercontent.com/u/5368500?v=4","gravatar_id":"","url":"https://api.github.com/users/hamishwillee","html_url":"https://github.com/hamishwillee","followers_url":"https://api.github.com/users/hamishwillee/followers","following_url":"https://api.github.com/users/hamishwillee/following{/other_user}","gists_url":"https://api.github.com/users/hamishwillee/gists{/gist_id}","starred_url":"https://api.github.com/users/hamishwillee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hamishwillee/subscriptions","organizations_url":"https://api.github.com/users/hamishwillee/orgs","repos_url":"https://api.github.com/users/hamishwillee/repos","events_url":"https://api.github.com/users/hamishwillee/events{/privacy}","received_events_url":"https://api.github.com/users/hamishwillee/received_events","type":"User","site_admin":false},"created_at":"2018-06-29T22:49:02Z","updated_at":"2018-06-29T22:49:02Z","author_association":"CONTRIBUTOR","body":"> @hamish Just one parameter for most applications. There is second time constant parameter controlling how fast the individual GPS offsets are corrected, but I am hoping we can tune that so that 99% of users don't need to touch it.\r\n\r\nThanks. YOu could put in a Note in the param definition itself warning that the feature is still not robust, but you would have to remove it later.\r\n\r\nI suspect users will also need to use a param to turn off whatever is using the port to which you attach the second GPS. ie SYS_COMPANION"}}
{"actor":{"display_login":"hamishwillee"}}