Go to the documentation of this file.
19 #ifndef ROBOT_CALIBRATION_CERES_OUTRAGEOUS_ERROR_H
20 #define ROBOT_CALIBRATION_CERES_OUTRAGEOUS_ERROR_H
23 #include <ceres/ceres.h>
49 double position_scaling,
50 double rotation_scaling) :
67 double * residuals)
const
103 double joint_scaling,
104 double position_scaling,
105 double rotation_scaling)
107 ceres::DynamicNumericDiffCostFunction<OutrageousError, ceres::CENTRAL> * func;
108 func =
new ceres::DynamicNumericDiffCostFunction<OutrageousError, ceres::CENTRAL>(
110 func->AddParameterBlock(offsets->
size());
111 func->SetNumResiduals(7);
112 return static_cast<ceres::CostFunction*
>(func);
124 #endif // ROBOT_CALIBRATION_CERES_OUTRAGEOUS_ERROR_H
OutrageousError(CalibrationOffsetParser *offsets, std::string name, double joint_scaling, double position_scaling, double rotation_scaling)
Constructor for an error functor.
Combined parser and configuration for calibration offsets. Holds the configuration of what is to be c...
void axis_magnitude_from_rotation(const KDL::Rotation &r, double &x, double &y, double &z)
Converts from KDL::Rotation to angle-axis-with-integrated-magnitude.
double get(const std::string name) const
Get the offset.
CalibrationOffsetParser * offsets_
bool operator()(double const *const *free_params, double *residuals) const
Operator for ceres-solver to call.
Calibration code lives under this namespace.
virtual ~OutrageousError()
bool update(const double *const free_params)
Update the offsets based on free_params from ceres-solver.
static ceres::CostFunction * Create(CalibrationOffsetParser *offsets, std::string name, double joint_scaling, double position_scaling, double rotation_scaling)
Helper factory function to create a new error block.
Error block to restrict the offsets generated by ceres-solver from becoming outrageously large.
bool getFrame(const std::string name, KDL::Frame &offset) const
Get the offset for a frame calibration.
robot_calibration
Author(s): Michael Ferguson
autogenerated on Fri Sep 1 2023 02:52:01