Страница 3 из 3

Re: Автоматизация робота

Добавлено: 22 сен 2017, 09:55
Sergey
Огромное спасибо!
Очень Вам благодарен!

Re: Автоматизация робота

Добавлено: 22 сен 2017, 12:37
Sergey
Вы меня извините, но обратно проблема.
Пытаюсь разбить заданный отрезок между двумя точками на отрезки с минимальным шагом для более точного позиционирования.

Re: Автоматизация робота

Добавлено: 22 сен 2017, 14:40
IvanLis
Увертюра была многообещающая:
Sergey писал(а):Решил продолжить улучшать алгоритм робота.
Почему бы мне не податься в хирурги или стоматологи :dntknw: , пусть меня научат :help: .
Sergey писал(а):Пытаюсь разбить заданный отрезок между двумя точками на отрезки с минимальным шагом для более точного позиционирования.
Вы не координаты точки вычисляете а расстояние между точками, тем более у Вас изначально 3D, а формула используется для 2D, координату z куда дели?
Вам же нужно вычислить координаты промежуточных точек, были предложения использовать аппарат интерполяции.
Если это сложно, то начните с вычисления средней точки, в результате вы отрезок разобьете пополам.
Получившиеся отрезки можно разбить еще раз, получится 3 промежуточных точки. И т.д. и т.п. ......

А по хорошему Вам нужно вычислить направляющий вектор, задать шаг и двигаться от точки-1 в направлении точки-2, до ее достижения. Но это уже самостоятельно можете разобраться, конечно если Вам захочется.

Re: Автоматизация робота

Добавлено: 22 сен 2017, 15:08
Sergey
Спасибо за подсказки!
Попробую разобраться. :think:
Я вот только подумал по поводу замечаний. Да фигура 3D, но пока что я пытаюсь реализовать хотя бы XY, поэтому координату Z делаю константой.
По поводу предложенных расчетов.
Сначала я нахожу общее расстояние между точками X1 и Х2, Y1 и Y2 (по формуле сумма квадратов расстояний между точками под корнем).
Потом зная какой минимальный шаг (К) робот хорошо отрабатывает (например, 1мм), делением общего расстояния на этот коэффициент получаю количество точек необходимых на эту длину.
Затем, на примере координаты Х, определяю какое будет расстояние между точками (Х2-Х1)/К=L.
Далее к координате Х1 прибавляю L и таким образом набираю нужную длину.
Это я попытался реализовать в предложенном примере, но почему то конечное решение не совпадает с нужной длинной отрезка.

Re: Автоматизация робота

Добавлено: 22 сен 2017, 17:01
IvanLis
Sergey писал(а):Сначала я нахожу общее расстояние между точками X1 и Х2, Y1 и Y2 (по формуле сумма квадратов расстояний между точками под корнем).
Потом зная какой минимальный шаг (К) робот хорошо отрабатывает (например, 1мм), делением общего расстояния на этот коэффициент получаю количество точек необходимых на эту длину.
Затем, на примере координаты Х, определяю какое будет расстояние между точками (Х2-Х1)/К=L.
Далее к координате Х1 прибавляю L и таким образом набираю нужную длину.
Это я попытался реализовать в предложенном примере, но почему то конечное решение не совпадает с нужной длинной отрезка.
Смотрите, например Вам нужно перейти из т. A(2,1,3) в т. B(5,8,7).
Для этого необходимо сместиться B-A: dx=3, dy=7, dz=4, можно это записать как вектор AB(3, 7, 4).
Допустим, что система нормально работает при значении шага по каждой из координат ds<=0.2.
Получаем количество шагов: Step=max(3, 7, 4)/0.2 = 7/0.2 = 35
Вычисляем вектор сдвига за один шаг: dAB = AB(3, 7, 4)/Step = (0.0857, 0.2, 0.1143)
Получается, что стартуя из точки A(2,1,3), сдвигаясь каждый раз на dAB(0.0857, 0.2, 0.1143) за количество шагов Step=35 мы придем в точку B(5,8,7).
это с учетом округлений, по хорошему последний шаг нужно делать переход именно в точку B(5,8,7) по абсолютным координатам, а не относительным.

------------
Вот и вся петрушка.

Почитайте еще: http://www.cleverstudents.ru/line_and_p ... _line.html

Re: Автоматизация робота

Добавлено: 23 сен 2017, 13:20
Sergey
Спасибо за очень понятное разъяснение!
Я с этим разобрался и все понятно.
В примере, который сбрасывал, я так и пытался сделать, только не векторно, а отдельно с каждой координатой.
Пока я не разобрался как это сделать в лабвью.
Ну ничего буду пробовать разобраться.
Надо немного времени.
Если я разберусь, то постараюсь выложить результат.

Re: Автоматизация робота

Добавлено: 24 сен 2017, 23:33
Sergey
Вобщем доделал!
Выкладываю, то что получилось, хотя конечно кривовато можно было бы и лучше, но работает.
Завтра постараюсь проверить в железе.
Планирую приступать к выборке информации с файла txt.
Вернее оно уже немного написано, но кое-что не получается.
Обратно надеюсь на Вашу помощь!

Re: Автоматизация робота

Добавлено: 07 окт 2017, 00:05
Sergey
Здравствуйте уважаемые Знатоки!
Вот возник еще один вопрос.
Доставил в проект передачу данных и проблема.
VISA: (Hex 0xBFFF000E) The given session or object reference is invalid.
Пытался поставить visa close за циклом while но при соединении пишет ошибку. Потому, что когда я вывожу соединения с цикла for оно превращается в 1D array и не соединяется с visa close.
А без visa close выдает ошибку, которую я написал выше.
Как это решить уже не знаю. Пытался много раз, чтобы на форуме не тревожить никого, но другого выхода нету как спросить совета.

Re: Автоматизация робота

Добавлено: 07 окт 2017, 08:15
dadreamer
Sergey писал(а):Пытался поставить visa close за циклом while но при соединении пишет ошибку. Потому, что когда я вывожу соединения с цикла for оно превращается в 1D array и не соединяется с visa close.
А без visa close выдает ошибку, которую я написал выше.
Ну, вы как будто только вчера :labview: открыли. :D

Re: Автоматизация робота

Добавлено: 09 окт 2017, 11:41
Sergey
Добрый день!
Огромное Спасибо!