И так СВЕРШИЛОСЬ. Выношу на рассмотрение робо-общественности реализованый алгоритм на С который вычисляет углы серв для ноги хексапода, или любой 3х сервной конечности, который можно впихнуть в любой 8 битный МК (где памти хватит).
Откопаны основные глюки, и вроде (тьху, тьху) работает,
Вся математика вынесена в файл Mathematics.c
Расчеты ведутся в фиксированой запятой.
Формат входных даных 1:10:5 . т.е. 5 см = 5*32, -5 см = 65536-5*32
Основные функции:
calcG(x,y); - Вычисление угла поворота ноги и длины на которую развернута нога для второй функции
CalcNextStep(z,wDlinaW); - вычисление углов на двух сервах ноги
Алгоритм положения ноги отабатывает следующим макаром:
(скрины с софтины отладчика моего творчиства, из отладчика пересылается только координата и калибровка)
Вложение:
Комментарий к файлу: 1 четверть координат
1_chetvertj.jpg [ 39.99 КиБ | Просмотров: 6813 ]
Как показано для 2 и 3 четверти, ноги поджимаем под себя.
Вложение:
Комментарий к файлу: 2 четверть координат
2_Chetvertj.jpg [ 20.26 КиБ | Просмотров: 6814 ]
Вложение:
Комментарий к файлу: 3 четверть координат
3_chetvertj.jpg [ 34.72 КиБ | Просмотров: 6818 ]
Вложение:
Комментарий к файлу: 4 четверть координат
4_chetvertj.jpg [ 42.51 КиБ | Просмотров: 6813 ]
Результат первых тестов смотрим на фото:
Вложение:
Комментарий к файлу: Буква Е
results.jpg [ 118.27 КиБ | Просмотров: 5689 ]
По ходу отладки алгоритма буду обновлять версии файлов.
Результат выкладывается в таком виде чтоб чаще вдохновение приходило