Bought this at the recommendation of a friend.  It works great on hard floors, and is ok on rugs but not as good as on hard floors.  Can't speak for carpets since I don't currently have carpets in any room.