--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/b5d031df-bc20-4ee3-8816-d538ae3d9483%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Sameer,
Sameer,I don't understand the bug you identified . (pinv[0] + pinv[1] + pinv[2]) is a row from the variance/covariance matrix from the gps post processing. I am trying to weight my residuals.
This is my code for auto-differentiation.bool operator()(const T* const ip, const T* const fs, T* residuals) const{residuals[0] = ((fs[0] - ip[0]) - gpsvector[0]) *(pinv[0] + pinv[1] + pinv[2]);residuals[1] = ((fs[1] - ip[1]) - gpsvector[1]) *(pinv[3] + pinv[4] + pinv[5]);residuals[2] = ((fs[2] - ip[2]) - gpsvector[2]) *(pinv[6] + pinv[7] + pinv[8]);return true;}Just to explain1. gpsvector is the 3Dvector computed between ECEF points ip and fs.2. pinv is a 3x3 variance/covariance that is generated by the static gps processing.3. I am not worried about implementing rotations and scale between the gpsvector (in the satellite coordinate system) and the local geodetic network (ip &fs).This is not that important these days as most geodetic networks are derived from satellite datum observations (WGS84 or ITRF flavours).I would still like to understand how to use Analytical derivatives as part of my education on Ceres and in case I need to use it later on.- Explanation why my Analytical cost function doesn't have memory allocated for the Jacobians.
Thanks again for all your help.Alan
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/5edacdc1-104b-465f-9921-2a00b1ae84d5%40googlegroups.com.
Thanks For your reply.So the reason my AnalyticalDerivative has not had the Jacobian array allocated any memory when I call evaluate is that the Cost Function has not been called earlier on in the Ceres pipeline ?
The only change I made was to the AddResidualBlock function.Am I missing something (again) ?void AddResidualBlock(ceres::Problem &prob){// Analytical derivitive cost functionGPSVectorCostFunction *cf;cf = new GPSVectorCostFunction;cf->AddObs(gpsvector, hi,ht,sd, pinv);ceres::CostFunction* cost_function = cf;// auto diff cost function// ceres::CostFunction* cost_function = GPSVectorError::Create(gpsvector, sd,pinv,hi,ht);prob.AddResidualBlock(cost_function, NULL, ip, fs);}
Sameer,
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/b9dee06f-ff92-43e7-b0c5-9145de72c1c6%40googlegroups.com.
Hi Srikanth,You may want to read the cost_function.h header to understand the contract between Ceres and your cost function implementation. If the jacobian pointer is NULL, then Ceres is requesting a cost-only evaluation without derivatives. Typically this means a cheaper calculation can be done (since no derivatives are needed).Thanks,Keir
On Mon, Oct 9, 2017 at 11:15 AM, Srikanth S <sri...@gmail.com> wrote:
Hello,I am facing a similar issue. I am solving a BA problem optimizing both structure and motion. The auto differentiation works well. But for the analytical differentiation, the jacobians pointer is always Null(in the Evaluate function) after the first iteration and hence I cannot supply the jacobians. Therefore it just computes the cost.Wanted to check your ways to debug this issue. Whether the jacobians computed is itself wrong or is it due to something else.Sameer,Highly appreciate your assistance.
On Sunday, April 2, 2017 at 4:44:24 PM UTC+5:30, Alan Buchanan wrote:Sameer,Thanks for your assistance.I haven't been able to get Analytical Derivatives to work but it isn't a priority for as I was just trying to see how they work.I probably have a simple bug some where.I will close this thread and revisit later on when my understanding is a bit better.
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/5dfcfdcc-856e-46c1-9921-9802e9832e5b%40googlegroups.com.
Solver::Options::
check_gradients
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/5dfcfdcc-856e-46c1-9921-9802e9832e5b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/CABqdRUBz95UgJ9cTyjKC-_XSjZg_2Qbvj0PsW7Ui2zAF_umGKw%40mail.gmail.com.To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver+unsubscribe@googlegroups.com.