Open HeXu1 opened 2 years ago
and the two camera calibration result seems same. follows are my calibration results, but they fixed in the car's two sides~ ========== Camera 0 ========== Rotation: 0.82906 -0.09246 0.55147 -0.55064 0.03662 0.83394 -0.09730 -0.99504 -0.02055 Rotation Q: -0.67324 0.23881 -0.16865 0.67918 Translation: -17.15513 -43.04372 0.00000
========== Camera 1 ========== Rotation: 0.83106 -0.08341 0.54989 -0.54897 0.03557 0.83508 -0.08922 -0.99588 -0.01623 Rotation Q: -0.67300 0.23491 -0.17113 0.68015 Translation: -16.87811 -43.36809 -0.10674
@HeXu1 Did you figure out if it is an issue in the GPU code or if it is some data mismatch?
1) It seems mistake in CamRigOdoCalibration::addGpsIns function? the detail of this function is: CamRigOdoCalibration::addGpsIns(double lat, double lon, double alt,double qx, double qy, double qz, double qw,uint64_t timestamp) { // convert latitude/longitude to UTM coordinates double utmX, utmY; std::string utmZone; LLtoUTM(lat, lon, utmX, utmY, utmZone); PosePtr pose = boost::make_shared();
pose->rotation() = Eigen::Quaterniond(qw,qx,qy,qz);
pose->translation() = Eigen::Vector3d(utmX, utmY, -alt);
pose->timeStamp() = timestamp;
m_gpsInsBuffer.push(timestamp, pose);
}
a> LLtoUTM(lat, lon, utmX, utmY, utmZone); the result of utmX and utmY are utmNorthing and utmEasting,but not east and west?
b> pose->translation() = Eigen::Vector3d(utmX, utmY, -alt); why change alt to negative?
2) question about CamOdoThread::threadFunction(void) function. why change GPS_INS like follows?
gpsIns->x() = interpGpsIns->translation()(1); gpsIns->y() = -interpGpsIns->translation()(0); gpsIns->z() = interpGpsIns->translation()(2); Eigen::Matrix3d R = interpGpsIns->rotation().toRotationMatrix(); double roll, pitch, yaw; mat2RPY(R, roll, pitch, yaw); gpsIns->yaw() = -yaw;
thanks a lot ! @hengli