Как научить робота ходить - программы, советы.

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

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

Вот так выглядит моя собачка. http://www.youtube.com/watch?v=cxEShFeJRJo

barr82
Offline
Зарегистрирован: 09.07.2013

На мой взгляд, на 4-х ногах довольно непросто будет рассчитать правильную походку, чтобы не сильно валилось. Т.к. если даже принимаем, что в любой момент времени как минимум три ноги будут касаться земли, то еще соответственно нужно правильно перемещать центр тяжести. И при этом не забывать, что вся конструкция должна будет двигаться. 

Лучше добаь еще две ноги. С 6-ю будет попроще, как мне кажется. По крайней мере я именно 6-и ногого и строю.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Интересно, я бы пробовал опытным путем, метод научного тыка! Приделал бы какой нибуть пульт в котором можно было бы задавать количество шагов на каждый двигатель и последовательность... посмотрел бы какой нибуть ролик замедленный где видно какая нога куда идет ну и тыкал подбирал варианты... 

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

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

Puhlyaviy пишет:

Интересно, я бы пробовал опытным путем, метод научного тыка!...

Пошел путем научного тыка. С начало получилось вот так http://www.youtube.com/watch?v=hrK9v2CdobY

Но собачка не идет, а ползет. Решил последовательно каждую ногу переставлять. На видео стоит задержка для того чтобы увидеть как это работает. На данный момент получается так http://www.youtube.com/watch?v=LnyCjiqzzHw

Подсказывайте, может есть более действенные способы. В финале собачка будет аккуратней выглядеть, прикрутил но пока не подключил ей глаза (дальномер). http://robocontroller.ru/photo/foto_ot_robocontroller_ru/z_robodog_v2_2/1-0-38

barr82
Offline
Зарегистрирован: 09.07.2013

Методом научного тыка можно очень долго все это подбирать. И максимум чего получится добиться - это какая-то имитация походки. Да и с точки зрения дальнейшего развития проекта (например, добавление возможности поворота) это тупиковый метод. 

Правильнее было бы сначала написать отдельную библиотеку для работы с одной ногой, которая могла бы перемещать одну ногу в нужную позицию и с заданной (или более или менее предсказуемой) скоростью в заданную точку. Потом добиться синхронной работы каждой ноги. А потом, исходя из рассчитанного положения центра тяжести в каждый момент времени, перемещать каждую из ног. 

Блин! Это чертовски интересно. Доделаю своего шестиногого - построю свою собачку. :)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

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

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

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

barr82 пишет:

...

Правильнее было бы сначала написать отдельную библиотеку для работы с одной ногой, которая могла бы перемещать одну ногу в нужную позицию и с заданной (или более или менее предсказуемой) скоростью в заданную точку. Потом добиться синхронной работы каждой ноги. А потом, исходя из рассчитанного положения центра тяжести в каждый момент времени, перемещать каждую из ног. 

Блин! Это чертовски интересно. Доделаю своего шестиногого - построю свою собачку. :)

Написать библиотеку O_O, я этого не умею. Думаю что нужно будет поискать информацию, может поделитесь ссылкой на подробную инфу (можно на инглише).

Сейчас я делаю так: пишу массив в котором задаю координаты углов для движения каждой из 8-и серво. Пока получается вроде бы, хотя и знаю что это не совсем правильно. Всё делаю в силу своих знаний (сам учил бейсик очень давно).

Я потом выложу подробную информацию по моему проекту + чертежи всех деталей.

barr82
Offline
Зарегистрирован: 09.07.2013

Конечно. Без проблем. http://arduino.cc/en/Hacking/LibraryTutorial

Заодно и про моги "ноги" дам ссылочку - http://barr82-robot.blogspot.com/

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

barr82 пишет:

Конечно. Без проблем. http://arduino.cc/en/Hacking/LibraryTutorial

Заодно и про моги "ноги" дам ссылочку - http://barr82-robot.blogspot.com/

Продумать шаги с большим колличеством суставов более проще. Это мой первый робот которого я придумал и реализую самостоятельно. Походку выработаю, это дело времени. Буду делится успехами в этой теме, может кто то найдет что то полезное.

По моему с библиотеками я смогу разобраться, буду пробовать, спасибо!

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

Детально подгонял движения ног, всё делал на глаз. Уже что то вырисовывается. Главным недостатком походки моей собачки является использования переноса массы тела для отрыва (освобождения) конечностей. Из за малейших неровностей робот заваливается. Ещё и сцепление робота с поверхностью недостаточное. Вот что у меня получилось на данный момент.

Замедленные движения шагов - http://www.youtube.com/watch?v=MO38ey5x5yE

Задержка между движениями 100 мс delay(100); - http://www.youtube.com/watch?v=yyA2P3F2xfY

Задержка между движениями 120 мс delay(100); - http://www.youtube.com/watch?v=TU-QHQ1Qqt4

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Гыыы гончая просто :)

вы упускаете из вида тот момент что во время переноса центра тяжести должны работать все 4 ноги. ибо тело смещается относительно всех 4 точек сразу... а то какая то раненая улитка, ноги подволакивает :)

 

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

Немного доработал походку, почти не стал заваливаться. Но на неровностях всё же бывает. А вот как моя собачка ходит по дороге с препятствиями http://www.youtube.com/watch?v=jyGPuUwDlh4