Skip to content

Published orientation covariance is not a covariance. #1

@InigoMoreno

Description

@InigoMoreno

temp += (mean - data[i]) * (mean - data[i]);rock-drivers/drivers-vicon/ViconUncertainty.hpp#L61

Here, the variance of the transformation matrix is computed.

rbs.cov_position = transform_uncertainty.block<3,1>(0,3).asDiagonal();
rbs.cov_orientation = transform_uncertainty.block<3,3>(0,0); rock-drivers/drivers-orogen-vicon/tasks/Task.cpp#L101
However, here, the variance is published on the RigidBodyState as a covariance.

At least for the position the variance is placed on the diagonal of the covariance matrix, which is correct. But for the orientation, the variance of the transformation matrix is published as the covariance of the orientation. This orientation covariance, according to the rock documentation should be the covariance matrix of the orientation as an axis/angle manifold in body coordinates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions