【问题标题】:ROS Human-Robot mapping (Baxter)ROS 人机映射 (Baxter)
【发布时间】:2018-07-17 15:57:07
【问题描述】:

我在理解 ROS 中的远程操作概念时遇到了一些困难,所以希望有人能澄清一些事情。

我正在尝试使用 HTC Vive 设备控制 Baxter 机器人(在模拟中)。我有一个节点(发布者),它成功地从控制器中提取了 PoseStamped 数据(包含参考灯塔基站的姿势数据),并将其发布在左右控制器的单独主题上。

所以现在我希望创建从控制器接收姿势数据并将其转换为机器人姿势的订阅者。我对映射感到困惑......在阅读了有关 Baxter 和机器人转换的文档后,我真的不明白如何将人体姿势映射到 Baxter。

我知道我需要使用 IK 服务,该服务主要计算实现姿势所需的坐标(给定末端执行器的所需位置)。但也不是把 PoseStamped 数据从发布控制器数据的节点插入到 ik_service 这么简单吧?

就像人类和机器人的解剖结构完全不同,所以我不确定我是否错过了其中的重要一步。

看到其他人尝试做同样事情的示例代码,我看到有些人创建了一个“基础”/“人类”姿势,该姿势硬编码四肢的坐标以模仿人类。这基本上是我需要的吗?

对不起,如果我的问题非常广泛,但我一直无法找到我理解的解释......非常感谢任何见解!

【问题讨论】:

  • 如果您可以为来自您的 VR 设置和真实机器人的数据渲染一个公共参考框架,那么您从 VR 获得的任何姿势都可以通过适当的转换发送以控制机器人。这假设您有机器人的任务空间控制器。然后,您可以完全避免人类和 Baxter 之间的任何配置映射,因为它们都在一个共同的操作(任务)空间中运行。

标签: ros virtual-reality robotics


【解决方案1】:

您可能会发现我以前的学生在 motion mapping using a kinect sensor with a pr2 上的工作内容丰富。它显示了两种方法:

  1. 直接关节角度映射(例如,如果人类的手臂成直角,那么机器人的手臂也应该成直角)。

  2. 一种基于人类手部位置控制机器人末端执行器的 IK 方法。

我知道我需要使用 IK 服务来计算 实现姿势所需的坐标(给定所需的位置 末端执行器)。但这并不像插上电源那么简单 PoseStamped 数据从节点发布控制器数据到 ik_service 对吗?

是的,确实,这是一个相当复杂的过程!在这两种情况下,我们都利用了 kinects api 来访问人类的关节角度值和手的位置。您可以在此处阅读有关 Microsoft 研究如何实现人体骨骼跟踪算法的信息:

https://www.microsoft.com/en-us/research/publication/real-time-human-pose-recognition-in-parts-from-a-single-depth-image/?from=http%3A%2F%2Fresearch.microsoft.com%2Fapps%2Fpubs%2F%3Fid%3D145347

我不熟悉 Vive 设备。您应该看看它是否提供类似的 api 来访问骨架跟踪信息,因为逆向工程 Microsoft 的算法将具有挑战性。

【讨论】:

  • 啊,谢谢您提供的信息。那么对于 pr2 机器人,您必须对坐标等进行某种配置吗?我在某处读到,对于 Oculus Rift,必须更改坐标系统以匹配 Baxter 机器人的坐标系统。像 xBaxter= -zOculus, yBaxter=xOculus, zBaxter= yOculus。无论如何,这是针对点坐标的。这个过程和你的pr2类似吗?
  • “类似 xBaxter= -zOculus, yBaxter=xOculus, zBaxter= yOculus。” - 这听起来像是正在应用标准旋转。我不确定我是否完全理解您的问题,但是是的,相机上连接了一个刚性转换框架,该框架与 pr2 机器人的基本连杆方向不同,因此我们必须将其转换为所需的。我建议使用 rviz - 选择查看 tf 坐标系的选项。请参阅此处了解信息:wiki.ros.org/tf
  • 啊,好吧,这与转换有关——抱歉,我对所有这些概念还是新手。非常感谢 rviz 中的提示和链接。所以我可以请您仔细检查一下,因为您对您有帮助吗?要遥控机器人,我需要:首先从控制器设备发布姿势数据,检索此数据,应用变换以获得正确的坐标系,然后最后使用 ikservice 确定末端执行器姿势应该在哪里。我错过了中间的任何阶段吗?
  • 我假设 vive 设备为您提供了手的位置,并且与机器人相比,相机的方向错误。如果是这样,则在相机的参考帧中提供此姿势。然后,您应该将姿势从相机的参考系转换到机器人的参考系,方法是将其乘以正确的变换矩阵(仅当您只关心方向时才可能旋转)。最后,使用笛卡尔控制器命令机器人去这个位置或使用ikservice确定关节角度来达到这个位置并发送关节角度命令
猜你喜欢
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
相关资源
最近更新 更多