How do I correct sensor drift from external environment?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I have an electromagnetic sensor which reports how much electromagnetic field strength it reads in space.
And I also have a device that emits electromagnetic field. It covers 1 meter area.



So I want to kind of predict position of the sensor using its reading.
But the sensor is affected by metal so it makes the position prediction drifts.



It's like if the reading is 1, and you put it near a metal, you get 2.
Something like that. It's not just noise, it's a permanent drift. Unless you remove the metal it will give reading 2 always.



What are the techniques or topics I need to learn in general to recover reading 1 from 2?
Suppose that the metal is fixed somewhere in space and I can calibrate the sensor by putting it near metal first.



You can suggest anything about removing the drift in general. Also please consider that I can have another emitter putting somewhere so I should be able to recover the true reading easier.










share|improve this question































    0















    I have an electromagnetic sensor which reports how much electromagnetic field strength it reads in space.
    And I also have a device that emits electromagnetic field. It covers 1 meter area.



    So I want to kind of predict position of the sensor using its reading.
    But the sensor is affected by metal so it makes the position prediction drifts.



    It's like if the reading is 1, and you put it near a metal, you get 2.
    Something like that. It's not just noise, it's a permanent drift. Unless you remove the metal it will give reading 2 always.



    What are the techniques or topics I need to learn in general to recover reading 1 from 2?
    Suppose that the metal is fixed somewhere in space and I can calibrate the sensor by putting it near metal first.



    You can suggest anything about removing the drift in general. Also please consider that I can have another emitter putting somewhere so I should be able to recover the true reading easier.










    share|improve this question



























      0












      0








      0








      I have an electromagnetic sensor which reports how much electromagnetic field strength it reads in space.
      And I also have a device that emits electromagnetic field. It covers 1 meter area.



      So I want to kind of predict position of the sensor using its reading.
      But the sensor is affected by metal so it makes the position prediction drifts.



      It's like if the reading is 1, and you put it near a metal, you get 2.
      Something like that. It's not just noise, it's a permanent drift. Unless you remove the metal it will give reading 2 always.



      What are the techniques or topics I need to learn in general to recover reading 1 from 2?
      Suppose that the metal is fixed somewhere in space and I can calibrate the sensor by putting it near metal first.



      You can suggest anything about removing the drift in general. Also please consider that I can have another emitter putting somewhere so I should be able to recover the true reading easier.










      share|improve this question
















      I have an electromagnetic sensor which reports how much electromagnetic field strength it reads in space.
      And I also have a device that emits electromagnetic field. It covers 1 meter area.



      So I want to kind of predict position of the sensor using its reading.
      But the sensor is affected by metal so it makes the position prediction drifts.



      It's like if the reading is 1, and you put it near a metal, you get 2.
      Something like that. It's not just noise, it's a permanent drift. Unless you remove the metal it will give reading 2 always.



      What are the techniques or topics I need to learn in general to recover reading 1 from 2?
      Suppose that the metal is fixed somewhere in space and I can calibrate the sensor by putting it near metal first.



      You can suggest anything about removing the drift in general. Also please consider that I can have another emitter putting somewhere so I should be able to recover the true reading easier.







      machine-learning sensor drift






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 4 at 0:23







      off99555

















      asked Jan 4 at 0:18









      off99555off99555

      1,0301417




      1,0301417
























          1 Answer
          1






          active

          oldest

          votes


















          1














          Let me suggest that you view your sensor output as a combination of two factors:



          sensor_output = emitter_effect + environment_effect


          And you want to obtain emitter_effect without the addition of environment_effect. So, of course you need to subtract:



          emitter_effect = sensor_output - environment_effect 


          Subtracting the environment's effect on your sensor is usually called compensation. In order to compensate, you need to be able to model or predict the effect your environment (extra metal floating around) is having on the sensor. The form of the model for your environment effect can be very simple or very complex.



          Simple methods generally use a seperate sensor to estimate environment_effect. I'm not sure exactly what your scenario is, but you may be able to select a sensor which would independently measure the quantity of interference (metal) in your setup.



          More complex methods can perform compensation without referring to an independent sensor for measuring inteference. For example, if you expect the distance to be at 10.0 on average with only occasional deviations, you could use that fact to estimate how much interference is present. In my experience, this type of method is less reliable; systems with independent sensors for measuring interference are more predictable and reliable.



          You can start reading about Kalman filtering if you're interested in model-based estimation:



          https://en.wikipedia.org/wiki/Kalman_filter



          It's a complex topic, so you should expect a steep learning curve. Kalman filtering (and related Bayesian estimation methods) are the formal way to convert from "bad sensor reading" to "corrected sensor reading".






          share|improve this answer
























          • I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

            – off99555
            Jan 4 at 1:15












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54031594%2fhow-do-i-correct-sensor-drift-from-external-environment%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Let me suggest that you view your sensor output as a combination of two factors:



          sensor_output = emitter_effect + environment_effect


          And you want to obtain emitter_effect without the addition of environment_effect. So, of course you need to subtract:



          emitter_effect = sensor_output - environment_effect 


          Subtracting the environment's effect on your sensor is usually called compensation. In order to compensate, you need to be able to model or predict the effect your environment (extra metal floating around) is having on the sensor. The form of the model for your environment effect can be very simple or very complex.



          Simple methods generally use a seperate sensor to estimate environment_effect. I'm not sure exactly what your scenario is, but you may be able to select a sensor which would independently measure the quantity of interference (metal) in your setup.



          More complex methods can perform compensation without referring to an independent sensor for measuring inteference. For example, if you expect the distance to be at 10.0 on average with only occasional deviations, you could use that fact to estimate how much interference is present. In my experience, this type of method is less reliable; systems with independent sensors for measuring interference are more predictable and reliable.



          You can start reading about Kalman filtering if you're interested in model-based estimation:



          https://en.wikipedia.org/wiki/Kalman_filter



          It's a complex topic, so you should expect a steep learning curve. Kalman filtering (and related Bayesian estimation methods) are the formal way to convert from "bad sensor reading" to "corrected sensor reading".






          share|improve this answer
























          • I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

            – off99555
            Jan 4 at 1:15
















          1














          Let me suggest that you view your sensor output as a combination of two factors:



          sensor_output = emitter_effect + environment_effect


          And you want to obtain emitter_effect without the addition of environment_effect. So, of course you need to subtract:



          emitter_effect = sensor_output - environment_effect 


          Subtracting the environment's effect on your sensor is usually called compensation. In order to compensate, you need to be able to model or predict the effect your environment (extra metal floating around) is having on the sensor. The form of the model for your environment effect can be very simple or very complex.



          Simple methods generally use a seperate sensor to estimate environment_effect. I'm not sure exactly what your scenario is, but you may be able to select a sensor which would independently measure the quantity of interference (metal) in your setup.



          More complex methods can perform compensation without referring to an independent sensor for measuring inteference. For example, if you expect the distance to be at 10.0 on average with only occasional deviations, you could use that fact to estimate how much interference is present. In my experience, this type of method is less reliable; systems with independent sensors for measuring interference are more predictable and reliable.



          You can start reading about Kalman filtering if you're interested in model-based estimation:



          https://en.wikipedia.org/wiki/Kalman_filter



          It's a complex topic, so you should expect a steep learning curve. Kalman filtering (and related Bayesian estimation methods) are the formal way to convert from "bad sensor reading" to "corrected sensor reading".






          share|improve this answer
























          • I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

            – off99555
            Jan 4 at 1:15














          1












          1








          1







          Let me suggest that you view your sensor output as a combination of two factors:



          sensor_output = emitter_effect + environment_effect


          And you want to obtain emitter_effect without the addition of environment_effect. So, of course you need to subtract:



          emitter_effect = sensor_output - environment_effect 


          Subtracting the environment's effect on your sensor is usually called compensation. In order to compensate, you need to be able to model or predict the effect your environment (extra metal floating around) is having on the sensor. The form of the model for your environment effect can be very simple or very complex.



          Simple methods generally use a seperate sensor to estimate environment_effect. I'm not sure exactly what your scenario is, but you may be able to select a sensor which would independently measure the quantity of interference (metal) in your setup.



          More complex methods can perform compensation without referring to an independent sensor for measuring inteference. For example, if you expect the distance to be at 10.0 on average with only occasional deviations, you could use that fact to estimate how much interference is present. In my experience, this type of method is less reliable; systems with independent sensors for measuring interference are more predictable and reliable.



          You can start reading about Kalman filtering if you're interested in model-based estimation:



          https://en.wikipedia.org/wiki/Kalman_filter



          It's a complex topic, so you should expect a steep learning curve. Kalman filtering (and related Bayesian estimation methods) are the formal way to convert from "bad sensor reading" to "corrected sensor reading".






          share|improve this answer













          Let me suggest that you view your sensor output as a combination of two factors:



          sensor_output = emitter_effect + environment_effect


          And you want to obtain emitter_effect without the addition of environment_effect. So, of course you need to subtract:



          emitter_effect = sensor_output - environment_effect 


          Subtracting the environment's effect on your sensor is usually called compensation. In order to compensate, you need to be able to model or predict the effect your environment (extra metal floating around) is having on the sensor. The form of the model for your environment effect can be very simple or very complex.



          Simple methods generally use a seperate sensor to estimate environment_effect. I'm not sure exactly what your scenario is, but you may be able to select a sensor which would independently measure the quantity of interference (metal) in your setup.



          More complex methods can perform compensation without referring to an independent sensor for measuring inteference. For example, if you expect the distance to be at 10.0 on average with only occasional deviations, you could use that fact to estimate how much interference is present. In my experience, this type of method is less reliable; systems with independent sensors for measuring interference are more predictable and reliable.



          You can start reading about Kalman filtering if you're interested in model-based estimation:



          https://en.wikipedia.org/wiki/Kalman_filter



          It's a complex topic, so you should expect a steep learning curve. Kalman filtering (and related Bayesian estimation methods) are the formal way to convert from "bad sensor reading" to "corrected sensor reading".







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 4 at 0:52









          afarleyafarley

          16010




          16010













          • I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

            – off99555
            Jan 4 at 1:15



















          • I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

            – off99555
            Jan 4 at 1:15

















          I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

          – off99555
          Jan 4 at 1:15





          I know Kalman filter on a basic level where I use it as just a smoother. So to me, it's like a function that takes in time series and output smoothed time series. So if the input is already drifting, it won't know how to cancel the drift. I've not learned about how to fuse many sensors using Kalman yet so can't say much. But thanks for suggestions, I will look into it.

          – off99555
          Jan 4 at 1:15




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54031594%2fhow-do-i-correct-sensor-drift-from-external-environment%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Monofisismo

          Angular Downloading a file using contenturl with Basic Authentication

          Olmecas