MuJoCo 仿真 Panda 机械臂!末端位置实时追踪 + 可视化(含缩放交互)

视频讲解:

MuJoCo 仿真 Panda 机械臂!末端位置实时追踪 + 可视化(含缩放交互)

仓库地址:GitHub - LitchiCheng/mujoco-learning

本期介绍下,mujoco_py这个库很老了,最新的版本可以通过mujoco的python库,可视化模型及获取模型body的实时位置,下面开始,首先安装如下依赖库

pip3 install mujoco glfw

关于模型有哪些body,可以通过代码的形式,或者查看xml描述文件

新建get_body_pos.py的文件夹

import mujoco
import numpy as np
import glfw# 定义鼠标滚轮滚动的回调函数,用于处理界面缩放
def scroll_callback(window, xoffset, yoffset):# 使用 global 关键字声明 cam 为全局变量,以便在函数内部修改它global cam# 根据鼠标滚轮的垂直滚动量 yoffset 调整相机的距离,实现缩放效果# 0.1 是缩放的比例因子,可以根据需要调整cam.distance *= 1 - 0.1 * yoffsetdef main():# 声明 cam 为全局变量,方便在其他函数中使用global cam# 从指定的 XML 文件路径加载 MuJoCo 模型model = mujoco.MjModel.from_xml_path('/home/dar/MuJoCoBin/mujoco_menagerie/franka_emika_panda/scene.xml')# 创建与模型对应的 MjData 实例,用于存储模拟过程中的动态数据data = mujoco.MjData(model)# 初始化 GLFW 库,用于创建窗口和处理输入事件if not glfw.init():# 如果初始化失败,直接返回return# 创建一个 1200x900 像素的窗口,标题为 'Panda Arm Control'window = glfw.create_window(1200, 900, 'Panda Arm Control', None, None)if not window:# 如果窗口创建失败,终止 GLFW 并返回glfw.terminate()return# 将当前上下文设置为新创建的窗口,以便后续的 OpenGL 操作在该窗口上进行glfw.make_context_current(window)# 设置鼠标滚轮事件的回调函数为 scroll_callback,当鼠标滚轮滚动时会调用该函数glfw.set_scroll_callback(window, scroll_callback)# 初始化相机对象,用于定义观察视角cam = mujoco.MjvCamera()# 初始化渲染选项对象,用于设置渲染的一些参数opt = mujoco.MjvOption()# 设置相机的默认参数mujoco.mjv_defaultCamera(cam)# 设置渲染选项的默认参数mujoco.mjv_defaultOption(opt)# 初始化扰动对象,用于处理用户对模型的交互操作pert = mujoco.MjvPerturb()# 初始化渲染上下文对象,用于管理渲染资源con = mujoco.MjrContext(model, mujoco.mjtFontScale.mjFONTSCALE_150.value)# 创建一个场景对象,用于存储要渲染的几何元素scene = mujoco.MjvScene(model, maxgeom=10000)# 根据名称 'hand' 查找末端执行器的 body IDend_effector_id = mujoco.mj_name2id(model, mujoco.mjtObj.mjOBJ_BODY, 'hand')print(f"End effector ID: {end_effector_id}")if end_effector_id == -1:# 如果未找到指定名称的末端执行器,打印警告信息并终止 GLFWprint("Warning: Could not find the end effector with the given name.")glfw.terminate()return# 进入主循环,直到用户关闭窗口while not glfw.window_should_close(window):# 获取末端执行器在世界坐标系下的位置end_effector_pos = data.body(end_effector_id).xpos# 打印末端执行器的位置信息,方便调试print(f"End effector position: {end_effector_pos}")# 执行一步模拟,更新模型的状态mujoco.mj_step(model, data)# 定义视口的大小和位置viewport = mujoco.MjrRect(0, 0, 1200, 900)# 更新场景对象,将模型的最新状态反映到场景中mujoco.mjv_updateScene(model, data, opt, pert, cam, mujoco.mjtCatBit.mjCAT_ALL.value, scene)# 将场景渲染到视口中mujoco.mjr_render(viewport, scene, con)# 交换前后缓冲区,将渲染结果显示在窗口上glfw.swap_buffers(window)# 处理所有待处理的事件,如鼠标、键盘事件等glfw.poll_events()# 终止 GLFW 库,释放相关资源glfw.terminate()if __name__ == "__main__":# 当脚本作为主程序运行时,调用 main 函数main()

运行代码,python3 get_body_pos.py,可以看到出现panda机械臂场景,同时控制台不停的输出hand body的位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-splice方法

一、代码解析 语法结构 splice(index, deleteCount, newElement) 是 JavaScript 数组的变异方法,其参数含义为: • index:操作的起始位置(索引)。 • 1:删除的元素数量(此处删除 1 个元素&#…

在Mac M1/M2芯片上完美安装DeepCTR库:避坑指南与实战验证

让推荐算法在Apple Silicon上全速运行 概述 作为推荐系统领域的最经常用的明星库,DeepCTR集成了CTR预估、多任务学习等前沿模型实现。但在Apple Silicon架构的Mac设备上,安装过程常因ARM架构适配、依赖库版本冲突等问题受阻。本文通过20次环境搭建实测…

spring boot 拦截器

1、创建ServletConfig配置类 package com.pn.config;import com.pn.filter.LoginFilter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.web.servlet.Fil…

论文阅读笔记:Denoising Diffusion Probabilistic Models (2)

接论文阅读笔记:Denoising Diffusion Probabilistic Models (1) 3、论文推理过程 扩散模型的流程如下图所示,可以看出 q ( x 0 , 1 , 2 ⋯ , T − 1 , T ) q(x^{0,1,2\cdots ,T-1, T}) q(x0,1,2⋯,T−1,T)为正向加噪音过程, p ( x 0 , 1 , …

【大模型基础_毛玉仁】3.5 Prompt相关应用

目录 3.5 相关应用3.5.1 基于大语言模型的Agent3.5.2 数据合成3.5.3 Text-to-SQL3.5.4 GPTs 3.5 相关应用 Prompt工程应用广泛,能提升大语言模型处理基础及复杂任务的能力,在构建Agent、数据合成、Text-to-SQL转换和设计个性化GPTs等方面不可或缺。 . …

Deepseek训练成AI图片生成机器人

目录 内容安全层 语义理解层 提示词工程层 图像生成层 交付系统 训练好的指令(复制就可以) 内容安全层 理论支撑:基于深度语义理解的混合过滤系统 敏感词检测:采用BERT+CRF混合模型,建立三级敏感词库(显性/隐性/文化禁忌),通过注意力机制捕捉上下文关联风险 伦…

深入理解 Linux ALSA 音频架构:从入门到驱动开发

文章目录 一、什么是 ALSA?二、ALSA 系统架构全景图核心组件详解:三、用户空间开发实战1. PCM 音频流操作流程2. 高级配置(asound.conf)四、内核驱动开发指南1. 驱动初始化模板2. DMA 缓冲区管理五、高级主题1. 插件系统原理2. 调试技巧3. 实时音频优化六、现代 ALSA 发展七…

探秘海螺 AI 视频与计算机视觉算法的奇妙融合

目录 开篇:数字浪潮下的视频新变革 蓝耘 Maas 平台与海螺 AI 视频:崭露头角的视频创作利器 图片生成视频:化静为动的魔法 文本生成视频:文字到画面的奇妙转换 注册与登录 计算机视觉算法:海螺 AI 视频的核心驱动力…

SOFABoot-10-聊一聊 sofatboot 的十个问题

前言 大家好,我是老马。 sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFABoot-00-sofaboot 概览 SOFABoot-01-蚂蚁金服开源的 s…

【数据分享】我国乡镇(街道)行政区划数据(免费获取/Shp格式)

行政区划边界矢量数据是我们在各项研究中最常用的数据。之前我们分享过2024年我国省市县行政区划矢量数据(可查看之前的文章获悉详情),很多小伙伴拿到数据后咨询有没有精细到乡镇(街道)的行政区划矢量数据!…

同一个局域网的话 如何访问另一台电脑的ip

在局域网内访问另一台电脑,可以通过以下几种常见的方法来实现: ‌直接通过IP地址访问‌: 首先,确保两台电脑都连接在同一个局域网内。获取目标电脑的IP地址,这可以通过在目标电脑上打开命令提示符(Windows系…

2、基本操作-

学习之前–查看docker服务的状态 sudo systemctl status docker sudo systemctl start docker restart 配置国内镜像加速【重要】 选择阿里云镜像加速: https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images sudo mkdir …

LINUX基础 [二] - 进程概念

目录 前言 什么是进程 如何管理进程 描述进程 组织进程 如何查看进程 通过 ps 命令查看进程 通过 ls / proc 命令查看进程 通过系统调用 获取进程标示符 前言 在学习了【Linux系统编程】中的 ​ 操作系统 和 冯诺依曼体系结构 之后,我们已经对系统应该有…

什么是PHP伪协议

PHP伪协议是一种特殊的URL格式,允许开发者以不同于传统文件路径访问和操作资源。以下是一些常见的PHP伪协议及其详细介绍: 常见的PHP伪协议 1. **file://** - **用途**:访问本地文件系统。 - **示例**:file:///path/to/file.txt。…

股指期货贴水波动,影响哪些投资策略?

先来说说“贴水”。简单来说,贴水就是股指期货的价格比现货价格低。比如,沪深300指数现在是4000点,但股指期货合约的价格只有3950点,这就叫贴水。贴水的大小会影响很多投资策略的收益,接下来我们就来看看具体的影响。 …

算法·动态规划·入门

动态规划的概念 状态:也就是DP数组的定义 状态转移 dp五部曲的理解 见:代码随想录 优先确定:状态的定义,状态转移的房产 根据状态转移方程确定:遍历顺序,初始化 状态压缩 本质上就是变量个数减少&am…

在刀刃上发力:如何精准把握计划关键节点

关键路径分析是项目管理中的一种重要方法,它通过在甘特图中识别出项目中最长、最关键的路径,来确定项目的最短完成时间。 关键路径上的任务都是项目成功的关键因素,任何延误都可能导致整个项目的延期。关键路径分析对于项目管理者来说至关重要…

第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器

Shader初学者的学习笔记 第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器 文章目录 Shader初学者的学习笔记前言一、顶点/片元着色器的基本结构① Shader "Unity Shaders Book/Chapter 5/ Simple Shader"② SubShader③ CGPROGRAM和ENDCG④ 指明顶点…

浔川社团官方联合会维权成功

在2025.3.2日,我社团检测文章侵权中,检测出3篇文章疑似遭侵权,随后,总社团联合会立即联系CSDN版权,经过17天的维权,至今日晚,我社团维权成功!侵权文章全部被设置为转载。 在此&…

介绍一个测试boostrap表格插件的好网站!

最近在开发一个物业管理系统。用到bootstrap的表格插件bootstrap table,官方地址: https://bootstrap-table.com/ 因为是英文界面,对国人不是很友好。后来发现了小书童网站 IT小书童 - 为程序员提供优质教程和文档 网站: IT小…