Is Imu of Pixhawk reliable enough to do slam independently?

I have been working on slam using Holybro Pixhawk 6c for a few months.

I am planning to use pixhawk to do slam without gps module and realsense depth camera.

Howvever, I found that the position (x, y and z) from uorb topic “vehicle_odometry” was lower than 1 meters even I walked to 22 meters away from the initial position.

Apart from that, I have also tested the velocity without gps module. When I was walking toward North direction. The vx of “vehicle_odometry” increased to more than1 m/s when I was walking and it decreased to less than -1 m/s then I stopped suddenly.

The only accurate thing for the IMU is the orientation.

When the pixhawk is connected to gps module, the position and velocity are also working as expected.

I also found that all the document related to odometry in PX4-Autopilot is related to “Visual Inertial Odometry” which can work without gps but realsense depth camera is necessary.

Hence, I want to know whether it is possible to do slam accurately with only holybro pixhawk 6c. After knowing that IMU position is inaccurate, I had tried to calculate the position (t) using “x = x_(t-1) + vx_(t-1)dt”. However, it is still not working well and it may be due to inaccurate IMU velocity.

If it is impossible to do slam with only holybro pixhawk 6c, I would like to change to use another imu sensor as soon as possible.

Do I understand correctly that you want to do SLAM using only an IMU and nothing else?

I don’t think it is possible to do SLAM without some other kind of sensor as well, but would be very interested to hear more about it if you manage to do it only using IMU.

Yes, I am trying to do slam using only IMU. If the IMU is accurate enough to prove correct position, linear velocity, orientation and angular rate, it should be able to do it using EKF, tf2 and slam_toolbox.

All the ros2 nodes I need is already here and everything is working in simulation but it is not working on hardware because the position data and velocity data given by pixhawk is not accurate.

Seems like quite a challenge. From what I understand IMUs generally drift too much to be able to do SLAM without extra sensors. But if you go for it, I would definitely suggest going with an external IMU, since the Pixhawks are not the best IMUs and are mostly used for short-term estimations.

1 Like