Closed HimGautam closed 2 years ago
Dear HimGautam,
sorry for the late reply.
/mavros/imu/data
are obtained through filtering in the AHRS in Pixhawk. However, the linear acceleration values are raw sensor data. (you can refer mavros QnA 1 and mavros QnA 2)synchronized
? If it's about time, you can either get the closest timestamp or just linearly interpolate the data. (since IMU values can be linearly approximated)w
usually stands for the real part of a quaternion. Because the coordinate systems of IMU and motion capture are different, the w value in the two topics will be different. As for question 3,
I do not know where and how you will use the w
, but the direction perpendicular to gravity is unobservable with the IMU raw sensor data alone.
This is why the general VIO system estimates the state by considering the initial body frame as the world frame after finding the gravity direction first. For VIO performance evaluation, tools such as evo or rpg are mainly used to align ground truth and estimation (using SVD or inverse transformations; you may have to use this way for your work).
Unfortunately, therefore, the direct transformation between motion capture and IMU coordinates is not provided.
Thank you
Hi @zinuok,
Thank you for replying. I am about to implement Extended Kalman Filter using your dataset. While analysing it, I found that your IMU gave the data at a frequency of 100Hz while your Motion Capture System was at 50 Hz. So, suppose I have orientation value O1_MOCAP from motion capture system. Now I want to know which IMU value is the one corresponding to my O1_MOCAP value. In short, I have to reduce the datapoints of IMU such that number of datapoints in IMU and Motion Capture System are the same. So how do I do that?
Dear @HimGautam
In those two ROS messages(IMU and Mocap:GT), you can find the timestamp for each message. Using that, you should compare the time difference between two messages and find the IMU message whose timestamp is nearest to each Mocap time
@HimGautam you can refer to this VINS-Mono code for your synchronization & data association.
If you have any other questions or comments, please feel free to re-open this issue :)
Sincerely, Jinwoo Jeon
Hi @zinuok, While implementing EKF for attitude estimation, I encountered the matrices Q (process covariance) and R (measurement covariance). I read somewhere that R matrix comes with the IMU. So can you tell me the R matrix values. Also, it will be really helpful if you can help me with Q matrix also.
Thanks, Himanshu
@HimGautam Actually, I have no experience in implementing EKF. So the followings are just my recommendations.
for R, If your measurements are only from IMU in your system, you can refer to imu-parameters for our dataset.
for Q, because it depends on the system structure, there's not much advice I can give you. It may be necessary to tune while adjusting the value.
However, I can give you an example repository which implemented EKF attitude estimation from IMU data: EKF-attitude
So I am using the acceleration values as measurement. I've use the covariance matrix as the covariance of acceleration but its not working. What should be the initial value of Q? Also, what coordinate system have you used. Is it North East Down (NED) or is it East North Up (ENU) ?
Sorry for the late replay, the IMU in our ROS bag is recorded via MAVROS, which translates NED frames for usual aerospace system to ENU frames for ROS.
Hi, I am trying to write ekf using your dataset. I had a few queries about your dataset:
Thanks Himanshu