Clone per testare Mbed studio
Dependencies: PwmIn IONMcMotor MPU6050 Eigen ROVER
Fork of Hyfliers_Completo_testato by
Hyfliers_robot_eth_msgs.h@11:d93fbd8e02e9, 2022-07-27 (annotated)
- Committer:
- aledek
- Date:
- Wed Jul 27 09:37:11 2022 +0000
- Revision:
- 11:d93fbd8e02e9
- Parent:
- 6:584653235830
first commit,
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
anfontanelli | 6:584653235830 | 1 | //Communication messages for ethernet protocol |
anfontanelli | 6:584653235830 | 2 | |
anfontanelli | 6:584653235830 | 3 | enum RobotCmd { |
anfontanelli | 6:584653235830 | 4 | IDLE_STATE, |
anfontanelli | 6:584653235830 | 5 | DISABLE_MOTORS, |
anfontanelli | 6:584653235830 | 6 | ENABLE_ROVER, |
anfontanelli | 6:584653235830 | 7 | ENABLE_ARM, |
anfontanelli | 6:584653235830 | 8 | ENABLE_TOOL, |
anfontanelli | 6:584653235830 | 9 | ARM_JOINT_CONTROL, |
anfontanelli | 6:584653235830 | 10 | ARM_KINEMATIC_CONTROL_FIRST_ORDER, |
anfontanelli | 6:584653235830 | 11 | ARM_KINEMATIC_CONTROL_SECOND_ORDER, |
anfontanelli | 6:584653235830 | 12 | CALIBRATE_ROVER_IMU, |
anfontanelli | 6:584653235830 | 13 | CALIBRATE_ROVER_LASERS, |
anfontanelli | 6:584653235830 | 14 | CALIBRATE_ARM_LASERS, |
anfontanelli | 6:584653235830 | 15 | GET_CURRENT_ROBOT_STATE, |
anfontanelli | 6:584653235830 | 16 | RESTART_BOARD, |
anfontanelli | 6:584653235830 | 17 | STOP_ALL |
anfontanelli | 6:584653235830 | 18 | }; |
anfontanelli | 6:584653235830 | 19 | |
anfontanelli | 6:584653235830 | 20 | |
anfontanelli | 6:584653235830 | 21 | enum Status { |
anfontanelli | 6:584653235830 | 22 | ETH_CONNECTED, |
anfontanelli | 6:584653235830 | 23 | ETH_SRV_ACCEPTED, |
anfontanelli | 6:584653235830 | 24 | ETH_LOST_CONNECTION, |
anfontanelli | 6:584653235830 | 25 | ETH_WRONG_RECV_SIZE, |
anfontanelli | 6:584653235830 | 26 | ETH_CHECKSUM_ERROR, |
anfontanelli | 6:584653235830 | 27 | ETH_NEW_CNF, |
anfontanelli | 6:584653235830 | 28 | ETH_NEW_CMD, |
anfontanelli | 6:584653235830 | 29 | ETH_NEW_CMD_CURRENT_VAL_REQUEST, |
anfontanelli | 6:584653235830 | 30 | ETH_ERROR_SENDING_DATA, |
anfontanelli | 6:584653235830 | 31 | ETH_IDLE, |
anfontanelli | 6:584653235830 | 32 | ROBOT_SAFETY_MODE |
anfontanelli | 6:584653235830 | 33 | }; |
anfontanelli | 6:584653235830 | 34 | |
anfontanelli | 6:584653235830 | 35 | |
anfontanelli | 6:584653235830 | 36 | enum ControlMode { |
anfontanelli | 6:584653235830 | 37 | IDLE_MODE, |
anfontanelli | 6:584653235830 | 38 | GET_ROBOT_STATE_MODE, |
anfontanelli | 6:584653235830 | 39 | JOINT_CONTROL_MODE, |
anfontanelli | 6:584653235830 | 40 | KINEMATIC_CONTROL_FIRST_ORDER_MODE, |
anfontanelli | 6:584653235830 | 41 | KINEMATIC_CONTROL_SECOND_ORDER_MODE, |
anfontanelli | 6:584653235830 | 42 | ADMITTANCE_CONTROL_MODE, |
anfontanelli | 6:584653235830 | 43 | HYBRID_CONTROL_MODE, |
anfontanelli | 6:584653235830 | 44 | HYBRID_ADMITTANCE_CONTROL_MODE, |
anfontanelli | 6:584653235830 | 45 | SAFETY_MODE |
anfontanelli | 6:584653235830 | 46 | }; |
anfontanelli | 6:584653235830 | 47 | |
anfontanelli | 6:584653235830 | 48 | enum PacketId { |
anfontanelli | 6:584653235830 | 49 | ID_config, |
anfontanelli | 6:584653235830 | 50 | ID_receive_command_send_prec_val, |
anfontanelli | 6:584653235830 | 51 | ID_receive_command_send_current_val |
anfontanelli | 6:584653235830 | 52 | }; |
anfontanelli | 6:584653235830 | 53 | |
anfontanelli | 6:584653235830 | 54 | |
anfontanelli | 6:584653235830 | 55 | struct DebugVector |
anfontanelli | 6:584653235830 | 56 | { |
anfontanelli | 6:584653235830 | 57 | float d1; |
anfontanelli | 6:584653235830 | 58 | float d2; |
anfontanelli | 6:584653235830 | 59 | float d3; |
anfontanelli | 6:584653235830 | 60 | float d4; |
anfontanelli | 6:584653235830 | 61 | float d5; |
anfontanelli | 6:584653235830 | 62 | float d6; |
anfontanelli | 6:584653235830 | 63 | float d7; |
anfontanelli | 6:584653235830 | 64 | float d8; |
anfontanelli | 6:584653235830 | 65 | float d9; |
anfontanelli | 6:584653235830 | 66 | float d10; |
anfontanelli | 6:584653235830 | 67 | float d11; |
anfontanelli | 6:584653235830 | 68 | float d12; |
anfontanelli | 6:584653235830 | 69 | float d13; |
anfontanelli | 6:584653235830 | 70 | float d14; |
anfontanelli | 6:584653235830 | 71 | float d15; |
anfontanelli | 6:584653235830 | 72 | float d16; |
anfontanelli | 6:584653235830 | 73 | float d17; |
anfontanelli | 6:584653235830 | 74 | float d18; |
anfontanelli | 6:584653235830 | 75 | float d19; |
anfontanelli | 6:584653235830 | 76 | float d20; |
anfontanelli | 6:584653235830 | 77 | float d21; |
anfontanelli | 6:584653235830 | 78 | float d22; |
anfontanelli | 6:584653235830 | 79 | float d23; |
anfontanelli | 6:584653235830 | 80 | float d24; |
anfontanelli | 6:584653235830 | 81 | |
anfontanelli | 6:584653235830 | 82 | }; |
anfontanelli | 6:584653235830 | 83 | |
anfontanelli | 6:584653235830 | 84 | struct DataToTheBoard |
anfontanelli | 6:584653235830 | 85 | { |
anfontanelli | 6:584653235830 | 86 | float roverForwardVel; |
anfontanelli | 6:584653235830 | 87 | float roverZVel; //speed around z axis (used to correct the rover orientation on the pipe) |
anfontanelli | 6:584653235830 | 88 | float roverFrontJointAngle; |
anfontanelli | 6:584653235830 | 89 | float roverRetroJointAngle; |
anfontanelli | 6:584653235830 | 90 | //Arm position in base frame |
anfontanelli | 6:584653235830 | 91 | float armX; |
anfontanelli | 6:584653235830 | 92 | float armY; |
anfontanelli | 6:584653235830 | 93 | float armZ; |
anfontanelli | 6:584653235830 | 94 | //Arm oriantation in base frame |
anfontanelli | 6:584653235830 | 95 | float armQ0; |
anfontanelli | 6:584653235830 | 96 | float armQ1; |
anfontanelli | 6:584653235830 | 97 | float armQ2; |
anfontanelli | 6:584653235830 | 98 | float armQ3; |
anfontanelli | 6:584653235830 | 99 | |
anfontanelli | 6:584653235830 | 100 | float drone_roll; |
anfontanelli | 6:584653235830 | 101 | float drone_pitch; |
anfontanelli | 6:584653235830 | 102 | |
anfontanelli | 6:584653235830 | 103 | float jointPos1; |
anfontanelli | 6:584653235830 | 104 | float jointPos2; |
anfontanelli | 6:584653235830 | 105 | float jointPos3; |
anfontanelli | 6:584653235830 | 106 | float jointPos4; |
anfontanelli | 6:584653235830 | 107 | float jointPos5; |
anfontanelli | 6:584653235830 | 108 | float toolOrientAroundPipeAxis; |
anfontanelli | 6:584653235830 | 109 | float roverLongitudinalPosition; |
anfontanelli | 6:584653235830 | 110 | bool toolEmatClose; |
anfontanelli | 6:584653235830 | 111 | |
anfontanelli | 6:584653235830 | 112 | }; |
anfontanelli | 6:584653235830 | 113 | |
anfontanelli | 6:584653235830 | 114 | |
anfontanelli | 6:584653235830 | 115 | struct ConfigDataToTheBoard |
anfontanelli | 6:584653235830 | 116 | { |
anfontanelli | 6:584653235830 | 117 | float wdTime; |
anfontanelli | 6:584653235830 | 118 | |
anfontanelli | 6:584653235830 | 119 | bool debug; |
anfontanelli | 6:584653235830 | 120 | |
anfontanelli | 6:584653235830 | 121 | float dtBoard; |
anfontanelli | 6:584653235830 | 122 | float r_frontWheel; |
anfontanelli | 6:584653235830 | 123 | float r_retroWheel; |
anfontanelli | 6:584653235830 | 124 | float pipeCurve_I; |
anfontanelli | 6:584653235830 | 125 | float pipeCurve_E; |
anfontanelli | 6:584653235830 | 126 | float pipeCurve_M; |
anfontanelli | 6:584653235830 | 127 | float retroFrontCentralDistance; |
anfontanelli | 6:584653235830 | 128 | float wheelsCntactPointDistanceFromPipeCenter; |
anfontanelli | 6:584653235830 | 129 | float pipeRadious; |
anfontanelli | 6:584653235830 | 130 | float Kp_stabilization; |
anfontanelli | 6:584653235830 | 131 | float Kd_stabilization; |
anfontanelli | 6:584653235830 | 132 | |
anfontanelli | 6:584653235830 | 133 | |
anfontanelli | 6:584653235830 | 134 | float Kp_zero_torque; |
anfontanelli | 6:584653235830 | 135 | float Ki_zero_torque; |
anfontanelli | 6:584653235830 | 136 | |
anfontanelli | 6:584653235830 | 137 | float wheelsAcceleration; |
anfontanelli | 6:584653235830 | 138 | |
anfontanelli | 6:584653235830 | 139 | float jacobianInversionWeight1; |
anfontanelli | 6:584653235830 | 140 | float jacobianInversionWeight2; |
anfontanelli | 6:584653235830 | 141 | float jacobianInversionWeight3; |
anfontanelli | 6:584653235830 | 142 | float jacobianInversionWeight4; |
anfontanelli | 6:584653235830 | 143 | float jacobianInversionWeight5; |
anfontanelli | 6:584653235830 | 144 | float jacobianInversionWeight6; |
anfontanelli | 6:584653235830 | 145 | float jacobianInversionWeight7; |
anfontanelli | 6:584653235830 | 146 | float jacobianInversionWeight8; |
anfontanelli | 6:584653235830 | 147 | |
anfontanelli | 6:584653235830 | 148 | |
anfontanelli | 6:584653235830 | 149 | // arm DH |
anfontanelli | 6:584653235830 | 150 | float a3; |
anfontanelli | 6:584653235830 | 151 | float a4; |
anfontanelli | 6:584653235830 | 152 | float a5; |
anfontanelli | 6:584653235830 | 153 | float a5i; |
anfontanelli | 6:584653235830 | 154 | float a6; |
anfontanelli | 6:584653235830 | 155 | float d7; |
anfontanelli | 6:584653235830 | 156 | // drone distances |
anfontanelli | 6:584653235830 | 157 | float x_0_r2; |
anfontanelli | 6:584653235830 | 158 | float y_0_r2; |
anfontanelli | 6:584653235830 | 159 | float z_0_r2; |
anfontanelli | 6:584653235830 | 160 | |
anfontanelli | 6:584653235830 | 161 | float massr; |
anfontanelli | 6:584653235830 | 162 | float mpxr ; |
anfontanelli | 6:584653235830 | 163 | float mpyr ; |
anfontanelli | 6:584653235830 | 164 | float mpzr ; |
anfontanelli | 6:584653235830 | 165 | float mass1; |
anfontanelli | 6:584653235830 | 166 | float mpx1 ; |
anfontanelli | 6:584653235830 | 167 | float mpy1 ; |
anfontanelli | 6:584653235830 | 168 | float mpz1 ; |
anfontanelli | 6:584653235830 | 169 | float mass2; |
anfontanelli | 6:584653235830 | 170 | float mpx2 ; |
anfontanelli | 6:584653235830 | 171 | float mpy2 ; |
anfontanelli | 6:584653235830 | 172 | float mpz2 ; |
anfontanelli | 6:584653235830 | 173 | float mass3; |
anfontanelli | 6:584653235830 | 174 | float mpx3 ; |
anfontanelli | 6:584653235830 | 175 | float mpy3 ; |
anfontanelli | 6:584653235830 | 176 | float mpz3 ; |
anfontanelli | 6:584653235830 | 177 | float mass4; |
anfontanelli | 6:584653235830 | 178 | float mpx4 ; |
anfontanelli | 6:584653235830 | 179 | float mpy4 ; |
anfontanelli | 6:584653235830 | 180 | float mpz4 ; |
anfontanelli | 6:584653235830 | 181 | float mass5; |
anfontanelli | 6:584653235830 | 182 | float mpx5 ; |
anfontanelli | 6:584653235830 | 183 | float mpy5 ; |
anfontanelli | 6:584653235830 | 184 | float mpz5 ; |
anfontanelli | 6:584653235830 | 185 | float mass6; |
anfontanelli | 6:584653235830 | 186 | float mpx6 ; |
anfontanelli | 6:584653235830 | 187 | float mpy6 ; |
anfontanelli | 6:584653235830 | 188 | float mpz6 ; |
anfontanelli | 6:584653235830 | 189 | |
anfontanelli | 6:584653235830 | 190 | float mass_battery; |
anfontanelli | 6:584653235830 | 191 | float mpx_battery; |
anfontanelli | 6:584653235830 | 192 | float mpz_battery; |
anfontanelli | 6:584653235830 | 193 | |
anfontanelli | 6:584653235830 | 194 | float kp_first_order; |
anfontanelli | 6:584653235830 | 195 | float ko_first_order; |
anfontanelli | 6:584653235830 | 196 | float kp_second_order; |
anfontanelli | 6:584653235830 | 197 | float ko_second_order; |
anfontanelli | 6:584653235830 | 198 | float dp_second_order; |
anfontanelli | 6:584653235830 | 199 | float do_second_order; |
anfontanelli | 6:584653235830 | 200 | |
anfontanelli | 6:584653235830 | 201 | float jointsMaxVel; |
anfontanelli | 6:584653235830 | 202 | float jointsMaxAcc; |
anfontanelli | 6:584653235830 | 203 | float jointsFilterOmega; |
anfontanelli | 6:584653235830 | 204 | float jointsFilterZita; |
anfontanelli | 6:584653235830 | 205 | float velAccSafetyFactor; |
anfontanelli | 6:584653235830 | 206 | |
anfontanelli | 6:584653235830 | 207 | float maxCartPos_x; |
anfontanelli | 6:584653235830 | 208 | float maxCartPos_y; |
anfontanelli | 6:584653235830 | 209 | float maxCartPos_z; |
anfontanelli | 6:584653235830 | 210 | |
anfontanelli | 6:584653235830 | 211 | float minCartPos_x; |
anfontanelli | 6:584653235830 | 212 | float minCartPos_y; |
anfontanelli | 6:584653235830 | 213 | float minCartPos_z; |
anfontanelli | 6:584653235830 | 214 | |
anfontanelli | 6:584653235830 | 215 | |
anfontanelli | 6:584653235830 | 216 | |
anfontanelli | 6:584653235830 | 217 | }; |
anfontanelli | 6:584653235830 | 218 | |
anfontanelli | 6:584653235830 | 219 | struct DataFromTheBoard |
anfontanelli | 6:584653235830 | 220 | { |
anfontanelli | 6:584653235830 | 221 | float roverForwardVel; |
anfontanelli | 6:584653235830 | 222 | float roverStabVel; |
anfontanelli | 6:584653235830 | 223 | float roverZVel; //speed around z axis (used to correct the rover orientation on the pipe) |
anfontanelli | 6:584653235830 | 224 | float roverPitchAngle; |
anfontanelli | 6:584653235830 | 225 | float roverOdom; |
anfontanelli | 6:584653235830 | 226 | float roverLaserFrontDx; |
anfontanelli | 6:584653235830 | 227 | float roverLaserFrontSx; |
anfontanelli | 6:584653235830 | 228 | float roverLaserRetroDx; |
anfontanelli | 6:584653235830 | 229 | float roverLaserRetroSx; |
anfontanelli | 6:584653235830 | 230 | |
anfontanelli | 6:584653235830 | 231 | //Arm position in base frame |
anfontanelli | 6:584653235830 | 232 | float misTebX; |
anfontanelli | 6:584653235830 | 233 | float misTebY; |
anfontanelli | 6:584653235830 | 234 | float misTebZ; |
anfontanelli | 6:584653235830 | 235 | //Arm oriantation in base frame |
anfontanelli | 6:584653235830 | 236 | float misTebQ0; |
anfontanelli | 6:584653235830 | 237 | float misTebQ1; |
anfontanelli | 6:584653235830 | 238 | float misTebQ2; |
anfontanelli | 6:584653235830 | 239 | float misTebQ3; |
anfontanelli | 6:584653235830 | 240 | |
anfontanelli | 6:584653235830 | 241 | float cmdJointPos1; |
anfontanelli | 6:584653235830 | 242 | float cmdJointPos2; |
anfontanelli | 6:584653235830 | 243 | float cmdJointPos3; |
anfontanelli | 6:584653235830 | 244 | float cmdJointPos4; |
anfontanelli | 6:584653235830 | 245 | float cmdJointPos5; |
anfontanelli | 6:584653235830 | 246 | float cmdJointPos6; |
anfontanelli | 6:584653235830 | 247 | |
anfontanelli | 6:584653235830 | 248 | float estRoverJointPos1; |
anfontanelli | 6:584653235830 | 249 | float estRoverJointPos2; |
anfontanelli | 6:584653235830 | 250 | |
anfontanelli | 6:584653235830 | 251 | float misArmJointPos1; |
anfontanelli | 6:584653235830 | 252 | float misArmJointPos2; |
anfontanelli | 6:584653235830 | 253 | float misArmJointPos3; |
anfontanelli | 6:584653235830 | 254 | float misArmJointPos4; |
anfontanelli | 6:584653235830 | 255 | float misArmJointPos5; |
anfontanelli | 6:584653235830 | 256 | float misArmJointPos6; |
anfontanelli | 6:584653235830 | 257 | |
anfontanelli | 6:584653235830 | 258 | float droneFx; |
anfontanelli | 6:584653235830 | 259 | float droneFy; |
anfontanelli | 6:584653235830 | 260 | float droneFz; |
anfontanelli | 6:584653235830 | 261 | float droneTx; |
anfontanelli | 6:584653235830 | 262 | float droneTy; |
anfontanelli | 6:584653235830 | 263 | float droneTz; |
anfontanelli | 6:584653235830 | 264 | |
anfontanelli | 6:584653235830 | 265 | float toolOrientAroundPipeAxis; |
anfontanelli | 6:584653235830 | 266 | |
anfontanelli | 6:584653235830 | 267 | float toolLaserFrontDx; |
anfontanelli | 6:584653235830 | 268 | float toolLaserFrontSx; |
anfontanelli | 6:584653235830 | 269 | float toolLaserRetroDx; |
anfontanelli | 6:584653235830 | 270 | float toolLaserRetroSx; |
anfontanelli | 6:584653235830 | 271 | |
anfontanelli | 6:584653235830 | 272 | }; |
anfontanelli | 6:584653235830 | 273 | |
anfontanelli | 6:584653235830 | 274 | struct ComandMsg |
anfontanelli | 6:584653235830 | 275 | { |
anfontanelli | 6:584653235830 | 276 | int pId; |
anfontanelli | 6:584653235830 | 277 | RobotCmd Cmd; |
anfontanelli | 6:584653235830 | 278 | DataToTheBoard Data; |
anfontanelli | 6:584653235830 | 279 | uint8_t Checksum; |
anfontanelli | 6:584653235830 | 280 | }; |
anfontanelli | 6:584653235830 | 281 | |
anfontanelli | 6:584653235830 | 282 | struct ConfigMsg |
anfontanelli | 6:584653235830 | 283 | { |
anfontanelli | 6:584653235830 | 284 | int pId; |
anfontanelli | 6:584653235830 | 285 | ConfigDataToTheBoard Data; |
anfontanelli | 6:584653235830 | 286 | uint8_t Checksum; |
anfontanelli | 6:584653235830 | 287 | }; |
anfontanelli | 6:584653235830 | 288 | |
anfontanelli | 6:584653235830 | 289 | |
anfontanelli | 6:584653235830 | 290 | struct ResponseMsg |
anfontanelli | 6:584653235830 | 291 | { |
anfontanelli | 6:584653235830 | 292 | int StatusData; |
anfontanelli | 6:584653235830 | 293 | int ControlModeData; |
anfontanelli | 6:584653235830 | 294 | DataFromTheBoard Data; |
anfontanelli | 6:584653235830 | 295 | DebugVector Dbv; |
anfontanelli | 6:584653235830 | 296 | |
anfontanelli | 6:584653235830 | 297 | }; |
anfontanelli | 6:584653235830 | 298 | |
anfontanelli | 6:584653235830 | 299 |