-
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
Problem with the initialization of ethzasl_sensor_fusion #32
Comments
Hi, I am not familiar with Gazebo but generally if you initialize q_ci, p_ci, q_wv, and the scale factor correctly, the filter should work well. I assume you can get these values from your simulation. You may want to verify if the value of the initialized scale (and the other states) is indeed near the true value. Best, From: erwin14 [[email protected]] Hello, My Question is how to get the right values for q_ci, p_ci and q_wv in the pose_sensor_fix.yaml file? I tried the following:
I´m not sure if this is correct. — |
@erwin14 lets assume your measurements are generated by projecting your 2D map into the sensor-frame of reference, then your p_ic/q_ic should be the transformation that expresses the pose of the sensor frame of reference w.r.t. the imu frame of reference. q_wv Should be set to identity. (your derivation is not correct) This quantity can be used to estimate a roll/pitch offset between your map frame and the gravity aligned world frame. You should write your simulation s.t. the z-direction of your map is gravity aligned, then this quantity is irrelevant. |
Hi Stephan and Simon, thanks for your fast response. What I've learned from other issues is that q_wv is the unit quaternion if the world-frame (in my case the 2d-map) and the vision-frame (ptam-frame) are both gravity aligned. My aim is to use ethzasl_sensor_fusion to get pose estimates of the robot in a 2d-map similar to amcl. So I'm still not sure how to get the correct values for q_wv and the scale factor. Thanks in advance. |
Can you elaborate in more detail why your vision frame is not aligned with gravity in the 2D case? Best, From: erwin14 [[email protected]] Hi Stephan and Simon, thanks for your fast response. What I've learned from other issues is that q_wv is the unit quaternion if the world-frame (in my case the 2d-map) and the vision-frame (ptam-frame) are both gravity aligned. My aim is to use ethzasl_sensor_fusion to get pose estimates of the robot in a 2d-map similar to amcl. So I'm still not sure how to get the correct values for q_wv and the scale factor. Thanks in advance. — |
The Vision-Frame(PTAM-Frame) is not aligned with gravity because the camera is front-looking. I still have no idea how this could work. Thanks in advance. |
The alignment of the camera has no influence if the Vision frame is aligned with gravity or not. I assumed your vision frame is aligned with gravity since you are working on a 2D (gravity aligned) map. The alignment of the vision frame is according to the dominant plane of the first triangulated features (i.e. no matter how the camera is looking at a gravity aligned flat floor, the vision frame will be gravity aligned). Best, From: erwin14 [[email protected]] The Vision-Frame(PTAM-Frame) is not aligned with gravity because the camera is front-looking. I still have no idea how this could work. Thanks in advance. — |
So even if the camera is pitched 90 degrees form a downward looking frame (thus making it a forward looking) and we use a wall for grid initialization, we have to use a unit quaternion? |
Hello,
I have problems concerning the initialization of ethzasl_sensor_fusion. I try to simulate ethzasl_sensor_fusion with ethzasl_ptam in a Gazebo simulation (robot = PR2).
My World-Frame is a 2D-Map (map-frame). I´m initializing the filter with the init-checkbox in dynamic reconfigure.
My Question is how to get the right values for q_ci, p_ci and q_wv in the pose_sensor_fix.yaml file?
Are there other steps necessary for the initialization or is it enough to find the correct values for q_ci, p_ci and q_wv?
I tried the following:
rosrun tf tf_echo 'camera-frame' 'imu-frame'
rosrun tf tf_echo 'map-frame' 'imu-frame' => q1
rosrun tf tf_echo 'imu-frame' 'camera-frame' => q2
rostopic echo vslam/pose => q3
q_wv = q1 * q2 * q3
I´m not sure if this is correct.
Thanks in advance.
The text was updated successfully, but these errors were encountered: