目录
pybullet仿真环境介绍
bullet下载
bullet安装
bullet例程
test.py
常用函数
p.connect
pybullet_data.getDataPath()
p.setGravity
p.loadURDF
p.getQuaternionFromEuler
p.stepSimulation()
time.sleep
p.getBasePositionAndOrientation
p.disconnect()
pybullet仿真环境介绍
聚焦于仿真到现实的变换
是一个很方便的python包
pybullet提供了一个前向仿真
以及逆运动学、碰撞检测等一些功能
还有图像渲染
本质上就是一个python库
bullet下载
下载的话直接在github上搜索bullet
里面有很多例程
也可以直接解压之前的资料
bullet3-master
bullet安装
打开anaconda
打开对应环境
输入命令
pip install pybullet
或者是这个命令
pip install -U --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pybullet
注意这里building wheel的时候会比较慢
所以耐心等待即可
bullet例程
这个路径下有quickstart
这里介绍了可以使用的函数等
test.py
打开这个编码文件
以下代码是在上面的quickstartguide里
运行
界面的左方显示三个窗口分别是相机rgb、深度图像、还有合成的相机分割mask
如果不使用pybulet的渲染功能这三个窗口只有会三个斜线下来
整个环境包括一个地面,一个加载进来的机器人模型
可以通过鼠标和键盘来进行一些简单的交互操作
ctrl+左键是转动视图
ctrl+滚轴中间键是平移视图
按住物体可以拖动物体
(也可以设置物体不可被拖动)
常用函数
首先是导入三个库
pybullet_data里存储了一些常用的超参数
比如
这里调用了pybullet_data里的默认路径
p.connect
连接仿真环境
参数可选p.DIRECT不会显示可视化界面
p.GUI会显示可视化界面
pybullet_data.getDataPath()
后续使用模型的时候会到这个默认的路径下进行搜索(在没有指定路径的情况下)
这里可以打印出来看一下路径是哪
并且注释掉后面的代码
可以看到 这就是pybullet的安装路径
可以看到有很多模型
打开duck
可以看到是一个黄色的小鸭子
并且提供了常见的机器人
解开注释继续往下看
p.setGravity
设置重力
p.loadURDF
加载urdf模型
planeId = p.loadURDF("plane.urdf")
这里没有指定路径
所以会到指定的路径下找这个plane.urdf文件
可以看到在这个路径下
用vscode打开
可以看到就是一个urdf文件
urdf实际上就是一个描述文件
描述物理模型是什么样
boxId = p.loadURDF("r2d2.urdf", cubeStartPos, cubeStartOrientation)
r2d2.urdf同理
p.loadURDF
上面的函数是可以指定模型的默认位置以及朝向在哪
不指定就默认都是0
boxId = p.loadURDF("r2d2.urdf", cubeStartPos, cubeStartOrientation)
p.getQuaternionFromEuler
朝向是通过欧拉角转换四元数来实现的
cubeStartOrientation = p.getQuaternionFromEuler([0,0,0])
欧拉角就是围绕xyz三个轴的旋转角度都是0
然后循环1w次
p.stepSimulation()
p.stepSimulation()该函数是向前移动x步(后面在抓取中会有详细说明)
time.sleep
time.sleep(1./240.)这是延时一点
time.sleep(1./240.)这是延时一点
这里补充说明一下boxid是加载进去的模型生成的唯一id
boxId = p.loadURDF("r2d2.urdf", cubeStartPos, cubeStartOrientation)
然后
p.getBasePositionAndOrientation
运用这个函数
实时返回该模型的即时的状态信息(速度、位置等)
获取之后打印出来
p.disconnect()
p.disconnect()断开与仿真环境的连接如果不加这个程序就会一直运行



