I have a quadcopter, and several components in play. First, I have a real position system (VICON), and I also have a SLAM platform. Then, of course, the IMU on the quadcoptor. I am trying to implement my control system which is heavily dependent on VICON to be dependent on the SLAM data instead.

My SLAM data is not as accurate as the VICON nor are its update as timely. (ie: VICON 100hz, SLAM 1hz on a Pi, 10hz on a laptop).

What I am trying to do is estimate my position using the on-board IMU data. Using an EKF, I would like to then use the SLAM data for the correction step. My hope is that somewhere between the two of these I can get a reasonable position to fly (and map with).

Where I am having some trouble is figuring out how to use the sensors to estimate some kind of position. My thinking is I will take that into my EKF for the estimation step.

Appreciate any insight into accomplishing this goal.

  • 1
    $\begingroup$ In general you can't do position control with only an IMU, since the position estimate will drift. You need some sort of position update, that being either VICON,GPS or a computer vision/LIDAR SLAM system. $\endgroup$
    – edwinem
    Dec 15, 2019 at 17:12

1 Answer 1


Usually SLAM needs some kind of a localization to build the map. I'm not clear what kind of a method you are using for SLAM. But for your question, you can estimate the position from your IMU measurements. Usually state vector for a quadcopter contains x,y,z position data and roll,pitch and yaw. Inserting angular rates or linear velocities is optional. I assume you have a basic knowledge on EKF. You can calculate the state transition matrix using your state matrix. Accelerations can be inserted to the control input matrix.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.