DroneSurveillance.DroneSurveillancePOMDP
— TypeDroneSurveillancePOMDP{M} <: POMDP{DSState, Int64, Int64}
Fields
size::Tuple{Int64, Int64} = (5,5)
size of the grid worldregion_A::DSPos = [1, 1]
first region to survey, initial state of the quadregion_B::DSPos = [size[1], size[2]]
second region to surveyfov::Tuple{Int64, Int64} = (3, 3)
size of the field of view of the droneagent_policy::Symbol = :restricted
policy of the other agentcamera::M = QuadCam()
observation model, choose between perfect camera and quad cameraterminal_state::DSState = DSState([-1, -1], [-1, -1])
a sentinel state to encode terminal statesdiscount_factor::Float64 = 0.95
the discount factor
DroneSurveillance.PerfectCam
— TypePerfectCam
When used as a camera model, the UAV can detect the ground agent with probability 1 when it is in its field of view.
DroneSurveillance.QuadCam
— TypeQuadCam
When used as a camera model, the field of view of the UAV is divided in four region. If the target is in a corner it is detected perfectly, if it is in the middle of two regions it is assigned with equal probability to the neighboring regions. If the agent is below the UAV it is detected with probability 1.
DroneSurveillance.agent_inbounds
— Methodagent_inbounds(pomdp::DroneSurveillancePOMDP, s::DSPos)
returns true if s in an authorized position for the ground agent s must be on the grid and outside of the surveyed regions