Пользователь
10 августа 2009 в 13:46

Первый болтик

Microsoft Robotics Studio – это среда для моделирования и программирования роботов. Программировать можно на таких языках как С#, Visual Basic и на встроенном визуальном языке программирования VPL (Visual Programming Language). Программа не новая, но в Интернете очень мало информации, можно найти только описание самой программы и пару стандартных примеров.

Скачать Microsoft Robotics Studio

В цикле своих статей хочу описать лабораторные работы http://msdn.microsoft.com/en-us/library/dd772008.aspx. На досуге их перевел, протестировал и хочу описать. Кстати, они есть сразу при установке программы: Samples\VplHandsOnLabs\

В первой лабораторной работе рассказывается, как можно управлять роботом с помощью манипулятора. Нам потребуется два сервиса: манипулятор — Desktop Joystick и сенсор, который отвечает за получение данных для колёс, который называется Generic Differential Drive (GDD).

Мы их перетягиваем на диаграмму и связываем:

image

Очень важны свойства соединения со стороны Desktop Joystick мы ставим UpdateAxes, т.е. передаём каждый раз новые изменения на стороне манипулятора. А для GDD устанавливаем SetDrivePower, устанавливающий мощность колеса по заданной формуле:

image

image

В Robotics имеется очень много видов роботов, которые также легко могут работать и на физическом уровне, который связывается по Bluetooth или ИК-порт. Ваша написанная диаграмма, может запускаться и на других роботах, выбирая нужный вам манифест (настройки для определенного робота в формате .xml). Для нашей диаграммы мы выбираем iRobot Create, который кстати будет использоваться и в некоторых других лабораторных работах.

Справо (стандартно) на панели Properties мы выбираем Use manifest, нажимаем Import и выбираем наш робот, который мы договорились использовать:

image

Сохраняем и нажимаем F5 и получаем на выходе стандартную среду и нашего робота, который управляется с помощью Desktop Joystick.

image

Эта работа очень простая, следующий раз буду описать, как программировать сенсоры на роботе.
Димочка @kal1sha
карма
219,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (38)

  • 0
    очень интересно есть ли аналог Microsoft Robotics Studio под *nix-ы.
    или как Microsoft Robotics Studio ведет себя под Wine
    • 0
      С визуальным «вормошлепством» нет.
      Но есть например пакет Player/Stage/Gazebo, хотя разобраться и написать драйвер для своей тележки мне пока не хватило усидчивости.
  • 0
    А роботов в проге можно самому собирать или только программировать поведение готовых??
    • 0
      Нет, ты выбираешь готовый. Их там очень много.
      • +2
        Бендэр среди готовых есть??
  • +1
    У роботехники большое будущее, очень перспективное направление.
    В СНГ непочатый край.
    • –2
      абсолютно верно :)
      • +4
        Судя про удобству и возможностям, майкрософт хочет роботехнику сделать доступной широким массам, точнее малому и среднему бизнесу.

        Они упрощают взаимодействие между программным и физическим уровнями.

        Уже представляю как при нажатии на кнопку «списать брак» выполняется триггер в ms sql и робот физически уничтожает или утилизирует брак… :)
        • 0
          Вот в этом их шанс (а также, возможно, в средствах разработки для синтетической биологии, где появляются уже целые ЯП). А скупка чужих поисковиков — это бред. Баллмера нужно гнать в шею, он доведет их и до 11, и до 7 статьи.
  • 0
    А среду для испытания менять можно?
    • +1
      Да! Можно даже создавать свою.
      • 0
        А несколько роботов сразу запустить?
        Вроде одного, которым самому управлять и еще один который управляется программой?
        • 0
          В принципе да — иногда лаже соревнвания проводятся между разными сборками )
        • 0
          Видел где-то пример с сумо, смотрелось весело, но жутко тормозило т.к. куча всего эмулировалась и моделировалась (поднималась отдельно арена, а к ней конектились роботы) проверял на 3Ггц пентюме с 1280 метрами RAM и видяхой Radeon x1300 pro.
  • 0
    А Есть ли возможность прикрутить какой-нибудь внешний интерфейс (например COM — порт)? тогда можно было ы управлять настоящим роботом…
    • +2
      Ага.
      >>В Robotics имеется очень много видов роботов, которые также легко могут работать и на физическом уровне, который связывается по Bluetooth или ИК-порт.
  • +1
    Если будете продолжать копать в этом направлении, то хотелось бы знать: какие сенсоры возможны у роботов, какой диапазон цен на такие игрушки (реальные роботы) и где продаются, какие существуют ограничения по использованию. Заранее спасибо.
  • 0
    а с реальными роботами кто-нибудь работает? все примеры показывают на виртуальных роботах. это как программирование для сотовых на эмуляторах — никогда не знаешь, как поведет себя прога на реальном устройстве.
    • 0
      Microsoft писал, что этот продукт используется многими предприятиями.
      • 0
        microsoft много чего пишет. а вот вы почему не пользуетесь реальным роботом? на бумаге всегда все гладко. а то получается, что всем интересно, но дальше дело не двигается
        • +2
          Когда у бедного студента будут деньги, я куплю и напишу топик, как среда Microsoft Robotics Studio работает с реальным роботом.
          • 0
            Для студентов есть dreamspark, а в dreamspark есть Microsoft Robotics Studio.
            • 0
              Наверное он имел в виду деньги для покупки реального робота а не среды разработки.
        • 0
          Реальный робот дороговато стоит. Например, Lego MindStorms стоит около 14 т.р.
          • 0
            Отладочная плата на ARM, пара стеклоочистителей от ВАЗа, аккумулятор плюс остальное по мелочи (корпус, колеса, прочая элементная база) — вот и вполне себе робот, причем сильно дешевле 14 тыр. Сильно не уверен, правда, что конечный результат заработает с рассматриваемым ПО, но это проблема не робота.
            • 0
              Уверен, большинству хабражителей будет жутко интересно узнать подробности, если вы воплотите идею в жизнь :)
        • +1
          Партнеров Microsoft, так или иначе имеющих отношение к Robotics можно посмотреть тут www.microsoft.com/robotics/#FindPartner — там есть как производители роботов, так и компании предлагающие решения на базе Robotics.
  • 0
    14 т.р. еще не так дорого. а он полноценный? есть помощнее? я может и за 20т.р. купил бы. где в москве можно купить без переплаты?
    • 0
      В Москве в любом случае идет с переплатой. 14т.р. — это цена из первых строчек Яндекса и примерно столько он стоит в offline магазинах. В интернете наверянка можно найти дешевле. В штатах он стоит $250.

      Вообще у лего еще есть обновленная модель — LEGO® MINDSTORMS® NXT 2.0 (http://shop.lego.com/ByTheme/Product.aspx?p=8547&cn=17), но в Москве в магазинах я пока не встречал. Вот здесь www.saks.ru/15873/15874?brend=9846 предлагают за 12 т.р.

      Вариант от лего интересен тем, что он относительно простой в сборке и совместим со всем остальным Lego. Плюс у него есть неплохой набор сенсоров (http://mindstorms.lego.com/Products/Sensors/Default.aspx).
      • 0
        спасибо. возьму на заметку.
  • 0
    kal1sha,
    а можете привести более жизненный какой либо пример, для конкретики:
    У меня робот обменивается с компьютером командами через bluetooth (виртуальный ком порт),
    Есть набор команд которые контролер отрабатывает или возвращает на них ответ назад.
    Самый простой вопрос — как установить связь и пообщаться с контролером?
    Это просто и понятно делается на Labview но я хотел что то более робоспециализированое и поставил МСРС но так и ниосилил первого шага — всякий вирт с объектами это да, а конкретику как бы?)
    • +1
      msdn.microsoft.com/en-us/library/cc998515.aspx в под заголовке «Changing the Manifest to Use a Physical Robot» идёт описание соединения с физическим роботом.
      • 0
        Там есть вроде сединение к кокому то виртуальному роботу а где есть какой то интерфейс чтоб послать команду и получить ответ
        «SetDrivePower» такой команды в моей прошивке нет.
        Как например мне послать на контролер команду вида SetPos (ch12, 200, 10);
        После чего спросить ReadCh (12); и считать то что быдет в буфере обмена контролера?
        • 0
          не совсем понял какой у вас контроллер, но на Arduino Diecimila я писал микрокод для атмеги, чтоб принимала/выдавала на порт данные. порт был однобайтовым, поэтому координаты я передавал по очереди. один нюанс — прием/передача последовательные.
          в проге на ПК я реализовывал запись нужных последовательностей в ком-порт (у меня это был вай-фай). Таким образом у меня реализовывалась связь с моего роботанка с ПК, и им было просто управлять, передавая координаты микроконтроллеру. Обошелся без МСРС. Хватило стандартной ардуиновской среды и делфи.
          • 0
            Контроллер у меня собственной разработки (мой маленький стартап), микропрограмма контролера — прошивка заточена под то чтобы общаться с компьютером на максимально понятном языке. Такой подход используется в большинстве современных научных приборов.
            Это все достаточно успешно сопрягается с лабвью (тоже графический язык програмирования больше популярный в научной среде) да и с любыми другими языками.
            Я просто сейчас думаю над примерами програм для разных сред и МСРС единственная идею которой я не понял — она как то живет в себе — слишком много надстроек наверное над VB и по моему по этому сложно докопаться до сути.

  • 0
    Вы бы с Максом скооперировались, а то изобретаете одно и то же колесо по очереди. А вообще мой вам совет — возьмитесь за перевод видеотуториалов по написанию собственных сервисов — они по-настоящему интересные, а самое главное, полезные. Та группа лабораторок, за которую вы ухватились довольна примитивна, 80% понимается по одним только картинкам.

    По поводу mindstorms — я понятия не имею по каким робобутикам вы ходите, но в «детском мире» моего города (даже не миллионника) он стоит сейчас 11 000 рублей. При этом три месяца назад я купил его там вообще за 10к (мне кажется это довольно дёшего для игрушки, которая просто уничтожает любое свободное время). С обновлённой ревизией, согласен, всё не просто и достать её в нашей стране в ближайше время будет трудновато.
  • 0
    Тут должна быть упомянута ROS

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.