pybullet机器人仿真环境搭建 1.安装pybullet

  • 前言
  • 安装
  • 测试官方示例
  • 基础环境搭建
    • 导入pybullet
    • 创建服务端
    • (可选)配置图形GUI
    • 添加资源路径
    • 设置重力
    • 加载模型
    • 迭代运行
    • 关闭服务端
  • 基础环境代码

前言

ROS + Gazebo应该是目前最常用的机器人仿真环境,但在gazebo中进行重复实验、记录数据是很麻烦(重置模型状态、渲染都很费时间),不适合快速验证DL、RL算法。

pybullet + gym应该是目前最常见的机器人强化学习仿真环境了,本篇开始学习搭建自己的pybullet仿真环境。

安装

首先要确定本地主机性能够不够,系统支持windows,linux,硬件需要一个比较好的独显(官网建议GTX680以上)用来做渲染,软件需要有OpenGL2或3。

pybullet的安装非常简单:

pip install pybullet tensorflow

因为tensorflow是google的亲儿子,自然pybullet内置的模型也是tensorflow的版本。


pip安装的pybullet有上面五个文件夹,提供了测试用的数据、环境、示例、机器人模型和一些常用的工具。

测试官方示例

官方提供了一些测试示例:

python -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may

运行后看到一个行走的机器人,表示pybullet安装就没问题了。可以用鼠标滚轮接近/远离视角,可以用Ctrl+滚轮或者鼠标左键分别拖动和旋转视角。

基础环境搭建

然后就是搭建自己需要的仿真环境。一口吃不成胖子,先从最基础的环境创建API开始。

pybullet和ros、carla一样,都采用的是client-server的通信方式,仿真器是一个server,本地client通过代码向server发送指令,server执行代码指令。

导入pybullet

首先,导入pybullet包以及数据:

import timeimport pybullet
import pybullet_data

创建服务端

然后创建一个服务端

client = pybullet.connect(pybullet.GUI)
# client = pybullet.connect(pybullet.DIRECT)

pybullet.GUI:服务端打开图形GUI做渲染,需要独显,性能消耗大
pybullet.DIRECT:不打开图形渲染,性能消耗小

(可选)配置图形GUI

设置可视化的参数:

pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_RENDERING, 0)
pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_GUI, 0)
pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_TINY_RENDERER, 0)

pybullet.COV_ENABLE_RENDERING:是否渲染
pybullet.COV_ENABLE_GUI:是否打开控件
pybullet.COV_ENBALE_TINY_RENDERER:是否使用核显渲染
0=否,1=是

添加资源路径

在环境变量中添加资源路径,后面加载机器人就不用写绝对路径了:

pybullet.setAdditionalSearchPath(pybullet_data.getDataPath())

设置重力

设置X,Y,Z轴的重力:

pybullet.setGravity(0, 0, -9.8)

一般设置Z轴重力为g,也就是-9.8

加载模型

主要是加载两种模型,即场景,机器人:

sceneID = pybullet.loadURDF('plane.urdf')
robotID = pybullet.loadURDF('r2d2.urdf', [0, 0, 0], [0, 0, 0, 1])

需要注意的是,加载机器人时,要给机器人提供初始的位置和姿态。姿态使用四元数xyzw表示。

迭代运行

仿真循环迭代设置延时:

while(True):pybullet.stepSimulation()time.sleep(0.05)

上面使得仿真环境每0.05秒执行一步。

或者直接实时仿真:

pybullet.setRealTimeSimulation(1)
while(True):pass

关闭服务端

pybullet.disconnect()

基础环境代码

把上面的API组合起来,就搭建了一个基础的仿真环境。全代码如下:

import timeimport pybullet
import pybullet_dataif __name__ == '__main__':# open the serverphysicsClient = pybullet.connect(pybullet.GUI)# config GUIpybullet.configureDebugVisualizer(pybullet.COV_ENABLE_RENDERING, 0)pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_GUI, 0)pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_TINY_RENDERER, 0)# add the resource pathpybullet.setAdditionalSearchPath(pybullet_data.getDataPath())# set gravitypybullet.setGravity(0, 0, -9.8)# load sceneplaneID = pybullet.loadURDF('plane.urdf')# load robotrobotID = pybullet.loadURDF('r2d2.urdf', [0, 0, 1], [0, 0, 0, 1])# start renderingpybullet.configureDebugVisualizer(pybullet.COV_ENABLE_RENDERING, 1)pybullet.setRealTimeSimulation(1)while True:pass# close serverpybullet.disconnect()

pybullet机器人仿真环境搭建 1.安装pybullet,测试官方示例,基础环境搭建相关推荐

  1. 生产环境和开发环境_环境部署:开发、测试和线上环境的区别

    点击蓝字 关注我们 软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件 ...

  2. vm虚拟机下linux安装python_机器人编程01——虚拟机VM安装Ubuntu并配置python开发环境...

    原博文 2020-03-05 13:58 − 机器人第一周 1 Ubuntu系统安装 右键以管理员身份打开Vmware,点击创建新的虚拟机 ​ 在创建向导中选择"典型" ​ 把安装 ...

  3. k8s kubesphere安装在k8s中的基础环境准备(前提条件)

    先决条件 只要您的 Kubernetes 集群满足以下先决条件,不仅可以将 KubeSphere 安装在具有预配置的 Kubernetes 的虚拟机和裸机上,而且还支持在云托管和本地现有 Kubern ...

  4. 树莓派4B 8G安装日志(1)——基础环境安装

    由于内卷严重,想带着孩子(一年级)玩玩编程,所以把树莓派又玩了起来.之前我买的是3B+现在更新到了4b,于是买了8G版本回来.下面把安装过程中的坑和琐事记录下来备忘也可为由类似需求的朋友借鉴. 一.安 ...

  5. itop在Linux部署环境,iTop的安装部署-测试环境的安装配置- iTop软件安装

    本帖最后由 adminlily 于 2020-12-24 09:29 编辑 软件下载 iTop软件可以在网上搜索找到,或到www.itilxf.com社区下载,也可以直接在QQ群的共享里下载,群号是2 ...

  6. IDEIDEA 如何搭建maven 安装、下载、配置A 如何搭建maven 安装、下载、配置

    1.下载 maven 压缩包 输入网址 www.apache.org 会看到以下界面 住下划看到以下界面 然后看到这个界面 选择下载这个版本 下载后 解压 maven 压缩包 (文件路径不建议用有中文 ...

  7. Parrot OS 4.6渗透测试系统安装与基础环境搭建

    Parrot OS简介 Parrot Security是对黑客和渗透测试人员非常友好的一个操作系统,Forensics Distro致力于黑客和网络安全专业人士.它有一个大型存储库,可以为新手和专家收 ...

  8. linux环境下如何安装DHCP服务器及示例

    一.配置DHCP服务器 1.使用DHCP动态配置主机地址 1.1 DHCP服务 A.为大量客户机自动分配地址,提供集中管理 B.减轻管理和维护成本.提高网络配置效率 1.2可分配的地址信息主要包括 A ...

  9. Linux基础环境搭建(CentOS7)- 安装Flume

    Linux基础环境搭建(CentOS7)- 安装Flume 大家注意以下的环境搭建版本号,如果版本不匹配有可能出现问题! Linux基础环境搭建(CentOS7)- 虚拟机准备 Linux基础环境搭建 ...

最新文章

  1. struts2.0实现文件上传
  2. 【转载】增强中调用BAPI并COMMIT使用
  3. pycharm中import报错 命令行import正常
  4. pythonddos攻击代码_【分享】Python简易DDos攻击器源码
  5. C语言--关于指针两种初始化赋值操作
  6. AMD规范(RequireJS)、CMD规范(SeaJS)、CommonJS(BravoJS)规范的辨析
  7. vue2之对象属性的监听
  8. EOS源码分析:transaction的一生
  9. 10.1综合强化刷题 Day1 morning
  10. centos是什么linux操作系统,Linux 操作系统之CentOS的介绍
  11. GSM系统的网络结构
  12. 盗贼之海服务器维护时间,盗贼之海常见问题解决方法
  13. 西瓜书与蓝皮书 思维导图(转)
  14. 思维层次越高的人越爱看这几个公众号!
  15. RUA!ERROR!
  16. 大数据分析-零基础学Tableau+超详细讲解+示例练习(二)
  17. 腾讯云Mysql数据库逻辑备份文件还原数据库
  18. poj2228Naptime——环形DP
  19. Python WordCloud 文本分析 生成词云图
  20. MAC解决VirtualBox打不开报错问题

热门文章

  1. 让IE8兼容console
  2. BLAG: Improving the Accuracy of Blacklists
  3. 低市值高业绩的TCL,能否借“元宇宙”风口说新故事?
  4. 中国移动网上商城有多坑?
  5. 微信公众号都有哪些营销技巧
  6. ITPUB名人堂第二期
  7. 华为p40pro显示无法连接服务器,华为P40Pro使用中出现死机卡死怎么办?
  8. 安装计算机软件系统过程,计算机软件系统安装.ppt
  9. 2020焊工(技师)考试题及焊工(技师)复审模拟考试
  10. bootstrap搭建后台管理页面