Task-specific object grasps using primitive shapes and symbolic reasoning