manifpy._bindings.SE2Tangent class

Static methods

def Generator(i: int) -> numpy.ndarray[numpy.float64[3, 3]]
Static helper to get the ith basis element of the Lie Algebra.
def InnerWeights() -> numpy.ndarray[numpy.float64[3, 3]]
Static helper to get the weight matrix of the Weighted Euclidean inner product, relative to the space basis.
def Random() -> SE2Tangent
Static helper to create a random object of the Lie group.
def Zero() -> SE2Tangent
Static helper to create an object of the Lie group tangent set to zero.

Methods

def angle(self, /) -> float
def coeffs(self, /) -> numpy.ndarray[numpy.float64[3, 1]]
Get a reference to underlying data.
def coeffs_copy(self, /) -> numpy.ndarray[numpy.float64[3, 1]]
Return a copy of underlying data.
def exp(self, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2
Get the corresponding Lie group element.
def generator(self, i: int) -> numpy.ndarray[numpy.float64[3, 3]]
Get the ith basis element of the Lie Algebra.
def hat(self, /) -> numpy.ndarray[numpy.float64[3, 3]]
Get the isomorphic element in the Lie algebra.
def inner(self, other: manifpy._bindings._SE2TangentBase) -> float
Get inner product of this and another Tangent weighted by W.
def innerWeights(self, /) -> numpy.ndarray[numpy.float64[3, 3]]
Get the weight matrix of the Weighted Euclidean inner product, relative to the space basis.
def isApprox(self, other: SE2Tangent, eps: float = 1e-10) -> bool
Evaluate whether self and other are 'close'.
def isApprox(self, other: numpy.ndarray[numpy.float64[3, 1]], eps: float = 1e-10) -> bool
Evaluate whether self and other are 'close'.
def ljac(self, /) -> numpy.ndarray[numpy.float64[3, 3]]
Get the left Jacobian.
def lplus(self, state: SE2, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_state: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2
Left oplus operation of the Lie group.
def minus(self, other: manifpy._bindings._SE2TangentBase, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_other: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2Tangent
Minus operation in the vector space.
def plus(self, state: SE2, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_state: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2
An alias for the 'rplus' function.
def plus(self, other: manifpy._bindings._SE2TangentBase, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_other: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2Tangent
Plus operation in the vector space.
def rjac(self, /) -> numpy.ndarray[numpy.float64[3, 3]]
Get the right Jacobian.
def rplus(self, state: SE2, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_state: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2
Right oplus operation of the Lie group.
def setRandom(self, /) -> SE2Tangent
Set self to a random value.
def setZero(self, /) -> SE2Tangent
Set self to zero.
def smallAdj(self, /) -> numpy.ndarray[numpy.float64[3, 3]]
def squaredWeightedNorm(self, /) -> float
Get the squared Euclidean weighted norm.
def weightedNorm(self, /) -> float
Get the Euclidean weighted norm.
def x(self, /) -> float
def y(self, /) -> float

Special methods

def __add__(self, arg0: SE2, /) -> SE2
Operator overload for the 'plus' function.
def __add__(self, arg0: SE2Tangent, /) -> SE2Tangent
Operator overload for the 'plus' function.
def __eq__(self, arg0: SE2Tangent, /) -> bool
Operator overload for the 'isApprox' function.
def __init__(self, /) -> None
Default constructor, uninitialized data.
def __init__(self, arg0: numpy.ndarray[numpy.float64[3, 1]], /) -> None
Constructor given data vector.
def __init__(self, arg0: float, arg1: float, arg2: float, /) -> None
def __mul__(self, arg0: float, /) -> SE2Tangent
Multiply the vector by a scalar.
def __neg__(self, /) -> SE2Tangent
def __rmatmul__(self, arg0: numpy.ndarray[numpy.float64], /) -> SE2Tangent
def __rmul__(self, arg0: float, /) -> SE2Tangent
Multiply the vector by a scalar.
def __rmul__(self, arg0: numpy.ndarray[numpy.float64], /) -> SE2Tangent
def __str__(self, /) -> str
def __sub__(self, arg0: SE2Tangent, /) -> SE2Tangent
Operator overload for the 'minus' function.
def __truediv__(self, arg0: float, /) -> SE2Tangent
Divide the vector by a scalar.

Data

Dim = 2
DoF = 3
RepSize = 3

Method documentation

def manifpy._bindings.SE2Tangent.exp(self, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2

Get the corresponding Lie group element.

Eq. (23).

Parameters ---------- J_out_self [out] : numpy.ndarray Jacobian of the log wrt self.

def manifpy._bindings.SE2Tangent.hat(self, /) -> numpy.ndarray[numpy.float64[3, 3]]

Get the isomorphic element in the Lie algebra.

See Eq. (10).

def manifpy._bindings.SE2Tangent.inner(self, other: manifpy._bindings._SE2TangentBase) -> float

Get inner product of this and another Tangent weighted by W.

ret = self^T x W x other

def manifpy._bindings.SE2Tangent.isApprox(self, other: SE2Tangent, eps: float = 1e-10) -> bool

Evaluate whether self and other are 'close'.

Parameters ---------- other : Lie group tangent Another object of the same Lie group tangent. eps : double Threshold for equality comparison. Default: 1e-10.

def manifpy._bindings.SE2Tangent.isApprox(self, other: numpy.ndarray[numpy.float64[3, 1]], eps: float = 1e-10) -> bool

Evaluate whether self and other are 'close'.

Parameters ---------- other : numpy.array Another object of the same Lie group tangent. eps : double Threshold for equality comparison. Default: 1e-10.

def manifpy._bindings.SE2Tangent.ljac(self, /) -> numpy.ndarray[numpy.float64[3, 3]]

Get the left Jacobian.

This is the left Jacobian of 'exp', what is commonly known as "the left Jacobian".

See Eq. (44) for the left Jacobian of general functions. See Eqs. (126,145,164,179,191) for implementations of the left Jacobian of exp.

def manifpy._bindings.SE2Tangent.lplus(self, state: SE2, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_state: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2

Left oplus operation of the Lie group.

See Eqs. (27).

Parameters ---------- other : Lie group Another object of the same Lie group. J_out_self [out] : numpy.ndarray Jacobian of the oplus operation wrt self. J_out_state [out] : numpy.ndarray Jacobian of the oplus operation wrt state.

def manifpy._bindings.SE2Tangent.minus(self, other: manifpy._bindings._SE2TangentBase, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_other: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2Tangent

Minus operation in the vector space.

Parameters ---------- other : Lie group tangent Another object of the same Lie group tangent. J_out_self [out] : numpy.ndarray Jacobian of the oplus operation wrt self. J_out_other [out] : numpy.ndarray Jacobian of the oplus operation wrt other.

def manifpy._bindings.SE2Tangent.plus(self, other: manifpy._bindings._SE2TangentBase, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_other: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2Tangent

Plus operation in the vector space.

Parameters ---------- other : Lie group tangent Another object of the same Lie group tangent. J_out_self [out] : numpy.ndarray Jacobian of the oplus operation wrt self. J_out_other [out] : numpy.ndarray Jacobian of the oplus operation wrt other.

def manifpy._bindings.SE2Tangent.rjac(self, /) -> numpy.ndarray[numpy.float64[3, 3]]

Get the right Jacobian.

This is the right Jacobian of 'exp', what is commonly known as "the right Jacobian".

See Eq. (41) for the right Jacobian of general functions. See Eqs. (126,143,163,179,191) for implementations of the right Jacobian of exp.

def manifpy._bindings.SE2Tangent.rplus(self, state: SE2, J_out_self: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None, J_out_state: typing.Optional[numpy.ndarray[numpy.float64[3, 3], flags.writeable, flags.c_contiguous]] = None) -> SE2

Right oplus operation of the Lie group.

See Eqs. (25).

Parameters ---------- other : Lie group Another object of the same Lie group. J_out_self [out] : numpy.ndarray Jacobian of the oplus operation wrt self. J_out_state [out] : numpy.ndarray Jacobian of the oplus operation wrt state.