Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. #include <Aria.h>
  2.  
  3. int main(int argc, char** argv)
  4. {
  5. Aria::init();
  6. ArRobot robot;
  7. ArSonarDevice sonar;
  8. ArTcpConnection con;
  9. robot.addRangeDevice(&sonar);
  10. con.setPort("localhost");
  11. robot.setDeviceConnection(&con);
  12. if (!robot.blockingConnect())
  13. {
  14. printf("\nNie wykryto uruchomionej symulacji robota!\n\n");
  15. system("pause");
  16. Aria::exit(0);
  17. }
  18. robot.runAsync(true);
  19. printf("\nWykonywanie symulacji...\n\n");
  20. robot.enableMotors();
  21.  
  22. //////////////////////////////////////////////////////////////////////////
  23. robot.setTransVelMax(2500); // Ustawienie maksymalnej predkosci liniowej na 80 cm/s
  24. robot.setRotVelMax(30); // Ustawienie maksymalnej predkosci katowej na 15 st./s
  25. int i = 0;
  26.  
  27. robot.setDeltaHeading(0); // Skret o 180 stopni w lewo
  28. while (1) // Petla czekajaca na wykonanie skretu
  29. {
  30. if (robot.isHeadingDone()) // Warunek wykonania zadanego skretu
  31. {
  32. break;
  33. }
  34. ArUtil::sleep(200);
  35. }
  36. robot.setVel(-2500); // Zadanie robotowi ruchu liniowego o predkosci 50 cm/s do przodu
  37. while (robot.getSonarRange(11) > 200) // Sprawdzenie pomiarow czujnika nr 3
  38. {
  39. ArUtil::sleep(100);
  40. }
  41. robot.setVel(0);
  42. robot.setDeltaHeading(-90); // Skret o 180 stopni w lewo
  43. while (1) // Petla czekajaca na wykonanie skretu
  44. {
  45. if (robot.isHeadingDone()) // Warunek wykonania zadanego skretu
  46. {
  47. break;
  48. }
  49. ArUtil::sleep(200);
  50. }
  51.  
  52. /*robot.setVel(-2500); // Zadanie robotowi ruchu liniowego o predkosci 50 cm/s do przodu
  53. while (robot.getSonarRange(11) > 100) // Sprawdzenie pomiarow czujnika nr 3
  54. {
  55. ArUtil::sleep(100);
  56. }
  57.  
  58. robot.setVel(2500); // Zadanie robotowi ruchu liniowego o predkosci 50 cm/s do przodu
  59. while (robot.getSonarRange(3) > 200) // Sprawdzenie pomiarow czujnika nr 3
  60. {
  61. ArUtil::sleep(100);
  62. }
  63. robot.setVel(0);*/
  64.  
  65. while (1)//głowny while
  66. {
  67. i++;
  68. robot.setVel(5000); // Zadanie robotowi ruchu liniowego o predkosci 50 cm/s do przodu
  69. while (robot.getSonarRange(3) > 300) // Sprawdzenie pomiarow czujnika nr 3
  70. {
  71. ArUtil::sleep(100);
  72. }
  73. robot.setVel(0);
  74.  
  75. /*robot.move(1000); // Ruch liniowy o 1 m do przodu
  76. while (1) // Petla czekajaca na wykonanie ruchu liniowego
  77. {
  78. if (robot.isMoveDone()) // Warunek wykonania zadanego ruchu liniowego
  79. {
  80. break;
  81. }
  82. ArUtil::sleep(100); // Petla czekajaca 100 ms
  83. }*/
  84.  
  85. if (i % 2 == 0) {
  86. robot.setDeltaHeading(-90); // Skret o 90 stopni w lewo
  87. while (1) // Petla czekajaca na wykonanie skretu
  88. {
  89. if (robot.isHeadingDone()) // Warunek wykonania zadanego skretu
  90. {
  91. break;
  92. }
  93. ArUtil::sleep(100);
  94. }
  95. }
  96. else
  97. {
  98. robot.setDeltaHeading(90); // Skret o 90 stopni w lewo
  99. while (1) // Petla czekajaca na wykonanie skretu
  100. {
  101. if (robot.isHeadingDone()) // Warunek wykonania zadanego skretu
  102. {
  103. break;
  104. }
  105. ArUtil::sleep(100);
  106. }
  107. }
  108. if (robot.getSonarRange(3) > 400) {
  109. robot.move(400); // Ruch liniowy o 0,4 m do przodu
  110. }
  111. while (1) // Petla czekajaca na wykonanie ruchu liniowego
  112. {
  113. if (robot.isMoveDone()) // Warunek wykonania zadanego ruchu liniowego
  114. {
  115. break;
  116. }
  117. ArUtil::sleep(100); // Petla czekajaca 100 ms
  118. }
  119.  
  120. if (i % 2 == 0) {
  121. robot.setDeltaHeading(-92); // Skret o 90 stopni w lewo
  122. while (1) // Petla czekajaca na wykonanie skretu
  123. {
  124. if (robot.isHeadingDone()) // Warunek wykonania zadanego skretu
  125. {
  126. break;
  127. }
  128. ArUtil::sleep(100);
  129. }
  130. }
  131. else
  132. {
  133. robot.setDeltaHeading(92); // Skret o 90 stopni w lewo
  134. while (1) // Petla czekajaca na wykonanie skretu
  135. {
  136. if (robot.isHeadingDone()) // Warunek wykonania zadanego skretu
  137. {
  138. break;
  139. }
  140. ArUtil::sleep(100);
  141. }
  142. }
  143. /*robot.setVel(2500); // Zadanie robotowi ruchu liniowego o predkosci 50 cm/s do przodu
  144. while (robot.getSonarRange(3) > 300) // Sprawdzenie pomiarow czujnika nr 3
  145. {
  146. ArUtil::sleep(100);
  147. }*/
  148. robot.stop(); // Zatrzymanie wszelkich ruchow robota
  149. }
  150. //////////////////////////////////////////////////////////////////////////
  151.  
  152. printf("\nZakonczenie symulacji.\n\n");
  153. Aria::exit(0);
  154. return 0;
  155. }
  156. #include <Aria.h>
  157. #include <iostream>
  158.  
  159. using namespace std;
  160.  
  161. int main(int argc, char** argv)
  162. {
  163. Aria::init();
  164. ArRobot robot;
  165. ArSonarDevice sonar;
  166. ArTcpConnection con;
  167. robot.addRangeDevice(&sonar);
  168. con.setPort("localhost");
  169. robot.setDeviceConnection(&con);
  170. if (!robot.blockingConnect())
  171. {
  172. printf("\nNie wykryto uruchomionej symulacji robota!\n\n");
  173. system("pause");
  174. Aria::exit(0);
  175. }
  176. robot.runAsync(true);
  177. printf("\nWykonywanie symulacji...\n\n");
  178. robot.enableMotors();
  179.  
  180. //////////////////////////////////////////////////////////////////////////
  181. robot.setTransVelMax(1000); // Ustawienie maksymalnej predkosci liniowej na 80 cm/s
  182. robot.setRotVelMax(25); // Ustawienie maksymalnej predkosci katowej na 15 st./s
  183.  
  184.  
  185. while (1) {
  186.  
  187. robot.lock();
  188. // int a = robot.getSonarRange(3);
  189. //cout << "Info z sonaru nr3: " << robot.getSonarRange(3) << endl;
  190. robot.move(200);
  191. robot.unlock();
  192. ArUtil::sleep(200);
  193. if (robot.getSonarRange(0) <= 250*2) {
  194. //Manewr omijajacy:
  195. printf("\nA\n");
  196. robot.lock();
  197. robot.setDeltaHeading(-90); // Skret o 90 stopni
  198. robot.unlock();
  199. ArUtil::sleep(2000 / 2); // Odczekanie 50 ms
  200. }
  201. else if (robot.getSonarRange(1) <= 300) {
  202. printf("\nD\n");
  203. robot.lock();
  204. robot.setDeltaHeading(-90); // Skret o 90 stopni
  205. robot.unlock();
  206. ArUtil::sleep(2000 / 2);
  207. }
  208. else if (robot.getSonarRange(2) <= 400) {
  209. robot.lock();
  210. robot.setDeltaHeading(-90); // Skret o 90 stopni
  211. robot.unlock();
  212. ArUtil::sleep(2000 / 2);
  213. }
  214. else if (robot.getSonarRange(3) <= 750) {
  215. robot.lock();
  216. printf("\nO\n");
  217. robot.setDeltaHeading(-90); // Skret o 90 stopni
  218. robot.unlock();
  219. ArUtil::sleep(2000 / 2);
  220. }
  221. else if (robot.getSonarRange(4) <= 750) {
  222. robot.lock();
  223. printf("\nL\n");
  224. robot.setDeltaHeading(-90); // Skret o 90 stopni
  225. robot.unlock();
  226. ArUtil::sleep(2000 / 2);
  227. }
  228. else if (robot.getSonarRange(5) <= 400) {
  229. robot.lock();
  230. robot.setDeltaHeading(-90); // Skret o 90 stopni
  231. robot.unlock();
  232. ArUtil::sleep(2000/2);
  233. }
  234. else if (robot.getSonarRange(6) <= 300) {
  235. robot.lock();
  236. printf("\nF\n");
  237. robot.setDeltaHeading(-90); // Skret o 90 stopni
  238. robot.unlock();
  239. ArUtil::sleep(2000 / 2);
  240. }
  241. else if (robot.getSonarRange(7) <= 250) {
  242. robot.lock();
  243. robot.setDeltaHeading(-90); // Skret o 90 stopni
  244. robot.unlock();
  245. ArUtil::sleep(2000 / 2);
  246. }
  247. }
  248.  
  249. //////////////////////////////////////////////////////////////////////////
  250.  
  251. printf("\nZakonczenie symulacji.\n\n");
  252. Aria::exit(0);
  253. return 0;
  254. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement