From 3f8bb104053a3d1451c9d03878f310aa53b1c84e Mon Sep 17 00:00:00 2001 From: yetongumich Date: Sun, 5 Apr 2020 18:44:56 -0400 Subject: [PATCH] modified document, remove commented function, add deprecated distance --- doc/robust.pdf | Bin 197566 -> 197679 bytes gtsam/linear/NoiseModel.cpp | 5 ----- gtsam/linear/NoiseModel.h | 12 ++++++++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/doc/robust.pdf b/doc/robust.pdf index 3404719b492e481bb77b96853eea0fa3a2fc39ba..ef8dc6fe624ef0af97973b383042940993273752 100644 GIT binary patch delta 2581 zcmbuB`9Bj51IKN1-$%J}tTG|Bi_J=7aurcx`1W0Fvr#?H2^FTfrYKj|q&bqucbHr5 z9GNQ;5$cPm_)4zOG{^IOJwH6J*Yo`Pe13SpUZ3}0@NP|%EoaK6LJ=r51`M?aUjf5m z7#J9CW(FpJq0V6V-_`~UN5Ehh6EM^X{5M?xmS`jbUP*)it{@Qz@c#^Y&Ki8h+=q;y z5-}!7D$I&r1cSklWFHKfXhI|+&?GX23OAu(C}af6 z42_|nGd=+f&&Xd^{G;-KH8(!Se(xE0c;^^1(;w8Y3OZ-2A*Xod8kCuQQ6eoQ!FwGF zQkkPa#8>pnCO^}=r6!QXCtrhZGiaL?xFgu#-eZ@c0L<> zL<1RzgjD}1NxtkO^mDV5Mxt+BeZc2L=ZFKk_^f#fXr!Un%bh~griQRJ zT-5u53K&xHgL+B@k|WDmW30FvoU&siXb|D)eqEJu_*t3z!j*l0)~32c%^9BWfWc8M z=Z+Kbcs4!f6(Lku)g;pmI64gTiU}sV{V^BW&xC8%ait^^w*OH}O)lB#rb0Zhq2A{O zEgu6Dxc;*!SH6Lv-=}Z~oP{yB07ADuDxKz~5Y^BbE5n}V)ejIBpr_SNh5K8)3(u#G zpbot^T}DJs;X6^1av#jf!k)kM^V`bZnmd9f(C=JoBJ3-NXTdLgx}Jh&)~s1J83jD4 zPD(L_8x$v{pX!N9LKzh$k{PR3Z5^U7FDMFD>W7r?;;zBON<=u_iOOoC_Yrrip zP0#!04yr#+ry9@U+iS-iui>OuV+WR(cI~nW9W&o#i#kqB-F{0bvdm}TpSGM9V#J3W z>2vj2%6r@vCmrYO|4h&J6SGUli{@Jtq_U+UQCCS#eo{k{9GjXUXLTz@q9-ctm*qi% zi)5vqjf;TdnJ=)7Us6K)Jv|Ve7aHt7?sIP8O+3NSD#c@R^!JHag3UAJ=_@k+CzA?7 zLZZ~eVlpyQPLBrbYEcjD@zzXaMGkHO=rOnBDwc2~t@y9eB~_3F->}f?QB!7CLH&A!A8yi!El(k^(ZA zxd4xnAXEP~7mE4$GK{0jk~%$WQl&EUj`8!Z7cqaefPLcffwy9(- zE7ADvNkz6OY;iKC^oBQcDnZAwpat|>U_#xU1|LB1;-^g&oR{D+Iwk|R@MWE5EBo{F zgNcZN=@S?*m`PgnqrdJa!^?Bot2vrK-q=QP&|e?Ib)u!`(hh(9Ud?YdD~Wq#u$-Mdf&xb2XaUon_=^+x{=}@1v0dycKT<+?HmBz?Q_nIq7NJz zr^0aWl#^UAF|Qm)D(6#oydNq%Wur7+)LEj?l$BpC#2x7BzN8D z^524B<87@c>9Hq>PHe5x`W0{d5&4;C6b|bGJ8*sSWk*q~*LZ{2#@BAIIEm<8w>-?W z>3AmhR&ov_QB6kk?y5zVa0FqwSzM-{YyUT z2VJqsZOx$yfvO;=p=;c^#zKwt1mMapc+1o>Xz750bPMqQ_9~Nh&keoin$H4#+y)L8 z4&Qlmyn>s2$vx()>np-X4euhoOp=yb;_x7y4j-|($kN)Wmr9xH;`BVock9ZRa^O#W zwz9ufxG{Rla9#YWgayYeC$QTE%ga5#J%r6H2x`GD7t++7u8n?04BiiX3tZFOhd<7& z(+g^8e6a6OFaBb2xrO|r;;Q~8Ua^SZxI&U_OUZ^K%3WrM>Y<%W6#qlYKm5q6`#GL; zoik%v^~oCMtY2-6e3jlWGCTJjwD@Qt?+}f?RId}m5Oz=-WJW3?;i}#$!Q#Eq3*3}_ zsQ7cA_!l3SaY3kJ%+KTgpg?7QJ`KcV+46B9hsAi*|Q7@yv1tg;Okng5s zIT4}i2RWk2bO1HAM+sE^NUYS!U_hFBL=m?y@t)R6jD^T0LgWB1AacN~8xp1ngb4x( zW8DLQApbda0MIJ{GX1(5D;)^3qyPVjgeCk}dyq*Y0DW72Nr%}G zc$3R{bAozU`Y(VBMXv}fm=kYvs%qCsR_~3dB1|+lvq=SLo4+WlTrQ)zDBT}?U}OkC z*x`$!iW9^0wX%c-5L9Vy;Uoxjx|u9=OE6DHILm1WxxNVk*YBap22lHPo zE^ZDw$B<}nGct3sf)?d!vV9QD6=F2wu|wI&tT~N}DIT(~YFyc^S^Ko>=G(?pzci8e zyWvuCBXlER6o0;iJQDFxB<#30qS)Rt*Y0HCsE&dThaf$C%b~3B>9?B~Bnvzk)0yv2 zOG`!M=|V}4!(q?1-R&Vc_B&71=X#*uqvm6myHrqzHhK-7kFx2?F+VWpnc>jS&;fYK zbT_Spf4y1nu4<ZS*ON)FH;-Mn{2^y6TSsn@2mit`Y!A|&I;MW0$;u%^#)(BnXJ>4xRDy0Ad9bE8s^ z=N=-i`*@eOMAY!3`b}&8*yl;=WGK2LbeVR2(S1!Xm_e>A`t?R2f39k@Hq%S0Cx9>* zdO7cRyq9ur7acmZv++z@p(B|Rp1eR+o^i07bg-?d$YO+}(UW%&^j~sGC%yKvbOUx4 zjYBK@8%_~0aZIvGj|PGxGongWeo>|Hf;rx0AK))`^ZD`D8nIaFJ@ZXVDjCpdrX}N_ zO&;{cc%o{LV7Fb$ejVrNH%Hh%oC|6nPrvXnjHRTawy$$uOY7!ui7}v~r1-kpv^a5( z9DiQ&3c1f<3`AZ*d=Rv+_=A}quf(#LfT$hT)XEkzRv*DxUr@ZpBLmK zZab_f_KV-1dL?Ad=x(xhtxa0_8aeX}%@+s+^PdUePUkvQpsn&X`Nx-r$CEuKn(U|j zj}6Nam-c|)%*C7dhS94AFNeg6q6&SHh~R*|U$QSFE8Is~Ug=f6a<=vFQE$QWEN2H* zsW_RpDt01O1M0#6Rn>x4lfMAI#>ZYJUwRAP+%N)F6U@Io4*OJX;9ls~p=-w5QWZ}0 zcD1Z7i5@pC-MGO~@(?>M75f+Sa4k9-NMY7}19;?DNjTaka<92xjtC!G{^u9{ z;d=3R^sb_z-mauOK|KzjOZHC=It<-tuVL$&gbypSZ0FX0%vY<-?TFp(`e8b|A<4)F zqRR(foKhRi565;@8hy0x*cQ2|xUl`^Kr%%A(nb9Qx+&(Jx$c2X0R&(+0h(zmt5$|%zXb(*f8bKS5jpVrcg%I~+gHR$q2=0kOh2Ix$! zFEX}>xHJ!oTTjcW!HMO1k4TMvt|3`t)|DsIC&W}F$ZV06I2nD1`@LsY3$cY#3($E< zU`=wA>nc(#H*pvnq`G;euJ}B}>fF5Q-c>*Sb;k#^9t~~vtiW}Fv?t#`MV~NL&xfRV zB{?9l!U_I_8@LEf^0HZr#mTmnoKh?iSof({3Ge7W4I}YTT$Morjhqb z7iGHoIBL*`cmWLh`e^w6j(c*QFC^-bl(d519V@OC6qMM@ws(}&_|e&c zYpZte4=7G5%$OPVca3-M8mm|S&W)ldzIp0u%(0nn>)GkFIcHJmc0_fRdZ+eVk})cC z`87^CCO7<5j2es0djB#EgkWq1rmWDyvOQLim0{`kb!ar!_%@yXR2wV#KuJPYz2aU!uI z*;Ch4-^wG46AuU- qW7#UC*2{_Hy!;E0&0UhVEu6c~T7`)UgbGVg|Dl&tg(||JBYy)Q=x|y9 diff --git a/gtsam/linear/NoiseModel.cpp b/gtsam/linear/NoiseModel.cpp index 206cab3b1..a7b48b034 100644 --- a/gtsam/linear/NoiseModel.cpp +++ b/gtsam/linear/NoiseModel.cpp @@ -661,11 +661,6 @@ Robust::shared_ptr Robust::Create(const RobustModel::shared_ptr& robust, return shared_ptr(new Robust(robust, gaussian)); } -// Robust::shared_ptr Robust::Create( -// const RobustModel::shared_ptr &robust, const NoiseModel::shared_ptr noise){ -// return shared_ptr(new Robust(robust,noise)); -// } - /* ************************************************************************* */ } diff --git a/gtsam/linear/NoiseModel.h b/gtsam/linear/NoiseModel.h index c8e0e78a5..73484799f 100644 --- a/gtsam/linear/NoiseModel.h +++ b/gtsam/linear/NoiseModel.h @@ -94,7 +94,9 @@ namespace gtsam { virtual double error(const Vector& v) const = 0; #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 - virtual double distance(const Vector& v) const = 0; + virtual double distance(const Vector& v) { + return error(v) * 2; + } #endif virtual void WhitenSystem(std::vector& A, Vector& b) const = 0; @@ -713,6 +715,11 @@ namespace gtsam { { Vector b; Matrix B=A; this->WhitenSystem(B,b); return B; } inline virtual Vector unwhiten(const Vector& /*v*/) const { throw std::invalid_argument("unwhiten is not currently supported for robust noise models."); } +#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 + inline virtual double distance(const Vector& v) { + return robust_->loss(this->unweightedWhiten(v).norm()); + } +#endif // Fold the use of the m-estimator loss(...) function into error(...) inline virtual double error(const Vector& v) const { return robust_->loss(noise_->mahalanobisDistance(v)); } @@ -734,9 +741,6 @@ namespace gtsam { static shared_ptr Create( const RobustModel::shared_ptr &robust, const noiseModel::Base::shared_ptr noise); - // static shared_ptr Create( - // const RobustModel::shared_ptr &robust, const NoiseModel::shared_ptr noise); - private: /** Serialization function */ friend class boost::serialization::access;