-
Notifications
You must be signed in to change notification settings - Fork 162
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
Coordinate system confusion #20
Comments
Hi, Markus From: crazyboyyy <[email protected]mailto:[email protected]> Hi Stephan, I'm a graduate student from China, working on autonomous quadrotor. Your published masterpieces & software packs are really helpful and they are guiding our research. Recently we got a confusion about the coordinate system using in "Ethzasl_sensor_fusion" package. As the user manual provided by AscTEC(http://www.asctec.de/downloads/manuals/AscTec_SDK2.0_Manual_V1.1.pdf), a NED coordinate system is used. However, in the "dataset.bag" posted on the ROS website, the acc-z reading is positive +9.8 when the replay started, it seems to be a ENU to us. We've tried them all, making our homemade flight control board sending raw IMU readings in each coordinate system, if we are sending in NED, after initializing, there is always a warning message, indicating a "fuzzy tracking", and sometimes a "negative scale detected" warning. On the other hand, the ENU one seems to be OK without any warning message. In your thesis, the body-fixed coordinate of IMU is not a right-handed Cartesian coordinate, is that the old-style coordinate used by Asctec? Moreover, except for the world cooridnate, the other coordinates are all polted in left-handed, can you give some hint about it? Zhang Xu — |
Hi, Thank you for using our framework - I am happy to hear that it helps in your research. Markus' answer should cover your first question. Let us know if we can help in any further issues. Best From: crazyboyyy [[email protected]] Hi Stephan, I'm a graduate student from China, working on autonomous quadrotor. Your published masterpieces & software packs are really helpful and they are guiding our research. Recently we got a confusion about the coordinate system using in "Ethzasl_sensor_fusion" package. As the user manual provided by AscTEC(http://www.asctec.de/downloads/manuals/AscTec_SDK2.0_Manual_V1.1.pdf), a NED coordinate system is used. However, in the "dataset.bag" posted on the ROS website, the acc-z reading is positive +9.8 when the replay started, it seems to be a ENU to us. We've tried them all, making our homemade flight control board sending raw IMU readings in each coordinate system, if we are sending in NED, after initializing, there is always a warning message, indicating a "fuzzy tracking", and sometimes a "negative scale detected" warning. On the other hand, the ENU one seems to be OK without any warning message. In your thesis, the body-fixed coordinate of IMU is not a right-handed Cartesian coordinate, is that the old-style coordinate used by Asctec? Moreover, except for the world cooridnate, the other coordinates are all polted in left-handed, can you give some hint about it? Zhang Xu — |
Dear Sir, But we still have some difficulties in the coordinate systems . First , the vslam coordinate system going into ROS is ENU , but the direction of x/y is relevant with the manual initialization procedure . Is it right ? Second , we do not have the Plican quadrotor , so we use our own IMU in a NED coordinate system , What should we do to convert our IMU coordinate for ROS ? Meihui Cao, from Tianjin University, CHINA |
We setup our IMU in ENU coordinate, and we got rostopic echo /fcu/raw/imu frame_id: fcu rostopic echo /vslam/pose we got: roslaunch ssf_updates pose_sensor.launch rostopic echo /ssf_core/pose we got: |
And then we setup our IMU in NEU coordinate, and we got no warning any more: frame_id: fcu rostopic echo /vslam/pose we got: frame_id: usb_cam rostopic echo /ssf_core/pose we got: frame_id: '' |
Hi Markus: We don't have HLP on board, and we tried to transfer our own "/fcu/raw/imu" directly to "ssf_core“ together with /vslam/pose. if "/fcu/raw/imu" is in ENU(positive in Z-acc), we got warning and unstable position reading. But in NED(negative in Z-acc), everything seems to be ok, BUT it contradicts with the dataset.bag. Please help me out! Thanks a lot |
Hi @crazyboyyy, OK, lets try to fix this. As you also mentioned, the dataset is expressed in an ENU frame where gravity is measured as 9.81m/s^2. Does the example bag file work fine for you, when you take the setup described in the tutorial? Looking at the numbers you provided, there are however several things wrong in your setup which we should fix first before even looking into the dataset.
I am asking because you write that your measured orientation is |
A note on fuzzy tracking: Given that the vision-measurement might not always be expressed in frame of reference which is gravity aligned, we estimate the rotation between the frame of reference of the vision measurements and the world frame of reference. This rotation estimate might change slowly over time, while large changes in this orientation estimate are usually a sign of a failure in the visual SLAM module. We therefore watch the rate of change on this estimate and trigger a warning message when the rate of change exceeds 0.1 rad/update. We then drop the update of the EKF and due pure IMU dead-reckoning (forward integration). When however the camera-to-IMU calibration is wrong the two frames of reference do not match initially and large updates of the relative orientation estimate are required. This triggers fuzzy tracking. So this is commonly a sign that there is a problem in the setup or initialization of the filter. |
@crazyboyyy |
Hi @caomeihui ,
Do you mean the yaw rotation? The initial yaw estimate should come from the update-sensor, e.g. a SLAM system or Vicon. If you use GPS you have to initialize it using dynamic reconfigure.
What is your question? How to convert the data from your IMU to use in the Pelican flight controller or how to use the IMU data from your IMU in the EKF? If you mean the latter you just apply a rotation matrix to it in the node publishing the data. |
Thank you for your reply, it is helpful to our research.During these days, we are under your guidance, have a new understanding of the coordinate systems. |
We are so deeply grateful to all of you for the great honor of your support !The Sensor_Fusion package now works with PTAM perfectly in our hand-held test, leaving only one problem to us, the high level viberation of our quadrotor seems to interfere the fusion process, we are now working at balancing everything. |
Hi Stephan,
I'm a graduate student from China, working on autonomous quadrotor. Your published masterpieces & software packs are really helpful and they are guiding our research.
Recently we got a confusion about the coordinate system using in "Ethzasl_sensor_fusion" package. As the user manual provided by AscTEC(http://www.asctec.de/downloads/manuals/AscTec_SDK2.0_Manual_V1.1.pdf), a NED coordinate system is used. However, in the "dataset.bag" posted on the ROS website, the acc-z reading is positive +9.8 when the replay started, it seems to be a ENU to us. We've tried them all, making our homemade flight control board sending raw IMU readings in each coordinate system, if we are sending in ENU( acc-z ~+9.8), after initializing, there is always a warning message, indicating a "fuzzy tracking", and sometimes a "negative scale detected" warning. On the other hand, the NED one ( acc-z ~-9.8)seems to be OK without any warning message.(Using Ethzal_PTAM as update sensor)
Has the Asctec's coordinate changed?
In your thesis, the body-fixed coordinate of IMU is not a right-handed Cartesian coordinate, is that the old-style coordinate used by Asctec? Moreover, except for the world cooridnate, the other coordinates are all polted in left-handed, can you give some hint about it?
Really looking forward to your reply, Thanks a lot!
Zhang Xu
from Tianjin University, CHINA
The text was updated successfully, but these errors were encountered: