# ROS2/MoveIt2 Humble中如何获取机械臂夹爪的当前位姿

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-07-09-robotics-se-103393
> 频道：pitfalls | 更新日期：2024-07-09 | 标签：auto, stackexchange, moveit
> 核心摘要：用户需要获取自定义机械臂夹爪相对于底座的位姿，可通过Move Group Interface配合单线程执行器实现。

# ROS2/MoveIt2 Humble中如何获取机械臂夹爪的当前位姿

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How to extract position of the gripper in ROS2/MoveIt2](https://robotics.stackexchange.com/questions/103393/how-to-extract-position-of-the-gripper-in-ros2-moveit2)（Robotics Stack Exchange #103393）

**状态**：已解决

## 问题

用户完成自定义机器人URDF编写和MoveIt配置后，可在RViz中规划执行末端动作，需要获取末端执行器当前的位置和姿态以实现正运动学查询。

## 环境

ROS2 Humble版本，MoveIt2，自定义机器人，生成了RViz启动文件。

## 解决办法

1. 初始化ROS并创建节点，配置节点参数自动重载。
2. 启动`rclcpp::executors::SingleThreadedExecutor`，添加节点后开启独立线程执行`executor.spin()`，用于同步机器人关节状态。
3. 初始化`moveit::planning_interface::MoveGroupInterface`，调用`getCurrentPose()`方法获取末端位姿。
4. 输出位姿信息后关闭ROS，等待线程结束。

原问题作者：fadi eid；采纳答案作者：Gaurav Gupta。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #103393：How to extract position of the gripper in ROS2/MoveIt2](https://robotics.stackexchange.com/questions/103393/how-to-extract-position-of-the-gripper-in-ros2-moveit2)