赞
踩
先从 Microsoft C++ Build Tools - Visual Studio
下载 1.73GB 安装 "Microsoft C++ Build Tools“
现在,我们将创建一个虚拟环境,并在其中安装 numpy , pybullet
cd /python
python -m venv myenv
cd myenv
使用 Scripts\activate 激活环境,
接着 (myenv) D:\python\myenv\Scripts>pip install numpy
Downloading numpy-1.26.1-cp310-cp310-win_amd64.whl (15.8 MB)
Successfully installed numpy-1.26.1
然后 pip install pybullet
pybullet-3.2.5.tar.gz (80.5 MB)
Preparing metadata (setup.py) ... done
Installing collected packages: pybullet
Running setup.py install for pybullet ... done
Successfully installed pybullet-3.2.5
\python\myenv\Lib\site-packages\ 目录下有
pybullet_data:存放各种机器人的URDF文件和模型。
pybullet_envs:存放各种机器人环境(类似gym)和示例效果。
pybullet_examples:介绍pybullet的各种基本功能,如运动学、动力学、PD控制、碰撞检测等。
pybullet_robots:演示几种典型的机器人,如 laikago、panda、xarm。
pybullet_utils:提供一些实用工具,如读写urdf、数学函数、矩阵操作等。
一个典型的仿真程序主要分为两块:
1.配置:PyBullet 的API 基于 client-server 设计,client 发送命令,physics server 返回状态。所以首先是 p.connet(xxx),常用 p.GUI(带渲染) 和 p.DIRECT(不带渲染,适合强化学习训练) 两种模式。之后就是设置重力以及仿真器的一些参数,最后是加载机器人的模型。
2.循环:p.stepSimulation() 在一个正向动力学仿真步骤中执行所有动作,默认时间步长 1/240 秒。
每个存档都包含一个带有元数据的 json文件,包括用于呈现和碰撞检测的子资产的路径,以及PyBullet使用的统一机器人描述格式(URDF)中物理属性的定义。对于纹理模型,采用GLTF标准。
从官网 例子开始,看下 Franka Emika Panda 的机器人仿真效果:
python -m pybullet_robots.panda.loadpanda
按住Ctrl+左键可旋转场景,Ctrl+中键可平移场景,滑动中键可拉近拉远。Panda 机器人模型就在 pybullet_data/franka_panda 中。
最后安装 OpenAI 强化学习工具 pip install gym
Downloading gym-0.26.2.tar.gz (721 kB) Successfully built gym
Installing collected packages: gym-notices, cloudpickle, gym
Successfully installed cloudpickle-3.0.0 gym-0.26.2 gym-notices-0.0.8
请参阅:强化学习笔记:Gym入门
\python\myenv\Lib\site-packages\pybullet_robots\panda\loadpanda.py 如下
- import pybullet as p
- import pybullet_data as pd
- import math
- import time
- import numpy as np
- import pybullet_robots.panda.panda_sim as panda_sim
-
- p.connect(p.GUI)
- p.configureDebugVisualizer(p.COV_ENABLE_Y_AXIS_UP,1)
- p.setAdditionalSearchPath(pd.getDataPath())
-
- timeStep=1./60.
- p.setTimeStep(timeStep)
- p.setGravity(0,-9.8,0) #set 重力值
-
- panda = panda_sim.PandaSim(p,[0,0,0])
- while (1):
- panda.step()
- p.stepSimulation()
- time.sleep(timeStep)
机器手臂 python -m pybullet_robots.xarm.loadxarm_sim
机器狗 python -m pybullet_robots.laikago.laikago
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。