CentralCamera.visjac_e#
- CentralCamera.visjac_e(E: float | int | list[float | int] | tuple[float | int, ...] | ndarray, plane: float | int | list[float | int] | tuple[float | int, ...] | ndarray) ndarray[source]#
Visual Jacobian for ellipse features
- Parameters:
E (array_like(5), ndarray(5,N)) – image plane ellipse parameters
plane (array_like(4)) – plane containing the ellipse
- Returns:
visual Jacobian matrix for ellipse feature
- Return type:
ndarray(2,6), ndarray(2N,6)
Compute the Jacobian gives the rates of change of the ellipse parameters in terms of camera spatial velocity.
For image plane ellipses
\[u^2 + E_0 v^2 -2 E_1 u v + 2 E_2 u + 2 E_3 v + E_4 = 0\]the image Jacobian \(\mat{J}\) maps
\[\begin{split}\begin{pmatrix} \dot{E_0} \\ \vdots \\ \dot{E_4} \end{pmatrix} = \mat{J}(\vec{p}, z) \vec{\nu}\end{split}\]camera spatial velocity \(\vec{\nu}\) to the velocity of the ellipse parameters \((E_0 \ldots E_4)\).
The world plane containing the ellipse is also required, and is provided as a vector \((a,b,c,d)\) such that
\[aX + bY + cZ + d = 0\]Example:
>>> from machinevisiontoolbox import CentralCamera >>> from spatialmath import SE3 >>> camera = CentralCamera.Default() >>> camera.visjac_e((0.5, 0, -1000, -500, 374900), (0, 0, 1, -1)) array([[ 0.0000e+00, 0.0000e+00, 0.0000e+00, -1.0000e+03, -1.0000e+03, 0.0000e+00], [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 1.0000e+03, -5.0000e+02, -5.0000e-01], [ 5.0000e-01, 0.0000e+00, -5.0000e+02, 0.0000e+00, 1.6251e+06, -5.0000e+02], [ 0.0000e+00, 2.5000e-01, -2.5000e+02, 3.7490e+05, 1.0000e+06, 1.0000e+03], [-1.0000e+03, -5.0000e+02, 3.7490e+05, 1.0000e+03, -7.4980e+08, 0.0000e+00]], shape=(5, 6))
- References:
A New Approach to Visual Servoing in Robotics, B. Espiau, F. Chaumette, and P. Rives, IEEE Transactions on Robotics and Automation, vol. 8, pp. 313-326, June 1992.
Visual servo control 2: Advanced approaches Chaumette F, Hutchinson S, IEEE Robot Autom Mag 14(1):109–118 (2007)
P. Corke, Robotics, Vision & Control for Python, Springer, 2023, Section 15.3.2.
- Seealso: