荣威|Python中开源的物理引擎库pybullet让你的模拟机器人或游戏动起来

荣威|Python中开源的物理引擎库pybullet让你的模拟机器人或游戏动起来

Python对于大多数程序员而言 , 可能是一个胶水语言 , 或者更多的是用各种Web框架开发web应用程序的职业工具 , 当然机智客觉得大家应该都知道 , 成熟的Python的第三方库广泛得很 , 覆盖各种各样的行业 , 比如搞搞机器人 , 做做物理模拟啦 , 而要搞物理模拟就要有物理模拟引擎 , pybullet就是这样一款第三方库 , 开源的物理引擎、仿真系统 。
如果你学习过3D软件Blender , 大概就能理解一点物理引擎了 。 就是为你搭建一个虚拟空间 , 这个虚拟空间里可以放置你想要的3D模型 , 设置物理属性 , 让它模拟出在现实中可能出现的情况 。 当然Blender软件是一款3D动画软件 , 虽然它有物理模拟功能 , 但并不是物理引擎 , pybullet则是一款正儿八经的物理引擎、机器人仿真系统 。

一看名字我们就能顾名思义 , 这一看就是基于著名的开源物理引擎bullet开发封装的第三方库吧 。 没错 , PyBullet就是这样一款物理仿真的强化学习库 , 支持加载 URDF、SDF、MJCF 等多种机器人描述文件 , 并提供正/逆向运动学、正/逆向动力学、碰撞检测、射线相交查询等功能 。
既然是Python生态库中的一员 , 那么我们也心知肚明地知道该怎么安装了 。 的确如此 , 命令行安装 , 不过要注意的是这个还要几种依赖 。 比如最直接的 , 这货的一些模型是通过大名鼎鼎的深度学习框架TensorFlow实现的 , 所以你懂的 。
【荣威|Python中开源的物理引擎库pybullet让你的模拟机器人或游戏动起来】安装准备好后 , 就可以运行demo测试环境了 。 这个pybullet内置了一些常见的模型 , 比如常见的腿足机器人啦 , 机械臂啦 。 我们一看就知道是用于机器人仿真模拟的 。 可以运行这些demo看看默认的虚拟机器人在虚拟物理引擎里的表现 。
同样有虚拟场景 , 同样有地面 , 同样有摄像机视窗 。 你在Blender这样的3D软件里的元素 , 都可以在pybullet中通过代码实现 。 而我们通过代码运行预览的虚拟仿真空间的窗口 , 同样类似于3D软件中的预览窗口 , 或者有点类似游戏引擎里的基本控制 , 可以实现移动拉伸旋转等多个操作 。
当然 , 物理引擎之所以重要 , 它不仅可以用于机器人、机器的模拟操作 , 我们上面说这货的一些模型是由TF实现 , 因此大家肯定就明白了:它就是一个基于AI的仿真环境 。 所以咯 , 还可以用于ML技术比如强化学习算法的落地 , 可以让我们不直接在物理环境中测试的情况下在虚拟环境中发现一些现实中的问题 。