roboforum.ru

Технический форум по робототехнике.

Вопросы новичка.

Re: Вопросы новичка.

ilalexey » 05 сен 2018, 23:06

Dmitry__ писал(а):Всего одна жизнь, и она заканчивается...

есть такое.
купи на али компас. не, лучше сам сделай, а то подсунут не то направление :)
--------
..блин, только вчера серию "гинтама(174)" тематическую посмотрел.

Re: Вопросы новичка.

Scorpio » 06 сен 2018, 03:43

Dmitry__ писал(а): Надо ось "х" не временем делать, а углом одной сервы, а "y" - углом второй сервы. Тогда пойдут закономерности.

Ну вот сделал те же картинки для наглядности:
Func21.jpg

Func22.jpg

Func23.jpg

Func24.jpg

Func25.jpg

Func61.jpg

И что нам это дало?

Re: Вопросы новичка.

Dmitry__ » 06 сен 2018, 05:23

Scorpio писал(а):И что нам это дало?

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

Добавлено спустя:
Удалил текст, не учел что нельзя рычаги расположить под другими углами (выйдет за ограничения серв) :oops:

Добавлено спустя 7 минут 54 секунды:
А последнюю картинку (в моем тексте) возможно нарисовать с другими начальными углами? Или первая серва упрется в ограничитель?

Re: Вопросы новичка.

dimamichev » 06 сен 2018, 09:01

А может проверить очевидное, построить отрезок вдоль Y? Отношение 1 к 2 на графиках должно просматриваться в любых используемых координатах.
Вложения
Func21.jpg
Func21.jpg (22.45 КиБ) Просмотров: 1539

Re: Вопросы новичка.

Scorpio » 06 сен 2018, 15:24

Func10.jpg

Dmitry__ писал(а):А последнюю картинку (в моем тексте) возможно нарисовать с другими начальными углами? Или первая серва упрется в ограничитель?

Недопонял, но вот сама рисовалка для желающих.

Re: Вопросы новичка.

dimamichev » 06 сен 2018, 16:24

Ну, вроде зависимость видна...

Такая копия получается, руки дрожат немного, потому что пульт-манипулятор влияет на свободу движения пустышки-фломастера + "кривизна серв".
Ну и в скетче с числами явно не всё точно (искажение в пропорциях).
Код: Выделить всёРазвернуть
///////////// МАНИПУЛЯТОР ДЛЯ ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ  скетч с управлением через пульт на потенциометрах  //////////////////////////////
#include <Servo.h> // подключение библиотеки Servo

Servo servo1;//указываем сервопривод основного поворота (при увел. угла - поворот рычага ВЛЕВО)
Servo servo2;//указываем сервопривод дополнительного поворота (при увел. угла - поворот рычага ВПРАВО)
Servo servo3;//указываем сервопривод подъёмника (при увел. угла - поворот рычага ВВЕРХ)



byte a=110;//начальный угол
byte b=113;
byte a03=120;


byte A; byte B; //переменные для текущих значений углов поворота сервоприводов
byte a3=a03;
byte n=30;// единица временного интервала
byte K;// флаг для триггерного режима управления подъёмом пера

void setup()
{
pinMode(8,INPUT);  //кнопка опуслания пера
//Serial.begin(9600);
servo1.attach(5);// подключаем переменную servo к соответствующему выводу платы Ардуино
servo2.attach(6);
servo3.attach(7);
servo1.write(a);//начальная установка положения
servo2.write(b);
servo3.write(a03);
delay(1000);
}
//////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
///////////////////////////////////////////////////////////
if (digitalRead (8)==LOW&&K==0)//если кнопка рисования нажата
{pero(1);K=1;}
if (digitalRead (8)==HIGH&&K==1)//если кнопка рисования отпущена
{pero(0);K=0;}
///////////////////////////////////////////////////////////
A=map(analogRead(A0), 461, 713, 40, 115);//пересчёт значений углов поворота валов серв
B=map(analogRead(A1), 43, 306, 83, 160);
///////////////////////////////////////////////////////////
if (A>39&&A<116&&B>82&&B<161)// если полученные значения углов лежат в границах допустимых
{servo1.write(A);servo2.write(B);delay(n);}
///////////////////////////////////////////////////////////
}
//////функция поднимания-опускания фломастера (значения аргумента 0 и 1 соответственно)/////
void pero(byte k)
{
  while (a3>85&&k==1)
  {servo3.write(a3);a3=a3-1;delay(n/2);}if(k==1){a3=85;}
   while (a3<a03&&k==0)
  {servo3.write(a3);a3=a3+1;delay(n/2);}if (k==0){a3=a03;}
  }
Вложения
IMG_7448.JPG

Re: Вопросы новичка.

Scorpio » 06 сен 2018, 17:06

А выводы где?

Re: Вопросы новичка.

dimamichev » 06 сен 2018, 17:33

Scorpio писал(а):А выводы где?

Да хрен её знает. Всё элементарно в режиме реального времени, как автоматически запоминать Ардуиной траекторию, чтобы манипулятор смог сам повторить через время, не знаю. Записывать в массив через интервал времени пары значений углов, если хоть один угол изменился.., на сколько хватит ресурса?

Re: Вопросы новичка.

Scorpio » 06 сен 2018, 17:43

Желательно всеже не повторять, а научиться воспроизводить любую новую картинку, зная зависимости.

Re: Вопросы новичка.

dimamichev » 06 сен 2018, 18:11

Scorpio писал(а):Желательно всеже не повторять, а научиться воспроизводить любую новую картинку, зная зависимости.

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

Re: Вопросы новичка.

Scorpio » 06 сен 2018, 18:56

Видимо, единственно возможное решение - это разбивание кривой на отрезки (что мы и делали). Чем больше точек, тем плавнее аппроксимация. Но! У серв есть зона нечувствительности + несовершенство измерительного органа. Шаговик этих недостатков лишен. И в прямоугольной системе, зависимости получаются линейными. Т.е. достаточно конечных точек, чтобы нарисовать идеальную прямую.
Кстати, те же цифровые сервы dinamixel, по сути отличаются только качеством исполнения и продвинутым ПО. В ОС у них тот же несовершенный резистор.

Re: Вопросы новичка.

Dmitry__ » 06 сен 2018, 19:00

Scorpio писал(а):Недопонял, но вот сама рисовалка для желающих.

Попробовал запустить под винХП (единственное что осталось на компе :)) Естественно не пошло, говорит не win32. Но благодаря этой попытке снес раздел вин (2 года не ходил в венды) и отдал раздел 110 гигов линуху :D

Scorpio писал(а):Недопонял

Картинка с конечным углом 1-й сервы 71 град. Повернуть эту серву примерно до 180 град., а 2-я серва соотв. будет не в горизонте, а вертикально, и так нарисовать ту же линию?
Этот манипулятор может задавать нужную точку 2-мя наборами координат: Нарисовать 2 окружности с радиусами длин рычагов. Пересечения окружностей - 2 набора координат для нужной точки.

Re: Вопросы новичка.

Scorpio » 06 сен 2018, 19:36

Так что ли:
Func11.jpg

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

Re: Вопросы новичка.

Dmitry__ » 06 сен 2018, 19:46

Scorpio писал(а):Так что ли:

А фиг его знает. Трудно обьяснять по телефону, жестикулируя руками :)
Ахренеть, попытался нарисовать, что хочу сказать, но в линухе не работал с редакторами, полез в вин в свой любимый pcad и понял, что я все забыл в нем :cry:

Нарисовал как смогла, любую точку можно задать 2-мя наборами координат. Центр верхней окружности - нужная точка. Радиусы окружностей равны длине соотв. рычага. Пересечения окружностей - единственные возможные координаты манипулятора. Синий манипулятор - 1-й набор координат, и 2-й манипулятор, что за цвет у 2-го манипулятора? Я в цветах не очень разбираюсь :oops:

1.GIF

Re: Вопросы новичка.

dimamichev » 06 сен 2018, 20:04

Попробовал карандаш простой на листке вместо пустышки - манипулятор своеобразно повторил слово, растянул его чего то и загнул слегка.
Кнопку подъёма на пульте стержня желательно заменить "на с фиксацией", тогда гораздо легче учиться писать буквы. Можно такой сценарий для детей - "Пиши слово и Ардуняша за тобой будет повторять... У тебя, видишь, всё равно лучше получилось!"
Конечно, если бы через блютуз на смартфон после каждой буквы сигнал посылать, чтобы робот спрашивал "Какую букву написали с тобой?" - было бы полезнее.
Вложения
IMG.jpg


Rambler\'s Top100 Mail.ru counter