Mujoco 基础:获取模型中所有 body 的 name, id 以及位姿

视频讲解:Mujoco 基础:获取模型中所有 body 的 name, id 以及位姿_哔哩哔哩_bilibili

代码仓库:https://github.com/LitchiCheng/mujoco-learning

今天介绍下一个很常用的接口:获取模型中所有的 body 的 name,id,以及位姿。

经常做测试时会遇到获取某个 body 的位姿以及利用该位姿,我们可以通过指定 body,先获取 id,再通过 id 获取 ee 的世界坐标系下的位姿,然后将位置作为对运动学的一个目标,同时可以在模型当中添加一些可视化的元素,更直观的来看自己的代码或者说这个实验是否达到预期,如下为常用来的接口或字段:

  1. body的数量

model.nbody

  1. 通过id获取名称

mujoco.mj_id2name

  1. 获取父 id

model.body_parentid

  1. 获取指定 id 的位置

data.body(body_id).xpos

如下代码为获取所有body的id、以及位姿

复制代码
import mujoco
import time
import mujoco_viewer
import numpy as np

class Test(mujoco_viewer.CustomViewer):
    def __init__(self, path):
        super().__init__(path, 3, azimuth=-45, elevation=-30)
        self.path = path
    
    def runBefore(self):
        for body_id in range(self.model.nbody):
            # 参数说明:model=模型,obj_type=对象类型(body),obj_id=body ID
            body_name = mujoco.mj_id2name(self.model, mujoco.mjtObj.mjOBJ_BODY, body_id)
            # 获取父 body ID
            parent_body_id = self.model.body_parentid[body_id]
            # print(f"{body_id:<10} {body_name:<20} {parent_body_id:<15}") 
            pos = self.data.body(body_id).xpos
            quat = self.data.body(body_id).xquat
            print(f"id:{body_id}, name: {body_name}, Position: {pos}, Quaternion: {quat}")
            
    def runFunc(self):
        placeholder = 0

test = Test("./model/franka_emika_panda/scene_pos.xml")
test.run_loop()

也可以通过在viewer中显示body看到实际的位置

相关推荐
AC赳赳老秦1 天前
OpenClaw + 飞书多维表格:自动同步数据、生成统计图表、触发自动化任务
java·大数据·python·缓存·自动化·deepseek·openclaw
workflower1 天前
互联网与大数据环境下制造服务模式
人工智能·自然语言处理·数据挖掘·自动驾驶·动态规划·制造
WangN21 天前
【通识】RSL-RL快速上手
人工智能·python·机器学习·机器人
geovindu1 天前
python: Reactor Pattern
开发语言·python·设计模式·反应器模式
lijgvnns1 天前
散户做股票研究与复盘,主流AI工具的场景化使用指南
大数据·人工智能·数据挖掘
1024+1 天前
在 ‌Ubuntu 24.04‌ 上安装 ‌Python 3.8‌
linux·python·ubuntu
weixin_446260851 天前
学习协调偏好用于多目标多智能体强化学习
人工智能·多智能体
财经资讯数据_灵砚智能1 天前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月15日
大数据·人工智能·python·信息可视化·自然语言处理
云和数据.ChenGuang1 天前
人工智能机器学习的偏置项 剖析
人工智能·深度学习·机器学习·数据挖掘
数据皮皮侠AI1 天前
上市公司战略性新兴产业专利数据库(2003-2024)
大数据·人工智能·笔记·机器学习·回归