	int angle;

	/* Compute minimal readings for each scanning angle */

	for (angle=-88; angle<-40; angle+=4) {														/* Zones 1 and 3: {-88, -40} / {+40, +88} */
		critical_dist[(88 + angle)/4] = (int)(abs(SENSOR_Y_POSITION * 1.0 / sin(d2r(angle))) + SAFETY_DIST);	/* For positive angles */
		critical_dist[(88 - angle)/4] = (int)(abs(SENSOR_Y_POSITION * 1.0 / sin(d2r(angle))) + SAFETY_DIST);	/* For negative angles */
	}

	for (angle=-40; angle<=40; angle+=4) {														/* Zone 2: {-40, +40} */
		critical_dist[(88 - angle)/4] = (int)(abs(ROBOT_LENGTH - SENSOR_X_POSITION) / cos(d2r(angle))) + SAFETY_DIST;	/* For positive and negative angles */
	}

	param[0] = P0;
	param[1] = P1;
	param[2] = P2;
	param[3] = P3;
	param[4] = P4;
	param[5] = P5;
	param[6] = P6;
	param[7] = P7;
	param[8] = P8;

	doors_var.tof = OFF;
	doors_var.status = OK;

	*p_ptr = doors;
	values[0] = DOORS_PERIOD;
	values[1] = DOORS_PRIORITY;
	values[2] = DOORS_OFFSET;
	strcpy(names, "DOORS");

	DEBUG(8, 256) { printf("\nDoors process started."); }
	return OK;
}
