# unitree_mujoco运行崩溃free(): invalid pointer报错

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-10-14-unitree-mujoco-46
> 频道：pitfalls | 更新日期：2025-10-14 | 标签：auto, github-issue, unitree_mujoco
> 核心摘要：运行unitree_mujoco报free(): invalid pointer崩溃，系ROS2 CycloneDDS冲突所致，可通过sudo运行或重编译DDS解决。

# unitree_mujoco运行崩溃free(): invalid pointer报错

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Crash on running `./unitree_mujoco`: free(): invalid pointer](https://github.com/unitreerobotics/unitree_mujoco/issues/46)（GitHub unitreerobotics/unitree_mujoco #46）

**状态**：有绕过办法

## 问题

在Ubuntu 22.04下运行`./unitree_mujoco`时，程序打印MuJoCo版本及数据准备信息后崩溃，报错`free(): invalid pointer`并触发SIGABRT信号。该问题在MuJoCo 3.2.7及3.3.1版本均复现，通常发生在安装`ros-humble-cyclonedds`之后，卸载该包或使用sudo运行时异常消失，确认为DDS库冲突导致的内存错误。

## 环境

OS: Ubuntu 22.04; MuJoCo: 3.2.7/3.3.1; unitree_mujoco: f5b7837; DDS: Cyclone DDS 0.10.5-2jammy; RMW: ros-humble-rmw-cyclonedds-cpp 1.3.

## 解决办法

1. 临时绕过：使用`sudo ./unitree_mujoco`运行可避免崩溃，但需确保共享库路径配置正确以免报加载错误。
2. 根本解决：重新编译CycloneDDS以消除与ROS2 Humble的冲突。
3. 安装依赖`ros-humble-rmw-cyclonedds-cpp`和`ros-humble-rosidl-generator-dds-idl`。
4. 注释掉`~/.bashrc`中的`source /opt/ros/humble/setup.bash`，确保编译时未加载ROS2环境。
5. 创建workspace并clone `rmw_cyclonedds` (humble分支) 与 `cyclonedds` (releases/0.10.x分支)。
6. 执行`colcon build --packages-select cyclonedds`单独编译DDS核心库。
7. Source ROS2环境后执行`colcon build`编译完整workspace。
8.…

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_mujoco #46：Crash on running `./unitree_mujoco`: free(): invalid pointer](https://github.com/unitreerobotics/unitree_mujoco/issues/46)