{
  "id": 217146,
  "title": "How to predict position from IMU data?",
  "url": "/competitions/indoor-location-navigation/discussion/217146",
  "author_name": "ibraheemmoosa",
  "post_date": "2021-02-05T13:47:14.844000",
  "votes": 9,
  "comment_count": 5,
  "views": 0,
  "content": "<p>It seems to me that as the first step in this competition we need to find good approaches to determining position from IMU (Accelerometer and Gyroscope) data, given the initial position. </p>\n<p>IMU data are generally very noisy. So simple integration of accelerometer data gives bad results. Also as far as I know accelerometer data is given with respect to the device frame of reference. Using the Gyroscope data we have to determine device orientation and convert accelerometer data to a general frame of reference. </p>\n<p>I would like to discuss what the state of the art is in this problem.  Let us share whatever resources we can find on this topic. </p>\n<p>After searching a bit I found this <a href=\"https://arxiv.org/pdf/1704.06053.pdf\" target=\"_blank\">paper</a>.</p>",
  "messages": [
    {
      "id": 1187508,
      "postDate": "2021-02-05T13:47:14.843Z",
      "content": "<p>It seems to me that as the first step in this competition we need to find good approaches to determining position from IMU (Accelerometer and Gyroscope) data, given the initial position. </p>\n<p>IMU data are generally very noisy. So simple integration of accelerometer data gives bad results. Also as far as I know accelerometer data is given with respect to the device frame of reference. Using the Gyroscope data we have to determine device orientation and convert accelerometer data to a general frame of reference. </p>\n<p>I would like to discuss what the state of the art is in this problem.  Let us share whatever resources we can find on this topic. </p>\n<p>After searching a bit I found this <a href=\"https://arxiv.org/pdf/1704.06053.pdf\" target=\"_blank\">paper</a>.</p>",
      "rawMarkdown": "It seems to me that as the first step in this competition we need to find good approaches to determining position from IMU (Accelerometer and Gyroscope) data, given the initial position. \n\nIMU data are generally very noisy. So simple integration of accelerometer data gives bad results. Also as far as I know accelerometer data is given with respect to the device frame of reference. Using the Gyroscope data we have to determine device orientation and convert accelerometer data to a general frame of reference. \n\nI would like to discuss what the state of the art is in this problem.  Let us share whatever resources we can find on this topic. \n\nAfter searching a bit I found this [paper](https://arxiv.org/pdf/1704.06053.pdf).",
      "votes": 9
    },
    {
      "id": 1191979,
      "postDate": "2021-02-08T20:31:15.137Z",
      "content": "<p>Hi,</p>\n<p>Directly copy-paste from <a href=\"https://developer.android.com/guide/topics/sensors/sensors_motion#sensors-raw-data\" target=\"_blank\">here</a></p>\n<p>Conceptually, an acceleration sensor determines the acceleration that is applied to a device (Ad) by measuring the forces that are applied to the sensor itself (Fs) using the following relationship:</p>\n<p>$$ A_D = -(\\frac{1}{mass})\\sum{F_S}$$</p>\n<p>However, the force of gravity is always influencing the measured acceleration according to the following relationship:</p>\n<p>$$A_D = -g -(\\frac{1}{mass})\\sum{F_S}$$</p>\n<p>For this reason, when the device is sitting on a table and not accelerating, the accelerometer reads a magnitude of g = 9.81 m/s2. Similarly, when the device is in free fall and therefore rapidly accelerating toward the ground at 9.81 m/s2, its accelerometer reads a magnitude of g = 0 m/s2. Therefore, to measure the real acceleration of the device, the contribution of the force of gravity must be removed from the accelerometer data.</p>\n<p>It seems that the raw accelerometer data might require some correction before use.</p>",
      "rawMarkdown": "Hi,\n\nDirectly copy-paste from [here](https://developer.android.com/guide/topics/sensors/sensors_motion#sensors-raw-data)\n\nConceptually, an acceleration sensor determines the acceleration that is applied to a device (Ad) by measuring the forces that are applied to the sensor itself (Fs) using the following relationship:\n\n$$ A\\_D = -(\\frac{1}{mass})\\sum{F\\_S}$$\n\nHowever, the force of gravity is always influencing the measured acceleration according to the following relationship:\n\n$$A\\_D = -g -(\\frac{1}{mass})\\sum{F\\_S}$$\n\nFor this reason, when the device is sitting on a table and not accelerating, the accelerometer reads a magnitude of g = 9.81 m/s2. Similarly, when the device is in free fall and therefore rapidly accelerating toward the ground at 9.81 m/s2, its accelerometer reads a magnitude of g = 0 m/s2. Therefore, to measure the real acceleration of the device, the contribution of the force of gravity must be removed from the accelerometer data.\n\n\nIt seems that the raw accelerometer data might require some correction before use.",
      "votes": 1,
      "replies": [
        {
          "id": 1244160,
          "postDate": "2021-03-18T18:17:15.670Z",
          "rawMarkdown": "",
          "votes": 1,
          "isDeleted": true
        }
      ]
    },
    {
      "id": 1187795,
      "postDate": "2021-02-05T18:10:17.537Z",
      "content": "<p>Hey, I made a notebook that should get you started!<br>\n<a href=\"https://www.kaggle.com/hrshtt/intro-to-kalman-filters-and-imus\" target=\"_blank\">https://www.kaggle.com/hrshtt/intro-to-kalman-filters-and-imus</a><br>\nHowever, am fairly novice at the topic, so do keep some caution.</p>",
      "rawMarkdown": "Hey, I made a notebook that should get you started!\nhttps://www.kaggle.com/hrshtt/intro-to-kalman-filters-and-imus\nHowever, am fairly novice at the topic, so do keep some caution.",
      "votes": 2
    },
    {
      "id": 1235073,
      "postDate": "2021-03-11T19:44:27.233Z",
      "content": "<p>I have not been able to find a reasonable visualization for dead reckoning using the IMU values. The values are noisy for sure but we should still be able to generate some kind of a trajectory using dead reckoning. On the other hand, plotting magnetometer values generates a trajectory that looks similar to the ground truth; which is quite interesting.</p>",
      "rawMarkdown": "I have not been able to find a reasonable visualization for dead reckoning using the IMU values. The values are noisy for sure but we should still be able to generate some kind of a trajectory using dead reckoning. On the other hand, plotting magnetometer values generates a trajectory that looks similar to the ground truth; which is quite interesting."
    },
    {
      "id": 1201779,
      "postDate": "2021-02-15T16:45:19.667Z",
      "content": "<p>design an observer should suffice. I can help and join your team.</p>",
      "rawMarkdown": "design an observer should suffice. I can help and join your team."
    }
  ],
  "comments": [
    {
      "id": 1191979,
      "author_name": "Sinan Calisir",
      "author_url": "",
      "post_date": "2021-02-08T20:31:15.137000",
      "content": "<p>Hi,</p>\n<p>Directly copy-paste from <a href=\"https://developer.android.com/guide/topics/sensors/sensors_motion#sensors-raw-data\" target=\"_blank\">here</a></p>\n<p>Conceptually, an acceleration sensor determines the acceleration that is applied to a device (Ad) by measuring the forces that are applied to the sensor itself (Fs) using the following relationship:</p>\n<p>$$ A_D = -(\\frac{1}{mass})\\sum{F_S}$$</p>\n<p>However, the force of gravity is always influencing the measured acceleration according to the following relationship:</p>\n<p>$$A_D = -g -(\\frac{1}{mass})\\sum{F_S}$$</p>\n<p>For this reason, when the device is sitting on a table and not accelerating, the accelerometer reads a magnitude of g = 9.81 m/s2. Similarly, when the device is in free fall and therefore rapidly accelerating toward the ground at 9.81 m/s2, its accelerometer reads a magnitude of g = 0 m/s2. Therefore, to measure the real acceleration of the device, the contribution of the force of gravity must be removed from the accelerometer data.</p>\n<p>It seems that the raw accelerometer data might require some correction before use.</p>",
      "votes": 1,
      "replies": [
        {
          "id": 1244160,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-03-18T18:17:15.670000",
          "content": "",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1187795,
      "author_name": "harshit sharma",
      "author_url": "",
      "post_date": "2021-02-05T18:10:17.537000",
      "content": "<p>Hey, I made a notebook that should get you started!<br>\n<a href=\"https://www.kaggle.com/hrshtt/intro-to-kalman-filters-and-imus\" target=\"_blank\">https://www.kaggle.com/hrshtt/intro-to-kalman-filters-and-imus</a><br>\nHowever, am fairly novice at the topic, so do keep some caution.</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 1235073,
      "author_name": "Burak M. Gonultas",
      "author_url": "",
      "post_date": "2021-03-11T19:44:27.233000",
      "content": "<p>I have not been able to find a reasonable visualization for dead reckoning using the IMU values. The values are noisy for sure but we should still be able to generate some kind of a trajectory using dead reckoning. On the other hand, plotting magnetometer values generates a trajectory that looks similar to the ground truth; which is quite interesting.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1201779,
      "author_name": "Huawei Zhu",
      "author_url": "",
      "post_date": "2021-02-15T16:45:19.667000",
      "content": "<p>design an observer should suffice. I can help and join your team.</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1187508": "It seems to me that as the first step in this competition we need to find good approaches to determining position from IMU (Accelerometer and Gyroscope) data, given the initial position. \n\nIMU data are generally very noisy. So simple integration of accelerometer data gives bad results. Also as far as I know accelerometer data is given with respect to the device frame of reference. Using the Gyroscope data we have to determine device orientation and convert accelerometer data to a general frame of reference. \n\nI would like to discuss what the state of the art is in this problem.  Let us share whatever resources we can find on this topic. \n\nAfter searching a bit I found this [paper](https://arxiv.org/pdf/1704.06053.pdf).",
    "1191979": "Hi,\n\nDirectly copy-paste from [here](https://developer.android.com/guide/topics/sensors/sensors_motion#sensors-raw-data)\n\nConceptually, an acceleration sensor determines the acceleration that is applied to a device (Ad) by measuring the forces that are applied to the sensor itself (Fs) using the following relationship:\n\n$$ A\\_D = -(\\frac{1}{mass})\\sum{F\\_S}$$\n\nHowever, the force of gravity is always influencing the measured acceleration according to the following relationship:\n\n$$A\\_D = -g -(\\frac{1}{mass})\\sum{F\\_S}$$\n\nFor this reason, when the device is sitting on a table and not accelerating, the accelerometer reads a magnitude of g = 9.81 m/s2. Similarly, when the device is in free fall and therefore rapidly accelerating toward the ground at 9.81 m/s2, its accelerometer reads a magnitude of g = 0 m/s2. Therefore, to measure the real acceleration of the device, the contribution of the force of gravity must be removed from the accelerometer data.\n\n\nIt seems that the raw accelerometer data might require some correction before use.",
    "1187795": "Hey, I made a notebook that should get you started!\nhttps://www.kaggle.com/hrshtt/intro-to-kalman-filters-and-imus\nHowever, am fairly novice at the topic, so do keep some caution.",
    "1235073": "I have not been able to find a reasonable visualization for dead reckoning using the IMU values. The values are noisy for sure but we should still be able to generate some kind of a trajectory using dead reckoning. On the other hand, plotting magnetometer values generates a trajectory that looks similar to the ground truth; which is quite interesting.",
    "1201779": "design an observer should suffice. I can help and join your team."
  }
}