#define BR_IRGAIN 10 #define fwSpeed 50 int Connections_A[9] = {5, 1, 2, 5, -15, -6, -2, 2, 7}; int Connections_B[9] = {2, -2, -6, -15, 5, 2, 1, 5, 7}; struct Robot { int tabsens[9]; int left_speed; int right_speed; }; int RobotBehaviour(struct Robot *system) { long int lspeed16, rspeed16; int i; lspeed16 = 0; rspeed16 = 0; for(i=0; i<9; i++) { lspeed16 -= Connections_B[i] * system->tabsens[i]; rspeed16 -= Connections_A[i] * system->tabsens[i]; } system->left_speed = ((lspeed16 / BR_IRGAIN) + fwSpeed); system->right_speed = ((rspeed16 / BR_IRGAIN) + fwSpeed); if(system->left_speed > 0 && system->left_speed < 30) system->left_speed = 30; if(system->left_speed < 0 && system->left_speed > -30) system->left_speed = -30; if(system->right_speed > 0 && system->right_speed < 30) system->right_speed = 30; if(system->right_speed < 0 && system->right_speed > -30) system->right_speed = -30; if(system->left_speed > 60 || system->left_speed < -60) system->left_speed = 0; if(system->right_speed > 60 || system->right_speed < -60) system->right_speed = 0; return 0; } int main(int arc, char *argv[]) { char **service; int num = 1, i, agent_id, mutex_id = 55; MCAgent_t agent; service = (char **)malloc(sizeof(char *)*num); for(i=0; i