@@ -397,11 +397,11 @@ <h1>Source code for pypose.module.ekf</h1><div class="highlight"><pre>
397397 < span class ="n "> Q</ span > < span class ="o "> =</ span > < span class ="n "> Q</ span > < span class ="k "> if</ span > < span class ="n "> Q</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="k "> else</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> Q</ span >
398398 < span class ="n "> R</ span > < span class ="o "> =</ span > < span class ="n "> R</ span > < span class ="k "> if</ span > < span class ="n "> R</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="k "> else</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> R</ span >
399399
400- < span class ="n "> xm</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> model</ span > < span class ="o "> .</ span > < span class ="n "> state_transition</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="nb "> input</ span > < span class ="p "> ,</ span > < span class ="n "> dt </ span > < span class =" p " > , </ span > < span class =" n " > t</ span > < span class ="o "> =</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="c1 "> # 1. System transition</ span >
400+ < span class ="n "> xm</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> model</ span > < span class ="o "> .</ span > < span class ="n "> state_transition</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="nb "> input</ span > < span class ="p "> ,</ span > < span class ="n "> t</ span > < span class ="o "> =</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="c1 "> # 1. System transition</ span >
401401
402402 < span class ="n "> P</ span > < span class ="o "> =</ span > < span class ="n "> A</ span > < span class ="o "> @</ span > < span class ="n "> P</ span > < span class ="o "> @</ span > < span class ="n "> A</ span > < span class ="o "> .</ span > < span class ="n "> mT</ span > < span class ="o "> +</ span > < span class ="n "> B</ span > < span class ="o "> @</ span > < span class ="n "> Q</ span > < span class ="o "> @</ span > < span class ="n "> B</ span > < span class ="o "> .</ span > < span class ="n "> mT</ span > < span class ="c1 "> # 2. Covariance predict</ span >
403403 < span class ="n "> K</ span > < span class ="o "> =</ span > < span class ="n "> P</ span > < span class ="o "> @</ span > < span class ="n "> C</ span > < span class ="o "> .</ span > < span class ="n "> mT</ span > < span class ="o "> @</ span > < span class ="n "> pinv</ span > < span class ="p "> (</ span > < span class ="n "> C</ span > < span class ="o "> @</ span > < span class ="n "> P</ span > < span class ="o "> @</ span > < span class ="n "> C</ span > < span class ="o "> .</ span > < span class ="n "> mT</ span > < span class ="o "> +</ span > < span class ="n "> R</ span > < span class ="p "> )</ span > < span class ="c1 "> # 3. Kalman gain</ span >
404- < span class ="n "> e</ span > < span class ="o "> =</ span > < span class ="n "> obs </ span > < span class ="o "> -</ span > < span class ="n "> bmv</ span > < span class ="p "> (</ span > < span class ="n "> C</ span > < span class ="p "> ,</ span > < span class ="n "> state </ span > < span class ="p "> )</ span > < span class ="o "> -</ span > < span class ="n "> bmv</ span > < span class ="p "> (</ span > < span class ="n "> D</ span > < span class ="p "> ,</ span > < span class ="nb "> input</ span > < span class ="p "> )</ span > < span class ="c1 "> # predicted observation error</ span >
404+ < span class ="n "> e</ span > < span class ="o "> =</ span > < span class ="n "> y </ span > < span class ="o "> -</ span > < span class ="n "> bmv</ span > < span class ="p "> (</ span > < span class ="n "> C</ span > < span class ="p "> ,</ span > < span class ="n "> x </ span > < span class ="p "> )</ span > < span class ="o "> -</ span > < span class ="n "> bmv</ span > < span class ="p "> (</ span > < span class ="n "> D</ span > < span class ="p "> ,</ span > < span class ="nb "> input</ span > < span class ="p "> )</ span > < span class ="c1 "> # predicted observation error</ span >
405405 < span class ="n "> xp</ span > < span class ="o "> =</ span > < span class ="n "> xm</ span > < span class ="o "> +</ span > < span class ="n "> bmv</ span > < span class ="p "> (</ span > < span class ="n "> K</ span > < span class ="p "> ,</ span > < span class ="n "> e</ span > < span class ="p "> )</ span > < span class ="c1 "> # 4. Posteriori state</ span >
406406 < span class ="n "> P</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="n "> I</ span > < span class ="o "> -</ span > < span class ="n "> K</ span > < span class ="o "> @</ span > < span class ="n "> C</ span > < span class ="p "> )</ span > < span class ="o "> @</ span > < span class ="n "> P</ span > < span class ="o "> @</ span > < span class ="p "> (</ span > < span class ="n "> I</ span > < span class ="o "> -</ span > < span class ="n "> K</ span > < span class ="o "> @</ span > < span class ="n "> C</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> mT</ span > < span class ="o "> +</ span > < span class ="n "> K</ span > < span class ="o "> @</ span > < span class ="n "> R</ span > < span class ="o "> @</ span > < span class ="n "> K</ span > < span class ="o "> .</ span > < span class ="n "> mT</ span > < span class ="c1 "> # 5. Posteriori covariance</ span >
407407 < span class ="k "> return</ span > < span class ="n "> xp</ span > < span class ="p "> ,</ span > < span class ="n "> P</ span > </ div >
0 commit comments