Как стать автором
Обновить

Комментарии 36

А можно видео развернуть? Поворачивать стол с монитором не вариант.
Согласен. Не очень удачно снято.
У меня на ютубе была функция «повернуть».
Рекомендую не увеличивать номенклатуру контроллеров, если начали использовать STM32F373 то и второй брать такой-же.
— почти одинаковый основной код
— одинаковые баги чипа
— возможность иметь в резерве лишний чип
— проще перераспределять задачи на два одинаковых контроллера.
Да, мысли хорошие. Я руководствовался стоимостью, размерами и ресурсами МК. К тому же F030 развести на плате проще некуда, да и накопилась их целая куча :)

проще перераспределять задачи на два одинаковых контроллера.
А тут можно подробнее? В чем могут быть сложности?
Иметь два мощных контроллера выгоднее чем один — если делать сложную адаптивную постобработку датчиков у F030 может не хватить мощности.
Но основная причина это переиспользование кода и схемотехники — второй контролер надо отдельно изучать.
Спасибо. Нужно будет заглянуть дальше в будущее и подумать над хотелками, возможно действительно имеет смысл поставить два 373.

А на счет изучения, то в качестве вспомогательных МК я беру обычно уже знакомые с написанными мною драйверами в других проектах :)
аккуратный и симпатичный получается
А что с радиационной стойкостью контроллеров? Предполагается апгрейд после проработки прототипа?
Ух, о таком я пока не задумывался. Прототипу нужно найти полезное применение и дальше от этого отталкиваться. Пока что это только игрушка для саморазвития.
Можно определять не сами пики, а по порогу производной находить место, где пик только начинает расти. Порог можно делать абсолютный или какой-нибудь плавающий, например по размаху в окне, или по отклонению от средней точки в окне.

Рекомендация: выгружать не только тренды с датчиков, но и различные переключения состояний и метки алгоритмов управления — быстрее сможете отлаживаться по логам.

Эксель — это гемор, лучше использовать какой-нибудь Matlab / Python+matplotlib, или даже ImGUI на плюсах.
Спасибо за идею, нужно подумать.
Ещё напомню, что пиковые аномалии, если потребуется, можно сгладить фильтром Калмана.

Если уж есть тензодатчик на ноге — то сервоприводы хорошо бы заменить на бесколекторники с управлением по току/моменту и энкодерами. Тогда получится динамику вместо кинематики подтянуть. А там прыжки, паучий галоп, рысь, иноходь… Непочатый край усовершенствований)))


Кстати, даже на видео с улучшенной математикой все равно видна неравномерность передвижения туловища робота. Как планируете решать данный вопрос?

Все ограничено фантазией и бюджетом))


По поводу неравномерности. В чем именно она заключается? Если вы про то, что он идет не по прямой, то это я джойстик немного отклонил. С движением по прямой проблем точно нет.


Если же это связано с тем, что он немного рывками двигается — тут да, нужно немного с конфигурацией движения поиграть.

Вы не думали увеличить сопротивление с поверхностью? Достаточно резиновых/силиконовых ножек. Мне кажется на видео достаточно хорошо видно, что при улучшении динамики он начинает проскальзывать и терять скорость.
Я не уверен что это можно сделать на сервах, но может быть режим бега? Его главное отличие в том, что мы слегка подпрыгиваем в момент толчка, момент касания можно было бы ловить тензодатчиками, если бы частота была выше.
Вы не думали о полном математическом описании? Если его сделать можно ввести оптимальное управление, что является довольно забавной штукой: можно будет указывать только точку куда и информацию о препятствиях, тогда он сможет сам рассчитывать траекторию движения обходя препятствия. Возможно понадобиться чуть больше вычислительной мощности, но реально реализуема. Гексапод имеет не сложную физическую модель. Пример модели можно найти в западной литературе. Расчет же управления можно делать не руками, а например Python+sympy. Потом управление уже написать на Си и заложить в МК.
Достаточно резиновых/силиконовых ножек.
Там уже стоят на концах лап куски стержня от термопистолета. Возможно позже я подумаю над этим, но не сейчас. У меня горит внедрить новые сенсоры в гексапод :)

Его главное отличие в том, что мы слегка подпрыгиваем в момент толчка
Тут сервы точно отпадают — не хватит момента для прыжка, а более мощные сервы более медленные, соответственно не смогут развить нужную скорость для прыжка.

можно будет указывать только точку куда и информацию о препятствиях, тогда он сможет сам рассчитывать траекторию движения обходя препятствия
Это в планах. Для распознавания препятствий есть камера, возможно поставлю лидар на него. Математика каждый раз совершенствуется.

Да, рывками движется.

Движения не корректируются по обстановке, подвисает как анимация при недостатке памяти. Возможно вариантом будут инерциальные датчики положения на лапках и на основе их данных корректируемое положение манипуляторов.
А не тяжёл тензодатчик для ноги? тензорезисторы на пластик наклеить можно, плюс направление самому выбрать, да и стоят дешевле готовых, можно мост, полумост собрать и пр.

Можно конечно, только вот смысла мало. В цене особо не выиграешь, а работы больше.

Спорный выбор типа сенсора для определения контакта с поверхностью. Поверхность может быть вогнутой под лапкой, нестатичной или локально возвышенной(ветка). лапка должна иметь ход не только до уровня условного нуля поверхности но и ниже если там вогнутость ланшафта. Нужно уметь остановить лапку если она погружается ниже нуля. Я бы выбрал оптический или аккустический сенсор расстояния на каждую лапку. Это также дало бы возможность правильно формировать модель окружающего мира и отмечать тип подлежащей поверхности и нависающие препятствия(ощупать лапкой).
А измерять ток сервы, в качестве датчика касания, не пробовали?
Нет. В статье описано почему. Этот метод использовал мой знакомый и по результатам очень сложно определить момент касания
Если вы про резистор 0.01 ом, то есть же и другие способы измерения тока, но не суть. Мне интересно было, насколько это будет точно на практике
Там больше всего повлияло отсутствие места на плате. Конечно хотелось бы самостоятельно провести опыты, но перепроектирование и производство платы долго, и не хотелось тратить время на неизвестный результат. С тензодатчиками попроще будет :)
Опять же механика, движущиеся части. Я бы хотел свести к минимуму это
простите я немного туплю, мерить ток серв Датчиком Холла, в принципе 6 ногая микруха не так много места занимает… вы сказали ваш Знакомый сказал что по току, достаточно сложно понять касание, а если в совокупности с гравити сенсором? при касании ногой мы понимаем что у нас корпус начал менять положение отличное от горизонтального… расчеты должны упростить
P.S. у вас да уже решение готовое, рабочее, просто я смотрю для себя на сколько это будет сложнее ток+пложение в пространстве…
и еще Не могли бы вы чуть больше рассказать про DC-DC преобразователь на синхронном Mosfet… как собрать как считать, почему 6 каналов а не один большой и мощный, вы вроде пытались его сделать на 32f030, но в итоге у вас применено готовое решение на LM2678
на сколько это будет сложнее ток+пложение в пространстве
Будет однозначно сложнее, расчетов больше :)

и еще Не могли бы вы чуть больше рассказать про DC-DC преобразователь на синхронном Mosfet… как собрать как считать, почему 6 каналов а не один большой и мощный, вы вроде пытались его сделать на 32f030, но в итоге у вас применено готовое решение на LM2678
Там все не просто. Разрешения ШИМ на f030 не хватает для адекватной регулировки напряжения, там dV получается большой на каждый тик таймера. Но даже не в этом дело. Мои знания силовой электроники в тот момент были не очень и многие моменты я не учел, в итоге там мосфеты вышибало, либо их драйвер (дорогой засранец). Проще купить 6 готовых микрух с защитой от насыщения и прочими плюшками, чем ваять что-то свое. Намного дешевле выходит взять что-то относительно готовое, чем разрабатывать свое. Но он работал, правда не долго :)

Последнее время я очень ценю свое время и поэтому сначала смотрю как можно сделать все намного проще, быстрее, дешевле и на популярной элементной базе. Если я не могу найти что-то подобное, то уже пилю свое.
А вы тоже собираете гекса или...?
если комне вопрос, то скорее «или...» собираюсь=) у меня есть 20 серв mg996r с комплектными пластиковыми дисками которые при нагрузке 6кг/см слизывают грани(требуется докупить металлические)? куча винтиков с гаяками М3 под шестигранник, доступ к 3D принтеру, 1 DC DC на XL4016 (8А), stm32f103(Blue pill) PCA9685 2шт(драйвер PWM 12бит 16 каналов), малина 3B
видео на youtube www.youtube.com/watch?v=0jyBiECoS3Q&t=15s&ab_channel=Zenta
и непреодалимое желание повторить сие чудо, но я не знаю с какой стороны подступиться…

Да, вопрос к Вам. На счет пластиковых дисков, у меня тоже пластиковые и зубчики при 15кг не слизывались. Может повезло. Я тоже поглядываю на металл, но у них есть резьба. Моя конструкция предполагает крепление диска к конечности, а не конечность к диску.


С какой стороны подступить? Я бы начал с питания. Собрал бы предполагаемый источник питания и нагрузил бы его. У меня суммарно приводы в среднем потребляют 13-15А при ходьбе. Вот примерно такую нагрузку можно подключить к источнику и посмотреть как он себя поведет (просадка напряжения, пульсации и прочее). В качестве нагрузки можно взять мощный резистор и вентилятор. Нагружать 18 приводов не очень удобно))

Приводы. MG996R. У меня их полная коробка, на 3 гексапода хватит))) Почему? А потому что они не смогли поднять гекса весом 6кг. Заявленные характеристики очень завышены и точность низкая, т.к. они аналоговые.


Я использую DS3218MG


Если нужна консультация, то мы можем перейти в более удобное место для этого (почта, ватсап)

6Кг, можно примерно откуда столько набралось?
просто вот прикидываю
батарея 900-1000г
приводы 55*25
пластик на корпус ±1000
преобразователи питания 3*75
контроллеры и прочая электроника 300г
метизы 300
охдаждение 200
итого около 4кг, в п ринц даже если 6кг/см усилие привода, то наш паук легко и непринужденно может перемещаться поджав ноги под себя если он единовременно становится не меньше чем на 3 ноги
Это сложный вопрос, я по отдельности не взвешивал. Знаю, что корпус 2кг весит пустой + приводы где-то 1.5кг, они в алюминиевом корпусе. Я его просто поставил на весы и там было около 6кг, но весы для взвешивания человеков, так что погрешность в ±500г вполне может быть.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории