    switch( go2coordstate )
    {
      case  50: // Set Up: Pirouette to 0 and then Forward 60 inch
	x_target =  0*NavUnitPerInch;
	y_target = 60*NavUnitPerInch*FLIP;
	heading_target = 0*NavUnitPerDegree;
	go2coordstatenew++;
	break;
      case  57: // Connect to next state group
	go2coordstatenew = 60;
	// No break.
      case 60: // Set Up: Pirouette to -90 and then Left 36
	x_target = -36*NavUnitPerInch*FLIP;
	y_target =  60*NavUnitPerInch;
	heading_target = -90*NavUnitPerDegree*FLIP;
	go2coordstatenew++;
	break;
      case 67: // Connect to next state group
	go2coordstatenew = 70;
	// No break.
      case 70: // Set Up: Pirouette to -180 and then Back 60 inch
	x_target = -36*NavUnitPerInch*FLIP;
	y_target =   0*NavUnitPerInch;
	heading_target = -180*NavUnitPerDegree*FLIP;
	go2coordstatenew++;
	break;
      case 77: // Connect to next state group
	go2coordstatenew = 80;
	// No break.
      case 80: // Set Up: Pirouette to 90 and then Right 60 inch to origin
	x_target =  0*NavUnitPerInch;
	y_target =  0*NavUnitPerInch;
	heading_target = 90*NavUnitPerDegree*FLIP;
	go2coordstatenew++;
	break;
      case 87: // Connect to next state group
	go2coordstatenew = 90;
	// No break.
      case 40: // Set Up: Pirouette to 0.
	heading_target = 0*NavUnitPerDegree;
	go2coordstatenew++;
	break;
      case 51: // Target pirouette
      case 61: // Target pirouette
      case 71: // Target pirouette
      case 81: // Target pirouette
      case 91: // Target pirouette
	go2coord_heading_set(go2coord,x_target,y_target,heading_target,heading);
	pindex = 0;
	go2coordstatenew++;
	break;
      case 52: // Perform pirouette
      case 62: // Perform pirouette
      case 72: // Perform pirouette
      case 82: // Perform pirouette
      case 92: // Perform pirouette
	go2return = go2coord_heading_go(go2coord,x,y,heading,35,15,-35,-15,0);
	if( GO2DONE == go2return )
	{
	  leftpower = rightpower = 0;
	  go2coordstatenew++;
	}
	break;
      case 53: // Stop
      case 63: // Stop
      case 73: // Stop
      case 83: // Stop
      case 93: // Stop
	go2coord_stop(go2coord,x,y,heading);
	go2coordstatenew++;
	break;
      case 54: // Target move
      case 64: // Target move
      case 74: // Target move
      case 84: // Target move
	go2coord_xy_set(go2coord,x_target,y_target,x,y,heading);
	pindex = 0;
	go2coordstatenew++;
	break;
      case 55: // Perform move
      case 65: // Perform move
      case 75: // Perform move
      case 85: // Perform move
	go2return = go2coord_xy_go(go2coord,x,y,heading,35,15);
	if( GO2ERROR == go2return )
	{
#if defined(__GNUC__)
	  printf("CVR5: go2coord_xy_go() returned GO2ERROR.\n");
#endif
#if defined(_FRC_BOARD)
	  PrintToScreen("CVR6: go2coord_xy_go() returned GO2ERROR.\r");
#endif
	  go2coordstatenew = 99;
	}
	if( GO2DONE == go2return )
	{
	  leftpower = rightpower = 0;
	  go2coordstatenew++;
	}
	break;
      case 56: // Stop
      case 66: // Stop
      case 76: // Stop
      case 86: // Stop
	leftpower = rightpower = 0;
	go2return = go2coord_stop(go2coord,x,y,heading);
	if( GO2DONE == go2return )
	{
	  go2coordstatenew++;
	}
	break;
      case 94:
      case 98: // GO2COORD_STOP:
	PrintToScreen("Normal stop. go2coordstate=%d. xy=(%ld,%ld), h=%d\r",
	  (int)go2coordstate,x,y,heading);
	leftpower = rightpower = 0;
	go2coordstatenew = 99; // Shut up
	break;
      case 99: // Shut up
	leftpower = rightpower = 0;
	break;
      default:
	PrintToScreen("We should never get here. go2coordstate=%d->%d\r",
			  go2coordstate, go2coordstatenew);
	leftpower = rightpower = 0;
	go2coordstatenew = 99; // Shut up
	break;
    }

