pyrfuniverse.envs package
pyrfuniverse.envs.base_env module
- class pyrfuniverse.envs.base_env.RFUniverseBaseEnv(executable_file: str | None = None, scene_file: str | None = None, assets: list = [], graphics: bool = True, port: int = 5004, proc_id=0, log_level=1, ext_attr: list = [], check_version: bool = True, communication_backend: str = 'tcp')
Bases:
ABC
RFUniverse base environment class.
- Parameters:
executable_file – Str, the absolute path of Unity executable file. None for last used executable file; “@editor” for using Unity Editor.
scene_file – Str, the absolute path of Unity scene JSON file. All JSON files locate at StraemingAssets/SceneData by default.
assets – List, the list of pre-load assets. All assets in the list will be pre-loaded in Unity when the environment is initialized, which will save time during instanciating.
graphics – Bool, True for showing GUI and False for headless mode.
port – Int, the port for communication.
proc_id – Int, the process id for the Unity environment. 0 for the first process, 1 for the second process, and so on.
log_level – Int, the log level for Unity environment. 0 for no log, 1 for errors logs, 2 for warnings and errors, 3 for all only.
ext_attr – List, the list of extended attributes. All extended attributes will be added to the environment.
check_version – Bool, True for checking the version of the Unity environment and the pyrfuniverse library. False for not checking the version.
communication_backend – Str, Specify communication backend, Can be “tcp” or “grpc”.
- step(count: int = 1, simulate: bool = True, collect: bool = True)
Send the messages of called functions to Unity and simulate for a step, then accept the data from Unity.
- Parameters:
count – The number of steps for executing Unity simulation.
simulate – Simulate Physics
collect – Collect Data
- close()
Close the environment
- Simulate(time_step: float = -1, count: int = 1)
Physics simulation
- Parameters:
time_step – delta time of simulation pre step
simulation (count:count of)
- Collect()
Collect env data
- GetAttr(id: int)
Get the attribute instance by object id.
- Parameters:
id – Int, object id.
- Returns:
An instance of attribute.
- Return type:
pyrfuniverse.attributes.BaseAttr
- PreLoadAssetsAsync(names: list, auto_wait: bool = False) None
PreLoad the asset.
- Parameters:
names – list, the name of assets.
auto_wait – Bool, if True, this function will not return until the loading is done.
- LoadSceneAsync(file: str, auto_wait: bool = False) None
Load the scene asynchronisely.
- Parameters:
file – Str, the scene JSON file. If it’s a relative path, it will load from StraemingAssets.
auto_wait – Bool, if True, this function will not return until the loading is done.
- SwitchSceneAsync(name: str, auto_wait: bool = False) None
Switch the scene asynchronisely.
- Parameters:
name – Str, the scene name.
auto_wait – Bool, if True, this function will not return until the loading is done.
- WaitSceneInit() None
Wait for the Scene Init done.
- WaitLoadDone() None
Wait for the loading is done.
- Pend(simulate: bool = True, collect: bool = True) None
Pend the program until the EndPend button in UnityPlayer is clicked.
- SendObject(head: str, *args) None
Send object to Unity.
- Parameters:
head – Str, the message head.
*args – List, the list of parameters. We support str, bool, int, float and List[float] types.
- AddListenerObject(head: str, fun)
Add object listener.
- Parameters:
head – Str, the message head.
fun – Callable, the callback function.
- RemoveListenerObject(head: str)
Remove object listener.
- Parameters:
head – Str, the message head.
- InstanceObject(name: str, id: int | None = None, attr_type: type = <class 'pyrfuniverse.attributes.base_attr.BaseAttr'>)
Instanciate an object.
Built-in assets:
- BaseAttr:
“Empty”,
- GameObjectAttr:
- Basic Objects:
“GameObject_Box”, “GameObject_Capsule”, “GameObject_Cylinder”, “GameObject_Sphere”, “GameObject_Quad”,
- IGbison Meshes:
“Hainesburg_mesh_texture”, “Halfway_mesh_texture”, “Hallettsville_mesh_texture”, “Hambleton_mesh_texture”, “Hammon_mesh_texture”, “Hatfield_mesh_texture”, “Haxtun_mesh_texture”, “Haymarket_mesh_texture”, “Hendrix_mesh_texture”, “Hercules_mesh_texture”, “Highspire_mesh_texture”, “Hitchland_mesh_texture”,
- ColliderAttr:
“Collider_Box”, “Collider_ObiBox”, “Collider_Capsule”, “Collider_Cylinder”, “Collider_Sphere”, “Collider_Quad”,
- RigidbodyAttr:
- Basic Objects:
“Rigidbody_Box”, “GameObject_Capsule”, “Rigidbody_Cylinder”, “Rigidbody_Sphere”,
- YCB dataset:
77 models in YCB dataset. See YCB Object and Model Set for detail: https://rse-lab.cs.washington.edu/projects/posecnn/
- ControllerAttr:
- gripper:
“allegro_hand_right”, “bhand”, “svh”, “robotiq_arg2f_85_model”, “dh_robotics_ag95_gripper”, “shadowhand”,
- robot arm:
“kinova_gen3”, “ur5”, “flexivArm”, “tobor_r300”,
- robot arm and gripper:
“franka_panda”, “kinova_gen3_robotiq85”, “ur5_robotiq85”, “tobor_r300_ag95_ag95”, “tobor_r300_robotiq85_robotiq85”, “flexivArm_ag95”, “yumi”,
- CameraAttr:
“Camera”,
- LightAttr:
“Light”,
- PointCloudAttr:
“PointCloud”,
- Parameters:
name – Str, object name. Please check the above built-in assets list for names.
id – Int, object id.
attr_type – type(pyrfuniverse.attributes.BaseAttr), the attribute type. This parameter helps the editor identify types/completion codes
- Returns:
The object attribute instance.
- Return type:
type(attr_type)
- LoadURDF(path: str, id: int | None = None, native_ik: bool = False, axis: str = 'y') ControllerAttr
Load a model from URDF file.
- Parameters:
path – Str, the URDF file path.
id – Int, object id.
native_ik – Bool, True for enabling native IK; False for using custom IK.When it is True, through the IKTargetDo*** interface, according to the end pose.When it is False, through the SetJoint*** interface, according to the joint movement.
axis – Str, Removed
- Returns:
The object attribute intance.
- Return type:
pyrfuniverse.attributes.ControllerAttr
- LoadMesh(path: str, id: int | None = None, collider_mode: str = 'VHACD') RigidbodyAttr
Load a model from Mesh file.
- Parameters:
path – Str, the Mesh file path.
id – Int, object id.
collider_mode – Str, How to generate collisions for model, can be “VHACD”/”CoACD”/”Convex”/Any other is None Collider
- Returns:
The object attribute intance.
- Return type:
pyrfuniverse.attributes.RigidbodyAttr
- IgnoreLayerCollision(layer1: int, layer2: int, ignore: bool) None
Ignore or enable the collision between two layers.
- Parameters:
layer1 – Int, the layer number of the first layer.
layer2 – Int, the layer number of the second layer.
ignore – Bool, True for ignoring collision between two layers; False for enabling collision between two layers.
- GetCurrentCollisionPairs() None
Get the collision pairs of current collision. After calling this method and stepping once, the result will be saved in env.data[‘CurrentCollisionPairs’]
- GetRFMoveColliders() None
Get the RFMove colliders. After calling this method and stepping once, the result will be saved in env.data[‘RFMoveColliders’]
- SetGravity(x: float, y: float, z: float) None
Set the gravity of environment.
- Parameters:
x – Float, gravity on global x-axis (right).
y – Float, gravity on global y-axis (up).
z – Float, gravity on global z-axis (forward).
- SetGroundActive(active: bool) None
Set the ground active or inactive.
- Parameters:
active – Bool, active or inactive the ground.
- SetGroundPhysicMaterial(bounciness: float, dynamic_friction: float, static_friction: float, friction_combine: int, bounce_combine: int) None
Set the physics material of ground in environment.
- Parameters:
bounciness – Float, the bounciness.
dynamic_friction – Float, the dynamic friction coefficient (0-1).
static_friction – Float, the static friction coefficient (0-1).
friction_combine – Int, how friction of two colliding objects is combined. 0 for Average, 1 for Minimum, 2 for Maximum and 3 for Multiply. See https://docs.unity3d.com/Manual/class-PhysicMaterial.html for more details.
bounce_combine – Int, how bounciness of two colliding objects is combined. The value representation is the same with friction_combine.
- SetTimeStep(delta_time: float) None
Set the time for a step in Unity.
- Parameters:
delta_time – Float, the time for a step in Unity.
- SetTimeScale(time_scale: float) None
Set the time scale in Unity.
- Parameters:
time_scale – Float, the time scale in Unity.
- SetResolution(resolution_x: int, resolution_y: int) None
Set the resolution of windowed GUI.
- Parameters:
resolution_x – Int, window width.
resolution_y – Int, window height.
- ExportOBJ(items_id: list, save_path: str) None
Export the specified object list to OBJ file. For native bundle models, the Read/Write must be checked in Unity Editor.
- Parameters:
items_id – List, the object ids.
save_path – Str, the path to save the OBJ files.
- SetShadowDistance(distance: float) None
Set the shadow distance for rendering in environment.
- Parameters:
distance – Float, the shadow distance measured in meter.
- SaveScene(file: str) None
Save current scene.
- Parameters:
file – Str, the file path to save current scene. Default saving to StreamingAssets folder.
- ClearScene() None
Clear current scene.
- AlignCamera(camera_id: int) None
Align current GUI view to a given camera.
- Parameters:
camera_id – Int, camera id.
- SetViewTransform(position: list | None = None, rotation: list | None = None) None
Set the GUI view.
- Parameters:
position – A list of length 3, representing the position of GUI view.
rotation – A list of length 3, representing the rotation of GUI view.
- GetViewTransform() None
Get the GUI view transform.After calling this method and stepping once, the result will be saved in env.data[‘view_position’] / env.data[‘view_rotation’] / env.data[‘view_quaternion’]
- ViewLookAt(target: list, world_up: list | None = None) None
Rotates the transform so the forward vector points at target’s current position.
- Parameters:
target – A list of length 3, target to point towards.
world_up – A list of length 3, vector specifying the upward direction.
- SetViewBackGround(color: list | None = None) None
Set the GUI view BackGround.
- Parameters:
color – A list of length 3, background color of GUI view. None : default skybox.
- LoadCloth(path: str, id: int | None = None) ClothAttr
Load a mesh to Cloth.
- Parameters:
path – Str, the Mesh file path.
id – Int, object id.
- EnabledGroundObiCollider(enabled: bool) None
Enabled Ground ObiCollider.
- Parameters:
enabled – Bool, the Ground ObiCollider enabled.
- DebugGraspPoint(enabled: bool = True) None
Show or hide end effector of robot arm for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- DebugObjectPose(enabled: bool = True) None
Show or hide object base point for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- DebugCollisionPair(enabled: bool = True) None
Show or hide collision pairs for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- DebugColliderBound(enabled: bool = True) None
Show or hide collider bounding box for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- DebugObjectID(enabled: bool = True) None
Show or hide object id for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- Debug3DBBox(enabled: bool = True) None
Show or hide 3d bounding box of objects for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- Debug2DBBox(enabled: bool = True) None
Show or hide 2d bounding box of objects for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- DebugJointLink(enabled: bool = True) None
Show or hide joint information of articulation for debug.
- Parameters:
enabled – Bool, True for showing and False for hiding.
- SendLog(log: str) None
Send log messange and show it on Unity GUI window.
- Parameters:
log – Str, log message.
- ShowArticulationParameter(controller_id: int) None
Show Articulation Parameter on Unity GUI window.
- Parameters:
controller_id – int, controller_attr id.
- NewPhysicsScene(physics_scene_id: int) None
Places all current scene objects into the new physics scene, and all objects are prefixed with the ID of the physical scene
- Parameters:
physics_scene_id – int, physics scene id.
- CopyPhysicsScene(new_id: int, copy_id: int) None
Copy a physics scene
- Parameters:
new_id – int, new physics scene id.
copy_id – int, copy physics scene id.
- SimulatePhysicsScene(physics_scene_id: int, time_step: float = -1, count: int = 1) None
Physics scene simulation
- Parameters:
physics_scene_id – int, physics scene id.
time_step – delta time of simulation pre step
simulation (count:count of)
pyrfuniverse.envs.gym_wrapper_env module
- class pyrfuniverse.envs.gym_wrapper_env.RFUniverseGymWrapper(executable_file: str | None = None, scene_file: str | None = None, assets: list = [], graphics: bool = True, port: int = 5004, proc_id=0, log_level=1, ext_attr: list[type] = [], check_version: bool = True, communication_backend: str = 'tcp')
Bases:
RFUniverseBaseEnv
,Env
RFUniverse base environment with Gym class.
- Parameters:
executable_file – Str, the absolute path of Unity executable file. None for last used executable file; “@editor” for using Unity Editor.
scene_file – Str, the absolute path of Unity scene JSON file. All JSON files locate at StraemingAssets/SceneData by default.
assets – List, the list of pre-load assets. All assets in the list will be pre-loaded in Unity when the environment is initialized, which will save time during instanciating.
graphics – Bool, True for showing GUI and False for headless mode.
port – Int, the port for communication.
proc_id – Int, the process id for the Unity environment. 0 for the first process, 1 for the second process, and so on.
log_level – Int, the log level for Unity environment. 0 for no log, 1 for errors logs, 2 for warnings and errors, 3 for all only.
ext_attr – List, the list of extended attributes. All extended attributes will be added to the environment.
check_version – Bool, True for checking the version of the Unity environment and the pyrfuniverse library. False for not checking the version.
- env_step(count: int = 1, simulate: bool = True, collect: bool = True)
Send the messages of called functions to Unity and simulate for a step, then accept the data from Unity.
- Parameters:
count – The number of steps for executing Unity simulation.
simulate – Simulate Physics
collect – Collect Data
- step(action: ActType) tuple[ObsType, SupportsFloat, bool, bool, dict[str, Any]]
Gym step.
- Parameters:
action – gym action.
- env_close()
Close the environment
- close()
Close gym