Changed initial noise generation for SmartStereoProjectionFactorExample to Y direction, changed noise generation scale

release/4.3a0
Stephen Camp 2014-07-22 12:49:09 -04:00
parent a297434148
commit 8bad295209
1 changed files with 13 additions and 2 deletions

View File

@ -49,11 +49,13 @@ int main(int argc, char** argv){
typedef SmartStereoProjectionPoseFactor<Pose3, Point3, Cal3_S2Stereo> SmartFactor; typedef SmartStereoProjectionPoseFactor<Pose3, Point3, Cal3_S2Stereo> SmartFactor;
bool output_poses = true; bool output_poses = true;
bool output_initial_poses = true;
string poseOutput("../../../examples/data/optimized_poses.txt"); string poseOutput("../../../examples/data/optimized_poses.txt");
string init_poseOutput("../../../examples/data/initial_poses.txt");
Values initial_estimate; Values initial_estimate;
NonlinearFactorGraph graph; NonlinearFactorGraph graph;
const noiseModel::Isotropic::shared_ptr model = noiseModel::Isotropic::Sigma(3,1); const noiseModel::Isotropic::shared_ptr model = noiseModel::Isotropic::Sigma(3,1);
ofstream pose3Out; ofstream pose3Out, init_pose3Out;
bool add_initial_noise = true; bool add_initial_noise = true;
@ -81,10 +83,19 @@ int main(int argc, char** argv){
pose_file >> m.data()[i]; pose_file >> m.data()[i];
} }
if(add_initial_noise){ if(add_initial_noise){
m(0,3) += (pose_id % 10)/5; m(1,3) += (pose_id % 10)/10;
} }
initial_estimate.insert(Symbol('x', pose_id), Pose3(m)); initial_estimate.insert(Symbol('x', pose_id), Pose3(m));
} }
Values initial_pose_values = initial_estimate.filter<Pose3>();
if(output_poses){
init_pose3Out.open(init_poseOutput.c_str(),ios::out);
for(int i = 1; i<=initial_pose_values.size(); i++){
init_pose3Out << i << " " << initial_pose_values.at<Pose3>(Symbol('x',i)).matrix().format(Eigen::IOFormat(Eigen::StreamPrecision, 0,
" ", " ")) << endl;
}
}
// camera and landmark keys // camera and landmark keys
size_t x, l; size_t x, l;