Hi, could someone help me with the proper rotation setup for a forward facing camera running LSD-SLAM on a MAV with a Pixhawk?
The IMU data is coming in at 50Hz, x is positive forward, y is positive left, z is positive up. For LSD-SLAM I have output on a PoseStampedWithCovariance topic, though I disregard the covariance and use a fixed one. The camera is mounted at the fron facing forward. Z positive is forward, x positive is right and y positive is down.
--> Does q_ic essentially stand for the rotation such that I rotate the LSD frame until its coordinate axes align with those of the IMU? In this case, this would mean either:
pose_sensor/init/q_ic/w: 0.5
pose_sensor/init/q_ic/x: 0.5
pose_sensor/init/q_ic/y: 0.5
pose_sensor/init/q_ic/z: 0.5
or:
pose_sensor/init/q_ic/w: 0.5
pose_sensor/init/q_ic/x: -0.5
pose_sensor/init/q_ic/y: -0.5
pose_sensor/init/q_ic/z: -0.5
based on whether I rotate the IMU into the camera frame, or the camera into the IMU frame.... which one is correct?
Also, no matter what rotation I have, I always get this warning: (a lot of those warnings)
[ WARN] [1419351729.086496805]: Wanted to insert a value to the sorted container at time 1419351728.914192200 but the map already contained a value at this time. discarding.
and also no output on the pose topic... I know I'm doing something very basic and fundamental wrong. Maybe someone can help me out...Thanks!
Marc
PS: here's the full sensor config:
data_playback: false
core/core_fixed_bias: false
###IMU PARAMETERS
# PIXHAWK
core/core_noise_acc: 0.013
core/core_noise_accbias: 0.000108
core/core_noise_gyr: 0.00065
core/core_noise_gyrbias: 0.00000212
pose_sensor/pose_fixed_scale: false
pose_sensor/pose_noise_scale: 0.0
pose_sensor/pose_noise_p_wv: 0.0
pose_sensor/pose_noise_q_wv: 0.0
pose_sensor/pose_noise_q_ic: 0.0
pose_sensor/pose_noise_p_ic: 0.0
pose_sensor/pose_delay: 0.02
pose_sensor/pose_noise_meas_p: 0.005
pose_sensor/pose_noise_meas_q: 0.02
pose_sensor/pose_initial_scale: 1
#initialization of camera w.r.t. IMU
pose_sensor/init/q_ic/w: 0.5
pose_sensor/init/q_ic/x: -0.5
pose_sensor/init/q_ic/y: -0.5
pose_sensor/init/q_ic/z: -0.5
pose_sensor/init/p_ic/x: 0.02
pose_sensor/init/p_ic/y: 0.0
pose_sensor/init/p_ic/z: 0.01
pose_sensor/pose_absolute_measurements: true
pose_sensor/pose_use_fixed_covariance: true
pose_sensor/pose_measurement_world_sensor: false
pose_sensor/pose_fixed_scale: false
pose_sensor/pose_fixed_p_ic: true
pose_sensor/pose_fixed_q_ic: true
pose_sensor/pose_fixed_p_wv: false
pose_sensor/pose_fixed_q_wv: false
and the initial output after initializing over rqt_reconfigure:
[ INFO] [1419351728.873066700]: initial measurement pos:[ 0.0134631 -0.0297135 -0.105087] orientation: [0.999, -0.00101, 0.038, 0.0128]
[ WARN] [1419351729.010553487]: Using simulated core plus fixed diag initial error state covariance.
[ INFO] [1419351729.020954716]: Initializing msf_core (built: Dec 23 2014)
[ INFO] [1419351729.021107834]: Core parameters:
fixed_bias: 0
fuzzythres: 0.1
noise_acc: 0.013
noise_accbias: 0.000108
noise_gyr: 0.00065
noise_gyrbias: 2.12e-06
[ INFO] [1419351729.021295650]: Core init with state:
--------- State at time 1728.91s: ---------
0 : [0-2] : Matrix<3, 1> : [0.00400788 -0.0499617 -0.104307]
1 : [3-5] : Matrix<3, 1> : [0 0 0]
2 : [6-9] : Quaternion (w,x,y,z) : [0.475, 0.512, 0.525, 0.487]
3 : [10-12] : Matrix<3, 1> : [0 0 0]
4 : [13-15] : Matrix<3, 1> : [0 0 0]
5 : [16-16] : Matrix<1, 1> : [1]
6 : [17-20] : Quaternion (w,x,y,z) : [1, 0, 0, 0]
7 : [21-23] : Matrix<3, 1> : [0 0 0]
8 : [24-27] : Quaternion (w,x,y,z) : [0.5, -0.5, -0.5, -0.5]
9 : [28-30] : Matrix<3, 1> : [0.02 0 0.01]