介绍
主要包含Modeling APIs和Simulation APIs两部分。Modeling部分定义了环境和任务。 Simulation部分提供了policy。
- 其中Modeling APIs包含三部分: 机器人模型,物体模型和arena(场景)。
RobotModel包含了 机器人模型和对应的抓手模型;Object Mode包含了物体模型;Arena定义了机器人的工作空间和场景。这三个会生成一个MJCF文件,然后使用mujoco引擎生成仿真环境。 - Environment APIs包含了上述的Modeling APIs(Simulation Model),以及机器人控制的输入(获取action),获取环境的观测值作为输出(提供observation)。 作为直接与agent进行交互的API,是OpenAI Gym类型的类。
Environment 一方面可以调用已经写好的标准任务,也可以通过一系列configure来配置环境。
- Environment环境是模块化结构,能够快速改变机器人的结构(机械结构和控制方式),控制器的类型。 每一个environment都有自己的MJCF模型,通过_load_model来生成每个任务的实例。
- Task类 将 placement_initializer 作为输入,决定了 task中不同类的初始化。

- Robot 包含 RobotModel, GripperModel 和 Controller 三个类。
- Robot包含8中机器人,7种抓手和6种控制器。
- 每一个机器人都有一个独一无二的ID,相同种类的机器人可以在仿真器中同时仿真。

1.1 PandaGripper: 7自由度,平行抓手(手指较小)。
1.2 Sawyer: 7自由度,平行抓手(手指较长)。
1.3 IIWA: KUKA工业级机器人,7自由度,传动力最大。 抓手仿人两手指。
1.4 Jaco:KInova 7自由度,3手指抓手。
1.5 Kinova3: 7自由度,平行抓手。
1.6 UR5e:6自由度机器人,平行抓手。
1.7 Baxter: 双手机器人。

基于位置的控制,输入量为相对移动。
Objects 比如 盒子或者罐子,通过 MujocoObject来进行控制,一方面可以通过 MujocoXMLObject生成, 另一方面可以通过 MujocoGeneratedObject来生成。
- sensors 用于生成观测值。 机器人的关节位置和速度并不在sensor类中,而是直接作为robot类的属性 _joint_positions 和 _joint_velocities。
- I/O devices: 定义了用户通过teleoperator来控制机器人。
Environments
tasks
- Block Lifting: cube举起一定高度。
- Block Stacking: 多个cube进行堆叠。
- Pick-and-Place: 将对应的物体放在对应的箱子中。
- Nut Assembly: 装配。
- Door Opening: 开门。
- Table Wiping: 桌子表面擦拭。
- Two-Arm Lifting: 两个手臂提取壶。
- Two Arm Peg-In-Hole。
- Two-Arm HandOver.
documentation
Installation
对应MUJOCO 200.
sudo apt install curl git libgl1-mesa-dev libgl1-mesa-glx libglew-dev \
libosmesa6-dev software-properties-common net-tools unzip vim \
virtualenv wget xpra xserver-xorg-dev libglfw3-dev patchelf
pip install robosuite
QuickStart
import numpy as np
import robosuite as suite
# create environment instance
env = suite.make(
env_name="Lift", # try with other tasks like "Stack" and "Door"
robots="Panda", # try with other robots like "Sawyer" and "Jaco"
has_renderer=True,
has_offscreen_renderer=False,
use_camera_obs=False,
)
# reset the environment
env.reset()
# get action limits
low, high = env.action_spec
for i in range(1000):
action = np.random.randn(env.robots[0].dof) # sample random action
obs, reward, done, info = env.step(action) # take action in the environment
env.render() # render on display
Modules
Mujoco Model
MujocoModel类是其他类的基础类。
Robot Model
RobotModel用于构建机器人。
Manipulator Model
拓展自 RobotModel。
Gripper Model
作为Manipulator的一部分。
Object Model
Arena
Task
包含 Robot Model, Arena, Object Model。
Build tasks by standard components
environment
robosuite.ALL_ENVIRONMENTS
'Lift',
'Stack',
'NutAssembly',
'NutAssemblySingle',
'NutAssemblySquare',
'NutAssemblyRound',
'PickPlace',
'PickPlaceSingle',
'PickPlaceMilk',
'PickPlaceBread',
'PickPlaceCereal',
'PickPlaceCan',
'Door',
'Wipe',
'TwoArmLift',
'TwoArmPegInHole',
'TwoArmHandover'
robot
robosuite.ALL_ROBOTS
'Sawyer',
'Baxter',
'Panda',
'Jaco',
'Kinova3',
'IIWA',
'UR5e'
controller
robosuite.ALL_CONTROLLERS
'JOINT_VELOCITY'

最低0.47元/天 解锁文章
868

被折叠的 条评论
为什么被折叠?



