尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

pico到机器人坐标系变换推导(最终版,以此为准)

pico到机器人坐标系变换推导(最终版,以此为准)
📅 发布时间:2026/6/25 16:35:40

VR 坐标系 → 机器人坐标系变换矩阵原理与推导

本文档对应配置:robot/yaocaozuo/r11_config.yaml中的coord_transform
对应代码:robot/yaocaozuo/pico_data.py中的vr_pose_to_robot()


1. 问题背景

遥操作机器人时存在两种坐标系:

坐标系XYZ
Pico VR右上后
Robot前左上

注:Pico Body Tracking SDK 默认使用 Unity 风格的左手坐标系约定,但实际返回的轴方向为X=右、Y=上、Z=后(朝用户身后为正 Z)。这一点与网上常见的"Unity Z 朝前"描述相反,是 Pico SDK 的实际行为,本项目通过实测确认。

目标:已知 VR 系下的位姿T_vr,求在机器人坐标系下表示的位姿T_robot,使动作方向保持一致。


2. 核心数学原理

2.1 换基矩阵 C

设:

C : VR 坐标系 → 机器人坐标系 的基变换矩阵

本质是一个换基矩阵(Change of Basis Matrix),其几何意义是:每一列是 VR 某个坐标轴单位向量在机器人坐标系下的表示。

2.2 点的转换

一个点在 VR 系下坐标为p_vr,在机器人系下为:

p_robot = C · p_vr

2.3 VR 中的变换作用

VR 系下的变换作用在 VR 系的点上:

p_vr' = T_vr · p_vr

2.4 转到机器人坐标系

由 (2.2) 反向得p_vr = C⁻¹ · p_robot,代入 (2.3):

p_robot' = C · p_vr' = C · (T_vr · p_vr) = C · T_vr · p_vr = C · T_vr · (C⁻¹ · p_robot) = (C · T_vr · C⁻¹) · p_robot

2.5 最终公式

┌─────────────────────────────────────┐ │ T_robot = C · T_vr · C⁻¹ │ └─────────────────────────────────────┘

2.6 直观理解(口诀:C·T·C⁻¹)

步骤操作含义
1.C⁻¹机器人坐标 → VR 坐标把输入"翻译"成 VR 听得懂的话
2.T_vr在 VR 系下做变换用 VR 的语言执行变换
3.CVR 坐标 → 机器人坐标把结果"翻译"回机器人语言

一句话总结:

C · T · C⁻¹= “把一个变换从一个坐标系,正确翻译到另一个坐标系”

2.7 线性代数角度

T_vr和T_robot是同一个线性算子,只是表达在不同基(coordinate frame)下。这种关系叫做相似变换(Similarity Transform):

T_robot = C · T_vr · C⁻¹

3. 如何构建变换矩阵 C(按 Pico 正确定义)

3.1 坐标轴映射

Pico 轴物理方向Robot 轴表示说明
Pico X右[0, -1, 0]右 = Robot -Y
Pico Y上[0, 0, 1]上 = Robot +Z
Pico Z后[-1, 0, 0]后 = Robot -X

3.2 构建换基矩阵 C

C 的每一列是 Pico 某个轴单位向量在 Robot 系下的表示:

  • 第 1 列 = Pico X 在 Robot 系 =[0, -1, 0]
  • 第 2 列 = Pico Y 在 Robot 系 =[0, 0, 1]
  • 第 3 列 = Pico Z 在 Robot 系 =[-1, 0, 0]

拼起来:

importnumpyasnp# Pico VR 坐标系 → 机器人坐标系的换基矩阵C=np.array([[0,0,-1],# 第1列:Pico X(右) → Robot -Y[-1,0,0],# 第2列:Pico Y(上) → Robot +Z[0,1,0]# 第3列:Pico Z(后) → Robot -X])

3.3 验证三列映射

# Pico X 轴 [1,0,0] → Robot -Y [0,-1,0] (右)print(C @[1,0,0])# [0, -1, 0] ✓# Pico Y 轴 [0,1,0] → Robot +Z [0,0,1] (上)print(C @[0,1,0])# [0, 0, 1] ✓# Pico Z 轴 [0,0,1] → Robot -X [-1,0,0] (后)print(C @[0,0,1])# [-1, 0, 0] ✓

三列全部正确。

3.4 验证 C 是正交矩阵

# 行列式 = +1,C 是正交矩阵,且是纯旋转(不含反射)print(np.linalg.det(C))# 1.0# C^T · C = I,即 C⁻¹ = C^Tprint(C.T @ C)# 单位阵

由于 C 是正交矩阵且det(C) = 1,C⁻¹ = Cᵀ,相似变换可简化为:

T_robot = C · T_vr · Cᵀ

3.5 完齐次变换矩阵

齐次坐标下用 4×4 矩阵:

# 4x4 齐次变换矩阵(用于变换位姿矩阵)CONVERT_MATRIX=np.array([[0,0,-1,0],[-1,0,

相关新闻

  • AI模型部署实践:从版权合规到实操验证
  • Fastjson反序列化漏洞CVE-2017-18349原理与实战复现
  • 终极屏幕翻译工具:告别复制粘贴,实现真正的框选即译

最新新闻

  • 勒索软件即服务(RaaS)新变种Kawa4096:模块化攻击与防御实战
  • 20亿美元!腾讯等中方资本回购Meta持有的Manus股权,重塑通用AI赛道格局
  • Android手机搭建移动渗透测试平台:Termux运行Metasploit实战指南
  • 免费Windows桌面分区工具NoFences:如何5分钟内整理杂乱桌面
  • 原码反码补码全面解析
  • 逆向解析PDD Anti-Content参数:HMAC-SHA256算法还原与JS反爬实战

日新闻

  • 利用微PE工具箱进行系统安装教程
  • 渗透测试十大核心工具实战指南:从信息搜集到报告生成全流程解析
  • 暗黑破坏神2存档编辑器:网页版角色修改工具完全指南

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号