当前位置: 首页 > news >正文

【MuJoCo仿真】开源SO100机械臂导入到仿真环境

主要参考:https://github.com/jpata/gym-so100/tree/integration/gym_so100/assets/trs_so_arm100

参考:(八)lerobot开源项目扩展so100的仿真操控(操作记录)_so100机械臂 仿真-CSDN博客

下载:lerobot_so100_sim: lerobot_so100_sim - Gitee.com背景

URDF是Unified Robot Description Format,主要用于ROS中描述机器人的结构、关节、连杆、传感器等。

MJCF是MuJoCo(Multi-Joint dynamics with Contact)的模型格式,用于物理仿真,更注重动力学和接触计算。

 so100模型来源(在solidword画好后导出):https://github.com/TheRobotStudio/SO-ARM100/blob/4e9c5588d8a8415b6a6c2142a0ce8c32207cf3e9/URDF/SO_5DOF_ARM100_8j_URDF.SLDASM/urdf/SO_5DOF_ARM100_8j_URDF.SLDASM.urdf

下载so100的xml,并拖入MuJoCo

git clone https://gitee.com/mrqiguan/lerobot_so100_sim.git

调节右侧的参数可以动 

完整界面


​为什么不能直接将 URDF 导入 MuJoCo?​

虽然 MuJoCo 支持导入 URDF,但 URDF 格式与 MuJoCo 的仿真需求存在显著差异,直接导入可能导致以下问题:

  1. ​视觉与碰撞模型分离​
    URDF 的 <visual> 和 <collision> 标签通常使用不同的几何体(例如高精度网格与简化凸包)。MuJoCo 默认会丢弃 <visual> 几何体(通过 discardvisual="true"),导致模型不可见。因此需要通过 <compiler discardvisual="false"> 显式保留视觉模型。

  2. ​物理参数缺失​
    URDF 缺乏对摩擦、执行器动态特性(如 impratiocone="elliptic")等仿真关键参数的描述,这些需手动添加以确保逼真的物理交互。

  3. ​碰撞优化不足​
    URDF 的碰撞模型可能过于复杂或缺少必要优化。例如:

    • 需要手动提取 ​​凸包碰撞网格​​(如夹爪的凸包化)以提高计算效率。
    • 添加 ​​额外碰撞几何体​​(如夹爪的辅助碰撞盒)以增强接触检测。
  4. ​关节与执行器配置​
    URDF 不定义关节的阻尼、执行器控制模式(如位置/速度控制)等,需在 MJCF 中通过 <default> 和 <actuator> 明确指定。

  5. ​模型层级与命名冲突​
    URDF 的复杂嵌套结构可能导致 MuJoCo 解析时的路径错误(例如材质或网格引用失效),需通过 strippath="false" 保留完整路径。


​转换步骤的必要性​

  1. ​保留视觉模型​

    <mujoco><compiler discardvisual="false" strippath="false"/></mujoco>

    强制保留视觉网格,避免模型在仿真中不可见。

  2. ​统一默认属性​
    将重复的材质、关节属性提取到 <default> 中,简化模型并确保一致性。

  3. ​优化碰撞模型​

    • 将伺服电机网格分离为独立文件,减少内存占用。
    • 为夹爪创建 ​​凸包碰撞网格​​(例如 gripper_collision.stl),替代原始非凸网格以加速碰撞检测。
  4. ​增强物理交互​

    • 添加 impratio="10" 提高接触力的各向异性,模拟非弹性碰撞。
    • 使用 cone="elliptic" 替代默认的圆锥摩擦模型,更贴近真实摩擦行为。
  5. ​避免自碰撞干扰​
    通过 <exclude> 阻止基座(Base)与俯仰关节(Rotation_Pitch)的错误接触检测。

  6. ​执行器与控制​
    添加 <position> 执行器并设置 kp(刚度系数),使关节能响应位置控制指令。


​总结​

URDF 是面向机器人描述的标准格式,而 ​​MJCF 是专为物理仿真优化的格式​​。直接导入 URDF 可能导致模型在 MuJoCo 中表现异常(如穿透、抖动、控制失效)。通过上述转换步骤,可确保:

  • 视觉与碰撞模型的完整性
  • 物理参数符合仿真需求
  • 计算效率与稳定性提升

最终生成的 MJCF 模型在 MuJoCo 中能实现逼真的动态行为,而未经处理的 URDF 可能仅适用于可视化,无法满足仿真精度要求。

http://www.xdnf.cn/news/213607.html

相关文章:

  • 多模态大语言模型arxiv论文略读(四十八)
  • 使用Docker操作MySQL
  • 从零搭建体育比分网站:技术选型与API调用实战(附完整源码)
  • Java中final关键字的作用?
  • Jupyter notebook快捷键
  • 【运维】掌控系统脉搏:用 Python 和 psutil打造高效运维监控工具
  • Qt的WindowFlags窗口怎么选?
  • 第六章 QT基础:7、Qt中多线程的使用
  • Knife4j 接口文档添加登录验证流程分析
  • 天能资管(SkyAi):全球布局,领航资管新纪元
  • 单片机-89C51部分:9、串行口通讯
  • TTL、RS-232 和 RS-485 串行通信电平标准区别解析
  • 【C语言练习】010. 理解函数参数的传递方式
  • 深度解析Qwen3:性能实测对标Gemini 2.5 Pro?开源大模型新标杆的部署挑战与机遇
  • 牛客周赛 Round 91
  • k8s 学习记录 (六)_Pod 污点和容忍性详解
  • 日常开发小Tips:后端返回带颜色的字段给前端
  • 数据结构:实验7.3Huffman树与Huffman编码
  • 【18】爬虫神器 Pyppeteer 的使用
  • 信息科技伦理与道德3-4:面临挑战
  • 宾馆一次性拖鞋很重要,扬州卓韵酒店用品详细介绍其材质与卫生标准
  • 论文导读 - 基于特征融合的电子鼻多任务深度学习模型研究
  • 【无基础】小白解决Docker pull时报错:https://registry-1.docker.io/v2/
  • Html 2
  • verl - 火山引擎大语言模型强化学习训练库
  • Wi-SUN与LoRa和NB-IoT通信技术的对比
  • AI+零售:智能推荐、无人店与供应链管理的未来
  • 基于STM32、HAL库的DS28E15P安全验证及加密芯片驱动程序设计
  • Kafka 消息可靠性深度解析:大流量与小流量场景下的设计哲学
  • [逆向工程]如何理解小端序?逆向工程中的字节序陷阱与实战解析