Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accelerometer bias exceeding 3-sigma bound even when other results seem fine. #680

Open
TakShimoda opened this issue Apr 16, 2024 · 0 comments

Comments

@TakShimoda
Copy link

Hello, I'm doing stereo-imu calibration on a realsense d435i. I use the infra1 and infra2 topics from the camera at 848x480 resolution and 30fps for stereo, and get the IMU data at 400Hz. I'm using the 6x6 april grid as the target.

Here's what I did:

  1. realsense imu calibration. I calibrated the imu inside the d435i to account for the intrinsics and biases so it reads close to [0, -9.81, 0] at rest in the xyz axes (using the realsense coordinates where y is opposite of gravity).
  2. Allan Variance ROS, where I placed the IMU at rest for 20 hours, and followed the same steps in the repository. The result of imu.yaml is:
#white - inflate 5x
#randomwalk - inflate 10x
#=========Original data======== 
# #Accelerometer
# accelerometer_noise_density: 0.0016366054249606224 
# accelerometer_random_walk: 7.976531501174554e-05 

# #Gyroscope
# gyroscope_noise_density: 0.00021995795281750234 
# gyroscope_random_walk: 2.882662305656072e-06 

#Accelerometer
accelerometer_noise_density: 0.008183027 
accelerometer_random_walk: 7.976531501174554e-04 

#Gyroscope
gyroscope_noise_density: 0.00109979
gyroscope_random_walk: 2.882662305656072e-05 

rostopic: '/camera/imu' #Make sure this is correct
update_rate: 400.0 #Make sure this is correct
  • I commented out the original values and inflated white noise 5x and random walk 10x according to Patrick Geneva's tutorial which also used the d435i.
  1. I then performed the camera calibration and the camera-imu calibration where I tried to excite multiple axes each time throughout the recording. The camera calibration resulted in reprojection errors at about 1 pixel and a Gaussian distribution. For the camera-imu, I do get the reprojection error for both cameras mostly within the 3 sigma bound as shown:
    image
    image

However, the accelerometer bias exceeds the 3-sigma bound in one of the axes shown below:
image

I was wondering if I should inflate the accelerometer noise even more in the imu.yaml file that's given by allan-variance-ros, or if I should try another recording? The 3-sigma bound for the accelerometer already seems pretty large. I tried a separate recording where I excited each of the 6 axes individually, but got worse results, where the biases significantly exceeded the 3-sigma bound in two axes, and I tend to notice accurate results in the report are heavily reliant on a good recording. I also try to move the camera as slowly as possible to avoid jitters. The only thing I notice in my recordings is that sometimes, the checker board falls out of the screen, but I think kalibr ignores those frames.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant