“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр Машинки

Введение в систему дифференциального привода и кинематику робота

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

Мобильный робот имеет шесть степеней свободы (DOF). Три степени свободы: х, у и z — связаны с тремя координатными осями, позволяющими определить положение объекта в трехмерном пространстве. Остальные три степени свободы относятся к ориентации робота в пространстве.

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

Робот с дифференциальным приводом перемещается в двухмерной плоскости (2D), и его положение в любой момент можно описать двумя глобальными координатами Х и Y, лежащими в горизонтальной плоскости. При этом курс робота обозначается как θ. Этих данных вполне достаточно, чтобы описать положение робота с дифференциальным приводом.

Положение робота Х, Y и θ в глобальной системе координат
Положение робота Х, Y и θ в глобальной системе координат

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

Веб-сервис


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

Максимальная частота обновления, которую удалось добиться мне:

Железо

В волшебную коробочку аккуратно добавлены Raspberry pi, USB хаб, wifi-адаптер, веб-камера.Из интересных моментов по железу. У меня не оказалось драйвера с нужными характеристиками для двигателей. Обычно в качестве драйвера используют H-мост на полевых транзисторов или (хардкор) на реле. Я выбираю более жесткий вариант, потому что именно реле были в наличии.

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

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

Кроме самого робота установлена на доме камера, которая с частотой 3 кадра/сек. загружает на ftp-сервер в интернете обзорное фото участка для лучшей ориентации. Но впоследствии просто заменил на решение от ivideon.

Математическое моделирование робота

Наиболее важная часть мобильного робота – это система управления. С помощью нее робот ориентируется и перемещается в пространстве. Одной из самых простых и рентабельных систем управления является система дифференциального привода. Дифференциальный привод состоит из двух независимых друг от друга ведущих колес, установленных на общей оси.

Каждое ведущее колесо приводится в движение отдельным двигателем. Дифференциальный привод – это неголономная система, которая имеет ограничения в изменении положения робота. Примером неголономной системы является автомобиль, поскольку он не может изменить положение без измененияпозы.

Напомним, голономная система – это механическая система, все механические связи которой можно свести к геометрическим. Такие связи накладывают ограничения только на положение системы, но не на величины скоростей.

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

Если все кинематические связи нельзя свести к геометрическим связям, то данная система будет неголономной. Таким образом, неголономная система – это механическая система, на которую, кроме геометрических связей, наложены еще и дифференциальные (кинематические). Их нельзя свести к геометрическим связям.

Далее мы рассмотрим работу робота с дифференциальным приводом и возможность смоделировать его математически.

Обратная кинематика

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

Допустим, робот в момент времени t находится в положении (х, y, θ). Определим скорости левого (V-left) и правого (V-right) колес так, что за промежуток времени t δt робот займет новое положение с координатами (х′, y′ и θ′).

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

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

  • если V-left = V-right, => nr = nl => R = ∞, wdT = 0 (т. е. скорость и направление вращения левого ведущего колеса совпадают со скоростью и направлением вращения правого колеса), значит, робот движется прямолинейно и q остается неизменной;
  • если V-left = –V-right, => nr = –nl, => R = 0, wdT = 2nl × step/l и ICC = [ICCx, ICCy] = [x, y] => x′ = x, y′ = y, θ′ = θ ωδt => (т. е. скорости вращения левого и правого колес одинаковы, но направления их вращения не совпадают, колеса вращаются навстречу друг другу), значит, робот вращается вокруг мгновенного центра кривизны (ICC), т. е. ∀q может изменяться без ограничений при неизменных координатах [x, y].

Объединяя приведенные ниже способы управления, можно создать алгоритм, позволяющий достичь любого положения робота относительно его начального положения:

1) поворачивайте, пока ориентация робота не совпадет с линией, ведущей из исходного в целевое положение, V-right = –V-left = V-rot (скорость поворота);2) двигайтесь прямо до тех пор, пока положение робота не совпадет с целевым положением, V-right = V-left = V-ahead (скорость прямого движения);3) поворачивайте, пока ориентация робота не совпадет с ориентацией цели, V-right = –V-left = V-rot. Скорости V-rot и V-ahead выбираются произвольно.

Объяснение уравнений прямой кинематики

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

Колесо робота, вращающееся по локальной оси Y
Колесо робота, вращающееся по локальной оси Y

Наклон вправо или влево относительно оси Y называется креном; все остальное можно рассматривать как скольжение. Предположим, что колесо не проскальзывает. В этом случае за один оборот обод колеса пройдет расстояние, равное 2πr, где r – радиус колеса.

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

Конфигурация колеса робота с дифференциальным приводом
Конфигурация колеса робота с дифференциальным приводом

Основное понятие, без которого не получится вывести уравнение кинематического привода, – это угловая скорость робота, обозначаемая буквой w. При повороте ведущие колеса робота катятся по окружности, центр которой совпадает с мгновенным центром кривизны (ICC).

Скорость колеса описывается формулой v = 2πr/T, где T – время, затраченное на прохождение колесом расстояния, равного длине полной окружности с центром, совпадающим с точкой ICC. Угловая скорость w определяется как 2π/T и измеряется в радианах (градусах) в секунду. Радиан – это угол, соответствующий дуге, длина которой равна радиусу этой дуги. 1 радиан равен 57,3°.

Если объединить уравнения для расчета скорости колеса v и его угловой скорости w, получим уравнение w = 2π/T.

v = rw.           (1)

(уравнение линейной скорости)

Предыстория


Вся история с газонокосилками началась летом 2023,

как раз был о моем опыте реализации робокосилки из того, что было в гараже.

После этого

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

Я очень хотел организовать конкурс роботов-газонокосилок. Как оказалось дело это нелегкое. Команд было зарегистрировано более 15, но в итоге только трое участников показали ход работ.

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

Программа

Как и прежде Arduino получает по serial-порту сообщения в один символ, которые обозначают необходимое действие. Так же для тестирования и отладки, полученные от raspberry коды отправляются по bluetooth, можно подключить телефон в режиме терминала и получать данные с сервера еще и на телефон.

Скетч Arduino
int m1=2;
int m1b=3;
int m2=4;
int m2b=5;
int mk=6;
int pis=7;


char a,b;

void setup()  
{
Serial.begin(9600);
Serial1.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  while (!Serial1) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.println("Start");

 pinMode(statpin, OUTPUT);
 pinMode(m1, OUTPUT);
 pinMode(m1b, OUTPUT);
 pinMode(m2, OUTPUT);
 pinMode(m2b, OUTPUT);
 pinMode(mk, OUTPUT);
 pinMode(pis, OUTPUT);

analogWrite(pis,  1000);
delay(100);
analogWrite(pis,  700);
delay(200);
analogWrite(pis,  300);
delay(300);
analogWrite(pis,  1000);
delay(100);
analogWrite(pis,  100);
digitalWrite(pis,  HIGH);
 digitalWrite(statpin, LOW);
digitalWrite(m1, LOW);
digitalWrite(m1b,  LOW);
digitalWrite(m2, LOW);
digitalWrite(m2b,  LOW);
digitalWrite(mk,  LOW);
digitalWrite(pis,  HIGH);

}

void loop() // run over and over
{

  if (Serial.available()){
     a=Serial.read();
     Serial1.println(a);

    if(a=='B'){
digitalWrite(m1, HIGH);
digitalWrite(m1b,  LOW);
digitalWrite(m2, HIGH);
digitalWrite(m2b,  LOW);
    }
    if(a=='F'){
digitalWrite(m1, HIGH);
digitalWrite(m1b, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m2b,  HIGH);
    }
    if(a=='R'){
digitalWrite(m1, HIGH);
digitalWrite(m1b, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m2b,  HIGH);
    }
    if(a=='L'){
digitalWrite(m1, HIGH);
digitalWrite(m1b, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m2b,  LOW);
    }

       if(a=='S'){
digitalWrite(m1, LOW);
digitalWrite(m1b, LOW);
digitalWrite(m2, LOW);
digitalWrite(m2b,  LOW);
    }

       if(a=='W'){
digitalWrite(mk, HIGH);
    }  
       if(a=='w'){
digitalWrite(mk, LOW);
    }   

       if(a=='V'){
digitalWrite(pis, LOW);
    }  
       if(a=='v'){
digitalWrite(pis, 700);
    }   
  
    }else{
      
    }
  
}

Прямая кинематика дифференциального робота

С помощью уравнений кинематики для робота с дифференциальным приводом определяется положение устройства. Представим, что начальное положение робота в момент времени t – X, Y, θ. Нам требуется определить, какое положение устройство займет (X′, Y′, θ′) за промежуток времени t dt. При этом следует учесть следующие параметры: v-left – скорость левого и v-right – скорость правого колеса.

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

Робокосилка 2023. ros & fun

Я осваиваю ROS и пишу лаунчер для робокосилки, использую Kinect и SLAM, только на визуальной одометрии робот строит карту и прокладывает маршрут. Kinect в солнечную погоду работает плохо. С ROS Вы за один вечер сделаете «Hello World!», а дальше тьма.

нет ВООБЩЕ ни одной точки в РФ? Я открыл

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

В свободное время прикрутил к тягам своей «рабочей лошадки» два сервопривода, ультразвуковой сенсор и Arduino. Простой тест объезда березы и остановки пройден! А дальше бездна, эту штуку опасно просто так пускать по своему участку! Ее даже не получится пинать как роботов сами знаете откуда.

Оказывается роботы — вещи достаточно скучные в понимании большинства людей, особенно сервисные роботы. Да, знаю о великой дружбе роботов-пылесосов и котиков. Знаю о супер творениях от Boston Dynamics, Darpa и российском боевом роботе-аватаре, это все больше похоже на роботов, чем коробочка, в которой некий алгорим взаимодействует с реальным миром.

В понимании моей дочки роботы — это как минимум трансформеры, а не та еруда, на которую я трачу время. Я принял тяжелое решение и «временно» сделал из робокосилки игрушку на bluetooth управлении.

Управление работает так же как и у снегоуборщика. Оказалось это весело! Особенно для папы.

Дальше — больше! Меня заинтересовала идея реализации управления не на bluetooth, а через интернет, с телеметрией. Скучно, пресно и идея избитая!

А что если дать возможность любому пользователю интернета управлять моей газонокосилкой? Знаете такие идеи, которые потом трудно выкинуть из головы? Это как раз была такой…Сhallenge accepted!

Типы колесных баз, подъемных механизмов и колес робота — национальная сборная worldskills россия

4. Четырехколесные базы со всеми ведущими колесами представлены в двух вариантах: варианте с omni-колесами, когда мотор располагается под 45 градусов к ходу робота, и вариантом с механо-колесами, которые по своей сути являются вариацией omni-колес и обладают теми же возможностями. Но моторы, при этом, располагаются к ходу робота под прямым углом. Такие конструкции подходят только для передвижения по идеально ровным поверхностям.

У вас есть минутка? не могли бы вы покосить мой газон?

Краткая история разработки на коленке робота-газонокосилки. Управлять ей можно с любой точки земли через интернет. Мечтали почувствовать себя оператором марсохода или лунохода? Всего лишь нужно зайти на сайт

“зарождение проекта. часть 1.1. как я собирал робота телеприсутствия на колесной базе.” технологии endurance

Проект: Технологии «Endurance Robots&Lasers».

Статья №1. “Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.”

К 2023г членам нашей будущей команды удалось заработать достаточно денег, чтобы рисковать своим временем в долгосрочной перспективе (определили горизонт планирования 1 год). И мы решили организовать стартап. Заниматься куплей-продажей? Нееееет, технологичный стартап! А именно, разработка роботов и твердотельных лазеров мощностью порядка 1-10 Вт.

Идея присутствия в нужное время в интересном месте за тысячи километров мне сразу понравилась и нравится до сих пор! Все мы любим онлайн-трансляции. А благодаря роботу я к тому же сам управляю направлением своего взгляда, своим местонахождением. Поэтому в 2023 году когда мы начали проект Endurance Robots, я взялся за разработку робота телеприсутствия на колесах. Колесная база позволит передвигаться по помещению или на улице, а телеприсутствие обеспечит актуальность происходящей вокруг ситуации. Конечная цель: полная виртуальная реальность, робот, управляемый человеком с помощью очков Oculus rift! Огонь!))

Для начала я погуглил и изучил имеющиеся на международном рынке предложения: PadBot (Китай), BotEyes (Россия), Double Robotics (США), Webot (Россия), OrigiBot (США), Oculus (Канада), Anybot (США), RBOT Synergy (Россия), и составил таблицу сравнительных характеристик роботов. Роботы отличались по своему функционалу: умение брать предметы манипулятором (банку пива из холодильника:), преодолевать высокие препятствия, автономно заряжаться и др. Естественно, ценник плавал и находился в диапазоне от $1000 до $10000. Впоследствии я понял, что недорогие устройства до $5000 являются роботизированными платформами, управляемыми человеком-оператором, но никак не автономными роботами, способными самостоятельно принимать решения в меняющейся обстановке: приближение препятствия, проезд по маршруту из пункта А в пункт В, распознавание речевых команд. Наша команда Endurance Robots решила войти на рынок платформ эконом класса до $2000. Исходя из таблицы сравнительных характеристик я определил характеристики устройства, которые нужно достичь в первую очередь, а именно: время автономной работы (от 8 часов, целый рабочий день), преодоление препятствий (высотой до 3,5 сантиметров, порог входной двери), надежная передача команд управления через сеть Интернет, качественная видео- и аудиосвязь. Один участник проекта настаивал сделать корпус робота из женского манекена и установить планшет между грудей. Мы даже купили б/у торс без рук, ног и головы за $2 (полноценный новый манекен стоит ~$100), но из-за ограниченного бюджета эта идея в итоге умерла.
“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

В ходе тестирования спроса стало однозначно понятно, что люди ищут не просто планшет на колесах, но, скорее, роботизированную платформу, которая способна выполнять интеллектуальные задачи человека: распознавать объекты и речь (open source технология OpenCV), грамотно ответить на вопросы (ИИ), преодолеть маршрут до предмета, захватить предмет и перевести в место назначения. То есть колесная база – это не главное, но нужное дополнение к тому, что мы предлагаем. Стратегически колесная база остается главным форм фактором (form factor). По аналогии ноутбук -> планшет. Т.е. новая форма – это новый продукт.
“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

Задача на первом этапе — разработать колесную базу: недорогую (не дороже $200 для мелкосерийного производства), эффективную (которая бы надежно двигалась, имела бы модульность и возможность быстрого ремонта), простую (на подобии того, что телефон поставил, приложение скачал и система работает), надежную (software, hardware), которую в дальнейшем можно будет усовершенствовать. Оператор должен быть способен подавать сигналы на электромоторы и сервоприводы через сеть интернет.
Итак, БАЗОВЫЕ ПРИНЦИПЫ конструкции.
— Универсальность платформы а-ля «вездеход» не преследуется. Модель окружающей среды = внутри помещения. Поверхность ровная, (ламинат, плитка, дерево, бетон, линолеум), препятствия до 1 см.
— Приоритет в следующей последовательности: привлекательность, эргономичность и простота, мобильность.
— Создание прототипа, смоделированного под промышленное производство.
— Надежность в ежедневной эксплуатации (1 год)
— Заменяемость или дополняемость (поставить второй динамик или вторую камеру есть куда).
— Универсальность крепежей.
— Прямолинейное движение, а не зигзагами.
— Шум и вибрация менее 10 ДцБ.
— Разборность и легкость конструкции для переноса из одного здания в другое.
“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ конструкции.
— Максимальная скорость до 3 км/ч.
— Высота расположения верхнего края экрана ~1.5 м. (желательно, с возможностью изменения с 1.2 м до 1.8 м).
— Сколько кг на высоте 180 см? Планшет кредл два сервопривода. Будет ли устойчива трехколесная конструкция с выбранными АКБ вдоль бортов при наезде на препятствие 3.5 см одним колесом или двумя колесами?

И тут повалился миллион вопросов… Какого размера колеса? Из какого материала?

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

Какого типа: омни, гладкие, с глубоким протектором?

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

Сколько колес: три или четыре? Как насадить на вал?

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

На вал редуктора или мотора?

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

Какой мотор выбрать: коллекторный, бесколлекторный, шаговый? Из какого материала изготовить раму? В итоге я сделал первый прототип из легкодоступных материалов, продающихся в любом строительном магазине: 3 колеса (два ведущих и одно поворотное), рама из тонкого алюминиевого П-образного профиля, саморезы и болты, 2 шаговых мотора.

“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр
“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

Главное, этот прототип выполнял свое предназначение: служить нашему схемотехнику Андрею для тестирования электроники вдоль и поперек.

В этой статье я описал самое начало нашего длинного пути. Изделия и фотографии любительские. Но в следующих частях я покажу более профессиональный подход:

Схема расположения элементов механики и электроники, на которую мы ориентировались:
“Зарождение проекта. Часть 1.1. Как я собирал робота телеприсутствия на колесной базе.” Технологии Endurance / Хабр

Продолжение статьи здесь: «Продолжение. Часть 1.2. Как я собирал робота телеприсутствия на колесной базе.» Технологии Endurance Robots&Lasers

Итоги

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

Далее мы вывели использующиеся в таких устройствах уравнения прямой кинематики и объяснили их с помощью кинематических схем. Затем познакомились с уравнениями обратной кинематики. В следующей статье «Моделирование робота с дифференциальным приводом» рассмотрим, как с помощью ROS и Gazebo создать модель автономного мобильного робота.

За основу данной статьи взята книга Д. Лентина «Изучение робототехники с использованием Python» 

Смотрите про коптеры:  Как узнать, есть ли NFC в телефоне за 5 секунд
Оцените статью
Радиокоптер.ру
Добавить комментарий