Плавное движение

Шестерни и колёса, тяги и тросики... Каркасы, скелеты ...

Плавное движение

Сообщение megamanx » 23 апр 2013, 08:43

У меня задача. Мне необходимо сделать систему, которая может поворачиваться (sic!).
В начале я использовал шаговый двигатель, но к сожалению выявился недостаток - он не останавливается после прекращения работы. (да, кстати, вращающаяся часть "локоть" условно, может менять момент инерции).
После этого я стал использовать сервопривод, но у него свои проблемы - резкий старт и неконтролируемое время поворота (оно, конечно, изменяется, но очень слабо и неточно).
Плавность обязательна, потому что резкое движение привносит неприятные инерционные эффекты и колебания.
Задача - плавно (для имитации квазистатического движения) повернуть систему на заданный угол.

У меня есть следующие мысли
1. Поставить вискомуфту. Она позволит плавно начать движение и плавно закончить. Угол поворота, конечно, в данном случае потеряет точность. Поворот осуществлять шаговым двигателем, через ременной редуктор (у меня нет возможности точить шестерни из металла).
2. Использовать "нетрадиционные" способы, например, нагревать TiNi проволоку, которая будет притягивать рычаг.
3. Поставить систему торможения, например, небольшой диск, кторый прижимается сервой, или скобу, не важно. Если сделать диск достаточно мягким (втёрдый паролон), то торможение не будет разким.

Вопросы:
1. У кого поднималась подобная проблема, кто и как решал
2. Кто пользовался нитинолом. Как он себя ведёт, скорость сокращения и пр.
3. Кто делал вискомуфту сам, есть ли готовые решения, можно ли откуда-то спилить готовую, есть ли чертежи. Автомобильные не предлагать, у них совершенно другой способ работы, большой вес и нескромная цена.
megamanx
 
Сообщения: 12
Зарегистрирован: 23 апр 2013, 08:30

Re: Плавное движение

Сообщение Myp » 23 апр 2013, 09:26

так ты сервопривод медленно разгоняй и медленно тормози :)

какой у тебя сервопривод сейчас? давай фотки или название.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Плавное движение

Сообщение galex1981 » 23 апр 2013, 09:31

Решал такую проблему как сказал Мур: плавно разгонял и плавно тормозил сервопровод - он для таких целей отлично подходит. Причем неважно какой сервопривод - все модели поддерживают плавный разгон и торможение. Все зависит от управляющего алгоритма
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Плавное движение

Сообщение megamanx » 23 апр 2013, 09:40

Я сомневаюсь в плавности такого движения. Сервоприводов два типа пробовал. HX12K 0.17sec/60 градусов 15 Кг, вторая и не вспомню, подобная, на 6 кг. Она начинает двигаться, когда подвожу к ней нормальное питание с нормальной силой тока (не меньше полуампера на 4 вольта) и со скрипом еле двигается.
Что с ней делать? Разобрать и снимать сигнал с резистора самостоятельно? Или ставить временные задржки? Или как ещё? Фотки вечером.
megamanx
 
Сообщения: 12
Зарегистрирован: 23 апр 2013, 08:30

Re: Плавное движение

Сообщение =DeaD= » 23 апр 2013, 09:56

megamanx писал(а):В начале я использовал шаговый двигатель, но к сожалению выявился недостаток - он не останавливается после прекращения работы.

Может к нему электро-тормоз прикрутить и всё?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Плавное движение

Сообщение megamanx » 23 апр 2013, 10:10

Про электротормоз думал. Решил спросить, может быть есть какие-то другие идеи, надоело тратить средства и переделывать с нуля. Это, конечно, хорошо, что я учусь на своих ошибках...
Теперь, ещё раз о плавности хода. Я помещаю на движущиеся части объекта метки, после чего провожу видеосъёмку скоростной камерой.
Например, физический маятник в таком случае двигается плавно, а вот моя система, хотя и кажется, что движется плавно, но на самом деле, при детально рассмотрении, сильно дёргается и качается на концах треаектории. Здесь ещё и недостаток самой конструкции, слишком она тонкая, я буду делать её основание более устойчивым и тяжёлым.
megamanx
 
Сообщения: 12
Зарегистрирован: 23 апр 2013, 08:30

Re: Плавное движение

Сообщение Myp » 23 апр 2013, 10:11

а ты не выставляй на серве сразу максимальный угол.
плааавненько увеличивай угол и плавненько тормози.

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

можно снимать сигнал с резистора, припаять провод к центральному выводу внутри
тогда получаешь текущее положение и сможешь придумать алгоритм разгона с привязкой к текущему положению.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Плавное движение

Сообщение megamanx » 23 апр 2013, 11:19

Я так не смог. Возможно, руки кривые. Каждый раз, при маленьком повороте, происходит рывок. Вот он мне и не нужен, я пытаюсь от него избавиться. Если я делаю очень маленький временной промежуток, то скорость падает раза в два, но тут нельзя говорить о медленном повороте, 0.45 сек и 0.90 секунд разница несущественная. Когда делаю интервал больше, серва успевает провернуться и начинает тормозить уже. Выглядит как пляска святого Витта - подёргивание, с постепенным перемещением.
Вывести провод от резистора можно, но я опять же не понимаю сути, поворот возможен только на малый угол, с крутым ростом фронта.
Скорее вопрос даже в том, как этот фронт сгладить. Чтобы очень медленно запустить движок. Единственный способ, который я могу себе представить - это заменить микроконтроллер сервы на свой ПИД.

Как вот такое решение? - берём простой моторчик, контроллер под него, редуктор скажем на 10, и соосно ведомой шестерне ставим переменный резистор, потом реализую свой ПИД. (ну то есть действительно, свой сервопривод)
Начал делать такую штуку. Но насколько я ТАУ помню, там управление по току, чем мне это грозит, ещё не вспомнил до конца).

Добавлено спустя 2 минуты 14 секунд:
А, я ещё слышал такую штуку, что можно подправить серву, спилить у резистора кусок, чтобы он вращался на 360 градусов, а не на 120. Тогда можно будет за счёт редуктора ещё уменьшить скорость и точность по углу останется приемлемой. вроде даже на этом форуме материал читал.
megamanx
 
Сообщения: 12
Зарегистрирован: 23 апр 2013, 08:30

Re: Плавное движение

Сообщение dccharacter » 23 апр 2013, 11:59

Я переделывал сервы под постоянное вращение с энкодерами:
http://dccharacter.blogspot.ru/2012/06/ ... on_30.html

Вот я на них делал рисовалку:
post243724.html#p243724

Т.е. делаешь PID по данным с энкодера, при этом у тебя всегда будет нужная плавность и динамика. Плавность будет ограничена настройками пида, динамика - максимальной скоростью сервы.
Если нужно - есть две готовых сервы.
Продам.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Плавное движение

Сообщение boez » 23 апр 2013, 12:06

А какая у тебя величина ступенек по углу? Мне кажется ты все же как-то неправильно реализовал поворот, временной промежуток должен быть 20 мс, а скорость поворота регулировать шагом угла (0.1, 0.01, да хоть 0.001 градуса на 20 мс).
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Плавное движение

Сообщение Vovan » 23 апр 2013, 12:08

А может это взять за основу?: http://we.easyelectronics.ru/electro-an ... bview.html (извиняюсь если мимо, но сам, как-то раз, пользовался).
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Плавное движение

Сообщение Myp » 23 апр 2013, 14:42

megamanx писал(а):Я так не смог. Возможно, руки кривые.

ищи в чём проблема
серва вполне способна медленно и плавно поворачиваться.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Плавное движение

Сообщение AndreW82 » 23 апр 2013, 16:30

я чё-то так и не вкурил, что там за проблема у топикстартера?!?
forum16/topic12233-60.html#p271721 - это не достаточно плавно? 8)
Аватара пользователя
AndreW82
 
Сообщения: 170
Зарегистрирован: 14 ноя 2012, 21:30
Откуда: Моск. обл.

Re: Плавное движение

Сообщение Angel71 » 23 апр 2013, 17:04

AndreW82, никто кроме тс не знает, как он реализовал само управление и что из себя представляет эта "система". да, очень похоже, что тс просто немного в коде слишком резко серву гоняет. хотя и не исключено, что это особенности конструкции (габаритами, распределениее веса,...). может ему достаточно будет немного код подправить, а может придётся выводить провод от потенциометра и пид делать или вообще взять другую серву (скорость не та или слабовата).
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: Плавное движение

Сообщение =DeaD= » 23 апр 2013, 18:05

Кстати, да, ТС, скажите, насколько точно (в цифрах) плавно вам нужно?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

След.

Вернуться в Механика

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9