# Webots-ROS2 插件无法访问 Supervisor 字段

> 原文链接：https://robotics.hellobike.com/pitfalls/2023-12-15-robotics-se-24413
> 频道：pitfalls | 更新日期：2023-12-15 | 标签：auto, stackexchange, c++, webots, ros2
> 核心摘要：在 webots_ros2 2023.0.0 起插件不能访问 C++ Robot/Supervisor 对象，需改用 C API。

# Webots-ROS2 插件无法访问 Supervisor 字段

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How to Access Robot Fields Inside a Webots-ROS2 Plugin?](https://robotics.stackexchange.com/questions/24413/how-to-access-robot-fields-inside-a-webots-ros2-plugin)（Robotics Stack Exchange #24413）

**状态**：已解决

## 问题

在 Webots-ROS2 插件中，`init` 只提供 `webots_ros2_driver::WebotsNode *node`，无法取得当前机器人作为 `webots::Supervisor` 的句柄来读取节点和字段。

## 环境

ROS 2

## 解决办法

1. 不再尝试在插件中获取 C++ `Robot`、`Supervisor` 或 `Driver` 对象。
2. 在插件中改用 Webots libController 的 C API。
3. 参考 `Creating a Custom C++ Plugin` 教程，用 C API 访问机器人设备并控制电机速度。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #24413：How to Access Robot Fields Inside a Webots-ROS2 Plugin?](https://robotics.stackexchange.com/questions/24413/how-to-access-robot-fields-inside-a-webots-ros2-plugin)