pybullet教程(一)hello world

一、介绍

pybullet是一个的Python模块,可用于机器人,游戏,视觉效果和机器学习的物理模拟。

使用pybullet,您可以加载URDF,SDF,MJCF和其他文件格式的机器人描述文件。

pybullet提供正向动力学仿真,逆向动力学计算,正向和逆向运动学,碰撞检测和射线相交查询。 Bullet Physics SDK提供了许多pybullet机器人示例,例如模拟的四足机器人Minitaur,使用tensorflow进行决策的模拟人类跑步,以及KUKA抓取物体。

在这里插入图片描述

除了物理模拟之外,还具有渲染绑定,包括CPU渲染器(TinyRenderer)和OpenGL可视化,并支
持HTC Vive和Oculus Rift等虚拟现实。pybullet还具有执行碰撞检测查询(最近的点,重叠对,射线相交测试等)并添加调试渲染(调试行和文本)的功能。pybullet具有跨平台的内置客户端服务器,支持共享内存,UDP和TCP网络。因此,您可以在连接到Windows VR服务器的Linux上运行pybullet。

二、安装

pyubullet的安装非常简单(视情况你可能需要用pip3):

pip install pybullet

安装完成后你可以在文件包中找到以下文件(最新版),旧版本的pybullet是没有pybullet_robots这个文件夹的:
在这里插入图片描述

  • pybullet_data:主要存放一些数据文件,例如模型的urdf/sdf,以及一些stl文件

  • pybullet_envs:存放一些已经搭建好的仿真环境,例如minitaur,deep_mimic(模仿学习),已经一些经典的强化学习场景。

  • pybullet_robots:存放3个机器人的一些简单搭建仿真环境(基本用不了,只能看看)在这里插入图片描述

  • pybullet_utils:顾名思义就是一些pybullet的工具,这里不细说,大家可以看看文件夹内容在这里插入图片描述

当然以上文件除了可以在packages包里找到,还可以在bullet的github上找到
在这里插入图片描述

三、Hello pybullet World

这里给出一个样例用来测试一下pybullet,以及熟悉一下基本使用,各种功能函数会在后续文章中一个一个讲解。

import pybullet as p
from time import sleep

physicsClient = p.connect(p.GUI)

p.setGravity(0, 0, -10)
planeId = p.loadURDF("plane.urdf")
cubeStartPos = [0, 0, 1]
cubeStartOrientation = p.getQuaternionFromEuler([0, 0, 0])
boxId = p.loadURDF("r2d2.urdf", cubeStartPos, cubeStartOrientation)
cubePos, cubeOrn = p.getBasePositionAndOrientation(boxId)

useRealTimeSimulation = 0

if (useRealTimeSimulation):
  p.setRealTimeSimulation(1)

while 1:
  if (useRealTimeSimulation):
    p.setGravity(0, 0, -10)
    sleep(0.01)  # Time in seconds.
  else:
    p.stepSimulation()

执行程序后我们可以看到以下效果:
在这里插入图片描述

发布了33 篇原创文章 · 获赞 216 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_41045354/article/details/104534581