In this paper, we propose a new teaching system, ROPSII, by which the user can teach a robot a task with a task-level language. ROPSII has three features. First, the operator can make three-dimensional visual programming based on our object-oriented language. For the flexibility of the language, the operator can easily apply our system to various tasks. Second, the operator can describe the failure recovery sequence separately from the main task sequence and automatically generate a detailed command sequence with a part sending a signal from the robot to the peripheral equipment and vice versa. These procedures are easy; the operator can perform them as if giving directions to a person to do so. Third, the operator can automatically develop a collision avoidance trajectory. It's generated by the original algorithm which efficiently operates as an off-line teaching system. We will introduce our recent approaches for establishing the new teaching system and discuss the applicability of the system in this paper.