# unitree_mujoco运行Go2仿真报dds_writecdr_impl_common断言失败。

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-03-21-unitree-mujoco-103
> 频道：pitfalls | 更新日期：2026-03-21 | 标签：auto, github-issue, unitree_mujoco
> 核心摘要：ROS 2环境变量导致CycloneDDS冲突引发断言失败，通过清除LD_LIBRARY_PATH中ROS库路径或禁用Iceoryx解决。

# unitree_mujoco运行Go2仿真报dds_writecdr_impl_common断言失败。

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[unitree_mujoco: ./src/core/ddsc/src/dds_write.c:318: dds_writecdr_impl_common: Assertion `(wr-&gt;m_iox_pub == NULL) == (d-&gt;a.iox_chunk == NULL)' failed.](https://github.com/unitreerobotics/unitree_mujoco/issues/103)（GitHub unitreerobotics/unitree_mujoco #103）

**状态**：已解决

## 问题

运行 `python3 ./test/test_unitree_sdk2.py` 启动 unitree_mujoco Go2 仿真时，程序闪退并报错：`./src/core/ddsc/src/dds_write.c:318: dds_writecdr_impl_common: Assertion (wr->m_iox_pub == NULL) == (d->a.iox_chunk == NULL) failed.`，伴随核心转储。

## 环境

Ubuntu 22.04/24.04，ROS 2 Humble/Jazzy，unitree_mujoco，宇树 Go2 机器人仿真环境。

## 解决办法

1. 清除当前终端 ROS 2 相关环境变量，执行 `unset ROS_DISTRO AMENT_PREFIX_PATH CMAKE_PREFIX_PATH LD_LIBRARY_PATH`。
2. 设置最小化动态链接库路径，仅保留系统库：`export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib/x86_64-linux-gnu`；若需保留部分 ROS 依赖（如 Jazzy），务必从 `LD_LIBRARY_PATH` 中剔除 `/opt/ros/jazzy/lib/x86_64-linux-gnu` 目录。
3. （可选）通过配置 `CYCLONEDDS_URI` 环境变量禁用 Iceoryx 共享内存传输：`export CYCLONEDDS_URI='<CycloneDDS><Domain><Iceoryx><Enable>false</Enable></Iceoryx></Domain></CycloneDDS>'`。
4. 在干净环境中重…

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_mujoco #103：unitree_mujoco: ./src/core/ddsc/src/dds_write.c:318: dds_writecdr_impl_common: Assertion `(wr->m_iox_pub == NULL) == (d->a.iox_chunk == NULL)' failed.](https://github.com/unitreerobotics/unitree_mujoco/issues/103)