Partially Observable Task and Motion Planning with Uncertainty and Risk Awareness
<|reference_start|>Partially Observable Task and Motion Planning with Uncertainty and Risk Awareness: Integrated task and motion planning (TAMP) has proven to be a valuable approach to generalizable long-horizon robotic manipulation and navigation problems. However, the typical TAMP problem formulation assumes full observability and deterministic action effects. These assumptions limit the ability of the planner to gather information and make decisions that are risk-aware. We propose a strategy for TAMP with Uncertainty and Risk Awareness (TAMPURA) that is capable of efficiently solving long-horizon planning problems with initial-state and action outcome uncertainty, including problems that require information gathering and avoiding undesirable and irreversible outcomes. Our planner reasons under uncertainty at both the abstract task level and continuous controller level. Given a set of closed-loop goal-conditioned controllers operating in the primitive action space and a description of their preconditions and potential capabilities, we learn a high-level abstraction that can be solved efficiently and then refined to continuous actions for execution. We demonstrate our approach on several robotics problems where uncertainty is a crucial factor and show that reasoning under uncertainty in these problems outperforms previously proposed determinized planning, direct search, and reinforcement learning strategies. Lastly, we demonstrate our planner on two real-world robotics problems using recent advancements in probabilistic perception.<|reference_end|>
@article{curtis2024partially,
    title={Partially Observable Task and Motion Planning with Uncertainty and Risk
  Awareness},
    author={Aidan Curtis, George Matheos, Nishad Gothoskar, Vikash Mansinghka,
  Joshua Tenenbaum, Tom'as Lozano-P'erez, Leslie Pack Kaelbling},
    journal={arXiv preprint arXiv:2403.10454},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.10454},
    primaryClass={cs.RO cs.AI}
}