roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 май 2025, 15:39

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 12:59 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
Duhas писал(а):
ну тут уже правильно Dead говорил, перед вычислением арккосинуса простыми ИФ-ами проверяйте четверть и все...


ПС мы обратную считали поисковыми методами...


А где можно почитать про эти поисковые методы?
Насчет If'ов: Простыми if'ами тут не отделаешься. В обратной задаче все сложнее, т.к. 5 углов и 3 координаты, углы не из начала координат. Dead говорил про виртуальную пружину, которая реагирует на переход угла в другую четверть. У функции arccos переход плавный, там не на что реагировать. А у arctg происходит скачок, там можно поставить эту самую виртуальную пружину (в матлабе, кстати она есть). Может есть алгоритм расчета обратной задачи, где все углы находятся arctg-ами?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 13:18 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
ну как это не отделаешься ??

у вас проблема с аркосинусом.. можете процедуру написать и вставить ее вместо стандартной арккос, в которой будете сначала входные данные для функции арккос проверять ИФ-ами...

или мы вас не правильно понимаем..
тогда приведите примеры входных данных и верного результата - данных и неверного результата

поисковые методы - например симплексный или случайный поиск... ГА и т.д... в таком случае берутся некоторые значения углов сочленений, считается прямая задача, на основе расхождений цели и полученных координат взятые значения смещаются... и так далее.. минус в том, что не определено время поиска... но не нужно всегда считать всю математику... из расчетов - только прямая задача остается...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 14:25 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
файлик утром отправил, письмо пришло?
попробуйте погуглить "matlab inverse kinematics", на вскидку инфы много.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 15:58 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
Duhas писал(а):
ну как это не отделаешься ??

у вас проблема с аркосинусом.. можете процедуру написать и вставить ее вместо стандартной арккос, в которой будете сначала входные данные для функции арккос проверять ИФ-ами...

или мы вас не правильно понимаем..
тогда приведите примеры входных данных и верного результата - данных и неверного результата

поисковые методы - например симплексный или случайный поиск... ГА и т.д... в таком случае берутся некоторые значения углов сочленений, считается прямая задача, на основе расхождений цели и полученных координат взятые значения смещаются... и так далее.. минус в том, что не определено время поиска... но не нужно всегда считать всю математику... из расчетов - только прямая задача остается...


1. Как я могу проверять входные данные для arccos, если у меня 4 угла и они выходят не из начала координат? соответственно вариант "x<0, y>0" не подходит. Потому-что четверть меняется уже не зависимо от их значений.
2. Пример я выложила в коде, он как раз дает неправильное значение, т.к. углы вычисляются не из тех четвертей.

Добавлено спустя 45 секунд:
Angel71 писал(а):
файлик утром отправил, письмо пришло?
попробуйте погуглить "matlab inverse kinematics", на вскидку инфы много.

Да, только сейчас удалось дорваться до почты :) Спасибо большое буду смотреть :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
ну искать по коду пример не оч удобно )

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 16:32 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
Duhas писал(а):
ну искать по коду пример не оч удобно )


Просто если код в matlab вставить он очень наглядные графики чертит. :) Примером является весь код...
Алгоритм вычисления обратной задачи очень длинный... трудно на пальцах объяснить :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 17:01 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
оспади.. вы что функции arccos скармливаете ? всю обратную задачу? нет! одно число! или я чего то не понимаю...

ПС матлаб еще не был установлен после сноса форточки

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 17:38 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
Duhas писал(а):
оспади.. вы что функции arccos скармливаете ? всю обратную задачу? нет! одно число! или я чего то не понимаю...

ПС матлаб еще не был установлен после сноса форточки


Это вкратце:
Код:
%Обратная  задача
a2=431.8; s2=149.09; a3=433.07; s6=56.25;
qi=pi/3;
qi2=pi/3;
a13=sin(qi)*sin(qi2);
a23=-sin(qi)*cos(qi2);
a33=cos(qi);
wx=cs1-s6*a13;
wy=cs2-s6*a23;wz=cs3-s6*a33;
r=sqrt(wx.^2+wy.^2+wz.^2-s2^2);
q=asin(wz./r)
cq3=(a2^2-r.^2+a3^2)/(2*a2*a3);
q3=acos(cq3);         
b=acos((a2^2+r.^2-a3^2)./(2*a2.*r));
q2=b+q;
v=-s2.*wy-r.*cos(q).*wx;
m=-s2.*wx+r.*cos(q).*wy;
q1=atan2(v,m);
q5=acos(sin(qi).*sin(q1).*sin(q2+q3)+cos(qi).*cos(q2+q3))
q4=acos(-sin(qi2).*sin(q1)+cos(qi2)*cos(qi).*cos(q1);


Более понятное описание (и тоже короткое), в методичке, которую я выкладывала, выделено красным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 20:56 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
вот у вас есть:
acos(-sin(qi2).*sin(q1)+cos(qi2)*cos(qi).*cos(q1)
где, по-видимому, потеряна скобка.. вот то что у скобках у acos проверяйте ифами... на предмет нужной четверти...

acos((a2^2+r.^2-a3^2)./(2*a2.*r)) и тут также.. .чтобы вам не портить читаемость, напишите процедуру, например, my_acos в которой сначала будут ИФ-ы а потом cам acos...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 21:24 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
Duhas писал(а):
вот у вас есть:
acos(-sin(qi2).*sin(q1)+cos(qi2)*cos(qi).*cos(q1)
где, по-видимому, потеряна скобка.. вот то что у скобках у acos проверяйте ифами... на предмет нужной четверти...

acos((a2^2+r.^2-a3^2)./(2*a2.*r)) и тут также.. .чтобы вам не портить читаемость, напишите процедуру, например, my_acos в которой сначала будут ИФ-ы а потом cам acos...


А какие я буду писать условия? Если угол не в начале координат? Здесь уже нет прямой определяемой зависимости от x, y, z. На что я должна ссылаться в Ифах? Если бы там был не arccos а arctg, то там при переходе в другую четверть хотябы скачек углов был, его можно устранить. А arccos непрерывная функция. Там вообще непонятно когда переход угла в другую четверть...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 21:41 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
все тут говорят гдето про следующее:

Код:
real my_acos(real:x)
{
if(x>=0) return acos(x) else return(-acos(abs(x)))
}


и в коде уже вызывайте свой my_acos(-sin(qi2).*sin(q1)+cos(qi2)*cos(qi).*cos(q1))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 21:58 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
executer писал(а):
все тут говорят гдето про следующее:

Код:
real my_acos(real:x)
{
if(x>=0) return acos(x) else return(-acos(abs(x)))
}


и в коде уже вызывайте свой my_acos(-sin(qi2).*sin(q1)+cos(qi2)*cos(qi).*cos(q1))


Я понимаю о чем речь... Но вот это условие if(x>=0) - в данном случае не работает, т.е. при положительных координатах x,y, угол может быть как положительным так и отрицательным. Поэтому точно определить переход в данном случае я не могу... Если конечно нет какого-то специального условия, о котором я не знаю... А вот arctg может мне предоставить эти условия... Т.е. мне нужен алгоритм обратной задачи, который высчитывает углы arctg-ами.

Добавлено спустя 3 минуты 49 секунд:
Angel71 писал(а):
файлик утром отправил, письмо пришло?
попробуйте погуглить "matlab inverse kinematics", на вскидку инфы много.

Angel71, Хочу вас поблагодарить за книгу :) Там как раз про Пуму и арктангенсами :))) То что доктор прописал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 22:14 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
пожалуйста. просмторел её на днях бегло. скелетное представление есть, векторы видел, углы эйлера упоминались, матрицы поворота тоже есть. книженция вроде считается классикой жанра. :) а вот использование кватерионов не обнаружил. :oops: в общем "забил" на неё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 23:10 
Не в сети
Аватара пользователя

Зарегистрирован: 09 апр 2010, 10:01
Сообщения: 23
Откуда: Москва
прог. языки: C/C++; Matlab
ФИО: Петина Наталья
Angel71 писал(а):
пожалуйста. просмторел её на днях бегло. скелетное представление есть, векторы видел, углы эйлера упоминались, матрицы поворота тоже есть. книженция вроде считается классикой жанра. :) а вот использование кватерионов не обнаружил. :oops: в общем "забил" на неё.


У меня есть книжулька какая-то про кватернионы в техническом зрении и робототехнике, малюсенькая такая (15 стр.), я до нее так и не добралась, поэтому не оценила еще ее пользы... Если интересно могу сбросить... Там по крайней мере есть ссылки на другие книжки про кватернионы :) ::


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расчет траектории движения робота РМ-01(Puma 560)
СообщениеДобавлено: 10 апр 2010, 23:43 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:) не, спасибки. :crazy: я недавно десятками гиг выкачивал всякого обучающего видео и книжек по физике, математике,... :o хоть бы это переварить


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO