We use it on hard floors and carpet. It is Good when it works right, but Very Often gets lost going to and/or from a room. It works better if directed to one room, rather than multiple rooms in a sequence. If we have it clean more than one room at a time in the same "instruction"/"command", it almost always messes up somewhere along the way. It repeats areas in a seemingly random manner, and sometimes skips areas of a room. Sometimes, it just goes in circles like it's lost. Yes, we have done the "reset" stuff; it mostly doesn't seem to help. We also have the mop, which, thankfully seems more intelligent.