ADNS3080 Optical Flow Sensor, Link, Optical Mouse based optical flow sensor. Choosen in paper
To Log Everything I find useful. If you find anything inappropriate, please contact cuijinqiang@gmail.com
Friday, October 11, 2013
Hardware Related
Sensor
ADNS3080 Optical Flow Sensor, Link, Optical Mouse based optical flow sensor. Choosen in paper
ADNS3080 Optical Flow Sensor, Link, Optical Mouse based optical flow sensor. Choosen in paper
Tuesday, September 10, 2013
Thursday, August 15, 2013
Image stiching in OpenCV
Reference to http://ramsrigoutham.com/2012/11/22/panorama-image-stitching-in-opencv/
Source Code
Main steps of the code:
- Load two images;
- Convert to gray scale;
- Using SURF detector to find SURF descriptor in both images;
- matching the SURF descriptor using FLANN Matcher;
- Postprocessing matches to find good matches
- Using RANSAC to estimate the Homography matrix using the matched SURF descriptors;
- Warping the images based on the homography matrix
The image shows the definition of Homography which transforms 2d Planar point to the image plane.
Tuesday, August 6, 2013
Resource to learn optimization
http://www.quora.com/Mathematical-Optimization/What-are-some-good-resources-to-learn-about-optimization#
Theory behind MPC
MPC is based on iterative, finite horizon optimization of a plant model. At time t the current plant state is sampled and a cost minimizing control strategy is computed (via a numerical minimization algorithm) for a relatively short time horizon in the future:
. Specifically, an online or on-the-fly calculation is used to explore state trajectories that emanate from the current state and find (via the solution of Euler-Lagrange equations) a cost-minimizing control strategy until time
. Only the first step of the control strategy is implemented, then the plant state is sampled again and the calculations are repeated starting from the current state, yielding a new control and new predicted state path. The prediction horizon keeps being shifted forward and for this reason MPC is also called receding horizon control.
. Specifically, an online or on-the-fly calculation is used to explore state trajectories that emanate from the current state and find (via the solution of Euler-Lagrange equations) a cost-minimizing control strategy until time
. Only the first step of the control strategy is implemented, then the plant state is sampled again and the calculations are repeated starting from the current state, yielding a new control and new predicted state path. The prediction horizon keeps being shifted forward and for this reason MPC is also called receding horizon control.Sunday, May 26, 2013
Hessian Matrix and Jacobian Matrix
Hessian Matrix
In mathematics, the Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a function. It describes the local curvature of a function of many variables. The Hessian matrix was developed in the 19th century by the German mathematician Ludwig Otto Hesse and later named after him. Hesse originally used the term "functional determinants".
Given the real-valued function
if all second partial derivatives of f exist and are continuous over the domain of the function, then the Hessian matrix of f is
where x = (x1, x2, ..., xn) and Di is the differentiation operator with respect to the ith argument. Thus
Because f is often clear from context,
is frequently abbreviated to
.
The determinant of the above matrix is also sometimes referred to as the Hessian.[1]
Hessian matrices are used in large-scale optimization problems within Newton-type methods because they are the coefficient of the quadratic term of a local Taylor expansion of a function. That is,
where J is the Jacobian matrix, which is a vector (the gradient) for scalar-valued functions. The full Hessian matrix can be difficult to compute in practice; in such situations, quasi-Newton algorithms have been developed that use approximations to the Hessian. The best-known quasi-Newton algorithm is the BFGS algorithm
Jacobian Matrix
In vector calculus, the Jacobian matrix is the matrix of all first-order partial derivatives of a vector-valued function. Specifically, suppose
is a function (which takes as input real n-tuples and produces as output real m-tuples). Such a function is given by m real-valued component functions,
. The partial derivatives of all these functions with respect to the variables
(if they exist) can be organized in an m-by-n matrix, the Jacobian matrix
of
, as follows:
Friday, May 3, 2013
Implementation of KalmanFilter in Opencv
Two Functions used: gemm , solve
gemm: Performs generalized matrix multiplication.
gemm: Performs generalized matrix multiplication.
- C++: void gemm(InputArray src1, InputArray src2, double alpha, InputArray src3, double gamma, OutputArray dst, intflags=0 )
- The function performs generalized matrix multiplication similar to the gemm functions in BLAS level 3. For example, gemm(src1,src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T) corresponds to
solve: Solves one or more linear systems or least-squares problems.- C++: bool solve(InputArray src1, InputArray src2, OutputArray dst, int flags=DECOMP_LU)
-
- solution (matrix inversion) method.
- DECOMP_LU Gaussian elimination with optimal pivot element chosen.
- DECOMP_CHOLESKY Cholesky
factorization; the matrix src1 must be symmetrical and positively defined.
- DECOMP_EIG eigenvalue decomposition; the matrix src1 must be symmetrical.
- DECOMP_SVD singular value decomposition (SVD) method; the system can be over-defined and/or the matrix src1 can be singular.
- DECOMP_QR QR factorization; the system can be over-defined and/or the matrix src1 can be singular.
- DECOMP_NORMAL while all the previous flags are mutually exclusive, this flag can be used together with any of the previous; it means that the normal equations
are solved instead of the original system
.
The function solve solves a linear system or least-squares problem (the latter is possible with SVD or QR methods, or by specifying the flag DECOMP_NORMAL ):
Subscribe to:
Posts (Atom)




