Camera Centric Parameterization 1. Camera and image plane coordinate pi = (ρi, ฯi,θi) (ox,oy) u v θi ฯi X i ρi=1/d Camera Center Y Z 2. System Coordinate Camera Current Location (0,0,0) Camera Predicted Location (Cx,Cy,Cz) ck, rk hc (xi,yi,zi)k (xi,yi,zi)k-1 pi = (ox,oy) u v θi X m Feature Acquired Y Z ฯi ρi=1/d i (Xi,Yi,Zi) or (ρi, ฯi,θi) 2.1. State Vector ๐ป State vector is composed of the world reference point ๐ถ๐ช camera motion parameters[๐๐ช , ๐๐ช ] , and feature location parameters ๐๐ช๐ in camera centered frame. ๐ถ๐ฟ๐ถ๐พ ๐๐ช ๐ช ๐ = ๐๐ช ๐๐ ๐๐ช๐ [ โฎ ] ๐ช where O contains the world origin coordinate and orientation in camera frame. ๐๐๐ = [๐ถ๐ช๐ ๐ถ๐ช๐ ๐ถ๐ช๐ ๐พ๐ช๐ ๐พ๐ช๐ ๐ป ๐พ๐ช๐ ] . The parameter ๐๐๐ถ contains the feature coordinate in camera frame ๐ป represented in inverse parameterization: ๐๐๐ถ = [๐๐ช๐ ๐๐ช๐ ๐๐ช๐ ๐๐ ๐๐ช๐ ๐ฝ๐ช๐ ] . The first three parameters [๐๐ช๐ , ๐๐ช๐ , ๐๐ช๐ ] memorize the camera’s coordinate when the feature is first observed. The elevationazimuth pair [๐๐ช๐ , ๐ฝ๐ช๐ ] encodes a unit vector pointing from initialization point [๐๐ช๐ , ๐๐ช๐ , ๐๐ช๐ ] to the feature, and ๐๐ is the inverse distance along this vector. 2.2. Prediction 2.2.1. Method 1 No change is made to the state vector except the camera translation and rotation. If INS unit is available, the INS measurement is assigned to ๐๐ช and ๐๐ช . Otherwise, ๐๐ช and ๐๐ช will be assigned new value based on the estimation model used. For now, only the constant velocity is implemented to compare with the INS measurement. ๐ถ๐ฟ๐ถ๐พ ๐ถ๐ฟ๐ถ๐พ ๐๐ช๐๐๐๐ ๐ข๐๐๐ ๐๐ช ๐ช ๐๐ช = ๐๐๐๐๐ ๐ข๐๐๐ ๐ช ๐๐ ๐๐ช๐ ๐ช ๐๐ ๐๐ช๐ [ โฎ ]๐+1 [ ] โฎ or ๐ถ๐ฟ๐ถ๐พ ๐ถ๐ฟ๐ถ๐พ ๐๐ช ๐๐ช ๐ช ๐ช ๐ = ๐๐ช ๐ช ๐๐ ๐๐ ๐ช ๐๐ ๐๐ช๐ [ โฎ ]๐+1 [ โฎ ]๐ Writing the above in the form of ๐๐ = ๐ ๐−๐ ๐๐−๐ + ๐ฉ๐ ๐๐ + ๐๐−๐ , without INS measurement, ๐ ๐ is simply ๐ฐ. With INS, ๐ฐ๐×๐ ๐๐×๐ ๐ ๐๐×๐ ๐๐ = ๐ฐ๐×๐ ๐ [ โฑ ๐๐×๐ ๐ถ๐ฟ๐ถ๐พ 1 0 0 1 0 0 ๐๐ช 0 1 0 0 1 0 ๐๐ช + 0 0 1 0 0 1 ๐ช ๐๐ ๐๐×๐ ๐๐×๐ โฎ ๐ช ๐ฐ๐×๐ ] [ ๐๐ ]๐−1 ๐๐๐×๐ [ ๐ฃ๐ฅ๐ถ โ๐ก ๐ฃ๐ฆ๐ถ โ๐ก ๐ฃ๐ง๐ถ โ๐ก 1 ๐ถ 2 ๐ โ๐ก ๐๐×๐ 2 ๐ฅ 1 ๐ถ 2 1 0 0 2 ๐๐ฆ โ๐ก 0 1 0 1 ๐ถ 2 0 0 1 2 ๐๐ง โ๐ก ] ๐ถ ๐ค๐ฅ ๐ค๐ถ๐ฆ [ ๐ค๐ถ๐ง ] + ๐๐−๐ 2.2.2. Method 2 ๐ป For every prediction step, camera motion can be described by its translation and rotation [๐๐ช , ๐๐ช ] . These parameters can either be estimated by including them into the state vector, or acquired from an INS measurement unit. World reference point coordinate and orientation from k-1 to k is related by ๐๐ฅ๐ถ ๐๐ฅ๐ถ ๐๐ฅ๐ถ − [๐๐ฆ๐ถ ] ) [๐๐ฆ๐ถ ] = ๐ −1 (๐๐ช ) ([๐๐ฆ๐ถ ] ๐๐ง๐ถ ๐ ๐๐ง๐ถ ๐−1 ๐๐ง๐ถ ๐ ๐๐ฅ๐ถ ๐๐ฅ๐ถ = [ ๐๐ฆ๐ถ ] − ๐๐ช [ ๐๐ฆ๐ถ ] ๐๐ง๐ถ ๐−1 ๐๐ง๐ถ ๐ Feature parameters are related from one step to the next by ๐ฅ๐๐ถ ๐ฅ๐๐ถ ๐๐ฅ๐ถ − [๐๐ฆ๐ถ ] ) [๐ฆ๐๐ถ ] = ๐ −1 (๐๐ช ) ([๐ฆ๐๐ถ ] ๐๐ง๐ถ ๐ ๐ง๐๐ถ ๐ ๐ง๐๐ถ ๐−1 ๐๐๐ถ ๐ถ ๐ถ ๐−๐ (๐ −1 (๐๐ช ) ๐(๐๐,๐−1 , ๐๐,๐−1 ) ) [ ๐๐๐ถ ] = ( ๐๐,๐−1 ๐๐ ๐ ๐ถ ๐ถ where ๐(๐๐,๐−1 , ๐๐,๐−1 ) is the unit vector pointing from the initialization point to the feature seen by the camera at step k-1 ๐ถ ๐ถ ๐๐๐ ๐๐,๐−1 ๐๐๐ ๐๐,๐−1 ๐ถ ๐ถ ๐ถ ๐ถ ๐ ๐๐๐๐,๐−1 ๐(๐๐,๐−1 , ๐๐,๐−1 ) = [ ๐๐๐ ๐๐,๐−1 ] ๐ถ sin๐๐,๐−1 Let ๐๐น ๐ be the predicted vector pointing from camera location to feature at step k, then ๐ถ ๐ถ ๐๐๐ ๐๐,๐−1 ๐๐๐ ๐๐,๐−1 ๐ถ ๐ถ −1 ๐ช ๐๐น ๐ = ๐ (๐ ) [ ๐๐๐ ๐๐,๐−1 ๐ ๐๐๐๐,๐−1 ] ๐ถ sin๐๐,๐−1 and ๐๐ถ [ ๐ถ๐ ] = ๐−๐ (๐๐น ๐) = ๐๐ ๐ 2 ( ๐ ๐ √โ๐ฅ,๐−1 + โ๐ฆ,๐−1 2 ) ๐ โ๐ฆ,๐−1 arctan ( ๐ ) โ๐ฅ,๐−1 [ 2.3. ๐ โ๐ง,๐−1 arctan ] Prediction Matrix Linearization 2.3.1. Method 1 The matrices are linear. No linearization is needed. 2.3.2. Method 2 ๐๐๐ ๐๐๐ ๐๐๐ =[ ๐ถ ๐๐๐−๐ ๐๐ถ๐ฟ๐พ,๐−๐ ๐๐๐−๐ ๐๐๐ ๐๐๐ ๐๐๐ โฏ] ๐ช ๐๐๐−๐ ๐๐๐,๐−๐ ๐๐๐ช๐,๐−๐ With respect to ๐ถ๐ฟ๐ถ๐พ : ๐๐ถ๐ช๐พ,๐ ๐๐ถ๐ช๐พ,๐ ๐๐ถ๐ช๐พ,๐−๐ ๐๐พ๐ช๐พ,๐ ๐๐ถ๐ช๐พ,๐−๐ ๐๐พ๐ช๐พ,๐−๐ ๐๐พ๐ช๐พ,๐ ๐๐พ๐ช๐พ,๐−๐ ๐๐๐ ๐๐๐ = ๐ถ ๐๐ถ๐ฟ๐พ,๐−๐ ๐๐ถ๐ช๐พ,๐−๐ ๐๐๐ ๐๐พ๐ช๐พ,๐−๐ ๐๐๐ ๐๐ถ๐ช๐พ,๐−๐ ๐๐พ๐ช๐พ,๐−๐ ๐๐๐ช๐ ๐ช [๐๐ถ๐พ,๐−๐ ๐๐๐ช๐ ๐๐พ๐ช๐พ,๐−๐ ] ๐๐๐ ๐๐ถ๐ช๐พ,๐ ๐๐ถ๐ช๐พ,๐−๐ ๐๐ถ๐ช๐พ,๐ ๐๐ถ๐ช๐พ,๐−๐ 0 = [ = ๐ −1 (๐๐ช ) 0 ๐๐พ๐ช๐พ,๐ ๐๐พ๐ช๐พ,๐−๐ 0 0 0 0 0 0 ] ๐๐พ๐ช๐พ,๐ ๐๐พ๐ช๐พ,๐−๐ =๐ With respect to ๐ and ๐ Since ๐ and ๐ doesn’t change, their derivative is an identity matrix. ๐๐ถ๐ช๐พ,๐ ๐๐๐−๐ ๐๐พ๐ช๐พ,๐ ๐๐๐−๐ ๐๐๐ ๐๐๐−๐ ๐๐๐ ๐๐๐−๐ ๐๐(0: 2)๐ช๐ ๐๐๐−๐ ๐๐(3: 5)๐ช๐ [ ๐๐๐−๐ ๐ช ๐๐ถ๐ช๐พ,๐ ๐๐ −1 (๐๐๐−๐ ) −1 ๐ช๐−๐ −๐ (๐๐ ) ๐๐๐−๐ ๐๐๐−๐ ๐๐พ๐ช๐พ,๐ 0 −๐ฐ ๐๐๐−๐ ๐๐๐ ๐ผ 0 ๐๐๐−๐ = ๐๐๐ ๐๐๐−๐ 0 ๐ผ ๐ช ๐๐(0: 2)๐ ๐ช ๐๐ −1 (๐๐๐−๐ ) ๐ช๐−๐ −1 ๐๐๐−๐ −๐ (๐๐ ) ๐๐๐−๐ ๐ช ๐๐(3: 5)๐ ] ๐๐๐−๐ ] [ 0 ? 1 0 0 ๐ถ ๐๐๐,๐ ? = ๐๐๐−1 ๐ถ ๐๐๐,๐ [ ๐๐๐−1 ] ๐ถ ๐๐๐,๐ ๐ถ ๐ถ ๐๐−๐ (๐ −1 (๐๐ช๐−๐ )๐(๐๐,๐๐−1 , ๐๐,๐๐−1 )) ๐๐๐−๐ = ๐ถ ๐๐๐−๐ ๐๐๐,๐ [๐๐๐−๐ ] ๐ถ ๐ถ Let ๐(๐๐−๐ ) = ๐ −1 (๐๐ช๐−๐ )๐(๐๐,๐๐−1 , ๐๐,๐๐−1 ) ๐๐−1 ๐๐−1 ๐๐ = โ ๐๐๐−1 ๐๐ ๐๐๐−1 ๐ช ๐๐ −1 (๐๐๐−๐ ) ๐๐ ๐ถ ๐ถ = โ ๐(๐๐,๐๐−1 , ๐๐,๐๐−1 ) ๐๐๐−1 ๐๐๐−๐ ๐๐−1 ๐๐ With respect to ๐๐ช๐ ๐๐๐ถ ๐๐๐ถ ๐ ๐ is ๐๐๐น๐ and ๐๐๐๐น ๐๐ถ๐ช๐พ,๐ 0 ๐๐๐ช๐,๐−๐ ๐๐พ๐ช๐พ,๐ ๐๐๐ ๐๐๐ช๐,๐−๐ 0 ๐๐๐ช๐,๐−๐ ๐๐๐ = 0 = ๐๐๐ช๐,๐−๐ ๐๐๐ 0 ๐๐๐ช๐,๐−๐ ๐๐๐ช๐,๐ ๐๐๐ช๐,๐ ๐ช [๐๐๐,๐−๐ ] ๐ช [๐๐๐,๐−๐ ] ๐ถ ๐๐ฅ๐,๐ ๐๐๐ช๐,๐−๐ ๐ถ ๐๐ฆ๐,๐ ๐ −1 (๐๐ช ) ๐๐๐ช๐,๐−๐ ๐๐๐ช๐,๐ ๐๐๐ช๐,๐−๐ ๐๐๐ช๐,๐ ๐๐๐ช๐,๐−๐ 0 ๐ถ ๐๐๐,๐ ๐ช = ๐๐๐,๐−๐ = ๐ถ ๐๐๐,๐ ๐ช [๐๐๐,๐−๐ ] For the ith feature point, 0 0 = ๐ถ ๐๐ง๐,๐ ๐๐๐ช๐,๐−๐ ๐ถ ๐๐๐,๐ ๐๐๐ช๐,๐−๐ ๐ถ ๐๐๐,๐ ๐๐๐ช๐,๐−๐ ๐ถ ๐๐๐,๐ ๐ช [๐๐๐,๐−๐ ] 0 ๐ถ ๐๐๐,๐ ๐ถ ๐๐๐,๐−1 ๐ถ ๐๐๐,๐ 0 ๐ถ ๐๐๐,๐−1 [ ๐ถ ๐๐๐,๐ 0 = ๐๐(๐: ๐)๐ช๐,๐−๐ ๐ถ ๐๐๐,๐ 0 [ ๐๐(๐: ๐)๐ช๐,๐−๐ ๐ถ ๐๐๐,๐ 0 0 ๐ถ ๐๐๐,๐ ๐ถ ๐๐๐,๐−1 = ๐ถ ๐๐๐,๐ ๐ถ ๐๐๐,๐−1 ] 0 ๐๐(๐: ๐)๐ช๐,๐−๐ ] 0 0 0 [ 0 ๐ถ ๐๐๐,๐ ๐๐๐น ๐,๐ 0 ๐ถ ๐๐๐,๐ ๐๐๐น ๐,๐ ๐ถ ๐๐๐น ๐,๐ ๐๐๐,๐−1 ๐ถ ๐๐๐น ๐,๐ ๐๐๐,๐−1 ๐ถ ๐๐๐,๐ ๐ถ ๐๐๐,๐ ๐๐๐น ๐,๐ ๐๐๐น ๐,๐ ๐๐๐น ๐ ๐ถ ๐๐๐,๐−1 ๐ถ ๐๐๐น ๐,๐ ๐๐๐,๐−1 ] ๐ ๐ ๐ −โ๐ฅ,๐ โ โ๐ง,๐ 2 2 2 2 2 2 2 ๐ ๐ ๐ ๐ ๐ (โ๐ฅ,๐ + โ๐ฆ,๐ + โ๐ง,๐ ) √โ๐ฅ,๐ + โ๐ฆ,๐ ๐๐๐๐ถ ๐๐๐น ๐ = ๐๐๐๐ถ [ ๐ ๐โ๐ฅ,๐ ๐๐ ๐ถ๐ ๐ ๐โ๐ฆ,๐ ๐๐ ๐ถ๐ ๐ ] ๐โ๐ง,๐ ๐ ๐ถ −โ๐ฆ,๐ โ โ๐ง,๐ = 2 2 2 ๐ ๐ ๐ ๐ ๐ (โ๐ฅ,๐ + โ๐ฆ,๐ + โ๐ง,๐ ) √โ๐ฅ,๐ + โ๐ฆ,๐ 2 ๐ ๐ √โ๐ฅ,๐ + โ๐ฆ,๐ 2 ๐๐๐น ๐ = [− ๐ โ๐ฆ,๐ 2 ๐ ๐ โ๐ฅ,๐ + โ๐ฆ,๐ 2 2 ๐ ๐ ๐ (โ๐ฅ,๐ + โ๐ฆ,๐ + โ๐ง,๐ ) [ ๐๐๐๐ถ 2 ๐ โ๐ฅ,๐ 2 2 ๐ ๐ โ๐ฅ,๐ + โ๐ฆ,๐ 2 0] ๐ถ ๐ถ − cos(๐๐−1 ) sin(๐๐−1 ) ๐๐๐น ๐ ๐ถ ๐ถ −1 ๐ช = ๐ (๐ ) [ − sin(๐๐−1 ) sin(๐๐−1 ) ] ๐ถ ๐๐๐−1 ๐ถ cos(๐๐−1 ) ๐ถ ๐ถ − cos(๐๐−1 ) sin(๐๐−1 ) ๐๐๐น ๐ −1 ๐ช ๐ถ ๐ถ = ๐ (๐ ) [ cos(๐๐−1 ) cos(๐๐−1 ) ] ๐ถ ๐๐๐−1 0 2.4. Measurement Model 2.4.1. Method 1 Measurement are the image pixel location of the feature ๐ผ = [๐ข ๐ฃ]๐ ๐ฅ๐๐ถ ๐๐ฅ๐ถ ๐๐ช๐ = ๐ −1 (๐๐ช๐ ) ๐๐ ([๐ฆ ๐ถ๐ ] − [๐๐ฆ๐ถ ]) + ๐(๐ ๐ถ๐ , ๐๐๐ถ ) ๐ง ๐ถ๐ ๐๐ง๐ถ ( ) ๐ถ ๐ ๐ฅ โ๐ฆ,๐ ๐๐ผ ๐ ๐ถ โ๐ฅ,๐ ๐ข๐ = [๐ฃ ] = ๐ถ ๐ ๐ ๐ฆ โ๐ง,๐ ๐ถ [ โ๐ฅ,๐ ] 2.4.2. Method 2 The measurement model for the ith feature point is given by simple vector summation: ๐ฅ๐๐ถ ๐๐ช๐ = ๐๐ [๐ฆ ๐ถ๐ ] + ๐(๐ ๐ถ๐ , ๐๐๐ถ ) ๐ง ๐ถ๐ ] ๐ถ ๐ ๐ฅ โ๐ฆ,๐ ๐ถ โ๐ฅ,๐ ๐ข๐ ๐๐ผ ๐ = [๐ฃ ] = ๐ถ ๐ ๐ ๐ฆ โ๐ง,๐ ๐ถ [ โ๐ฅ,๐ ] 2.5. Measurement Matrix Linearization 2.5.1. Method 1 ๐๐(๐) ๐๐(๐) ๐๐(๐) ๐๐(๐) ๐๐(๐) = [๐๐๐×๐ ] … ๐ช ๐ช ๐๐ ๐๐๐ ๐๐๐ ๐๐ ๐๐ ๐๐๐ผ ๐๐๐ช ๐๐๐ผ ๐๐๐ช ๐๐๐ผ ๐๐๐ช = [๐๐๐×๐ โ โ โ ๐๐๐ช ๐๐๐ ๐๐๐ช ๐๐๐ช ๐๐๐ช ๐๐๐ช ๐๐๐ผ ๐ ๐๐๐ช๐ − = [ − ๐ถ ๐ ๐ฅ โ๐ฆ,๐ ๐ถ 2 โ๐ฅ,๐ ๐ถ ๐ ๐ฆ โ๐ง,๐ ๐ถ 2 โ๐ฅ,๐ ๐ ๐ฅ ๐ถ โ๐ฅ,๐ 0 … ๐๐๐ผ ๐๐๐ช ] โ ๐๐๐ช ๐๐๐ 0 ๐ ๐ฆ , (in code, fx is Sx, fy is Sy) ๐ถ โ๐ฅ,๐ ] ๐๐๐ช = −๐ −1 (๐๐ช๐ )๐๐ ๐๐๐ช ๐๐(๐) ๐๐๐ช ๐ ๐๐ช ๐ ๐๐ช = [ ] ๐๐๐ช ๐๐๐ฅ๐ถ ๐๐๐ฆ๐ถ ๐๐๐ง๐ถ ๐๐๐ช ๐๐๐ฅ 0 ๐ค ๐ค ๐ค = [โ๐ฅ (๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ง ) + ๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฆ )) + โ๐ฆ (−๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฅ ) + ๐๐๐ (๐๐ฅ )๐ ๐๐(๐๐ฆ )๐ ๐๐(๐๐ง )) + โ๐ง ๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ฆ )] ๐ค ๐ค โ๐ฅ (๐๐๐ (๐๐ฅ )๐ ๐๐(๐๐ง ) − ๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ฆ )) + โ๐ฆ (−๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ง ) − ๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ฆ )๐ ๐๐(๐๐ง )) − โ๐ง๐ค ๐๐๐ (๐๐ฆ )๐ ๐๐(๐๐ฅ ) −โ๐ง๐ค ๐๐๐ (๐๐ฆ ) − โ๐ฅ๐ค ๐๐๐ (๐๐ง ) ∗ ๐ ๐๐(๐๐ฆ ) − โ๐ฆ๐ค ๐ ๐๐(๐๐ฆ )๐ ๐๐(๐๐ง ) ๐๐๐ช = [ −โ๐ง๐ค ๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ฆ ) + โ๐ฅ๐ค ๐๐๐ (๐๐ฆ )๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฅ ) + โ๐ฆ๐ค ๐๐๐ (๐๐ฆ )๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ง ) ] ๐๐๐ฆ −โ๐ง๐ค ๐๐๐ (๐๐ฅ )๐ ๐๐(๐๐ฆ ) + โ๐ฅ๐ค ๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ฆ )๐๐๐ (๐๐ง ) + โ๐ฆ๐ค ๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ฆ )๐ ๐๐(๐๐ง ) โ๐ฆ๐ค ๐๐๐ (๐๐ฆ )๐๐๐ (๐๐ง ) − โ๐ฅ๐ค ๐๐๐ (๐๐ฆ )๐ ๐๐(๐๐ง ) ๐ช ๐๐ = [โ๐ฅ๐ค (−๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ง ) − ๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ฆ )๐ ๐๐(๐๐ง )) + โ๐ฆ๐ค (−๐๐๐ (๐๐ฅ )๐ ๐๐(๐๐ง ) + ๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ฆ ))] ๐๐๐ง โ๐ฅ๐ค (๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฅ ) − ๐๐๐ (๐๐ฅ )๐ ๐๐(๐๐ฆ )๐ ๐๐(๐๐ง )) + โ๐ฆ๐ค (๐ ๐๐(๐๐ฅ )๐ ๐๐(๐๐ง ) + ๐๐๐ (๐๐ฅ )๐๐๐ (๐๐ง )๐ ๐๐(๐๐ฆ )) ๐๐๐ช ๐๐๐ ๐๐๐ช = [๐๐ฅ ๐ถ ๐ ๐๐๐ช ๐๐๐ช ๐๐ฆ๐๐ถ ๐๐ง๐๐ถ ๐๐๐ช ๐๐๐ ๐๐๐ช ๐๐๐ ๐๐๐ช ], ๐๐๐ ๐น๐พ๐๐ช = ๐ −1 (๐๐ช๐ ) ๐๐๐ช [ ๐ถ ๐๐ฅ๐ ๐๐๐ช ๐๐ฆ๐๐ถ ๐๐๐ช ] = ๐น๐พ๐๐ช ๐๐ ๐๐ง๐๐ถ 3x6 ๐๐๐ช = −๐น๐พ๐๐ช โ ๐๐ ๐๐๐ −cos(๐๐ ) sin(๐๐ ) ๐๐๐ช = ๐น๐พ๐๐ช [ cos(๐๐ ) cos(๐๐ ) ] ๐๐๐ 0 −cos(๐๐ ) sin(๐๐ ) ๐๐๐ช = ๐น๐พ๐๐ช [ −sin(๐๐ )sin(๐๐ ) ] ๐๐๐ cos(๐๐ ) 2.5.2. Method 2 ๐๐๐ผ ๐ ๐๐๐ช๐ − = ๐ถ ๐ ๐ฅ โ๐ฆ,๐ ๐ถ 2 โ๐ฅ,๐ ๐ถ ๐ ๐ฆ โ๐ง,๐ − ๐ถ 2 [ โ๐ฅ,๐ ๐ ๐ฅ ๐ถ โ๐ฅ,๐ 0 0 ๐ ๐ฆ ๐ถ โ๐ฅ,๐ ] ๐๐๐ช๐ = ๐๐ ๐ฅ๐๐ถ ๐ [๐ฆ ๐ถ๐ ] ๐ง ๐ถ๐ ๐๐๐ช๐ ๐๐๐ช๐ ๐๐๐ช๐ =[ ๐ถ ] ๐[๐ ๐ถ๐ , ๐๐๐ถ ]๐ ๐๐ ๐ ๐๐ ๐ถ๐ ๐ถ ๐ถ − cos(๐๐−1 ) sin(๐๐−1 ) ๐๐๐ช๐ ๐ถ ๐ถ = [ − sin(๐๐−1 ) sin(๐๐−1 ) ] ๐๐ ๐ถ๐ ๐ถ cos(๐๐−1 ) ๐ถ ๐ถ − cos(๐๐−1 ) sin(๐๐−1 ) ๐๐๐ช๐ ๐ถ ๐ถ = [ cos(๐๐−1 ) cos(๐๐−1 ) ] ๐๐ ๐ถ๐ 0 2.6. Additional Step for Method 1 Update step corrects the camera motion and feature location in camera frame k-1. To continue to the next cycle of tracking, all parameter must be transform to camera frame k. World reference point coordinate and orientation from k-1 to k is related by ๐ถ ๐ถ ๐ถ ๐๐ฅ ๐−1 ๐๐ฅ ๐−1 ๐๐ฅ ๐ ๐ช ๐ถ ๐ถ [ ๐๐ฆ๐ถ ] = ๐ −1 (๐๐๐−๐ ) [๐๐ฆ ๐−1 ] − [๐๐ฆ ๐−1 ] ๐ถ๐−1 ๐ถ ๐๐ง๐ถ ๐ ๐๐ง ๐−1 ๐ ) ( ๐๐ง ๐ ๐ถ ๐ถ ๐๐ฅ ๐ ๐๐ฅ ๐−1 ๐ถ ๐ถ = [ ๐๐ฆ ๐−1 ] − ๐๐ช๐−๐ [ ๐๐ฆ ๐ ] ๐ถ๐ ๐๐ง ๐ถ๐−1 ๐−1 ๐๐ง ๐ Feature parameters are related from one step to the next by ๐ถ ๐ถ ๐ฅ๐ ๐ ๐ถ ๐ฅ๐ ๐−1 ๐๐ฅ ๐−1 ๐ถ [๐ฆ๐๐ถ๐ ] = ๐ −1 (๐๐ช๐−๐ ) [๐ฆ๐๐ถ๐−1 ] − [๐๐ฆ ๐−1 ] ๐ถ ๐ง๐ ๐ ๐ถ ๐−1 ( ๐ง๐ ๐ ๐ถ ๐๐ง ๐−1 ๐ ) ๐ ๐ถ ๐๐ ๐ ๐ถ ๐ถ ๐−๐ (๐ −1 (๐๐ช๐−๐ ) ๐(๐๐,๐๐−1 , ๐๐,๐๐−1 ) [ ๐ ๐ถ๐ ] = ( ) ๐ ๐๐,๐ ๐๐ ๐ ๐ถ ๐ถ where ๐(๐๐,๐๐−1 , ๐๐,๐๐−1 ) is the unit vector pointing from the initialization point to the feature seen by the camera at step k-1 The covariance matrix is also affected by this transform. Therefore must be updated. The new covariance matrix is related to the old one by ๐ถ ๐ถ ๐๐ ๐ = ๐ฝ๐ถ๐−1 →๐ถ๐ ๐๐ ๐−1 ๐ฝ๐ถ๐๐−1 →๐ถ๐ The calculation of ๐ฝ๐ถ๐−1 →๐ถ๐ is the same as the linearization of prediction matrix in section 2.3 Method 2. 2.7. State Vector Initialization and Derivatives The initialization function extracts the feature’s parameters from feature coordinates in image plane. First, a vector pointing from camera optical center to feature can be defined by 1 โ๐ถ = [๐ข โ ๐ ๐ฅ ] ๐ฃ โ ๐ ๐ฆ Then because the feature is referenced to camera origin at initialization, the parameters [๐ฅ๐๐ถ ๐ฆ๐๐ถ ๐ง๐๐ถ ] is the optical center [0 0 0], and the elevation-azimuth pair [๐๐๐ถ , ๐๐๐ถ ] can be directly calculated from โ๐ถ โ๐ง๐ถ ๐ = arctan 2 2 ๐ถ √ ๐ถ ( โ๐ฅ + โ๐ฆ ) ๐ = arctan ( โ๐ฆ๐ถ โ๐ฅ๐ถ ) ๐ is initialized to be 0.1 because we are dealing with long distance objects, with variance of 1. For every new feature added, the new covariance matrix becomes ๐ท ๐ท๐๐๐ = ๐ฑ [ ๐๐๐ ๐ ๐ ๐ป ]๐ฑ ๐น where ๐ท๐๐๐ is the covariance matrix of the existing state vector, and ๐๐ฅ ๐ถ ๐ ๐๐ฆ ๐ถ ๐ ๐ ๐๐ง ๐ถ ๐น= ๐ ๐๐0 ๐๐๐๐๐๐ ๐ ๐๐๐๐๐๐ ] [ ๐๐ฅ ๐ถ , ๐๐ฆ๐ถ , ๐๐ง๐ถ is the uncertainty of the camera optical center position. ๐๐๐๐๐๐ is the pixel variance, ๐ ๐ ๐ ๐๐๐๐๐๐ = 1, and ๐๐0 is the initial uncertainty of the inverse distance, initialized to 1 to cover any distance from 0 to infinity. ๐ฑ is the jacobian matrix for the initialization formula. ๐ฐ ๐ฑ= ๐๐๐ [๐๐ถ๐ฟ๐ช๐พ ๐๐๐ ๐๐๐ช ๐๐๐ ๐๐๐ช ๐ โฎ ๐ ๐๐๐ ๐ … ๐ ๐๐๐ ] Since ๐๐ is not a function of ๐ถ๐ฟ๐ช๐พ , ๐๐ช , ๐๐ช .Then it follows ๐๐๐ ๐๐ถ๐ฟ๐ช๐พ ๐๐๐ = ๐๐×๐ ๐๐๐ช = ๐๐×๐ ๐๐๐ = ๐๐×๐ ๐๐๐ช ๐ฑ can be simplified as ๐ฐ ๐ ๐๐ ๐] ๐ฑ = [๐ ๐๐๐ where ๐๐ = [๐ฅ๐ ๐ฆ๐ ๐ง๐ ๐๐ ๐ข๐ ๐ฃ๐ ]. Then ๐ฐ๐×๐ ๐๐๐ = ๐๐๐ ๐ [ ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ ๐ ๐๐ ๐๐ข ๐๐ ๐๐ข ๐๐ ๐๐ข ๐ฐ๐×๐ ๐๐ ๐๐ฃ ๐๐ = ๐ ๐๐ฃ ๐๐ [ ๐๐ฃ] ๐ 0 0 ๐๐ ๐๐ 0 ๐๐ข ๐๐ฃ ๐๐ ๐๐ 0 ๐๐ข ๐๐ฃ ] 1 where ๐๐ ๐๐ ๐๐๐ช = ๐ช ๐๐ข ๐๐ ๐๐ข ๐๐ ๐๐ ๐๐๐ช = ๐ช ๐๐ข ๐๐ ๐๐ข ๐๐ ๐๐ ๐๐๐ช = ๐ช ๐๐ฃ ๐๐ ๐๐ฃ ๐๐ ๐๐ ๐๐๐ช = ๐ช ๐๐ฃ ๐๐ ๐๐ฃ and ๐ −โ๐ฅ๐ถ โ โ๐ง๐ถ 2 2 2 2 (โ๐ฅ๐ถ + โ๐ฆ๐ถ + โ๐ง๐ถ )√โ๐ฅ๐ถ + โ๐ฆ๐ถ 2 −โ๐ฆ๐ โ โ๐ง๐ ๐๐ = 2 2 2 2 2 ๐๐๐ช (โ๐ฅ๐ถ + โ๐ฆ๐ถ + โ๐ง๐ถ )√โ๐ฅ๐ถ + โ๐ฆ๐ถ √โ๐ฅ๐ถ 2 + โ๐ฆ๐ถ 2 [ 2 2 2 (โ๐ฅ๐ถ + โ๐ฆ๐ถ + โ๐ง๐ถ ) โ๐ฆ๐ถ ๐๐ − = [ ๐ถ2 2 ๐๐๐ช โ๐ฅ + โ๐ฆ๐ถ ๐๐๐ช ๐๐๐ช =[ ๐[๐ข ๐ฃ] ๐๐ข ] โ๐ฅ๐ถ 2 โ๐ฅ๐ถ + โ๐ฆ๐ถ 0 ๐๐๐ช ] = [๐ ๐ฅ ๐๐ฃ 0 2 0] 0 0] ๐ ๐ฆ