Самодельный гексапод on-line

AlexSpb

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

pdk

красивая конструкция!
Что будет в качества шарниров?
(автомобильные шаровые опоры???)

VShaclein
pdk:

красивая конструкция!
Что будет в качества шарниров?
(автомобильные шаровые опоры???)

Особенное если раму перевернуть, чтобы подошли.
Вот интересно, чем управлять, в смысле софта ?
Самому формулу придумывать - всю голову изломаешь.

pdk

а в чем проблемма с софтом?
взять существующий промышленный софт и написать соответствующий конвертер
(например превращающий паука в простой з-хосный станок )

VShaclein
pdk:

а в чем проблемма с софтом?

Вы сходу можете сказать, по какой траектории двигается инструмент в сабже ?
А с учетом неточностей установки ног, их длинны и т.д.
Нет, если, конечно, занете, поделитесь, pls - мне было бы интересно в качестве примера для трехкоординатного.

toxa
pdk:

взять существующий промышленный софт и написать соответствующий конвертер например превращающий паука

Например? Какой например взять софт?

pdk:

в простой з-хосный станок )

Зачем городить тогда такое, если можно взять обычный трехосный станок?

VShaclein
toxa:

Например? Какой например взять софт?

Нет. Софт _взять_ не сложно. Вот как будете _писать_ конвертор ?

toxa:

Зачем городить тогда такое, если можно взять обычный трехосный станок?

Имею ввиду немного (или много) другую конструкцию - проще в два раза.
Т.к. 6 координат не нужно, а нужно только 3.
Тем более шестая в данной конструкции все равно не используется - дублирует шпиндель.
С другой стороны и не “обычный”.

pdk
VShaclein:

Вот как будете _писать_ конвертор ?

сложность то в чем?
например, вот так:
Maple code:

> restart;
> with(LinearAlgebra):
для экономии места многи цифр не рисуем)
> Digits := 4:
матрица перехода от ск платформы в ск станины через три последовательных поворота вокруг осей станины (x,y,z)
> mx:=Matrix(3,3,[[1,0,0],[0,cos(phi0),-sin(phi0)],[0,sin(phi0),cos(phi0)]]):
> my:=Matrix(3,3,[[cos(psi0),0,sin(psi0)],[0,1,0],[sin(psi0),0,cos(psi0)]]):
> mz:=Matrix(3,3,[[cos(gamma0),-sin(gamma0),0],[sin(gamma0),cos(gamma0),0],[0,0,1]]):
> m:=Multiply(mz,Multiply(my,mx)):
координаты крепления актуаторов на платформе (в ск платформы)
> P:=[ Vector(3,[r*cos( eva*lf(2*Pi/6*i)),r*sin(2*Pi/6*i),h])$i=1..6]:
координаты креплений актуаторов на станине
> P0:=[ Vector(3,[r0*cos( eva*lf(2*Pi/6*i)),r0*sin(2*Pi/6*i),0])$i=1..6]:
координаты фрезы
> V:=Vector(3,[x,y,z]):
растояния между точками крепления актуатора
> fl:={seq(simplify(DotProduct(V+Multiply(m,P[i])-P0[i],V+Multiply(m,P[i])-P0[i],conjugate=false)),i=1..6)}:
приравниваем к искомым длинам
> u:=[(l[i]=sqrt(fl[i]))$i=1..6]:

зададимся конкретными размерами
> r0:=1:
> r:=0.5:
> h:=0.1:
>
теперь перейдем к "чистому 3d" - платформа движется только поступательно
(углы могут быть и отличны от 0)
> phi0:=0:
> psi0:=0:
> gamma0:=0:
получаются вот такие выражения связывающие координаты фрезы с положениями актуаторов:
> simplify(u);
l[1] = .2000e-1*(-1250.*x-2165.*y+500.*z+2500.*x^2+2500.*y^2+2500.*z^2+650.)^(1/2),
l[2] = .1000e-1*(5005.*x+8660.*y+2000.*z+.1000e5*x^2+.1000e5*y^2+.1000e5*z^2+2602.)^(1/2),
l[3] = .1000e-1*(4997.*x-8660.*y+2000.*z+.1000e5*x^2+.1000e5*y^2+.1000e5*z^2+2599.)^(1/2),
l[4] = .1000e-1*(-4991.*x+8660.*y+2000.*z+.1000e5*x^2+.1000e5*y^2+.1000e5*z^2+2598.)^(1/2),
l[5] = .1000*(26.+100.*x+20.*z+100.*x^2+100.*y^2+100.*z^2)^(1/2),
l[6] = .1000*(26.-100.*x+20.*z+100.*x^2+100.*y^2+100.*z^2)^(1/2)];

Погрешности dx[i]=dX[i]*dL[i]
>
где справа вектор производных от длинны по соответствующей координате умноженный на отклонение длинны
>
> dL:=Vector( 6,[dl[i]$i=1..6]):
> dX:=Vector( 6,[-2*l[i]/diff(fl[i],x)$i=1..6]):
> dY:=Vector( 6,[-2*l[i]/diff(fl[i],y)$i=1..6]):
> dZ:=Vector( 6,[-2*l[i]/diff(fl[i],z)$i=1..6]):
например отклонение координаты X можно записать как
>
> dx:=DotProduct(dX,dL,conjugate=false);

		  2 l[1] dl[1]   2 l[2] dl[2]   2 l[3] dl[3]   2 l[4] dl[4]
  dx := - ------------ - ------------ - ------------ - -------------
		   -0.5 + 2 x	0.5005 + 2 x   0.4997 + 2 x   -0.4991 + 2 x

		   2 l[5] dl[5]   2 l[6] dl[6]
		 - ------------ - ------------
			1.0 + 2 x	  -1.0 + 2 x
конечно значения dl[i] нам неизвестны, поэтому можно либо найти максимальное значение dx
( задача линейного пограммирования, ограничения: dl[i]>-Maxdl dl[i]<Maxdl ), либо, считая
распределение погрешностей установки актуаторов нормальным, найти распеределение погрешностей
позиционирования фырезы
VShaclein
pdk:

конечно значения dl[i] нам неизвестны, поэтому можно либо найти максимальное значение dx
( задача линейного пограммирования, ограничения: dl[i]>-Maxdl dl[i]<Maxdl ), либо, считая
распределение погрешностей установки актуаторов нормальным, найти распеределение погрешностей
позиционирования фырезы

Безусловно, интересно, 10x.
Но как я понимаю - это теоретический случай ?
Все равно придется решать примерно такую же задачу, но для реальных условий.
Когда неизвестно, где установлены ноги, где они крепятся, какая у них длина и какой при этом наклон стола.
Причем, сначала нужно будет пристреляться, затем вычислить матрицу для реальной модели, а потом вычислить обратную матрицу, по которой будут конвертироваться XYZ в положение актуаторов.

Кстати, может у вас и для такого формулка найдется ? Было бы реально полезно.

pdk
VShaclein:

Но как я понимаю - это теоретический случай ?

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

повторюсь что не вижу здесь математически трудностей, для любительских целей достаточно будет конвертера превращающего “паука” в станок кинематику которого поддерживает управляющий софт.
как расчитать требуемое положение актуатороа по положению фрезы см. выше. Для начала ОКР этого достаточно)

VShaclein
pdk:

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

В общем, я именно про это.

pdk:

повторюсь что не вижу здесь математически трудностей

Кто ж спорит.
Все просто, если взять и измерить, что где стоит и к чему в каком положении прикручено.
Проблема как раз в том, что не измерить - не подлезешь с микрометром к собранному шарниру.
Поэтому идти придется от обратного.
Ну или считать, что реальная модель == теоретической, со всеми вытекающими.

spike
GOOD:

Чем он лучше “руки” манипулятора

Жесткостью

pdk:

красивая конструкция!
Что будет в качества шарниров?
(автомобильные шаровые опоры???)

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

VShaclein:

Особенное если раму перевернуть, чтобы подошли.
Вот интересно, чем управлять, в смысле софта ?
Самому формулу придумывать - всю голову изломаешь.

Собственно суть преобразования координат фрезы в длины ног изложена у pdk, но конечно тут еще непаханное поле в плане точности

ALEX_61

Доброго дня!

Вот тут кое что вспомнил, может вам ради интереса стоит глянуть:
festo.com/…/1b433eb8d078cbd2c1256c7e0039bf43.htm

Мощь автоматизации
Идеальная работа: контролируемая мощность, моментальные сжимание и разжимание. Талантливая идея: инженеры Festo воссоздали принцип работы человеческих мышц и изобрели новое промышленное устройство. Пневматический мускул MAS: революционный привод как результат.

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

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

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

toxa
pdk:

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

Управляющий софт придется самостоятельно писать. То о чем вы говорите - преобразователь из CAM системы, ну преобразуете одни координаты в другие. Какой именно софтине вы эти другие координаты скормите?

spike
toxa:

Управляющий софт придется самостоятельно писать. То о чем вы говорите - преобразователь из CAM системы, ну преобразуете одни координаты в другие. Какой именно софтине вы эти другие координаты скормите?

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

toxa
spike:

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

Действительно, работать с параллельным портом очень просто. Буду рад, если у вас все получится, как задумано.