.. _cul-de-sac: The Cul-de-sac Problem ============================= The Cul-de-sac problem of maneuvering around a non-convex obstacle is one of the most difficult tasks for an autonomous mobile robot. It is a :ref:`goToGoal` behavior where the goal (green dot) is behind a non-convex obstacle. This is called :ref:`cul-de-sac` because the robot enters between the side walls of the obstacle and must later turn around and exit in order to reach the target. Thus to reach the goal, the robot must move away from the goal for a period of time, which requires the :ref:`WallFollow` behavior. This is actually a very difficult problem. Going around a non-convex obstacle to a goal requires multiple behaviors and to transition between them as needed. See :ref:`cul-de-sac_fsm` for the finite state machine diagram. .. figure:: nonConvex.png :align: center