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()
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:

visjac_p visjac_p_polar visjac_l