According to Qualcomm FastCV Library 1.5.0, we should use iteratively the three functions" fcvGeomPoseEvaluateErrorf32 , fcvGeomPoseOptimizef32 , fcvGeomPoseOptimizeGNf32" to perform poseRefine(GN or LM).
But how do we write the code? we don't know how to use the there functions.
Anyone will tell me some detail? Thank you!
Hi,
Generally, there are three steps to estimate the pose:
1. estimate the initial pose
2. Evaluate the current pose
3. Refinement
The last two steps are iteratively carried out.
So you can try the following:
1. First call fcvGeom3PointPoseEstimatef32 to get the initial pose
2. Call the fcvGeomPoseEvaluateErrorf32 to compute the reproject error on current pose
3. Use the reproject errors and current poses as input, call either fcvGeomPoseUpdatef32 or fcvGeomPoseOptimizeGNf32 to refine
Hope this helps.
Regards,
-Jeff
Yes, your result is correct.
FastCV APIs are optimized for Qualcomm's Snapdragon processor.
If you called fcvOperationMode() at Qualcomm chip, FastCV API will be executed faster.
Hi ele,
I would like to achieve pose estimation using this method. But unfortunately, I am unable to write a worikng code.
Could you please show me a trivial example of how you implemented it ?
Thanks.