对相机位姿 导出 Tum 格式的位姿
2023-12-21 06:11:52
需求:针对 [N,4,4] 格式的 poses np.darray 导出其 Tum 格式 的位姿。
时间戳根据 N 的值,线性得到。
import numpy as np
import os
import torch
from scipy.spatial.transform import Rotation
def rotation_matrix_to_tum_format(rotation_matrix):
rotation = Rotation.from_matrix(rotation_matrix)
quaternion = rotation.as_quat()
return quaternion
def convert_to_tum_format(poses, timestamps):
tum_poses = []
for i in range(poses.shape[0]):
pose = poses[i]
quaternion = rotation_matrix_to_tum_format(pose[:3, :3])
tum_timestamp = timestamps[i] * 0.1 # Scaling factor of 0.1 to convert timestamps to seconds
tum_pose = f"{tum_timestamp:.6f} {' '.join(map(str, pose[:3, 3]))} {' '.join(map(str, quaternion))}"
tum_poses.append(tum_pose)
return tum_poses
def write_tum_poses_to_file(file_path, tum_poses):
with open(file_path, 'w') as f:
for pose in tum_poses:
f.write(pose + '\n')
def convert_and_write_tum_poses(c2w_variable, output_filename, timestamps):
# 调用适当的函数将变量转换为 TUM 格式
tum_poses = convert_to_tum_format(c2w_variable, timestamps)
# 将 TUM 格式的位姿写入文件
write_tum_poses_to_file(output_filename, tum_poses)
n_poses = c2w_GT_traj.shape[0]
custom_timestamps = np.arange(n_poses)
convert_and_write_tum_poses(c2w_GT_traj, 'tum_c2w_GT_traj.txt', custom_timestamps)
文章来源:https://blog.csdn.net/OrdinaryMatthew/article/details/135107566
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!