Знакомство с робототехническим конструктором ТРИК: обратный маятник

    Введение и постановка задачи




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

    Что сейчас широко доступно на рынке для робототехнических игр? Самодельное изготовление плат под каждый проект не рассматриваем. Лего, распи, ардуино. Лего прекрасен, но, к сожалению, очень и очень сильно ограничен. Распи и ардуины неплохо расширяются, но довольно неудобны и быстро превращаются в рассыпуху разных карточек-шильдиков-макеток. Вот тут и выходят на рынок питерские ребята со своим конструктором ТРИК.

    Итак, моя задача понять, насколько это доступно широкой публике (мне). Я никогда не посещал лекций ни по теоретической кибернетике, ни по теории управления. Закон Ома я выучил ровно настолько, чтобы понять, что розетку лизать не стоит, и паяльник не является моим другом. Но как всякий нормальный (великовозрастный) ребёнок играть я люблю, и поэтому заинтересовался этой темой.



    Я получил вот такой набор:


    Вообще цена их наборов варьируется от примерно двадцати до семидесяти тысяч рублей. Дороже ли это, чем лего? Нет. Месяц назад я купил Lego EV3. Цена вопроса 370€ базовый набор + 100€ аккумулятор (они там совсем офигели?!) И это ещё я не считал зарядника за тридцать евро. Плюс ко всему в базовый набор не входят ни сонар (+35€), ни гироскоп (+35€). А уж про камеру с микрофоном и вообще можно забыть, не упоминая вообще в принципе отустствия доступа внутрь леговского линукса.

    В мой набор (он и разложен на предыдущей фотографии) входят два контроллера, две камеры, два микрофона, сонары, два типа инфракрасных датчиков, кнопки, шесть электродвигателей с оптоэнкодерами, три сервы, два механических захвата, куча колёс, в том числе голономных, зарядки-аккумуляторы-шнурки, зубчатые колёса, рейки и куча металлических пластин и уголков (привет детство!). Конструктор чисто для начала, вообще к контроллеру можно подключить практически всё, на что хватит воображения. Центральный процессор ARM9, под видео отдельный процессор, чтобы не грузить центральный. Программировать можно на чём угодно от ассемблера до C#, вам дают рутовую консоль, плюс весь код прошивки опенсорсный.

    Вот так выглядит моя чудо-коробка:




    В качестве самого первого проекта я решил собрать обратный маятник, он и представлен на заглавной картинке. Вот так он выглядит сзади:

    Из набора мне понадобилось два двигателя, два колеса, чуть крепежа и непосредственно контроллер с батареей. Моей целью не было скопировать туториал из обучающего курса ТРИК, мне интересно обломать зубы обо все проблемы самостоятельно, поэтому я буду изобретать велосипед.

    Итак, в моём распоряжении одна степень свободы, акселерометр и гироскоп, энкодеры от двигателей я не использовал. Писать буду на Qt Script.

    Чтение датчиков


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

    Гироскоп


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

    Вот мой код работы с гироскопом, здесь while(true) — основной цикл программы.
    	var gyr_x_angle = 0;
    	var lasttime = Date.now();
    	while (true) {
    		var G = brick.gyroscope().read();
    		G[0] = G[0] + 69; // drift correction
    		var curtime = Date.now();
    		var dt = (curtime - lasttime)/1000.0;
    		lasttime = curtime;
    		gyr_x_rate = G[0] * 0.07;
    		gyr_x_angle = gyr_x_angle + gyr_x_rate * dt;
    	}
    


    В массив G я читаю значения датчика, в следующей строчке произвожу коррекцию интересующей меня оси. Выясняется, что мой конкретно датчик в полном покое показывает в среднем скорость в 69 единиц, поэтому я их вычитаю, чтобы получить интересующую меня скорость.
    Датчик выдаёт целое число, которое нужно перевести в углы. В штатном режиме он работает на 2000 градусов/сек (dps). Даташит говорит, что этому соответствует константа в 70mdps/digit. Таким образом, G(digits) * 0.07 (dps/digit) даёт нам угловую скорость. Осталось её проинтегрировать, умножив на время измерения dt.

    Акселерометр


    Из акселерометра угол получить ещё проще, однако проблема в том, что уж больно он шумный, а уж когда тележка начинаёт дёргаться туда-сюда, вообще туши свет. Вот так выглядит код:
    	[...]
    	while (true) {
    		[...]
    		var A = brick.accelerometer().read();
    		var a_x_angle = Math.atan(A[2] / A[0]) * 180.0 / pi;
    	}
    


    Гасим шум: совмещение показаний акселерометра и гироскопа


    	[...]
    	var CF_x_angle = 0;
    	while (true) {
    		[...]
    		CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.02*a_x_angle;
    	}
    

    Это просто говорит, что значение текущего угла это на 98% значение предыдущего угла с поправкой от гироскопа, а на 2% — это прямое чтение угла от акселерометра. Такое совмещение позволяет бороться с уплыванием гироскопа, обратите внимание, что переменную gyr_x_angle мы тут вообще не использовали.

    ПИД-регулятор


    Как я уже говорил, я не посещал умных лекций по теории управления, поэтому LQR-регуляторы мне не по зубам за разумное (пара часов) время. А вот ПИД вполне подойдёт.

    Код



    В предыдущем параграфе мы получили пристойную (я надеюсь) оценку угла отклонения тележки от вертикали. Улучшить её можно, используя фильтрацию Калмана, но это стрельба из пушки по воробьям. Теперь пришло время крутить колёса — чем больше угол отклонения, тем быстрее нужно крутить колесо.

    Скорость вращения колеса, которую нам выдаст ПИД, состоит из трёх (взвешенных) слагаемых: пропорциональной, интегирующей и дифференцирующей. Пропорциональная просто равна углу отклонения от вертикали, интегрирующая — это сумма всех ошибок регулирования, а дифференцирующая пропорциональна скорости изменения отклонения от вертикали.

    Звучит это страшно, а на деле код крайне простой:
    полный код программы
    	var gyr_x_angle = 0;
    	var lasttime = Date.now();
    	var CF_x_angle = 0;
    	var iTerm = 0;
    	var CF_x_angle_prev = 0;
    
    	var KP = 0;
    	var KI  = 0;
    	var KD = 0;
    
    	while (true) {
    		var G = brick.gyroscope().read();
    		G[0] = G[0] + 69; // drift correction
    		var curtime = Date.now();
    		var dt = (curtime - lasttime)/1000.0;
    		lasttime = curtime;
    		gyr_x_rate = G[0] * 0.07;
    
    		var A = brick.accelerometer().read();
    		var a_x_angle = Math.atan(A[2] / A[0]) * 180.0 / pi;
    
    		CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.02*a_x_angle;
    
    		// крутим колёса!
    
    		var pTerm = KP*CF_x_angle; // пропорциональная составляющая
    
    		iTerm = iTerm + KI*CF_x_angle; // интегирующая составляющая
    		
    		var dTerm = KD * (CF_x_angle - CF_x_angle_prev); // дифференциальная составляющая
    		CF_x_angle_prev = CF_x_angle;
    		
    		power = pTerm + iTerm + dTerm;
    		brick.motor(M3).setPower(power);
    		brick.motor(M4).setPower(power);
    	}
    



    Выбор констант KP, KI, KD


    Осталась самая сложная часть: найти значения весов в сумме, к сожалению, это можно только делать эмпирически.

    Для начала найдём коэффициент KP. Положим KI и KD равными нулю и увеличиваем KP начиная с нуля до того момента, когда наша тележка начнёт совершать (примерно) постоянные колебания, примерно вот так (KP=8, KI=0, KD=0):


    Очевидно, что это перебор, тележка получает слишком сильный сигнал от пропорциональной составляющей, поэтому уменьшим её примерно вполовину, получим вот это (KP=5, KI=0, KD=0):


    Теперь тележке не хватает чисто пропорционального сигнала, увеличим её скорость, добавив интегрирующей компоненты. Плавно увеличиваем KI с нуля, пытаясь достигнуть момента, когда снова получим колебания тележки вокруг желаемого положения (KP=5, KI=0.5, KD=0):


    Теперь добавляем дифференцирующую компоненту, которая будет играть роль демпфера, гася колебания, вот что у меня получается (KP=5, KI=0.5, KD=5):


    Заключение


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

    Ни электротехнического, ни кибернетического бэкграунда у меня нет, то есть, это вполне доступно рядовым пользователям, что, собственно, мне и очень интересно. Буду продолжать изучение!

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




    Обновление: технические характеристики контроллера


    Многие не понимают, чем отличается триковский контроллер от ардуино или от леговских коробок. Поэтому вот табличка:
    Центральный процессор (ЦП) OMAP-L138 C6-Integra™ DSP+ARM® SoC, Texas Instruments
    Тактовая частота ЦП 375 МГц
    Процессорное ядро ЦП ARM926EJ-S™ RISC MPU
    DSP-ядро ЦП C674x Fixed/Floating-Point VLIW DSP
    Оперативная память 256 МБайт
    FLASH — память 16 МБайт
    Периферийный процессор (ПП) MSP430F5510, Texas Instruments
    Тактовая частота ПП 24 МГц
    Интерфейсы пользователя USB 2.0, WiFi b/g/n, BlueTooth, 2*UART, 2*I2C, Micro-SD, Mic in (stereo), Line out (mono)
    Интерфейсы двигателей постоянного тока 4 порта двигателей 6-12V DC, с индивидуальной аппаратной защитой от перегрузки по току (до 2А на двигатель)
    Интерфейсы периферийных устройств 19 сигнальных портов общего назначения (6 одноканальных и 13 двухканальных) с питанием 3.3-5V, из них 6 могут работать в режиме аналогового входа
    Интерфейсы видео сенсоров 2 входа BT.656 VGA 640*480, поддержка режима стерео
    Встроенный LCD монитор 2.4” TFT, цветной, сенсорный, разрешение 320*240 пикселей
    Встроенный динамик Номинальная мощность 1W, пиковая 3W
    Светодиодный индикатор 2-цветный, программно-управляемый
    Слоты расширения 2 * 26-контактных «щелевых» разъема модулей расширения
    Дополнительное оборудование (входит в состав контроллера) 3-х осевой акселерометр, 3-х осевой гироскоп, аудиокодек, усилитель, конвертеры и схемы управления питанием, схемы защиты входов от перегрузок по напряжению и току
    Электропитание 6-12V DC, внешний сетевой адаптер либо LiPo аккумулятор RC 3P (11,1V) / 2P (7,4V)
    Габариты корпуса 125 * 80 * 25 мм
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 86

      0
      У вас неправильная ссылка, нужно
      http://www.trikset.com/ 
      
      В предложении
      … робототехническим конструктором ТРИК.
        0
        поправил, спасибо
        +1
        А почему цена на набор такая высокая? Там настолько крутые комплектующие?
          0
          Мне тяжело говорить, не имея конкретного предмета для разговора. Мы про какой именно набор говорим? Про тот, что у меня, за 70 т.р? Имейте в виду, что я не являюсь сотрудником компании ни разу, я могу только подумать вместе с вами.
            +1
            Да я к вам не с претензией) Просто зашел на сайт конструктора, и прифигел, что базовый набор, который состоит из контроллера + минимума рассыпухи стоит ~24т.р., что довольно дорого, если прикинуть, во сколько такой набор по частям обойдется + малина в качестве управляющего блока.
              0
              Так а при чём тут претензия. Я не являюсь человеком ангажированным, поэтому совершенно свободно могу рассуждать о ценах в частном порядке. 24 тыс. рублей это меньше четырёхсот евро. Леговский конструктор на эти деньги покупается едва-едва и возможностей у него существенно меньше. Если мы говорим про распи, то тут разговор ещё интереснее.

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

              Если разделить этот контроллер на комплектующие, и затем просуммировать чисто стоимость комплектухи, то очевидно, что она должна стоить существенно меньше, нежели весь контроллер (конструктор) вместе. Но тут был сделан упор на гибкость: что мне нужно, чтобы превратить набор распи + шилдики для обратного маятника в, скажем, гексапод?

              А теперь представьте, что вы сделали тележку на распи + комплектуха. Едет она быстро-быстро. И въезжает с размаху в стену. И двигатели вдруг останавливаются. Что происходит с копеечными драйверами? Горят.

              А теперь возвращаемся к началу моего комментария и приходим к самому интересному параметру — времени. Сколько времени мне нужно, чтобы сделать из распи хоть что-то? Да ту же самую тележку из этой статьи. Готов поспорить, что больше, нежели я потратил. А время у меня — самый ценный ресурс.

              Итого, каждый выбирает, что ему нравится, но не надо говорить, что домик в Псковской губернии (см. ниже) однозначно лучше.
                0
                Базовый набор MINDSTORMS EV3 — стоит сейчас 17 000.
                Плюс гироскоп 30 баксов.
                Позволяет сделать ровно то же самое

                Как то ни разу не конкурентноспособное предложение.
                Особенно учитывая комьюнити лего, и возможности EV3.
                  0
                  1) Базовый набор ТРИК 20 т.р. Тележку EV3 позволяет сделать, но я надеюсь, что вы понимаете, что это не было моей конечной целью. А возможности EV3 примерно на тележке закончатся.

                  2) А чего все так взвыли-то про цены, я не очень понимаю? Я что, вас всех заставляю покупать этот набор? Эта статья про программирование контроллера. Или всем очень хочется заявить, что «уж меня-то уж эти-то жуликоватые русские просто так не облапошат»? Или хочется сказать, что я лопух? В чём ваша мысль?
                    0
                    1) Возможности EV3 на этом не закончатся, уж поверьте.
                    2) Где вы увидели «уж меня-то уж эти-то жуликоватые русские просто так не облапошат»? Я вам написал, что цена у набора базового ТРИК не гуманная.

                    Про комьюнити и возможности EV3 в плане поддержки того же MatLab, LabView писать я думаю бессмысленно?
                      0
                      1) Слушайте, мы тут все взрослые люди, вопрос веры не должен вставать вообще. А вот логическое рассуждение должно применяться как можно чаще. Ещё раз пример, который я уже приводил трижды, что ли. По всему интернету только один чахлый коптер на лего. Почему? А попробуйте на леговского робота посадить две камеры и устроить картографию окружающего пространства из стереоизображения. К слову, а слоты расширения на контроллере леговском найдутся? Ну, если вдруг мне не хватит чего.

                      2) А зачем вы мне написали про цену?

                      3) А что вам мешает писать матлабовский код, задавать вопросы леговскому коммьюнити про алгоритмы и применять это на других платформах? Матлаб, вроде, тем и хорош, что он про математику.
                        0
                        1) По всему интернету есть огромное число проектов как и на старом NXT, так и на новом EV3
                        На старый были мультиплексоры портов, на новый они так же присутствуют.
                        2) Цена это обычно один из основных пунктов.
                        3) А ничего не мешает, так как MatLab нативно поддерживает EV3.

                        «А попробуйте на леговского робота посадить две камеры и устроить картографию окружающего пространства из стереоизображения.» — Здорово, значит буду ждать от Вас пример на данном конструкторе. Коль уж он настолько крут.
                          +1
                          Про коптеры на лего не хотите отвечать?

                          А про «буду ждать» у меня такое впечатление, что вы неправильно поняли роли окружающих. Что и почему я вам должен доказывать? Моей целью не является продать конкретно вам набор ну или доказать всему миру, что я купил самые крутые в мире штаны. Я — частное лицо, тихонечко играю в своём углу. И надеюсь, что мне удастся собрать достаточно сложные механизмы. Только времени у меня для этого мало, поэтому за доказательствами крутизны не ко мне, а к разработчикам.

                          А вот вы что мне доказать пытаетесь?
                            –1
                            От Вас? Да ничего, упасите!

                            Про коптеры я ничего и не говорил, если вы не заметили.
                            Однако, если Вы противопоставляете «А попробуйте на леговского робота посадить две камеры и устроить картографию окружающего пространства из стереоизображения.» — логично ожидать от Вас как минимум примера на данном железе, ну или ссылки на таковое решение.
                              +1
                              Вы не говорили, но я спрашивал, а вы не отвечали.

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

                            А вы попробуйте это сделать при помощи этого конструктора, особенно Stereo Matching на OMAP-L138, который торчит в этом конструкторе :-) Вполне может быть, что это даже можно запустить с относительно вменяемым FPS (кадров так 5-10 в секунду) на DSP сопроцессоре… но там будет далеко не 100 строк кода;)
                              +1
                              обязательно попробую, как руки дойдут
                          –2
                          Стартовый 24 990 р — Рекомендуемая цена.

                          В комплекте:
                          2 двигателя
                          1 датчик касания
                          1 Датчик УЗ
                          1 Видеомодуль
                          Все. Остальное рассыпуха.

                          Вы уже извините, но я считаю, маловато.

                            +1
                            Вы мне сначала ответьте на верхний комментарий, там, где я спросил про то, зачем вы мне напислаи про цену.
                            А затем не забудьте сравнить наполнение леговского базового набора с тем, что вы процитировали, иначе ваш комментарий крайне неполон.
                              –1
                              Базовый набор EV3 включают в себя:

                              Микрокомпьютер EV3
                              2 x Больших серво мотора
                              Средний серво мотор
                              Ультразвуковой датчик
                              Датчик цвета
                              Гироскопический датчик
                              2 x Датчика касания

                              Кроме того, Базовый набор EV3 также включает:
                              – Два пластиковых лотка для хранения и сортировки деталей
                              – 541 тщательно подобранных элементов LEGO Technic
                                0
                                Так. Вот у вас содержимое двух наборов. Один 25 тыс. рублей, второй 23 тыс. рублей. У вас есть содержимое двух наборов, правда, в одном вы презрительно сказали, что «остальное рассыпуха», а во втором посчитали каждую шпильку общим количеством 541. Ну да ладно, вы привели два продукта с ценами и содержанием.

                                Сравнение можете дать? Чего я из вас клещами тянуть-то должен?
                                  –1
                                  Сравнение можете дать? Чего я из вас клещами тянуть-то должен?

                                  Ок выкидываем 541 элемент всякой рассыпухи из сравнения.

                                  Думаю два списка, которые я привел выше вы можете сравнить и без моей помощи.
                                    0
                                    Хы, так я сравнил, спасибо. Что характерно, пока что без вашей помощи. Лично мне лучше подходит триковский набор.

                                    Не забудьте ещё из ваших списков убрать контроллер лего, т.к. триковский вы в список тоже не включили. Ну или добавить триковский.

                                    Итого имеем в сухом остатке: 23 тыр лего + 1800 руб гироскоп, 25 тыр трик.
                                    — Три мотора у лего против двух моторов у трика
                                    — УЗ у обоих
                                    — одна кнопка у трика против двух у лего
                                    — IMU у лего, IMU у трика
                                    — датчик цвета против видеокамеры у трика
                                    — минимальные возможности расширения леговского кирпича против крайне гибкого триковского кирпича

                                    Где ваши разгромные аргументы-то?

                                      0
                                      Лично мне лучше подходит триковский набор.


                                      Чрезвычайно рад за Вас.
                                      На этом я думаю стоит прекратить, Вы останетесь при своем, я при своем.

                                      PS:
                                      Извините, но вы не прочитали список.
                                      В Базовый набор ВХОДИТ гироскоп.
                                      У EV3.
                                      Вы с EV3 то в жизни встречались?
                                      Ну про минимальные возможности расширения.
                                        0
                                        Кому вы рассказываете, вот вам базовый набор. 23 тыр, покажите мне в нём гироскоп. И да, леговских наборов прямо сейчас на столе у меня лежит два.

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

                                          И еще

                                          В набор входят:
                                          • Три электро серво мотора
                                          • Встроенные в моторы датчики вращения и ультразвуковой датчик
                                          • Датчик цвета, гироскопический датчик и два датчика касаний
                                          • Перезаряжаемая аккумуляторная батарея
                                          • Колеса
                                          • Соединительные кабеля
                                          • Инструкции по сборке
                                          • Элементы LEGO® Technic для создания множества моделей

                                            –1
                                            Мы закрыли разговор или нет?

                                            Окей, вы про education базовый набор, ну да не суть, наполнение отличается слабо. Цена с триковским одинаковая, что вы можете сказать про сравнение?
                                          0
                                           
                                          0
                                          Кстати, если мне не изменяет память, у EV3 нет полноценного IMU, только одноосевой гироскоп.
                    0
                    Честно говоря, с такими фантастическими ценами на конструкторы, есть смысл задуматься о приобретении например этого:

                    image Gowe® Alumin Hexapod Spider Six 3DOF Legs Robot with 18 Servos Based on Arduino Board

                    Сделано на базе Ардуины. Цена такая же, даже дешевле, чем продвинутые варианты этих наборов.
                      +1
                      Мне ваш комментарий звучит странно. Примерно как: «На эти деньги лучше было бы купить домик в Псковской области.»

                      Окей, положим, покупаю я гексапода по вашей ссылке. Напоминаю, что конструктор позиционируется как 1) платформа для быстрого прототипирования роботов и 2) обучающая платформа.

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

                        А этот гексапод очень многому можно научить — способы ходьбы, преодоления препятствий, навигация, выбор маршрута, режимы работы, задачи. А его функциональные возможности можно существенно расширить или модернизировать, так как ардуина открытая платформа, а эти самые модули для ардуины стоят копейки и имеют кучу вариаций.
                          –1
                          Десять предложенных вами гексаподов я явно не куплю. Вы начинаете юлить. Предложите аналогичный продукт за аналогичные деньги, а там будем обсуждать.
                            +1
                            Сразу замечу, что я не против этого конструктора, вроде бы вполне достойный продукт с технической точки зрения и я сам не отказался бы от такой игрушки. Но если бы передо мной стоял выбор, лично бы я купил Makeblock , поскольку у него существенно более богатая элементная база, а электроника совместима с Arduino и RPi.
                              +1
                              Один момент, что вы вкладываете во фразу «электроника совместима с ардуино»?
                                0
                                Программируемые контроллеры выполнены по аналогии с Арудино, с соблюдением основных схемотехнических особенностей. Благодаря этому конструктор программируется с помощью среды программирования Ардуино, что обеспечивает достаточно большую гибкость системы, совместимость со многими open-source проектами сообщества пользователей Ардуино и т.п. Кстати, очень часто стандартную электронику заменяют на оригинальную ардуину.
                                  +2
                                  Ардуина — штука хорошая. Только как с ней делать обработку видео, например, совсем неясно. Ардуино, распи и иже с ними — это набор плат для макетирования контроллеров. Лего майндсторм и ТРИК — это контроллеры для макетирования уже автоматов или даже роботов.
                                    +1
                                    Для любого маломальски серьёзного применения Арудино мало. Это плата начального уровня. TRIK это полноценный комп на Linux с двумя дополнительными процессорами — DSP и Cortex M3 на каждый из которых можно повесить задачу в фоновом режиме и основной процессор оставить для серьёзных задач. Как это вообще можно сравнивать с Ардуино и зачем? Уровень решаемых задач колоссально отличается.
                                      +1
                                      Вообще-то контроллеры делают не по аналогии Ардуино, а среда поддерживает или не поддерживает контроллеры.

                                      Еще большей загадкой являются Ардуино-совместимые датчики
                                  0
                                    0
                                    Ага, спасибо, принимается. Из того, что я вижу, это сравнимые (не одинаковые, сравнимые) вещи за одинаковые деньги. Совсем не тот же разговор, что и «ардуина за два бакса».
                              0
                              Я бы выбрал похожего паука, но на сервоприводах Dynamixel, например: PhantomX AX Hexapod Mark II Kit . По цене данный набор отличается не так сильно от вашего, но потенциал набора существенно выше. В сети очень много примеров проектов на данных сервоприводах. Ну а когда паук надоест, можно собрать различные модели по инструкциям производителя, т.к. все мануалы свободно доступны на сайте, а так же доступны трехмерные модели пластиковых деталей, которые можно распечатать на 3д принтере.
                                0
                                Одна беда, этот гексапод по стоимости приближается к беспошлинному лимиту, а некоторые посредники требуют чтобы доставка+ страховка+цена устройства были меньше этого лимита.
                              0
                              И чем же это лего ограничен? У майндстормз 3 двигателя и 4 датчика + есть возможность добавить второй блок по необходимости. Но даже из коробки он вам даст ничуть ни меньший позитив(тележку с гироскопом). А + добавить совместимость с любым набором technic и открытые протоколы (лично я в моделях использую HTC One для управления и обработки видео), то приведенный выше набор выглядит дико ущербным. О цене и скорее всего (судя по фото) качестве я даже говорить не буду.
                                0
                                Добавьте к леговскому роботу, например, тензометрический датчик. Ну или забабахайте гексакоптер. А что у них с камерами?
                                  0
                                  К слову о Лего, в новой модели EV3 есть возможность работать напрямую в Linux, а так же подключать внешние камеры по USB. Так же контроллер Лего программируется с помощью LabView и Simulink, что раскрывает широкие возможности в рамках решения задач, хотя бы обработки изображений. Тот же коптер думаю, что можно реализовать на контроллере Лего или ТРИК с равным успехом ( кстати, не совсем понял причем тут коптеры, т.к. не заметил в составе Лего и ТРИК винтов и бесколлекторников).
                                  На мой взгляд, конструкторы разные нужны, но в большинстве случаев их возможности принципиально ничем не отличаются друг от друга. Почти все конструкторы, применяемые в образовательном процессе, за редким исключением взаимозаменяемы. Каждый производитель делает акцент на тех особенностях, которые считает более важными для целевой группы потребителей, а по факту все наборы очень похожи и взаимозаменяемы. Популярность же конструктора определяется агрессивностью маркетинга производителя.
                                    0
                                    Триковский контроллер, хоть и входит в состав триковских конструкторов, является сам по себе отдельным продуктом. И позиционируется в том числе для быстрого прототипирования роботов, а не только для образования. Что из электроники нужно добавить к леговскому кирпичу, чтобы получить нормальный коптер? Почему в интернете нет упоминаний о коптерах (окей, одно есть) на базе лего?
                                      +1
                                      Контроллер Лего, хоть и входит в состав конструктора Лего, но продается отдельно, так же, как и вышеупомянутый контроллер от Фишертехника и многие другие. Проектов коптеров на Лего и ТРИК, на мой взгляд, нет по той причине, что в в базовую комплектацию их наборов не входит необходимая элементная база для сборки коптера, например пропеллеры и т.п. Повторюсь, что всему свое место и каждый конструктор имеет право на жизнь, на каждый набор найдется свой пользователь.
                                      Если уж зашла речь о коптерах, то я бы сделал раму из оргстекла, а не металлического конструктора, использовал Ardupilot (или как там он правильно называется), а линуксовые платы типа RPi, Beadleboard, ODROID использовал для задач технического зрения и т.п. Контроллеры типа ТРИК, Лего и их аналоги я бы использовал в самом крайнем случае, но повторюсь — речь о проектах по коптерам.
                                        0
                                        Угу, а я бы сделал раму из фрезерованного текстолита, снял бы пластиковый корпус с триковского контроллера и запустил бы в небо с его родной камерой. К слову, проекты коптеров на трик вполне есть, даже у них на страничке есть фотографии.
                                    0
                                    Я использую камеру телефона. Да, из лего коптера не получится полюбому. Тогда и правда, ваш набор имеет право на существование ;-)
                                • UFO just landed and posted this here
                                    0
                                    Выгоднее для каких задач? Напоминаю, что эту тележку я сделал для ознакомления, а лего ev3 у меня уже есть, поэтому знаю, с чем сравнивать.
                                    +3
                                    Автор, вопрос цены возникает ровно потому, что в статье толком не раскрыто, чем же этот TRIK такой хороший. Вы считаете, что он лучше аналогичных наборов Lego? Отлично. Так напишите в чем же именно он лучше. Потому как в статье он выглядит ущербным — сомнительные комплектующие по негуманной цене, неспособные конкурировать даже с Lego, ориентированным на европейский рынок. Это совсем не то, чего ждешь от отечественного производителя. А у китайцев на те же деньги можно взять кит-набор для робо-тележки, паука, миниатюрной солнечной электростанции, механического манипулятора, RPI2 с камерой и еще и останутся деньги на мощную батарею и кастомные датчики.
                                      –3
                                      В комментариях есть ветка с ценой на трик и на лего. Нормальных аргументов я пока не услышал. Про лего я слышал только «фуфлон на андроиде + синяя изолента» и про развитое сообщество. Есть ещё что сказать по существу?
                                        +3
                                        Я уже задал вопрос по существу, а ответа пока не увидел. Ссылка на ветку, где вас загоняют в тупик каждым комментарием, а вы хамите в ответ — не в счет. Если вам нечего сказать, то хотя бы признайте это.
                                          +1
                                          Мне не казалось, что я хамил. Если кого обидел — извините меня; но я устал от потока непонятной мне агрессии. Вот вы, похоже, готовы к конструктивному диалогу. Отлично, давайте продолжим тут?
                                          +1
                                          Я думаю, что стоило привести технические характеристики TRIK, сразу было бы ясно, чем он круче EV3
                                        +2
                                        haqreu, мне кажется, что Вы может и не являетесь ангажированным, но статья получилось именно такой, не взирая на то, что она хорошо написана и интересна. Приведу несколько фактов:
                                        • Вопрос цены который тут постоянно возникает. В статье Вы упоминали грабительские цены от лего, но почему то цена красивого ящика, с б'ольшим функционалом, но стоящий 70 т.р. как то не отражена
                                        • Вы постоянно в ответах ссылаетесь на то как же мало можно сделать на лего, но сами Вы сделали пока, что только сбалансированную тележку. Возникает вопрос, почему Вы считаете, что весь сложный функционал действительно будет работать?
                                        • Вы упоминаете, что у ТРИКа можно писать на любом языке. Простота разработки это важно, но почему забыли сказать, что у лего можно писать на матлабе и лабвью

                                        То есть, если бы Вы не упоминали конкурентов, слегка принижая их, а написали бы как вы делали тележку, алгоритм, что писали на Qt script и так далее, было бы менее «ангажировано». Или тогда приводили бы сравнение по характеристикам по которым выигрывает ТРИК и приводили бы их для всех конкурентов.

                                        P.S. А квадракоптеры, это отдельный вопрос. Думаю, что их не делают на лего, поскольку лего предназначен для быстрого прототипирования. А построить квадракоптер стоит довольно серьезных усилий и получается его проще на рассыпухе строить или на специализированных конструкторах + малина или гамстикс. Кстати наличие фотографии не является доказательством работающего квадракоптера. Можно видео где он выполняет осмысленные действия?
                                          +2
                                          Ящик за 70 тысяч рублей «эквивалентен» двум наборам лего, каждый из которых стоит по 23 + 8 тыс за зарядник и батарею. Итого уже 62 тыс. руб. Цена уже сравнимая, а про функционал конкретно контроллеров — например, подключать к лего свои собственные датчики не является тривиальной задачей. Например, сегодня мне нужно было работать с датчиком TSL1401-R. Что мне нужно сделать, чтобы начать с ним работать с леговского кирпича? Леговский софот либо под винду, либо под мак. Вайфай только со внешним свистком, встроенного гироскопа тоже нет.

                                          Я не призываю никого покупать только эти конструкторы, я вот рад, что у меня есть такой, о чём и написал. Я не собирался делать обзора функциональностей конструктора, я учился и показал вам, как учился делать обратный маятник.
                                            0
                                            Вот на этом то и надо было акцентировать внимание
                                          0
                                          Плюс ко всему в базовый набор не входят ни сонар (+35€), ни гироскоп (+35€)
                                          Отличные цены, однако. Китайцы за такие деньги охапку сонаров с гироскопами вышлют, и не думаю, что они будут чем-то принципиально отличаться.
                                          Другой вопрос — набор куплен для самообучения. Чему этот набор может самообучить? Закручивать гайки и лепить из готовых библиотек код?
                                          За 70 кусков можно купить репрап и гору ардуин-дисковери и обозом датчиков и действительно чему-то обучиться.
                                            +1
                                            Претензии к ценам на лего явно не ко мне :)

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

                                            А даже тупую тележку на ардуино я бы делал существенно, существенно дольше, нежели с тем, что у меня есть. Лично у меня время — самый ценный ресурс.

                                            Как я уже говорил ранее, ардуина и распи — это платы для прототипирования контроллеров, а не контроллер для прототипирования роботов. Если следовать вашей логике, то и за ардуину платить не надо, надо брать непосредственно микроконтроллеры и паять руками. Или вообще начать олово рафинировать на заднем дворе?
                                              0
                                              трик действительно в техническом плане серьезнее чем всякие лего и vex
                                              но тут такая история, что для первичного обучения или для игр отлично подойдут первые, а для тех кто собирается прототипивать более-менее серьезных роботов не вижу особых проблем использовать RPi/BBB/Udoo/Odroid/Edison и другие недорогие одноплатники с шилдами
                                              мне кажется поэтому и появились выше вопросы к цене, ибо особых преимуществ у трика перед той же малинкой нет, а цена ощутимо выше

                                              зы а пост и в правду выглядит рекламно, особенно учитывая факт того что вы выдали инвайт на хабр руководителю проекта трик :)
                                                0
                                                Ну вот потому я и выдал инвайт, чтобы разработчики сами отдувались вам объяснять преимущества, я тут что, самый рыжий, что ли? Я вообще-то не про цену писал, а про маятник.
                                                  0
                                                  Вопросы появились не только поэтому. Посмотрите на разницу между «стартовым» и «образовательным» наборами.
                                                  Добавлено: Аккумулятор на 4200мА*ч и зарядка для него. Два мотора. Три-четыре датчика. Два сервопривода. 20 сантиметров RGB-ленты и разный крепеж. За все это цена растет на 20 тысяч. Я могу понять, когда за уникальный (хоть в чем-то) модуль хотят много денег, но когда их же хотят за распространенные датчики и сервомоторы, то для меня это означает, что и все остальное весьма сомнительного качества. А отсутствие торговли отдельными запчастями, возможности заказать свой набор, отсутствие конкретных наименований комплектующих только усугубляет это впечатление. Судя по фото, тот же IR-датчик расстояния — это шарповский ширпотреб типа GP2Y0A21. А «сонаром», скорее всего, окажется SR04, ценой 40 рублей за штуку.
                                                    0
                                                    Так, я пригласил на хабр непосредственно разработчиков ровно для того, чтобы вопросы вы могли задавать им, а не мне.

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

                                                    А с ценой вы в своём подсчёте почему-то забываете вот такие вещи. Это вам сразу больше трёх тысяч. Аккумулятор тоже не меньше четырёх тысяч. Плюс это всё надо привезти (из разных мест) и растаможить. Плюс это надо запаять-собрать, упаковать и т.п. Цена вполне объяснимая, но если вам не хочется платить за этот сервис, так ёлки, берите голый набор и комплектуйте его сами.

                                                      0
                                                      Собственно, в буклете со спецификациями gp2y0 и заявлен

                                                      Есть сайт компании. На нем есть магазин, где указаны наборы с ценами. Конкретных наименований сенсоров и приводов там нет.

                                                      Это вам сразу больше трёх тысяч

                                                      Вы даете ссылки на какой-то странный магазин, где спецификации товара толком не указаны. Вот вам приличный гриппер с двумя сервоприводами и точкой крепления за 2700, а вот дешевка с одним сервоприводом за 1200. Сама же клешня, без приводов, стоит порядка 600-700 рублей в зависимости от того розница это или опт.

                                                      Аккумулятор тоже не меньше четырёх тысяч.

                                                      Вот 12v 2500мАч. На два цену умножить сами сможете? Хотите еще дешевле — можно взять кучу элементов 18650 и боксы к ним. Тем более, что TRIK как раз использует дешевые наборные аккумуляторы из элементов номиналом 3.7В. Кстати, оптовые цены будут еще ниже минимум на треть.

                                                      Цена вполне объяснимая

                                                      Разумеется, но объясняется она не качеством или сервисом, а банальной жадностью. Я не имею ничего против жадности, пока она в каких-то разумных рамках. Вот ребята собрали «кирпич», написали софт и все такое — не вопрос, это работа, которая стоит денег. Но продавать за 20 тысяч то, что даже в розницу стоит не более 7 — это, по моему мнению, перебор.
                                                        0
                                                        >На два цену умножить сами сможете?

                                                        Гражданин, не хамите, проходите мимо.
                                                          0
                                                          Это звучит довольно забавно в свете ваших хамских тредов чуть выше.

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


                                              Дифференцирующая составляющая служит для увеличения быстродействия регулятора, а интегрирующая — для устранения статической ошибки (когда даже в статике имеется разница между желательным значением на выходе из системы и тем, что будет задано регулятором).
                                                0
                                                Я ещё учусь, не могли бы вы объяснить, пожалуйста, насколько то, что говорите вы, расходится с тем, что сказал я?
                                                  0
                                                  Если объект сам имеет дифференцирующую составляющую в своей передаточной функции (как раз обратный маятник по-моему должен иметь), то Д-составляющая в регуляторе никак не способствует демпфированию и гашению колебаний. Ровно наоборот.

                                                  Простой пример.
                                                  Передаточная функция объекта: Wo(p) = p
                                                  Д-регулятор: Wr(p) = K*p
                                                  Тогда для системы в целом: Ws(p) = Wo/(1+Wr*Wo) = p/(1+K*p^2)
                                                  У знаменателя мнимые корни — значит будут колебания. В данном случае даже незатухающие.
                                                    0
                                                    Подождите, я чего-то не понимаю. Как я понимаю «на пальцах» работу этого регулятора (про комплексные решения квадратных уравнений мне пока что неясно совсем):

                                                    1) У нас есть три компоненты, основная работа делается пропорциональной компонентой, это логично. Чем дальше от цели, тем быстрее нам к ней нужно идти

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

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

                                                    Я правильно понимаю на пальцах?
                                                      0
                                                      Настройки ПИД-регулятора (коэффициенты для П, Д, И составляющих) производятся в зависимости от характера самого объекта (его передаточной функции) и выбранного нами критерия что же считать хорошим качеством регулирования.

                                                      1) «Основная работа», если её понимать как вклад в скорость приведения системы в заданное состояние, может приходиться и на Д-компоненту — для простых в управлении объектов. А в области малых отклонений, для переходных процессов без колебаний, основная работа уже будет приходиться на И-компоненту.

                                                      3) Нюанс в том, что сама по себе Д-компонента регулирования для определенных объектов может принципиально неверно «предсказывать» поведение объекта, отсюда и порождаемые ею колебания, и снижение стабильности.
                                                        0
                                                        Очень интересно, спасибо, ещё бы с конкретными примерами, было бы вообще здорово! Мне тяжело представлять абстрактные определённые объекты :)
                                                        +1
                                                        Не совсем. Традиционно, считается что интегральная составляющая дает точность в установившемся режиме, а дифференциальная же позволяет форсировать процесс, ускорить его. Но все эти «традиционно» — на уровне рекомендаций, часто можно найти контрпример.

                                                        Попробуйте, интереса ради, взять Kp=5, Ki=0.5, Kd=0, как в Вашем примере, и сделать насыщение на Вашем интеграторе (аккумуляторе) на уровне, соответствующем ошибке в, например, 2-3 градуса. Может заработает.
                                                  0
                                                  — промахнулся веткой.
                                                    0
                                                    CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.2*a_x_angle;

                                                    Это просто говорит, что значение текущего угла это на 98% значение предыдущего угла с поправкой от гироскопа, а на 2% — это прямое чтение угла от акселерометра.
                                                    — Вообще-то 2% — 0.02, а 0.2 — это 20%
                                                      0
                                                      Спасибо, поправил статью, у меня константа в программе :)
                                                      0
                                                      var a_x_angle = Math.atan(A[2] / A[0]) * 180.0 / pi;

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

                                                      Попробуйте сигналы с датчика как-то фильтровать. В простейшем случае — среднее за сколько-то отсчетов. Чуть сложнее — какой-то фильтр низких частот первого-второго порядка.
                                                        0
                                                        Конечно, я в курсе atan2 :)
                                                        Но в моём случае atan2 мог бы пригодиться, если бы тележка лежала, а не стояла, что явно меня не интересует вообще никак.

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

                                                          В любом случае, дополнительная фильтрация не повредит. Хотя, если для Вашей задачи подобранного смешивания достаточно, то и так хорошо. :)
                                                        +3
                                                        Мы тут попробовали применить TRIK для квадрокоптера.
                                                        из плюсов:
                                                        — интернеты на борту через набортный вайфай. Скорости заливки примерно 80 кб/сек
                                                        — линукс унутре, с комстрокой через ssh

                                                        Из минусов
                                                        — при разрядке батареи первым вырубается контроллер, что очень сексуально. Например, если на движки коптера подается хоть что-то, отличное от нуля( а подается ШИМ) и в момент вырубания контроллера «на ноге» был не ноль, то движок внезапно включается на полную катушку до тех пор, пока не разомкнешь контакт или не сядет батарея. Одной рукой контакт не разомкнуть. А тяга одного винта способна перевернуть коптер.
                                                        — библиотека для сборки программ (внутри контроллера) по умолчанию привязана к Qt, что клёво для фанатов Qt и фигово для фанатов pure С/C++ и программирования контроллеров без всяких извратов в виде линукса и с ништяками вроде JTAG-отладчика. После определённой тренировки можно писать программы в голом gcc/g++.
                                                        — Ребята периодически обновляют прошивку, но не обременяют себя комментариями что они там сделали и поменяли. Например, выложили 5 мая новую прошивку, написали об этом groups.google.com/a/trikset.com/forum/?#!topic/dev-pub/ZWwpgzP5LaY а 6 мая чего-то поменяли — хз.
                                                        — среди того, что было изменено — как раз обсуждаемые тут гироскоп и акселерометр
                                                        groups.google.com/a/trikset.com/forum/?#!topic/dev-pub/Of0Uz9wtP8c
                                                        groups.google.com/a/trikset.com/forum/?#!topic/dev-pub/nvm5mdD9Nr8
                                                        так вот, если выставить частоту опроса гироскопа в максимум, то опрос гироскопа зависает в произвольное время.

                                                        Теперь про акселерометр и гироскоп.
                                                        Акселерометр шумит. Гироскоп шумит. Если использовать алгоритмы Маджвика/ Махони habrahabr.ru/post/255661 то более-менее углы тагажа-крена (вокруг X и Y) получаются стабильными. Если не опрокидывать контроллер под большим углом к горизонту.

                                                        В описании акселерометра MMA8451 есть такие слова «When lifting the device upright from the flat position it will be active for
                                                        orientation detection as low as14° from flat. This is user configurable. The default angle is 29° but it can be set as low as 14°»
                                                        Что это означает в переводе на русский язык не вполне понятно, но если покрутить контроллер, так, как показано в демке к алгоритму Маджвика youtu.be/BXsGWoOMtmU то результатом будет полный шит и масдай.

                                                        — Да, портируемый для коптера код под ТРИК это wiki.bitcraze.se/projects:crazyflie2:index как наиболее pure C/C++ без заскоков
                                                          0
                                                          Плюс к всему, даже после Маджвика тупо уходит угол поворота вокруг Z (рысканье) в неподвижном состоянии (на земле), (когда направление силы тяжести не может скорректировать уход угла) — даже если осреднять десять секунд для вычисления «нуля» гироскопа, всё равно уходит на несколько градусов за минуту — это несущественно при «ручном управлении», но критично для полностью автономного полёта.
                                                            +1
                                                            Поэтому для навигации в серьёзных проектах используют минимум 3 датчика — аксель, гиро, магнитометр. И некоторые системы контроля беспилотников позволяют использовать дополнительные датчики, увеличивая их кол-во и стабильность результата.
                                                          –1
                                                          За эти бабки можно купить жигуар.
                                                          На сдачу — обвешайте тазик датчиками и ардуинами.

                                                          Only users with full accounts can post comments. Log in, please.