
Mid level control code
Dependencies: ros_lib_kinetic
Diff: main.cpp
- Revision:
- 14:54c3759e76ed
- Parent:
- 13:a373dfc57b89
- Child:
- 15:59471daef4cb
--- a/main.cpp Wed Aug 29 10:47:02 2018 +0000 +++ b/main.cpp Wed Aug 29 16:31:42 2018 +0000 @@ -86,13 +86,17 @@ dblTargetChambLen_mm[3] = input.psi[2][0]*1000; dblTargetChambLen_mm[4] = input.psi[2][1]*1000; dblTargetChambLen_mm[5] = input.psi[2][2]*1000;*/ + + //update rear Segment dblTargetChambLen_mm[3] = input.psi[0][0]*1000; - dblTargetChambLen_mm[4] = input.psi[0][1]*1000; - dblTargetChambLen_mm[5] = input.psi[0][2]*1000; - // Update mid segment - dblTargetChambLen_mm[6] = input.psi[1][0]*1000; - dblTargetChambLen_mm[7] = dblTargetChambLen_mm[6]; // Same because two pumps are used - // Update rear segment + dblTargetChambLen_mm[5] = 0.0;//input.psi[0][1]*1000;//not used + dblTargetChambLen_mm[6] = 0.0;//input.psi[0][2]*1000;//not used + + //update mid segment + dblTargetChambLen_mm[4] = input.psi[1][0]*1000; + dblTargetChambLen_mm[7] = dblTargetChambLen_mm[4]; // Same because two pumps are used + + // Update front segment dblTargetChambLen_mm[0] = input.psi[2][0]*1000; dblTargetChambLen_mm[1] = input.psi[2][1]*1000; dblTargetChambLen_mm[2] = input.psi[2][2]*1000; @@ -114,7 +118,7 @@ // Convert from requested chamber to actuator space and limit actuator positions for (ii = 0; ii< N_CHANNELS; ii++) { // If sent a negative requested position, do NOT replan that actuator - //if( dblTargetChambLen_mm[ii] < 0.0 ) continue; + if( dblTargetChambLen_mm[ii] < 0.0 ) continue; //check to see if positions are achievable dblTargetActPos_mm[ii] = dblTargetChambLen_mm[ii]*FLT_ACTUATOR_CONVERSION[ii]; dblTargetActPos_mm[ii] = min( max( 0.0 , dblTargetActPos_mm[ii] ) , 25.0 ); @@ -125,7 +129,7 @@ short sgn; for (ii = 0; ii< N_CHANNELS; ii++) { // Work out new velocities // If sent a negative requested position, do NOT replan that actuator - //if( dblTargetChambLen_mm[ii] < 0.0 ) continue; + if( dblTargetChambLen_mm[ii] < 0.0 ) continue; /*dblActPosChange = 1.0; // or = 0.0; _dblVelocity_mmps[ii] = 0.0;*/ // DOESN'T CRASH @@ -180,7 +184,7 @@ //if( dblMaxRecalculatedTime >= 0.000000001 ) { // isTimeChanged && for (ii = 0; ii< N_CHANNELS; ii++) { // Work out new velocities // If sent a negative requested position, do NOT replan that actuator - //if( dblTargetChambLen_mm[ii] < 0.0 ) continue; + if( dblTargetChambLen_mm[ii] < 0.0 ) continue; _dblVelocity_mmps[ii] = (dblTargetActPos_mm[ii] - dblADCCurrentPosition[ii]) / dblMaxRecalculatedTime; dblVelocity_mmps[ii] = _dblVelocity_mmps[ii];