CentralCamera.visjac_p#
- CentralCamera.visjac_p(uv: ndarray | float | int | list[float | int] | tuple[float | int, ...], depth: float | ndarray) ndarray[source]#
Visual Jacobian for point features
- Parameters:
p (array_like(2), ndarray(2,N)) – image plane point or points
depth (float, array_like(N)) – point depth
- Returns:
visual Jacobian matrix
- Return type:
ndarray(2,6), ndarray(2N,6)
Compute the image Jacobian \(\mat{J}\) which maps
\[\dvec{p} = \mat{J}(\vec{p}, z) \vec{\nu}\]camera spatial velocity \(\vec{\nu}\) to the image plane velocity \(\dvec{p}\) of the point.
If
pdescribes multiple points then return a stack of these \(2\times 6\) matrices, one per point.Depth is the z-component of the point’s coordinate in the camera frame. If
depthis a scalar then it is the depth for all points.Example:
>>> from machinevisiontoolbox import CentralCamera >>> from spatialmath import SE3 >>> camera = CentralCamera.Default() >>> camera.visjac_p((200, 300), 2) array([[-400. , 0. , -150. , 75. , -912.5, -200. ], [ 0. , -400. , -100. , 850. , -75. , 300. ]])
- References:
A tutorial on Visual Servo Control, Hutchinson, Hager & Corke, IEEE Trans. R&A, Vol 12(5), Oct, 1996, pp 651-670.
P. Corke, Robotics, Vision & Control for Python, Springer, 2023, Section 15.2.1.
- Seealso: