学习笔记(mujoco)
XML:是一种类似于HTML,但是没有使用预定义标记的语言。因此,可以根据自己的设计需求定义专属的标记。是一种将数据存储在一个可以搜索、共享的格式中的方法。更重要的是,因为XML的基本格式是标准化的,若你在本地或互联网上跨系统或平台共享获取XML,接收者仍可解析信息。
由XML衍生出的格式:MJCF:mujoco专用格式,URDF:用于描述机器人的一种标准格式。

XML是树结构,A是根节点,B、C、D等是子节点,每一个子节点都只有一个父节点。
eg.A代表人,B代表大脑,E代表手,I、J代表左右手,就这样描述了一个人。

代码示例
<!--注释内容-->
< >代表节点 ,<person name...>是节点的开始,</person>代表节点结束
若节点后面没有子节点,<Rhand/>就代表<Rhand></Rhand>这样写更简洁

MJCF格式中,机器人建模使用运动学树来描述,worldbody建立了一个空间,模型中所有物体都要放在其中,body指空间即在worldbody中划出一块空间,joint指两刚体之间的约束关系,geom是几何体,(inertial指刚体的惯性、site是一个标记点)

一个机械臂一般大致由这几部分组成,
<complier>编译器设置,
<default>默认属性模板:geom默认材质、摩擦、joint默认阻尼、body默认质量,后面写geom、joint时,如果不单独指定参数,就自动继承<default>里的值。
<asset> 资源仓库:存放模型用到的外部资源,mesh:机械臂各个连杆的 STL/OBJ, 三维模型texture、material:颜色、贴图、渲染材质。
<worldbody>世界刚体树。
<actuator>驱动器,给关节施加控制输入,控制器输出就是传给 actuator。
<keyframe>关键帧,预存一组模型状态(关节角度、位置),可以一键重置仿真到该姿态。
mujoco简单控制脚本编写

ikpy.chain逆运动学求解使用
model导入模型 data导入模型数据
with mujoco.viewer.launch_passive(model,data) as viewer使用可视化窗口
while viewer.is running():主仿真循环
mujoco.mj_step(model,data)步进计算,默认间隔为0.0002s
viewer.sync()将改变同步到可视化窗口
状态表示:位置(xyz空间坐标系)+ 姿态(旋转矩阵、欧拉角等)合在一起称为位姿
机器人状态表示:关节->位姿(关节空间->笛卡尔空间)
关节空间只关注关节角的变化,不关注末端的位置
笛卡尔空间按照指定轨迹去运动,不关注关节角的变化
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)