Angel71 » 26 сен 2020, 05:02
предыдущее сообщение не цитируют.
пробы/ошибки это немного другое. мозги не моментально "перестраиваются" и полезная информация тоже не в одном месте лаконично находится. механика без кода бесполезна, так что или довольствоваться очень простыми вариантами или постепенно "прокачиваться" и делать всё лучше и лучше. а сразу, повторюсь, поплавятся.
игровой движок ещё можно использовать для создания управляющей программы для компьютера/смартфона/планшета. если тяжело, долго или просто не хочется, совсем или пока что можно и без него. из простого и по быстрому, управление можно на app inventor. а так много ещё на чём можно сделать управление.
газебо хороший вариант для симуляций. из всех ориентированных на робототехнику симуляторов, на данный момент пожалуй самый лучший вариант.
из симулятора переносить можно по разному. в простом варианте опять без обратной связи, похоже именно это пока и планируете сделать. а так, для управления движениями сильно не лишним будет со временем обрабатывать, данные с датчиков и физику просчитывать (gazebo опенсорсный, ко всем четырём поддерживаемым движкам физики исходники тоже есть) и отойти от простого секвенсора по точкам.
в статьях, документации, видео,... на игровую тематику, очень много полезного по управлению движением (+по фону ещё некоторые полезняшки) можете подчерпнуть. не лишним будет сразу обратить внимание на такие ругательства как "gimbal lock" и "сингулярность".
для подумать над некоторыми моментами в коде или попробовать реализовать:
1) работаете с одной лапой (прикреплена к корпусу или нет, не важно). верхняя точка закреплена в пространстве, движения нижней в одной плоскости (допустим вверх/вниз, вперёд/назад):
__а) по прямой от точки к точке из массива и после последней возврат в первую точку. прямоугольник, треугольник, пол шестигранника, произвольные точки
__б) интерполяция точек из массива (треугольник, пол шестигранника или произвольные) и движение по полученной траектории
__в) движение по кривым, допустим безье или функций (круг, синус и т.д.). вписанные в прямоугольник пол круга, полукруг, пол капли и т.д. относительно некоторой точки пол или четверть круга.
2) движение корпуса вперёд по прямой, плоскость корпуса стараться удерживать парралельно столу и на одной высоте:
__а) нижнюю точку ног перемещаете, допустим на 4см вперёд и преподымая не выше чем на 2см
__б) тоже самое, но плоскость корпуса опустить немного ниже или приподнять немного выше
__в) нижнюю точку ног перемещаете, допустим на 2см вперёд и преподымая как минимум на 4см
__г) часть ног как а, часть как б
3) корпус по прямой, высота точек фиксирована, но по высоте на разном уровне (т.е. корпус наклонён вперед, вбок или ещё как)
4) движение одной лапы в воздухе, только в отличии от 1, все или часть точек плоскости корпуса в пространстве не фиксированы. т.е. "рисование" лапой какой загигулины в пространстве. стоя, сидя, в одной плоскости или 3д гагигулина
и т.д. сначала отдельными программами или подпрограммами примерно так над кинематикой поработать, затем прорабатывать, как соединять всё вместе (а вариантов прилично).
со временем захочется реализовать возможность из любого положения в любое другое переходить, в том числе и в любой момент выполнения последовательности переключиться на другую последовательность. сидит, нужно встать на все лапы. сидит и "рисует" лапой в воздухе, в любой момент остановиться и головой в сторону посмотреть. конец лапы же можно и примерно там же в воздухе удерживать и на стол опустить. идёт вперёд и в любой момент повернуть и идти в другом направлении. последовательности можно доиграть до конца и перейти в начало другой последовательности. можно из текущих точек переместиться в начальные или ещё какие другой последовательности, при чём далеко не всегда возможно точки всех сочленений по прямым переместить.
в итоге скорей всего кватернионы начнёте использовать (углы эйлера совсем не исчезнут, местами и они нужны). а кинематика сама по себе конечно простая, только это всего-лишь маленькая часть от всего. когда из кучи таких простеньких кусочков начнёте пробовать систему делать, простота быстро испарится.