Mujoco足式机器人强化学习训练02(URDF转XML)

Mujoco足式机器人强化学习训练02(URDF转XML)

URDF文件转XML文件

在安装完成mujoco playground以后,设计到三维模型的导入,在sw转出的文件大多为URDF格式,但是mujoco仿真的时候大多支持xml文件

xml文件官方地提供了转换脚本,需要下载mujoco工程文件,注意和上节下载的mujoco playground不是一个工程文件

1. mujoco工程文件下载

https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/.mujoco/mujoco210/bin 

2. 在URDF文件中添加代码

<mujoco><compilermeshdir="../meshes/"balanceinertia="true"discardvisual="false"/></mujoco>

meshdir:stl网格文件存放地址
balanceinertia=“true” 启用惯量平衡(仿真更真)
discardvisual=“false” 保留视觉几何体(可视化好看)
此处需要注意,需要与link平级,直接写在最上面就行

在这里插入图片描述

3. 转化命令

cd ~/.mujoco/mujoco210/bin ./compile /path/to/model.urdf /path/to/model.xml 

此处可以直接写urdf文件的绝对地址,以及保存xml文件存放的绝对地址

如果想要仿真验证xml文件的转化是否成功,可以执行

./simulate /path/to/model.xml 

4. 在xml文件中添加执行器(actuator)

actuator可以理解为电机,个人认为mujoco比较严谨,每一个关节都需要制定actuator才能有动力,而不是像leggedgym封装的一样,直接输入活动关节数目进行自动对应

actuator有多种格式,即可以设置位置模式、力矩模式、速度模式、以及general通用格式等
此处只介绍position设置方法

<actuator><positionclass="hexapod"name="RF_HAA"joint="RF_HAA"/><positionclass="hexapod"name="RF_HFE"joint="RF_HFE"/><positionclass="hexapod"name="RF_KFE"joint="RF_KFE"/><positionclass="hexapod"name="RM_HAA"joint="RM_HAA"/><positionclass="hexapod"name="RM_HFE"joint="RM_HFE"/><positionclass="hexapod"name="RM_KFE"joint="RM_KFE"/><positionclass="hexapod"name="RB_HAA"joint="RB_HAA"/><positionclass="hexapod"name="RB_HFE"joint="RB_HFE"/><positionclass="hexapod"name="RB_KFE"joint="RB_KFE"/><positionclass="hexapod"name="LF_HAA"joint="LF_HAA"/><positionclass="hexapod"name="LF_HFE"joint="LF_HFE"/><positionclass="hexapod"name="LF_KFE"joint="LF_KFE"/><positionclass="hexapod"name="LM_HAA"joint="LM_HAA"/><positionclass="hexapod"name="LM_HFE"joint="LM_HFE"/><positionclass="hexapod"name="LM_KFE"joint="LM_KFE"/><positionclass="hexapod"name="LB_HAA"joint="LB_HAA"/><positionclass="hexapod"name="LB_HFE"joint="LB_HFE"/><positionclass="hexapod"name="LB_KFE"joint="LB_KFE"/></actuator>

笔者使用的是六足机器人,所以具有18个活动关节,所以此添加了18个位置模式的电机

注:由于这18个关节高度重复,此处运用了class的概念(用来设置kp和damping,以及forcerange等参数),class的具体用法可以参考mujoco官方的xml文档的说明

5. 在xml文件中添加传感器(sensor)

根据笔者这段时间对mujoco的使用,mujoco的传感器以及其他功能的添加,主要在xml文件中进行实现,(个人认为十分方便、主打一个什么都开放🐶)

目前笔者使用到的传感器,一般都是监控某一个点的数据
site的定义:

<sitename="imu"pos="0 0 0"group="5"/>

传感器定义:

<sensor><gyrosite="imu"name="gyro"/><velocimetersite="imu"name="local_linvel"/><accelerometersite="imu"name="accelerometer"/><framezaxisobjtype="site"objname="imu"name="upvector"/><framelinvelobjtype="site"objname="imu"name="global_linvel"/><frameangvelobjtype="site"objname="imu"name="global_angvel"/></sensor>

如果想替换进自己的xml文件,只需要在xml中创建这个点即可

5. 在xml文件中添加碰撞体

此处需要注意,虽然mujoco支持直接使用stl网格文件作为碰撞体,但是在强化学习训练的过程中,如果没有将mesh文件简化,在训练的过程中会一直报错,并且运算量会显著增大,所以此处建议简化碰撞体!!!

<geomcondim="1"contype="0"conaffinity="0"/>

如果你想添加碰撞体,只需要在后面设置contype和conaffinity即可,此处二者都写0代表不参与碰撞

参考文献
1.https://zhuanlan.zhihu.com/p/699075829
2.https://www.bilibili.com/video/BV1tDxAzTEFM/?spm_id_from=333.1391.0.0

Read more

Python AI入门:从Hello World到图像分类

Python AI入门:从Hello World到图像分类 一、Python AI的Hello World 1.1 环境搭建 首先,我们需要搭建Python AI的开发环境: # 安装PyTorch pip install torch torchvision # 安装其他依赖 pip install numpy matplotlib 1.2 第一个AI程序 让我们来编写一个最简单的AI程序 - 线性回归: import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt # 生成训练数据 x = torch.linspace(

2026年AI Agent实战:从玩具到生产力的落地手册(附源码)

2026年AI Agent实战:从玩具到生产力的落地手册(附源码)

欢迎文末添加好友交流,共同进步! “ 俺はモンキー・D・ルフィ。海贼王になる男だ!” * 前言 * 目录 * 一、AI Agent 的核心架构 * 1.1 什么是AI Agent? * 1.2 2026年Agent技术栈全景 * 二、从零搭建生产级Agent框架 * 2.1 项目结构设计 * 2.2 核心代码:Agent基类 * 2.3 记忆管理系统 * 三、三大核心技术实现 * 3.1 ReAct框架:推理+行动协同 * 3.2 工具调用系统 * 3.3 任务规划器 * 四、实战案例:智能客服Agent * 4.1 场景分析

【AIGC】ChatGPT 结构化 Prompt 的高级应用

【AIGC】ChatGPT 结构化 Prompt 的高级应用

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AIGC |ChatGPT 文章目录 * 💯前言 * 💯标识符的使用(Use of Identifiers) * 1. `#` * 2. `<>` * 3. `-` 或 `·` * 4. `[]` * 💯属性词的重要性和应用 * 应用场景 * 💯具体模块的结构化应用 * Role(角色) * Profile(简介) * Background(背景) * Goals(目标) * Constraints(约束条件) * Skills(技能) * Initialization(初始化) * 工作流程 * 💯小结 💯前言 随着人工智能生成内容(AIGC)技术的发展,如何更高效地与智能模型进行互动,成为提升任务执行效率和信息处理能力的关键环节。而结构化 Prompt的应用,作为智能对话与任务指令设计中的核心方法,为用户提供了强大的工具,使得信息表达更加清晰、

Skill 构建指南:从零打造 AI 智能体扩展包

Skill 构建指南:从零打造 AI 智能体扩展包 引言 在人工智能时代,如何让智能体具备更强的专业能力和更丰富的工作流程?答案就是 Skill——一种为智能体设计的能力扩展包。本文将详细介绍如何从零开始构建符合规范的 Skill,让你的创意变成可分发的工具。 什么是 Skill? 核心定位 Skill 是被智能体加载和执行的能力扩展包,而非独立运行的应用程序。 执行模式 * Skill 在智能体的会话上下文中被动态加载 * 智能体读取 SKILL.md 的指导,调用 scripts/ 中的脚本,参考 references/ 中的文档 * Skill 的所有交互都通过智能体与用户的对话完成 Skill 提供的能力 * ✅ 专门工作流程(多步骤程序与条件逻辑) * ✅ 工具集成(文件格式与 API 的使用方式) * ✅ 领域专家知识(公司或系统特有的架构与逻辑) * ✅ 打包资源(脚本、参考、资产) Skill