pomdp_py.problems.multi_object_search.models.components package

Submodules

pomdp_py.problems.multi_object_search.models.components.grid_map module

Optional grid map to assist collision avoidance during planning.

class pomdp_py.problems.multi_object_search.models.components.grid_map.GridMap(width, length, obstacles)[source]

Bases: object

This map assists the agent to avoid planning invalid actions that will run into obstacles. Used if we assume the agent has a map. This map does not contain information about the object locations.

valid_motions(robot_id, robot_pose, all_motion_actions)[source]

Returns a set of MotionAction(s) that are valid to be executed from robot pose (i.e. they will not bump into obstacles). The validity is determined under the assumption that the robot dynamics is deterministic.

pomdp_py.problems.multi_object_search.models.components.sensor module

Sensor model (for example, laser scanner)

pomdp_py.problems.multi_object_search.models.components.sensor.euclidean_dist(p1, p2)[source]
pomdp_py.problems.multi_object_search.models.components.sensor.to_rad(deg)[source]
pomdp_py.problems.multi_object_search.models.components.sensor.in_range(val, rang)[source]
class pomdp_py.problems.multi_object_search.models.components.sensor.Sensor[source]

Bases: object

LASER = 'laser'
PROXIMITY = 'proximity'
observe(robot_pose, env_state)[source]

Returns an Observation with this sensor model.

within_range(robot_pose, point)[source]

Returns true if the point is within range of the sensor; but the point might not actually be visible due to occlusion or “gap” between beams

property sensing_region_size
property robot_id
class pomdp_py.problems.multi_object_search.models.components.sensor.Laser2DSensor(robot_id, fov=90, min_range=1, max_range=5, angle_increment=5, occlusion_enabled=False)[source]

Bases: object

Fan shaped 2D laser sensor

in_field_of_view(view_angles)[source]

Determines if the beame at angle th is in a field of view of size view_angles. For example, the view_angles=180, means the range scanner scans 180 degrees in front of the robot. By our angle convention, 180 degrees maps to [0,90] and [270, 360].

within_range(robot_pose, point)[source]

Returns true if the point is within range of the sensor; but the point might not actually be visible due to occlusion or “gap” between beams

shoot_beam(robot_pose, point)[source]

Shoots a beam from robot_pose at point. Returns the distance and bearing of the beame (i.e. the length and orientation of the beame)

valid_beam(dist, bearing)[source]

Returns true beam length (i.e. dist) is within range and its angle bearing is valid, that is, it is within the fov range and in accordance with the angle increment.

observe(robot_pose, env_state)[source]

Returns a MosObservation with this sensor model.

property sensing_region_size
class pomdp_py.problems.multi_object_search.models.components.sensor.ProximitySensor(robot_id, radius=5, occlusion_enabled=False)[source]

Bases: Laser2DSensor

This is a simple sensor; Observes a region centered at the robot.

Module contents