a

Dependencies:   MX64 ARMControl

Committer:
marcodesilva
Date:
Mon Oct 04 13:36:53 2021 +0000
Revision:
2:8d9a79e18fb9
Parent:
0:46ef60040f6a
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcodesilva 0:46ef60040f6a 1 #include "ARAP180_with_rover.h"
marcodesilva 0:46ef60040f6a 2 #include "ARM_parameters.h"
marcodesilva 0:46ef60040f6a 3 #include <iostream>
marcodesilva 0:46ef60040f6a 4
marcodesilva 0:46ef60040f6a 5 //*****************************************************************************
marcodesilva 0:46ef60040f6a 6
marcodesilva 0:46ef60040f6a 7 ARAP180_WITH_ROVER::ARAP180_WITH_ROVER(){
marcodesilva 0:46ef60040f6a 8 dxl_port = new UARTSerial_half(PE_8,PE_7,PE_10, 1000000);
marcodesilva 0:46ef60040f6a 9 //tool_com = new UARTSerial_mio(tool_tx, tool_rx);
marcodesilva 0:46ef60040f6a 10 //tool_com->set_baud(460800);
marcodesilva 0:46ef60040f6a 11
marcodesilva 0:46ef60040f6a 12 mx_MotorChain = new MX(ID, sizeof(ID)/sizeof(int), 1000000, dxl_port);
marcodesilva 0:46ef60040f6a 13
marcodesilva 0:46ef60040f6a 14 ID[0] = 1;
marcodesilva 0:46ef60040f6a 15 ID[1] = 2;
marcodesilva 0:46ef60040f6a 16 ID[2] = 3;
marcodesilva 0:46ef60040f6a 17 ID[3] = 4;
marcodesilva 0:46ef60040f6a 18 ID[4] = 5;
marcodesilva 0:46ef60040f6a 19 ID[5] = 6;
marcodesilva 0:46ef60040f6a 20
marcodesilva 0:46ef60040f6a 21 motorSign(0) = 1;
marcodesilva 0:46ef60040f6a 22 motorSign(1) = 1;
marcodesilva 0:46ef60040f6a 23 motorSign(2) = 1;
marcodesilva 0:46ef60040f6a 24 motorSign(3) = -1;
marcodesilva 0:46ef60040f6a 25 motorSign(4) = 1;
marcodesilva 0:46ef60040f6a 26 motorSign(5) = 1;
marcodesilva 0:46ef60040f6a 27 motorSign(6) = -1;
marcodesilva 0:46ef60040f6a 28 motorSign(7) = 1;
marcodesilva 0:46ef60040f6a 29
marcodesilva 0:46ef60040f6a 30 toolGearRatio = 12.4553;
marcodesilva 0:46ef60040f6a 31
marcodesilva 0:46ef60040f6a 32
marcodesilva 0:46ef60040f6a 33 offsets(0) = 0.0;
marcodesilva 0:46ef60040f6a 34 offsets(1) = 0.0;
marcodesilva 0:46ef60040f6a 35 offsets(2) = -22.5;
marcodesilva 0:46ef60040f6a 36 offsets(3) = 0.0;
marcodesilva 0:46ef60040f6a 37 offsets(4) = 0.0;
marcodesilva 0:46ef60040f6a 38 offsets(5) = 0.0;
marcodesilva 0:46ef60040f6a 39 offsets(6) = 0.0;
marcodesilva 0:46ef60040f6a 40 offsets(7) = -360.0/toolGearRatio;
marcodesilva 0:46ef60040f6a 41
marcodesilva 0:46ef60040f6a 42 extendedSelect[0] = 0;
marcodesilva 0:46ef60040f6a 43 extendedSelect[1] = 0;
marcodesilva 0:46ef60040f6a 44 extendedSelect[2] = 0;
marcodesilva 0:46ef60040f6a 45 extendedSelect[3] = 0;
marcodesilva 0:46ef60040f6a 46 extendedSelect[4] = 0;
marcodesilva 0:46ef60040f6a 47 extendedSelect[5] = 1;
marcodesilva 0:46ef60040f6a 48
marcodesilva 0:46ef60040f6a 49
marcodesilva 0:46ef60040f6a 50 a3 = 0.029;
marcodesilva 0:46ef60040f6a 51 a4 = 0.340;
marcodesilva 0:46ef60040f6a 52 a5 = 0.029;
marcodesilva 0:46ef60040f6a 53 a5i = 0.335;
marcodesilva 0:46ef60040f6a 54 a6 = 0.084;
marcodesilva 0:46ef60040f6a 55 d7 = -0.218;
marcodesilva 0:46ef60040f6a 56 // drone distances
marcodesilva 0:46ef60040f6a 57 x_0_r2 = 0.0;
marcodesilva 0:46ef60040f6a 58 y_0_r2 = -0.3;
marcodesilva 0:46ef60040f6a 59 z_0_r2 = 0.36;
marcodesilva 0:46ef60040f6a 60
marcodesilva 0:46ef60040f6a 61
marcodesilva 0:46ef60040f6a 62 }
marcodesilva 0:46ef60040f6a 63
marcodesilva 0:46ef60040f6a 64
marcodesilva 0:46ef60040f6a 65 void ARAP180_WITH_ROVER::setParameters(VectorXd armParameters){
marcodesilva 0:46ef60040f6a 66
marcodesilva 0:46ef60040f6a 67 a3 = armParameters(0);// 0.036
marcodesilva 0:46ef60040f6a 68 a4 = armParameters(1);// 0.36836
marcodesilva 0:46ef60040f6a 69 a5 = armParameters(2);// -0.029
marcodesilva 0:46ef60040f6a 70 a5i = armParameters(3);
marcodesilva 0:46ef60040f6a 71 a6 = armParameters(4);
marcodesilva 0:46ef60040f6a 72 d7 = armParameters(5);// 0.370
marcodesilva 0:46ef60040f6a 73 x_0_r2 = armParameters(6);
marcodesilva 0:46ef60040f6a 74 y_0_r2 = armParameters(7);
marcodesilva 0:46ef60040f6a 75 z_0_r2 = armParameters(8);// 0.53378
marcodesilva 0:46ef60040f6a 76
marcodesilva 0:46ef60040f6a 77 massr = armParameters(9);
marcodesilva 0:46ef60040f6a 78 mpxr = armParameters(10);
marcodesilva 0:46ef60040f6a 79 mpyr = armParameters(11);
marcodesilva 0:46ef60040f6a 80 mpzr = armParameters(12);
marcodesilva 0:46ef60040f6a 81 mass1 = armParameters(13);
marcodesilva 0:46ef60040f6a 82 mpx1 = armParameters(14);
marcodesilva 0:46ef60040f6a 83 mpy1 = armParameters(15);
marcodesilva 0:46ef60040f6a 84 mpz1 = armParameters(16);
marcodesilva 0:46ef60040f6a 85 mass2 = armParameters(17);
marcodesilva 0:46ef60040f6a 86 mpx2 = armParameters(18);
marcodesilva 0:46ef60040f6a 87 mpy2 = armParameters(19);
marcodesilva 0:46ef60040f6a 88 mpz2 = armParameters(20);
marcodesilva 0:46ef60040f6a 89 mass3 = armParameters(21);
marcodesilva 0:46ef60040f6a 90 mpx3 = armParameters(22);
marcodesilva 0:46ef60040f6a 91 mpy3 = armParameters(23);
marcodesilva 0:46ef60040f6a 92 mpz3 = armParameters(24);
marcodesilva 0:46ef60040f6a 93 mass4 = armParameters(25);
marcodesilva 0:46ef60040f6a 94 mpx4 = armParameters(26);
marcodesilva 0:46ef60040f6a 95 mpy4 = armParameters(27);
marcodesilva 0:46ef60040f6a 96 mpz4 = armParameters(28);
marcodesilva 0:46ef60040f6a 97 mass5 = armParameters(29);
marcodesilva 0:46ef60040f6a 98 mpx5 = armParameters(30);
marcodesilva 0:46ef60040f6a 99 mpy5 = armParameters(31);
marcodesilva 0:46ef60040f6a 100 mpz5 = armParameters(32);
marcodesilva 0:46ef60040f6a 101 mass6 = armParameters(33);
marcodesilva 0:46ef60040f6a 102 mpx6 = armParameters(34);
marcodesilva 0:46ef60040f6a 103 mpy6 = armParameters(35);
marcodesilva 0:46ef60040f6a 104 mpz6 = armParameters(36);
marcodesilva 0:46ef60040f6a 105
marcodesilva 0:46ef60040f6a 106 mass_battery = armParameters(37);
marcodesilva 0:46ef60040f6a 107 mpx_battery = armParameters(38);
marcodesilva 0:46ef60040f6a 108 mpz_battery = armParameters(39);
marcodesilva 0:46ef60040f6a 109
marcodesilva 0:46ef60040f6a 110 std::cout << "armParameters: " << armParameters << std::endl;
marcodesilva 0:46ef60040f6a 111 }
marcodesilva 0:46ef60040f6a 112
marcodesilva 0:46ef60040f6a 113
marcodesilva 0:46ef60040f6a 114
marcodesilva 0:46ef60040f6a 115 void ARAP180_WITH_ROVER::setOperatingMode(int modeArm, int modeTool){ //mode = 3 for position control
marcodesilva 0:46ef60040f6a 116
marcodesilva 0:46ef60040f6a 117 int operatingMode[6];
marcodesilva 0:46ef60040f6a 118
marcodesilva 0:46ef60040f6a 119 operatingMode[0] = modeArm;
marcodesilva 0:46ef60040f6a 120 operatingMode[1] = modeArm;
marcodesilva 0:46ef60040f6a 121 operatingMode[2] = modeArm;
marcodesilva 0:46ef60040f6a 122 operatingMode[3] = modeArm;
marcodesilva 0:46ef60040f6a 123 operatingMode[4] = modeArm;
marcodesilva 0:46ef60040f6a 124 operatingMode[5] = modeTool;
marcodesilva 0:46ef60040f6a 125
marcodesilva 0:46ef60040f6a 126 mx_MotorChain->SyncOperatingMode(operatingMode, -1);
marcodesilva 0:46ef60040f6a 127 }
marcodesilva 0:46ef60040f6a 128
marcodesilva 0:46ef60040f6a 129 void ARAP180_WITH_ROVER::enableMotors(int enable){
marcodesilva 0:46ef60040f6a 130 bool enableVal[6];
marcodesilva 0:46ef60040f6a 131 enableVal[0] = enable;
marcodesilva 0:46ef60040f6a 132 enableVal[1] = enable;
marcodesilva 0:46ef60040f6a 133 enableVal[2] = enable;
marcodesilva 0:46ef60040f6a 134 enableVal[3] = enable;
marcodesilva 0:46ef60040f6a 135 enableVal[4] = enable;
marcodesilva 0:46ef60040f6a 136 enableVal[5] = enable;
marcodesilva 0:46ef60040f6a 137
marcodesilva 0:46ef60040f6a 138 mx_MotorChain->SyncTorqueEnable(enableVal, -1);
marcodesilva 0:46ef60040f6a 139 }
marcodesilva 0:46ef60040f6a 140
marcodesilva 0:46ef60040f6a 141 void ARAP180_WITH_ROVER::setMaxVel(float maxVel){
marcodesilva 0:46ef60040f6a 142
marcodesilva 0:46ef60040f6a 143 maxVel = 695.5*maxVel;//conversione velocità
marcodesilva 0:46ef60040f6a 144 float Vel_profile[6] = {maxVel,maxVel,maxVel,maxVel,maxVel,maxVel};
marcodesilva 0:46ef60040f6a 145 mx_MotorChain->SyncProfileVel(Vel_profile);
marcodesilva 0:46ef60040f6a 146
marcodesilva 0:46ef60040f6a 147 }
marcodesilva 0:46ef60040f6a 148
marcodesilva 0:46ef60040f6a 149
marcodesilva 0:46ef60040f6a 150 void ARAP180_WITH_ROVER::setMaxAcc(float maxAcc){
marcodesilva 0:46ef60040f6a 151
marcodesilva 0:46ef60040f6a 152 maxAcc = 8.9*maxAcc; //8.9=60*200/(6.28*214) //742
marcodesilva 0:46ef60040f6a 153 float Acc_profile[6] = {maxAcc,maxAcc,maxAcc,maxAcc,maxAcc,maxAcc};
marcodesilva 0:46ef60040f6a 154 mx_MotorChain->SyncProfileAccel(Acc_profile);
marcodesilva 0:46ef60040f6a 155
marcodesilva 0:46ef60040f6a 156 }
marcodesilva 0:46ef60040f6a 157
marcodesilva 0:46ef60040f6a 158 void ARAP180_WITH_ROVER::setJointPos(Vector8f q){
marcodesilva 0:46ef60040f6a 159
marcodesilva 0:46ef60040f6a 160
marcodesilva 0:46ef60040f6a 161 float Goal_position[6];
marcodesilva 0:46ef60040f6a 162
marcodesilva 0:46ef60040f6a 163 //For pololu control
marcodesilva 0:46ef60040f6a 164
marcodesilva 0:46ef60040f6a 165 /*union Packet{
marcodesilva 0:46ef60040f6a 166 float f;
marcodesilva 0:46ef60040f6a 167 char c[8];
marcodesilva 0:46ef60040f6a 168 };
marcodesilva 0:46ef60040f6a 169 Packet p;*/
marcodesilva 0:46ef60040f6a 170
marcodesilva 0:46ef60040f6a 171 Goal_position[0] = utilities::rad2deg(q(2)) * motorSign(2) + offsets(2);
marcodesilva 0:46ef60040f6a 172 Goal_position[1] = utilities::rad2deg(q(3)) * motorSign(3) + offsets(3);
marcodesilva 0:46ef60040f6a 173 Goal_position[2] = utilities::rad2deg(q(4)) * motorSign(4) + offsets(4);
marcodesilva 0:46ef60040f6a 174 Goal_position[3] = utilities::rad2deg(q(5)) * motorSign(5) + offsets(5);
marcodesilva 0:46ef60040f6a 175 Goal_position[4] = utilities::rad2deg(q(6)) * motorSign(6) + offsets(6);
marcodesilva 0:46ef60040f6a 176
marcodesilva 0:46ef60040f6a 177 Goal_position[5] = toolGearRatio*(utilities::rad2deg(q(7)) * motorSign(7) + offsets(7));
marcodesilva 0:46ef60040f6a 178
marcodesilva 0:46ef60040f6a 179 mx_MotorChain->SyncSetGoalExtended(Goal_position, extendedSelect);
marcodesilva 0:46ef60040f6a 180
marcodesilva 0:46ef60040f6a 181 //For pololu control
marcodesilva 0:46ef60040f6a 182 /*mx_MotorChain->SyncSetGoal(Goal_position);
marcodesilva 0:46ef60040f6a 183
marcodesilva 0:46ef60040f6a 184 p.f = (q(7) * motorSign(7) + offsets(7));
marcodesilva 0:46ef60040f6a 185
marcodesilva 0:46ef60040f6a 186 tool_com->write(p.c,8);*/
marcodesilva 0:46ef60040f6a 187
marcodesilva 0:46ef60040f6a 188 }
marcodesilva 0:46ef60040f6a 189
marcodesilva 0:46ef60040f6a 190
marcodesilva 0:46ef60040f6a 191
marcodesilva 0:46ef60040f6a 192 Vector6f ARAP180_WITH_ROVER::getJointPos(bool checkData){
marcodesilva 0:46ef60040f6a 193
marcodesilva 0:46ef60040f6a 194 Vector6f getPosConverted = Vector6f::Zero();
marcodesilva 0:46ef60040f6a 195 float getPos[6];
marcodesilva 0:46ef60040f6a 196 bool dataCheck;
marcodesilva 0:46ef60040f6a 197
marcodesilva 0:46ef60040f6a 198 if(checkData){
marcodesilva 0:46ef60040f6a 199 while(!mx_MotorChain->SyncGetExtendedPosition(getPos, extendedSelect)){
marcodesilva 0:46ef60040f6a 200 ThisThread::sleep_for(0.1);
marcodesilva 0:46ef60040f6a 201 //printf("wait for arm position!\n");
marcodesilva 0:46ef60040f6a 202 }
marcodesilva 0:46ef60040f6a 203 }else{
marcodesilva 0:46ef60040f6a 204 mx_MotorChain->SyncGetExtendedPosition(getPos, extendedSelect);
marcodesilva 0:46ef60040f6a 205 }
marcodesilva 0:46ef60040f6a 206
marcodesilva 0:46ef60040f6a 207 getPosConverted(0) = utilities::deg2rad(getPos[0] - offsets(2)) * motorSign(2);
marcodesilva 0:46ef60040f6a 208 getPosConverted(1) = utilities::deg2rad(getPos[1] - offsets(3)) * motorSign(3);
marcodesilva 0:46ef60040f6a 209 getPosConverted(2) = utilities::deg2rad(getPos[2] - offsets(4)) * motorSign(4);
marcodesilva 0:46ef60040f6a 210 getPosConverted(3) = utilities::deg2rad(getPos[3] - offsets(5)) * motorSign(5);
marcodesilva 0:46ef60040f6a 211 getPosConverted(4) = utilities::deg2rad(getPos[4] - offsets(6)) * motorSign(6);
marcodesilva 0:46ef60040f6a 212 getPosConverted(5) = utilities::deg2rad(getPos[5]/toolGearRatio - offsets(7)) * motorSign(7);
marcodesilva 0:46ef60040f6a 213
marcodesilva 0:46ef60040f6a 214 return getPosConverted;
marcodesilva 0:46ef60040f6a 215
marcodesilva 0:46ef60040f6a 216 }
marcodesilva 0:46ef60040f6a 217
marcodesilva 0:46ef60040f6a 218
marcodesilva 0:46ef60040f6a 219 //Dyrect Kinematics Matrix Te
marcodesilva 0:46ef60040f6a 220 Matrix4f ARAP180_WITH_ROVER::forwardKinematics(Vector8f q){
marcodesilva 0:46ef60040f6a 221
marcodesilva 0:46ef60040f6a 222 Matrix4f A0 = Matrix4f::Zero();
marcodesilva 0:46ef60040f6a 223 volatile float q1 = q[0];
marcodesilva 0:46ef60040f6a 224 volatile float q2 = q[1];
marcodesilva 0:46ef60040f6a 225 volatile float q3 = q[2];
marcodesilva 0:46ef60040f6a 226 volatile float q4 = q[3];
marcodesilva 0:46ef60040f6a 227 volatile float q5 = q[4];
marcodesilva 0:46ef60040f6a 228 volatile float q6 = q[5];
marcodesilva 0:46ef60040f6a 229 volatile float q7 = q[6];
marcodesilva 0:46ef60040f6a 230 volatile float q8 = q[7];
marcodesilva 0:46ef60040f6a 231
marcodesilva 0:46ef60040f6a 232 float t2 = cos(q2);
marcodesilva 0:46ef60040f6a 233 float t3 = cos(q3);
marcodesilva 0:46ef60040f6a 234 float t4 = cos(q4);
marcodesilva 0:46ef60040f6a 235 float t5 = cos(q5);
marcodesilva 0:46ef60040f6a 236 float t6 = cos(q6);
marcodesilva 0:46ef60040f6a 237 float t7 = cos(q7);
marcodesilva 0:46ef60040f6a 238 float t8 = cos(q8);
marcodesilva 0:46ef60040f6a 239 float t9 = sin(q2);
marcodesilva 0:46ef60040f6a 240 float t10 = sin(q3);
marcodesilva 0:46ef60040f6a 241 float t11 = sin(q4);
marcodesilva 0:46ef60040f6a 242 float t12 = sin(q5);
marcodesilva 0:46ef60040f6a 243 float t13 = sin(q6);
marcodesilva 0:46ef60040f6a 244 float t14 = sin(q7);
marcodesilva 0:46ef60040f6a 245 float t15 = sin(q8);
marcodesilva 0:46ef60040f6a 246 float t16 = q4*-1.0;
marcodesilva 0:46ef60040f6a 247 float t17 = q4*1.0;
marcodesilva 0:46ef60040f6a 248 float t18 = q5*-1.0;
marcodesilva 0:46ef60040f6a 249 float t19 = q5*1.0;
marcodesilva 0:46ef60040f6a 250 float t20 = -q4;
marcodesilva 0:46ef60040f6a 251 float t21 = t2*t4;
marcodesilva 0:46ef60040f6a 252 float t22 = t2*t11;
marcodesilva 0:46ef60040f6a 253 float t23 = t4*t9;
marcodesilva 0:46ef60040f6a 254 float t24 = t7*t10;
marcodesilva 0:46ef60040f6a 255 float t25 = t9*t11;
marcodesilva 0:46ef60040f6a 256 float t26 = q4+t18;
marcodesilva 0:46ef60040f6a 257 float t27 = q5+q6+t16;
marcodesilva 0:46ef60040f6a 258 float t30 = q5+q6+t20;
marcodesilva 0:46ef60040f6a 259 float t34 = t2*t3*t7*-1.0;
marcodesilva 0:46ef60040f6a 260 float t35 = t2*t3*t7*1.0;
marcodesilva 0:46ef60040f6a 261 float t36 = t3*t7*t9*-1.0;
marcodesilva 0:46ef60040f6a 262 float t37 = t3*t7*t9*1.0;
marcodesilva 0:46ef60040f6a 263 float t28 = sin(t26);
marcodesilva 0:46ef60040f6a 264 float t29 = t10*t25;
marcodesilva 0:46ef60040f6a 265 float t31 = cos(t27);
marcodesilva 0:46ef60040f6a 266 float t32 = sin(t27);
marcodesilva 0:46ef60040f6a 267 float t33 = t10*t21;
marcodesilva 0:46ef60040f6a 268 float t38 = t10*t22*-1.0;
marcodesilva 0:46ef60040f6a 269 float t39 = t10*t22*1.0;
marcodesilva 0:46ef60040f6a 270 float t40 = t10*t23*-1.0;
marcodesilva 0:46ef60040f6a 271 float t41 = t10*t23*1.0;
marcodesilva 0:46ef60040f6a 272 float t42 = t3*t14*t31;
marcodesilva 0:46ef60040f6a 273 float t43 = t21+t29;
marcodesilva 0:46ef60040f6a 274 float t44 = t25+t33;
marcodesilva 0:46ef60040f6a 275 float t45 = t22+t40;
marcodesilva 0:46ef60040f6a 276 float t46 = t23+t38;
marcodesilva 0:46ef60040f6a 277 float t47 = t5*t43;
marcodesilva 0:46ef60040f6a 278 float t48 = t12*t43;
marcodesilva 0:46ef60040f6a 279 float t49 = t5*t44*1.0;
marcodesilva 0:46ef60040f6a 280 float t50 = t12*t45;
marcodesilva 0:46ef60040f6a 281 float t51 = t12*t44*1.0;
marcodesilva 0:46ef60040f6a 282 float t52 = t5*t45*-1.0;
marcodesilva 0:46ef60040f6a 283 float t53 = t5*t45*1.0;
marcodesilva 0:46ef60040f6a 284 float t54 = t5*t46*1.0;
marcodesilva 0:46ef60040f6a 285 float t55 = t12*t46*-1.0;
marcodesilva 0:46ef60040f6a 286 float t56 = t12*t46*1.0;
marcodesilva 0:46ef60040f6a 287 float t57 = t24+t42;
marcodesilva 0:46ef60040f6a 288 float t58 = t47+t50;
marcodesilva 0:46ef60040f6a 289 float t59 = t48+t52;
marcodesilva 0:46ef60040f6a 290 float t60 = t49+t55;
marcodesilva 0:46ef60040f6a 291 float t61 = t51+t54;
marcodesilva 0:46ef60040f6a 292 float t62 = t6*t58;
marcodesilva 0:46ef60040f6a 293 float t63 = t13*t58;
marcodesilva 0:46ef60040f6a 294 float t64 = t6*t59;
marcodesilva 0:46ef60040f6a 295 float t65 = t13*t59*-1.0;
marcodesilva 0:46ef60040f6a 296 float t66 = t13*t59*1.0;
marcodesilva 0:46ef60040f6a 297 float t67 = t13*t60*1.0;
marcodesilva 0:46ef60040f6a 298 float t68 = t13*t61*-1.0;
marcodesilva 0:46ef60040f6a 299 float t69 = t13*t61*1.0;
marcodesilva 0:46ef60040f6a 300 float t70 = t6*t60*1.0;
marcodesilva 0:46ef60040f6a 301 float t71 = t6*t61*1.0;
marcodesilva 0:46ef60040f6a 302 float t72 = t63+t64;
marcodesilva 0:46ef60040f6a 303 float t73 = t62+t65;
marcodesilva 0:46ef60040f6a 304 float t75 = t68+t70;
marcodesilva 0:46ef60040f6a 305 float t76 = t67+t71;
marcodesilva 0:46ef60040f6a 306 float t74 = t14*t72;
marcodesilva 0:46ef60040f6a 307 float t77 = t14*t75*1.0;
marcodesilva 0:46ef60040f6a 308 float t78 = t36+t74;
marcodesilva 0:46ef60040f6a 309 float t79 = t34+t77;
marcodesilva 0:46ef60040f6a 310 A0(0,0) = t8*t57+t3*t15*t32;
marcodesilva 0:46ef60040f6a 311 A0(0,1) = t15*t57*-1.0+t3*t8*t32;
marcodesilva 0:46ef60040f6a 312 A0(0,2) = t10*t14*-1.0+t3*t7*cos(t30);
marcodesilva 0:46ef60040f6a 313 A0(0,3) = q1+z_0_r2+a3*t3-d7*t3*sin(t30)*1.0+a4*t3*t11-a5i*t3*t28*1.0+a5*t3*t4*t5+a5*t3*t11*t12+a6*t3*t13*t28+a6*t3*t6*cos(t26);
marcodesilva 0:46ef60040f6a 314 A0(1,0) = t8*t79*-1.0-t15*t76*1.0;
marcodesilva 0:46ef60040f6a 315 A0(1,1) = t8*t76*-1.0+t15*t79;
marcodesilva 0:46ef60040f6a 316 A0(1,2) = t7*t75*-1.0-t2*t3*t14*1.0;
marcodesilva 0:46ef60040f6a 317 A0(1,3) = a4*t23+a4*t38+t2*x_0_r2-t9*y_0_r2*1.0-a5i*(t5*t46+t12*t44)*1.0+d7*(t6*t61+t13*t60)-a3*t2*t10*1.0-a5*t5*t44*1.0+a5*t12*t46-a6*t6*t60*1.0+a6*t13*t61;
marcodesilva 0:46ef60040f6a 318 A0(2,0) = t8*t78*-1.0+t15*t73;
marcodesilva 0:46ef60040f6a 319 A0(2,1) = t8*t73+t15*t78;
marcodesilva 0:46ef60040f6a 320 A0(2,2) = t7*t72*-1.0-t3*t9*t14*1.0;
marcodesilva 0:46ef60040f6a 321 A0(2,3) = a4*t21*-1.0-a4*t29*1.0-a5*t48*1.0-a6*t63*1.0-a6*t64*1.0+a5i*t58-d7*t73*1.0+t9*x_0_r2+t2*y_0_r2-a3*t9*t10*1.0+a5*t5*t45;
marcodesilva 0:46ef60040f6a 322 A0(3,3) = 1.0;
marcodesilva 0:46ef60040f6a 323
marcodesilva 0:46ef60040f6a 324
marcodesilva 0:46ef60040f6a 325 return A0;
marcodesilva 0:46ef60040f6a 326 }
marcodesilva 0:46ef60040f6a 327
marcodesilva 0:46ef60040f6a 328 //Jacobian matrix J
marcodesilva 0:46ef60040f6a 329 Matrix<float,6,8> ARAP180_WITH_ROVER::jacobianMatrix(Vector8f q){
marcodesilva 0:46ef60040f6a 330
marcodesilva 0:46ef60040f6a 331 Matrix<float,6,8> A0 = Matrix<float,6,8>::Zero();
marcodesilva 0:46ef60040f6a 332 volatile float q1 = q[0];
marcodesilva 0:46ef60040f6a 333 volatile float q2 = q[1];
marcodesilva 0:46ef60040f6a 334 volatile float q3 = q[2];
marcodesilva 0:46ef60040f6a 335 volatile float q4 = q[3];
marcodesilva 0:46ef60040f6a 336 volatile float q5 = q[4];
marcodesilva 0:46ef60040f6a 337 volatile float q6 = q[5];
marcodesilva 0:46ef60040f6a 338 volatile float q7 = q[6];
marcodesilva 0:46ef60040f6a 339 volatile float q8 = q[7];
marcodesilva 0:46ef60040f6a 340
marcodesilva 0:46ef60040f6a 341
marcodesilva 0:46ef60040f6a 342 float t2 = cos(q2);
marcodesilva 0:46ef60040f6a 343 float t3 = cos(q3);
marcodesilva 0:46ef60040f6a 344 float t4 = cos(q4);
marcodesilva 0:46ef60040f6a 345 float t5 = cos(q5);
marcodesilva 0:46ef60040f6a 346 float t6 = cos(q6);
marcodesilva 0:46ef60040f6a 347 float t7 = cos(q7);
marcodesilva 0:46ef60040f6a 348 float t8 = sin(q2);
marcodesilva 0:46ef60040f6a 349 float t9 = sin(q3);
marcodesilva 0:46ef60040f6a 350 float t10 = sin(q4);
marcodesilva 0:46ef60040f6a 351 float t11 = sin(q5);
marcodesilva 0:46ef60040f6a 352 float t12 = sin(q6);
marcodesilva 0:46ef60040f6a 353 float t13 = sin(q7);
marcodesilva 0:46ef60040f6a 354 float t14 = q5*-1.0;
marcodesilva 0:46ef60040f6a 355 float t15 = q5*1.0;
marcodesilva 0:46ef60040f6a 356 float t17 = -q4;
marcodesilva 0:46ef60040f6a 357 float t16 = a3*t3;
marcodesilva 0:46ef60040f6a 358 float t18 = t2*t3;
marcodesilva 0:46ef60040f6a 359 float t19 = t2*t4;
marcodesilva 0:46ef60040f6a 360 float t20 = t3*t8;
marcodesilva 0:46ef60040f6a 361 float t21 = t2*t10;
marcodesilva 0:46ef60040f6a 362 float t22 = t4*t8;
marcodesilva 0:46ef60040f6a 363 float t23 = t8*t10;
marcodesilva 0:46ef60040f6a 364 float t24 = q4+t14;
marcodesilva 0:46ef60040f6a 365 float t28 = a4*t3*t10;
marcodesilva 0:46ef60040f6a 366 float t30 = q5+q6+t17;
marcodesilva 0:46ef60040f6a 367 float t32 = a3*t2*t9*1.0;
marcodesilva 0:46ef60040f6a 368 float t33 = a3*t8*t9*1.0;
marcodesilva 0:46ef60040f6a 369 float t40 = a5*t3*t4*t5;
marcodesilva 0:46ef60040f6a 370 float t41 = a5*t3*t10*t11;
marcodesilva 0:46ef60040f6a 371 float t25 = cos(t24);
marcodesilva 0:46ef60040f6a 372 float t26 = sin(t24);
marcodesilva 0:46ef60040f6a 373 float t27 = a4*t22;
marcodesilva 0:46ef60040f6a 374 float t29 = t9*t23;
marcodesilva 0:46ef60040f6a 375 float t31 = a4*t19*1.0;
marcodesilva 0:46ef60040f6a 376 float t34 = t9*t19;
marcodesilva 0:46ef60040f6a 377 float t35 = t9*t21;
marcodesilva 0:46ef60040f6a 378 float t38 = t9*t22*-1.0;
marcodesilva 0:46ef60040f6a 379 float t39 = t9*t22*1.0;
marcodesilva 0:46ef60040f6a 380 float t42 = sin(t30);
marcodesilva 0:46ef60040f6a 381 float t36 = t35*-1.0;
marcodesilva 0:46ef60040f6a 382 float t37 = t35*1.0;
marcodesilva 0:46ef60040f6a 383 float t45 = a4*t29*1.0;
marcodesilva 0:46ef60040f6a 384 float t46 = -t35;
marcodesilva 0:46ef60040f6a 385 float t47 = a5i*t3*t26*-1.0;
marcodesilva 0:46ef60040f6a 386 float t48 = a5i*t3*t26*1.0;
marcodesilva 0:46ef60040f6a 387 float t49 = a6*t3*t6*t25;
marcodesilva 0:46ef60040f6a 388 float t50 = a6*t3*t12*t26;
marcodesilva 0:46ef60040f6a 389 float t51 = d7*t3*t42*-1.0;
marcodesilva 0:46ef60040f6a 390 float t52 = d7*t3*t42*1.0;
marcodesilva 0:46ef60040f6a 391 float t53 = t19+t29;
marcodesilva 0:46ef60040f6a 392 float t54 = t23+t34;
marcodesilva 0:46ef60040f6a 393 float t55 = t21+t38;
marcodesilva 0:46ef60040f6a 394 float t43 = a4*t36;
marcodesilva 0:46ef60040f6a 395 float t44 = a4*t37;
marcodesilva 0:46ef60040f6a 396 float t56 = t22+t36;
marcodesilva 0:46ef60040f6a 397 float t57 = t22+t46;
marcodesilva 0:46ef60040f6a 398 float t58 = t5*t53;
marcodesilva 0:46ef60040f6a 399 float t59 = t11*t53;
marcodesilva 0:46ef60040f6a 400 float t60 = t11*t54;
marcodesilva 0:46ef60040f6a 401 float t62 = t5*t54*1.0;
marcodesilva 0:46ef60040f6a 402 float t63 = t11*t55;
marcodesilva 0:46ef60040f6a 403 float t65 = t5*t55*-1.0;
marcodesilva 0:46ef60040f6a 404 float t66 = t5*t55*1.0;
marcodesilva 0:46ef60040f6a 405 float t70 = a5*t5*t55;
marcodesilva 0:46ef60040f6a 406 float t71 = a5*t5*t54*-1.0;
marcodesilva 0:46ef60040f6a 407 float t89 = t49+t50+t51;
marcodesilva 0:46ef60040f6a 408 float t61 = t5*t56;
marcodesilva 0:46ef60040f6a 409 float t64 = t60*1.0;
marcodesilva 0:46ef60040f6a 410 float t68 = t11*t56*-1.0;
marcodesilva 0:46ef60040f6a 411 float t69 = t11*t56*1.0;
marcodesilva 0:46ef60040f6a 412 float t72 = a5*t62;
marcodesilva 0:46ef60040f6a 413 float t73 = a5*t11*t56;
marcodesilva 0:46ef60040f6a 414 float t74 = a5*t59*1.0;
marcodesilva 0:46ef60040f6a 415 float t75 = t5*t57;
marcodesilva 0:46ef60040f6a 416 float t76 = a5*t11*t57;
marcodesilva 0:46ef60040f6a 417 float t77 = -t70;
marcodesilva 0:46ef60040f6a 418 float t79 = t58+t63;
marcodesilva 0:46ef60040f6a 419 float t81 = t59+t65;
marcodesilva 0:46ef60040f6a 420 float t104 = t40+t41+t47+t89;
marcodesilva 0:46ef60040f6a 421 float t67 = t61*1.0;
marcodesilva 0:46ef60040f6a 422 float t78 = -t76;
marcodesilva 0:46ef60040f6a 423 float t80 = t60+t61;
marcodesilva 0:46ef60040f6a 424 float t82 = t60+t75;
marcodesilva 0:46ef60040f6a 425 float t83 = t62+t68;
marcodesilva 0:46ef60040f6a 426 float t85 = a5i*t79;
marcodesilva 0:46ef60040f6a 427 float t88 = t6*t79;
marcodesilva 0:46ef60040f6a 428 float t91 = t12*t81;
marcodesilva 0:46ef60040f6a 429 float t98 = a6*t12*t79*1.0;
marcodesilva 0:46ef60040f6a 430 float t99 = a6*t6*t81*1.0;
marcodesilva 0:46ef60040f6a 431 float t105 = t28+t104;
marcodesilva 0:46ef60040f6a 432 float t84 = t64+t67;
marcodesilva 0:46ef60040f6a 433 float t86 = a5i*t80*-1.0;
marcodesilva 0:46ef60040f6a 434 float t87 = a5i*t80*1.0;
marcodesilva 0:46ef60040f6a 435 float t90 = t88*1.0;
marcodesilva 0:46ef60040f6a 436 float t92 = a5i*t82*1.0;
marcodesilva 0:46ef60040f6a 437 float t93 = -t85;
marcodesilva 0:46ef60040f6a 438 float t95 = t12*t83;
marcodesilva 0:46ef60040f6a 439 float t96 = t91*-1.0;
marcodesilva 0:46ef60040f6a 440 float t97 = t91*1.0;
marcodesilva 0:46ef60040f6a 441 float t101 = -t91;
marcodesilva 0:46ef60040f6a 442 float t102 = a6*t6*t83*-1.0;
marcodesilva 0:46ef60040f6a 443 float t103 = a6*t6*t83*1.0;
marcodesilva 0:46ef60040f6a 444 float t106 = t16+t105;
marcodesilva 0:46ef60040f6a 445 float t94 = t6*t84;
marcodesilva 0:46ef60040f6a 446 float t100 = a6*t12*t84;
marcodesilva 0:46ef60040f6a 447 float t107 = t88+t96;
marcodesilva 0:46ef60040f6a 448 float t108 = t90+t101;
marcodesilva 0:46ef60040f6a 449 float t109 = t94+t95;
marcodesilva 0:46ef60040f6a 450 float t110 = d7*t107*1.0;
marcodesilva 0:46ef60040f6a 451 float t111 = d7*t109;
marcodesilva 0:46ef60040f6a 452 float t112 = t98+t99+t110;
marcodesilva 0:46ef60040f6a 453 float t113 = t74+t77+t93+t112;
marcodesilva 0:46ef60040f6a 454 float t114 = t71+t73+t86+t100+t102+t111;
marcodesilva 0:46ef60040f6a 455 float t117 = t73+t78+t86+t92+t100+t102+t111;
marcodesilva 0:46ef60040f6a 456 float t115 = t27+t43+t114;
marcodesilva 0:46ef60040f6a 457 float t116 = t31+t45+t113;
marcodesilva 0:46ef60040f6a 458 A0(0,0) = 1.0;
marcodesilva 0:46ef60040f6a 459 A0(0,2) = -t8*(t33+t116)-t2*(-t27+t32+t44+t72-t73+t87-t100+t103-t111)*1.0;
marcodesilva 0:46ef60040f6a 460 A0(0,3) = t18*t116*1.0+t20*t115*1.0;
marcodesilva 0:46ef60040f6a 461 A0(0,4) = t20*(t72-t73+t87-t100+t103-t111)-t18*t113;
marcodesilva 0:46ef60040f6a 462 A0(0,5) = -t18*t112-t20*t117;
marcodesilva 0:46ef60040f6a 463 A0(0,6) = t107*t111*-1.0+t108*t111;
marcodesilva 0:46ef60040f6a 464 A0(1,1) = t31+t33+t45+t74-t85*1.0+t112+a5*t65-t8*x_0_r2*1.0-t2*y_0_r2*1.0;
marcodesilva 0:46ef60040f6a 465 A0(1,2) = t2*t106*-1.0;
marcodesilva 0:46ef60040f6a 466 A0(1,3) = t9*t116*-1.0-t20*t105*1.0;
marcodesilva 0:46ef60040f6a 467 A0(1,4) = t9*t113+t20*t104;
marcodesilva 0:46ef60040f6a 468 A0(1,5) = t20*t89+t9*t112;
marcodesilva 0:46ef60040f6a 469 A0(1,6) = t51*t107+t52*t108;
marcodesilva 0:46ef60040f6a 470 A0(2,1) = t27*1.0-t32+t43+t71+t86+t100*1.0+t102+t111*1.0+a5*t69+t2*x_0_r2*1.0-t8*y_0_r2*1.0;
marcodesilva 0:46ef60040f6a 471 A0(2,2) = -t8*t106;
marcodesilva 0:46ef60040f6a 472 A0(2,3) = t18*t105*1.0-t9*t115*1.0;
marcodesilva 0:46ef60040f6a 473 A0(2,4) = -t9*(t72-t73+t87-t100+t103-t111)-t18*t104;
marcodesilva 0:46ef60040f6a 474 A0(2,5) = -t18*t89+t9*t117;
marcodesilva 0:46ef60040f6a 475 A0(3,1) = 1.0;
marcodesilva 0:46ef60040f6a 476 A0(3,3) = t9*-1.0;
marcodesilva 0:46ef60040f6a 477 A0(3,4) = t9;
marcodesilva 0:46ef60040f6a 478 A0(3,5) = t9;
marcodesilva 0:46ef60040f6a 479 A0(3,6) = t3*t42*-1.0;
marcodesilva 0:46ef60040f6a 480 A0(3,7) = t9*t13*-1.0+t3*t7*cos(t30);
marcodesilva 0:46ef60040f6a 481 A0(4,2) = t8;
marcodesilva 0:46ef60040f6a 482 A0(4,3) = t18*-1.0;
marcodesilva 0:46ef60040f6a 483 A0(4,4) = t18;
marcodesilva 0:46ef60040f6a 484 A0(4,5) = t18;
marcodesilva 0:46ef60040f6a 485 A0(4,6) = t109;
marcodesilva 0:46ef60040f6a 486 A0(4,7) = t7*(t6*t83*1.0-t12*t84*1.0)*-1.0-t13*t18*1.0;
marcodesilva 0:46ef60040f6a 487 A0(5,2) = t2*-1.0;
marcodesilva 0:46ef60040f6a 488 A0(5,3) = t20*-1.0;
marcodesilva 0:46ef60040f6a 489 A0(5,4) = t20;
marcodesilva 0:46ef60040f6a 490 A0(5,5) = t20;
marcodesilva 0:46ef60040f6a 491 A0(5,6) = -t90+t91;
marcodesilva 0:46ef60040f6a 492 A0(5,7) = t13*t20*-1.0-t7*(t6*t81+t12*t79)*1.0;
marcodesilva 0:46ef60040f6a 493 return A0;
marcodesilva 0:46ef60040f6a 494 }
marcodesilva 0:46ef60040f6a 495
marcodesilva 0:46ef60040f6a 496
marcodesilva 0:46ef60040f6a 497 //Jacobian matrix J
marcodesilva 0:46ef60040f6a 498 Matrix<float,6,8> ARAP180_WITH_ROVER::jacobianTimeDerivativeMatrix(Vector8f q, Vector8f dq){
marcodesilva 0:46ef60040f6a 499 volatile float q1 = q[0];
marcodesilva 0:46ef60040f6a 500 volatile float q2 = q[1];
marcodesilva 0:46ef60040f6a 501 volatile float q3 = q[2];
marcodesilva 0:46ef60040f6a 502 volatile float q4 = q[3];
marcodesilva 0:46ef60040f6a 503 volatile float q5 = q[4];
marcodesilva 0:46ef60040f6a 504 volatile float q6 = q[5];
marcodesilva 0:46ef60040f6a 505 volatile float q7 = q[6];
marcodesilva 0:46ef60040f6a 506 volatile float q8 = q[7];
marcodesilva 0:46ef60040f6a 507
marcodesilva 0:46ef60040f6a 508 volatile float dq1 = dq[0];
marcodesilva 0:46ef60040f6a 509 volatile float dq2 = dq[1];
marcodesilva 0:46ef60040f6a 510 volatile float dq3 = dq[2];
marcodesilva 0:46ef60040f6a 511 volatile float dq4 = dq[3];
marcodesilva 0:46ef60040f6a 512 volatile float dq5 = dq[4];
marcodesilva 0:46ef60040f6a 513 volatile float dq6 = dq[5];
marcodesilva 0:46ef60040f6a 514 volatile float dq7 = dq[6];
marcodesilva 0:46ef60040f6a 515 volatile float dq8 = dq[7];
marcodesilva 0:46ef60040f6a 516
marcodesilva 0:46ef60040f6a 517 Matrix<float,6,8> A0 = Matrix<float,6,8>::Zero();
marcodesilva 0:46ef60040f6a 518
marcodesilva 0:46ef60040f6a 519
marcodesilva 0:46ef60040f6a 520 return A0;
marcodesilva 0:46ef60040f6a 521 }
marcodesilva 0:46ef60040f6a 522
marcodesilva 0:46ef60040f6a 523
marcodesilva 0:46ef60040f6a 524 Vector6f ARAP180_WITH_ROVER::Gr(Vector8f q, Vector3f droneOrientation){
marcodesilva 0:46ef60040f6a 525
marcodesilva 0:46ef60040f6a 526 Vector6f A0 = Vector6f::Zero();
marcodesilva 0:46ef60040f6a 527 volatile float q1 = 0.0; //q[0]; Per evitare che il drone si sposti nel calcolo della gravità rispetto alla terna drone fissa sul tubo
marcodesilva 0:46ef60040f6a 528 volatile float q2 = q[1];
marcodesilva 0:46ef60040f6a 529 volatile float q3 = q[2];
marcodesilva 0:46ef60040f6a 530 volatile float q4 = q[3];
marcodesilva 0:46ef60040f6a 531 volatile float q5 = q[4];
marcodesilva 0:46ef60040f6a 532 volatile float q6 = q[5];
marcodesilva 0:46ef60040f6a 533 volatile float q7 = q[6];
marcodesilva 0:46ef60040f6a 534 volatile float q8 = q[7];
marcodesilva 0:46ef60040f6a 535
marcodesilva 0:46ef60040f6a 536 float r_b_d = -droneOrientation[0];
marcodesilva 0:46ef60040f6a 537 float p_b_d = -droneOrientation[1];
marcodesilva 0:46ef60040f6a 538
marcodesilva 0:46ef60040f6a 539 float t2 = cos(p_b_d);
marcodesilva 0:46ef60040f6a 540 float t3 = cos(q2);
marcodesilva 0:46ef60040f6a 541 float t4 = cos(q3);
marcodesilva 0:46ef60040f6a 542 float t5 = cos(q4);
marcodesilva 0:46ef60040f6a 543 float t6 = cos(q5);
marcodesilva 0:46ef60040f6a 544 float t7 = cos(q6);
marcodesilva 0:46ef60040f6a 545 float t8 = cos(q7);
marcodesilva 0:46ef60040f6a 546 float t9 = cos(q8);
marcodesilva 0:46ef60040f6a 547 float t10 = cos(r_b_d);
marcodesilva 0:46ef60040f6a 548 float t11 = sin(p_b_d);
marcodesilva 0:46ef60040f6a 549 float t12 = sin(q2);
marcodesilva 0:46ef60040f6a 550 float t13 = sin(q3);
marcodesilva 0:46ef60040f6a 551 float t14 = sin(q4);
marcodesilva 0:46ef60040f6a 552 float t15 = sin(q5);
marcodesilva 0:46ef60040f6a 553 float t16 = sin(q6);
marcodesilva 0:46ef60040f6a 554 float t17 = sin(q7);
marcodesilva 0:46ef60040f6a 555 float t18 = sin(q8);
marcodesilva 0:46ef60040f6a 556 float t19 = sin(r_b_d);
marcodesilva 0:46ef60040f6a 557 float t20 = t3*t4*t19;
marcodesilva 0:46ef60040f6a 558 float t21 = t10*t11*t13;
marcodesilva 0:46ef60040f6a 559 float t22 = t2*t4*t10*t12;
marcodesilva 0:46ef60040f6a 560 float t24 = t12*t19*9.814;
marcodesilva 0:46ef60040f6a 561 float t25 = t2*t3*t10*9.814;
marcodesilva 0:46ef60040f6a 562 float t26 = t4*t10*t11*9.814;
marcodesilva 0:46ef60040f6a 563 float t27 = t3*t13*t19*9.814;
marcodesilva 0:46ef60040f6a 564 float t28 = t2*t10*t12*t13*9.814;
marcodesilva 0:46ef60040f6a 565 float t62 = mpx4*t5*t6*t7*t12*t19*(-9.814);
marcodesilva 0:46ef60040f6a 566 float t63 = mpx4*t6*t12*t14*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 567 float t64 = mpx4*t7*t12*t14*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 568 float t117 = a6*mass5*t5*t6*t7*t12*t19*(-9.814);
marcodesilva 0:46ef60040f6a 569 float t118 = a6*mass6*t5*t6*t7*t12*t19*(-9.814);
marcodesilva 0:46ef60040f6a 570 float t119 = d7*mass6*t6*t7*t12*t14*t19*(-9.814);
marcodesilva 0:46ef60040f6a 571 float t120 = a6*mass5*t6*t12*t14*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 572 float t121 = a6*mass5*t7*t12*t14*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 573 float t122 = a6*mass6*t6*t12*t14*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 574 float t123 = a6*mass6*t7*t12*t14*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 575 float t140 = mpx4*t4*t10*t11*t14*t15*t16*(-9.814);
marcodesilva 0:46ef60040f6a 576 float t141 = mpx4*t3*t13*t14*t15*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 577 float t142 = mpy6*t9*t12*t14*t15*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 578 float t191 = mpx4*t2*t3*t5*t6*t7*t10*(-9.814);
marcodesilva 0:46ef60040f6a 579 float t192 = mpx4*t2*t3*t6*t10*t14*t16*(-9.814);
marcodesilva 0:46ef60040f6a 580 float t193 = mpx4*t2*t3*t7*t10*t14*t15*(-9.814);
marcodesilva 0:46ef60040f6a 581 float t194 = mpx4*t4*t5*t6*t10*t11*t16*(-9.814);
marcodesilva 0:46ef60040f6a 582 float t195 = mpx4*t4*t5*t7*t10*t11*t15*(-9.814);
marcodesilva 0:46ef60040f6a 583 float t196 = mpx4*t3*t5*t6*t13*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 584 float t197 = mpx4*t3*t5*t7*t13*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 585 float t198 = mpy6*t5*t6*t9*t12*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 586 float t199 = mpy6*t5*t7*t9*t12*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 587 float t200 = a6*mass5*t2*t3*t5*t6*t7*t10*(-9.814);
marcodesilva 0:46ef60040f6a 588 float t201 = a6*mass6*t2*t3*t5*t6*t7*t10*(-9.814);
marcodesilva 0:46ef60040f6a 589 float t202 = d7*mass6*t2*t3*t6*t7*t10*t14*(-9.814);
marcodesilva 0:46ef60040f6a 590 float t203 = d7*mass6*t4*t5*t6*t7*t10*t11*(-9.814);
marcodesilva 0:46ef60040f6a 591 float t204 = a6*mass5*t2*t3*t6*t10*t14*t16*(-9.814);
marcodesilva 0:46ef60040f6a 592 float t205 = a6*mass5*t2*t3*t7*t10*t14*t15*(-9.814);
marcodesilva 0:46ef60040f6a 593 float t206 = a6*mass5*t4*t5*t6*t10*t11*t16*(-9.814);
marcodesilva 0:46ef60040f6a 594 float t207 = a6*mass5*t4*t5*t7*t10*t11*t15*(-9.814);
marcodesilva 0:46ef60040f6a 595 float t208 = a6*mass6*t2*t3*t6*t10*t14*t16*(-9.814);
marcodesilva 0:46ef60040f6a 596 float t209 = a6*mass6*t2*t3*t7*t10*t14*t15*(-9.814);
marcodesilva 0:46ef60040f6a 597 float t210 = a6*mass6*t4*t5*t6*t10*t11*t16*(-9.814);
marcodesilva 0:46ef60040f6a 598 float t211 = a6*mass6*t4*t5*t7*t10*t11*t15*(-9.814);
marcodesilva 0:46ef60040f6a 599 float t212 = d7*mass6*t3*t5*t6*t7*t13*t19*(-9.814);
marcodesilva 0:46ef60040f6a 600 float t213 = a6*mass5*t3*t5*t6*t13*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 601 float t214 = a6*mass5*t3*t5*t7*t13*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 602 float t215 = a6*mass6*t3*t5*t6*t13*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 603 float t216 = a6*mass6*t3*t5*t7*t13*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 604 float t217 = d7*mass6*t4*t6*t10*t11*t14*t16*(-9.814);
marcodesilva 0:46ef60040f6a 605 float t218 = d7*mass6*t4*t7*t10*t11*t14*t15*(-9.814);
marcodesilva 0:46ef60040f6a 606 float t219 = a6*mass5*t4*t10*t11*t14*t15*t16*(-9.814);
marcodesilva 0:46ef60040f6a 607 float t220 = a6*mass6*t4*t10*t11*t14*t15*t16*(-9.814);
marcodesilva 0:46ef60040f6a 608 float t221 = d7*mass6*t3*t6*t13*t14*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 609 float t222 = d7*mass6*t3*t7*t13*t14*t15*t19*(-9.814);
marcodesilva 0:46ef60040f6a 610 float t223 = a6*mass5*t3*t13*t14*t15*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 611 float t224 = a6*mass6*t3*t13*t14*t15*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 612 float t257 = mpy6*t2*t3*t5*t6*t9*t10*t16*(-9.814);
marcodesilva 0:46ef60040f6a 613 float t258 = mpy6*t2*t3*t5*t7*t9*t10*t15*(-9.814);
marcodesilva 0:46ef60040f6a 614 float t259 = mpx4*t2*t6*t7*t10*t12*t13*t14*(-9.814);
marcodesilva 0:46ef60040f6a 615 float t260 = mpy6*t2*t3*t9*t10*t14*t15*t16*(-9.814);
marcodesilva 0:46ef60040f6a 616 float t261 = mpy6*t4*t5*t9*t10*t11*t15*t16*(-9.814);
marcodesilva 0:46ef60040f6a 617 float t262 = mpy6*t3*t5*t9*t13*t15*t16*t19*(-9.814);
marcodesilva 0:46ef60040f6a 618 float t263 = mpy6*t5*t12*t15*t16*t17*t18*t19*(-9.814);
marcodesilva 0:46ef60040f6a 619 float t265 = a6*mass5*t2*t6*t7*t10*t12*t13*t14*(-9.814);
marcodesilva 0:46ef60040f6a 620 float t266 = a6*mass6*t2*t6*t7*t10*t12*t13*t14*(-9.814);
marcodesilva 0:46ef60040f6a 621 float t267 = d7*mass6*t2*t5*t10*t12*t13*t15*t16*(-9.814);
marcodesilva 0:46ef60040f6a 622 float t284 = mpy6*t2*t5*t6*t7*t9*t10*t12*t13*(-9.814);
marcodesilva 0:46ef60040f6a 623 float t285 = mpy6*t2*t6*t9*t10*t12*t13*t14*t16*(-9.814);
marcodesilva 0:46ef60040f6a 624 float t286 = mpy6*t2*t7*t9*t10*t12*t13*t14*t15*(-9.814);
marcodesilva 0:46ef60040f6a 625 float t287 = mpy6*t2*t3*t5*t10*t15*t16*t17*t18*(-9.814);
marcodesilva 0:46ef60040f6a 626 float t288 = mpy6*t4*t6*t7*t10*t11*t14*t17*t18*(-9.814);
marcodesilva 0:46ef60040f6a 627 float t289 = mpy6*t3*t6*t7*t13*t14*t17*t18*t19*(-9.814);
marcodesilva 0:46ef60040f6a 628 float t295 = mpy6*t2*t5*t6*t10*t12*t13*t16*t17*t18*(-9.814);
marcodesilva 0:46ef60040f6a 629 float t296 = mpy6*t2*t5*t7*t10*t12*t13*t15*t17*t18*(-9.814);
marcodesilva 0:46ef60040f6a 630 float t297 = mpy6*t2*t10*t12*t13*t14*t15*t16*t17*t18*(-9.814);
marcodesilva 0:46ef60040f6a 631 float t23 = -t20;
marcodesilva 0:46ef60040f6a 632 float t29 = mpx3*t5*t6*t24;
marcodesilva 0:46ef60040f6a 633 float t30 = mpy3*t5*t15*t24;
marcodesilva 0:46ef60040f6a 634 float t31 = mpy3*t6*t14*t24;
marcodesilva 0:46ef60040f6a 635 float t32 = mpx3*t14*t15*t24;
marcodesilva 0:46ef60040f6a 636 float t33 = -t28;
marcodesilva 0:46ef60040f6a 637 float t34 = a5*mass4*t5*t6*t24;
marcodesilva 0:46ef60040f6a 638 float t35 = a5*mass5*t5*t6*t24;
marcodesilva 0:46ef60040f6a 639 float t36 = a5*mass6*t5*t6*t24;
marcodesilva 0:46ef60040f6a 640 float t37 = a5i*mass4*t5*t15*t24;
marcodesilva 0:46ef60040f6a 641 float t38 = a5i*mass4*t6*t14*t24;
marcodesilva 0:46ef60040f6a 642 float t39 = a5i*mass5*t5*t15*t24;
marcodesilva 0:46ef60040f6a 643 float t40 = a5i*mass5*t6*t14*t24;
marcodesilva 0:46ef60040f6a 644 float t41 = a5i*mass6*t5*t15*t24;
marcodesilva 0:46ef60040f6a 645 float t42 = a5i*mass6*t6*t14*t24;
marcodesilva 0:46ef60040f6a 646 float t43 = a5*mass4*t14*t15*t24;
marcodesilva 0:46ef60040f6a 647 float t44 = a5*mass5*t14*t15*t24;
marcodesilva 0:46ef60040f6a 648 float t45 = a5*mass6*t14*t15*t24;
marcodesilva 0:46ef60040f6a 649 float t46 = mpy3*t5*t15*t25;
marcodesilva 0:46ef60040f6a 650 float t47 = mpy3*t6*t14*t25;
marcodesilva 0:46ef60040f6a 651 float t48 = mpy3*t5*t6*t26;
marcodesilva 0:46ef60040f6a 652 float t49 = mpx3*t14*t15*t25;
marcodesilva 0:46ef60040f6a 653 float t50 = mpx3*t5*t15*t26;
marcodesilva 0:46ef60040f6a 654 float t51 = mpx3*t6*t14*t26;
marcodesilva 0:46ef60040f6a 655 float t52 = mpx4*t5*t6*t7*t24;
marcodesilva 0:46ef60040f6a 656 float t53 = mpy3*t5*t6*t27;
marcodesilva 0:46ef60040f6a 657 float t54 = mpy3*t14*t15*t26;
marcodesilva 0:46ef60040f6a 658 float t55 = mpx3*t5*t15*t27;
marcodesilva 0:46ef60040f6a 659 float t56 = mpx3*t6*t14*t27;
marcodesilva 0:46ef60040f6a 660 float t57 = mpx4*t5*t15*t16*t24;
marcodesilva 0:46ef60040f6a 661 float t58 = mpx4*t6*t14*t16*t24;
marcodesilva 0:46ef60040f6a 662 float t59 = mpx4*t7*t14*t15*t24;
marcodesilva 0:46ef60040f6a 663 float t60 = mpy3*t14*t15*t27;
marcodesilva 0:46ef60040f6a 664 float t61 = mpx3*t5*t6*t25;
marcodesilva 0:46ef60040f6a 665 float t65 = a5*mass4*t5*t6*t25;
marcodesilva 0:46ef60040f6a 666 float t66 = a5*mass5*t5*t6*t25;
marcodesilva 0:46ef60040f6a 667 float t67 = a5*mass6*t5*t6*t25;
marcodesilva 0:46ef60040f6a 668 float t68 = a5i*mass4*t5*t15*t25;
marcodesilva 0:46ef60040f6a 669 float t69 = a5i*mass4*t6*t14*t25;
marcodesilva 0:46ef60040f6a 670 float t70 = a5i*mass4*t5*t6*t26;
marcodesilva 0:46ef60040f6a 671 float t71 = a5i*mass5*t5*t15*t25;
marcodesilva 0:46ef60040f6a 672 float t72 = a5i*mass5*t6*t14*t25;
marcodesilva 0:46ef60040f6a 673 float t73 = a5i*mass5*t5*t6*t26;
marcodesilva 0:46ef60040f6a 674 float t74 = a5i*mass6*t5*t15*t25;
marcodesilva 0:46ef60040f6a 675 float t75 = a5i*mass6*t6*t14*t25;
marcodesilva 0:46ef60040f6a 676 float t76 = a5i*mass6*t5*t6*t26;
marcodesilva 0:46ef60040f6a 677 float t77 = a5*mass4*t14*t15*t25;
marcodesilva 0:46ef60040f6a 678 float t78 = a5*mass4*t5*t15*t26;
marcodesilva 0:46ef60040f6a 679 float t79 = a5*mass4*t6*t14*t26;
marcodesilva 0:46ef60040f6a 680 float t80 = a5*mass5*t14*t15*t25;
marcodesilva 0:46ef60040f6a 681 float t81 = a5*mass5*t5*t15*t26;
marcodesilva 0:46ef60040f6a 682 float t82 = a5*mass5*t6*t14*t26;
marcodesilva 0:46ef60040f6a 683 float t83 = a5*mass6*t14*t15*t25;
marcodesilva 0:46ef60040f6a 684 float t84 = a5*mass6*t5*t15*t26;
marcodesilva 0:46ef60040f6a 685 float t85 = a5*mass6*t6*t14*t26;
marcodesilva 0:46ef60040f6a 686 float t86 = a6*mass5*t5*t6*t7*t24;
marcodesilva 0:46ef60040f6a 687 float t87 = a6*mass6*t5*t6*t7*t24;
marcodesilva 0:46ef60040f6a 688 float t88 = a5i*mass4*t5*t6*t27;
marcodesilva 0:46ef60040f6a 689 float t89 = a5i*mass5*t5*t6*t27;
marcodesilva 0:46ef60040f6a 690 float t90 = a5i*mass6*t5*t6*t27;
marcodesilva 0:46ef60040f6a 691 float t91 = a5i*mass4*t14*t15*t26;
marcodesilva 0:46ef60040f6a 692 float t92 = a5i*mass5*t14*t15*t26;
marcodesilva 0:46ef60040f6a 693 float t93 = a5i*mass6*t14*t15*t26;
marcodesilva 0:46ef60040f6a 694 float t94 = a5*mass4*t5*t15*t27;
marcodesilva 0:46ef60040f6a 695 float t95 = a5*mass4*t6*t14*t27;
marcodesilva 0:46ef60040f6a 696 float t96 = a5*mass5*t5*t15*t27;
marcodesilva 0:46ef60040f6a 697 float t97 = a5*mass5*t6*t14*t27;
marcodesilva 0:46ef60040f6a 698 float t98 = a5*mass6*t5*t15*t27;
marcodesilva 0:46ef60040f6a 699 float t99 = a5*mass6*t6*t14*t27;
marcodesilva 0:46ef60040f6a 700 float t100 = d7*mass6*t5*t6*t16*t24;
marcodesilva 0:46ef60040f6a 701 float t101 = d7*mass6*t5*t7*t15*t24;
marcodesilva 0:46ef60040f6a 702 float t102 = d7*mass6*t6*t7*t14*t24;
marcodesilva 0:46ef60040f6a 703 float t103 = a6*mass5*t5*t15*t16*t24;
marcodesilva 0:46ef60040f6a 704 float t104 = a6*mass5*t6*t14*t16*t24;
marcodesilva 0:46ef60040f6a 705 float t105 = a6*mass5*t7*t14*t15*t24;
marcodesilva 0:46ef60040f6a 706 float t106 = a6*mass6*t5*t15*t16*t24;
marcodesilva 0:46ef60040f6a 707 float t107 = a6*mass6*t6*t14*t16*t24;
marcodesilva 0:46ef60040f6a 708 float t108 = a6*mass6*t7*t14*t15*t24;
marcodesilva 0:46ef60040f6a 709 float t109 = a5i*mass4*t14*t15*t27;
marcodesilva 0:46ef60040f6a 710 float t110 = a5i*mass5*t14*t15*t27;
marcodesilva 0:46ef60040f6a 711 float t111 = a5i*mass6*t14*t15*t27;
marcodesilva 0:46ef60040f6a 712 float t112 = d7*mass6*t14*t15*t16*t24;
marcodesilva 0:46ef60040f6a 713 float t113 = mpx4*t14*t15*t16*t26;
marcodesilva 0:46ef60040f6a 714 float t114 = mpy3*t14*t15*t28;
marcodesilva 0:46ef60040f6a 715 float t115 = mpx4*t14*t15*t16*t27;
marcodesilva 0:46ef60040f6a 716 float t116 = mpy6*t9*t14*t15*t16*t24;
marcodesilva 0:46ef60040f6a 717 float t124 = mpx4*t5*t6*t7*t25;
marcodesilva 0:46ef60040f6a 718 float t125 = mpx4*t5*t15*t16*t25;
marcodesilva 0:46ef60040f6a 719 float t126 = mpx4*t6*t14*t16*t25;
marcodesilva 0:46ef60040f6a 720 float t127 = mpx4*t7*t14*t15*t25;
marcodesilva 0:46ef60040f6a 721 float t128 = mpx4*t5*t6*t16*t26;
marcodesilva 0:46ef60040f6a 722 float t129 = mpx4*t5*t7*t15*t26;
marcodesilva 0:46ef60040f6a 723 float t130 = mpx4*t6*t7*t14*t26;
marcodesilva 0:46ef60040f6a 724 float t131 = mpy3*t5*t6*t28;
marcodesilva 0:46ef60040f6a 725 float t132 = mpx3*t5*t15*t28;
marcodesilva 0:46ef60040f6a 726 float t133 = mpx3*t6*t14*t28;
marcodesilva 0:46ef60040f6a 727 float t134 = mpx4*t5*t6*t16*t27;
marcodesilva 0:46ef60040f6a 728 float t135 = mpx4*t5*t7*t15*t27;
marcodesilva 0:46ef60040f6a 729 float t136 = mpx4*t6*t7*t14*t27;
marcodesilva 0:46ef60040f6a 730 float t137 = mpy6*t5*t6*t9*t16*t24;
marcodesilva 0:46ef60040f6a 731 float t138 = mpy6*t5*t7*t9*t15*t24;
marcodesilva 0:46ef60040f6a 732 float t139 = mpy6*t6*t7*t9*t14*t24;
marcodesilva 0:46ef60040f6a 733 float t143 = a6*mass5*t5*t6*t7*t25;
marcodesilva 0:46ef60040f6a 734 float t144 = a6*mass6*t5*t6*t7*t25;
marcodesilva 0:46ef60040f6a 735 float t145 = d7*mass6*t5*t6*t16*t25;
marcodesilva 0:46ef60040f6a 736 float t146 = d7*mass6*t5*t7*t15*t25;
marcodesilva 0:46ef60040f6a 737 float t147 = d7*mass6*t6*t7*t14*t25;
marcodesilva 0:46ef60040f6a 738 float t148 = d7*mass6*t5*t6*t7*t26;
marcodesilva 0:46ef60040f6a 739 float t149 = a6*mass5*t5*t15*t16*t25;
marcodesilva 0:46ef60040f6a 740 float t150 = a6*mass5*t6*t14*t16*t25;
marcodesilva 0:46ef60040f6a 741 float t151 = a6*mass5*t7*t14*t15*t25;
marcodesilva 0:46ef60040f6a 742 float t152 = a6*mass5*t5*t6*t16*t26;
marcodesilva 0:46ef60040f6a 743 float t153 = a6*mass5*t5*t7*t15*t26;
marcodesilva 0:46ef60040f6a 744 float t154 = a6*mass5*t6*t7*t14*t26;
marcodesilva 0:46ef60040f6a 745 float t155 = a6*mass6*t5*t15*t16*t25;
marcodesilva 0:46ef60040f6a 746 float t156 = a6*mass6*t6*t14*t16*t25;
marcodesilva 0:46ef60040f6a 747 float t157 = a6*mass6*t7*t14*t15*t25;
marcodesilva 0:46ef60040f6a 748 float t158 = a6*mass6*t5*t6*t16*t26;
marcodesilva 0:46ef60040f6a 749 float t159 = a6*mass6*t5*t7*t15*t26;
marcodesilva 0:46ef60040f6a 750 float t160 = a6*mass6*t6*t7*t14*t26;
marcodesilva 0:46ef60040f6a 751 float t161 = a5i*mass4*t5*t6*t28;
marcodesilva 0:46ef60040f6a 752 float t162 = a5i*mass5*t5*t6*t28;
marcodesilva 0:46ef60040f6a 753 float t163 = a5i*mass6*t5*t6*t28;
marcodesilva 0:46ef60040f6a 754 float t164 = d7*mass6*t5*t6*t7*t27;
marcodesilva 0:46ef60040f6a 755 float t165 = a5*mass4*t5*t15*t28;
marcodesilva 0:46ef60040f6a 756 float t166 = a5*mass4*t6*t14*t28;
marcodesilva 0:46ef60040f6a 757 float t167 = a5*mass5*t5*t15*t28;
marcodesilva 0:46ef60040f6a 758 float t168 = a5*mass5*t6*t14*t28;
marcodesilva 0:46ef60040f6a 759 float t169 = a5*mass6*t5*t15*t28;
marcodesilva 0:46ef60040f6a 760 float t170 = a5*mass6*t6*t14*t28;
marcodesilva 0:46ef60040f6a 761 float t171 = a6*mass5*t5*t6*t16*t27;
marcodesilva 0:46ef60040f6a 762 float t172 = a6*mass5*t5*t7*t15*t27;
marcodesilva 0:46ef60040f6a 763 float t173 = a6*mass5*t6*t7*t14*t27;
marcodesilva 0:46ef60040f6a 764 float t174 = a6*mass6*t5*t6*t16*t27;
marcodesilva 0:46ef60040f6a 765 float t175 = a6*mass6*t5*t7*t15*t27;
marcodesilva 0:46ef60040f6a 766 float t176 = a6*mass6*t6*t7*t14*t27;
marcodesilva 0:46ef60040f6a 767 float t177 = d7*mass6*t14*t15*t16*t25;
marcodesilva 0:46ef60040f6a 768 float t178 = d7*mass6*t5*t15*t16*t26;
marcodesilva 0:46ef60040f6a 769 float t179 = d7*mass6*t6*t14*t16*t26;
marcodesilva 0:46ef60040f6a 770 float t180 = d7*mass6*t7*t14*t15*t26;
marcodesilva 0:46ef60040f6a 771 float t181 = a6*mass5*t14*t15*t16*t26;
marcodesilva 0:46ef60040f6a 772 float t182 = a6*mass6*t14*t15*t16*t26;
marcodesilva 0:46ef60040f6a 773 float t183 = a5i*mass4*t14*t15*t28;
marcodesilva 0:46ef60040f6a 774 float t184 = a5i*mass5*t14*t15*t28;
marcodesilva 0:46ef60040f6a 775 float t185 = a5i*mass6*t14*t15*t28;
marcodesilva 0:46ef60040f6a 776 float t186 = d7*mass6*t5*t15*t16*t27;
marcodesilva 0:46ef60040f6a 777 float t187 = d7*mass6*t6*t14*t16*t27;
marcodesilva 0:46ef60040f6a 778 float t188 = d7*mass6*t7*t14*t15*t27;
marcodesilva 0:46ef60040f6a 779 float t189 = a6*mass5*t14*t15*t16*t27;
marcodesilva 0:46ef60040f6a 780 float t190 = a6*mass6*t14*t15*t16*t27;
marcodesilva 0:46ef60040f6a 781 float t225 = mpy6*t5*t6*t9*t16*t25;
marcodesilva 0:46ef60040f6a 782 float t226 = mpy6*t5*t7*t9*t15*t25;
marcodesilva 0:46ef60040f6a 783 float t227 = mpy6*t6*t7*t9*t14*t25;
marcodesilva 0:46ef60040f6a 784 float t228 = mpy6*t5*t6*t7*t9*t26;
marcodesilva 0:46ef60040f6a 785 float t229 = mpy6*t5*t6*t7*t9*t27;
marcodesilva 0:46ef60040f6a 786 float t230 = mpx4*t5*t6*t16*t28;
marcodesilva 0:46ef60040f6a 787 float t231 = mpx4*t5*t7*t15*t28;
marcodesilva 0:46ef60040f6a 788 float t232 = mpx4*t6*t7*t14*t28;
marcodesilva 0:46ef60040f6a 789 float t233 = mpy6*t9*t14*t15*t16*t25;
marcodesilva 0:46ef60040f6a 790 float t234 = mpy6*t5*t9*t15*t16*t26;
marcodesilva 0:46ef60040f6a 791 float t235 = mpy6*t6*t9*t14*t16*t26;
marcodesilva 0:46ef60040f6a 792 float t236 = mpy6*t7*t9*t14*t15*t26;
marcodesilva 0:46ef60040f6a 793 float t237 = mpy6*t5*t9*t15*t16*t27;
marcodesilva 0:46ef60040f6a 794 float t238 = mpy6*t6*t9*t14*t16*t27;
marcodesilva 0:46ef60040f6a 795 float t239 = mpy6*t7*t9*t14*t15*t27;
marcodesilva 0:46ef60040f6a 796 float t240 = mpy6*t5*t6*t7*t17*t18*t24;
marcodesilva 0:46ef60040f6a 797 float t241 = mpx4*t14*t15*t16*t28;
marcodesilva 0:46ef60040f6a 798 float t242 = mpy6*t5*t15*t16*t17*t18*t24;
marcodesilva 0:46ef60040f6a 799 float t243 = mpy6*t6*t14*t16*t17*t18*t24;
marcodesilva 0:46ef60040f6a 800 float t244 = mpy6*t7*t14*t15*t17*t18*t24;
marcodesilva 0:46ef60040f6a 801 float t245 = d7*mass6*t5*t6*t7*t28;
marcodesilva 0:46ef60040f6a 802 float t246 = a6*mass5*t5*t6*t16*t28;
marcodesilva 0:46ef60040f6a 803 float t247 = a6*mass5*t5*t7*t15*t28;
marcodesilva 0:46ef60040f6a 804 float t248 = a6*mass5*t6*t7*t14*t28;
marcodesilva 0:46ef60040f6a 805 float t249 = a6*mass6*t5*t6*t16*t28;
marcodesilva 0:46ef60040f6a 806 float t250 = a6*mass6*t5*t7*t15*t28;
marcodesilva 0:46ef60040f6a 807 float t251 = a6*mass6*t6*t7*t14*t28;
marcodesilva 0:46ef60040f6a 808 float t252 = d7*mass6*t5*t15*t16*t28;
marcodesilva 0:46ef60040f6a 809 float t253 = d7*mass6*t6*t14*t16*t28;
marcodesilva 0:46ef60040f6a 810 float t254 = d7*mass6*t7*t14*t15*t28;
marcodesilva 0:46ef60040f6a 811 float t255 = a6*mass5*t14*t15*t16*t28;
marcodesilva 0:46ef60040f6a 812 float t256 = a6*mass6*t14*t15*t16*t28;
marcodesilva 0:46ef60040f6a 813 float t268 = mpy6*t5*t6*t7*t9*t28;
marcodesilva 0:46ef60040f6a 814 float t269 = mpy6*t5*t6*t7*t17*t18*t25;
marcodesilva 0:46ef60040f6a 815 float t270 = mpy6*t5*t9*t15*t16*t28;
marcodesilva 0:46ef60040f6a 816 float t271 = mpy6*t6*t9*t14*t16*t28;
marcodesilva 0:46ef60040f6a 817 float t272 = mpy6*t7*t9*t14*t15*t28;
marcodesilva 0:46ef60040f6a 818 float t273 = mpy6*t5*t15*t16*t17*t18*t25;
marcodesilva 0:46ef60040f6a 819 float t274 = mpy6*t6*t14*t16*t17*t18*t25;
marcodesilva 0:46ef60040f6a 820 float t275 = mpy6*t7*t14*t15*t17*t18*t25;
marcodesilva 0:46ef60040f6a 821 float t276 = mpy6*t5*t6*t16*t17*t18*t26;
marcodesilva 0:46ef60040f6a 822 float t277 = mpy6*t5*t7*t15*t17*t18*t26;
marcodesilva 0:46ef60040f6a 823 float t278 = mpy6*t6*t7*t14*t17*t18*t26;
marcodesilva 0:46ef60040f6a 824 float t279 = mpy6*t5*t6*t16*t17*t18*t27;
marcodesilva 0:46ef60040f6a 825 float t280 = mpy6*t5*t7*t15*t17*t18*t27;
marcodesilva 0:46ef60040f6a 826 float t281 = mpy6*t6*t7*t14*t17*t18*t27;
marcodesilva 0:46ef60040f6a 827 float t282 = mpy6*t14*t15*t16*t17*t18*t26;
marcodesilva 0:46ef60040f6a 828 float t283 = mpy6*t14*t15*t16*t17*t18*t27;
marcodesilva 0:46ef60040f6a 829 float t290 = mpy6*t5*t6*t16*t17*t18*t28;
marcodesilva 0:46ef60040f6a 830 float t291 = mpy6*t5*t7*t15*t17*t18*t28;
marcodesilva 0:46ef60040f6a 831 float t292 = mpy6*t6*t7*t14*t17*t18*t28;
marcodesilva 0:46ef60040f6a 832 float t293 = mpy6*t14*t15*t16*t17*t18*t28;
marcodesilva 0:46ef60040f6a 833 float t294 = t24+t25;
marcodesilva 0:46ef60040f6a 834 float t264 = t21+t22+t23;
marcodesilva 0:46ef60040f6a 835 float t298 = t5*t294;
marcodesilva 0:46ef60040f6a 836 float t299 = t14*t294;
marcodesilva 0:46ef60040f6a 837 float t301 = t26+t27+t33;
marcodesilva 0:46ef60040f6a 838 float t300 = -t298;
marcodesilva 0:46ef60040f6a 839 float t302 = t5*t301;
marcodesilva 0:46ef60040f6a 840 float t303 = t14*t301;
marcodesilva 0:46ef60040f6a 841 float t304 = t299+t302;
marcodesilva 0:46ef60040f6a 842 float t305 = t300+t303;
marcodesilva 0:46ef60040f6a 843 float t308 = -t6*(t298-t303);
marcodesilva 0:46ef60040f6a 844 float t309 = -t15*(t298-t303);
marcodesilva 0:46ef60040f6a 845 float t306 = t6*t304;
marcodesilva 0:46ef60040f6a 846 float t307 = t15*t304;
marcodesilva 0:46ef60040f6a 847 float t310 = -t307;
marcodesilva 0:46ef60040f6a 848 float t311 = t306+t309;
marcodesilva 0:46ef60040f6a 849 float t314 = -t16*(t307+t6*(t298-t303));
marcodesilva 0:46ef60040f6a 850 float t312 = t308+t310;
marcodesilva 0:46ef60040f6a 851 float t313 = t7*t311;
marcodesilva 0:46ef60040f6a 852 float t315 = t313+t314;
marcodesilva 0:46ef60040f6a 853 A0(0) = t10*t11*(mass1+mass2+mass3+mass4+mass5+mass6+massr)*9.814;
marcodesilva 0:46ef60040f6a 854 A0(1) = mpxr*t24+mpxr*t25+t13*t30+t13*t38+t13*t40+t13*t42+t13*t46+t13*t57+t13*t62+t13*t63+t13*t64+t13*t69+t13*t72+t13*t75+t13*t100+t13*t101+t13*t103+t13*t106+t13*t112+t13*t117+t13*t118+t13*t119+t13*t120+t13*t121+t13*t122+t13*t123+t13*t125+t13*t139+t13*t142+t13*t145+t13*t146+t13*t149+t13*t155+t13*t177+t13*t191+t13*t192+t13*t193+t13*t198+t13*t199+t13*t200+t13*t201+t13*t202+t13*t204+t13*t205+t13*t208+t13*t209+t13*t227+t13*t240+t13*t243+t13*t244+t13*t257+t13*t258+t13*t260+t13*t263+t13*t269+t13*t274+t13*t275+t13*t287+mpy1*t3*t19*9.814+mpyr*t3*t19*9.814+mass1*t24*x_0_r2+mass1*t25*x_0_r2+mass2*t24*x_0_r2+mass2*t25*x_0_r2+mass3*t24*x_0_r2+mass3*t25*x_0_r2+mass4*t24*x_0_r2+mass4*t25*x_0_r2+mass5*t24*x_0_r2+mass5*t25*x_0_r2+mass6*t24*x_0_r2+mass6*t25*x_0_r2-mpx2*t3*t5*t19*9.814-mpx1*t12*t13*t19*9.814-mpy1*t2*t10*t12*9.814-mpy2*t3*t14*t19*9.814+mpy2*t5*t13*t24+mpy2*t5*t13*t25-mpyr*t2*t10*t12*9.814+mass1*t3*t19*y_0_r2*9.814+mass2*t3*t19*y_0_r2*9.814+mass3*t3*t19*y_0_r2*9.814+mass4*t3*t19*y_0_r2*9.814+mass5*t3*t19*y_0_r2*9.814+mass6*t3*t19*y_0_r2*9.814-a4*mass3*t3*t5*t19*9.814-a4*mass4*t3*t5*t19*9.814-a4*mass5*t3*t5*t19*9.814-a4*mass6*t3*t5*t19*9.814-a3*mass2*t12*t13*t19*9.814-a3*mass3*t12*t13*t19*9.814-a3*mass4*t12*t13*t19*9.814-a3*mass5*t12*t13*t19*9.814-a3*mass6*t12*t13*t19*9.814-mpx1*t2*t3*t10*t13*9.814+mpx2*t2*t5*t10*t12*9.814-mpx3*t3*t5*t15*t19*9.814+mpx3*t3*t6*t14*t19*9.814-mpx2*t12*t13*t14*t19*9.814-mpy3*t3*t5*t6*t19*9.814+mpy2*t2*t10*t12*t14*9.814-mpy3*t3*t14*t15*t19*9.814-mass1*t2*t10*t12*y_0_r2*9.814-mass2*t2*t10*t12*y_0_r2*9.814-mass3*t2*t10*t12*y_0_r2*9.814-mass4*t2*t10*t12*y_0_r2*9.814-mass5*t2*t10*t12*y_0_r2*9.814-mass6*t2*t10*t12*y_0_r2*9.814-mpx2*t2*t3*t10*t13*t14*9.814+mpx3*t2*t5*t10*t12*t15*9.814-mpx3*t2*t6*t10*t12*t14*9.814-mpx4*t3*t5*t6*t16*t19*9.814-mpx4*t3*t5*t7*t15*t19*9.814+mpx4*t3*t6*t7*t14*t19*9.814-mpx3*t5*t6*t12*t13*t19*9.814-mpx4*t3*t14*t15*t16*t19*9.814-mpx3*t12*t13*t14*t15*t19*9.814+mpy3*t2*t5*t6*t10*t12*9.814+mpy3*t2*t10*t12*t14*t15*9.814-mpy3*t6*t12*t13*t14*t19*9.814-mpy6*t4*t8*t12*t18*t19*9.814-a3*mass2*t2*t3*t10*t13*9.814-a3*mass3*t2*t3*t10*t13*9.814-a3*mass4*t2*t3*t10*t13*9.814-a3*mass5*t2*t3*t10*t13*9.814+a4*mass3*t2*t5*t10*t12*9.814-a3*mass6*t2*t3*t10*t13*9.814+a4*mass4*t2*t5*t10*t12*9.814+a4*mass5*t2*t5*t10*t12*9.814+a4*mass6*t2*t5*t10*t12*9.814-a5*mass4*t3*t5*t15*t19*9.814+a5*mass4*t3*t6*t14*t19*9.814-a5*mass5*t3*t5*t15*t19*9.814+a5*mass5*t3*t6*t14*t19*9.814-a5*mass6*t3*t5*t15*t19*9.814+a5*mass6*t3*t6*t14*t19*9.814-a4*mass3*t12*t13*t14*t19*9.814-a4*mass4*t12*t13*t14*t19*9.814-a4*mass5*t12*t13*t14*t19*9.814-a4*mass6*t12*t13*t14*t19*9.814+a5i*mass4*t3*t5*t6*t19*9.814+a5i*mass5*t3*t5*t6*t19*9.814+a5i*mass6*t3*t5*t6*t19*9.814+a5i*mass4*t3*t14*t15*t19*9.814+a5i*mass5*t3*t14*t15*t19*9.814+a5i*mass6*t3*t14*t15*t19*9.814-a4*mass3*t2*t3*t10*t13*t14*9.814-a4*mass4*t2*t3*t10*t13*t14*9.814-a4*mass5*t2*t3*t10*t13*t14*9.814-a4*mass6*t2*t3*t10*t13*t14*9.814+a5*mass4*t2*t5*t10*t12*t15*9.814-a5*mass4*t2*t6*t10*t12*t14*9.814+a5*mass5*t2*t5*t10*t12*t15*9.814-a5*mass5*t2*t6*t10*t12*t14*9.814+a5*mass6*t2*t5*t10*t12*t15*9.814-a5*mass6*t2*t6*t10*t12*t14*9.814-a6*mass5*t3*t5*t6*t16*t19*9.814-a6*mass5*t3*t5*t7*t15*t19*9.814+a6*mass5*t3*t6*t7*t14*t19*9.814-a6*mass6*t3*t5*t6*t16*t19*9.814-a6*mass6*t3*t5*t7*t15*t19*9.814+a6*mass6*t3*t6*t7*t14*t19*9.814-a5*mass4*t5*t6*t12*t13*t19*9.814-a5*mass5*t5*t6*t12*t13*t19*9.814-a5*mass6*t5*t6*t12*t13*t19*9.814-a6*mass5*t3*t14*t15*t16*t19*9.814-a6*mass6*t3*t14*t15*t16*t19*9.814-a5*mass4*t12*t13*t14*t15*t19*9.814-a5*mass5*t12*t13*t14*t15*t19*9.814-a5*mass6*t12*t13*t14*t15*t19*9.814-a5i*mass4*t2*t5*t6*t10*t12*9.814-a5i*mass5*t2*t5*t6*t10*t12*9.814-a5i*mass6*t2*t5*t6*t10*t12*9.814-a5i*mass4*t2*t10*t12*t14*t15*9.814-a5i*mass5*t2*t10*t12*t14*t15*9.814-a5i*mass6*t2*t10*t12*t14*t15*9.814-a5i*mass4*t5*t12*t13*t15*t19*9.814-a5i*mass5*t5*t12*t13*t15*t19*9.814-a5i*mass6*t5*t12*t13*t15*t19*9.814-d7*mass6*t3*t5*t6*t7*t19*9.814+d7*mass6*t3*t5*t15*t16*t19*9.814-d7*mass6*t3*t6*t14*t16*t19*9.814-d7*mass6*t3*t7*t14*t15*t19*9.814-mpx3*t2*t3*t5*t6*t10*t13*9.814+mpx4*t2*t5*t6*t10*t12*t16*9.814+mpx4*t2*t5*t7*t10*t12*t15*9.814-mpx4*t2*t6*t7*t10*t12*t14*9.814-mpx3*t2*t3*t10*t13*t14*t15*9.814+mpx4*t2*t10*t12*t14*t15*t16*9.814-mpy3*t2*t3*t6*t10*t13*t14*9.814-mpy6*t2*t3*t4*t8*t10*t18*9.814+mpy6*t3*t5*t6*t7*t9*t19*9.814-mpy6*t3*t5*t9*t15*t16*t19*9.814+mpy6*t3*t6*t9*t14*t16*t19*9.814+mpy6*t3*t7*t9*t14*t15*t19*9.814-a5*mass4*t2*t3*t5*t6*t10*t13*9.814-a5*mass5*t2*t3*t5*t6*t10*t13*9.814-a5*mass6*t2*t3*t5*t6*t10*t13*9.814+a6*mass5*t2*t5*t6*t10*t12*t16*9.814+a6*mass5*t2*t5*t7*t10*t12*t15*9.814-a6*mass5*t2*t6*t7*t10*t12*t14*9.814+a6*mass6*t2*t5*t6*t10*t12*t16*9.814+a6*mass6*t2*t5*t7*t10*t12*t15*9.814-a6*mass6*t2*t6*t7*t10*t12*t14*9.814-a5*mass4*t2*t3*t10*t13*t14*t15*9.814-a5*mass5*t2*t3*t10*t13*t14*t15*9.814-a5*mass6*t2*t3*t10*t13*t14*t15*9.814+a6*mass5*t2*t10*t12*t14*t15*t16*9.814+a6*mass6*t2*t10*t12*t14*t15*t16*9.814-a5i*mass4*t2*t3*t5*t10*t13*t15*9.814-a5i*mass5*t2*t3*t5*t10*t13*t15*9.814-a5i*mass6*t2*t3*t5*t10*t13*t15*9.814+d7*mass6*t2*t5*t6*t7*t10*t12*9.814-d7*mass6*t2*t5*t10*t12*t15*t16*9.814+d7*mass6*t2*t6*t10*t12*t14*t16*9.814+d7*mass6*t2*t7*t10*t12*t14*t15*9.814-mpy6*t2*t5*t6*t7*t9*t10*t12*9.814+mpy6*t2*t5*t9*t10*t12*t15*t16*9.814-mpy6*t2*t6*t9*t10*t12*t14*t16*9.814-mpy6*t2*t7*t9*t10*t12*t14*t15*9.814+mpy6*t3*t5*t6*t16*t17*t18*t19*9.814+mpy6*t3*t5*t7*t15*t17*t18*t19*9.814-mpy6*t3*t6*t7*t14*t17*t18*t19*9.814+mpy6*t3*t14*t15*t16*t17*t18*t19*9.814-mpy6*t2*t5*t6*t10*t12*t16*t17*t18*9.814-mpy6*t2*t5*t7*t10*t12*t15*t17*t18*9.814+mpy6*t2*t6*t7*t10*t12*t14*t17*t18*9.814-mpy6*t2*t10*t12*t14*t15*t16*t17*t18*9.814;
marcodesilva 0:46ef60040f6a 855 A0(2) = mpx1*t20*9.814-mpx1*t21*9.814-mpx1*t22*9.814+a3*mass2*t20*9.814-a3*mass2*t21*9.814+a3*mass3*t20*9.814-a3*mass2*t22*9.814-a3*mass3*t21*9.814+a3*mass4*t20*9.814-a3*mass3*t22*9.814-a3*mass4*t21*9.814+a3*mass5*t20*9.814-a3*mass4*t22*9.814-a3*mass5*t21*9.814+a3*mass6*t20*9.814-a3*mass5*t22*9.814-a3*mass6*t21*9.814-a3*mass6*t22*9.814+mpx2*t14*t20*9.814-mpx2*t14*t21*9.814-mpx2*t14*t22*9.814-mpy2*t5*t20*9.814+mpy2*t5*t21*9.814+mpy2*t5*t22*9.814+a4*mass3*t14*t20*9.814-a4*mass3*t14*t21*9.814+a4*mass4*t14*t20*9.814-a4*mass3*t14*t22*9.814-a4*mass4*t14*t21*9.814+a4*mass5*t14*t20*9.814-a4*mass4*t14*t22*9.814-a4*mass5*t14*t21*9.814+a4*mass6*t14*t20*9.814-a4*mass5*t14*t22*9.814-a4*mass6*t14*t21*9.814-a4*mass6*t14*t22*9.814+mpx3*t5*t6*t20*9.814-mpx3*t5*t6*t21*9.814-mpx3*t5*t6*t22*9.814+mpx3*t14*t15*t20*9.814-mpx3*t14*t15*t21*9.814-mpx3*t14*t15*t22*9.814-mpy3*t5*t15*t20*9.814+mpy3*t6*t14*t20*9.814+mpy3*t5*t15*t21*9.814-mpy3*t6*t14*t21*9.814+mpy3*t5*t15*t22*9.814-mpy3*t6*t14*t22*9.814+mpy6*t8*t18*t28+a5*mass4*t5*t6*t20*9.814-a5*mass4*t5*t6*t21*9.814+a5*mass5*t5*t6*t20*9.814-a5*mass4*t5*t6*t22*9.814-a5*mass5*t5*t6*t21*9.814+a5*mass6*t5*t6*t20*9.814-a5*mass5*t5*t6*t22*9.814-a5*mass6*t5*t6*t21*9.814-a5*mass6*t5*t6*t22*9.814+a5*mass4*t14*t15*t20*9.814-a5*mass4*t14*t15*t21*9.814+a5*mass5*t14*t15*t20*9.814-a5*mass4*t14*t15*t22*9.814-a5*mass5*t14*t15*t21*9.814+a5*mass6*t14*t15*t20*9.814-a5*mass5*t14*t15*t22*9.814-a5*mass6*t14*t15*t21*9.814-a5*mass6*t14*t15*t22*9.814+a5i*mass4*t5*t15*t20*9.814-a5i*mass4*t6*t14*t20*9.814-a5i*mass4*t5*t15*t21*9.814+a5i*mass4*t6*t14*t21*9.814+a5i*mass5*t5*t15*t20*9.814-a5i*mass5*t6*t14*t20*9.814-a5i*mass4*t5*t15*t22*9.814+a5i*mass4*t6*t14*t22*9.814-a5i*mass5*t5*t15*t21*9.814+a5i*mass5*t6*t14*t21*9.814+a5i*mass6*t5*t15*t20*9.814-a5i*mass6*t6*t14*t20*9.814-a5i*mass5*t5*t15*t22*9.814+a5i*mass5*t6*t14*t22*9.814-a5i*mass6*t5*t15*t21*9.814+a5i*mass6*t6*t14*t21*9.814-a5i*mass6*t5*t15*t22*9.814+a5i*mass6*t6*t14*t22*9.814+mpx4*t5*t6*t7*t20*9.814-mpx4*t5*t6*t7*t21*9.814-mpx4*t5*t6*t7*t22*9.814-mpx4*t5*t15*t16*t20*9.814+mpx4*t6*t14*t16*t20*9.814+mpx4*t7*t14*t15*t20*9.814+mpx4*t5*t15*t16*t21*9.814-mpx4*t6*t14*t16*t21*9.814-mpx4*t7*t14*t15*t21*9.814+mpx4*t5*t15*t16*t22*9.814-mpx4*t6*t14*t16*t22*9.814-mpx4*t7*t14*t15*t22*9.814-d7*mass6*t5*t6*t16*t20*9.814-d7*mass6*t5*t7*t15*t20*9.814+d7*mass6*t6*t7*t14*t20*9.814+d7*mass6*t5*t6*t16*t21*9.814+d7*mass6*t5*t7*t15*t21*9.814-d7*mass6*t6*t7*t14*t21*9.814+d7*mass6*t5*t6*t16*t22*9.814+d7*mass6*t5*t7*t15*t22*9.814-d7*mass6*t6*t7*t14*t22*9.814-d7*mass6*t14*t15*t16*t20*9.814+d7*mass6*t14*t15*t16*t21*9.814+d7*mass6*t14*t15*t16*t22*9.814-mpy6*t4*t8*t10*t11*t18*9.814+mpy6*t5*t6*t9*t16*t20*9.814+mpy6*t5*t7*t9*t15*t20*9.814-mpy6*t6*t7*t9*t14*t20*9.814-mpy6*t5*t6*t9*t16*t21*9.814-mpy6*t5*t7*t9*t15*t21*9.814+mpy6*t6*t7*t9*t14*t21*9.814-mpy6*t5*t6*t9*t16*t22*9.814-mpy6*t5*t7*t9*t15*t22*9.814+mpy6*t6*t7*t9*t14*t22*9.814-mpy6*t3*t8*t13*t18*t19*9.814+mpy6*t9*t14*t15*t16*t20*9.814-mpy6*t9*t14*t15*t16*t21*9.814-mpy6*t9*t14*t15*t16*t22*9.814+a6*mass5*t5*t6*t7*t20*9.814-a6*mass5*t5*t6*t7*t21*9.814+a6*mass6*t5*t6*t7*t20*9.814-a6*mass5*t5*t6*t7*t22*9.814-a6*mass6*t5*t6*t7*t21*9.814-a6*mass6*t5*t6*t7*t22*9.814-a6*mass5*t5*t15*t16*t20*9.814+a6*mass5*t6*t14*t16*t20*9.814+a6*mass5*t7*t14*t15*t20*9.814+a6*mass5*t5*t15*t16*t21*9.814-a6*mass5*t6*t14*t16*t21*9.814-a6*mass5*t7*t14*t15*t21*9.814-a6*mass6*t5*t15*t16*t20*9.814+a6*mass6*t6*t14*t16*t20*9.814+a6*mass6*t7*t14*t15*t20*9.814+a6*mass5*t5*t15*t16*t22*9.814-a6*mass5*t6*t14*t16*t22*9.814-a6*mass5*t7*t14*t15*t22*9.814+a6*mass6*t5*t15*t16*t21*9.814-a6*mass6*t6*t14*t16*t21*9.814-a6*mass6*t7*t14*t15*t21*9.814+a6*mass6*t5*t15*t16*t22*9.814-a6*mass6*t6*t14*t16*t22*9.814-a6*mass6*t7*t14*t15*t22*9.814-mpy6*t5*t6*t7*t17*t18*t20*9.814+mpy6*t5*t6*t7*t17*t18*t21*9.814+mpy6*t5*t6*t7*t17*t18*t22*9.814+mpy6*t5*t15*t16*t17*t18*t20*9.814-mpy6*t6*t14*t16*t17*t18*t20*9.814-mpy6*t7*t14*t15*t17*t18*t20*9.814-mpy6*t5*t15*t16*t17*t18*t21*9.814+mpy6*t6*t14*t16*t17*t18*t21*9.814+mpy6*t7*t14*t15*t17*t18*t21*9.814-mpy6*t5*t15*t16*t17*t18*t22*9.814+mpy6*t6*t14*t16*t17*t18*t22*9.814+mpy6*t7*t14*t15*t17*t18*t22*9.814;
marcodesilva 0:46ef60040f6a 856 A0(3) = t29+t31+t32+t34+t35+t36+t37+t39+t41+t43+t44+t45+t47+t48+t49+t50+t52+t53+t54+t55+t58+t59+t60+t61+t65+t66+t67+t68+t71+t74+t77+t78+t80+t81+t83+t84+t86+t87+t94+t96+t98+t102+t104+t105+t107+t108+t113+t115+t116+t124+t126+t127+t128+t129+t133+t134+t135+t137+t138+t143+t144+t147+t148+t150+t151+t152+t153+t156+t157+t158+t159+t161+t162+t163+t164+t166+t168+t170+t171+t172+t174+t175+t179+t180+t181+t182+t183+t184+t185+t187+t188+t189+t190+t225+t226+t232+t233+t234+t237+t242+t248+t251+t252+t268+t271+t272+t273+t278+t281+t290+t291+t293+mpx2*t5*t26+mpx2*t5*t27+mpx2*t14*t24+mpx2*t14*t25+mpy2*t14*t26+mpy2*t14*t27+a4*mass3*t5*t26+a4*mass3*t5*t27+a4*mass4*t5*t26+a4*mass4*t5*t27+a4*mass5*t5*t26+a4*mass5*t5*t27+a4*mass6*t5*t26+a4*mass6*t5*t27+a4*mass3*t14*t24+a4*mass3*t14*t25+a4*mass4*t14*t24+a4*mass4*t14*t25+a4*mass5*t14*t24+a4*mass5*t14*t25+a4*mass6*t14*t24+a4*mass6*t14*t25-mpy2*t5*t12*t19*9.814-mpy2*t2*t3*t5*t10*9.814-mpy3*t5*t12*t15*t19*9.814-mpx2*t2*t5*t10*t12*t13*9.814-mpx3*t4*t6*t10*t11*t14*9.814-mpx3*t3*t6*t13*t14*t19*9.814-mpx4*t5*t12*t15*t16*t19*9.814-mpy3*t2*t3*t5*t10*t15*9.814-mpy2*t2*t10*t12*t13*t14*9.814-a5i*mass4*t6*t12*t14*t19*9.814-a5i*mass5*t6*t12*t14*t19*9.814-a5i*mass6*t6*t12*t14*t19*9.814-a4*mass3*t2*t5*t10*t12*t13*9.814-a4*mass4*t2*t5*t10*t12*t13*9.814-a4*mass5*t2*t5*t10*t12*t13*9.814-a4*mass6*t2*t5*t10*t12*t13*9.814-a5*mass4*t4*t6*t10*t11*t14*9.814-a5*mass5*t4*t6*t10*t11*t14*9.814-a5*mass6*t4*t6*t10*t11*t14*9.814-a5*mass4*t3*t6*t13*t14*t19*9.814-a5*mass5*t3*t6*t13*t14*t19*9.814-a5*mass6*t3*t6*t13*t14*t19*9.814-a6*mass5*t5*t12*t15*t16*t19*9.814-a6*mass6*t5*t12*t15*t16*t19*9.814-a5i*mass4*t2*t3*t6*t10*t14*9.814-a5i*mass4*t4*t5*t6*t10*t11*9.814-a5i*mass5*t2*t3*t6*t10*t14*9.814-a5i*mass5*t4*t5*t6*t10*t11*9.814-a5i*mass6*t2*t3*t6*t10*t14*9.814-a5i*mass6*t4*t5*t6*t10*t11*9.814-a5i*mass4*t3*t5*t6*t13*t19*9.814-a5i*mass5*t3*t5*t6*t13*t19*9.814-a5i*mass6*t3*t5*t6*t13*t19*9.814-a5i*mass4*t4*t10*t11*t14*t15*9.814-a5i*mass5*t4*t10*t11*t14*t15*9.814-a5i*mass6*t4*t10*t11*t14*t15*9.814-a5i*mass4*t3*t13*t14*t15*t19*9.814-a5i*mass5*t3*t13*t14*t15*t19*9.814-a5i*mass6*t3*t13*t14*t15*t19*9.814-d7*mass6*t5*t6*t12*t16*t19*9.814-d7*mass6*t5*t7*t12*t15*t19*9.814-d7*mass6*t12*t14*t15*t16*t19*9.814-mpx4*t2*t3*t5*t10*t15*t16*9.814-mpx4*t4*t6*t7*t10*t11*t14*9.814-mpx3*t2*t5*t10*t12*t13*t15*9.814-mpx4*t3*t6*t7*t13*t14*t19*9.814-mpy3*t2*t5*t6*t10*t12*t13*9.814-mpy3*t2*t10*t12*t13*t14*t15*9.814-mpy6*t6*t7*t9*t12*t14*t19*9.814-a6*mass5*t2*t3*t5*t10*t15*t16*9.814-a6*mass5*t4*t6*t7*t10*t11*t14*9.814-a6*mass6*t2*t3*t5*t10*t15*t16*9.814-a6*mass6*t4*t6*t7*t10*t11*t14*9.814-a5*mass4*t2*t5*t10*t12*t13*t15*9.814-a5*mass5*t2*t5*t10*t12*t13*t15*9.814-a5*mass6*t2*t5*t10*t12*t13*t15*9.814-a6*mass5*t3*t6*t7*t13*t14*t19*9.814-a6*mass6*t3*t6*t7*t13*t14*t19*9.814-d7*mass6*t2*t3*t5*t6*t10*t16*9.814-d7*mass6*t2*t3*t5*t7*t10*t15*9.814-d7*mass6*t2*t3*t10*t14*t15*t16*9.814-d7*mass6*t4*t5*t10*t11*t15*t16*9.814-d7*mass6*t3*t5*t13*t15*t16*t19*9.814-mpx4*t2*t5*t6*t10*t12*t13*t16*9.814-mpx4*t2*t5*t7*t10*t12*t13*t15*9.814-mpx4*t2*t10*t12*t13*t14*t15*t16*9.814-mpy6*t2*t3*t6*t7*t9*t10*t14*9.814-mpy6*t4*t5*t6*t7*t9*t10*t11*9.814-mpy6*t3*t5*t6*t7*t9*t13*t19*9.814-mpy6*t4*t6*t9*t10*t11*t14*t16*9.814-mpy6*t4*t7*t9*t10*t11*t14*t15*9.814-mpy6*t3*t6*t9*t13*t14*t16*t19*9.814-mpy6*t3*t7*t9*t13*t14*t15*t19*9.814-mpy6*t5*t6*t7*t12*t17*t18*t19*9.814-mpy6*t6*t12*t14*t16*t17*t18*t19*9.814-mpy6*t7*t12*t14*t15*t17*t18*t19*9.814-a6*mass5*t2*t5*t6*t10*t12*t13*t16*9.814-a6*mass5*t2*t5*t7*t10*t12*t13*t15*9.814-a6*mass6*t2*t5*t6*t10*t12*t13*t16*9.814-a6*mass6*t2*t5*t7*t10*t12*t13*t15*9.814-a6*mass5*t2*t10*t12*t13*t14*t15*t16*9.814-a6*mass6*t2*t10*t12*t13*t14*t15*t16*9.814-d7*mass6*t2*t5*t6*t7*t10*t12*t13*9.814-d7*mass6*t2*t6*t10*t12*t13*t14*t16*9.814-d7*mass6*t2*t7*t10*t12*t13*t14*t15*9.814-mpy6*t2*t3*t5*t6*t7*t10*t17*t18*9.814-mpy6*t2*t5*t9*t10*t12*t13*t15*t16*9.814-mpy6*t2*t3*t6*t10*t14*t16*t17*t18*9.814-mpy6*t2*t3*t7*t10*t14*t15*t17*t18*9.814-mpy6*t4*t5*t6*t10*t11*t16*t17*t18*9.814-mpy6*t4*t5*t7*t10*t11*t15*t17*t18*9.814-mpy6*t3*t5*t6*t13*t16*t17*t18*t19*9.814-mpy6*t3*t5*t7*t13*t15*t17*t18*t19*9.814-mpy6*t4*t10*t11*t14*t15*t16*t17*t18*9.814-mpy6*t3*t13*t14*t15*t16*t17*t18*t19*9.814-mpy6*t2*t6*t7*t10*t12*t13*t14*t17*t18*9.814;
marcodesilva 0:46ef60040f6a 857 A0(4) = t30+t38+t40+t42+t46+t51+t56+t57+t62+t63+t64+t69+t70+t72+t73+t75+t76+t79+t82+t85+t88+t89+t90+t91+t92+t93+t95+t97+t99+t100+t101+t103+t106+t109+t110+t111+t112+t114+t117+t118+t119+t120+t121+t122+t123+t125+t130+t131+t132+t136+t139+t140+t141+t142+t145+t146+t149+t154+t155+t160+t165+t167+t169+t173+t176+t177+t178+t186+t191+t192+t193+t194+t195+t196+t197+t198+t199+t200+t201+t202+t203+t204+t205+t206+t207+t208+t209+t210+t211+t212+t213+t214+t215+t216+t217+t218+t219+t220+t221+t222+t223+t224+t227+t228+t229+t230+t231+t235+t236+t238+t239+t240+t241+t243+t244+t245+t246+t247+t249+t250+t253+t254+t255+t256+t257+t258+t259+t260+t261+t262+t263+t265+t266+t267+t269+t270+t274+t275+t276+t277+t279+t280+t282+t283+t284+t285+t286+t287+t288+t289+t292+t295+t296+t297-mpx3*t5*t6*t12*t19*9.814-mpx3*t12*t14*t15*t19*9.814-mpy3*t6*t12*t14*t19*9.814-mpx3*t2*t3*t5*t6*t10*9.814-mpx3*t2*t3*t10*t14*t15*9.814-mpx3*t4*t5*t10*t11*t15*9.814-mpx3*t3*t5*t13*t15*t19*9.814-mpy3*t2*t3*t6*t10*t14*9.814-mpy3*t4*t5*t6*t10*t11*9.814-mpy3*t3*t5*t6*t13*t19*9.814-mpy3*t4*t10*t11*t14*t15*9.814-mpy3*t3*t13*t14*t15*t19*9.814-a5*mass4*t5*t6*t12*t19*9.814-a5*mass5*t5*t6*t12*t19*9.814-a5*mass6*t5*t6*t12*t19*9.814-a5*mass4*t12*t14*t15*t19*9.814-a5*mass5*t12*t14*t15*t19*9.814-a5*mass6*t12*t14*t15*t19*9.814-a5i*mass4*t5*t12*t15*t19*9.814-a5i*mass5*t5*t12*t15*t19*9.814-a5i*mass6*t5*t12*t15*t19*9.814-a5*mass4*t2*t3*t5*t6*t10*9.814-a5*mass5*t2*t3*t5*t6*t10*9.814-a5*mass6*t2*t3*t5*t6*t10*9.814-a5*mass4*t2*t3*t10*t14*t15*9.814-a5*mass4*t4*t5*t10*t11*t15*9.814-a5*mass5*t2*t3*t10*t14*t15*9.814-a5*mass5*t4*t5*t10*t11*t15*9.814-a5*mass6*t2*t3*t10*t14*t15*9.814-a5*mass6*t4*t5*t10*t11*t15*9.814-a5*mass4*t3*t5*t13*t15*t19*9.814-a5*mass5*t3*t5*t13*t15*t19*9.814-a5*mass6*t3*t5*t13*t15*t19*9.814-a5i*mass4*t2*t3*t5*t10*t15*9.814-a5i*mass5*t2*t3*t5*t10*t15*9.814-a5i*mass6*t2*t3*t5*t10*t15*9.814-mpx3*t2*t6*t10*t12*t13*t14*9.814-a5*mass4*t2*t6*t10*t12*t13*t14*9.814-a5*mass5*t2*t6*t10*t12*t13*t14*9.814-a5*mass6*t2*t6*t10*t12*t13*t14*9.814-a5i*mass4*t2*t5*t6*t10*t12*t13*9.814-a5i*mass5*t2*t5*t6*t10*t12*t13*9.814-a5i*mass6*t2*t5*t6*t10*t12*t13*9.814-a5i*mass4*t2*t10*t12*t13*t14*t15*9.814-a5i*mass5*t2*t10*t12*t13*t14*t15*9.814-a5i*mass6*t2*t10*t12*t13*t14*t15*9.814;
marcodesilva 0:46ef60040f6a 858 A0(5) = t57+t62+t63+t64+t100+t101+t103+t106+t112+t117+t118+t119+t120+t121+t122+t123+t125+t130+t136+t139+t140+t141+t142+t145+t146+t149+t154+t155+t160+t173+t176+t177+t178+t186+t191+t192+t193+t194+t195+t196+t197+t198+t199+t200+t201+t202+t203+t204+t205+t206+t207+t208+t209+t210+t211+t212+t213+t214+t215+t216+t217+t218+t219+t220+t221+t222+t223+t224+t227+t228+t229+t230+t231+t235+t236+t238+t239+t240+t241+t243+t244+t245+t246+t247+t249+t250+t253+t254+t255+t256+t257+t258+t259+t260+t261+t262+t263+t265+t266+t267+t269+t270+t274+t275+t276+t277+t279+t280+t282+t283+t284+t285+t286+t287+t288+t289+t292+t295+t296+t297;
marcodesilva 0:46ef60040f6a 859 A0(6) = mpy6*t18*(t17*t264*9.814-t8*t315);
marcodesilva 0:46ef60040f6a 860 A0(7) = -mpy6*(t18*(t7*(t307+t6*(t298-t303))+t16*t311)+t9*(t8*t264*9.814+t17*t315));
marcodesilva 0:46ef60040f6a 861
marcodesilva 0:46ef60040f6a 862 return A0;
marcodesilva 0:46ef60040f6a 863
marcodesilva 0:46ef60040f6a 864 }
marcodesilva 0:46ef60040f6a 865
marcodesilva 0:46ef60040f6a 866 Vector6f ARAP180_WITH_ROVER::wrenchGr(Vector8f q, Vector3f droneOrientation){
marcodesilva 0:46ef60040f6a 867
marcodesilva 0:46ef60040f6a 868 Vector6f A0 = Vector6f::Zero();
marcodesilva 0:46ef60040f6a 869 volatile float q1 = 0.0; //q[0]; Per evitare che il drone si sposti nel calcolo della gravità rispetto alla terna drone fissa sul tubo
marcodesilva 0:46ef60040f6a 870 volatile float q2 = q[1];
marcodesilva 0:46ef60040f6a 871 volatile float q3 = q[2];
marcodesilva 0:46ef60040f6a 872 volatile float q4 = q[3];
marcodesilva 0:46ef60040f6a 873 volatile float q5 = q[4];
marcodesilva 0:46ef60040f6a 874 volatile float q6 = q[5];
marcodesilva 0:46ef60040f6a 875 volatile float q7 = q[6];
marcodesilva 0:46ef60040f6a 876 volatile float q8 = q[7];
marcodesilva 0:46ef60040f6a 877
marcodesilva 0:46ef60040f6a 878 float r_b_d = -droneOrientation[0];
marcodesilva 0:46ef60040f6a 879 float p_b_d = -droneOrientation[1];
marcodesilva 0:46ef60040f6a 880
marcodesilva 0:46ef60040f6a 881 float t2 = cos(p_b_d);
marcodesilva 0:46ef60040f6a 882 float t3 = cos(q2);
marcodesilva 0:46ef60040f6a 883 float t4 = cos(q3);
marcodesilva 0:46ef60040f6a 884 float t5 = cos(q4);
marcodesilva 0:46ef60040f6a 885 float t6 = cos(q5);
marcodesilva 0:46ef60040f6a 886 float t7 = cos(q6);
marcodesilva 0:46ef60040f6a 887 float t8 = cos(q7);
marcodesilva 0:46ef60040f6a 888 float t9 = cos(q8);
marcodesilva 0:46ef60040f6a 889 float t10 = cos(r_b_d);
marcodesilva 0:46ef60040f6a 890 float t11 = sin(p_b_d);
marcodesilva 0:46ef60040f6a 891 float t12 = sin(q2);
marcodesilva 0:46ef60040f6a 892 float t13 = sin(q3);
marcodesilva 0:46ef60040f6a 893 float t14 = sin(q4);
marcodesilva 0:46ef60040f6a 894 float t15 = sin(q5);
marcodesilva 0:46ef60040f6a 895 float t16 = sin(q6);
marcodesilva 0:46ef60040f6a 896 float t17 = sin(q7);
marcodesilva 0:46ef60040f6a 897 float t18 = sin(q8);
marcodesilva 0:46ef60040f6a 898 float t19 = sin(r_b_d);
marcodesilva 0:46ef60040f6a 899 float t20 = mass1+mass2+mass3+mass4+mass5+mass6+massr;
marcodesilva 0:46ef60040f6a 900 A0(0) = t10*t11*t20*9.814;
marcodesilva 0:46ef60040f6a 901 A0(1) = t19*t20*(-9.814);
marcodesilva 0:46ef60040f6a 902 A0(2) = t2*t10*t20*9.814;
marcodesilva 0:46ef60040f6a 903 A0(3) = mpxr*t12*t19*9.814+mpy1*t3*t19*9.814+mpyr*t3*t19*9.814-mpx2*t3*t5*t19*9.814-mpx1*t12*t13*t19*9.814+mpxr*t2*t3*t10*9.814-mpy1*t2*t10*t12*9.814-mpy2*t3*t14*t19*9.814-mpyr*t2*t10*t12*9.814+mass1*t12*t19*x_0_r2*9.814+mass2*t12*t19*x_0_r2*9.814+mass3*t12*t19*x_0_r2*9.814+mass4*t12*t19*x_0_r2*9.814+mass5*t12*t19*x_0_r2*9.814+mass6*t12*t19*x_0_r2*9.814+mass1*t3*t19*y_0_r2*9.814+mass2*t3*t19*y_0_r2*9.814+mass3*t3*t19*y_0_r2*9.814+mass4*t3*t19*y_0_r2*9.814+mass5*t3*t19*y_0_r2*9.814+mass6*t3*t19*y_0_r2*9.814-a4*mass3*t3*t5*t19*9.814-a4*mass4*t3*t5*t19*9.814-a4*mass5*t3*t5*t19*9.814-a4*mass6*t3*t5*t19*9.814-a3*mass2*t12*t13*t19*9.814-a3*mass3*t12*t13*t19*9.814-a3*mass4*t12*t13*t19*9.814-a3*mass5*t12*t13*t19*9.814-a3*mass6*t12*t13*t19*9.814-mpx1*t2*t3*t10*t13*9.814+mpx2*t2*t5*t10*t12*9.814-mpx3*t3*t5*t15*t19*9.814+mpx3*t3*t6*t14*t19*9.814-mpx2*t12*t13*t14*t19*9.814-mpy3*t3*t5*t6*t19*9.814+mpy2*t2*t10*t12*t14*9.814+mpy2*t5*t12*t13*t19*9.814-mpy3*t3*t14*t15*t19*9.814+mass1*t2*t3*t10*x_0_r2*9.814+mass2*t2*t3*t10*x_0_r2*9.814+mass3*t2*t3*t10*x_0_r2*9.814+mass4*t2*t3*t10*x_0_r2*9.814+mass5*t2*t3*t10*x_0_r2*9.814+mass6*t2*t3*t10*x_0_r2*9.814-mass1*t2*t10*t12*y_0_r2*9.814-mass2*t2*t10*t12*y_0_r2*9.814-mass3*t2*t10*t12*y_0_r2*9.814-mass4*t2*t10*t12*y_0_r2*9.814-mass5*t2*t10*t12*y_0_r2*9.814-mass6*t2*t10*t12*y_0_r2*9.814-mpx2*t2*t3*t10*t13*t14*9.814+mpx3*t2*t5*t10*t12*t15*9.814-mpx3*t2*t6*t10*t12*t14*9.814-mpx4*t3*t5*t6*t16*t19*9.814-mpx4*t3*t5*t7*t15*t19*9.814+mpx4*t3*t6*t7*t14*t19*9.814-mpx3*t5*t6*t12*t13*t19*9.814-mpx4*t3*t14*t15*t16*t19*9.814-mpx3*t12*t13*t14*t15*t19*9.814+mpy2*t2*t3*t5*t10*t13*9.814+mpy3*t2*t5*t6*t10*t12*9.814+mpy3*t2*t10*t12*t14*t15*9.814+mpy3*t5*t12*t13*t15*t19*9.814-mpy3*t6*t12*t13*t14*t19*9.814-mpy6*t4*t8*t12*t18*t19*9.814-a3*mass2*t2*t3*t10*t13*9.814-a3*mass3*t2*t3*t10*t13*9.814-a3*mass4*t2*t3*t10*t13*9.814-a3*mass5*t2*t3*t10*t13*9.814+a4*mass3*t2*t5*t10*t12*9.814-a3*mass6*t2*t3*t10*t13*9.814+a4*mass4*t2*t5*t10*t12*9.814+a4*mass5*t2*t5*t10*t12*9.814+a4*mass6*t2*t5*t10*t12*9.814-a5*mass4*t3*t5*t15*t19*9.814+a5*mass4*t3*t6*t14*t19*9.814-a5*mass5*t3*t5*t15*t19*9.814+a5*mass5*t3*t6*t14*t19*9.814-a5*mass6*t3*t5*t15*t19*9.814+a5*mass6*t3*t6*t14*t19*9.814-a4*mass3*t12*t13*t14*t19*9.814-a4*mass4*t12*t13*t14*t19*9.814-a4*mass5*t12*t13*t14*t19*9.814-a4*mass6*t12*t13*t14*t19*9.814+a5i*mass4*t3*t5*t6*t19*9.814+a5i*mass5*t3*t5*t6*t19*9.814+a5i*mass6*t3*t5*t6*t19*9.814+a5i*mass4*t3*t14*t15*t19*9.814+a5i*mass5*t3*t14*t15*t19*9.814+a5i*mass6*t3*t14*t15*t19*9.814-a4*mass3*t2*t3*t10*t13*t14*9.814-a4*mass4*t2*t3*t10*t13*t14*9.814-a4*mass5*t2*t3*t10*t13*t14*9.814-a4*mass6*t2*t3*t10*t13*t14*9.814+a5*mass4*t2*t5*t10*t12*t15*9.814-a5*mass4*t2*t6*t10*t12*t14*9.814+a5*mass5*t2*t5*t10*t12*t15*9.814-a5*mass5*t2*t6*t10*t12*t14*9.814+a5*mass6*t2*t5*t10*t12*t15*9.814-a5*mass6*t2*t6*t10*t12*t14*9.814-a6*mass5*t3*t5*t6*t16*t19*9.814-a6*mass5*t3*t5*t7*t15*t19*9.814+a6*mass5*t3*t6*t7*t14*t19*9.814-a6*mass6*t3*t5*t6*t16*t19*9.814-a6*mass6*t3*t5*t7*t15*t19*9.814+a6*mass6*t3*t6*t7*t14*t19*9.814-a5*mass4*t5*t6*t12*t13*t19*9.814-a5*mass5*t5*t6*t12*t13*t19*9.814-a5*mass6*t5*t6*t12*t13*t19*9.814-a6*mass5*t3*t14*t15*t16*t19*9.814-a6*mass6*t3*t14*t15*t16*t19*9.814-a5*mass4*t12*t13*t14*t15*t19*9.814-a5*mass5*t12*t13*t14*t15*t19*9.814-a5*mass6*t12*t13*t14*t15*t19*9.814-a5i*mass4*t2*t5*t6*t10*t12*9.814-a5i*mass5*t2*t5*t6*t10*t12*9.814-a5i*mass6*t2*t5*t6*t10*t12*9.814-a5i*mass4*t2*t10*t12*t14*t15*9.814-a5i*mass5*t2*t10*t12*t14*t15*9.814-a5i*mass6*t2*t10*t12*t14*t15*9.814-a5i*mass4*t5*t12*t13*t15*t19*9.814+a5i*mass4*t6*t12*t13*t14*t19*9.814-a5i*mass5*t5*t12*t13*t15*t19*9.814+a5i*mass5*t6*t12*t13*t14*t19*9.814-a5i*mass6*t5*t12*t13*t15*t19*9.814+a5i*mass6*t6*t12*t13*t14*t19*9.814-d7*mass6*t3*t5*t6*t7*t19*9.814+d7*mass6*t3*t5*t15*t16*t19*9.814-d7*mass6*t3*t6*t14*t16*t19*9.814-d7*mass6*t3*t7*t14*t15*t19*9.814-mpx3*t2*t3*t5*t6*t10*t13*9.814+mpx4*t2*t5*t6*t10*t12*t16*9.814+mpx4*t2*t5*t7*t10*t12*t15*9.814-mpx4*t2*t6*t7*t10*t12*t14*9.814-mpx3*t2*t3*t10*t13*t14*t15*9.814-mpx4*t5*t6*t7*t12*t13*t19*9.814+mpx4*t2*t10*t12*t14*t15*t16*9.814+mpx4*t5*t12*t13*t15*t16*t19*9.814-mpx4*t6*t12*t13*t14*t16*t19*9.814-mpx4*t7*t12*t13*t14*t15*t19*9.814+mpy3*t2*t3*t5*t10*t13*t15*9.814-mpy3*t2*t3*t6*t10*t13*t14*9.814-mpy6*t2*t3*t4*t8*t10*t18*9.814+mpy6*t3*t5*t6*t7*t9*t19*9.814-mpy6*t3*t5*t9*t15*t16*t19*9.814+mpy6*t3*t6*t9*t14*t16*t19*9.814+mpy6*t3*t7*t9*t14*t15*t19*9.814-a5*mass4*t2*t3*t5*t6*t10*t13*9.814-a5*mass5*t2*t3*t5*t6*t10*t13*9.814-a5*mass6*t2*t3*t5*t6*t10*t13*9.814+a6*mass5*t2*t5*t6*t10*t12*t16*9.814+a6*mass5*t2*t5*t7*t10*t12*t15*9.814-a6*mass5*t2*t6*t7*t10*t12*t14*9.814+a6*mass6*t2*t5*t6*t10*t12*t16*9.814+a6*mass6*t2*t5*t7*t10*t12*t15*9.814-a6*mass6*t2*t6*t7*t10*t12*t14*9.814-a5*mass4*t2*t3*t10*t13*t14*t15*9.814-a5*mass5*t2*t3*t10*t13*t14*t15*9.814-a5*mass6*t2*t3*t10*t13*t14*t15*9.814-a6*mass5*t5*t6*t7*t12*t13*t19*9.814-a6*mass6*t5*t6*t7*t12*t13*t19*9.814+a6*mass5*t2*t10*t12*t14*t15*t16*9.814+a6*mass6*t2*t10*t12*t14*t15*t16*9.814+a6*mass5*t5*t12*t13*t15*t16*t19*9.814-a6*mass5*t6*t12*t13*t14*t16*t19*9.814-a6*mass5*t7*t12*t13*t14*t15*t19*9.814+a6*mass6*t5*t12*t13*t15*t16*t19*9.814-a6*mass6*t6*t12*t13*t14*t16*t19*9.814-a6*mass6*t7*t12*t13*t14*t15*t19*9.814-a5i*mass4*t2*t3*t5*t10*t13*t15*9.814+a5i*mass4*t2*t3*t6*t10*t13*t14*9.814-a5i*mass5*t2*t3*t5*t10*t13*t15*9.814+a5i*mass5*t2*t3*t6*t10*t13*t14*9.814-a5i*mass6*t2*t3*t5*t10*t13*t15*9.814+a5i*mass6*t2*t3*t6*t10*t13*t14*9.814+d7*mass6*t2*t5*t6*t7*t10*t12*9.814-d7*mass6*t2*t5*t10*t12*t15*t16*9.814+d7*mass6*t2*t6*t10*t12*t14*t16*9.814+d7*mass6*t2*t7*t10*t12*t14*t15*9.814+d7*mass6*t5*t6*t12*t13*t16*t19*9.814+d7*mass6*t5*t7*t12*t13*t15*t19*9.814-d7*mass6*t6*t7*t12*t13*t14*t19*9.814+d7*mass6*t12*t13*t14*t15*t16*t19*9.814-mpx4*t2*t3*t5*t6*t7*t10*t13*9.814+mpx4*t2*t3*t5*t10*t13*t15*t16*9.814-mpx4*t2*t3*t6*t10*t13*t14*t16*9.814-mpx4*t2*t3*t7*t10*t13*t14*t15*9.814-mpy6*t2*t5*t6*t7*t9*t10*t12*9.814+mpy6*t2*t5*t9*t10*t12*t15*t16*9.814-mpy6*t2*t6*t9*t10*t12*t14*t16*9.814-mpy6*t2*t7*t9*t10*t12*t14*t15*9.814-mpy6*t5*t6*t9*t12*t13*t16*t19*9.814-mpy6*t5*t7*t9*t12*t13*t15*t19*9.814+mpy6*t6*t7*t9*t12*t13*t14*t19*9.814+mpy6*t3*t5*t6*t16*t17*t18*t19*9.814+mpy6*t3*t5*t7*t15*t17*t18*t19*9.814-mpy6*t3*t6*t7*t14*t17*t18*t19*9.814-mpy6*t9*t12*t13*t14*t15*t16*t19*9.814+mpy6*t3*t14*t15*t16*t17*t18*t19*9.814-a6*mass5*t2*t3*t5*t6*t7*t10*t13*9.814-a6*mass6*t2*t3*t5*t6*t7*t10*t13*9.814+a6*mass5*t2*t3*t5*t10*t13*t15*t16*9.814-a6*mass5*t2*t3*t6*t10*t13*t14*t16*9.814-a6*mass5*t2*t3*t7*t10*t13*t14*t15*9.814+a6*mass6*t2*t3*t5*t10*t13*t15*t16*9.814-a6*mass6*t2*t3*t6*t10*t13*t14*t16*9.814-a6*mass6*t2*t3*t7*t10*t13*t14*t15*9.814+d7*mass6*t2*t3*t5*t6*t10*t13*t16*9.814+d7*mass6*t2*t3*t5*t7*t10*t13*t15*9.814-d7*mass6*t2*t3*t6*t7*t10*t13*t14*9.814+d7*mass6*t2*t3*t10*t13*t14*t15*t16*9.814-mpy6*t2*t3*t5*t6*t9*t10*t13*t16*9.814-mpy6*t2*t3*t5*t7*t9*t10*t13*t15*9.814+mpy6*t2*t3*t6*t7*t9*t10*t13*t14*9.814-mpy6*t2*t3*t9*t10*t13*t14*t15*t16*9.814-mpy6*t2*t5*t6*t10*t12*t16*t17*t18*9.814-mpy6*t2*t5*t7*t10*t12*t15*t17*t18*9.814+mpy6*t2*t6*t7*t10*t12*t14*t17*t18*9.814+mpy6*t5*t6*t7*t12*t13*t17*t18*t19*9.814-mpy6*t2*t10*t12*t14*t15*t16*t17*t18*9.814-mpy6*t5*t12*t13*t15*t16*t17*t18*t19*9.814+mpy6*t6*t12*t13*t14*t16*t17*t18*t19*9.814+mpy6*t7*t12*t13*t14*t15*t17*t18*t19*9.814+mpy6*t2*t3*t5*t6*t7*t10*t13*t17*t18*9.814-mpy6*t2*t3*t5*t10*t13*t15*t16*t17*t18*9.814+mpy6*t2*t3*t6*t10*t13*t14*t16*t17*t18*9.814+mpy6*t2*t3*t7*t10*t13*t14*t15*t17*t18*9.814;
marcodesilva 0:46ef60040f6a 904 A0(4) = t10*(mpzr*t2+mass1*q1*t2+mass2*q1*t2+mass3*q1*t2+mass4*q1*t2+mass5*q1*t2+mass6*q1*t2+massr*q1*t2+mpx1*t2*t4-mpxr*t11*t12-mpy1*t3*t11-mpyr*t3*t11+mass1*t2*z_0_r2+mass2*t2*z_0_r2+mass3*t2*z_0_r2+mass4*t2*z_0_r2+mass5*t2*z_0_r2+mass6*t2*z_0_r2+a3*mass2*t2*t4+a3*mass3*t2*t4+a3*mass4*t2*t4+a3*mass5*t2*t4+a3*mass6*t2*t4+mpx2*t3*t5*t11+mpx2*t2*t4*t14+mpx1*t11*t12*t13-mpy2*t2*t4*t5+mpy2*t3*t11*t14-mass1*t11*t12*x_0_r2-mass2*t11*t12*x_0_r2-mass3*t11*t12*x_0_r2-mass4*t11*t12*x_0_r2-mass5*t11*t12*x_0_r2-mass6*t11*t12*x_0_r2-mass1*t3*t11*y_0_r2-mass2*t3*t11*y_0_r2-mass3*t3*t11*y_0_r2-mass4*t3*t11*y_0_r2-mass5*t3*t11*y_0_r2-mass6*t3*t11*y_0_r2+a4*mass3*t3*t5*t11+a4*mass3*t2*t4*t14+a4*mass4*t3*t5*t11+a4*mass4*t2*t4*t14+a4*mass5*t3*t5*t11+a4*mass5*t2*t4*t14+a4*mass6*t3*t5*t11+a4*mass6*t2*t4*t14+a3*mass2*t11*t12*t13+a3*mass3*t11*t12*t13+a3*mass4*t11*t12*t13+a3*mass5*t11*t12*t13+a3*mass6*t11*t12*t13+mpx3*t2*t4*t5*t6+mpx3*t3*t5*t11*t15-mpx3*t3*t6*t11*t14+mpx3*t2*t4*t14*t15+mpx2*t11*t12*t13*t14+mpy3*t3*t5*t6*t11-mpy3*t2*t4*t5*t15+mpy3*t2*t4*t6*t14-mpy2*t5*t11*t12*t13+mpy3*t3*t11*t14*t15-mpy6*t2*t8*t13*t18+mpx4*t2*t4*t5*t6*t7+mpx4*t3*t5*t6*t11*t16+mpx4*t3*t5*t7*t11*t15-mpx4*t3*t6*t7*t11*t14-mpx4*t2*t4*t5*t15*t16+mpx4*t2*t4*t6*t14*t16+mpx4*t2*t4*t7*t14*t15+mpx3*t5*t6*t11*t12*t13+mpx4*t3*t11*t14*t15*t16+mpx3*t11*t12*t13*t14*t15-mpy3*t5*t11*t12*t13*t15+mpy3*t6*t11*t12*t13*t14+mpy6*t4*t8*t11*t12*t18+a5*mass4*t2*t4*t5*t6+a5*mass5*t2*t4*t5*t6+a5*mass6*t2*t4*t5*t6+a5*mass4*t3*t5*t11*t15-a5*mass4*t3*t6*t11*t14+a5*mass4*t2*t4*t14*t15+a5*mass5*t3*t5*t11*t15-a5*mass5*t3*t6*t11*t14+a5*mass5*t2*t4*t14*t15+a5*mass6*t3*t5*t11*t15-a5*mass6*t3*t6*t11*t14+a5*mass6*t2*t4*t14*t15+a4*mass3*t11*t12*t13*t14+a4*mass4*t11*t12*t13*t14+a4*mass5*t11*t12*t13*t14+a4*mass6*t11*t12*t13*t14-a5i*mass4*t3*t5*t6*t11+a5i*mass4*t2*t4*t5*t15-a5i*mass4*t2*t4*t6*t14-a5i*mass5*t3*t5*t6*t11+a5i*mass5*t2*t4*t5*t15-a5i*mass5*t2*t4*t6*t14-a5i*mass6*t3*t5*t6*t11+a5i*mass6*t2*t4*t5*t15-a5i*mass6*t2*t4*t6*t14-a5i*mass4*t3*t11*t14*t15-a5i*mass5*t3*t11*t14*t15-a5i*mass6*t3*t11*t14*t15+a6*mass5*t2*t4*t5*t6*t7+a6*mass6*t2*t4*t5*t6*t7+a6*mass5*t3*t5*t6*t11*t16+a6*mass5*t3*t5*t7*t11*t15-a6*mass5*t3*t6*t7*t11*t14-a6*mass5*t2*t4*t5*t15*t16+a6*mass5*t2*t4*t6*t14*t16+a6*mass5*t2*t4*t7*t14*t15+a6*mass6*t3*t5*t6*t11*t16+a6*mass6*t3*t5*t7*t11*t15-a6*mass6*t3*t6*t7*t11*t14-a6*mass6*t2*t4*t5*t15*t16+a6*mass6*t2*t4*t6*t14*t16+a6*mass6*t2*t4*t7*t14*t15+a5*mass4*t5*t6*t11*t12*t13+a5*mass5*t5*t6*t11*t12*t13+a5*mass6*t5*t6*t11*t12*t13+a6*mass5*t3*t11*t14*t15*t16+a6*mass6*t3*t11*t14*t15*t16+a5*mass4*t11*t12*t13*t14*t15+a5*mass5*t11*t12*t13*t14*t15+a5*mass6*t11*t12*t13*t14*t15+a5i*mass4*t5*t11*t12*t13*t15-a5i*mass4*t6*t11*t12*t13*t14+a5i*mass5*t5*t11*t12*t13*t15-a5i*mass5*t6*t11*t12*t13*t14+a5i*mass6*t5*t11*t12*t13*t15-a5i*mass6*t6*t11*t12*t13*t14+d7*mass6*t3*t5*t6*t7*t11-d7*mass6*t2*t4*t5*t6*t16-d7*mass6*t2*t4*t5*t7*t15+d7*mass6*t2*t4*t6*t7*t14-d7*mass6*t3*t5*t11*t15*t16+d7*mass6*t3*t6*t11*t14*t16+d7*mass6*t3*t7*t11*t14*t15-d7*mass6*t2*t4*t14*t15*t16+mpx4*t5*t6*t7*t11*t12*t13-mpx4*t5*t11*t12*t13*t15*t16+mpx4*t6*t11*t12*t13*t14*t16+mpx4*t7*t11*t12*t13*t14*t15-mpy6*t3*t5*t6*t7*t9*t11+mpy6*t2*t4*t5*t6*t9*t16+mpy6*t2*t4*t5*t7*t9*t15-mpy6*t2*t4*t6*t7*t9*t14+mpy6*t3*t5*t9*t11*t15*t16-mpy6*t3*t6*t9*t11*t14*t16-mpy6*t3*t7*t9*t11*t14*t15+mpy6*t2*t4*t9*t14*t15*t16+a6*mass5*t5*t6*t7*t11*t12*t13+a6*mass6*t5*t6*t7*t11*t12*t13-a6*mass5*t5*t11*t12*t13*t15*t16+a6*mass5*t6*t11*t12*t13*t14*t16+a6*mass5*t7*t11*t12*t13*t14*t15-a6*mass6*t5*t11*t12*t13*t15*t16+a6*mass6*t6*t11*t12*t13*t14*t16+a6*mass6*t7*t11*t12*t13*t14*t15-d7*mass6*t5*t6*t11*t12*t13*t16-d7*mass6*t5*t7*t11*t12*t13*t15+d7*mass6*t6*t7*t11*t12*t13*t14-d7*mass6*t11*t12*t13*t14*t15*t16-mpy6*t2*t4*t5*t6*t7*t17*t18+mpy6*t5*t6*t9*t11*t12*t13*t16+mpy6*t5*t7*t9*t11*t12*t13*t15-mpy6*t6*t7*t9*t11*t12*t13*t14-mpy6*t3*t5*t6*t11*t16*t17*t18-mpy6*t3*t5*t7*t11*t15*t17*t18+mpy6*t3*t6*t7*t11*t14*t17*t18+mpy6*t2*t4*t5*t15*t16*t17*t18-mpy6*t2*t4*t6*t14*t16*t17*t18-mpy6*t2*t4*t7*t14*t15*t17*t18+mpy6*t9*t11*t12*t13*t14*t15*t16-mpy6*t3*t11*t14*t15*t16*t17*t18-mpy6*t5*t6*t7*t11*t12*t13*t17*t18+mpy6*t5*t11*t12*t13*t15*t16*t17*t18-mpy6*t6*t11*t12*t13*t14*t16*t17*t18-mpy6*t7*t11*t12*t13*t14*t15*t17*t18)*(-9.814);
marcodesilva 0:46ef60040f6a 905 A0(5) = mpzr*t19*(-9.814)-mass1*q1*t19*9.814-mass2*q1*t19*9.814-mass3*q1*t19*9.814-mass4*q1*t19*9.814-mass5*q1*t19*9.814-mass6*q1*t19*9.814-massr*q1*t19*9.814-mpx1*t4*t19*9.814-mass1*t19*z_0_r2*9.814-mass2*t19*z_0_r2*9.814-mass3*t19*z_0_r2*9.814-mass4*t19*z_0_r2*9.814-mass5*t19*z_0_r2*9.814-mass6*t19*z_0_r2*9.814-a3*mass2*t4*t19*9.814-a3*mass3*t4*t19*9.814-a3*mass4*t4*t19*9.814-a3*mass5*t4*t19*9.814-a3*mass6*t4*t19*9.814-mpx2*t4*t14*t19*9.814-mpxr*t3*t10*t11*9.814+mpy2*t4*t5*t19*9.814+mpy1*t10*t11*t12*9.814+mpyr*t10*t11*t12*9.814-a4*mass3*t4*t14*t19*9.814-a4*mass4*t4*t14*t19*9.814-a4*mass5*t4*t14*t19*9.814-a4*mass6*t4*t14*t19*9.814-mpx3*t4*t5*t6*t19*9.814+mpx1*t3*t10*t11*t13*9.814-mpx2*t5*t10*t11*t12*9.814-mpx3*t4*t14*t15*t19*9.814+mpy3*t4*t5*t15*t19*9.814-mpy3*t4*t6*t14*t19*9.814-mpy2*t10*t11*t12*t14*9.814+mpy6*t8*t13*t18*t19*9.814-mass1*t3*t10*t11*x_0_r2*9.814-mass2*t3*t10*t11*x_0_r2*9.814-mass3*t3*t10*t11*x_0_r2*9.814-mass4*t3*t10*t11*x_0_r2*9.814-mass5*t3*t10*t11*x_0_r2*9.814-mass6*t3*t10*t11*x_0_r2*9.814+mass1*t10*t11*t12*y_0_r2*9.814+mass2*t10*t11*t12*y_0_r2*9.814+mass3*t10*t11*t12*y_0_r2*9.814+mass4*t10*t11*t12*y_0_r2*9.814+mass5*t10*t11*t12*y_0_r2*9.814+mass6*t10*t11*t12*y_0_r2*9.814-mpx4*t4*t5*t6*t7*t19*9.814+mpx2*t3*t10*t11*t13*t14*9.814-mpx3*t5*t10*t11*t12*t15*9.814+mpx3*t6*t10*t11*t12*t14*9.814+mpx4*t4*t5*t15*t16*t19*9.814-mpx4*t4*t6*t14*t16*t19*9.814-mpx4*t4*t7*t14*t15*t19*9.814-mpy2*t3*t5*t10*t11*t13*9.814-mpy3*t5*t6*t10*t11*t12*9.814-mpy3*t10*t11*t12*t14*t15*9.814+a3*mass2*t3*t10*t11*t13*9.814+a3*mass3*t3*t10*t11*t13*9.814-a5*mass4*t4*t5*t6*t19*9.814+a3*mass4*t3*t10*t11*t13*9.814-a5*mass5*t4*t5*t6*t19*9.814+a3*mass5*t3*t10*t11*t13*9.814-a4*mass3*t5*t10*t11*t12*9.814-a5*mass6*t4*t5*t6*t19*9.814+a3*mass6*t3*t10*t11*t13*9.814-a4*mass4*t5*t10*t11*t12*9.814-a4*mass5*t5*t10*t11*t12*9.814-a4*mass6*t5*t10*t11*t12*9.814-a5*mass4*t4*t14*t15*t19*9.814-a5*mass5*t4*t14*t15*t19*9.814-a5*mass6*t4*t14*t15*t19*9.814-a5i*mass4*t4*t5*t15*t19*9.814+a5i*mass4*t4*t6*t14*t19*9.814-a5i*mass5*t4*t5*t15*t19*9.814+a5i*mass5*t4*t6*t14*t19*9.814-a5i*mass6*t4*t5*t15*t19*9.814+a5i*mass6*t4*t6*t14*t19*9.814-a6*mass5*t4*t5*t6*t7*t19*9.814-a6*mass6*t4*t5*t6*t7*t19*9.814+a4*mass3*t3*t10*t11*t13*t14*9.814+a4*mass4*t3*t10*t11*t13*t14*9.814+a4*mass5*t3*t10*t11*t13*t14*9.814+a4*mass6*t3*t10*t11*t13*t14*9.814-a5*mass4*t5*t10*t11*t12*t15*9.814+a5*mass4*t6*t10*t11*t12*t14*9.814-a5*mass5*t5*t10*t11*t12*t15*9.814+a5*mass5*t6*t10*t11*t12*t14*9.814-a5*mass6*t5*t10*t11*t12*t15*9.814+a5*mass6*t6*t10*t11*t12*t14*9.814+a6*mass5*t4*t5*t15*t16*t19*9.814-a6*mass5*t4*t6*t14*t16*t19*9.814-a6*mass5*t4*t7*t14*t15*t19*9.814+a6*mass6*t4*t5*t15*t16*t19*9.814-a6*mass6*t4*t6*t14*t16*t19*9.814-a6*mass6*t4*t7*t14*t15*t19*9.814+a5i*mass4*t5*t6*t10*t11*t12*9.814+a5i*mass5*t5*t6*t10*t11*t12*9.814+a5i*mass6*t5*t6*t10*t11*t12*9.814+a5i*mass4*t10*t11*t12*t14*t15*9.814+a5i*mass5*t10*t11*t12*t14*t15*9.814+a5i*mass6*t10*t11*t12*t14*t15*9.814+d7*mass6*t4*t5*t6*t16*t19*9.814+d7*mass6*t4*t5*t7*t15*t19*9.814-d7*mass6*t4*t6*t7*t14*t19*9.814+d7*mass6*t4*t14*t15*t16*t19*9.814+mpx3*t3*t5*t6*t10*t11*t13*9.814-mpx4*t5*t6*t10*t11*t12*t16*9.814-mpx4*t5*t7*t10*t11*t12*t15*9.814+mpx4*t6*t7*t10*t11*t12*t14*9.814+mpx3*t3*t10*t11*t13*t14*t15*9.814-mpx4*t10*t11*t12*t14*t15*t16*9.814-mpy3*t3*t5*t10*t11*t13*t15*9.814+mpy3*t3*t6*t10*t11*t13*t14*9.814+mpy6*t3*t4*t8*t10*t11*t18*9.814-mpy6*t4*t5*t6*t9*t16*t19*9.814-mpy6*t4*t5*t7*t9*t15*t19*9.814+mpy6*t4*t6*t7*t9*t14*t19*9.814-mpy6*t4*t9*t14*t15*t16*t19*9.814+a5*mass4*t3*t5*t6*t10*t11*t13*9.814+a5*mass5*t3*t5*t6*t10*t11*t13*9.814+a5*mass6*t3*t5*t6*t10*t11*t13*9.814-a6*mass5*t5*t6*t10*t11*t12*t16*9.814-a6*mass5*t5*t7*t10*t11*t12*t15*9.814+a6*mass5*t6*t7*t10*t11*t12*t14*9.814-a6*mass6*t5*t6*t10*t11*t12*t16*9.814-a6*mass6*t5*t7*t10*t11*t12*t15*9.814+a6*mass6*t6*t7*t10*t11*t12*t14*9.814+a5*mass4*t3*t10*t11*t13*t14*t15*9.814+a5*mass5*t3*t10*t11*t13*t14*t15*9.814+a5*mass6*t3*t10*t11*t13*t14*t15*9.814-a6*mass5*t10*t11*t12*t14*t15*t16*9.814-a6*mass6*t10*t11*t12*t14*t15*t16*9.814+a5i*mass4*t3*t5*t10*t11*t13*t15*9.814-a5i*mass4*t3*t6*t10*t11*t13*t14*9.814+a5i*mass5*t3*t5*t10*t11*t13*t15*9.814-a5i*mass5*t3*t6*t10*t11*t13*t14*9.814+a5i*mass6*t3*t5*t10*t11*t13*t15*9.814-a5i*mass6*t3*t6*t10*t11*t13*t14*9.814-d7*mass6*t5*t6*t7*t10*t11*t12*9.814+d7*mass6*t5*t10*t11*t12*t15*t16*9.814-d7*mass6*t6*t10*t11*t12*t14*t16*9.814-d7*mass6*t7*t10*t11*t12*t14*t15*9.814+mpx4*t3*t5*t6*t7*t10*t11*t13*9.814-mpx4*t3*t5*t10*t11*t13*t15*t16*9.814+mpx4*t3*t6*t10*t11*t13*t14*t16*9.814+mpx4*t3*t7*t10*t11*t13*t14*t15*9.814+mpy6*t5*t6*t7*t9*t10*t11*t12*9.814+mpy6*t4*t5*t6*t7*t17*t18*t19*9.814-mpy6*t5*t9*t10*t11*t12*t15*t16*9.814+mpy6*t6*t9*t10*t11*t12*t14*t16*9.814+mpy6*t7*t9*t10*t11*t12*t14*t15*9.814-mpy6*t4*t5*t15*t16*t17*t18*t19*9.814+mpy6*t4*t6*t14*t16*t17*t18*t19*9.814+mpy6*t4*t7*t14*t15*t17*t18*t19*9.814+a6*mass5*t3*t5*t6*t7*t10*t11*t13*9.814+a6*mass6*t3*t5*t6*t7*t10*t11*t13*9.814-a6*mass5*t3*t5*t10*t11*t13*t15*t16*9.814+a6*mass5*t3*t6*t10*t11*t13*t14*t16*9.814+a6*mass5*t3*t7*t10*t11*t13*t14*t15*9.814-a6*mass6*t3*t5*t10*t11*t13*t15*t16*9.814+a6*mass6*t3*t6*t10*t11*t13*t14*t16*9.814+a6*mass6*t3*t7*t10*t11*t13*t14*t15*9.814-d7*mass6*t3*t5*t6*t10*t11*t13*t16*9.814-d7*mass6*t3*t5*t7*t10*t11*t13*t15*9.814+d7*mass6*t3*t6*t7*t10*t11*t13*t14*9.814-d7*mass6*t3*t10*t11*t13*t14*t15*t16*9.814+mpy6*t3*t5*t6*t9*t10*t11*t13*t16*9.814+mpy6*t3*t5*t7*t9*t10*t11*t13*t15*9.814-mpy6*t3*t6*t7*t9*t10*t11*t13*t14*9.814+mpy6*t3*t9*t10*t11*t13*t14*t15*t16*9.814+mpy6*t5*t6*t10*t11*t12*t16*t17*t18*9.814+mpy6*t5*t7*t10*t11*t12*t15*t17*t18*9.814-mpy6*t6*t7*t10*t11*t12*t14*t17*t18*9.814+mpy6*t10*t11*t12*t14*t15*t16*t17*t18*9.814-mpy6*t3*t5*t6*t7*t10*t11*t13*t17*t18*9.814+mpy6*t3*t5*t10*t11*t13*t15*t16*t17*t18*9.814-mpy6*t3*t6*t10*t11*t13*t14*t16*t17*t18*9.814-mpy6*t3*t7*t10*t11*t13*t14*t15*t17*t18*9.814;
marcodesilva 0:46ef60040f6a 906
marcodesilva 0:46ef60040f6a 907 return A0;
marcodesilva 0:46ef60040f6a 908 }
marcodesilva 0:46ef60040f6a 909
marcodesilva 0:46ef60040f6a 910 Vector6f ARAP180_WITH_ROVER::wrenchBattery(float battery_position, Vector3f droneOrientation){
marcodesilva 0:46ef60040f6a 911
marcodesilva 0:46ef60040f6a 912 Vector6f A0 = Vector6f::Zero();
marcodesilva 0:46ef60040f6a 913
marcodesilva 0:46ef60040f6a 914 float r_b_w = -droneOrientation[0];
marcodesilva 0:46ef60040f6a 915 float p_b_w = -droneOrientation[1];
marcodesilva 0:46ef60040f6a 916 float q1 = battery_position;
marcodesilva 0:46ef60040f6a 917
marcodesilva 0:46ef60040f6a 918 float t2 = cos(p_b_w);
marcodesilva 0:46ef60040f6a 919 float t3 = cos(r_b_w);
marcodesilva 0:46ef60040f6a 920 float t4 = sin(p_b_w);
marcodesilva 0:46ef60040f6a 921 float t5 = sin(r_b_w);
marcodesilva 0:46ef60040f6a 922 A0(0) = mass_battery*t3*t4*9.814;
marcodesilva 0:46ef60040f6a 923 A0(1) = mass_battery*t5*(-9.814);
marcodesilva 0:46ef60040f6a 924 A0(2) = mass_battery*t2*t3*9.814;
marcodesilva 0:46ef60040f6a 925 A0(3) = mpx_battery*t5*9.814;
marcodesilva 0:46ef60040f6a 926 A0(4) = mpx_battery*t3*t4*9.814+mpz_battery*t2*t3*9.814+mass_battery*q1*t2*t3*9.814;
marcodesilva 0:46ef60040f6a 927 A0(5) = mpz_battery*t5*9.814+mass_battery*q1*t5*9.814;
marcodesilva 0:46ef60040f6a 928
marcodesilva 0:46ef60040f6a 929 return A0;
marcodesilva 0:46ef60040f6a 930 }
marcodesilva 0:46ef60040f6a 931
marcodesilva 0:46ef60040f6a 932 float ARAP180_WITH_ROVER::batteryPos_from_wrench(Vector6f desired_wrench, Vector3f droneOrientation){
marcodesilva 0:46ef60040f6a 933
marcodesilva 0:46ef60040f6a 934 float A0 = 0.0;
marcodesilva 0:46ef60040f6a 935
marcodesilva 0:46ef60040f6a 936 float w5 = desired_wrench[4];
marcodesilva 0:46ef60040f6a 937 float w6 = desired_wrench[5];
marcodesilva 0:46ef60040f6a 938
marcodesilva 0:46ef60040f6a 939 float r_b_w = -droneOrientation[0];
marcodesilva 0:46ef60040f6a 940 float p_b_w = -droneOrientation[1];
marcodesilva 0:46ef60040f6a 941 float t2 = cos(p_b_w);
marcodesilva 0:46ef60040f6a 942 float t3 = cos(r_b_w);
marcodesilva 0:46ef60040f6a 943 float t4 = sin(r_b_w);
marcodesilva 0:46ef60040f6a 944 float t5 = t2*t2;
marcodesilva 0:46ef60040f6a 945 float t6 = t3*t3;
marcodesilva 0:46ef60040f6a 946 A0 = ((t4*w6*-5.0E+2+mpz_battery*(t4*t4)*4.907E+3+mpz_battery*t5*t6*4.907E+3-t2*t3*w5*5.0E+2+mpx_battery*t2*t6*sin(p_b_w)*4.907E+3)*(-2.037905033625433E-4))/(mass_battery*(-t6+t5*t6+1.0));
marcodesilva 0:46ef60040f6a 947 return A0;
marcodesilva 0:46ef60040f6a 948 }
marcodesilva 0:46ef60040f6a 949
marcodesilva 0:46ef60040f6a 950 // Inertia matrix B
marcodesilva 0:46ef60040f6a 951
marcodesilva 0:46ef60040f6a 952
marcodesilva 0:46ef60040f6a 953
marcodesilva 0:46ef60040f6a 954