mujoco安装及urdf转xml方法记录

news2024/9/25 19:22:54

参考

mujoco210及mujoco-py安装

  1. 下载适用于Linux或 OSX的 MuJoCo 2.1 版二进制文件 。

  2. 将mujoco210的下载的目录解压到~/.mujoco/mujoco210路径下.

    注意:如果要为包指定非标准位置,请使用环境变量MUJOCO_PY_MUJOCO_PATH

    验证是否安装成功(运行下面代码,出现小人证明安装成功)

    cd ~/.mujoco/mujoco210/bin
    
    ./simulate ../model/humanoid.xml
    
  3. 安装python接口mujoco-py

    1)使用如下命令安装可能的依赖包

    sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3
    

    2)采用如下命令安装mujoco-py

    pip3 install -U 'mujoco-py<2.2,>=2.1'
    

    3)在.bashrc文件中中添加环境变量

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/.mujoco/mujoco210/bin
    

    4)测试是否安装完成

    $ python3
    >>> import mujoco_py
    >>> import os
    >>> mj_path = mujoco_py.utils.discover_mujoco()
    >>> xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
    >>> model = mujoco_py.load_model_from_path(xml_path)
    >>> sim = mujoco_py.MjSim(model)
    >>> print(sim.data.qpos)
    [0.  0.  1.4 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
     0.  0.  0.  0.  0.  0.  0.  0.  0.  0. ]
    >>> sim.step()
    
    >>> print(sim.data.qpos)
    [-1.12164337e-05  7.29847036e-22  1.39975300e+00  9.99999999e-01
      1.80085466e-21  4.45933954e-05 -2.70143345e-20  1.30126513e-19
     -4.63561234e-05 -1.88020744e-20 -2.24492958e-06  4.79357124e-05
     -6.38208396e-04 -1.61130312e-03 -1.37554006e-03  5.54173825e-05
     -2.24492958e-06  4.79357124e-05 -6.38208396e-04 -1.61130312e-03
     -1.37554006e-03 -5.54173825e-05 -5.73572648e-05  7.63833991e-05
     -2.12765194e-05  5.73572648e-05 -7.63833991e-05 -2.12765194e-05]
    >>> 
    

4、安装mujoco、gym

pip install mujoco

pip install gym

urdf转换成xml导入mujoco

1、urdf文件中的mesh文件需要转化为stl格式

可以使用MeshLab等软件进行转换

2、在xacro/urdf文件添加一些必要的MuJoCo的tag用于控制编译选项。

  <mujoco>
        <compiler 
        meshdir="../meshes_mujoco/" 
        balanceinertia="true" 
        discardvisual="false" />
  </mujoco>

discardvisual这个tag默认是true,也就是丢掉视觉效果部分,保留碰撞部分。如果模型很复杂,它会把很多mesh文件进行简化,变成球、圆柱、立方体等,视觉效果会差很多,因此建议设为false,具体参考。另外,在MuJoCo的界面,可以通过按键盘数字键0和1进行视觉上的切换(视觉mesh与碰撞mesh)。
在这里插入图片描述
3、mesh路径的修改

在这里插入图片描述

4、从xacro文件生成urdf文件的命令(如果有urdf文件则不需要此步):

rosrun xacro xacro --inorder model.xacro > model.urdf

5、检查urdf文件(可选):

check_urdf model.urdf

6、在RViz中可视化(可选):

roslaunch urdf_tutorial display.launch model:=path/to/your/urdf/file

7、生成基本模型
在确认URDF模型没有问题后,进入MuJoCo的可执行文件夹内执行命令进行转换(如默认的~/mujoco/mujoco200/bin):

$./compile /path/to/model.urdf /path/to/model.mjb
$./compile /path/to/model.urdf /path/to/model.txt
$./compile /path/to/model.urdf /path/to/model.xml

官方说明可以转换成三种模型,我们一般用xml的格式。

$./compile
 Usage: compile infile outfile
 infile can be in mjcf, urdf, mjb format
 outfile can be in mjcf, mjb, txt format

8、测试生成的基本模型:

cd ~/.mujoco/mujoco210/bin

 ./simulate /path/to/model.xml

https://github.com/openai/mujoco-py
MuJoCo的机器人建模

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

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

相关文章

springcloud3 fegin服务超时的配置和日志级别的配置2

一 fegin的概述 1.1 fegin的默认超时时间 默认fegin客户端只等待1秒钟&#xff0c;超过1秒钟&#xff0c;直接会返回错误。 1.2 架构图 1.2.1 说明 1.2.2 启动操作 1.先启动9001,9002 eureka 2.启动9003 服务提供者 3.启动9006消费者 1.3 情况验证 1.3.1 正常默认情…

云端IDE:TitanIDE v2.6.0 正式发布

原文作者&#xff1a;行云创新技术总监 邓冰寒 引言 云原生集成开发环境 TitanIDE v2.6.0 正式发布了&#xff0c;一起来看看都有那些全新的体验吧&#xff01; TitanIDE 是一款云IDE, 也称 CloudIDE&#xff0c;作为数字化时代研发体系不可或缺的一环&#xff0c;和企业建设…

C++网络编程(一)本地socket通信

C网络编程(一) socket通信 前言 本次内容简单描述C网络通信中&#xff0c;采用socket连接客户端与服务器端的方法&#xff0c;以及过程中所涉及的函数概要与部分函数使用细节。记录本人C网络学习的过程。 网络通信的Socket socket,即“插座”,在网络中译作中文“套接字”,应…

项目管理必备:如何绘制一份优秀的甘特图?

本文一共分为两部分—— 分享60Excel甘特图模板&#xff0c;简单省事儿分享两种甘特图制作教程&#xff0c;高效快捷 第一部分——60甘特图模板 分享一些项目管理甘特图的模板&#xff0c;省事儿&#xff01;高效&#xff01;简单&#xff01; Excel甘特图表模板自取&#xf…

Laya小游戏开发,laya3D美术篇——1——关于laya自带的几个shader的基础运用讲解。

最近三年&#xff0c;基本上做的都是laya小游戏项目。也就是微信小程序&#xff0c;很多业内同行都觉得laya做小游戏不好用&#xff0c;去用了其他平台&#xff0c;甚至还有些做app游戏的&#xff0c;都不来趟laya这个坑。原因有那么以下几点。laya对于unity的辅助开发&#xf…

STM32的USART发送数据时如何使用TXE和TC标志

8人从A出发去D旅游的故事 STM32的USART发送数据时如何使用TXE和TC标志 TXE为1&#xff1a; TDR里的数据全部移到了移位寄存器&#xff0c;且没有新的数据TDR。 TXE为0&#xff1a; TDR里有数据&#xff0c;未空&#xff0c;则TXE0。 TC为1&#xff1a; 从TDR过来的数据全部被移…

一文上手图数据备份恢复工具 NebulaGraph BR

作者&#xff1a;NebulaGraph 工程师 Kenshin NebulaGraph BR 开源已经有一段时间了&#xff0c;为了给社区用户提供一个更稳、更快、更易用的备份恢复工具&#xff0c;去年对其进行了比较大的重构。NebulaGraph BR&#xff08;以下简称 BR&#xff09;分为社区版和企业版两个版…

Git学习笔记(五)——分支

一、创建与合并分支创建分支&#xff1a;Git创建一个分支很快&#xff0c;因为除了增加一个指针&#xff0c;改改HEAD的指向&#xff0c;工作区的文件都没有任何变化。合并分支&#xff1a;就是直接把master&#xff08;其中一条分支&#xff09;指向dev&#xff08;另一条分支…

python基础条件循环语句

1、编写代码完成一个名片显示,要求使用取消换行和格式化操作符 # 编写代码完成一个名片显示,要求使用取消换行和格式化操作符name 张三 qq 1234567 phone_num 1234567 com_address 北京print(\n 姓名:%s\n qq:%d\n 手机号:%d\n 公司地址:%s\n %(name ,qq ,phone_num, com_…

忆享科技优化入职培训加强人效管理全面迎接新挑战

-优化入职培训-忆享科技加强人效管理入职培训课程 ✦ KPI系统上线 ✦ 砥砺前行前言许多企业随着自身的不断发展&#xff0c;对于各类人才引进需求也越来越迫切&#xff0c;一批批新员工的加入&#xff0c;公司规模逐渐扩大&#xff0c;给公司带来了全新的血液。但在大量新员工加…

jsPlumb Components Crack

jsPlumb Components Crack 为支持Vue 2&#xff0c;所有组件都添加了包装器。 已为所有组件添加了包装器以支持Svelte。 改进了在流程图生成器中编辑多个选定节点。 jsPlumb组件是一组可嵌入的组件&#xff0c;可将可视连接快速集成到网页中。jsPlumb组件基于jsPlumb Toolkit库…

lesson8-Linux多线程

Linux线程概念 线程在进程内部执行,是OS调度的基本单位OS是可以做到让进程进行资源的细粒度划分的物理内存是以4kb为单位的我们的.exe可执行程序本来就是按照地址空间的方式进行编译的页表映射 - 详细图 理解线程 线程在进程的地址空间内运行, 进程内部具有多个执行流的,而线程…

【java基础】集合基础说明

文章目录基本介绍Collection接口Iterator和Iterable接口Map接口关于Iterator接口的一些说明框架中的接口具体集合总结基本介绍 集合就是存储用来存储一系列数据的一种数据结构。在这篇文章中会介绍集合的一些基本概念。 Collection接口 集合的基本接口是Collection接口&…

Metabase和Superset 对比分析

Metabse中文社区Metabase和Superset都是排名靠前的开源的数据可视化软件&#xff0c;在技术上有许多相似之处。他们的比较可以帮助用户选择更好的开源平台进行数据可视化。关于Superset 编辑切换为居中添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;Super…

Golang反射源码分析

在go的源码包及一些开源组件中&#xff0c;经常可以看到reflect反射包的使用&#xff0c;本文就与大家一起探讨go反射机制的原理、学习其实现源码 首先&#xff0c;了解一下反射的定义&#xff1a; 反射是指计算机程序能够在运行时&#xff0c;能够描述其自身状态或行为、调整…

智慧赋能,聚力开源——第四届OpenI/O 启智开发者大会开源治理专场顺利举办!

为汇聚国内外知名开源组织共同探讨中国开源生态建设及开源治理相关议题&#xff0c;推进产学研用开源合作&#xff0c;2月24日下午&#xff0c;第四届OpenI/O启智开发者大会在深圳人才研修院智汇中心举办以“构建开源联合体&#xff0c;共建开源生态”为主题的开源治理专场分论…

C++基础了解-17-C++日期 时间

C日期 & 时间 一、C日期 & 时间 C 标准库没有提供所谓的日期类型。C 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构&#xff0c;需要在 C 程序中引用 头文件。 有四个与时间相关的类型&#xff1a;clock_t、time_t、size_t 和 …

opencv识别车道线(霍夫线变换)

目录1、前言2、霍夫线变换2.1、霍夫线变换是什么&#xff1f;2.2、在opencv中的基本用法2.2.1、HoughLinesP函数定义2.2.2、用法3、识别车道3.1、优化3.1.1、降噪3.1.2、过滤方向3.1.3、截选区域3.1.4、测试其它图片图片1图片2图片31、前言 最近学习opencv学到了霍夫线变换&am…

ruoyi对接CAS统一身份认证

暂定逻辑如下&#xff1a;搭建CAS服务器端&#xff1a;项目地址&#xff1a;https://gitee.com/weigang_wu/cas-server-webapp.git项目里有二开的说明文档&#xff0c;如&#xff1a;按照自定义的数据库校验修改如下&#xff1a;首先&#xff1a;修改数据库连接以及查询数据这里…

博客系统(前后端分离版)

博客系统的具体实现 文章目录博客系统的具体实现软件开发的基本流程具体实现的八大功能数据库设计创建数据库操作数据库引入依赖封装DataSource创建实体类将JDBC增删改查封装起来实现博客列表页web.xml的配置文件实现博客系统的展示功能登录功能强制要求用户登录显示用户信息退…