pybullet入门

  • 一、pybullet是什么
  • 二、安装
  • 实践
  • 其他
  • 参考文献

一、pybullet是什么

pybullet是一个易于使用的python模块,它基于bullet物理sdk进行物理仿真、机器人技术和深度强化学习。使用pybullet,您可以从urdf、sdf和其他文件格式加载铰接体。pybullet提供正向动力学仿真、反向动力学计算、正向和反向运动学以及碰撞检测和光线相交查询。除了物理模拟,pybullet还支持渲染,包括cpu渲染器和opengl可视化,以及对虚拟现实耳机的支持,官方的中文网址网址,英文网址网址。

同时文章Part 1.3 - 熟悉PyBullet中也有介绍。

二、安装

安装就是直接

pip install pybullet

中间遇到过问题,见我的博文pycharm使用之前建立的python解释器建立项目时遇到问题The current inotify(7) watch limit is too low. More details.

实践

import pybullet as p
from time import sleep#链接到物理引擎,并开启GUI显示
physicsClient = p.connect(p.GUI)
#设置重力
p.setGravity(0, 0, -10)
#loadURDF将返回唯一的ID,这里导入的是地面的urdf
planeId = p.loadURDF("plane.urdf")
#立方体的初始位置
cubeStartPos = [0, 0, 1]
#立方体初始姿态
cubeStartOrientation = p.getQuaternionFromEuler([0, 0, 0])
#这里的立方体指的就是机器人,这里将位姿提前定义
boxId = p.loadURDF("r2d2.urdf", cubeStartPos, cubeStartOrientation)
#定义机器人以后,通过p.getBasePositionAndOrientation获取机器人后续的位姿
cubePos, cubeOrn = p.getBasePositionAndOrientation(boxId)
#使用非实时仿真     ps:实时仿真多用于需要实时动态交互的系统
useRealTimeSimulation = 0if (useRealTimeSimulation):p.setRealTimeSimulation(1)while 1:if (useRealTimeSimulation):#如果实时仿真,需要再设置重力,并设置仿真间隔p.setGravity(0, 0, -10)sleep(0.01)  # Time in seconds.else:#非实时仿真的话,就直接运行p.stepSimulation()

出现的问题:
1、实际运行发现:这样的话会找不到urdf文件,通过

p.setAdditionalSearchPath(pybullet_data.getDataPath())

解决问题。原因来自参考文献一中解释的,调用这个
2、由于实时仿真和非实时仿真差距极大,最后在github中的例子发现的,就是在非实时仿真中每次进行sleep(1./240)

github地址:https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/examples
在此鸣谢大佬---参考文献1作者

pybullet_data:主要存放一些数据文件,例如模型的urdf/sdf,以及一些stl文件  文中提到的加载URDF就是从这个文件夹中加载的,这个文件夹的位置可以通过
import pybullet_data
datapath=pybullet_data.getDataPath()
print(datapath)得到。
pybullet_envs:存放一些已经搭建好的仿真环境,例如minitaur,deep_mimic(模仿学习),以及一些经典的强化学习场景
pybullet_robots:存放3个机器人的一些简单搭建仿真环境(基本用不了,只能看看)
pybullet_utils:pybullet的工具

其他

1、pybullet默认会缓存一部分内容,可以使用p.setPhysicsEngineParameter(enableFileCaching = 0)禁用文件缓存。
2、LoadURDF函数可以通过设置模型放置的位置,姿态以及是否强制静态连接等;
3、物理引擎,就是一组可以仿真真实世界运动规律的代码,pybullet本身就自带引擎了,只是用了python封装了一下。

参考文献

1、Part 1.3 - 熟悉PyBullet
2、【pybullet教程1】hello world
3、【pybullet教程】设置重力&加载模型

pybullet入门相关推荐

  1. pybullet入门第一节

    pybullet第一节学习 pybullet的安装 首先安装pybullet,非常简单直接pip即可.在一台可渲染的ubuntu电脑食用更佳-因为本人没有遇到什么安装上的问题,故就不再这里细说. 安装 ...

  2. solidworks转urdf文件及遇到的一些问题

    一.solidworks的插件下载 http://wiki.ros.org/sw_urdf_exporte 二.打开:在工具--tools--Export as URDF 三.设置关节 根据插入的基准 ...

  3. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  4. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  5. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  6. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  7. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  8. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  9. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

最新文章

  1. C02-程序设计基础提高班(C++)第7周上机任务-指针
  2. zabbix监控搭建
  3. 1185 威佐夫游戏 V2
  4. 【代码笔记】Web-HTML-颜色
  5. 6174问题 --ACM解决方法
  6. java 中jtable_java中使用JTable控件
  7. 各大搜索引擎地址收录登记入口
  8. 考会计中级职称能用计算机,2019年中级会计职称计算机考试操作常见问题答疑...
  9. 23. PHP include and require 文件
  10. 2023考研高数接力题典1800习题讲解
  11. linux程序员笔记软件,作为合格的程序员,你得知道这8款工具软件
  12. matlab找最大值,如何在MATLAB中的矩阵列中找到最大值的索引?
  13. 【每日新闻早报】9月17日 星期二
  14. python-多元线性回归模型
  15. 再读《投资中最简单的事》
  16. python培训费用多少钱?学习python课程价格?
  17. javascript 写农场迭代
  18. Mapped Statements collection does not contain value for 解决方法
  19. JDBC由浅入深解析(C3P0)(DBUtils)
  20. android方向触摸事件,Android触摸事件如何传递?

热门文章

  1. Linux搭建SMB服务
  2. 2007 Microsoft Office 套件 Service Pack 1 (sp1) 下载地址
  3. 使用easypoi导出Pdf
  4. 侏罗纪世界为什么显示服务器超时,侏罗纪世界手游新手必看闪退解决方法分享...
  5. 太康县计算机培训学校,河南省太康县职业中等专业学校
  6. java错误找不到或无法加载主类_java提示找不到或无法加载主类怎么办
  7. Owin搭建webapi的http测试服务器
  8. 怎样调整计算机桌面字体大小,电脑字体太小怎么调,详细教您怎样更改电脑界面的字体大小...
  9. ROG XG309CM 显示器评测
  10. 电脑桌面图标或者文件左下角出现蓝色问号解决办法