python:pybullet 3D游戏物理引擎 安装过程

news2024/11/25 14:35:51

先从 Microsoft C++ Build Tools - Visual Studio

下载 1.73GB 安装 "Microsoft C++ Build Tools“

现在,我们将创建一个虚拟环境,并在其中安装 numpy , pybullet

cd /python

python -m venv myenv

cd myenv

使用 Scripts\activate 激活环境,

接着 (myenv) D:\python\myenv\Scripts>pip install numpy

Downloading  numpy-1.26.1-cp310-cp310-win_amd64.whl (15.8 MB)

Successfully installed numpy-1.26.1

然后 pip install pybullet
pybullet-3.2.5.tar.gz (80.5 MB)

  Preparing metadata (setup.py) ... done
Installing collected packages: pybullet

Running setup.py install for pybullet ... done
Successfully installed pybullet-3.2.5

\python\myenv\Lib\site-packages\ 目录下有

pybullet_data:存放各种机器人的URDF文件和模型。
pybullet_envs:存放各种机器人环境(类似gym)和示例效果。
pybullet_examples:介绍pybullet的各种基本功能,如运动学、动力学、PD控制、碰撞检测等。
pybullet_robots:演示几种典型的机器人,如 laikago、panda、xarm。
pybullet_utils:提供一些实用工具,如读写urdf、数学函数、矩阵操作等。

一个典型的仿真程序主要分为两块:
1.配置:PyBullet 的API 基于 client-server 设计,client 发送命令,physics server 返回状态。所以首先是 p.connet(xxx),常用 p.GUI(带渲染) 和 p.DIRECT(不带渲染,适合强化学习训练) 两种模式。之后就是设置重力以及仿真器的一些参数,最后是加载机器人的模型。
2.循环:p.stepSimulation() 在一个正向动力学仿真步骤中执行所有动作,默认时间步长 1/240 秒。


每个存档都包含一个带有元数据的 json文件,包括用于呈现和碰撞检测的子资产的路径,以及PyBullet使用的统一机器人描述格式(URDF)中物理属性的定义。对于纹理模型,采用GLTF标准。

从官网 例子开始,看下 Franka Emika Panda 的机器人仿真效果:

python -m pybullet_robots.panda.loadpanda
按住Ctrl+左键可旋转场景,Ctrl+中键可平移场景,滑动中键可拉近拉远。Panda 机器人模型就在 pybullet_data/franka_panda 中。

最后 pip install gym

Downloading gym-0.26.2.tar.gz (721 kB) Successfully built gym
Installing collected packages: gym-notices, cloudpickle, gym
Successfully installed cloudpickle-3.0.0 gym-0.26.2 gym-notices-0.0.8

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

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

相关文章

【C/C++】积累和派生类的转换

基类与派生类对象之间有赋值兼容关系,由于派生类中包含从基类继承的成员,因此可以将派生类的值赋给基类对象,在用到基类对象的时候可以用其子类对象代替。具体表现在以下几个方面。 一、派生类对象可以向基类对象赋值 可以用子类(即公用派生…

11、电路综合-集总参数电路结构的S参数模型计算与Matlab

11、电路综合-集总参数电路结构的S参数模型 电路综合专栏的大纲如下: 网络综合和简化实频理论学习概述 前面介绍了许多微带线电路综合的实际案例,如: 3、电路综合原理与实践—单双端口理想微带线(伪)手算S参数与时域…

vue-advanced-chat使用指南

demo地址:https://gitee.com/beekim/vue-advanced-chat vue-advanced-chat的git地址:https://github.com/advanced-chat/vue-advanced-chat 1.搭建demo demo地址克隆后在demo目录安装依赖并启动 启动之后的页面如下: 2.前端代码分析 2.1 重点api分析 current-user-id:…

使用PyQuery库构建有趣的爬虫程序

目录 一、爬虫程序概述 二、PyQuery库介绍 三、使用PyQuery编写爬虫程序 四、注意事项和潜在问题 五、总结 本文将介绍如何使用PyQuery库编写一个有趣且实用的爬虫程序。我们将首先简要介绍爬虫程序的概念和应用,然后详细探讨PyQuery库的特点和优势。接着&…

符号执行初识

一、符号执行概念 符号执行(Symbolic Execution)是一种程序分析技术,它 可以通过分析程序来得到让特定代码区域执行的输入。 符号执行的 目的 是在给定的时间内, 生成一组输入,并通过这些输入尽可能多的探索执行路径。…

动作捕捉系统进行坐标系转换

动作捕捉系统在机器人等应用中常出现被测物与动捕坐标系不一致的问题。这时就需要进行坐标系的转换。在NOKOV度量动作捕捉系统软件中,可以对被测物的坐标系原点偏移量进行设置,实现被测物坐标系与大地坐标系的重合。 一、坐标系偏移操作 在形影动捕软件…

【数据结构】单向链表的增删查改以及指定pos位置的插入删除

目录 单向链表的概念及结构 尾插 头插 尾删 ​编辑 头删 查找 在pos位置前插 在pos位置后插 删除pos位置 删除pos的后一个位置 总结 代码 单向链表的概念及结构 概念:链表是一种 物理存储结构上非连续 、非顺序的存储结构,数据元素的 逻辑顺序 是…

代码随想录第四十一天 | 动态规划:整数拆分(343,加贪心);不同的二叉搜索树(96)

1、leetcode 343:整数拆分 1.1 leetcode 343:动态规划 第一遍代码没思路 代码随想录思路 看到这道题目,都会想拆成两个呢,还是三个呢,还是四个… 我们来看一下如何使用动规来解决 动规五部曲,分析如下&…

win10 + vs2017 + gdal2.0.3 编译

1. 下载并解压gdal2.0.3 我的放置目录是:D:\Depend_3rd_party\gdal2\gdal-2.0.3,其中gdal-2.0.3是解压得到的文件夹 2. 修改 nmake.opt 文件 用notepad打开nmake.opt文件,修改以下三个部分: (1)修改C co…

【Java 进阶篇】深入了解 Java ServletContext

Java ServletContext是Java Servlet技术中的一个重要概念,它提供了一种在整个Web应用程序中共享数据和资源的方式。在本文中,我们将深入探讨ServletContext的用途、工作原理和示例用法。无需担心,即使您是一个基础小白,也可以轻松…

C++:string类!

Cstring 是C中的字符串。 字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。 不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符数组,而C字符串对象属于一个类,这个类有很多内置的特点,在操作…

首届陕西省商贸服务业“金牌店长”大赛落下帷幕

2023年11月1日,首届陕西省商贸服务业金牌店长大赛在秋林大酒店落下帷幕。这是由陕西省商业联合会、陕西省餐饮联合会、陕西省连锁经营协会和西安市连锁经营协会联合举办,旨在挖掘和培养陕西省商贸服务业的优秀店长,提升商贸服务业的整体水平&…

Java多线程----创建线程、线程池ExecutorService、异步编排

文章目录 创建线程的四种方式方式一、继承Thread方式二、自定义实现Runnable接口方式三、Thread FutureTask Callable返回值方式四、线程池ThreadPoolExecutor 线程池的简单介绍通过ThreadPoolExecutor创建自定义线程池ThreadPoolExecutor创建线程池的7大参数线程池处理任务的…

在校园跑腿系统小程序中,如何设计高效的实时通知与消息推送系统?

1. 选择合适的消息推送服务 在校园跑腿系统小程序中,选择一个适合的消息推送服务。例如,使用WebSocket技术、Firebase Cloud Messaging (FCM)、或第三方推送服务如Pusher或OneSignal等。注册并获取相关的API密钥或访问令牌。 2. 集成服务到小程序后端…

(1)上位机底部栏 UI如何设置

上位机如果像设置个多页面切换: 位置: 代码如下: "tabBar": {"color": "black","selectedColor": "#d43c33","borderStyle":"black","backgroundColor": …

数据库 | 看这一篇就够了!最全MySQL数据库知识框架!

大家好! 作为一名程序员,每天和各种各样的“数据库”打交道,已经成为我们的日常。当然,立志成为一名超级架构师的我,肯定要精通这项技能。咳咳!不过饭还是要一口一口吃的,“数据库”这个内容实在…

黄执中老师人际说服课思考总结(个人笔记整理 ①)

问题描述和解决方法: 😤职场中明明是ta应该做的事,ta为何还生气呢?; 😠不知道怎么和家人孩子沟通?自己明明是对的,可别人就是不听 😡不知道怎么安慰朋友?&…

Python time strptime()和strftime()

1 strptime()方法 根据指定的格式把一个时间字符串解析为时间元组 重要的时间日期格式化符号 %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-…

主机ping、ssh连接不通本地虚拟机

一、问题描述 在使用vscode remote ssh时,连接timeout,而且主机无论如何也ping不通虚拟机,但是虚拟机可以ping通主机。通过vagrant也可以连接虚拟机。 二、解决方案 试了网上包括设置remote ssh在内的许多方法都不行。重新查看主机和虚拟机…

C++类和对象-->默认成员函数

文章目录 类的6个默认成员函数初始化和清理构造函数构造函数概念构造函数特征 析构函数析构函数概念析构函数特征 拷贝赋值拷贝构造函数拷贝构造函数概念拷贝构造函数特征 赋值运算重载运算符重载运算符重载特征 赋值运算符重载赋值运算符特征 取地址重载取地址操作符重载const…