# OMX启动报vector::_M_range_check异常致ros2_control初始化失败

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-03-06-open-manipulator-364
> 频道：pitfalls | 更新日期：2026-03-06 | 标签：auto, github-issue, open_manipulator
> 核心摘要：Open Manipulator X启动时硬件接口初始化越界报错，更新dynamixel_hardware_interface至最新main分支解决。

# OMX启动报vector::_M_range_check异常致ros2_control初始化失败

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Open manipulator X launch doesn't work](https://github.com/ROBOTIS-GIT/open_manipulator/issues/364)（GitHub ROBOTIS-GIT/open_manipulator #364）

**状态**：已解决

## 问题

执行 `ros2 launch open_manipulator_bringup open_manipulator_x.launch.py` 时，`ros2_control_node` 抛出 `St12out_of_range` 异常，提示 `vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)`，导致 `OpenManipulatorXSystem`。

## 环境

ROS 2 Jazzy；Open Manipulator X；open_manipulator_bringup；dynamixel_hardware_interface（旧版APT包或源码）

## 解决办法

1. 拉取 `dynamixel_hardware_interface` 仓库最新 main 分支代码并重新编译安装，修复传输矩阵默认值处理逻辑。
2. 确认本地环境未引用旧版 APT 包或过时项目源码，确保加载的是更新后的硬件接口库。
3. 再次执行 `ros2 launch open_manipulator_bringup open_manipulator_x.launch.py` 验证启动正常且无越界报错。

讨论原作者：@rafal-gorecki 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub ROBOTIS-GIT/open_manipulator #364：Open manipulator X launch doesn't work](https://github.com/ROBOTIS-GIT/open_manipulator/issues/364)