news 2026/10/9 1:55:17

hom_mat3d_translate_local 和 hom_mat3d_translate 区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hom_mat3d_translate_local 和 hom_mat3d_translate 区别

✅ 核心区别总结

算子平移参考系说明
hom_mat3d_translate(HomMat3DIn, Tx, Ty, Tz, HomMat3DOut)全局坐标系(世界坐标系)沿固定的世界坐标轴方向平移
hom_mat3d_translate_local(HomMat3DIn, Tx, Ty, Tz, HomMat3DOut)局部坐标系(当前物体自身坐标系)沿当前变换后坐标系的轴方向平移

💡 类比:

  • translate= 在地图上“向东走10米”(绝对方向)
  • translate_local= “向前走10米”(相对于你当前朝向)

详细解释

1.hom_mat3d_translate
  • 作用:在原始世界坐标系下进行平移。(沿着全局坐标轴平移,对应于矩阵左乘)
  • 数学本质:

其中 TT 是以世界坐标系为基准的平移矩阵。

  • 效果:无论当前物体如何旋转,平移方向始终是 X/Y/Z 轴的固定方向。

✅适用场景:

  • 将物体整体在工作台上沿固定方向移动(如传送带方向);
  • 在已知世界坐标的网格中定位。

2.hom_mat3d_translate_local(沿着局部坐标轴平移,对应于矩阵右乘)
  • 作用:在当前变换后的局部坐标系下进行平移。
  • 数学本质:

平移是在当前姿态的“前方、左侧、上方”进行的。

  • 效果:平移方向随物体当前朝向而变化。例如,若物体已绕 Z 轴旋转 90°,则Tx=1不再是沿世界 X 轴,而是沿其自身新 X 轴(原 Y 轴方向)。

✅适用场景:

  • 机器人末端工具沿自身朝向“前进”或“侧移”;
  • 相对于物体表面法向方向进行偏移(如从抓取点向上抬升);
  • 构建相对于某位姿的相对运动路径(如接近 → 抓取 → 抬起)。

示例说明

假设有一个位姿H表示一个朝向 Y 轴的夹爪(即绕 Z 轴旋转了 90°)。

* 初始位姿:位于原点,朝向 +Y 方向 pose_to_hom_mat3d ([0,0,0, 0,0,90], H)
  • 使用hom_mat3d_translate(H, 0.1, 0, 0, H1)
    → 夹爪在世界 X 方向移动 0.1m,但朝向不变(仍朝 Y)。
  • 使用hom_mat3d_translate_local(H, 0.1, 0, 0, H2)
    → 夹爪沿自身 X 轴(即世界 -X 方向,因它朝 Y)移动 0.1m,相当于“向左平移”。

在机器人抓取中,“从物体上方下降”通常用translate_local:

hom_mat3d_translate_local(ObjectPose, 0, 0, -0.05, ApproachPose)

表示沿物体自身 Z 轴(通常指向相机或垂直向上)向下 5cm。

🧩 记忆技巧

算子关键词联想
hom_mat3d_translateGlobal / Absolute“在地图上移动”
hom_mat3d_translate_localLocal / Relative“在自己脚下移动”

✅ 总结

特性hom_mat3d_translatehom_mat3d_translate_local
坐标系世界坐标系(固定)当前局部坐标系(随姿态变化)
平移顺序左乘(先平移后应用原变换)右乘(先应用原变换再平移)
机器人应用移动到绝对位置相对于当前姿态做微调
常见用途定位、对齐接近、避障、工具偏移

在 HALCON 的手眼标定、机器人抓取、多视角拼接等应用中,_local版本更常用于构建相对于目标物体的运动路径,而普通版本用于全局布局调整。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 1:54:51

题解:洛谷 AT_abc451_e [ABC451E] Tree Distance(废)

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

作者头像 李华
网站建设 2026/10/9 1:53:45

GoogleTest C++单元测试框架完全指南:从零集成到CI实践

简介:GoogleTest是Google开源的C单元测试框架,基于xUnit架构,面向需要系统开展代码测试的开发者、测试工程师及框架学习者。它支持自动测试发现、丰富的断言集、用户自定义断言与死亡测试,能够区分致命和非致命故障,并…

作者头像 李华
网站建设 2026/10/9 1:51:17

别再让 AI 猜你的需求:AIM + MAP 双框架,把提示词一次写准

很多人和 AI 的对话体验其实差不多:问了不少,答案不少,真正能用的没几个。问题通常不在 AI 的能力,而在提问本身 —— 身份没说清、背景没给全、要求想到哪说到哪。结果就是那句老话:想要的答案得不到,得到…

作者头像 李华
网站建设 2026/10/9 1:50:24

openrig 实战:Node.js + tmux 搭建 Claude Code 与 Codex 稳定开发环境

1. 从"openrig"这个名字说起:它到底想解决什么问题第一次看到openrig这个词,我脑子里蹦出来的画面是矿场里的钻井平台——rig 在英文里本来就有"装备、装置、平台"的意思,open 则代表开放。把这两个词拼在一起&#xff0…

作者头像 李华
网站建设 2026/10/9 1:47:46

LeetCode 1047 题解:删除字符串中的所有相邻重复项——栈与数组模拟的多种实现(LogicStack-LeetCode 刷题笔记)

教程文档 【免费下载链接】LogicStack-LeetCode 公众号「宫水三叶的刷题日记」刷穿 LeetCode 系列文章源码 项目地址: https://gitcode.com/gh_mirrors/lo/LogicStack-LeetCode 点击查看 免费下载 导读 本文围绕 LeetCode 第 1047 题「删除字符串中的所有相邻重复…

作者头像 李华