Added comment on SE(3) in kinematics and nits in lerobot/envs/utils.py
This commit is contained in:
@@ -47,7 +47,9 @@ def preprocess_observation(observations: dict[str, np.ndarray]) -> dict[str, Ten
|
|||||||
# TODO(aliberts, rcadene): use transforms.ToTensor()?
|
# TODO(aliberts, rcadene): use transforms.ToTensor()?
|
||||||
img = torch.from_numpy(img)
|
img = torch.from_numpy(img)
|
||||||
|
|
||||||
if img.dim() == 3:
|
# When preprocessing observations in a non-vectorized environment, we need to add a batch dimension.
|
||||||
|
# This is the case for human-in-the-loop RL where there is only one environment.
|
||||||
|
if img.ndim == 3:
|
||||||
img = img.unsqueeze(0)
|
img = img.unsqueeze(0)
|
||||||
# sanity check that images are channel last
|
# sanity check that images are channel last
|
||||||
_, h, w, c = img.shape
|
_, h, w, c = img.shape
|
||||||
|
|||||||
@@ -51,6 +51,15 @@ def screw_axis_to_transform(S, theta):
|
|||||||
def pose_difference_se3(pose1, pose2):
|
def pose_difference_se3(pose1, pose2):
|
||||||
"""
|
"""
|
||||||
Calculates the SE(3) difference between two 4x4 homogeneous transformation matrices.
|
Calculates the SE(3) difference between two 4x4 homogeneous transformation matrices.
|
||||||
|
SE(3) (Special Euclidean Group) represents rigid body transformations in 3D space, combining rotation (SO(3)) and translation.
|
||||||
|
Each 4x4 matrix has the following structure, a 3x3 rotation matrix in the top-left and a 3x1 translation vector in the top-right:
|
||||||
|
|
||||||
|
[R11 R12 R13 tx]
|
||||||
|
[R21 R22 R23 ty]
|
||||||
|
[R31 R32 R33 tz]
|
||||||
|
[ 0 0 0 1]
|
||||||
|
|
||||||
|
where Rij is the 3x3 rotation matrix and [tx,ty,tz] is the translation vector.
|
||||||
|
|
||||||
pose1 - pose2
|
pose1 - pose2
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user