Страница 1 из 1

Дельта-робот

Добавлено: 05 фев 2011, 01:37
buyvoll
Вот тут есть простой расчёт кинематики дельта-робота.
С триподом по сути тоже самое, только определяется не угол а расстояние.

Re: Дельта-робот

Добавлено: 05 фев 2011, 11:37
PKM
spike писал(а):трипода с вот такой вот кинематсхемой
А как в данной схеме обеспечивается постоянная ориентация выходного звена?
buyvoll писал(а):Вот тут есть простой расчёт кинематики дельта-робота.
Не ваш проект?

Я в последнее время задумываюсь над дельтой - очень зрелищный робот. Уже и в пинг-понг играет, если кто не видел
[youtube]http://www.youtube.com/watch?v=omGHeVmv6NI[/youtube]

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

Re: Дельта-робот

Добавлено: 09 фев 2011, 00:29
buyvoll
Да, проект наш.
На китайских сервоприводах вот от сюда http://www.parkflyer.ru/category/189/84/

В пинпонг играет симпатично ))
Там походу положение постоянно отслеживается камерой

Re: Дельта-робот

Добавлено: 09 фев 2011, 09:03
PKM
buyvoll писал(а):Да, проект наш.
Очень любопытно. А в какой он стадии готовности?

Re: Дельта-робот

Добавлено: 09 фев 2011, 10:33
spike
PKM писал(а):А как в данной схеме обеспечивается постоянная ориентация выходного звена?
Предполагалось параллелограммами на карданах, картинки под рукой нету )bk(

buyvoll, можт расскажешь подробнее о проекте?

Re: Дельта-робот

Добавлено: 09 фев 2011, 12:45
buyvoll
Пока рассказывать особо нечего. Как раз планировал по ходу выполнения выкладывать инфу на сайте.
В данный момент как-раз сдаются в работу чертежи.
Изначально планировалось привязать его к тач-скрину. Сейчас собираемся решать вопрос с софтом, ибо очень уж проект RepRap понравился, хочется сделать что-то вроде него

Re: Дельта-робот

Добавлено: 10 фев 2011, 20:27
PKM
Примерно какие характеристики планируются - размеры, скорость, ускорение?

Re: Дельта-робот

Добавлено: 11 фев 2011, 18:07
buyvoll
Планируется как раз таки изучить, как он себя поведёт на указанных китайских сервах.
а по размерам - 300мм плечо, 550 мм предплечье

Re: Дельта-робот

Добавлено: 11 фев 2011, 20:27
PKM
Вроде они довольно хлипковаты. Возможно, машинку с теннисной ракеткой на таких и построили, но на длине 300 мм даже самые мощные из них дадут не больше килограмма.
С другой стороны, от привода весом 50-100 г многого ожидать не приходится. Если серьезное что-то творить, то сервопривод + редуктор. Вроде червячные тут должны хорошо подойти.

Re: Дельта-робот

Добавлено: 11 фев 2011, 23:12
buyvoll
Изначально робот проектировался для воспроизведения движений с тач-панели, т.е. для рисования. Так что много ему таскать и не придётся. А как его сделаем, будем лепить что-нибудь посерьёзней

Re: Дельта-робот

Добавлено: 24 фев 2011, 14:18
buyvoll
Для понимания сути вопроса, пишу его сюда.
Решил что для управления нормальным дельта-роботом, дабы не ловить кучу лифтов на редукторах (да и не тратить много денех, которых как обычно нет) нужно сочинять драйверы с контролируемым микрошагом.
Ну а дальше, вроде как всё просто, по нужной координате подстраиваем нужные углы.
Одна загвоздка - дабы не погрязнуть в написании проги для перевода G-кода в координаты XYZ (а программер из меня далеко не ахти, а по симу боюсь реально погрязну) надобно где-то раздобыть эту самую часть проги.
А по симу вопрос: Где взять такой ресурс?

Re: Дельта-робот

Добавлено: 24 фев 2011, 19:51
PKM
Вообще есть хороший проект ЕМС2 - все что угодно можно сделать, только он на линуксе.
Или Gigamesh - тогда надо spike просить добавить кинематику.

Re: Дельта-робот

Добавлено: 24 фев 2011, 20:06
buyvoll
да вот в том и дело, что нужно с выводящей частью программы поэкспериментировать.

Re: Дельта-робот

Добавлено: 24 фев 2011, 22:47
spike
buyvoll писал(а):Решил что для управления нормальным дельта-роботом, дабы не ловить кучу лифтов на редукторах (да и не тратить много денех, которых как обычно нет) нужно сочинять драйверы с контролируемым микрошагом.
Ага, интересненько! )ab( Что ты хочешь получить от микрошага? Говорят точности от него не прибавится... Но я таки так понимаю: микрошаг 1/10 с погрешностью 30% - это все равно лучше (как минимум плавнее) чем полушаг.
buyvoll писал(а):Ну а дальше, вроде как всё просто, по нужной координате подстраиваем нужные углы.
)bw3( кагбэ, наверное, не так уж и просто... можт я чего-то не понял...
buyvoll писал(а):Одна загвоздка - дабы не погрязнуть в написании проги для перевода G-кода в координаты XYZ (а программер из меня далеко не ахти, а по симу боюсь реально погрязну) надобно где-то раздобыть эту самую часть проги.
Вроде как в G-коде координаты XYZ присутствуют, совсем не понял что надо.
PKM писал(а):Или Gigamesh - тогда надо spike просить добавить кинематику.
Упрашивать меня не придется )ab( , сделаю обязательно. Только описание кинематики нужно, а дальше все весьма просто делается.
buyvoll писал(а):нужно с выводящей частью программы поэкспериментировать.
Имеется ввиду та, которая приводами рулит?

Re: Дельта-робот

Добавлено: 26 фев 2011, 14:49
buyvoll
spike писал(а): Ага, интересненько! )ab( Что ты хочешь получить от микрошага? Говорят точности от него не прибавится... Но я таки так понимаю: микрошаг 1/10 с погрешностью 30% - это все равно лучше (как минимум плавнее) чем полушаг.
Всётаки хочется попытаться добиться точности. Дабы лапы дельта робота пряма на вал ШД вешать, например.
Идея в том, чтобы контролировать положение поля по току катушек и непосредственно логикой, а с МК задавать ШИМ на компаратор, соответственно требуему току в соответствующей катушке.
)bw3( кагбэ, наверное, не так уж и просто... можт я чего-то не понял...
Ну я выше давал ссылку на расчёт киниматики, вроде не сложно получилось
Вроде как в G-коде координаты XYZ присутствуют, совсем не понял что надо.
блок кода для чтения этого самого G-кода.
Упрашивать меня не придется )ab( , сделаю обязательно. Только описание кинематики нужно, а дальше все весьма просто делается.
Как и говорил, расчёт кинематики тут http://www.ignb.ru/projects/12-delta-robot.html
в коде, правдо сыром, это вот так вот

Код: Выделить всё

 // Управление приводами
//определение координат для каждой ноги
	float x1 = x;
	float y1 = y;
	float x2 = x*cos(120) + y*sin(120);
	float y2 = y*sin(120) - x*cos(120);
	float x3 = x*cos(120) - y*sin(120);
	float y3 = y*sin(120) + x*cos(120);

//определение углов	
	float BAC1 = acos ( (AB*AB + (y1 + OC – O1A)*(y1 + OC – O1A) + z*z – (BC*BC-x1*x1)) / (2*AB*(sqrt((y1 + OC – O1A)*(y1 + OC – O1A) + z*z))) );
	float BAC2 = acos ( (AB*AB + (y2 + OC – O1A)*(y2 + OC – O1A) + z*z – (BC*BC-x2*x2)) / (2*AB*(sqrt((y2 + OC – O1A)*(y2 + OC – O1A) + z*z))) );
	float BAC3 = acod ( (AB*AB + (y3 + OC – O1A)*(y3 + OC – O1A) + z*z – (BC*BC-x3*x3)) / (2*AB*(sqrt((y3 + OC – O1A)*(y3 + OC – O1A) + z*z))) );

	float МАС1 = atan ((y1 + OC – O1A)/z);
	float МАС2 = atan ((y2 + OC – O1A)/z);
	float МАC3 = atan ((y3 + OC – O1A)/z);

	float theta1 = BAC1 - МАС1;
	float theta2 = BAC2 - МАС2;
	float theta3 = BAC3 - МАС3;

// заполнение ШИМ
	int t1 = (1100/360)*theta1*8 + 950;
	int t2 = (1100/360)*theta2*8 + 950;
	int t3 = (1100/360)*theta3*8 + 950;
	

    if (TCNT2>=20000)
	{
		PORTD|=_BV(PD0);
		PORTD|=_BV(PD1);
		PORTD|=_BV(PD2);
		TCNT1=0;
	}

	if ((TCNT2 >= t1) && (PORTD & 0b00000001)) PORTD&_~BV(PD0);
	if ((TCNT2 >= t2) && (PORTD & 0b00000010)) PORTD&_~BV(PD1);
	if ((TCNT2 >= t3) && (PORTD & 0b00000100)) PORTD&_~BV(PD2);
Имеется ввиду та, которая приводами рулит?
она самая

Re: Дельта-робот

Добавлено: 27 фев 2011, 15:28
spike
buyvoll писал(а):Ну я выше давал ссылку на расчёт киниматики, вроде не сложно получилось
Не знаю как объяснить... Попробуй задать некую прямую в пространстве XYZ, с небольшим шагом проведи пересчеты в углы и посмотри какая зависимость получится. Предполагаю что зависимость будет очень даже отличаться от прямой. Это значит что нельзя подобрать такой шаг, при котором гарантированно угол привода изменится на величину дискрета. Можно, конечно, на это забить и просто заполнять (например линейно) приращения положения привода дискретами перемещений. Можно, особо если точность воспроизведения траектории не слишком важна, т.е. если важны именно конечные точки.
Хотя, может быть я дую на холодную воду, пробуй...

У тебя приведен расчет инверсной (обратной) кинематики, GIGAMESH использует прямую (все равно как она будет расчитываетана - или аналитически или численно). Т.е. нужно преобразование из координат приводов (углов подъема лап) в координаты инструмента (XYZ).
buyvoll писал(а):Идея в том, чтобы контролировать положение поля по току катушек и непосредственно логикой, а с МК задавать ШИМ на компаратор, соответственно требуему току в соответствующей катушке.
Насколько я понимаю примерно так и работает практически любой боле-мене нормальный шаговый привод. Недостаток этой идеи в том, что положение поля по току катушек можно контролировать с весьма ограниченной точностью, которая обусловлена неидеальностью магнитной системы.
buyvoll писал(а):блок кода для чтения этого самого G-кода
buyvoll писал(а):
spike писал(а):Имеется ввиду та, которая приводами рулит?
она самая
Ты знаешь, я пока еще не готов выложить исходники целиком... а вырезать блок из программы... непросто это, короче.
С другой стороны исходники в сети есть, тыц, ну и конечно linuxcnc, можно оттуда попробовать портировать.

Re: Дельта-робот

Добавлено: 27 фев 2011, 17:27
buyvoll
spike писал(а): У тебя приведен расчет инверсной (обратной) кинематики, GIGAMESH использует прямую (все равно как она будет расчитываетана - или аналитически или численно). Т.е. нужно преобразование из координат приводов (углов подъема лап) в координаты инструмента (XYZ).
Обратный расчёт сделать не сложно, но в случае когда робот должен провести инструмент через определённые координаты (а они, как ты сам сказал, есть в G-коде) то нужно положение приводов подгонять под координаты, а не наоборот.
spike писал(а):Ты знаешь, я пока еще не готов выложить исходники целиком... а вырезать блок из программы... непросто это, короче.
С другой стороны исходники в сети есть, тыц, ну и конечно linuxcnc, можно оттуда попробовать портировать.
Уж послал, так послал )ag(

Re: Дельта-робот

Добавлено: 01 мар 2011, 09:53
spike
В том-то весь и прикол, что именно наоборот: зная текущие координаты приводов, можно подобрать такие их изменения (исходя из их дискретности) чтобы следующая точка лежала на заданной кривой. Кривая задается g-кодом.
Конечно, можно и наоборот - никто не запрещает... но, как я уже говорил могут быть проблемы, а могут и не быть - не знаю, я так не делал.
buyvoll писал(а):Уж послал, так послал
)bn( вроде как и не посылал... )ab(
У меня сейчас оооочень много работы, поэтому пообещать что-то сделать быстро ну никак не могу.
Идет работа над CNCOpen - это технология обмена данными между модулями ЧПУ, некая виртуальная универсальная шина, к которой подключаются модули. Процесс этот идет давно и не очень быстро, некоторые модули уже написаны, ядро тоже вроде как готово, но практически никакой отладки не было. Вот как раз эти модули бы тебя устроили: готовые, отлаженные, с описанными входными-выходными форматами. Пока ждем... )bs(

Re: Дельта-робот

Добавлено: 02 мар 2011, 01:21
buyvoll
(нет, ну всё-таки не сдержусь )ag( )
не отмазывайся, не военкомат )ao(
)bj( )bj( )bj( шутка
наверно ты прав, такие бы очень пригодились.
ну мы тут потихоньку муливать читалку начали... ну если конкретней, то пока не сам код а только с алгоритмом разбираемся
будет видно в общем )ad(

Re: Дельта-робот

Добавлено: 03 авг 2012, 09:24
PKM
прошло полтора года... есть дельта-робот? ;)
Некоторые сообщения были отделены в новую тему: Дельта робот для расскладки оцинкованного профиля #1.
--Nick