четверг, 13 сентября 2012 г.

Программирование LEGO-роботов на C#

Примерно, год назад в блоге уже упоминалось о возможности общаться с LEGO роботами с помощью платформы .Net. В том подходе подразумевалось, что с компьютера или ноутбука посылается по Bluetooth команда, которая воспринималась специальной программой, запущенной на NXT блоке.
Та в свою очередь могла послать какие-то данные на компьютер/ноутбук.

Данный способ не совсем удобен по той причине, что требует написания программы в действительности на двух языках - на C# или VisualBasic и на языке, который может быть скомпилирован в байткод, понятный для NXT firmware, например, на NXT-G или NXC.

На самом деле есть библиотеки для платформы .Net, которые позволяют написать все управление роботом исключительно на C#. Вот несколько примеров:

  • AForge.NET - библиотека, в которую включены алгоритмы компьютерного зрения и искусственного интеллекта, распростряняющаяся по свободной лицензии LGPL. Одна из компонент библиотеки, отвечающих за управление робототехническими наборами, позволяет создавать на ее основе программы для LEGO Mindstorms NXT и RCX. Таким образом имея только одну эту библиотеку разработчик получает доступ к довольно широкому набору функций, непосредственно решающих многие задачи робототехники.
    На официальном сайте библиотеки можно найти хорошие материалы, помогающие ее быстро освоить, в том числе статьи по программированию роботов, например, "Управление LEGO Mindstorms роботом" и "LEGO камера слежения за объектами".


    На сайте также очень хороший раздел с форумом, где можно найти много полезной информации, касающейся программирования LEGO роботов, которую рекомендуется просмотреть даже тем, кто не собирается программировать на C#. К сожалению, проект перестал развиваться весной этого года, но библиотека все еще доступна для свободной загрузки. А если вы прониклись идеей, то можете попросить автора библиотеки (есть мнение, что он русскоговорящий), чтобы стать следующим человеком, кто будет продолжать поддержку и развитие данного программного обеспечения.
  • MindSqualls - также .Net библиотека для удаленного управления LEGO Mindstorms NXT роботами посредством USB и Bluetooth. Особенностью библиотеки является, то что для управления моторами в ней рекомендуется использовать инструментарий MotorControl, разработанного в рамках проекта RWTH - Mindstorms NXT Toolbox for MATLAB, - он дает возможность очень точного позиционирования. На сайте можно найти много примеров и документации, объясняющих многие аспекты работы с библиотекой. Чтобы понять потенциальные возможности использования этой библиотеки, можно взглянуть на прототип, созданный Xander Soldaat, позволяющий управлять роботом с помощью игрового манипулятора Kinect:

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...