Shortcuts

pypose.randn_se3

class pypose.randn_se3(*lsize, sigma=1.0, **kwargs)[source]

Returns se3_type LieTensor filled with random numbers.

\[\mathrm{data}[*, :] = [\tau_x, \tau_y, \tau_z, \delta_x, \delta_y, \delta_z], \]

where translation \([\tau_x, \tau_y, \tau_z]\) is generated from a normal distribution \(\mathcal{N}(0, \sigma_t)\), rotation \([\delta_x, \delta_y, \delta_z]\) is generated using pypose.randn_so3() with standard deviation \(\sigma_r\). Note that standard deviations \(\sigma_t\) and \(\sigma_r\) are specified by sigma (\(\sigma\)), where \(\sigma = (\sigma_t, \sigma_r)\).

Parameters:
  • lsize (int...) – a sequence of integers defining the lshape of the output tensor. Can be a variable number of arguments or a collection like a list or tuple.

  • sigma (float or (float...), optional) – standard deviation (\(\sigma_t\) and \(\sigma_r\)) for the two normal distribution. Default: 1.0.

  • requires_grad (bool, optional) – If autograd should record operations on the returned tensor. Default: False.

  • generator (torch.Generator, optional) – a pseudorandom number generator for sampling

  • dtype (torch.dtype, optional) – the desired data type of returned tensor. Default: None. If None, uses a global default (see torch.set_default_tensor_type()).

  • layout (torch.layout, optional) – the desired layout of returned Tensor. Default: torch.strided.

  • device (torch.device, optional) – the desired device of returned tensor. Default: None. If None, uses the current device for the default tensor type (see torch.set_default_tensor_type()). Device will be the CPU for CPU tensor types and the current CUDA device for CUDA tensor types.

Returns:

a se3_type LieTensor.

Return type:

LieTensor

Note

The parameter \(\sigma\) can either be:

  • a single float – in which all the elements in the se3_type share the same sigma, i.e., \(\sigma_{\rm{t}}\) = \(\sigma_{\rm{r}}\) = \(\sigma\).

  • a tuple of two floats – in which case, the specific sigmas are assigned independently, i.e., \(\sigma\) = (\(\sigma_{\rm{t}}\), \(\sigma_{\rm{r}}\)).

  • a tuple of four floats – in which case, the specific sigmas for each translation data are assigned independently, i.e., \(\sigma\) = (\(\sigma_{\rm{tx}}\), \(\sigma_{\rm{ty}}\), \(\sigma_{\rm{tz}}\), \(\sigma_{\rm{r}}\)).

Example

For \(\sigma = (\sigma_t, \sigma_r)\)

>>> pp.randn_se3(2, sigma=(1.0, 0.5))
se3Type LieTensor:
tensor([[-0.4226,  0.4028, -1.3824,  0.4433, -0.2029, -0.1193],
        [-0.8423, -1.0435,  0.8311, -0.4733,  0.0175,  0.1400]])

For \(\sigma = (\sigma_{tx}, \sigma_{ty}, \sigma_{tz}, \sigma_{r})\)

>>> pp.randn_se3(2, sigma=(1.0, 2.0, 3.0, 0.5))
se3Type LieTensor:
tensor([[ 1.1209,  1.4211, -0.7237, -0.1168,  0.0128,  0.1479],
        [ 0.1765,  0.3891,  3.4799, -0.0411, -0.2616, -0.1028]])

Docs

Access documentation for PyPose

View Docs

Tutorials

Get started with tutorials and examples

View Tutorials

Get Started

Find resources and how to start using pypose

View Resources