当前位置: 首页 > 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 可能仅适用于可视化,无法满足仿真精度要求。

相关文章:

  • 在 Ubuntu 上离线安装 ClickHouse
  • ShaderToy学习笔记 05.3D旋转
  • 人工智能数学基础(三):微积分初步
  • 深入解析常见排序算法及其 C# 实现
  • 初识Redis · 分布式锁
  • Go 语言中的 `recover()` 函数详解
  • 医疗生态全域智能化:从技术革新到价值重塑的深度探析
  • 基于Spring Boot 3.0、ShardingSphere、PostgreSQL或达梦数据库的分库分表
  • Go语言之路————接口、泛型
  • 在Anolis OS 8上部署Elasticsearch 7.16.1与JDK 11的完整指南
  • 首页数据展示
  • keep-alive具体使用方法
  • C++多线程与锁机制
  • MySQL 在 CentOS 7 环境下的安装教程
  • 如何解决 Xcode 签名证书和 Provisioning Profile 过期问题
  • 【Linux网络】深入解析I/O多路转接 - Select
  • 基于STM32的DS18B20简易温控系统LCD1602显示仿真设计
  • 论文阅读:2024 arxiv FlipAttack: Jailbreak LLMs via Flipping
  • AI 的未来是开源?DeepSeek 正在书写新篇章!
  • AI+零售:智能推荐、无人店与供应链管理的未来
  • 海量数据处于“原矿”状态,数据价值释放如何破局?
  • 金科股份:去年营收约275亿元,今年确保所有项目“零烂尾”
  • 昆明破获一起算命破灾诈骗案,民警:大师算不到自己的未来
  • 呼伦贝尔市委常委、组织部长闫轶圣调任内蒙古交通集团党委副书记
  • 【社论】优化限购限行,激发汽车消费潜能
  • 美乌总统梵蒂冈会谈,外交部:望有关各方继续通过对话谈判解决危机