Пример #1
0
	 ImuBuffer::ImuBuffer(std::string name)
		 : TaskContext(name)
	 {

		// Add properties

		properties()->addProperty( "prop",_prop ).doc("The description of the property");

		// Add ports

		addEventPort( "imuData",_imuData, boost::bind(&ImuBuffer::addMeasurement,this) ).doc("The IMU data: omegax, omegay, omegaz, ax, ay, az");
		addPort( "imuMeanCov",_imuMeanCov ).doc("The mean and covariance of last and second to last imu data: mean_last, 1/cov_last, mean_prev, 1/cov_prev");
		addPort("imuCameraRatio" , _imuCameraRatio).doc("The ratio of imu freq. on camera freq.");
		imuMeanCov.resize(24,0.0);
		imuMean_last.resize(6,0.0);
		imuMean_prev.resize(6,0.0);
		imucov_last.resize(6,0.0);
		imucov_prev.resize(6,0.0);
		halfBufferIndex = 0;
		fullBufferIndex = 0;

		sigma_omega = 1.0;
		sigma_acc = 0.1;
		addProperty("sigma_omega",sigma_omega).doc("The standard deviation of the angular velocity measurements. Default = 1.0");
		addProperty("sigma_acc",sigma_acc).doc("The standard deviation of the acceleration measurements. Default = 0.1");

		_imuMeanCov.setDataSample( imuMeanCov );
		_imuMeanCov.write( imuMeanCov );
	}
Пример #2
0
	MeasurementsRecorder::MeasurementsRecorder(std::string name) : TaskContext(name) {
       
	addPort("portMeasurementsMarkers",portMeasurementsMarkers);
	addPort("portMeasurementsIMU",portMeasurementsIMU);
	addEventPort("portMeasurementsEncoder",portMeasurementsEncoder);
	addPort("portMeasurementsCtrl",portMeasurementsCtrl);
	addPort("portMeasurementsCtrlRates",portMeasurementsCtrlRates);
	addPort("portMeasurementsPose",portMeasurementsPose);
	addPort("portStateEstimate",portStateEstimate);


	}
Пример #3
0
     planeSimulatorRframe::planeSimulatorRframe(std::string name)
         : TaskContext(name)
     {
        // Add properties

        properties()->addProperty( "prop",_prop )
			.doc("The description of the property");

	// Add ports
	addEventPort( "trigger",_trigger);

        addPort( "controlInputPort",_controlInputPort )
			.doc("Input to the system: dur1,dur2,dup");
        addPort( "stateOutputPort",_stateOutputPort )
			.doc("State output: x,y,z,dx,dy,dz,e11,e12,e13,e21,e22,e23,e31,e32,e33,w1,w2,w3,delta,ddelta,ua,ue");
	addPort( "triggerTimeStampOut",_triggerTimeStampOut )
			.doc("triggerTimeStampOut");
	addPort( "imuData",_IMUOutputPort )
			.doc("IMU output: wx,wy,wz,ax,ay,az");
	addPort( "deltaOmega",_deltaOmega )
			.doc("encoder output: delta, ddelta");
	deltaOmega.resize(2);
	addPort( "controlOutputPort",_controlOutputPort )
			.doc("controlOutputPort: ur1, ur2, up");
	controlOutputPort.resize(3);

	addProperty( "integrationStep",h ).doc("The time step to integrate");
	h = 1.0/500.0;

	// Add operations

	provides()->addOperation("initialiseState",&planeSimulatorRframe::initialiseState,this)
		.doc("Description of the method");

	X.resize(NSTATES);
	X1.resize(NSTATES);
	IMU.resize(NIMU);
	U.resize(NCONTROLS);
	rk4Wrapper_input[0] = rk4Wrapper_input_X;
	rk4Wrapper_input[1] = rk4Wrapper_input_U;
	rk4Wrapper_input[2] = rk4Wrapper_input_h;

	rk4Wrapper_output[0] = rk4Wrapper_output_X1;
	rk4Wrapper_output[1] = rk4Wrapper_output_IMU;
    }
Пример #4
0
 TestEventService(TaskContext* owner = 0) : Service("portservice", owner)
 {
     addEventPort("ip",ip).doc("ip");
     addEventPort("ip",ip2).doc("ip"); // overrides ip
     addPort("op",op).doc("op");
 }