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

    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

    Эта работа очень простая, следующий раз буду описать, как программировать сенсоры на роботе.
    Метки:
    Поделиться публикацией
    Комментарии 38
    • 0
      очень интересно есть ли аналог Microsoft Robotics Studio под *nix-ы.
      или как Microsoft Robotics Studio ведет себя под Wine
      • 0
        С визуальным «вормошлепством» нет.
        Но есть например пакет Player/Stage/Gazebo, хотя разобраться и написать драйвер для своей тележки мне пока не хватило усидчивости.
      • 0
        А роботов в проге можно самому собирать или только программировать поведение готовых??
        • 0
          Нет, ты выбираешь готовый. Их там очень много.
      • +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

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