Robotic Invention System

Дмитрий Эстрин

Xakep, номер #017, стр. 017-070-2


Программерам

Ты, наверное, в курсе, что программа - это описание алгоритма решения задачи, заданное на языке программирования. Можно сказать еще понятнее: программа - это набор последовательно выполняемых команд. Извини, что я такие банальности тебе говорю, но от понимания этой простой истины зависит, что, в конце концов, будет представлять твой робот и что он будет уметь делать. Как писать программы? Так же, как обычно! Существующие языки программирования для RCX (процессор Mindstorms Robotic Invention System) не многим отличаются от Паскаля и Си. Впрочем, даже если эти названия тебе ничего не говорят, ты еще можешь наверстать упущенное. Почитай повнимательнее толстенную инструкцию, разбери по строкам листинги программ и, если на плечах есть голова, то уже часа через два-три ты неминуемо просечешь фишку.

Я вот, например, когда овладел азами программной части, собрал робота, который ездил по периметру комнаты. Механизм большой сложностью не отличался - процессор, пара моторов, четыре колеса и тактильный сенсор, торчащий впереди. Конечно, во всем была "виновата" программа. Каждый раз, когда сенсор нащупывал стену, робот отъезжал назад, поворачивал направо и вновь ехал вперед до следующей стены. Там маневр вновь повторялся. Естественно, программа была написана на компьютере, а потом закачана в процессор робота. На самом процессоре написать такую программу нереально. На самом деле важно совсем другое... Важно то, что всего час назад никакого робота еще не было, были те самые блоки, колеса, шестеренки. А сейчас - вот он, важно нарезает круги по комнате, буквально "ощупывая" стенки. Тут-то и понимаешь, что теперь уже его можно научить чему угодно.

Я, например, прикрепил к процессору еще один тактильный сенсор, немного изменил конструкцию и усложнил программу. Потом устроил на полу жуткий бардак и отправил робота через совершенно непроходимую полосу препятствий. "Дорогу" этот вездеход все-таки нащупал, хотя с программой для этого еще пришлось повозиться. Тут я, кстати, понял одну вещь. Чем сложнее программа, тем проще и доступнее может быть конструкция робота, но, если программу хочется упростить, то приходится вносить серьезные изменения в дизайн своего "питомца". Это, так сказать, один из самых главных законов Mindstorms Robotic Invention System, причем соблюдается он всегда, вне всякой зависимости от того, что и как ты собираешь.

Забавляться с тактильными сенсорами можно до бесконечности, но зацикливаться не рекомендую. Там в коробке помимо всего прочего ты должен обнаружить большой белый лист бумаги с черной замыкающейся полоской... Между прочим, можно совершенно спокойно написать программу, по которой робот, используя свой световой сенсор, будет кататься как раз по этой черной полоске. Листинги похожих программ можно нарыть и в Инете, и в той же самой инструкции. В принципе, чуть-чуть поработав, можно заставить робота ездить по любому нарисованному маршруту. Я, например, слышал, как отдельные умельцы научили своих дройдов ездить за собой... Как это у них получилось, я пока представляю плохо, однако кое-какие идеи на этот счет имеются. По крайней мере, я-то уверен, что это сделать вполне возможно.

Назад на стр. 017-070-1  Содержание  Вперед на стр. 017-070-3