-
Notifications
You must be signed in to change notification settings - Fork 116
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
I replaced the ground truth camera pose with the GT calculated by the devkit. #25
Comments
哦,使用KITTI官方提供的devkit生成的pose真值,需要进行对应坐标系的转换,默认生成的是OXTS的坐标系,这在devkit对应函数中有说明,然后还要注意GPS/IMU的坐标系和相机坐标系的转换(具体在devkit的readme文件里有说明),经过转换后,得到的真值才是相机的真值,经过替换测试,结果跟demo的差不多。问题解决。 |
As the readme.txt shows, and "The coordinate systems are defined the following way, where directions are informally given from the drivers view, when looking forward onto the road:
Besides, OXTS coordinates are defined as x = forward, y = right, z = down (see OXTS RT3000 user manual). So, after pose = convertOxtsToPose(oxts), we should transfer it from OXTS coordinates to camera coordinates. Above are my understanding, are these right? @halajun |
兄弟,OXTS转相机你具体是怎么转的,我试了试在convertOxtsToPose.m里转,想把输出的pose改成相机坐标系下。根据R_rect_00 * (R|T)_velo_to_cam * (R|T)_imu_to_velo这个转出来的不对啊。 |
坐标转换没搞清楚,这样就行了,pose{i} = Tr_0_inv*[R t;0 0 0 1] * Tr_imu_velo_T * Tr_velo_cam_T; |
我刚看到,你这应该是对的,我是觉得换不换到IMU的坐标系无所谓,就是要把这个Oxts的坐标系换到camera,跟你说一下我的具体做法。 T =[ 0 -1 0 0
0 0 -1 0
1 0 0 0
0 0 0 1]
Pose=T*Pose*T'; |
楼上兄弟们好!
|
大佬你好,我最近也在跑这个代码,我看您跑出的结果和真实值比较接近,但是我这边跑出来的结果明显有很大误差,我没有动过代码内容,所以我想问问您是修改过输出的一些东西吗 |
convertOxtsToPose输出的位姿为第k帧GPS/imu坐标系相对于第0帧GPS/imu坐标系的变换,记为:Ti0k,GPS/imu系与相机坐标系之间存在一个固定的变换关系,这个可以由calib得到,设imu到激光雷达系的变换为Tvi(对应calib里的Tr_imu_velo),记激光雷达系到相机系的变换为Tcv(对应calib里的Tr_velo_cam),则imu到相机系的变换为:Tci = Tcv*Ti。 最开始提到也提到,由于convertOxtsToPose输出的位姿表示了两个GPS/imu系之间的变换,要将其改变为对应的第0帧和第k帧两个相机系之间的变换: 但我自己觉得不明确的地方那个在于:Tr_velo_cam代表的是否为激光雷达到相机2的变换?还是到相机0的变换? |
所有跟相机有关的位姿校准,都是以相机0为中间桥梁的,所以这个值代表的是激光到相机0的 |
你好,经过我的计算和比较,发现devkit的m文件计算出来的pose就默认是KITTi中imu的位姿了,即不需要y轴和z轴取反。这点我是通过kitti的odometry数据集中的序列04中的真值文件来比较的,发现m文件得到的pose”不取反“并经过多个传感器坐标转换就能得到和真值文件中的结果(如果取了反,很给定的真值文件反而差别很大)。虽然我也看了OXTS RT3000 user manual中的OXTS坐标系方向规定,确实和KITTI官方说的imu/gps的坐标系在y和z轴方向上相反,我也认为需要在这两个轴上取反。但是从计算结果来说,如果直接使用devkit给定m文件的函数来进行后续转换,那么是不需要取反的!我不知道这是kitti在计算odometry序列真值时疏忽了,还是在标定imu时坐标系实际规定与oxts相同,又或者m文件中的计算结果其实已经转换到与imu相同的方向。 |
Hello. I find the sequences of your demo. I have extracted the ground truth camera pose from the "data_tracking_oxts", the KITTI Tracking Dataset. And I replaced the ground truth camera pose in the demo with the ground truth file calculated by myself. But the results were not as good as yours. So what should I noticed when I extract the ground truth using the raw data development kit? And could you tell me how you extract it for details?
The text was updated successfully, but these errors were encountered: