二、Mujoco-建模与仿真
一、基础术语解释刚体Body仿真中的基本运动单元具有质量、惯性、位置、姿态等属性默认不可变形关节Joint约束两个刚体相对运动的组件通过「限制自由度」实现特定运动如铰链关节仅允许旋转自由度DOF刚体在空间的独立运动数量3 平移 3 旋转 6 DOF关节本质是「减少自由度」几何体Geom刚体的碰撞/可视化表征如球、立方体、胶囊体用于计算接触力MJCF/URDF模型描述文件XML 格式定义仿真场景的刚体、关节、约束等所有元素世界坐标系Worldbody仿真世界的全局坐标系所有刚体都直接/间接关联于此二、建模标签介绍建模文件格式为XML格式1、世界根节点mujoco model模型名称 /mujoco2、仿真计算配置compiler节点compiler angleradian/degree autolimitstrue compiler节点中定义的包括angle角度单位/radian(弧度单位)autolimits受力限制等常用的就像上面这样写就行规定角度单位为弧度制受力限制开启。角度单位为弧度制是机器人开发的常用单位制。option节点设置场景中的属性选项option timestep0.002 gravity0 0 -9.81 integratorimplicitfast density1.225 viscosity1.8e-5/timestep代表仿真走一步的时间也就是运行一次之后仿真计算出timestep时长后的世界单位秒。timestep是一定要规定的不然仿真不知道如何计算gravity 重力加速度wind 风在三个方向的速度magnetic0 -0.5 0世界磁场影响磁力传感器density 介质密度水空气等单位kg/m³viscosity介质粘度integrator[Euler/RK4/implicit/implicitfast]积分器默认欧拉用于仿真世界每步就求解计算各个优势见下图影响仿真的精度solver[PGS, CG, Newton]求解器配置默认牛顿iterations100 约束求解器最大迭代次数,按需配置。 求解器其他配置积分器比较3、可视化配置visual节点visual global realtime1/ quality shadowsize16384 numslices28 offsamples4 / headlight diffuse1 1 1 specular0.5 0.5 0.5 active1 / rgba fog0 1 0 1 haze1 0 0 1/ /visualglobal:realtime仿真速度比例在simulate中可以使用大于1的按1计算quality:画面质量shadowsize: 阴影效果数值越大渲染越精细headlight和simulate中自由相机相同方向的光源 diffuse头灯的亮度 specular反射的光的颜色map鼠标影响操作scale渲染缩放rgba:fog 迷雾颜色haze 地平线颜色4、资源配置配置接下来场景中的资源文件asset mesh nametetrahedron vertex0 0 0 1 0 0 0 1 0 0 0 1 / mesh filecard.obj / texture type2d file./king_of_clubs.png / material nameking_of_clubs textureking_of_clubs / hfield nameagent_eval_gym fileagent_eval_gym.png size10 10 1 1 / texture typeskybox file../asset/desert.png gridsize3 4 gridlayout.U..LFRB.D.. / texture nameplane type2d builtinchecker rgb1.1 .1 .1 rgb2.9 .9 .9 width512 height512 markcross markrgb.8 .8 .8 / material nameplane reflectance0.3 textureplane texrepeat1 1 texuniformtrue/ material namebox rgba0 0.5 0 1 emission0/ /asset几何资源 mesh默认长度单位是米meters, m对应的质量单位是千克kgvertex通过坐标点构造几何体file加载obj或者stl模型文件不指定name默认为文件名 scale 缩放默认为以m为单位hfield通过高度图加载几何体高度场通过图片加载 size:缩放纹理/材质资源texture 可以通过加载png对物体进行贴图使用方法texture-materialmaterial 材质可以指定纹理颜色反射发光等skybox texture的类型直接加载即可 天空盒演示texture typeskybox builtingradient rgb11 1 1 rgb20.6 0.8 1 width256 height256/5、worldbody场景中的根节点所有之前配置的属性或者资源文件可以在这里进行配置从而交给mujoco渲染geomtype[plane/hfield/sphere/capsule/ellipsoid/cylinder/box/mesh/sdf]size0 0 0三个参数根据type选择填写pos0 0 0位置priority0碰撞优先级materialxxx材质名rgba0 0 0 0几何体颜色比材质省资源friction1 0.005 0.0001滑动扭矩滚动摩擦系数mass质量单位kg它和密度只能有一个density0密度单位kg/m³它和质量拼了shellinertia[true/false]开了就是质量集中在边缘关了就是均匀密度fromto0 0 0 0 0 0类似旋转通常代替旋转长度只能用于胶囊、盒子、圆柱体和椭球体前三个是point1后三个point2几何体的Z轴正方向为point2-point1quat, axisangle, xyaxes, zaxis, eulerquat:wxyz,isaac gym:xyzweuler:xyz地板(plane)演示texture namegrid type2d builtinchecker width2048 height2048 rgb1.3 .4 .8 rgb2.9 .9 .9 / geom nameground typeplane size100 100 .01 materialgrid /site简易版geom不作为碰撞体积和质量计算只能使用简易几何体适用于在某些小部位安装传感器或者小结构渲染等其属性和geom非常相近body在运动仿真过程中我们要实现整个机器人模型也就是身体骨骼关节拼接出来及对应bodygemo和joint多个body嵌套就是机器人整体整体也是呈树状嵌套。在添加joint之前我们先学习一下mujoco中body的坐标树规则这个和ros的tf树很像可以类比。机器人对于世界有一个坐标机器人每个坐标系都是基于上一个坐标系的相对位置其中body在循环嵌套每一层中的gemo都是对于这一层的body的相对位置每个body的坐标都是对于上一个body的相对位置。这和tf树模式几乎差不多就如下图一样joint定义关节连接将body之间连接在一起使其可以进行活动。这么说吧body中的所有geom为一个整体然后joint是连接这些整体的。就是body和body靠joint活动body中只能有一个joint用来连接当前body和上一层body。再根本一点就是joint对于上一层body是相对静止的当前body与joint是在运动。!-- 支撑柱 -- body namesupport pos0 0 0.1 geom typecylinder mass100 size0.05 0.5 rgba0.2 0.2 0.2 1/ !-- 水平杆 -- body namerotay_am pos0 0 0.51 joint typehinge namepivot pos0 0 0 axis0 0 1 damping0.001 frictionloss0.0 stiffness0.5/ geom typecapsule mass0.01 fromto0 0 0 0.2 0 0 size0.01 rgba0.8 0.2 0.2 0.5/ !-- 摆 -- body namependulum pos0.2 0 0 joint typehinge nameph pos0 0 0 axis1 0 0 damping0.001 frictionloss0.0 / geom typecapsule mass0.005 fromto0 0 0 0 0 -0.3 size0.01 rgba0.8 0.2 0.2 1 / !-- 配重 -- geom typesphere mass0.01 size0.03 pos0 0 -0.3 rgba0.2 0.8 0.2 1 / /body /body /bodyfrictionfriction有三个参数分别是滑动摩擦转动摩擦滚动摩擦系数option椭圆/金字塔cone[pyramidal, elliptic]摩擦力近似计算方法,默认pyramidal计算速度快elliptic效果更好 impratio1 椭圆摩擦的比例更高的数值摩擦力会更硬一些防止打滑不建议在使用pyramidal的时候调大适合机械臂抓取打滑时调整参数actuator是连接控制指令与机器人关节 / 刚体的 驱动桥梁用于将外部控制信号如ctrl数组中的数值转换为仿真中的力 / 扭矩 / 位置约束驱动模型运动如关节旋转、机械臂伸缩。输入控制信号范围通常可通过ctrlrange限制输出力、扭矩或位置 / 速度约束依执行器类型而定常用简洁类型motor最常用输出扭矩驱动关节适用于旋转 / 平移关节position位置伺服执行器驱动关节跟踪目标位置velocity速度伺服执行器驱动关节保持目标速度light 灯光节点节点用于在仿真场景中定义光源核心作用是照亮场景、增强 3D 视觉效果让模型和几何形状的轮廓、细节更清晰可见不影响物理仿真过程仅作用于视觉渲染。通常嵌套在 节点下全局光源也可嵌套在其他 节点下随刚体运动的局部光源。核心作用提供视觉渲染的光照支持无物理仿真相关影响。常用光源类型通过type属性指定默认类型为directional平行光。directional平行光如太阳光无衰减光线沿指定方向均匀照射整个场景。point点光源如灯泡从某一点向所有方向发射光线光线强度随距离衰减。spot聚光灯从某一点向指定方向发射锥形光束仅照亮锥形区域。pos光源的位置适用于point/spot类型directional类型无需指定仅需方向。dir光源的照射方向适用于directional/spot类型格式为x y z。rgba光源的颜色与强度格式为r g b a取值范围[0,1]a通道此处通常对应光照强度。castshadow是否投射阴影true/false默认通常为false开启后视觉效果更真实但略耗渲染性能。!-- 1. 平行光directional模拟太阳光照亮整个场景 -- light namesun_light typedirectional dir-1 -1 -1 !-- 从右上方向左下方照射 -- rgba1 0.9 0.8 1 !-- 暖白色光强度1 -- castshadowtrue/ !-- 开启阴影 --tendon 肌腱tendon用于模拟柔性肌腱 / 绳索 / 缆线的力学行为核心作用是传递力而非直接产生力连接模型中的多个关节、刚体或站点site实现类似人体肌腱、机器人钢缆的联动效果如通过肌腱拉动多个关节协同运动或约束刚体间的相对运动。力学属性柔性为主可设置刚度、阻尼、长度限制等不具备刚体的刚性约束受力时会产生微小变形并传递张力。核心作用传递张力、实现多部件联动、约束部件运动范围不直接驱动模型需配合 actuator 执行器提供驱动力。归属直接在 mujoco 根节点下配置与 、 同级通过 标签定义。常用类型通过type属性指定spatial最常用空间肌腱可连接任意数量的站点site、关节支持复杂空间路径。muscle肌肉肌腱模拟骨骼肌的主动收缩特性可直接接收控制信号产生张力无需额外 motor 执行器。wire线缆肌腱简化版空间肌腱适用于直线传递张力的场景。spatial使用tendon组合关节驱动的时候要使用tendon下面的spatial节点。spatial是类似一种像肌肉一样的驱动方式比如线驱灵巧手等。如下图所示的驱动方式通过每个site来拉住关节驱动。传感器常见有相机传感器关节角度传感器关节速度传感器激光测距传感器等三、核心架构静态模型MjModel存储仿真场景的静态结构一旦加载不再变化内容包括机器人几何形状、关节类型旋转 / 平移 / 球铰等、材质参数密度 / 摩擦系数、约束关节限位 / 力约束、传感器力 / 位置 / 视觉传感器、灯光 / 相机等加载方式从 XML/URDF 文件加载推荐 XMLMuJoCo 原生格式或通过 API 动态构建。动态数据MjData存储仿真过程中的动态状态每一步仿真都会更新内容包括关节位置qpos、关节速度qvel、控制输入ctrl、接触力contact、传感器数据sensordata、物体位姿等是用户交互的核心读取仿真状态、设置控制指令如关节力矩都通过MjData实现。

相关新闻

Fast-GitHub:彻底解决国内访问GitHub缓慢问题的终极指南

Fast-GitHub:彻底解决国内访问GitHub缓慢问题的终极指南

Fast-GitHub:彻底解决国内访问GitHub缓慢问题的终极指南 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否经历过这…

2026/10/15 9:56:15 阅读更多 →
函数堆栈图

函数堆栈图

进入函数之前 EAX 0041C077 EBX 002FA000 ECX 0041C077 EDX 00000001 ESI 00411023 EDI 0019FEE8 EIP 004118B6 ESP 0019FE04 EBP 0019FEE8 EFL 00000246 47: int main() { 00411890 push ebp 00411891 mov ebp,esp 00411893 sub esp,…

2026/10/15 15:28:01 阅读更多 →
提示词翻译润色模板已迭代至V4.2:实测降低LLM输出歧义率82%,附3分钟自检清单(失效即删)

提示词翻译润色模板已迭代至V4.2:实测降低LLM输出歧义率82%,附3分钟自检清单(失效即删)

更多请点击: https://intelliparadigm.com 第一章:提示词翻译润色模板已迭代至V4.2:实测降低LLM输出歧义率82%,附3分钟自检清单(失效即删) V4.2版本核心升级聚焦语义锚定与上下文隔离机制,通过…

2026/10/3 14:32:37 阅读更多 →

最新新闻

COMSOL热传导仿真全流程:从方程设定到网格与边界排查

COMSOL热传导仿真全流程:从方程设定到网格与边界排查

简介:COMSOL是一款功能强大的多物理场仿真软件,在热传导领域应用十分广泛。这份docx文档以“一维固体中的热传导”为例,完整演示了如何通过COMSOL的PDE模块求解热传导方程。文档涵盖物理场添加、瞬态研究设置、几何与边界条件配置&#xff0c…

2026/10/15 17:33:53 阅读更多 →
pycharm中将光标快速定位到下一行

pycharm中将光标快速定位到下一行

如果只是想换行:按 Shift Enter,或者直接按 Enter(如果在行尾)。

2026/10/15 17:33:53 阅读更多 →
Notepad++ 7.3.2免安装版:便携配置、插件迁移与避坑实操

Notepad++ 7.3.2免安装版:便携配置、插件迁移与避坑实操

简介:Notepad 7.3.2官方免安装版是一款面向程序员及文本处理用户的轻量级源代码编辑器,无需安装即可解压使用,适合U盘便携或临时环境快速部署。它支持C、C、Java、Python、JavaScript、HTML、XML等多种语言,借助SciLexer.dll等核心…

2026/10/15 17:33:53 阅读更多 →
微信公众号原创认证与排版的系统化运营逻辑

微信公众号原创认证与排版的系统化运营逻辑

1. 这不是“开通原创”而是内容信用体系的准入门槛很多人点开这篇标题,第一反应是:“哦,又一个教你怎么点几下鼠标开通原创功能的教程”。但如果你真这么想,接下来的操作大概率会卡在第三步——因为微信公众号的“原创”从来就不是…

2026/10/15 17:33:53 阅读更多 →
酒店管理系统开题报告怎么写?从需求边界到技术选型全攻略

酒店管理系统开题报告怎么写?从需求边界到技术选型全攻略

1. 先把这个老题目做“窄”:需求边界决定开题报告生死 很多人一看到“酒店管理系统设计与开发”这个题目,第一反应就是“这题我会”:无非是做个房间管理、订房、入住退房、再配个会员模块。等真正把开题报告交上去,评委一句“你的…

2026/10/15 17:33:53 阅读更多 →
Seldon Core 2 实战:用 Pipeline 把 CIFAR10 图像分类器与异常检测、漂移监控打包为生产级推理服务

Seldon Core 2 实战:用 Pipeline 把 CIFAR10 图像分类器与异常检测、漂移监控打包为生产级推理服务

人工智能大模型MLOpsLLMOps模型推理服务云原生后端 【免费下载链接】seldon-core An MLOps framework to package, deploy, monitor and manage thousands of production machine learning models 项目地址: https://gitcode.com/gh_mirrors/se/seldon-core 点击查看…

2026/10/15 17:32:52 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →