Надо просто функционал секвенсора и матмодели шестинога прописать в отдельных файлах и всё.
Добавлено спустя 53 секунды: Для начала, а там уж как руки дойдут рефакторинг провести. Ну а вообще матмодель шестинога на OR-AVR-M32-D врядли пригодится, на нём же не будет 18 серв только если матмодель сделать еще одну под 12 серв.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
матмодкль под 12 серв можно вложить просто в параметры основного секвенсора. меня смущает только одно, если вдруг внесете изменения в файл драйвера серв, и я буду таралельно его клон править, как синхронизить изменения? может сделать секвенсер просто как внешнюю либу? эт на будущее. щас мне самое основное написать матапарат. а потом уже куда его засунуть это надо смотреть по результатам
На самом деле тебе пока даже не нужны существующие драйвера. Считай, что у драйвера для тебя только одна точка входа: "установить серву X в положение Y"
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
demoontz писал(а):если вдруг внесете изменения в файл драйвера серв, и я буду таралельно его клон править, как синхронизить изменения?
это решает меркуриал, по сути есть несколько режимов объединения от ручного до автоматического. вообще если честно система репозитариев git решает это на порядок лучше, допуская "ветки" кода но она сложнее в освоении.
у меня пока всего один милион вопросов. как оно работает? я так понимаю в драйвер приходит управляющая команда, и потом команда разбираецца. и по опредленному алгоритму считаеться и потом выдаеться в сервы? +предназначение этих 4 файлов. какие трогать. какие нет. servo_driver.c servo_driver.h servo4017.c servo4017.h
ну чем .h отличается от .c это я объяснять не буду, это к учебникам по C/C++
servo4017 - это сам низкоуровневой интерфейс для серв servo_driver - его обертка для ORFA, которая получает команды в I2C формате, разбирает их и выдаёт команды на servo4017
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Вообще пока ничего трогать не надо. Для начала определи интерфейс, через который секвенсор будет принимать команды, выкладывай сюда, возможно, подкорректируем для совместимости с ORFA. Потом можешь писать спокойно секвенсор вообще без ORFA, просто подключи к своему проекту 2 файла servo4017.c servo4017.h. А уж когда будет работать секвенсор сам по себе, интегрировать его в ORFA - самое простое дело.
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
в моем понимании секвенсер это кагбе функция. на входе которой есть входные параметры системы на выходе конкретные углы сервам ввиде уже готовыхсигналов или команд типа "s400d 00 0000p". входные параметры в первой версии это перемещение тела стандартного шестинога по ХУZ. во второй версии будет введены углы наклона по темже осям. и еще про повороты надо подумать. ну и потом всякие дополнительные функции. я впринципе писал все на Vbuilder6, но уж лучше сразу в прошивку. пока я вижу такие входные данные: X,Y,Z -перемещение тела относительно центра. матрица положений начала плеча относительно центра. тип хексапода(колво ног, суставов. тип тела.) + нужны формулы движения всего тела
я могу предложить вам деть мне болванку под эту функцию. соответсвующую вашим требования к орфа, чтобы я просто вставлял туда матаппарат.
и я так понимаю этот секвенсер просто альтернатива ссц32.
2blindman: Ну не знаю, я бы загрузил последнюю версию и прямо servo_driver начал править, в нём бы всякие фишки и прописал.
Кстати, будем интегрировать плавные движения в драйвер ORFA?
У меня по идее в прошивке ORC-32 это уже реализовано, только формат определить и подцепить.
Там основные вещи: 1. Запрос - завершили ли предыдущее движение; 2. Команда - совершить движение из текущего положения в заданное либо за указанное время, либо с указанием максимальной скорости для каждой из серв, тогда контроллер сам посчитает время за которое нужно выполнить движение и даст команду в первом формате, но мы в этом случае можем не париться на то, в каком положении находятся сервы.
Ну и надо калибровку серв сделать как SSC-32 это я еще не добавил в прошивку ORC-32
Добавлено спустя 1 минуту 32 секунды: 2demoontz: В SSC-32 нету на борту секвенсера для шестинога на 18 сервах, только на 12 сервах, может действительно лучше сначала обсудить в отдельной теме принципиально какие команды можно будет давать этому 6-ногу, а потом начинать их прописывать в том или ином виде, а уж адаптацию команд под формат ORFA мы поможем сделать.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Ну не знаю, я бы загрузил последнюю версию и прямо servo_driver начал править
Я бы тоже так сделал. Но мы с тобой понимаем как оно работает, а тут ещё разбираться человеку придётся, вместо того чтобы полезный код генерить начать. А разбираться можно не спеша.
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
Интерфейс надо определить сейчас, и он так и останется, обвернуть его только потом. И должен быть этот интерфейс как раз минимально зависим от ORFA - чтобы отдельно его можно было использовать, как сделано сейчас с драйвером серв.
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!