Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How to find frame-to-frame pose?

Hello,

I want to find a frame to frame pose. For that suppose, 1. I have frame1 and frame2.

  1. I have 2D image points of frame1 and frame2.
  2. Also i have 3D object points (xc, yc, zc) of frame1 and frame2 with respect to camera from (http://fsr.utias.utoronto.ca/submissions/FSR_2015_submission_14.pdf) link.

Now My question is,

  1. What will be the input of solvePnPRansac() ? it should be the same frame or different frame ?
  2. What will be my output if i am passing input 3D point of frame1 and 2D point of frame2 to solvePnPRansac() . (If i am doing for different frame it's give me error : OpenCV Error: Assertion failed (npoints >= 0 && npoints == std::max(ipoints.checkVector(2, CV_32F), ipoints.checkVector(2, CV_64F))) in solvePnPRansac, file /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/calib3d/src/solvepnp.cpp, line 233 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/calib3d/src/solvepnp.cpp:233: error: (-215) npoints >= 0 && npoints == std::max(ipoints.checkVector(2, CV_32F), ipoints.checkVector(2, CV_64F)) in function solvePnPRansac )

  3. What will be my output if i am passing input 3D point and 2D point of same frame(frame1, frame2, ..) .

  4. How can i get resultant transformation? what is the correct way?

How to find frame-to-frame pose?

Hello,

I want to find a frame to frame pose. For that suppose, 1.

  1. I have frame1 and frame2.

    1. I have 2D image points of frame1 and frame2.
    2. Also i have 3D object points (xc, yc, zc) of frame1 and frame2 with respect to camera from (http://fsr.utias.utoronto.ca/submissions/FSR_2015_submission_14.pdf) link.

    Now My question is,

    1. What will be the input of solvePnPRansac() ? it should be the same frame or different frame ?
    2. What will be my output if i am passing input 3D point of frame1 and 2D point of frame2 to solvePnPRansac() . (If i am doing for different frame it's give me error : OpenCV Error: Assertion failed (npoints >= 0 && npoints == std::max(ipoints.checkVector(2, CV_32F), ipoints.checkVector(2, CV_64F))) in solvePnPRansac, file /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/calib3d/src/solvepnp.cpp, line 233 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/calib3d/src/solvepnp.cpp:233: error: (-215) npoints >= 0 && npoints == std::max(ipoints.checkVector(2, CV_32F), ipoints.checkVector(2, CV_64F)) in function solvePnPRansac )) How can i resolve this?

    3. What will be my output if i am passing input 3D point and 2D point of same frame(frame1, frame2, ..) .

    4. How can i get resultant transformation? what is the correct way?