2014-12-23 08:49:32 +08:00
|
|
|
/* ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
|
|
|
* Atlanta, Georgia 30332-0415
|
|
|
|
|
* All Rights Reserved
|
|
|
|
|
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
|
|
|
|
|
|
|
|
* See LICENSE for the license information
|
|
|
|
|
|
|
|
|
|
* -------------------------------------------------------------------------- */
|
|
|
|
|
|
2014-12-23 07:35:22 +08:00
|
|
|
/**
|
2015-02-25 12:40:53 +08:00
|
|
|
* @file LinearInequalityFactorGraph.h
|
2014-12-23 08:49:32 +08:00
|
|
|
* @author Duy-Nguyen Ta
|
|
|
|
|
* @author Krunal Chande
|
|
|
|
|
* @author Luca Carlone
|
|
|
|
|
* @date Dec 15, 2014
|
2014-12-23 07:35:22 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
2014-12-24 03:44:43 +08:00
|
|
|
#include <gtsam/linear/VectorValues.h>
|
2015-03-02 21:27:24 +08:00
|
|
|
#include <gtsam/nonlinear/Values.h>
|
|
|
|
|
#include <gtsam/nonlinear/NonlinearFactor.h>
|
2015-02-25 12:40:53 +08:00
|
|
|
#include <gtsam_unstable/linear/InequalityFactorGraph.h>
|
2014-12-23 07:35:22 +08:00
|
|
|
|
|
|
|
|
namespace gtsam {
|
2015-02-25 12:40:53 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* FactorGraph container for linear inequality factors c(x)<=0 at the nonlinear level
|
|
|
|
|
*/
|
|
|
|
|
class LinearInequalityFactorGraph: public FactorGraph<NonlinearFactor> {
|
2014-12-23 07:35:22 +08:00
|
|
|
|
|
|
|
|
public:
|
2014-12-24 03:44:43 +08:00
|
|
|
/// Default constructor
|
2015-03-02 21:27:24 +08:00
|
|
|
LinearInequalityFactorGraph() {}
|
2014-12-23 07:35:22 +08:00
|
|
|
|
2015-02-25 12:40:53 +08:00
|
|
|
/// Linearize to a InequalityFactorGraph
|
2015-03-02 21:27:24 +08:00
|
|
|
InequalityFactorGraph::shared_ptr linearize(const Values& linearizationPoint) const;
|
2014-12-23 07:35:22 +08:00
|
|
|
|
2015-03-02 21:27:24 +08:00
|
|
|
/// Return true if the all errors are <= 0.0
|
2015-02-25 12:40:53 +08:00
|
|
|
bool checkFeasibilityAndComplimentary(const Values& values,
|
2015-03-02 21:27:24 +08:00
|
|
|
const VectorValues& dualValues, double tol) const;
|
2015-02-25 12:40:53 +08:00
|
|
|
|
2014-12-23 07:35:22 +08:00
|
|
|
};
|
2015-03-02 21:27:24 +08:00
|
|
|
|
|
|
|
|
} // namespace gtsam
|