Главная > Роботы

Проекты балансирующих лего-роботов

(Сенокосова Ирина | 2012-05-03)

Балансирующий на двух колесах робот - довольно сложная в реализации конструкция - таково распространенное мнение. 


 

Балансирующий лего-робот Стива Хассенплуга LegWay

Балансирующий на двух колесах робот - довольно сложная в реализации конструкция - таково распространенное мнение. Отчасти это так. Для изготовления такого робота требуются акселерометры, гироскопы и сложное программное обепечение. Но простого балансирующего робота можно построить даже из деталей ЛЕГО с применением достаточно простых датчиков и набора Lego Mindstorms. Именно такого лего-робота построил в 2003 году Стив Хассенплуг (Steve Hassenplug). 

Стив назвал своего лего-робота LegWay и использовал два оптических датчика расстояния EOPD (ElectroOptical Proximity Detector) от HiTechnic

Устройство лего-робота достаточно легко понять, взглянув на приведенную фотографию. Два датчика установлены таким образом, чтобы контролировать расстояние до поверхности, по которой движется робот. Если расстояние до поверхности под датчиками уменьшается или, наоборот, увеличивается, робот производит соответствующее выравнивающее движение при помощи своих двигателей. Лего-робот Стива Нассенплуга умел балансировать, бегать по линии или кружиться на месте.



Расположение датчиков на роботе Джеймса Мафиуса 



Более стабильную конструкцию предложил Джеймс Мафиус (James Matthews) в ноябре 2004 года. Он использовал стандартные ЛЕГО-датчики, реагирующие на отраженный свет, расположив их спереди и сзади робота. Такая конструкция лего-робота позволяет сделать балансирование более устойчивым, но для того, чтобы бегать по линии, лучше использовать дополнительные сенсоры. 

Код, управляющий роботом, очень простой. Джеймс Мафиус написал его на NQC, используя программную средуBricxCC. Возможно, при использовании этого кода вам понадобится индивидуальная калибровка датчиков. 

#define SENSOR_3_THRESHOLD 49

#define SENSOR_1_THRESHOLD 45

 

task main ()

{

  // Setup everything

  SetSensor(SENSOR_1, SENSOR_LIGHT);

  SetSensor(SENSOR_2, SENSOR_TOUCH);

  SetSensor(SENSOR_3, SENSOR_LIGHT);

  SetPower(OUT_A+OUT_C, OUT_FULL);

 

  // Now balance!

  until(false) {

    if (SENSOR_1 >= SENSOR_1_THRESHOLD) {

      OnFwd(OUT_A);

      OnRev(OUT_C);

      Wait(1);

    }

    if (SENSOR_3 >= SENSOR_3_THRESHOLD) {

      OnRev(OUT_A);

      OnFwd(OUT_C);

    }

  }

}



Балансирующего лего-робота можно построить и из набора Mindstorms NXT. Филипп Харбейн (Philippe Hurbain) предложил конструкцию робота с использованием всего одного датчика. Своего робота Филипп назвал NXTway

 



Для написания программы использовались NBC и среда программирования BricxCC. Код программы можно скачатьздесь, а готовую откомпилированную программу здесь. Для загрузки откомпилированной программы в NXT используйте кнопку загрузки на панели в стандартной среде программирования LEGO MINDSTORMS NXT. 

 




В феврале 2007 года Рё Ватанаби (Ryo Watanabe) из Waseda University, вдохновленный конструкциями лего-роботов Хассенплуга и Харбейна, создал свою продвинутую версию балансирующего робота с использованиемгиро-сенсора. Робот был назван NXTway-G


Метки: Лего, Роботы, Программирование


Возможно, вам будет интересно:

 Группа ученых из Лаборатории искусственного интеллекта при университете Цукубы предлагает использовать еще и мимику, то есть выражения лица.

Преселективная коробка передач

(Григорьев Артём; 2014-06-09)

Преселективная коробка передач представляет собой второе поколение роботизированных коробок передач.