/////////////////////////////////////////////
// Antler configuration  block
ProcessConfig = ANTLER
{
	MSBetweenLaunches 	= 200
	ExecutablePath		= 
	
	//crucial processes
	Run = MOOSDB        @  NewConsole = false
	Run = pGenericSensor       @	NewConsole=true ~ LASER_FRONT
	Run = pGenericSensor       @	NewConsole=false ~ LASER_REAR
//	Run = pGenericSensor       @	NewConsole=false ~ LASER_BOTTOM
//	Run = pGenericSensor       @	NewConsole=true ~ SONAR_RIG
//	Run = pGenericSensor       @	NewConsole=false ~ IR_RIG
	Run = pMobileRobot_Pioneer @	NewConsole=false
//	Run = pMobileRobot_Simul    @   NewConsole =false
//	Run = pVision     @   NewConsole =false
	Run = iRobotGUI2010     @   NewConsole =false
	
	Run = pLookAtPoint   @ NewConsole=false
	Run = pLocalizationPF        @   NewConsole =true
	Run = pLocalizationFusion     @   NewConsole =true
	//Run = pJoystickControl     @   NewConsole =false
	
	Run = pNavigatorReactivePTG  @   NewConsole =true
	
	Run = pNeck       @       NewConsole=false
	//Run = pDomotics_IpPower       @       NewConsole=false
	
	
		
	// MOOS-Scope: Visualizer of MOOS-DB	
	//Run = uMS       @       NewConsole=false
}
ProcessConfig = pMobileRobot_Pioneer
{
	CommsTick = 15
	AppTick = 15
	driver			= CActivMediaRobotBase
	robotPort_WIN 		= COM9
	robotPort_LIN 		= /dev/ttyUSB0
	robotBaud		= 115200
	enableSonars        	= 1     ; 0:Disabled (default), 1: Enabled
}
ProcessConfig = pLocalizationFusion
{
	CommsTick = 30
	AppTick = 30
}
ProcessConfig = pMobileRobot_Simul
{
	CommsTick = 15
	AppTick = 15
	enable_laser		= true
	
	laser_fov_deg	= 320		// FOV of the laser, in degrees
	// Sensors to emulate on the robot
	// ---------------------------------------------------------
	show_3d 		= true		// Whether to show the 3D window or not
	
	// The map used to simulate laser scanners and/or sonars:
	// ---------------------------------------------------------
	// If "simplemap_file" is present, the other map entries are ignored.
	simplemap_file 	= 26_MAY_2009_sancho_lab_seminario_pasillo.simplemap
	//gridmap_image_file	= newmapa.png
	gridmap_image_res	= 0.1		// Resolution: Size of each pixel (meters)
	//gridmap_image_cx	= 100		// Pixel coordinates of the origin (0,0)
	//gridmap_image_cy	= 100		//  If not present, use the image center.
}
ProcessConfig = pLocalizationPF
{
	CommsTick = 2
	AppTick = 2
	// The map used as a reference for localization
	// ---------------------------------------------------------
	// If "simplemap_file" is present, the other map entries are ignored.
	//simplemap_file = granada_22MAR2010.simplemap
	simplemap_file = 26_MAY_2009_sancho_lab_seminario_pasillo.simplemap
	//gridmap_image_file	= example_map1.png
	//gridmap_image_res	= 0.05		// Resolution: Size of each pixel (meters)
	//gridmap_image_cx	= 100		// Pixel coordinates of the origin (0,0)
	//gridmap_image_cy	= 100		//  If not present, use the image center.
	// Initial uniform distribution:
	X_MIN		= -2
	X_MAX		= 2
	Y_MIN		= -2
	Y_MAX		= 2
	// Number of initial particles
	sampleSize=20000
	// The Particle Filter algorithm:
	//	0: pfStandardProposal	  ***
	//	1: pfAuxiliaryPFStandard
	//	2: pfOptimalProposal    
	//	3: pfAuxiliaryPFOptimal	  ***
	//
	PF_algorithm=0
	// The Particle Filter Resampling method:
	//	0: prMultinomial
	//	1: prResidual
	//	2: prStratified
	//	3: prSystematic
	resamplingMethod=0
	// Set to 1 to enable KLD adaptive sample size:
	adaptiveSampleSize=1
	// Only for algorithm=3 (pfAuxiliaryPFOptimal)
	pfAuxFilterOptimal_MaximumSearchSamples=250
	// Resampling threshold
	BETA=0.5
	// KLD-sampling
	KLD_binSize_PHI_deg=2.5
	KLD_binSize_XY=0.07
	KLD_delta=0.01
	KLD_epsilon=0.01
	KLD_maxSampleSize=40000
	KLD_minSampleSize=150
	// ====================================================
	//            MULTIMETRIC MAP CONFIGURATION
	// ====================================================
//	[MetricMap]
	// Creation of maps:
	occupancyGrid_count = 1 
	gasGrid_count       = 0
	landmarksMap_count  = 0
	pointsMap_count     = 0
	beaconMap_count     = 0
	// Selection of map for likelihood: (fuseAll=-1,occGrid=0, points=1,landmarks=2,gasGrid=3)
	likelihoodMapSelection=-1
	// ====================================================
	//   MULTIMETRIC MAP: OccGrid #00
	// ====================================================
	// Creation Options for OccupancyGridMap 00:
	//	[MetricMap_occupancyGrid_00_creationOpts]
	resolution=0.10
	// Insertion Options for OccupancyGridMap 00:
	//	[MetricMap_occupancyGrid_00_insertOpts]
	mapAltitude=0
	useMapAltitude=0
	maxDistanceInsertion=15
	maxOccupancyUpdateCertainty=0.55
	considerInvalidRangesAsFreeSpace=0
	minLaserScanNoiseStd=0.001
	// Likelihood Options for OccupancyGridMap 00:
	//	[MetricMap_occupancyGrid_00_likelihoodOpts]
	likelihoodMethod=4		// 0=MI, 1=Beam Model, 2=RSLC, 3=Cells Difs, 4=LF_Trun, 5=LF_II
	LF_decimation=20
	LF_stdHit=0.20
	LF_maxCorrsDistance=0.30
	LF_zHit=0.95
	LF_zRandom=0.05
	LF_maxRange=80
	LF_alternateAverageMethod=0
}
ProcessConfig = pJoystickControl
{
	CommsTick = 10
	AppTick = 10
	max_v	= 0.3	// Maximum linear speed (m/s)
	max_w	= 40	// Maximum angular speed (deg/s)
}
ProcessConfig = LASER_FRONT
{
	CommsTick = 100
	AppTick = 200
	driver			= CHokuyoURG
	process_rate		= 90		; Hz
	grab_decimation		= 3
	sensorLabel  		= LASER1
	pose_x			= 0.14	; Laser range scaner 3D position in the robot (meters)
	pose_y			= 0
	pose_z			= 0.29
	pose_yaw		= 0	; Angles in degrees
	pose_pitch		= 0
	pose_roll		= 0
	COM_port_WIN	= COM7
	COM_port_LIN	= ttyACM_FRONT
	// Optional: Exclusion zones to avoid the robot seeing itself:
	//exclusionZone1_x = -0.0.20 0.30 0.30 0.20
	//exclusionZone1_y = 0.20 0.30 0.30 0.20
	// Optional: Exclusion zones to avoid the robot seeing itself:
	exclusionAngles1_ini = 110  // Deg
	exclusionAngles1_end =-110  // Deg
}
ProcessConfig = LASER_REAR
{
	CommsTick = 100
	AppTick = 200
	driver			= CHokuyoURG
	process_rate		= 90		; Hz
	grab_decimation		= 3
	sensorLabel  		= LASER2
	pose_x			= -0.23	; Laser range scaner 3D position in the robot (meters)
	pose_y			= 0
	pose_z			= 0.29
	pose_yaw		= 180	; Angles in degrees
	pose_pitch		= 0
	pose_roll		= 0
	COM_port_WIN	= COM8
	COM_port_LIN	= ttyACM_REAR
	exclusionAngles1_ini = 90  // Deg
	exclusionAngles1_end =-90  // Deg
}
ProcessConfig = LASER_BOTTOM
{
	CommsTick = 100
	AppTick = 200
	driver			= CHokuyoURG
	process_rate		= 90		; Hz
	grab_decimation		= 4
	sensorLabel  		= LASER3
	pose_x			= 0.15	; Laser range scaner 3D position in the robot (meters)
	pose_y			= 0.17
	pose_z			= 0.02
	pose_yaw		= 0	; Angles in degrees
	pose_pitch		= 0
	pose_roll		= 180
	COM_port_WIN	= COM6
	COM_port_LIN	= ttyACM_BOTTOM
	exclusionAngles1_ini = 56  // Deg
	exclusionAngles1_end =-130  // Deg
	// Optional: Exclusion zones to avoid the robot seeing itself:
	//exclusionZone1_x = -0.0.20 0.30 0.30 0.20
	//exclusionZone1_y =  0.20 0.30 0.30 0.20
}
ProcessConfig = iRobotGUI2010
{
	CommsTick = 4
	AppTick = 4
	// The 3D model of the robot (empty: default model)
	robot_3DS_model_file = ./mapir_sancho_robot.3ds.gz
}
ProcessConfig = pNavigatorReactivePTG
{
		CommsTick = 10
	AppTick = 10
	// [xs...; ys...; zs...]
	virtual_obstacles_file = lab_virtual_obs.txt
	//[ROBOT_NAME]
	Name=SANCHO
	//[GLOBAL_CONFIG]
	// 0: VFF,  1: ND
	HOLONOMIC_METHOD=1
	debugWindows=1
	ALARM_SEEMS_NOT_APPROACHING_TARGET_TIMEOUT=100
	// ----------------------------------------------------
	//	Parameters for the "Nearness diagram" Holonomic method
	// ----------------------------------------------------
	//[ND_CONFIG]
	factorWeights=[1.0,0.5,2.0,0.4]
	// 1: Free space
	// 2: Dist. in sectors
	// 3: Closer to target (euclidean)
	// 4: Hysteresis
	WIDE_GAP_SIZE_PERCENT=0.50
	MAX_SECTOR_DIST_FOR_D2_PERCENT=0.25
	RISK_EVALUATION_SECTORS_PERCENT=0.25
	RISK_EVALUATION_DISTANCE=0.15		
	TARGET_SLOW_APPROACHING_DISTANCE=0.3
	TOO_CLOSE_OBSTACLE=0.02	
	// ----------------------------------------------------
	//	Parameters for the navigation on the ROBOT
	// ----------------------------------------------------
	//[THE_ROBOT]
	weights=[0.5, 0.05, 0.5, 2.0, 0.5, 0.1]
	// 1: Free space
	// 2: Dist. in sectors			
	// 3: Heading toward target
	// 4: Closer to target (euclidean)
	// 5: Hysteresis
	// 6: Security Distance
	DIST_TO_TARGET_FOR_SENDING_EVENT=1.25	
	// Minimum. distance to target for sending the end event. Set to 0 to send it just on navigation end
	MinObstaclesHeight=0.08
	// Minimum coordinate in the "z" axis for an obstacle to be taken into account.
	MaxObstaclesHeight=1.20 		
	//Maximum coordinate in the "z" axis for an obstacle to be taken into account.
	robotMax_V_mps=0.8			
	//Speed limits
	robotMax_W_degps=40
	ROBOTMODEL_DELAY=0			
	// The delay until motor reaction
	ROBOTMODEL_TAU=0			
	// The TAU time constant of a first order lowpass filter
	MAX_REFERENCE_DISTANCE=4.50
	WIDE_GAP_SIZE_PERCENT=0.40
	RISK_EVALUATION_DISTANCE=0.1
	RISK_EVALUATION_SECTORS_PERCENT=0.20
	MAX_SECTOR_DIST_FOR_D2_PERCENT=0.25
	RESOLUCION_REJILLA_X=0.03
	RESOLUCION_REJILLA_Y=0.03
	PTG_COUNT=3
	// 		C-PTGs:
	// ------------------------------------
	PTG0_Type=1
	PTG0_nAlfas=300
	PTG0_v_max_mps=0.8
	PTG0_w_max_gps=40	Run = pNeck       @       NewConsole=false
	PTG0_K=1.0
	PTG1_Type=1
	PTG1_nAlfas=300
	PTG1_v_max_mps=0.4
	PTG1_w_max_gps=40
	PTG1_K=-1.0
	//	     a-A type PTGs:
	// ------------------------------------
	PTG2_Type=2
	PTG2_nAlfas=300
	PTG2_v_max_mps=0.8
	PTG2_w_max_gps=40
	PTG2_cte_a0v_deg=30
	PTG2_cte_a0w_deg=40
	RobotModel_shape2D_xs=[-0.3, 0.22, 0.22, -0.3]
	RobotModel_shape2D_ys=[0.24, 0.24, -0.24, -0.24]
}
ProcessConfig = pNeck
{
	CommsTick = 10
	AppTick = 10
	filterDepth = 2
	truncateFactor = 0.5
}
ProcessConfig = SONAR_RIG
{
	CommsTick = 10
	AppTick = 10
	driver			= CBoardSonars
	process_rate		= 10		; Hz
	sensorLabel  		= SONAR1
	USB_serialNumber	= SONAR001
	gain			= 5		// Value between 0 and 16, for analog gains between 40 and 700.
	maxRange		= 7.0		// In meters, used for device internal timer.
	minTimeBetweenPings	= 0.15		// In seconds
	// The order in which sonars will be fired, indexed by their I2C addresses [0,15]
	// Up to 16 devices, but you can put any number of devices (from 1 to 16).
	firingOrder=0 11 2 4 3 5 1 10 6 8 7 9
	// The individual gains of the sonars, indexed by their I2C addresses [0x00, 0x16] Typical: 0x05
	//  Up to 16 devices, but you can put any number of devices (from 1 to 16).
	sonarGains=5 5 5 5 5 5 3 3 3 3 5 5
	// The poses of the sonars: x[m] y[m] z[m] yaw[deg] pitch[deg] roll[deg]
	//  Up to 16 devices, but you can put any number of devices (from 1 to 16).
	pose0  = 0.2 -0.16 0.76 -10 0 0
	pose1  = 0.2 0.16 0.76 10 0 0
	pose2  = 0.2 -0.16 0.56 -5 0 0
	pose3  = 0.2 0.16 0.56 5 0 0
	pose4  = -0.03 0.2 0.76 90 0 0
	pose5  = -0.03 -0.2 0.76 -90 0 0
	pose6  = 0.2 0.19 0.12 2 0 0
	pose7  = 0.2 -0.19 0.12 -2 0 0
	pose8  = -0.27 -0.13 0.11 180 0 0
	pose9  = -0.27 0.13 0.11 180 0 0
	pose10 = -0.27 -0.13 0.55 180 0 0
	pose11 = -0.27 0.13 0.55 180 0 0
}
ProcessConfig = IR_RIG
{
	CommsTick = 20
	AppTick = 20
	driver			= CBoardIR
	process_rate		= 10		; Hz
	sensorLabel  		= INFRARED1
	COM_port_WIN	= COM1
	COM_port_LIN	= ttyUSB1
	baudRate	= 4800
	// The poses of the IR sensors: x[m] y[m] z[m] yaw[deg] pitch[deg] roll[deg]
	//  Up to 6 devices, but you can put any number of devices (from 1 to 16).
	pose0  = -0.2 -0.1 0.05 180 0 0
	pose1  = -0.2 +0.1 0.05 180 0 0
	pose2  = 0.23 0.21 0.05 0 0 0
	pose3  = 0.33 0.05 0.05 0 0 0
	pose4  = 0.33 -0.05 0.05 0 0 0
	pose5  = 0.23 -0.21 0.05 0 0 0
}
ProcessConfig = pDomotics_IpPower
{
	CommsTick = 10
	AppTick = 10
	// IP address of the IP Power server
	IP		= 192.168.0.200
	user		= admin
	password	= 
}
ProcessConfig = pLookAtPoint
{
	CommsTick = 10
	AppTick = 10
	maxRotationSpeed  = 120
	maxAngleNeck      = 10
}
ProcessConfig = pVision
{
	CommsTick = 20
	AppTick = 40
	// If desired, some vision sub-modules can be set to be enabled at start-up 
	//  (default is all disabled at start-up).
	// One or more names, separated by spaces and/or commas, from this list:
	//   DISPLAY_IMAGE
	//   CAMSHIFT 
	active_modules		= 
  //DISPLAY_IMAGE      //DISPLAY_IMAGE //, CAMSHIFT
	// -----------------------------------------------------------------
	// MRPT's CCameraSensor-compatible configuration block to select
	//  which video source to open:
	// -----------------------------------------------------------------
	driver			= CCameraSensor
	sensorLabel		= CAMERA1
	grab_decimation		= 3
	//bumblebee_frame_width   = 640
	//bumblebee_frame_height  = 480
	// Type of camera driver:
	grabber_type		= opencv
//	grabber_type		= bumblebee
//	grabber_type		= ffmpeg
	cv_camera_index		= 0		// [opencv] Number of camera to open
//	ffmpeg_url		= /media/ALMACENAMIENTO/Videos/Bienvenidos.Al.Norte.avi  // [ffmpeg] The video file or IP camera to open
	// =============== Params for DISPLAY_IMAGE  ====================
	// =============== Params for CAMSHIFT  ====================
	
	// =============== Params for FACEDETECTOR  ====================
	
	cascadeName		= ./haarcascade_frontalface_alt.xml
	nestedCascadeName	= ./haarcascade_eye_tree_eyeglasses.xml
	useNestedCascade	= 0
	framesRepeatDetect	= 200
	scale			= 1
	thresholdSameFace	= 1
	scaleSearchFace		= 0.6
	numGeneralSearch	= 4
	displayMode		= 1
	traceMode		= 1
	thresholdExistFace	= 3
	minSizeDetector		= 3
	cameraIndex  		= 0
	cameraWidth		= 640
	cameraHeight		= 480
	saveVideo		= 0
	neckTrackMode		= true
	neckMovFreq		= 1
 
}