31 template <
typename A1,
typename A2,
32 typename B =
typename Bearing<A1, A2>::result_type,
50 : Base({{
key1, key2}},
model,
T(bearingRange)) {
57 : Base({{
key1, key2}},
model,
T(measuredBearing, measuredRange)) {
77 std::vector<Matrix> Hs(2);
87 void print(
const std::string&
s =
"",
89 std::cout <<
s <<
"BearingRangeFactor" << std::endl;
95 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 96 friend class boost::serialization::access;
97 template <
class ARCHIVE>
98 void serialize(ARCHIVE& ar,
const unsigned int ) {
99 ar& boost::serialization::make_nvp(
100 "Base", boost::serialization::base_object<Base>(*
this));
106 template <
typename A1,
typename A2,
typename B,
typename R>
108 :
public Testable<BearingRangeFactor<A1, A2, B, R> > {};
BearingRangeFactor< A1, A2 > This
std::array< Key, NARY_EXPRESSION_SIZE > ArrayNKeys
std::string serialize(const T &input)
serializes to a string
void print(const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override
print relies on Testable traits being defined for T
Expression< BearingRange< A1, A2 > > expression() const override
Return an expression that predicts the measurement given Values.
BearingRangeFactor(Key key1, Key key2, const B &measuredBearing, const R &measuredRange, const SharedNoiseModel &model)
Construct from separate bearing and range.
noiseModel::Diagonal::shared_ptr model
Rot2 R(Rot2::fromAngle(0.1))
Vector evaluateError(const A1 &a1, const A2 &a2, OptionalMatrixType H1=OptionalNone, OptionalMatrixType H2=OptionalNone) const
void initialize(const Expression< BearingRange< A1, A2 > > &expression)
Initialize with constructor arguments.
static BearingRange Measure(const A1 &a1, const A2 &a2, OptionalJacobian< dimension, traits< A1 >::dimension > H1={}, OptionalJacobian< dimension, traits< A2 >::dimension > H2={})
Prediction function that stacks measurements.
std::shared_ptr< This > shared_ptr
static const KeyFormatter DefaultKeyFormatter
gtsam::NonlinearFactor::shared_ptr clone() const override
void print(const std::string &s="", const KeyFormatter &kf=DefaultKeyFormatter) const override
print
Matrix * OptionalMatrixType
const Symbol key1('v', 1)
ExpressionFactorN< T, A1, A2 > Base
Vector unwhitenedError(const Values &x, OptionalMatrixVecType H=nullptr) const override
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
pair< size_t, size_t > Range
GenericValue< T > genericValue(const T &v)
double error(const Values &c) const override
std::shared_ptr< This > shared_ptr
BearingRangeFactor()
Default constructor.
const KeyVector & keys() const
Access the factor's involved variable keys.
BearingRangeFactor(Key key1, Key key2, const T &bearingRange, const SharedNoiseModel &model)
Construct from BearingRange instance.
std::uint64_t Key
Integer nonlinear key type.
~BearingRangeFactor() override
noiseModel::Base::shared_ptr SharedNoiseModel
const Symbol key2('v', 2)
Expression< T > expression(const typename Base::ArrayNKeys &keys) const override