unilab.envs.manipulation.sharpa_inhand.base¶
Functions
|
Convert one object scale into a stable cache filename tag. |
|
|
|
Resolve the grasp cache path for a single object scale. |
|
Sample one cached grasp per reset environment from per-scale cache files. |
Classes
SharpaControlConfig(action_scale: 'float' = 0.041666666666666664, p_gain: 'float' = 1.0, d_gain: 'float' = 0.1, torque_control: 'bool' = False, dof_limits_scale: 'float' = 0.9) |
|
SharpaDomainRandConfig(scale_list: 'list[float]' = <factory>, randomize_base_mass: 'bool' = False, added_mass_range: 'list[float]' = <factory>, random_com: 'bool' = False, com_offset_x: 'list[float]' = <factory>, randomize_gravity: 'bool' = False, gravity_range: 'list[list[float]]' = <factory>, randomize_gravity_direction: 'bool' = False, gravity_direction_magnitude: 'float' = 9.81, randomize_pd_gains: 'bool' = True, randomize_p_gain_scale_lower: 'float' = 0.5, randomize_p_gain_scale_upper: 'float' = 2.0, randomize_d_gain_scale_lower: 'float' = 0.5, randomize_d_gain_scale_upper: 'float' = 2.0, randomize_friction: 'bool' = True, randomize_friction_scale_lower: 'float' = 0.5, randomize_friction_scale_upper: 'float' = 2.0, elastomer_base_friction: 'float' = 1.6, metal_base_friction: 'float' = 0.2, object_base_friction: 'float' = 1.0, randomize_com: 'bool' = True, randomize_com_lower: 'float' = -0.01, randomize_com_upper: 'float' = 0.01, randomize_mass: 'bool' = True, randomize_mass_lower: 'float' = 0.01, randomize_mass_upper: 'float' = 0.25, force_scale: 'float' = 2.0, random_force_prob_scalar: 'float' = 0.25, force_decay: 'float' = 0.9, force_decay_interval: 'float' = 0.08, joint_noise_scale: 'float' = 0.02, contact_latency: 'float' = 0.005, contact_sensor_noise: 'float' = 0.01, push_body_name: 'str | None' = None) |
|
SharpaInhandBaseCfg(scene: 'SceneCfg' = <factory>, sim_dt: 'float' = 0.004166666666666667, max_episode_seconds: 'float' = 20.0, ctrl_dt: 'float' = 0.05, render_spacing: float = 1.0, render_offset_mode: str = 'grid', motrix_max_iterations: Optional[int] = None, post_step_forward_sensor: bool = False, action_space: 'int' = 22, observation_space: 'int' = 192, prop_hist_len: 'int' = 30, critic_info_dim: 'int' = 8, clip_obs: 'float' = 5.0, clip_actions: 'float' = 1.0, num_hand_dofs: 'int' = 22, frame_obs_dim: 'int' = 64, obs_lag_steps: 'int' = 3, obs_history_len: 'int' = 80, base_name: 'str' = 'right_hand_C_MC', object_body_name: 'str' = 'object', object_geom_name: 'str' = 'object', actuated_joint_names: 'list[str]' = <factory>, fingertip_body_names: 'list[str]' = <factory>, control_config: 'SharpaControlConfig' = <factory>, sensor: 'SharpaSensorConfig' = <factory>, obs: 'SharpaObservationConfig' = <factory>, priv_info: 'SharpaPrivilegedInfoConfig' = <factory>, domain_rand: 'SharpaDomainRandConfig' = <factory>, reset_height_lower: 'float' = 0.59906, reset_height_upper: 'float' = 0.63906, reset_angle_diff: 'float' = 0.7853981633974483, rot_axis: 'tuple[float, float, float]' = (0.0, 0.0, 1.0), grasp_cache_path: 'str' = '/home/admin1/ws/Eric/UniLab/src/unilab/assets/caches/sharpa_grasp_linspace', disable_tactile_ids: 'list[int]' = <factory>, use_default_object_pose_for_object_pos_anchor: 'bool' = False, debug_show_axes: 'bool' = False) |
|
SharpaObservationConfig(observation_mode: 'str' = 'separated', enable_tactile: 'bool' = True, binary_contact: 'bool' = False, enable_contact_pos: 'bool' = False, contact_smooth: 'float' = 0.5, contact_threshold: 'float' = 0.05, tactile_force_clip_max: 'float' = 4.0) |
|
SharpaPrivilegedInfoConfig(include_friction_scale: 'bool' = True, include_gravity_direction: 'bool' = False) |
|
SharpaSensorConfig(tactile_force_sensor_names: 'list[str]' = <factory>) |
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaControlConfig[source]¶
Bases:
objectSharpaControlConfig(action_scale: ‘float’ = 0.041666666666666664, p_gain: ‘float’ = 1.0, d_gain: ‘float’ = 0.1, torque_control: ‘bool’ = False, dof_limits_scale: ‘float’ = 0.9)
- Parameters:
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaSensorConfig[source]¶
Bases:
objectSharpaSensorConfig(tactile_force_sensor_names: ‘list[str]’ = <factory>)
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaObservationConfig[source]¶
Bases:
objectSharpaObservationConfig(observation_mode: ‘str’ = ‘separated’, enable_tactile: ‘bool’ = True, binary_contact: ‘bool’ = False, enable_contact_pos: ‘bool’ = False, contact_smooth: ‘float’ = 0.5, contact_threshold: ‘float’ = 0.05, tactile_force_clip_max: ‘float’ = 4.0)
- Parameters:
- __init__(observation_mode='separated', enable_tactile=True, binary_contact=False, enable_contact_pos=False, contact_smooth=0.5, contact_threshold=0.05, tactile_force_clip_max=4.0)¶
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaPrivilegedInfoConfig[source]¶
Bases:
objectSharpaPrivilegedInfoConfig(include_friction_scale: ‘bool’ = True, include_gravity_direction: ‘bool’ = False)
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaDomainRandConfig[source]¶
Bases:
objectSharpaDomainRandConfig(scale_list: ‘list[float]’ = <factory>, randomize_base_mass: ‘bool’ = False, added_mass_range: ‘list[float]’ = <factory>, random_com: ‘bool’ = False, com_offset_x: ‘list[float]’ = <factory>, randomize_gravity: ‘bool’ = False, gravity_range: ‘list[list[float]]’ = <factory>, randomize_gravity_direction: ‘bool’ = False, gravity_direction_magnitude: ‘float’ = 9.81, randomize_pd_gains: ‘bool’ = True, randomize_p_gain_scale_lower: ‘float’ = 0.5, randomize_p_gain_scale_upper: ‘float’ = 2.0, randomize_d_gain_scale_lower: ‘float’ = 0.5, randomize_d_gain_scale_upper: ‘float’ = 2.0, randomize_friction: ‘bool’ = True, randomize_friction_scale_lower: ‘float’ = 0.5, randomize_friction_scale_upper: ‘float’ = 2.0, elastomer_base_friction: ‘float’ = 1.6, metal_base_friction: ‘float’ = 0.2, object_base_friction: ‘float’ = 1.0, randomize_com: ‘bool’ = True, randomize_com_lower: ‘float’ = -0.01, randomize_com_upper: ‘float’ = 0.01, randomize_mass: ‘bool’ = True, randomize_mass_lower: ‘float’ = 0.01, randomize_mass_upper: ‘float’ = 0.25, force_scale: ‘float’ = 2.0, random_force_prob_scalar: ‘float’ = 0.25, force_decay: ‘float’ = 0.9, force_decay_interval: ‘float’ = 0.08, joint_noise_scale: ‘float’ = 0.02, contact_latency: ‘float’ = 0.005, contact_sensor_noise: ‘float’ = 0.01, push_body_name: ‘str | None’ = None)
- Parameters:
randomize_base_mass (
bool)random_com (
bool)randomize_gravity (
bool)randomize_gravity_direction (
bool)gravity_direction_magnitude (
float)randomize_pd_gains (
bool)randomize_p_gain_scale_lower (
float)randomize_p_gain_scale_upper (
float)randomize_d_gain_scale_lower (
float)randomize_d_gain_scale_upper (
float)randomize_friction (
bool)randomize_friction_scale_lower (
float)randomize_friction_scale_upper (
float)elastomer_base_friction (
float)metal_base_friction (
float)object_base_friction (
float)randomize_com (
bool)randomize_com_lower (
float)randomize_com_upper (
float)randomize_mass (
bool)randomize_mass_lower (
float)randomize_mass_upper (
float)force_scale (
float)random_force_prob_scalar (
float)force_decay (
float)force_decay_interval (
float)joint_noise_scale (
float)contact_latency (
float)contact_sensor_noise (
float)
- __init__(scale_list=<factory>, randomize_base_mass=False, added_mass_range=<factory>, random_com=False, com_offset_x=<factory>, randomize_gravity=False, gravity_range=<factory>, randomize_gravity_direction=False, gravity_direction_magnitude=9.81, randomize_pd_gains=True, randomize_p_gain_scale_lower=0.5, randomize_p_gain_scale_upper=2.0, randomize_d_gain_scale_lower=0.5, randomize_d_gain_scale_upper=2.0, randomize_friction=True, randomize_friction_scale_lower=0.5, randomize_friction_scale_upper=2.0, elastomer_base_friction=1.6, metal_base_friction=0.2, object_base_friction=1.0, randomize_com=True, randomize_com_lower=-0.01, randomize_com_upper=0.01, randomize_mass=True, randomize_mass_lower=0.01, randomize_mass_upper=0.25, force_scale=2.0, random_force_prob_scalar=0.25, force_decay=0.9, force_decay_interval=0.08, joint_noise_scale=0.02, contact_latency=0.005, contact_sensor_noise=0.01, push_body_name=None)¶
- Parameters:
randomize_base_mass (
bool)random_com (
bool)randomize_gravity (
bool)randomize_gravity_direction (
bool)gravity_direction_magnitude (
float)randomize_pd_gains (
bool)randomize_p_gain_scale_lower (
float)randomize_p_gain_scale_upper (
float)randomize_d_gain_scale_lower (
float)randomize_d_gain_scale_upper (
float)randomize_friction (
bool)randomize_friction_scale_lower (
float)randomize_friction_scale_upper (
float)elastomer_base_friction (
float)metal_base_friction (
float)object_base_friction (
float)randomize_com (
bool)randomize_com_lower (
float)randomize_com_upper (
float)randomize_mass (
bool)randomize_mass_lower (
float)randomize_mass_upper (
float)force_scale (
float)random_force_prob_scalar (
float)force_decay (
float)force_decay_interval (
float)joint_noise_scale (
float)contact_latency (
float)contact_sensor_noise (
float)
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaInhandBaseCfg[source]¶
Bases:
EnvCfgSharpaInhandBaseCfg(scene: ‘SceneCfg’ = <factory>, sim_dt: ‘float’ = 0.004166666666666667, max_episode_seconds: ‘float’ = 20.0, ctrl_dt: ‘float’ = 0.05, render_spacing: float = 1.0, render_offset_mode: str = ‘grid’, motrix_max_iterations: Optional[int] = None, post_step_forward_sensor: bool = False, action_space: ‘int’ = 22, observation_space: ‘int’ = 192, prop_hist_len: ‘int’ = 30, critic_info_dim: ‘int’ = 8, clip_obs: ‘float’ = 5.0, clip_actions: ‘float’ = 1.0, num_hand_dofs: ‘int’ = 22, frame_obs_dim: ‘int’ = 64, obs_lag_steps: ‘int’ = 3, obs_history_len: ‘int’ = 80, base_name: ‘str’ = ‘right_hand_C_MC’, object_body_name: ‘str’ = ‘object’, object_geom_name: ‘str’ = ‘object’, actuated_joint_names: ‘list[str]’ = <factory>, fingertip_body_names: ‘list[str]’ = <factory>, control_config: ‘SharpaControlConfig’ = <factory>, sensor: ‘SharpaSensorConfig’ = <factory>, obs: ‘SharpaObservationConfig’ = <factory>, priv_info: ‘SharpaPrivilegedInfoConfig’ = <factory>, domain_rand: ‘SharpaDomainRandConfig’ = <factory>, reset_height_lower: ‘float’ = 0.59906, reset_height_upper: ‘float’ = 0.63906, reset_angle_diff: ‘float’ = 0.7853981633974483, rot_axis: ‘tuple[float, float, float]’ = (0.0, 0.0, 1.0), grasp_cache_path: ‘str’ = ‘/home/admin1/ws/Eric/UniLab/src/unilab/assets/caches/sharpa_grasp_linspace’, disable_tactile_ids: ‘list[int]’ = <factory>, use_default_object_pose_for_object_pos_anchor: ‘bool’ = False, debug_show_axes: ‘bool’ = False)
- Parameters:
scene (
SceneCfg)sim_dt (
float)max_episode_seconds (
float)ctrl_dt (
float)render_spacing (
float)render_offset_mode (
str)post_step_forward_sensor (
bool)action_space (
int)observation_space (
int)prop_hist_len (
int)critic_info_dim (
int)clip_obs (
float)clip_actions (
float)num_hand_dofs (
int)frame_obs_dim (
int)obs_lag_steps (
int)obs_history_len (
int)base_name (
str)object_body_name (
str)object_geom_name (
str)control_config (
SharpaControlConfig)sensor (
SharpaSensorConfig)obs (
SharpaObservationConfig)priv_info (
SharpaPrivilegedInfoConfig)domain_rand (
SharpaDomainRandConfig)reset_height_lower (
float)reset_height_upper (
float)reset_angle_diff (
float)grasp_cache_path (
str)use_default_object_pose_for_object_pos_anchor (
bool)debug_show_axes (
bool)
- max_episode_seconds: float = 20.0¶
- sim_dt: float = 0.004166666666666667¶
- ctrl_dt: float = 0.05¶
- action_space: int = 22¶
- observation_space: int = 192¶
- prop_hist_len: int = 30¶
- critic_info_dim: int = 8¶
- clip_obs: float = 5.0¶
- clip_actions: float = 1.0¶
- num_hand_dofs: int = 22¶
- frame_obs_dim: int = 64¶
- obs_lag_steps: int = 3¶
- obs_history_len: int = 80¶
- base_name: str = 'right_hand_C_MC'¶
- object_body_name: str = 'object'¶
- object_geom_name: str = 'object'¶
- actuated_joint_names: list[str]¶
- fingertip_body_names: list[str]¶
- control_config: SharpaControlConfig¶
- sensor: SharpaSensorConfig¶
- obs: SharpaObservationConfig¶
- priv_info: SharpaPrivilegedInfoConfig¶
- domain_rand: SharpaDomainRandConfig¶
- reset_height_lower: float = 0.59906¶
- reset_height_upper: float = 0.63906¶
- reset_angle_diff: float = 0.7853981633974483¶
- rot_axis: tuple[float, float, float] = (0.0, 0.0, 1.0)¶
- grasp_cache_path: str = '/home/admin1/ws/Eric/UniLab/src/unilab/assets/caches/sharpa_grasp_linspace'¶
- disable_tactile_ids: list[int]¶
- use_default_object_pose_for_object_pos_anchor: bool = False¶
- debug_show_axes: bool = False¶
- __init__(scene=<factory>, sim_dt=0.004166666666666667, max_episode_seconds=20.0, ctrl_dt=0.05, render_spacing=1.0, render_offset_mode='grid', motrix_max_iterations=None, post_step_forward_sensor=False, action_space=22, observation_space=192, prop_hist_len=30, critic_info_dim=8, clip_obs=5.0, clip_actions=1.0, num_hand_dofs=22, frame_obs_dim=64, obs_lag_steps=3, obs_history_len=80, base_name='right_hand_C_MC', object_body_name='object', object_geom_name='object', actuated_joint_names=<factory>, fingertip_body_names=<factory>, control_config=<factory>, sensor=<factory>, obs=<factory>, priv_info=<factory>, domain_rand=<factory>, reset_height_lower=0.59906, reset_height_upper=0.63906, reset_angle_diff=0.7853981633974483, rot_axis=(0.0, 0.0, 1.0), grasp_cache_path='/home/admin1/ws/Eric/UniLab/src/unilab/assets/caches/sharpa_grasp_linspace', disable_tactile_ids=<factory>, use_default_object_pose_for_object_pos_anchor=False, debug_show_axes=False)¶
- Parameters:
scene (
SceneCfg)sim_dt (
float)max_episode_seconds (
float)ctrl_dt (
float)render_spacing (
float)render_offset_mode (
str)post_step_forward_sensor (
bool)action_space (
int)observation_space (
int)prop_hist_len (
int)critic_info_dim (
int)clip_obs (
float)clip_actions (
float)num_hand_dofs (
int)frame_obs_dim (
int)obs_lag_steps (
int)obs_history_len (
int)base_name (
str)object_body_name (
str)object_geom_name (
str)control_config (
SharpaControlConfig)sensor (
SharpaSensorConfig)obs (
SharpaObservationConfig)priv_info (
SharpaPrivilegedInfoConfig)domain_rand (
SharpaDomainRandConfig)reset_height_lower (
float)reset_height_upper (
float)reset_angle_diff (
float)grasp_cache_path (
str)use_default_object_pose_for_object_pos_anchor (
bool)debug_show_axes (
bool)
- unilab.envs.manipulation.sharpa_inhand.base.format_scale_tag(scale_value)[source]¶
Convert one object scale into a stable cache filename tag.
- unilab.envs.manipulation.sharpa_inhand.base.resolve_grasp_cache_file(grasp_cache_path, scale_value)[source]¶
Resolve the grasp cache path for a single object scale.
- unilab.envs.manipulation.sharpa_inhand.base.sample_scale_grasp_caches(grasp_caches, scale_ids)[source]¶
Sample one cached grasp per reset environment from per-scale cache files.
- class unilab.envs.manipulation.sharpa_inhand.base.SharpaInhandBaseEnv[source]¶
Bases:
NpEnv- Parameters:
cfg (
SharpaInhandBaseCfg)backend (
SimBackend)num_envs (
int)
- __init__(cfg, backend, num_envs=1)[source]¶
- Parameters:
cfg (
SharpaInhandBaseCfg)backend (
SimBackend)num_envs (
int)
- apply_action(actions, state)[source]¶
子类实现:action → ctrl
- Parameters:
actions (
ndarray)state (
NpEnvState)
- Return type: