We explore the control of a nonholonomic robot subject to additional constraints on the state variables. In our problem, the user specifies the path of a subset of the state variables (the task freedoms XP), i.e. a curve XP(s) where s∈[0,1] is a parameterization that the user chooses. We control the trajectory of the task freedoms by specifying a bilateral time-scaling s(t) which assigns a point on the path for each time t. The time-scaling is termed bilateral because there is no restriction on s(t), the task freedoms are allowed to move backwards along the path. We design a controller that satisfies the user directive and controls the remaining state variables (the shape freedoms XR) to satisfy the constraints. Furthermore, we attempt to reduce the number of control switchings, as these result in relatively large errors in our system state. If a constraint is close to being violated (at a switchings point), we back up XP along the path for a small time interval and move XS to an open region. We show that there are a finite number of switching points for arbitrary task freedom paths. We implement our control scheme on the Mobipulator and discuss a generalization to arbitrary systems satisfying similar properties.