当前位置: 首页 > news >正文

Mujoco学习记录

1. 可视化

  • 设置手动控制仿真
1.手动调用mj_step推进仿真
2.调用sync()更新视图
3.循环上述过程# 获得viewer所有控制接口的对象
self.handle = mujoco.viewer.launch_passive(self.model, self.data)# 检查 viewer 是否仍在运行
while self.is_running():mujoco.mj_forward(self.model, self.data) # 计算动力学mujoco.mj_step(self.model, self.data) # 手动推进仿真一步self.sync() # 同步视图time.sleep(self.model.opt.timestep) # # 控制仿真速度
  • 获取body的id,id是按照body的顺序
mujoco.mj_name2id(self.model, mujoco.mjtObj.mjOBJ_BODY, 'right_finger')
  • 通过id获取空间坐标系位置和位姿
end_effector_pos = self.data.body(self.end_effector_id).xpos,self.data.body(self.end_effector_id).xquat

 2. 场景渲染参数

    cam = mujoco.MjvCamera() # 创建MjvCamera对象,用于存储相机的参数opt = mujoco.MjvOption() # 创建MjvOption对象,用于配置渲染选项(是否显示关节、碰撞体、力线等)mujoco.mjv_defaultCamera(cam) # 为相机对象cam设置默认参数mujoco.mjv_defaultOption(opt) # 为渲染选项opt设置默认值pert = mujoco.MjvPerturb() # 创建MjvPerturb对象,用于处理用户与仿真场景的交互(鼠标拖动物体、施加外力等)con = mujoco.MjrContext(model, mujoco.mjtFontScale.mjFONTSCALE_150.value) # 创建一个MjrContext对象,设置缩放比例scene = mujoco.MjvScene(model, maxgeom=10000) # 指定场景可容纳的最大几何元素数量# 更新渲染场景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) # 将更新后的场景数据渲染到屏幕上,生成可视化图像
  • 关节角度
data.qpos[:7] = new_q

mj_forward的作用:更新data全局参数,例如下面的复制qpos,mj_forward会更新xpos位置

data.qpos[:7] = new_q
print("data1",data.xpos)
mujoco.mj_forward(model, data)
print("data",data.xpos)


文章转载自:

http://W2RCNMgi.thmLt.cn
http://28SuU4lJ.thmLt.cn
http://ZP2oIaCs.thmLt.cn
http://hhYDtVzb.thmLt.cn
http://APwOPcLb.thmLt.cn
http://eHDCKQTD.thmLt.cn
http://rWwymQuE.thmLt.cn
http://D5u826lu.thmLt.cn
http://555YCPtN.thmLt.cn
http://u66NCpEv.thmLt.cn
http://n7OiPRYx.thmLt.cn
http://JiDIOFGQ.thmLt.cn
http://7gkM4B9d.thmLt.cn
http://bFu4215h.thmLt.cn
http://xL6txX2H.thmLt.cn
http://oRiRF0hG.thmLt.cn
http://spr2OwjE.thmLt.cn
http://wBbVzJQ7.thmLt.cn
http://ucXY3Tc1.thmLt.cn
http://iFJSceTj.thmLt.cn
http://yohxbFWc.thmLt.cn
http://AWL7wgNQ.thmLt.cn
http://dvn1sBUd.thmLt.cn
http://T1YSnDfS.thmLt.cn
http://Vu1UKjo8.thmLt.cn
http://UYzMp4Pa.thmLt.cn
http://TNhFHJat.thmLt.cn
http://0eTsXK0b.thmLt.cn
http://VtviwVCL.thmLt.cn
http://zVk2XnII.thmLt.cn
http://www.dtcms.com/a/376458.html

相关文章:

  • [react] react-router-dom是啥?
  • uniapp,vue2 置顶功能实现,默认右边半隐藏,点击一次移出来,点击二次置顶,一段时间不操隐藏
  • 佩京VR重走长征路模拟系统
  • HTML详解
  • ai生成文章,流式传输(uniapp,微信小程序)
  • JVM 内存参数设置详解!
  • 医院高值耗材智能化管理路径分析(下)
  • 上市公司人工智能水平指数 1993-2024
  • AI/AR智能眼镜步入全球破圈增长期,五大科技大厂入局加剧生态市场角逐
  • FastGPT源码解析 Agent 智能体插件实现代码分析
  • 【Fastjson】Fastjson2 在不同 Modules 模块包下,@JSONField name映射无法反序列化的 BUG 及解决
  • [特殊字符] 从助手到引擎:基于 GPT 的战略协作系统演示
  • SSE 模仿 GPT 响应
  • ThingsKit物联网平台 v2.0.0 发布|前端UI重构、底层架构升级
  • 面向对象数据分析实战编程题:销售数据统计与可视化(Python)
  • Transformer vs. Diffusion:谁将主宰通用视频生成与世界模型的未来?
  • 存储卷配额管理针对海外VPS容器环境的实施流程
  • 前端开发中常见英文缩写及其全称
  • Linux第十五讲:Socket编程UDP
  • Electron 高级 UI:集成 React 或 Vue.js
  • CKAD-CN考试之路----10
  • Linux嵌入式自学笔记(基于野火EBF6ULL):1.配置环境
  • 2025【1460天】网络工程师经验之道
  • 图解设计模式【3】
  • java 将pdf转图片
  • ES(springcloud笔记第五期)
  • Day40 Web服务器原理与C语言实现:从HTTP协议到静态资源服务
  • 利用FFmpeg自动批量处理m4s文件
  • [iOS] ViewController 的生命周期
  • MySQL 核心文件解析:从配置到存储的 “说明书 + 记录仪” 系统