When automation was first introduced, its use was limited to well-structured and controlled environments in which each automated agent performed a very specific task [1]}. Nowadays, with the rapid advancements in automation and the decreasing cost of hardware, robots are being used to automate more tasks in unstructured and dynamic environments. However, as the tasks become more generic and the environments become more unstructured, full autonomy is challenged by the limited perception, cognition, and execution capabilities of robots [2]}. Furthermore, when robots operate in full autonomy, the noise in the real world increases the possibility of making mistakes [3]}, which could be due to certain decisions or situations that the robot is uncertain about, or due to limitations in the software/hardware abilities. In some cases, the robot is able to flag that there might be a problem (e.g., high uncertainty in object detection or inability to reach a manipulation goal); while in other cases, the robot may not even be aware that errors exist (e.g., LiDAR not detecting a transparent obstacle).
