21 #include <iCub/stereoVision/stereoCamera.h>
22 #include <yarp/dev/PolyDriver.h>
23 #include <iCub/iKin/iKinFwd.h>
24 #include <yarp/dev/GazeControl.h>
30 #include <iCub/stereoVision/utils.h>
34 using namespace yarp::os;
35 using namespace yarp::sig;
36 using namespace yarp::dev;
37 using namespace yarp::math;
38 using namespace iCub::ctrl;
39 using namespace iCub::iKin;
62 int speckleWindowSize;
64 int numberOfDisparities;
79 Matrix yarp_initLeft,yarp_initRight;
87 yarp::dev::PolyDriver polyHead;
88 yarp::dev::IEncoders *posHead;
89 yarp::dev::IControlLimits *HctrlLim;
92 yarp::dev::PolyDriver polyTorso;
93 yarp::dev::IEncoders *posTorso;
94 yarp::dev::IControlLimits *TctrlLim;
96 yarp::sig::Vector eyes0,eyes;
103 Mat buildRotTras(Mat &R, Mat &T);
104 bool loadStereoParameters(yarp::os::ResourceFinder &rf, Mat &KL, Mat &KR, Mat &DistL, Mat &DistR, Mat &Ro, Mat &To);
105 Matrix getCameraHGazeCtrl(
int camera);
106 Matrix getCameraH(yarp::sig::Vector &head_angles,yarp::sig::Vector &torso_angles, iCubEye *eyeKin,
int camera);
107 void printMatrixYarp(Matrix &A);
108 void convert(Matrix& matrix, Mat& mat);
109 void convert(Mat& mat, Matrix& matrix);
110 void updateViaGazeCtrl(
const bool update);
111 void updateViaKinematics(
const yarp::sig::Vector& deyes);
112 bool loadExtrinsics(yarp::os::ResourceFinder& rf, Mat& Ro, Mat& To, yarp::sig::Vector& eyes);
115 DisparityThread(
const string &name, yarp::os::ResourceFinder &rf,
bool useHorn=
true,
bool updateCamera=
false,
bool rectify=
true);
118 void setImages(
const Mat &left,
const Mat &right);
119 void getDisparity(Mat &Disp);
120 Point3f get3DPointMatch(
double u1,
double v1,
double u2,
double v2,
string drive);
121 void getDisparityFloat(Mat &Disp);
122 void getQMat(Mat &Q);
123 void getMapper(Mat &Mapper);
124 void getRectMatrix(Mat &RL);
125 void triangulate(Point2f &pixel,Point3f &point) ;
127 void getRootTransformation(Mat & Trans,
int eye=LEFT);
129 void setDispParameters(
bool _useBestDisp,
int _uniquenessRatio,
int _speckleWindowSize,
int _speckleRange,
int _numberOfDisparities,
int _SADWindowSize,
int _minDisparity,
int _preFilterCap,
int _disp12MaxDiff);
131 void updateCamerasOnce();
136 void threadRelease();
The class defining the disparity computation.
The base class defining stereo camera.