54 #include "sensor_msgs/SetCameraInfo.h"
55 #include "sensor_msgs/CameraInfo.h"
56 #include "visp_camera_calibration/CalibPoint.h"
70 point_correspondence_callback);
82 vpCalibration calib_all_points;
83 calib_all_points.clearPoint();
85 for(std::vector<visp_camera_calibration::CalibPoint>::const_iterator i = point_correspondence->points.begin();
86 i != point_correspondence->points.end();
89 vpImagePoint ip(i->i,i->j);
90 calib_all_points.addPoint(i->X,i->Y,i->Z,ip);
97 std::vector<double> dev;
98 std::vector<double> dev_dist;
100 ROS_INFO(
"called service calibrate");
101 vpCameraParameters cam;
103 double px = cam.get_px();
104 double py = cam.get_px();
105 double u0 = req.sample_width/2;
106 double v0 = req.sample_height/2;
109 cam.initPersProjWithoutDistortion(px, py, u0, v0);
110 vpCalibration::setLambda(lambda);
112 vpCalibration::computeCalibrationMulti(vpCalibration::vpCalibrationMethodType(req.method),
calibrations_, cam, error,
false);
114 for(std::vector<vpCalibration>::iterator i=
calibrations_.begin();
119 double deviation_dist;
122 i->computeStdDeviation(deviation,deviation_dist);
123 dev.push_back(deviation);
124 dev_dist.push_back(deviation_dist);
127 case vpCalibration::CALIB_LAGRANGE_VIRTUAL_VS:
128 case vpCalibration::CALIB_VIRTUAL_VS:
129 res.stdDevErrs = dev;
131 case vpCalibration::CALIB_LAGRANGE_VIRTUAL_VS_DIST:
132 case vpCalibration::CALIB_VIRTUAL_VS_DIST:
133 res.stdDevErrs= dev_dist;
139 sensor_msgs::SetCameraInfo set_camera_info_comm;
145 ROS_INFO(
"set_camera_info service called successfully");
147 ROS_ERROR(
"Failed to call service set_camera_info");