22 #include <gtsam/nonlinear/ExpressionFactor.h> 31 template <
typename A1,
typename A2,
32 typename B =
typename Bearing<A1, A2>::result_type,
33 typename R =
typename Range<A1, A2>::result_type>
42 typedef std::shared_ptr<This> shared_ptr;
50 : Base({{key1, key2}}, model, T(bearingRange)) {
57 : Base({{key1, key2}}, model, T(measuredBearing, measuredRange)) {
64 gtsam::NonlinearFactor::shared_ptr
clone()
const override {
66 gtsam::NonlinearFactor::shared_ptr(
new This(*
this)));
75 Vector evaluateError(
const A1& a1,
const A2& a2,
77 std::vector<Matrix> Hs(2);
87 void print(
const std::string& s =
"",
88 const KeyFormatter& kf = DefaultKeyFormatter)
const override {
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> > {};
double error(const Values &c) const override
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
void print(const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override
print relies on Testable traits being defined for T
Definition: ExpressionFactor.h:85
BearingRangeFactor(Key key1, Key key2, const B &measuredBearing, const R &measuredRange, const SharedNoiseModel &model)
Construct from separate bearing and range.
Definition: BearingRangeFactor.h:55
Definition: Testable.h:152
Definition: NonlinearFactor.h:68
void initialize(const Expression< BearingRange< A1, A2 > > &expression)
Initialize with constructor arguments.
Definition: ExpressionFactor.h:172
Definition: Expression.h:47
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.
Definition: BearingRange.h:79
gtsam::NonlinearFactor::shared_ptr clone() const override
Definition: BearingRangeFactor.h:64
#define OptionalNone
Definition: NonlinearFactor.h:49
void print(const std::string &s="", const KeyFormatter &kf=DefaultKeyFormatter) const override
print
Definition: BearingRangeFactor.h:87
Matrix * OptionalMatrixType
Definition: NonlinearFactor.h:55
Vector unwhitenedError(const Values &x, OptionalMatrixVecType H=nullptr) const override
Definition: ExpressionFactor.h:104
Definition: BearingRangeFactor.h:34
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
Definition: chartTesting.h:28
GenericValue< T > genericValue(const T &v)
Definition: GenericValue.h:211
BearingRangeFactor()
Default constructor.
Definition: BearingRangeFactor.h:45
const KeyVector & keys() const
Access the factor's involved variable keys.
Definition: Factor.h:142
BearingRangeFactor(Key key1, Key key2, const T &bearingRange, const SharedNoiseModel &model)
Construct from BearingRange instance.
Definition: BearingRangeFactor.h:48
Definition: ExpressionFactor.h:249
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
noiseModel::Base::shared_ptr SharedNoiseModel
Definition: NoiseModel.h:741