Ads
Comments 50
0
Почему именно хексапод?
Он же очень энергозатратный, программируется тяжело (6 лап, каждая сама по себе).
Можно было начать с 4х колесной машинки. Мало проходимости? Примитивный до безобразия RHex вытворяет такое, что даже и не поверишь (например, бегает на 2-х лапах-колесах вертикально).
+1
Хексапод именно потому, что хотелось попробовать программирование инверсной кинематики. Чем он лучше машинки — может взбираться на ступеньки. Еще можно подойти к препятствию и оттолкнуть его передней лапой в сторону, или поднять туловище повыше и переступить.
Но если говорить честно — я уже раз десять пожалел, что не выбрал гусеничную платформу. Когда не надо тратить энергию на просто стояние. Да и скорость, как видите по видео, у любого колесного шасси была бы быстрее.
Но как показал опыт — при прекращении подачи управляющего шима на сервомоторы или просто выключении питания — робот не падает. Просто продолжает стоять в той же позе, как на последней картинке — она не особо затратна по усилию на редукторы.
0
Добавьте слабые пружины, чтобы компенсировать вес. Тогда стоять будет без затрат энергии, а бегать — смотря как запрограммируете. пружины в прнципе там тоже должны помочь, если проводить аналогии с животным миром и функцией связок.
0
пружины оказались не нужны, сами сервомоторы в состоянии покоя держат его на весу за счет редукторов — серв не так легко провернуть, и энергию можно подавать только когда надо двигаться. А по поводу скорости — конкретно эти сервомоторы «Turnigy™ TGY-S4505B Dual Bearing Analog Servo 4.8kg / 0.10sec / 40g» не успевают поднимать и опускать ноги намного быстрее из-за инерции. Можно попробовать заменить их на аналогичные цифровые, но 20 тяжелых цифровых сервомоторов у меня уже валяются, и каждый такой эксперимент выходит в 100долларов. Проще переставлять по 2-3 ноги одновременно, но я пока не продовал.
0
Скорее всего вы правы, редуктор «съест» всю энергию, запасенную пружиной при сгибании ноги. Если был бы прямой привод, с пружинами можно было бы двигаться очень быстро и экономично, преодолевая только сопротивление воздуха и немного трения в шарнирах. Собственно, так и сделали робота-«гепарда» (когда то была статья на хабре), который ставил рекорды скорости. Но прямой привод для хобби-робототехники пока что сильно сложная штука, думаю ещё пару лет надо подождать.
0
Мне кажется, экономия на пружинах поддерживающих тушку будет скомпенсирована повышенным током на преодоление их сопротивления при движении
0
«деньги, которых мало, и руки, которые кривые»
Я увидел только обход второго препятствия =)
0
На написание статьи меня подтолкнули комментарии отсюда: https://geektimes.ru/company/intel/blog/275028/
Где было мнение о том что для самодельного робота меьнше чем в 1000 долларов на детали уложиться не получится.
Вы знаете как сделать еще дешевле? Я рассматривал так же вариант с HexyHexapod но он совсем мелкий, и в него просто сложно засунуть что-то кроме батареек
0
Я хотел бы в первую очередь извиниться за огромное количество опечаток в тексте, и добавить максимально полный прайс по деталям
Сразу же уточняю, что многое из этих деталей заметно отличается по цене от того что я брал

1) комплект железяк — 110.99$ (я выбрал тот где была робоклешня в комплекте, и пожалел, так как ее качество оставляет желать лучшего и лучше обойтись без нее), сейчас на алиэкспрессе нашлось за 65 долларов и беспатной доставкой
2) сервы Turnigy™ TGY-S4505B Dual Bearing Analog Servo 4.8kg / 0.10sec / 40g — 18 штук 110 евро
3) мелкие поворотные сервы для камеры — 5 штук за 10 баксов с али (шли одним комплектом)
4)крепежи для батареек — около доллара
5)контроллер заряда и повышатель напряжения в сумме 60 центов
6) распберри — 22 евро
7)камера около 20 евро, потерялся чек)
8)Шим контроллеры — 5.22$ x2
9)модуль gy87 — гироскоп, компас, акселерометр, барометр, термомет — 7 долларов, в последствии был заменен одним компасом за 2 доллара

Аккумуляторы уже не припомню по чем брал, литиевая батарея от старой мобилки, а возможность попечатать на 3д принтере коллеги — бесценна. На нем были изготовлены корпус для распберри, сервоконтроллеров и поворотный механизм камеры, но тут при отсутствии 3д принтера можно выкрутиться — у кого на что хватит фантазии. Я сперва исрользовал оргстекло, но из-за кривизны рук оно постоянно трескалось и ломалось.
0
> робот смог встать на ноги только используя минимум 10 Амперный станионарный БП, а никаких батареек ему не хватало
Возможно имело смысл с хоббикинга вместо новой партии серв заказать LiPo батарею. Для модельного лития 10А — вообще не ток.
0
Согласен. Следующий намеченный аппаратный апгрейд это как раз литиевая батарея.
0
Аккумулятор 18650 вам в помощь. Я на своем 4WD роботе быстро перешел с обычных аккумуляторов типа пальчиковых батарей на 2x 18650
0
18650 штука хорошая, но для токов в 10A лучше все же взять модельный LiPo.

0
Добрый день! Очень любопытно.

Увидел свой путь, но наоборот :-).
Я немного боле года назад начал делать колёсного робота.
Сначала казалось, что нужна многоядерная плата. Купил двухъядерную Banana Pi.
Первым ударом был ультразвуковой датчик. Я не мог предположить, что Linux с PREEMPT RT вообще не подходит для таких вещей.
Датчику нужно на одну ногу подать 10 микросекунд для запуска, а на второй ноге ждать пока сигнал станет ровен нулю. Эти вещи делать НЕЧЕМ!!! Конечно народ к Raspberry Pi подключает такие датчики и жалуется, что они не точные. Однако дело вовсе не в датчиках.
Приобрёл STM32 Nucleo-64 и подключил 10 датчиков через MCP23S17. Аллилуйя! Всё идеально. Однако к тому времени поменял платформу. Теперь было нужно 4 ШИМ и 4 энкодера (моторы с датчиком Холла). 64-х ног Nucleo-64 категорически не хватало. И тут появились STM32 Nucleo-144. Я сразу себе приобрёл с новеньким Cortex-M7. А он по USB подключен к Banana Pi (можно безболезненно на Raspberry Pi заменить).…

Потом узнал, что многие производители SoC дополнительно встраивают ядра Cortex-M (или собственные, например, в BeagleBone Black) для выполнения на них Real-Time OS.

0
Да, обычный контроллер в таких делах как замер испульсов ничем не заменить, и я сейчас как раз верчу в руках Ардуину мини, чтобы повесить ее на i2C а на нее ультразвуковой дальномер и использовать АЦП для контроля уровня заряда батарей.
А зачем, собственно, заменять банану на распберри? Если для подключения камеры, то мне кажется USB веб камера будет намного удобнее в плане интерфейса с OpenCV.
0
Это я чисто гипотетически предполагаю возможность лёгкой замены, если вдруг чего. Пока до камеры не дошел. Долго ещё идти :-)
RPi3 же с WiFi и Bluetooth вышла. Может быть проще её купить, чем отдельно USB-свистки.
0
Я ориентировался по потребляемому току- хотелось получить автономную конструкцию. У распберри А+ рекорд — 150мА, 2й распберри — 300, а вот у коллеги вчера на столе лежал odroid C2, запитанный от БП с амперметром, и на амперметре я видел 550мА. Интересно как с этим у банана.
0
У меня самая первая плата. Сам не измерял, но верю во этому: http://www.bananapi.org/2014/06/measure-power-consumption-of-banana-pi.html
0
А по поводу Wifi — 150мА это с Wifi, 2мя сервоконтроллерами, гироскопом и компасом. Они запитываются от Raspberry PI. Но вот такой мелкий WiFi работает не очень хорошо. По тестам большой USB свисток TPLink выдавал куда лучший пинг и скорость передачи в одной и той же сети. Когда я не смог добиться хорошего ФПС при стриминге видео, а потом взял у коллеги его большой Wifi адаптер — скорость волшебным образом выросла в несоклько раз и даже задержка видео пропала.
0
Думал. С самого начала. Сперва думал вывести агалоговый выход, но всё встало на 18 канальном АЦП. Понятно, что можно, конечно, взять 3 atmega16, но это показалось чересчур хлопотно. Потом нашел http://www.openservo.com/ — проект сервоконтроллера, управляюшегося по i2C, умеющего говорить свое положение и даже, кажется, температуру сервомотора. Просто шикарная идея, особенно остро стоявшая когда я понял что у меня есть 20 ненужных сервомоторов, которым было бы неплохо допилить электронику, чтоб сделать их слабее. Но проблемы такие — где купить их плату — непонятно, сделать самому — она 4х слойная, спроектировать самому — долго. А так, конечно, было бы удобно протянуть одну шину i2c ко всем моторам цепочкой.
0
Всегда хотел сделать робота. Только вот не разбираюсь в этом вообще. Не подскажете с какого робота лучше начать новичку? есть ли какие то полезные ресурсы?
UFO landed and left these words here
0
Я согласен, мне и самому хотелось бы сделать еще проще и быстрее, но пока это самый быстрый вариант который я знаю.
Вам может быть стоит посмотреть на HexyHexapod — его продают собранным,, достаточно вставить батарейки и можно начать что-то делать. Да и цена выходит даже дешеле чем тут. Возожности, жалко, не те.
А по моему рецепту — запаяно 6 проводов, в общей сложности. Пусть будет 2 часа. Их видно на фото, выходяшими из распберри. Сервмоторы все вставлены в разъемы. Еще парой припаян контроллер зарядки батареи. Сама отверточная сборка корпуса первый раз заняла около 3-4 часов. ( с деталями не пришло ниаких инструкций и руководствоваться пришлось фотографиями готовых роботов) Я бы сказал что за пол дня всё можно скрутить в кучу. если бы не 4 детали распечатанные на 3д принтере. Они-то за пол дня тоже напечатались, но 3д принтер пока есть не у всех, и смастерить самостоятельно крепежи, чтоб описанные платы прикрутить к корпусу таки займет какое-то время. А если притнер есть, то в итернете можно сразу же найти готовые модели. Вот, например, крепеж камеры image
0
Когда то игрался с созданием хексапода и его управлением…

Хотел бы предостеречь (из своего опыта) от использование дешевых серв с пластиковыми шестернями и большим усилием, без ограничения по току и пр.

Упершись ножкой в препятствие серва говорит хрусть-хрусть и срезаются зубцы шестеренок (испортил 3 сервы в результате).
Конечно, для этого нужны определенные условия и вероятность этого события не высока. Но она есть. Особенно, когда хексапод на автономном управлении. Застрял и… пытается двигать лапками без шансов сдвинуть корпус.

И использование Малины для управления… сомнительный выбор. Автономность сильно снижается (в режиме ожидания) да и плохо подходит для управлению железом в режиме реального времени… Лучше уж взять нормальный контроллер управления железом (ARM Cortex M3..4).

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

Можно попробовать вначале в эмуляторе (я использовал Java 3D библиотеки), прежде чем тратится на физическое воплощение.
0
Спасибо за предупреждение, постараюсь всячески избегать такого финала. Пока перебираю варианты дальномеров, чтоб установить параллельно камере и строить карту препятствий, Потом наверно есть смысл мерять ток на сервомоторах. Про дальномеры пока знаю лишь 3 варианта
-ульразвуковой
-лазерная указка параллельно камере(мерять расстояние от центра камеры до красной точки впереди)
-раскачиваясь влево-вправо сделать 2 кадра и построить карту глубины из стереоизображения

Интересно, есть ли какой-то дешевый вариант лазерного дальномера?
0
-ульразвуковой

Самый простой вариант.
Делал с круговым обзором. Дает довольно четкую картинку (прямо на экранчике на роботе).
Вот здесь наверное должно быть видно. Правда на этом виде в режиме прямого управления ездит. Но делал и пробовал и автономный режим перемещения. https://www.youtube.com/watch?v=iq8M-esM4QQ

Интересно, есть ли какой-то дешевый вариант лазерного дальномера?

Лазерная указка или, что лучше, лазерная линия. Только не параллельно камере, а вынесенная в сторону на заведомо известное расстояние и с определенным углом относительно оси камеры.
Можно еще и не фиксированный угол, а лазер на шаговик. тогда вообще 3D сканер получится.
Малина вполне справится с расчетами. Они не сложны (простая геометрия и пред рассчитанные тангенсы.).

На Малине не пробовал, но на Samsung S5 обсчет кадра через rederscript занимает 40ms на все (+ время на получение bitmap RGB в 50ms * 2):
  • снимок без лазера (можно без этого, но выделить лазерную линию при естественном освещении довольно трудно)
  • включить лазер + снимок с лазерной линией.
  • Вычесть 2 кадра (лазерная линия становится контрастней)
  • Выделить линию (координаты x,y в px на снимке) и рассчитать расстояние в mm до каждой точки линии (простейшая тригонометрия).


-раскачиваясь влево-вправо сделать 2 кадра и построить карту глубины из стереоизображения

Медленна малина для обработки изображения. Пробовал в системе видеонаблюдения делать обработку изображения в OpenCV.
Не для реального времени. Ну разве что если робот будет двигаться ооочень медленно и таскать за собой тележку с аккумуляторами для обеспечение Малины.
0
На Малине не пробовал, но на Samsung S5 обсчет кадра через rederscript занимает 40ms на все (+ время на получение bitmap RGB в 50ms * 2):


Не будете ли добры поделиться фотографиями, ссылками или кодом? Стало реально интересно. Инструкция подробная, но хотелось бы посмотреть на готовый результат.
0
Готовый результат (статью) выложу, когда закончу этот проект (3D сканер на базе телефона). Закончу… соберу фотографии, выложу видео и исходники на GitHub. В принципе, немного осталось…

Но вот как, например выглядит расчет координат по точкам выделенной лазерной линии (кусочек файла с renderscript):
// screenAngleCoefficientW = ConfigDDD.cameraViewWidth / ConfigDDD.cameraViewDistance;
// tangentScreenW = tangentScreenCoefficientPerPixel * (sreenPosW - screenWidth / 2);
double tangentScreenCoefficientPerPixel; // = (screenAngleCoefficientW / screenWidth)
double tangentLaserValue;
double laserGreenL, laserRedL;

float3 __attribute__((kernel)) getGreenLaserPointsCloud(float3 in, uint32_t x) {
  float3 out;
  short *p = (short*)rsGetElementAt(gGreenLaserPoints, x);
  short sreenPosW = p[0];
  if(sreenPosW < 0) {
   out.z = -2; out.x = 0;  out.y = 0;
   return out;
  }
  short sreenPosH = x;
  double tangentScreenW = tangentScreenCoefficientPerPixel * (sreenPosW - halfScreenWidth);
  out.z = laserGreenL / (tangentLaserValue + tangentScreenW);
  out.x = out.z * tangentScreenW;
  double tangentScreenH = tangentScreenCoefficientPerPixel * (sreenPosH - halfScreenHeight);
  out.y = out.z * tangentScreenH;
  return out;
}

ну что бы не было сомнений, что я этим плотно занимаюсь…
0
Да я ж не ставил под сомнение… просто сам пока только начал знакомиться с OpenCV, и пока учусь по чужим примерам. Было бы очень здорово приделать лазерную линию к сервомотору или шаговику и получить 3д сканер. Жду Ваш проект на гитхабе)

Когда-то в нашем отделе работали над немецким 3д сканером. В двух словах — хорошая японская оптика, то ли кенон то ли никон, рядом проектор, проэцирующий сеточки-полосочки, из которых магия делала облако точек с точностью кажется в сотые миллиметра. Искал, но не нашел ничего похожего на миниатюрный проектор. Чтоб строить линии совсем без моторов.
0
Полно миниатюрных проекторов HD для презентаций и пр. Вот только цена на них не радует.

Есть китайские дешевые мини LED проекторы. Но в нижнем ценовом диапазоне «карманных» проекторов (размер матрицы для проецирования 480 x 320..320x240 и 100$) сотые mm не получить. Это легко считается. Даже mm не получить…
Ну и в первую очередь с яркостью у них проблемы. Не только же в темноте робот ездить должен.

Лазер для сканирования (и пр. в обвязке) в общем выйдет немногим дороже таких проекторов (20$ лазер..+ шаговик+контроллер..).
Хотя и существенно медленней. Но и точность повыше и менее критичен к освещению.
А если нужно только дальномер по курсу робота то ультразвуковой датчик ну гораздо проще и лучше. Смысл в лазере и точности < 1mm? Хватить 1-2 см, что дает ультразвук.

Если бы у меня встала задача грубого сканирования помещения с точностью 1-5 см и до 2-х метров, то я бы взял кучку ультразвуковых датчиков (не готовых моделей, а именно излучателей/приемников без обвязки) и сделал бы из них. Ничего сложного разводке платы с накачкой излучателя и ОУ на приемник нет.

Дешево и сердито и по потреблению тока не много. Народ такое на квадракоптеры вовсю ставит.

0
Это легко считается. Даже mm не получить…

там не сильно высокое разрешение было, но была какая-то фишка. Хитро подобранные паттерны, которые проецировались на объект. Это была не просто сеточка, а последовтельность из сеточек и полосочек с разным шагом. Я видид это только со стороны.
0
Да в принципе, никакой магии нет. Особенно это ничем не отличается от расчетов по лазерной линии.
Но точность определения координат ограничена как разрешением камеры, так и разрешением проектора/шага лазера/ширины лазерной линии.
Простая геометрия. Паттерны просто позволяет один кадр обрабатывать, получая сразу много данных (точек с заданными патерном координатами). В отличие от лазерной линии, где все что можно снять — это по одной точки на линии.
Выгодно, если обработка (комп) кадра быстрая. За меньшее количество кадров можно сделать полный скан, чем лазером.
0
>Интересно, есть ли какой-то дешевый вариант лазерного дальномера?
Почитайте эту тему, да и форум вообще полезный: http://roboforum.ru/forum10/topic12095.html
0
> Лучше уж взять нормальный контроллер управления железом (ARM Cortex M3..4)
Ага. У них гарантированное время реакции на прерывание. И вложенные прерывания…

Было любопытно посмотреть на решения проблемы.
Один человек портировал FreeRTOS на Xen и запустил параллельно с Linux (в Cortex-A7 аппаратная виртуализация).
Есть порт FreeRTOS на Raspberry Pi.
Плату на Cortex-M соединяют с платой на Cortex-A (SPI, USB ...).
Производители SoC на одном кристалле размещают Cortex-A Cortex-M. Это самое правильное и удобное для использования. Эх, если бы знать всё заранее :-), то выбрал бы изначально такой вариант.

0
на одном кристалле Cortex-A и Cortex-M — это экзотика… (ну где такое в ширпотребе найдешь).

>Плату на Cortex-M соединяют с платой на Cortex-A (SPI, USB ...).
Решение, в котором котроллеру — контроллерово, а высокоуровневыми задачами (распознавание изображения и принятие решения и пр.) занимается другой модуль — это классика, проверенная временем.

>Один человек портировал FreeRTOS на Xen и запустил параллельно с Linux (в Cortex-A7 аппаратная виртуализация).
Все равно на Малине выведенных физически GPIO ножек не хватит для всех задач…

0
> на одном кристалле Cortex-A и Cortex-M — это экзотика… (ну где такое в ширпотребе найдешь).

Почему? Freescale&trade; i.MX 6. Много чего на нём есть.
Вот попалось: http://www.udoo.org/udoo-neo/
UFO landed and left these words here
0
$50-70…
Не получится. Сервомашинку на коленке не сделать.
Основная цена — стоимость сервомашинок. (6*3=18 шт).
UFO landed and left these words here
0
Шаговые двигатели для автономного робота с аккумуляторным питанием?!!!
Оригинальная мысль…
Но все же осмелюсь предположить, что не сработает.

Единственное преимущество между классическим сервоприводом (а сервомашинка это частный случай сервопривода) отсутствие дополнительных программно-аппаратных схем удержания угла поворота.
А в остальном — сплошные недостатки.

Поверьте, даже 28BYJ48 c редуктором и дохленьким усилием сильно нагревается за пару минут работы.
А уж как греются (радиаторы ставить приходится) NEMA-23 у меня на станке…

Так что вполне можно уложиться.

Пусть, считаем что батареи, корпус (ноги/крепления) все «бесплатно».

Найдете комплект «движетелей» для платформы хексапода с полезной нагрузкой 1 кг (на батареи и пр.) и током потребления, позволяющем хотя бы 30-40 минут передвижения за < $300 — дайте пожалуйста знать…

Только перед тем, как говорить, что нашли, сами проверьте по паспортным данным — точно потянут или нет.

UFO landed and left these words here
0
Говоря про «нагрев» и «автономность», я пытался намекнуть на такой параметр, как потребляемый ток.
Ну есть еще такой параметр как масса двигателя на мощность/угловой момент (еще один намек).

удержание механикой (червячный привод что ли) это потеря информации о положении через N снятий тока удерживания.

Конечно сработает

В общем, каждый собирает свои персональные грабли. Мое дело упомянуть про наличие граблей.
Кстати, проскакивали очень полезные статьи недавно по различным типам двигателей с их сравнением.

UFO landed and left these words here
0
В кладовке валяется 15 штук SG-90 купленных когда то для хексапода (жадность — это плохо… пожалел денег на нормальные).
Из них 3 штуки с выкрашенными зубьями (усилие которое они развивают на грани срезания зубьев с их же пластиковых шестерней).
Еще 5 пошло на пульт управления манипулятором робота (https://www.youtube.com/watch?v=iq8M-esM4QQ).
Больше их ни на что так и не придумал приспособить. Хексапод даже ходил… вот только нагружать его аккумуляторами и доп. оборудованием для длительного автонома не получалось.
400 грамм веса все конструкции — максимум с чем SG-90 справляются. Для игрушки с радиоуправлением хватит, для чего то интересного — нет.
Да и угробив за неделю 3 сервы, решил, что хватит и разобрал.

А 28BYJ48 (как 5V так и 12V) куда я только не пихал (не менее 7 штук)… и прекрасно знаю и скорость и угловое усилие для разных режимов управления шагами. И как они греются при использовании ul2003 в качестве драйвера (ну не делать же для этого убожества нормальный драйвер с контролем по току и ШИМ).

И Вы будете мне таки рассказывать про скорость, ток и усилие на валу 28BYJ48 и SG-90…

И то и другое для хексапода с весом на платформе в 1 Кг просто не подходит.
Для SG-90 велика вероятность выкрашивания шестерней (да и на грани это его усилия), а 28BYJ48 просто не потянет по моменту на валу. Он у него совсем мизерный.

А просто сравнивать SG-90 и 28BYJ48 (ежа с ужом) просто бессмысленно. Они для разных целей.

И это не теоретические рассуждения. А мой личный опыт.
0
Интересно, а подобие вот такого робота (без прыжков конечно же):
https://geektimes.ru/post/180571/
на шести шаговых двигателях реально сделать?
0
Думаю даже можно проще: обычные двигатели+редукторы+энкодеры.
0
Проще в плане дешевле, да и редукторы могут удерживать положение с отключенным двигателем. А положение ног для такого робота знать нужно обязательно и учитывать это в программе движения.
Only those users with full accounts are able to leave comments.  , please.