visualizers.viser_app.tasks.cylinder_push#

Module Contents#

visualizers.viser_app.tasks.cylinder_push.XML_PATH#
class visualizers.viser_app.tasks.cylinder_push.CylinderPushConfig#

Bases: jacta.visualizers.viser_app.tasks.task.TaskConfig

Reward configuration for the cylinder push task. .. py:attribute:: default_command

type:

Optional[numpy.ndarray]

w_pusher_proximity: float = 0.5#
w_pusher_velocity: float = 0.0#
w_cart_position: float = 0.1#
pusher_goal_offset: float = 0.25#
cart_goal_position: numpy.ndarray#
cutoff_time: float = 0.15#
class visualizers.viser_app.tasks.cylinder_push.CylinderPush#

Bases: jacta.visualizers.viser_app.tasks.mujoco_task.MujocoTask[CylinderPushConfig]

Defines the cylinder push balancing task. .. py:method:: reward(states: numpy.ndarray, sensors: numpy.ndarray, controls: numpy.ndarray, config: CylinderPushConfig, additional_info: dict[str, Any]) -> numpy.ndarray

Implements the cylinder push reward from MJPC.

Maps a list of states, list of controls, to a batch of rewards (summed over time) for each rollout.

The cylinder push reward has four terms:

* `pusher_reward`, penalizing the distance between the pusher and the cart.
* `velocity_reward` penalizing squared linear velocity of the pusher.
* `goal_reward`, penalizing the distance from the cart to the goal.

Since we return rewards, each penalty term is returned as negative. The max reward is zero.

reset() None#

Resets the model to a default (random) state.

Return type:

None