diff --git a/app.log b/app.log
index 9398061..ffb5576 100644
--- a/app.log
+++ b/app.log
@@ -46706,3 +46706,780 @@ Joint 5 - Position: 0.0, Velocity: 0.0 - client_socket.py - 96
2024-10-28 15:18:07,063 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
2024-10-28 15:18:35,253 - logger - INFO - GUI - client_socket.py - 55
2024-10-28 15:18:35,451 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:22:05,945 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:22:06,184 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:23:37,341 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:23:37,542 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:24:05,682 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:24:05,815 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:24:34,091 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:24:34,262 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:25:01,593 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:25:01,760 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:25:18,003 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:25:18,190 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:25:40,082 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:25:40,255 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:25:40,301 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,328 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,367 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,406 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,442 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,485 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,523 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,565 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,603 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,644 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,722 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,761 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,801 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,842 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,881 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,921 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:40,961 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,003 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,045 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,086 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,125 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,165 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,206 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,245 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,375 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,476 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,576 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,675 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,758 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,841 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:41,924 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,008 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,092 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,176 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,275 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,375 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,475 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,559 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,659 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,759 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,859 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:42,959 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,059 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,159 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,259 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,359 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,459 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,559 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,641 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,725 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,824 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,908 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:43,991 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,092 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,175 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,275 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,375 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,459 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,558 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,658 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,759 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,858 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:44,958 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,042 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,125 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,224 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,307 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,392 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,493 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,591 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,675 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,776 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,875 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:45,958 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,058 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,158 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,243 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,343 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,442 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,544 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,659 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,760 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,858 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:46,958 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,059 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,159 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,259 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,358 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,458 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,559 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,658 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,758 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,842 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:47,941 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,042 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,133 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,226 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,327 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,425 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,524 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,623 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,723 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,823 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:48,923 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,025 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,125 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,225 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,324 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,424 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,523 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,623 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,724 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,824 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:49,924 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,024 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,124 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,224 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,324 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,425 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,525 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,624 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,707 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,808 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:50,908 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,008 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,108 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,208 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,309 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,409 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,509 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,608 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,708 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:25:51,809 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 51
+2024-10-28 15:26:04,080 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:26:04,241 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:26:04,280 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,307 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,345 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,381 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,422 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,459 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,499 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,539 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,580 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,620 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,659 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,702 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,738 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,779 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,820 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,860 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,900 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,941 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:04,980 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,019 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,061 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,102 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,142 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,182 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,223 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,392 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,491 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,591 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,693 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,791 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,892 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:05,991 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,090 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,191 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,290 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,390 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,489 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,573 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,673 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,756 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,856 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:06,939 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,022 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,109 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,206 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,305 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,388 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,471 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,555 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,638 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,721 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,805 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,888 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:07,971 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,055 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,138 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,222 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,305 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,389 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,488 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,588 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,688 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,772 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,855 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:08,938 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,022 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,123 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,222 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,306 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,406 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,509 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,606 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,706 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,806 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,904 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:09,988 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,088 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,171 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,255 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,338 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,421 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,505 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,588 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,671 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,754 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,838 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:10,921 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:11,004 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:11,088 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:11,171 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:11,255 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:11,338 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:26:11,421 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 50
+2024-10-28 15:27:18,096 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:27:18,247 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,279 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,279 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:27:18,312 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,312 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,341 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,341 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,366 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,366 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,390 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,390 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,424 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,424 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,464 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,464 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,502 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,502 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,544 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,544 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,622 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,622 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,684 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,685 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,716 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,716 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,743 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,743 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,781 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,782 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,822 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,822 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,862 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,862 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,903 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,903 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,945 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,945 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:18,985 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:18,985 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,026 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,026 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,065 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,065 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,101 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,101 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,143 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,143 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,185 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,185 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,226 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,226 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,266 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,266 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,400 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,400 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,502 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,503 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,604 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,604 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,718 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,718 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,818 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,818 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:19,919 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:19,919 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,018 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,018 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,117 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,117 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,216 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,216 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,315 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,316 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,399 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,399 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,484 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,484 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,584 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,584 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,684 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,684 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,784 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,784 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,884 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,884 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:20,984 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:20,984 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,084 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,084 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,184 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,184 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,284 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,284 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,384 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,384 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,484 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,484 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,670 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,671 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,770 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,770 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,868 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,868 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:21,968 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:21,968 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,067 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,067 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,150 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,150 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,234 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,235 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,333 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,333 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,416 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,417 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,500 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,500 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,599 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,599 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,767 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,767 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,850 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,850 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:22,933 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:22,933 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,017 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,017 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,100 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,100 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,183 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,183 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,267 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,267 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,350 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,350 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,433 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,433 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,516 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,517 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,599 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,600 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,783 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,783 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,866 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,867 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:23,965 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:23,966 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,048 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,048 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,132 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,132 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,216 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,217 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,301 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,301 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,400 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,400 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,483 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,483 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,782 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,783 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,883 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,883 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:24,983 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:24,983 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,082 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,082 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,167 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,167 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,267 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,267 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,367 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,367 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,466 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,466 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,550 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,550 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,650 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,650 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,750 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,750 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,850 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,850 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:25,933 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:25,933 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,033 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,033 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,117 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,117 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,200 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,200 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,300 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,300 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,400 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,400 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,499 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,500 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,583 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,683 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,766 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,767 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,866 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,866 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:26,949 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:26,950 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,050 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,050 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,150 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,150 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,265 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,265 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,348 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,348 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,449 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,449 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,532 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,532 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,633 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,633 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:27,716 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 53
+2024-10-28 15:27:27,716 - logger - INFO - PyQt5.QtCore.QSize(640, 640) - visualize.py - 54
+2024-10-28 15:27:54,662 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:27:54,855 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:28:20,890 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:28:21,078 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:28:33,341 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:28:33,513 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:29:04,516 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:29:04,694 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:29:37,476 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:29:37,673 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:30:03,294 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:30:03,438 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:30:40,550 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:30:40,692 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:30:44,802 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:30:44,977 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:30:49,337 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:30:49,486 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:31:05,285 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:31:05,422 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:32:32,191 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:32:32,324 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:32:37,586 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:32:37,735 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:32:49,558 - logger - INFO - Координаты осей [-60.0, 40.0, -10.0, -60.0, -75.0, 0.0] - client_socket.py - 219
+2024-10-28 15:32:50,059 - logger - INFO - set joints - client_socket.py - 222
+2024-10-28 15:32:50,120 - logger - INFO - Мировые координаты [643.622, -1289.604, 254.682, 124.7, 24.209, -58.492] - client_socket.py - 219
+2024-10-28 15:32:50,621 - logger - INFO - (0.14973857501762938, -1.3765941667917658, -1.187935174315797, -3.463877212871233, -3.6701784753067783, 1.1605332164225521) - client_socket.py - 216
+2024-10-28 15:32:50,621 - logger - INFO - set joints - client_socket.py - 222
+2024-10-28 15:32:50,622 - logger - INFO - Команд в очереди ['ok'] - client_socket.py - 219
+2024-10-28 15:33:28,321 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:33:28,525 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:33:56,146 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:33:56,342 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:33:56,342 - logger - INFO - Joint 0 - Position: 0.0, Velocity: 0.0
+Joint 1 - Position: 0.0, Velocity: 0.0
+Joint 2 - Position: 0.0, Velocity: 0.0
+Joint 3 - Position: 0.0, Velocity: 0.0
+Joint 4 - Position: 0.0, Velocity: 0.0
+Joint 5 - Position: 0.0, Velocity: 0.0
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:56,467 - logger - INFO - Joint 0 - Position: 0.00782162898532024, Velocity: 1.8771909564768574
+Joint 1 - Position: 9.617686060193475e-131, Velocity: 2.308244654446434e-128
+Joint 2 - Position: 0.07358868610365309, Velocity: 17.661284664876742
+Joint 3 - Position: -0.006916603029825139, Velocity: -1.6599847271580335
+Joint 4 - Position: -0.07328989420214636, Velocity: -17.58957460851513
+Joint 5 - Position: 0.004549988917158072, Velocity: 1.0919973401179373
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:56,558 - logger - INFO - Joint 0 - Position: 0.15189136011859564, Velocity: 34.5767354719861
+Joint 1 - Position: -8.571645299617436e-16, Velocity: -2.0571948719081846e-13
+Joint 2 - Position: 0.4902553527703198, Velocity: 100.0
+Joint 3 - Position: -0.031862711142024706, Velocity: -5.987065946927896
+Joint 4 - Position: -0.48995656086881306, Velocity: -100.0
+Joint 5 - Position: -0.013965047481668161, Velocity: -4.443608735718296
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:56,649 - logger - INFO - Joint 0 - Position: 0.5685580267852623, Velocity: 100.0
+Joint 1 - Position: -8.308886843305679e-16, Velocity: 6.30620295148216e-15
+Joint 2 - Position: 0.9069220194369865, Velocity: 100.0
+Joint 3 - Position: 0.38480395552464197, Velocity: 100.0
+Joint 4 - Position: -0.9066232275354797, Velocity: -100.0
+Joint 5 - Position: -0.43063171414833484, Velocity: -100.0
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:56,739 - logger - INFO - Joint 0 - Position: 0.9852246934519291, Velocity: 100.0
+Joint 1 - Position: -1.223165129393963e-15, Velocity: -9.414634681521483e-14
+Joint 2 - Position: 1.3235886861036532, Velocity: 100.0
+Joint 3 - Position: 0.8014706221913086, Velocity: 100.0
+Joint 4 - Position: -1.3232898942021465, Velocity: -100.0
+Joint 5 - Position: -0.6041849353084161, Velocity: -41.652773078419514
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:56,833 - logger - INFO - Joint 0 - Position: 1.4018913601185958, Velocity: 100.0
+Joint 1 - Position: -1.2182463231048071e-15, Velocity: 1.1805135093974034e-15
+Joint 2 - Position: 1.74025535277032, Velocity: 100.0
+Joint 3 - Position: 1.2181372888579753, Velocity: 100.0
+Joint 4 - Position: -1.7399565608688132, Velocity: -100.0
+Joint 5 - Position: -0.18751826864174942, Velocity: 100.0
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:56,925 - logger - INFO - Joint 0 - Position: 1.5631693862955998, Velocity: 38.70672628248093
+Joint 1 - Position: -1.218048640795767e-15, Velocity: 4.7443754169658375e-17
+Joint 2 - Position: 1.6568796935038856, Velocity: -20.01015822394423
+Joint 3 - Position: 1.2346981306536435, Velocity: 3.9746020309603836
+Joint 4 - Position: -1.7088645667391635, Velocity: 7.462078591115951
+Joint 5 - Position: -0.252591790911406, Velocity: -15.617645344717573
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,019 - logger - INFO - Joint 0 - Position: 1.6939157759862744, Velocity: 31.37913352576192
+Joint 1 - Position: -1.218219258173462e-15, Velocity: -4.0948170646824467e-17
+Joint 2 - Position: 1.576921862300072, Velocity: -19.189879488915263
+Joint 3 - Position: 1.232220529294061, Velocity: -0.5946243262998419
+Joint 4 - Position: -1.7059904809063435, Velocity: 0.6897805998768147
+Joint 5 - Position: -0.3074515250151544, Velocity: -13.166336184899611
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,114 - logger - INFO - Joint 0 - Position: 1.6138591988282347, Velocity: -19.213578517929555
+Joint 1 - Position: -1.3314602211816587e-15, Velocity: -2.7177831121967185e-14
+Joint 2 - Position: 1.1602551956334053, Velocity: -100.0
+Joint 3 - Position: 1.1821493113101786, Velocity: -12.01709231613175
+Joint 4 - Position: -1.7059857895159836, Velocity: 0.0011259336864128944
+Joint 5 - Position: -0.6517310921582425, Velocity: -82.62709611434116
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,212 - logger - INFO - Joint 0 - Position: 1.5472060533576655, Velocity: -15.99675491293661
+Joint 1 - Position: -1.384030334413974e-15, Velocity: -1.2616827175755661e-14
+Joint 2 - Position: 1.0992001016647708, Velocity: -14.653222552472272
+Joint 3 - Position: 1.5988159779768454, Velocity: 100.0
+Joint 4 - Position: -2.0391411599385094, Velocity: -79.95728890140624
+Joint 5 - Position: -0.27145700872057216, Velocity: 91.2657800250409
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,311 - logger - INFO - Joint 0 - Position: 1.9638727200243322, Velocity: 100.0
+Joint 1 - Position: -1.0964919638206244e-15, Velocity: 6.900920894240389e-14
+Joint 2 - Position: 1.5158667683314375, Velocity: 100.0
+Joint 3 - Position: 2.015482644643512, Velocity: 100.0
+Joint 4 - Position: -2.0918866700286975, Velocity: -12.658922421645144
+Joint 5 - Position: -0.4018218008385846, Velocity: -31.28755010832299
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,417 - logger - INFO - Joint 0 - Position: 2.380539386690999, Velocity: 100.0
+Joint 1 - Position: -1.0868440070436765e-15, Velocity: 2.3155096264675113e-15
+Joint 2 - Position: 1.9325334349981043, Velocity: 100.0
+Joint 3 - Position: 2.4321493113101784, Velocity: 100.0
+Joint 4 - Position: -1.6752200033620308, Velocity: 100.0
+Joint 5 - Position: -0.04393608168620661, Velocity: 85.89257259657072
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,551 - logger - INFO - Joint 0 - Position: 2.3822176818111, Velocity: 0.402790828824223
+Joint 1 - Position: -1.045826206535152e-15, Velocity: 9.844272122045882e-15
+Joint 2 - Position: 1.8057863410525479, Velocity: -30.419302546933523
+Joint 3 - Position: 2.3398710758951062, Velocity: -22.14677649961736
+Joint 4 - Position: -1.7918242058536598, Velocity: -27.985008597990927
+Joint 5 - Position: -0.16335055995299425, Velocity: -28.659474784029037
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,669 - logger - INFO - Joint 0 - Position: 2.382735057508106, Velocity: 0.12417016728154029
+Joint 1 - Position: -1.0428455046912753e-15, Velocity: 7.153684425303975e-16
+Joint 2 - Position: 1.5465852055833484, Velocity: -62.20827251260785
+Joint 3 - Position: 2.0444594670656313, Velocity: -70.89878611907395
+Joint 4 - Position: -2.002242003625593, Velocity: -50.50027146526399
+Joint 5 - Position: -0.4649567454865585, Velocity: -72.38548452805543
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,786 - logger - INFO - Joint 0 - Position: 2.7994017241747726, Velocity: 100.0
+Joint 1 - Position: -2.074962685004993e-15, Velocity: -2.477081232752923e-13
+Joint 2 - Position: 1.9632518722500152, Velocity: 100.0
+Joint 3 - Position: 2.461126133732298, Velocity: 100.0
+Joint 4 - Position: -1.7496299725548428, Velocity: 60.626887456980064
+Joint 5 - Position: -0.4649567454865589, Velocity: -9.947598300641403e-14
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:57,901 - logger - INFO - Joint 0 - Position: 2.798169703129116, Velocity: -0.29568505095762987
+Joint 1 - Position: -2.067448906954636e-15, Velocity: 1.8033067320857406e-15
+Joint 2 - Position: 1.8254914875348316, Velocity: -33.06249233164408
+Joint 3 - Position: 2.345029825430977, Velocity: -27.863113992316975
+Joint 4 - Position: -1.8902525504712246, Velocity: -33.74941869993165
+Joint 5 - Position: -0.6138488018597265, Velocity: -35.73409352956021
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:58,019 - logger - INFO - Joint 0 - Position: 2.799085578513006, Velocity: 0.2198100921336542
+Joint 1 - Position: -2.069460288291011e-15, Velocity: -4.827315207301061e-16
+Joint 2 - Position: 1.4519592448960732, Velocity: -89.647738233302
+Joint 3 - Position: 1.9283631587643104, Velocity: -100.0
+Joint 4 - Position: -2.29394520795216, Velocity: -96.88623779542448
+Joint 5 - Position: -1.030515468526393, Velocity: -100.0
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:58,134 - logger - INFO - Joint 0 - Position: 2.3824189118463397, Velocity: -100.0
+Joint 1 - Position: -2.761721657267174e-15, Velocity: -1.6614272855427904e-13
+Joint 2 - Position: 1.0352925782294065, Velocity: -100.0
+Joint 3 - Position: 1.5116964920976437, Velocity: -100.0
+Joint 4 - Position: -2.4320299957604643, Velocity: -33.14034907399305
+Joint 5 - Position: -1.4471821351930598, Velocity: -100.0
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:33:58,233 - logger - INFO - Joint 0 - Position: 1.965752245179673, Velocity: -100.0
+Joint 1 - Position: 3.5033359780437554e-14, Velocity: 9.070819545049134e-12
+Joint 2 - Position: 0.6186259115627397, Velocity: -100.0
+Joint 3 - Position: 1.095029825430977, Velocity: -100.0
+Joint 4 - Position: -2.015363329093798, Velocity: 100.0
+Joint 5 - Position: -1.8638488018597266, Velocity: -100.0
+Joint 6 - Position: 0.0, Velocity: 0.0 - client_socket.py - 104
+2024-10-28 15:35:00,147 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:35:00,356 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:36:00,865 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:36:01,078 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:37:02,158 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:37:02,350 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:37:06,338 - logger - INFO - Координаты осей [-60.0, 40.0, -10.0, -60.0, -75.0, 0.0] - client_socket.py - 217
+2024-10-28 15:37:06,839 - logger - INFO - set joints - client_socket.py - 220
+2024-10-28 15:37:06,900 - logger - INFO - Мировые координаты [643.622, -1289.604, 254.682, 124.7, 24.209, -58.492] - client_socket.py - 217
+2024-10-28 15:37:07,401 - logger - INFO - Команд в очереди ['ok'] - client_socket.py - 217
+2024-10-28 15:37:16,486 - logger - INFO - Координаты осей [-60.0, 40.0, -10.0, -60.0, -75.0, 0.0] - client_socket.py - 217
+2024-10-28 15:37:16,987 - logger - INFO - set joints - client_socket.py - 220
+2024-10-28 15:37:17,048 - logger - INFO - Мировые координаты [643.622, -1289.604, 254.682, 124.7, 24.209, -58.492] - client_socket.py - 217
+2024-10-28 15:37:17,549 - logger - INFO - Команд в очереди ['ok'] - client_socket.py - 217
+2024-10-28 15:37:35,815 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:37:36,000 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:37:43,921 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:37:44,108 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:38:02,381 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:38:02,590 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:38:32,257 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:38:32,443 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:38:54,357 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:38:54,518 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:39:21,817 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:39:22,011 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:39:27,509 - logger - INFO - UPDATE - client_socket.py - 149
+2024-10-28 15:39:27,510 - logger - INFO - Координаты осей [0.0, 0.0, 0.0, 0.0, 5.0, 0.0] - client_socket.py - 218
+2024-10-28 15:39:28,010 - logger - INFO - set joints - client_socket.py - 221
+2024-10-28 15:39:28,072 - logger - INFO - Мировые координаты [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] - client_socket.py - 218
+2024-10-28 15:39:28,573 - logger - INFO - Команд в очереди ['ok'] - client_socket.py - 218
+2024-10-28 15:39:43,353 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:39:43,512 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:39:52,852 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:39:52,991 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:41:19,530 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:41:19,704 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:41:48,403 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:41:48,611 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:56:06,044 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:56:06,151 - logger - INFO - Начат цикл симуляции - client_socket.py - 88
+2024-10-28 15:56:18,430 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:56:18,629 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:56:36,596 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:56:36,734 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:57:00,819 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:57:00,969 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:57:42,534 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:57:42,670 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:57:58,330 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:57:58,486 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:58:21,909 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:58:22,013 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:58:28,032 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:58:28,167 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:58:34,381 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:58:34,519 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:58:41,842 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:58:41,997 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:58:51,642 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:58:51,781 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:59:07,043 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:59:07,180 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 15:59:20,792 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 15:59:20,985 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:03:27,042 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:03:27,225 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:08:06,682 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:08:08,340 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:32:42,811 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:32:47,941 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:32:49,373 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:38:25,781 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:39:23,053 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:39:24,055 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:39:25,343 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:40:08,304 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:40:09,457 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:42:55,305 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:42:56,450 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:43:03,961 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:43:04,028 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:43:05,184 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:49:19,611 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:49:20,613 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:49:36,491 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:49:37,492 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:49:38,790 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:49:58,254 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:49:59,256 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:50:00,581 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:50:08,178 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:50:09,180 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:50:10,500 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:50:31,431 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:50:32,433 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:50:33,615 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:50:40,408 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:50:41,410 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:50:42,682 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:51:00,982 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:51:02,122 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:51:27,081 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:51:28,244 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:51:32,818 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:51:33,820 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:51:35,108 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:52:23,954 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:52:24,956 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:52:26,101 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:53:06,956 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:53:07,958 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:53:09,288 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:55:09,492 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:55:10,494 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:55:11,824 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:55:38,840 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:55:39,842 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:55:41,108 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:56:04,283 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:56:05,285 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:56:06,534 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:56:14,530 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:56:15,532 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:56:16,834 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:56:49,285 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:56:50,286 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:56:51,536 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
+2024-10-28 16:58:04,526 - logger - INFO - not_connected - robot.py - 52
+2024-10-28 16:58:05,529 - logger - INFO - GUI - client_socket.py - 55
+2024-10-28 16:58:06,810 - logger - INFO - Начат цикл симуляции - client_socket.py - 87
diff --git a/gui/imitator.py b/gui/imitator.py
index 5547399..5dd13e8 100644
--- a/gui/imitator.py
+++ b/gui/imitator.py
@@ -28,7 +28,7 @@ class Imitator(QWidget):
self.layout.addWidget(l)
self.updButton = QPushButton('Обновить данные')
- self.updButton.clicked.connect(self.updateState)
+ self.updButton.clicked.connect(self.updateData)
self.layout.addWidget(self.updButton)
diff --git a/gui/robot.py b/gui/robot.py
index de9a8dd..67b8caf 100644
--- a/gui/robot.py
+++ b/gui/robot.py
@@ -1,8 +1,16 @@
-import sys
import time
-from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QRadioButton, QPushButton, QButtonGroup
+from PyQt5.QtWidgets import (
+ QWidget,
+ QVBoxLayout,
+ QLabel,
+ QRadioButton,
+ QPushButton,
+ QButtonGroup,
+)
from PyQt5.QtCore import Qt, QTimer
+from logger import logger
+
class ChangeRobot(QWidget):
def __init__(self, robots, updateRobot, status):
super().__init__()
@@ -41,12 +49,13 @@ class ChangeRobot(QWidget):
def updateConnectButtonText(self):
radioState = True
+ logger.info(self.status())
if self.status() == "not_connected":
self.connectButton.setText("Соединить")
elif self.status() == "connected":
self.connectButton.setText("Отключить")
radioState = False
-
+
for radioButton in self.robotsRadio:
radioButton.setEnabled(radioState)
@@ -76,4 +85,4 @@ class ChangeRobot(QWidget):
p = self.palette()
p.setColor(self.backgroundRole(), Qt.lightGray)
self.setPalette(p)
- super().paintEvent(event)
\ No newline at end of file
+ super().paintEvent(event)
diff --git a/gui/visualize.py b/gui/visualize.py
index 9978766..870b3e6 100644
--- a/gui/visualize.py
+++ b/gui/visualize.py
@@ -1,8 +1,8 @@
import time
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QSizePolicy
-from PyQt5.QtGui import QImage, QPixmap, QColor
-from PyQt5.QtCore import Qt, QTimer
+from PyQt5.QtGui import QImage, QPixmap
+from PyQt5.QtCore import Qt, QTimer, QSize
import numpy as np
from PIL import Image
@@ -32,7 +32,7 @@ class Visualize(QWidget):
# Таймер для обновления изображения
self.timer = QTimer()
self.timer.timeout.connect(self.update_image)
- self.timer.start(int(1000/24)) # Обновление каждые 100 мс
+ self.timer.start(int(1000/240)) # Обновление каждые 100 мс
def update_image(self):
res = self.get_pybullet_image()
@@ -40,23 +40,13 @@ class Visualize(QWidget):
if not res: return
(rgb, width, height) = res
- # logger.info(f"Image size: {width}x{height}, RGB data length: {len(rgb)}")
- # rgbim = Image.fromarray(rgb)
- # rgbim.save(f"test_img/rgbtest/{time.time() }.png")
- # Преобразуем RGB данные в массив NumPy
- rgb_array = np.array(rgb, dtype=np.uint8)
-
- # Изменяем форму массива на (height, width, 4) для QImage
- rgb_array = rgb_array.reshape(height, width, 4)
- # Преобразование RGB-данных в QImage
- image = QImage(rgb_array, width, height, QImage.Format_RGBA8888)
+ image = QImage(rgb, width, height, QImage.Format_RGBA8888)
image = image.convertToFormat(QImage.Format_RGB888)
-
pixmap = QPixmap.fromImage(image)
- # Обновление изображения на QLabel
self.label.setPixmap(pixmap)
+ self.label.resize(image.size())
self.label.repaint()
def paintEvent(self, event):
diff --git a/main.py b/main.py
index 78cab8d..030017c 100644
--- a/main.py
+++ b/main.py
@@ -13,23 +13,17 @@ class MyApp:
with open("./robots.json", "r") as file:
robots = json.load(file)
+ robot_app = None
+
def __init__(self, mode):
self.mode = mode
- self.startRobot()
+
self.startGui()
-
- def get_status(self):
- if self.robot_app:
- return self.robot_app.get_status()
- else:
- return self.def_robot_status()
-
- def def_robot_status(self):
- return SocketRobotArm.Status[1]
+ self.startRobot()
+ self.startWindow()
def startGui(self):
- app = QApplication(sys.argv)
- self.robot_app.q_app = app
+ self.app = QApplication(sys.argv)
mainWindow = MainContentComponent(
get_status=self.get_status,
robotPanel={
@@ -41,19 +35,21 @@ class MyApp:
"status": self.get_status,
},
imitatorPanel={
- "world_coord": self.robot_app.get_world_coordinates,
- "axis_coord": self.robot_app.get_axis_coordinates,
- "command_count": self.robot_app.get_command_count,
- "updateData": self.robot_app.upd_model,
+ "world_coord": self.get_world_coordinates,
+ "axis_coord": self.get_axis_coordinates,
+ "command_count": self.get_command_count,
+ "updateData": self.update_data_wrapper,
},
visPanel={
- "get_pybullet_image": self.robot_app.get_pybullet_image,
+ "get_pybullet_image": self.get_pybullet_image_wrapper,
},
)
mainWindow.setWindowTitle("ROBOT GUI")
- mainWindow.show()
+ self.window = mainWindow
- sys.exit(app.exec_())
+ def startWindow(self):
+ self.window.show()
+ sys.exit(self.app.exec_())
def startRobot(self):
self.robot_app = SocketRobotArm()
@@ -77,6 +73,39 @@ class MyApp:
self.robot_app.connect(
selected_robot["host"], selected_robot["slave_id"]
)
+
+ # Функции-обертки
+ def get_status(self):
+ if self.robot_app:
+ return self.robot_app.get_status()
+ else:
+ return "not_connected"
+
+ def get_world_coordinates(self):
+ if self.robot_app:
+ return self.robot_app.get_world_coordinates()
+ return None # Или любое значение по умолчанию
+
+ def get_axis_coordinates(self):
+ if self.robot_app:
+ return self.robot_app.get_axis_coordinates()
+ return None # Или любое значение по умолчанию
+
+ def get_command_count(self):
+ if self.robot_app:
+ return self.robot_app.get_command_count()
+ return 0 # Или любое значение по умолчанию
+
+ def update_data_wrapper(self, data):
+ if self.robot_app:
+ self.robot_app.upd_model(data)
+ else:
+ print("robot_app еще не инициализирован.")
+
+ def get_pybullet_image_wrapper(self):
+ if self.robot_app:
+ return self.robot_app.get_pybullet_image()
+ return (None, 0, 0) # Или любое значение по умолчанию
if __name__ == "__main__":
diff --git a/robot/client_socket.py b/robot/client_socket.py
index a481805..d05a25d 100644
--- a/robot/client_socket.py
+++ b/robot/client_socket.py
@@ -57,19 +57,19 @@ class SocketRobotArm:
def run_pybullet(self, type="DIRECT"):
self.physics_client = p.connect(getattr(p, type))
- # p.setGravity(0, 0, -9.81, physicsClientId=self.physics_client)
+ p.setGravity(0, 0, -9.81, physicsClientId=self.physics_client)
p.setAdditionalSearchPath(pybullet_data.getDataPath())
p.configureDebugVisualizer(p.COV_ENABLE_RENDERING, 0)
p.configureDebugVisualizer(p.COV_ENABLE_GUI, 0)
- threading.Thread(target=self.load_models, daemon=True).start()
- threading.Thread(target=self.simulation_loop, daemon=True).start()
+ self.load_models()
+ self.simulation_loop()
def load_models(self):
- p.loadURDF("plane.urdf")
+ p.loadURDF("plane.urdf", physicsClientId=self.physics_client)
urdf_path = os.path.join("urdf", f"{self.urdf_filename}.urdf")
- self.body_id = p.loadURDF(urdf_path, [0, 0, 0], useFixedBase=True, globalScaling=2)
+ self.body_id = p.loadURDF(urdf_path, [0, 0, 0], useFixedBase=1, physicsClientId=self.physics_client)
time.sleep(1)
# Получение AABB
@@ -86,28 +86,25 @@ class SocketRobotArm:
def simulation_loop(self):
logger.info(f"Начат цикл симуляции")
while True:
- bodyUniqueId = self.body_id
- position, orientation = p.getBasePositionAndOrientation(bodyUniqueId)
- # logger.info(f"Position: {position}, Orientation: {orientation}")
+ # bodyUniqueId = self.body_id
+ # position, orientation = p.getBasePositionAndOrientation(bodyUniqueId)
+ # # logger.info(f"Position: {position}, Orientation: {orientation}")
- # Получение состояния суставов
- num_joints = p.getNumJoints(bodyUniqueId)
- joint_states = p.getJointStates(bodyUniqueId, range(num_joints))
+ # # Получение состояния суставов
+ # num_joints = p.getNumJoints(bodyUniqueId)
+ # joint_states = p.getJointStates(bodyUniqueId, range(num_joints))
- joint_log = []
- for i, state in enumerate(joint_states):
- joint_position = state[0] # Угол
- joint_velocity = state[1] # Угловая скорость
- joint_log.append(
- f"Joint {i} - Position: {joint_position}, Velocity: {joint_velocity}"
- )
+ # joint_log = []
+ # for i, state in enumerate(joint_states):
+ # joint_position = state[0] # Угол
+ # joint_velocity = state[1] # Угловая скорость
+ # joint_log.append(
+ # f"Joint {i} - Position: {joint_position}, Velocity: {joint_velocity}"
+ # )
# logger.info("\n".join(joint_log))
p.stepSimulation()
- if self.q_app:
- self.q_app.processEvents()
-
- time.sleep(1 / 24) # 24 кадра в секунду
+ time.sleep(1 / 240) # 24 кадра в секунду
def get_pybullet_image(self):
if self.physics_client is None:
@@ -116,17 +113,16 @@ class SocketRobotArm:
width, height, rgb, _, _ = p.getCameraImage(
width=640,
height=640,
- # viewMatrix=p.computeViewMatrix(
- # cameraEyePosition=[2, 2, 2],
- # cameraTargetPosition=[0, 0, 0],
- # cameraUpVector=[0, 0, 1],
- # ),
- # projectionMatrix=p.computeProjectionMatrixFOV(
- # fov=60.0, aspect=1.0, nearVal=0.1, farVal=10.0
- # ),
- # renderer=p.ER_TINY_RENDERER,
- # physicsClientId=self.physics_client,
- flags=p.ER_NO_SEGMENTATION_MASK,
+ viewMatrix=p.computeViewMatrix(
+ cameraEyePosition=[2, 2, 2],
+ cameraTargetPosition=[0, 0, 0],
+ cameraUpVector=[0, 0, 1],
+ ),
+ projectionMatrix=p.computeProjectionMatrixFOV(
+ fov=60.0, aspect=1.0, nearVal=0.1, farVal=10.0
+ ),
+ renderer=p.ER_TINY_RENDERER,
+ physicsClientId=self.physics_client,
)
return (rgb, width, height)
@@ -149,6 +145,7 @@ class SocketRobotArm:
return self.status
def upd_model(self):
+ logger.info('UPDATE')
self.get_axis()
self.set_text(text=f"Координаты осей {self.start_axis_coordinates}")
time.sleep(0.5)
@@ -157,7 +154,7 @@ class SocketRobotArm:
self.get_world()
self.set_text(text=f"Мировые координаты {self.start_world_coordinates}")
time.sleep(0.5)
- self.set_joint(self.convert_to_joint(self.start_world_coordinates[0:3]))
+ # self.set_joint(self.convert_to_joint(self.start_world_coordinates[0:3]))
self._get_command_count()
self.set_text(text=f"Команд в очереди {self.remote_command_count}")
diff --git a/urdf/fanucM16ib.urdf b/urdf/fanucM16ib.urdf
index ae09800..981ee2a 100644
--- a/urdf/fanucM16ib.urdf
+++ b/urdf/fanucM16ib.urdf
@@ -10,8 +10,8 @@
-
-
+
+
@@ -27,8 +27,8 @@
-
-
+
+
@@ -44,8 +44,8 @@
-
-
+
+
@@ -61,8 +61,8 @@
-
-
+
+
@@ -78,8 +78,8 @@
-
-
+
+
@@ -95,8 +95,8 @@
-
-
+
+
diff --git a/utils/test_socket_server.py b/utils/test_socket_server.py
index 1a1af98..d032cfd 100644
--- a/utils/test_socket_server.py
+++ b/utils/test_socket_server.py
@@ -4,6 +4,7 @@ import json
HOST = "127.0.0.1" # Standard loopback interface address (localhost)
PORT = 9760 # Port to listen on (non-privileged ports are > 1023)
+
def handle_client(conn, addr):
print(f"Connected by {addr}")
try:
@@ -15,16 +16,29 @@ def handle_client(conn, addr):
res = {"queryData": ["ok"]}
if "queryAddr" in req.keys() and "axis-0" in req["queryAddr"]:
- res["queryData"] = [-60, 40, -10, -60, -75, 0]
+ res["queryData"] = [
+ 0,
+ 0,
+ 0,
+ 0,
+ 5,
+ 0,
+ ]
if "queryAddr" in req and "world-0" in req["queryAddr"]:
res["queryData"] = [
- 643.622,
- -1289.604,
- 254.682,
- 124.70,
- 24.209,
- -58.492,
+ # 643.622,
+ # -1289.604,
+ # 254.682,
+ # 124.70,
+ # 24.209,
+ # -58.492,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
]
if req["reqType"] == "command":