JuliaPOMDP / RockSample.jl

Implement the rock sample problem using POMDPs.jl
Other
6 stars 6 forks source link

RockSample.jl

CI codecov

Implement the RockSample [1] problem with the POMDPs.jl interface.

[1] T. Smith, R. Simmons, "Heuristic Search Value Iteration for POMDPs," in Association for Uncertainty in Artificial Intelligence (UAI), 2004

Rock Sample Illustration

Installation

using Pkg
Pkg.add("RockSample")

Problem description

Example

using POMDPs
using RockSample 
using SARSOP # load a  POMDP Solver
using POMDPGifs # to make gifs
using Cairo # for making/saving the gif

pomdp = RockSamplePOMDP(rocks_positions=[(2,3), (4,4), (4,2)], 
                        sensor_efficiency=20.0,
                        discount_factor=0.95, 
                        good_rock_reward = 20.0)

solver = SARSOPSolver(precision=1e-3)

policy = solve(solver, pomdp)

sim = GifSimulator(filename="test.gif", max_steps=30)
simulate(sim, pomdp, policy)

RockSamplePOMDP Parameters:

Internal types:

RSPos : represent a position in the grid as a static array of 2 integers. RSState: represent the state of the POMDP. The field pos::RSPos is the position of the robots and the field rocks::SVector{K, Bool} represents the status of the rocks (good or bad).