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

Простейшие вопросы в области инженерной разработки
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

Огромное спасибо!
Очень Вам благодарен!
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

Вы меня извините, но обратно проблема.
Пытаюсь разбить заданный отрезок между двумя точками на отрезки с минимальным шагом для более точного позиционирования.
Вложения
Test_forum.vi
(49.89 КБ) 114 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

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

Сообщение IvanLis »

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

А по хорошему Вам нужно вычислить направляющий вектор, задать шаг и двигаться от точки-1 в направлении точки-2, до ее достижения. Но это уже самостоятельно можете разобраться, конечно если Вам захочется.
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

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

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

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

Сообщение 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
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

Спасибо за очень понятное разъяснение!
Я с этим разобрался и все понятно.
В примере, который сбрасывал, я так и пытался сделать, только не векторно, а отдельно с каждой координатой.
Пока я не разобрался как это сделать в лабвью.
Ну ничего буду пробовать разобраться.
Надо немного времени.
Если я разберусь, то постараюсь выложить результат.
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

Вобщем доделал!
Выкладываю, то что получилось, хотя конечно кривовато можно было бы и лучше, но работает.
Завтра постараюсь проверить в железе.
Планирую приступать к выборке информации с файла txt.
Вернее оно уже немного написано, но кое-что не получается.
Обратно надеюсь на Вашу помощь!
Вложения
Test_forum.vi
(72.68 КБ) 101 скачивание
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

Sergey писал(а):Пытался поставить visa close за циклом while но при соединении пишет ошибку. Потому, что когда я вывожу соединения с цикла for оно превращается в 1D array и не соединяется с visa close.
А без visa close выдает ошибку, которую я написал выше.
Ну, вы как будто только вчера :labview: открыли. :D
Вложения
2017-10-07_10-13-41.jpg
Sergey
beginner
beginner
Сообщения: 44
Зарегистрирован: 02 ноя 2009, 12:40
Версия LabVIEW: Labview2010
Контактная информация:

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

Сообщение Sergey »

Добрый день!
Огромное Спасибо!
Ответить

Вернуться в «Для чайников»