POMDPPlanners.environments.push_pomdp.push_pomdp_utils package
Submodules
POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models module
Reward models for the Push POMDP family.
Mirrors the abstract-base / concrete-subclass layout used by
POMDPPlanners.environments.light_dark_pomdp.light_dark_pomdp_utils.light_dark_reward_models
and
POMDPPlanners.environments.laser_tag_pomdp.laser_tag_pomdp_utils.laser_tag_reward_models,
so further Push reward variants can be added without growing the env
class.
The reward model owns the parameters and pre-built buffers the reward
computation needs (obstacle geometry, dangerous areas, penalty
probabilities). The environment retains its own copies for transition /
observation paths and delegates reward() / reward_batch() to the
model.
- Reward-model variants (selected via
RewardModelType): CONSTANT_HAZARD_PENALTY— dangerous-area penalty fires deterministically (or withdangerous_area_hit_probabilityBernoulli) whenever the realised post-action robot position lies inside any zone.ZERO_MEAN_HAZARD_SHOCK— dangerous-area penalty becomes±dangerous_area_penaltywith 50/50 split when in zone; obstacle penalty is unchanged. Expected dangerous-area contribution is zero, variance isdangerous_area_penalty**2. Useful for benchmarking risk-sensitive planners against expected-value MCTS on the same mean.DISTANCE_DECAYED_HAZARD_PENALTY— dangerous-area penalty fires with probabilityexp(-min_dist / penalty_decay)based on the Euclidean distance to the nearest dangerous-area centre, with no radius cutoff. Obstacle penalty is unchanged.
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.BasePushRewardModel[source]
Bases:
ABCAbstract reward model for Push POMDP variants.
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.ContinuousPushDistanceDecayedHazardPenaltyRewardModel(obstacles, robot_radius, obstacle_penalty, obstacle_hit_probability, dangerous_areas_arr, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability, penalty_decay)[source]
Bases:
ContinuousPushRewardModelDistance-decaying dangerous-area contribution for
ContinuousPushPOMDP.Penalty fires with probability
exp(-min_dist / penalty_decay)based on the Euclidean distance from the realised robot position to the nearest dangerous-area centre. No radius cutoff — every position feels a (vanishingly small at large distance) penalty risk. Obstacle penalty is unchanged.
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.ContinuousPushRewardModel(obstacles, robot_radius, obstacle_penalty, obstacle_hit_probability, dangerous_areas_arr, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability)[source]
Bases:
BasePushRewardModelStandard reward model for
ContinuousPushPOMDP.Reward structure mirrors
DiscretePushRewardModel(distance penalty, goal bonus, obstacle penalty, dangerous-area penalty) but obstacles are axis-aligned bounding boxes ((cx, cy, half_x, half_y)rows) tested against a circular robot footprint of radiusrobot_radius. Dangerous areas remain circular point-vs-circle checks. Subclasses override_dangerous_area_penalty_batch()to substitute high-variance or distance-decaying contracts without touching the goal / obstacle terms.- Parameters:
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.ContinuousPushZeroMeanHazardShockRewardModel(obstacles, robot_radius, obstacle_penalty, obstacle_hit_probability, dangerous_areas_arr, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability)[source]
Bases:
ContinuousPushRewardModelHigh-variance dangerous-area contribution for
ContinuousPushPOMDP.
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.DiscretePushDistanceDecayedHazardPenaltyRewardModel(obstacles, obstacle_radius, obstacle_penalty, obstacle_hit_probability, dangerous_areas, dangerous_areas_arr, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability, penalty_decay)[source]
Bases:
DiscretePushRewardModelDistance-decaying dangerous-area contribution for
PushPOMDP.Penalty fires with probability
exp(-min_dist / penalty_decay)based on the Euclidean distance from the realised robot position to the nearest dangerous-area centre. No radius cutoff — every position feels a (vanishingly small at large distance) penalty risk. Obstacle penalty is unchanged. MirrorsContinuousLightDarkDistanceDecayedHazardPenaltyRewardModelandLaserTagDistanceDecayedHazardPenaltyRewardModel.
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.DiscretePushRewardModel(obstacles, obstacle_radius, obstacle_penalty, obstacle_hit_probability, dangerous_areas, dangerous_areas_arr, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability)[source]
Bases:
BasePushRewardModelStandard reward model for
PushPOMDP(discrete actions).- Reward structure:
Base term:
-distance(object, target)where positions are read from the realisednext_state.Goal bonus:
+100.0when the object lies within0.5of the target.Obstacle penalty:
obstacle_penaltyis added when the realised post-action robot position (next_state[:2]) lies withinobstacle_radiusof any circular obstacle. Whenobstacle_hit_probability < 1.0the penalty fires with that probability per call (one Bernoulli draw per state).Dangerous-area penalty: see
_dangerous_area_contribution_scalar()/_dangerous_area_penalty_batch(). The standard contract isdangerous_area_penaltywith optional Bernoullidangerous_area_hit_probability. Subclasses override the two helpers to substitute high-variance or distance-decaying contracts without touching the goal / obstacle terms.
- Parameters:
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.DiscretePushZeroMeanHazardShockRewardModel(obstacles, obstacle_radius, obstacle_penalty, obstacle_hit_probability, dangerous_areas, dangerous_areas_arr, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability)[source]
Bases:
DiscretePushRewardModelHigh-variance dangerous-area contribution for
PushPOMDP.Dangerous-area hits emit
+dangerous_area_penaltyor-dangerous_area_penaltywith equal probability — expected contribution is zero, variance isdangerous_area_penalty**2. Obstacle penalty is unchanged. MirrorsContinuousLDZeroMeanHazardShockRewardModelandLaserTagZeroMeanHazardShockRewardModel.- Parameters:
- class POMDPPlanners.environments.push_pomdp.push_pomdp_utils.push_reward_models.RewardModelType(*values)[source]
Bases:
EnumReward model variants supported by the Push POMDP family.
- CONSTANT_HAZARD_PENALTY = 'constant_hazard_penalty'
- DISTANCE_DECAYED_HAZARD_PENALTY = 'distance_decayed_hazard_penalty'
- ZERO_MEAN_HAZARD_SHOCK = 'zero_mean_hazard_shock'