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 КиБ) Просмотров: 6618

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

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

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


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


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

Результат выкладывается в таком виде чтоб чаще вдохновение приходило
Вложения
nogkontr_v1.1.zip
мейн плюс математика
(12.68 КиБ) Скачиваний: 0
Последний раз редактировалось Aseris 29 июн 2010, 13:22, всего редактировалось 1 раз.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение wintersun » 18 июн 2010, 13:00

Круто!!Маладца))) Заходи в скайп, потрындим. Мой ник eksia-savage
Аватара пользователя
wintersun
 
Сообщения: 29
Зарегистрирован: 18 май 2009, 16:20
Откуда: Днепропетровск
прог. языки: Vb,C,C++

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

Сообщение br0x » 25 июн 2010, 18:09

Однако баги присутствуют:
if ((x=0)&&(y<0))
{
wDlinaW=k-176; //(176 = 5,5)
wGamma=51472;
return;
}
Имелось в виду x==0?
Here I am, brain the size of a planet, and they ask me to take you to the bridge!
Аватара пользователя
br0x
 
Сообщения: 59
Зарегистрирован: 18 май 2010, 00:32
Откуда: Харьков
прог. языки: C, Haskell

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

Сообщение Aseris » 29 июн 2010, 13:18

Угу, но как ни странно с этой ошибкой движения правильно отрабатываются :oops:
поправил и выложил в версии 1.1
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение morion15 » 10 окт 2010, 20:18

Привет всем, Aseris если не сложно скажи в какой ты проге делал мат модель ноги, и как возможно отслеживать положение конкретной сервы, чтобы знать что операция завершилась. Или алгоритм строиться на уверенности что серва стала на свое место и ей ничего не мешает при этом?
morion15
 
Сообщения: 1
Зарегистрирован: 10 окт 2010, 20:11

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

Сообщение Aseris » 18 ноя 2010, 16:34

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

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

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

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

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

Алгоритм движения шестинога окончательно еще не прописан, но в тестовом варианте идет пока без отслеживания положения.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение EIN_ENGEL » 18 ноя 2010, 21:03

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

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

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

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

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

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


А у тебя робот к компу как подключается?
У меня в Матлабе работает ФТДИ. Я с неё данные прямо в симулинк принимаю.
Вот как образец, сигналы с инерциалки:
Вложения
imu2.jpg
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

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

Сообщение Aseris » 19 ноя 2010, 02:34

Комп - Мост USB-I2C, USB-UART - спинной мозг робота пока только на делфи реализовано до матлаба руки вот только сейчас дошли.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение avr123.nm.ru » 09 янв 2014, 13:48

EIN_ENGEL писал(а): У меня в Матлабе работает ФТДИ. Я с неё данные прямо в симулинк принимаю.
Поделитесь пожалуйста кодом или проектом для MATLAB чтоб данные с COM принимать как у вас и графики строились. :Bravo:
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение Duhas » 05 мар 2014, 11:37

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

а так в консоли serial и жмем F1 и наслаждаемся хэлпом матлаба
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение avr123.nm.ru » 11 мар 2014, 18:09

Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8


Вернуться в Наши проекты

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

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