roboforum.ru

Технический форум по робототехнике.

Алгоритм для ноги Хексапода

Алгоритм для ноги Хексапода

Aseris » 16 июн 2010, 00:05

И так СВЕРШИЛОСЬ. Выношу на рассмотрение робо-общественности реализованый алгоритм на С который вычисляет углы серв для ноги хексапода, или любой 3х сервной конечности, который можно впихнуть в любой 8 битный МК (где памти хватит).

Откопаны основные глюки, и вроде (тьху, тьху) работает,

Вся математика вынесена в файл Mathematics.c
Расчеты ведутся в фиксированой запятой.

Формат входных даных 1:10:5 . т.е. 5 см = 5*32, -5 см = 65536-5*32

Основные функции:

calcG(x,y); - Вычисление угла поворота ноги и длины на которую развернута нога для второй функции

CalcNextStep(z,wDlinaW); - вычисление углов на двух сервах ноги

Алгоритм положения ноги отабатывает следующим макаром:
(скрины с софтины отладчика моего творчиства, из отладчика пересылается только координата и калибровка)
1_chetvertj.jpg
1 четверть координат
1_chetvertj.jpg (39.99 КиБ) Просмотров: 6814

Как показано для 2 и 3 четверти, ноги поджимаем под себя.
2_Chetvertj.jpg
2 четверть координат
2_Chetvertj.jpg (20.26 КиБ) Просмотров: 6815

3_chetvertj.jpg
3 четверть координат
3_chetvertj.jpg (34.72 КиБ) Просмотров: 6819

4_chetvertj.jpg
4 четверть координат
4_chetvertj.jpg (42.51 КиБ) Просмотров: 6814


Результат первых тестов смотрим на фото:
results.jpg
Буква Е


По ходу отладки алгоритма буду обновлять версии файлов.

Результат выкладывается в таком виде чтоб чаще вдохновение приходило
Вложения
nogkontr_v1.1.zip
мейн плюс математика
(12.68 КиБ) Скачиваний: 0
Последний раз редактировалось Aseris 29 июн 2010, 13:22, всего редактировалось 1 раз.

Re: Алгоритм для ноги Хексапода

wintersun » 18 июн 2010, 13:00

Круто!!Маладца))) Заходи в скайп, потрындим. Мой ник eksia-savage

Re: Алгоритм для ноги Хексапода

br0x » 25 июн 2010, 18:09

Однако баги присутствуют:
if ((x=0)&&(y<0))
{
wDlinaW=k-176; //(176 = 5,5)
wGamma=51472;
return;
}
Имелось в виду x==0?

Re: Алгоритм для ноги Хексапода

Aseris » 29 июн 2010, 13:18

Угу, но как ни странно с этой ошибкой движения правильно отрабатываются :oops:
поправил и выложил в версии 1.1

Re: Алгоритм для ноги Хексапода

morion15 » 10 окт 2010, 20:18

Привет всем, Aseris если не сложно скажи в какой ты проге делал мат модель ноги, и как возможно отслеживать положение конкретной сервы, чтобы знать что операция завершилась. Или алгоритм строиться на уверенности что серва стала на свое место и ей ничего не мешает при этом?

Re: Алгоритм для ноги Хексапода

Aseris » 18 ноя 2010, 16:34

Извиняюсь за поздний ответ, не заметил что кому-то тема интересна,

Если актуально,
то формулы писал на бумажке, пробовал сначала сам вывести, где бы были одни и те же тригонометрические операции, в итоге дошел до того-же что и linxmoition на своем фениксе. В данной теме выложена программа для вычисления углов для сервоприводов по x,y,z координатам кончика ноги на целочисленной математике.

Отслеживание делал по измерению напряжения на резисторе сервы, модифицировал ее. Но пока это все лежит на полочке, переделываю механику.

Для проверки корректности работы алгоритма и табулирования тригонометрических функций использовал matlab.

Граф. интерфейс для тестирования написан на дельфи, о чем жалею, ибо надоело преобразовывать код pascal -> c, для новой механики с 4 сервами на ногу буду все на матлабе писать.

Алгоритм движения шестинога окончательно еще не прописан, но в тестовом варианте идет пока без отслеживания положения.

Re: Алгоритм для ноги Хексапода

EIN_ENGEL » 18 ноя 2010, 21:03

Aseris писал(а):Извиняюсь за поздний ответ, не заметил что кому-то тема интересна,

Если актуально,
то формулы писал на бумажке, пробовал сначала сам вывести, где бы были одни и те же тригонометрические операции, в итоге дошел до того-же что и linxmoition на своем фениксе. В данной теме выложена программа для вычисления углов для сервоприводов по x,y,z координатам кончика ноги на целочисленной математике.

Отслеживание делал по измерению напряжения на резисторе сервы, модифицировал ее. Но пока это все лежит на полочке, переделываю механику.

Для проверки корректности работы алгоритма и табулирования тригонометрических функций использовал matlab.

Граф. интерфейс для тестирования написан на дельфи, о чем жалею, ибо надоело преобразовывать код pascal -> c, для новой механики с 4 сервами на ногу буду все на матлабе писать.

Алгоритм движения шестинога окончательно еще не прописан, но в тестовом варианте идет пока без отслеживания положения.


А у тебя робот к компу как подключается?
У меня в Матлабе работает ФТДИ. Я с неё данные прямо в симулинк принимаю.
Вот как образец, сигналы с инерциалки:
Вложения
imu2.jpg

Re: Алгоритм для ноги Хексапода

Aseris » 19 ноя 2010, 02:34

Комп - Мост USB-I2C, USB-UART - спинной мозг робота пока только на делфи реализовано до матлаба руки вот только сейчас дошли.

Re: Алгоритм для ноги Хексапода

avr123.nm.ru » 09 янв 2014, 13:48

EIN_ENGEL писал(а): У меня в Матлабе работает ФТДИ. Я с неё данные прямо в симулинк принимаю.
Поделитесь пожалуйста кодом или проектом для MATLAB чтоб данные с COM принимать как у вас и графики строились. :Bravo:

Re: Алгоритм для ноги Хексапода

Duhas » 05 мар 2014, 11:37

да принятие прямо в симулинк - это интересно)

а так в консоли serial и жмем F1 и наслаждаемся хэлпом матлаба

Re: Алгоритм для ноги Хексапода

avr123.nm.ru » 11 мар 2014, 18:09



cron
Rambler\'s Top100 Mail.ru counter