Тюниг NXT-G

Ответить
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Тюниг NXT-G

Сообщение Alex.Kolotov »

Есть ли какие-нибудь трюки по тюнингу NXT-G - повышению его производительности, изменению внешнего вида, активация скрытых возможностей?
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Тюниг NXT-G

Сообщение Pavel Krivozubov »

Ну вот так например:
http://www.edu.holit.ua/index.php?optio ... 59&lang=ru
можно программировать и управлять устройствами NXT со всеми возможностями LabVIEW.
А вообще советую почитать этот ресурс, там ОЧЕНЬ много интересного для разработчика NXT-G.
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

Спасибо! Я просматривал материалы, касающиеся NXT-G, этого ресурса некоторое время назад. Они для тех кто только начинает знакомиться с NXT-G. Мой же вопрос был в основном для тех, кто двигается дальше с этой платформой. Например, я слышал, что в NXT-G можно как-то включить использование массивов - именно включить, а не написать свою реализацию через работу с файлами - только вот пока не нашел как это сделать. Буду рад любым ссылкам или просто советам.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Тюниг NXT-G

Сообщение AndreyDmitriev »

Я несколько лет назад игрался с Mindstorm. Не с NXT, конечно, а с предыдущей версией, которая на RCX модуле базировалась. Та, программа, которая прилагалась к конструктору была хороша для детей, но для серьёзных игр не подходила. Вот не помню уже - был ли тулкит для LabVIEW, или его позже сделали. А модуль RCX программировался через инфракрасный порт с помошью "башни", подключённой к COM порту компьютера. Причём через последовательный порт можно не только загружать программу в RCX, но и управлять им напрямую. Я нашёл описание протокола (он там достаточно примитивный был) и на LabVIEW написал за пару вечеров модули опроса датчиков и управления моторами. После этого я уже не был ограничен маленькой памятью модуля, а просто использовал LabVIEW для непосредственного прямого управления через башню (автономности робота я при этом лишился, разумеется - всё работало в пределах комнаты). Скорости последовательного порта было вполне достаточно.
Я это к тому, что с новой версией похоже всё осталось по-старому: есть спец программа для программирования, рассчитанная на обучение/детей, есть тулкит для LabVIEW, позволяющий загрузить LabVIEW программу в NXT (разумеется только те примитивы, которые можно туда загрузить). Если серьёзно с этой игрушкой забавляться, то надо использовать именно LabVIEW с тулкитом (а можно и напрямую попытаться им управлять, как это было возможно c RCX).

Андрей.
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

Я все понимаю. Да, для продвинутого пользования можно использовать сам LabView (если задаться целью его изучить). Для себя же, для продвинутого использования я пока выбрал NXC (Not Exactly C) и NXT-Python - что уж поделать, испорчен я текстовыми ЯП.
Дело в том, что как Вы сказали NXT-G используется для обучения детей программированию. Вернее даже не программированию, а алгоритмизации - умению составлять алгоритмы. Именно это направление меня сейчас и интересует. И, согласитесь, хотелось бы выжать из этой платформы все, чтобы в ходе изучения переключаться на другую только для того, чтобы освоить "работу с массивами".
Есть еще один момент в пользу NXT-G - только она и Robolab официально разрешены для участия в международной робототехнической олимпиаде.
MrPicad
interested
interested
Сообщения: 1
Зарегистрирован: 11 ноя 2010, 16:15
Версия LabVIEW: 9
Контактная информация:

Re: Тюниг NXT-G

Сообщение MrPicad »

Alex.Kolotov писал(а):Спасибо! Я просматривал материалы, касающиеся NXT-G, этого ресурса некоторое время назад. Они для тех кто только начинает знакомиться с NXT-G. Мой же вопрос был в основном для тех, кто двигается дальше с этой платформой. Например, я слышал, что в NXT-G можно как-то включить использование массивов - именно включить, а не написать свою реализацию через работу с файлами - только вот пока не нашел как это сделать. Буду рад любым ссылкам или просто советам.
Посмотрите эту статью http://edu.holit.ua/index.php?option=co ... 59&lang=ru возможно это оно.
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

Спасибо, но это опять касается чистого LabView. Немножко не то.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Тюниг NXT-G

Сообщение AndreyDmitriev »

Alex.Kolotov писал(а):... я слышал, что в NXT-G можно как-то включить использование массивов - именно включить, а не написать свою реализацию через работу с файлами - только вот пока не нашел как это сделать. Буду рад любым ссылкам или просто советам.
Это насколько я помню, можно было сделать в предыдущей версии, которая была для RCX. Та версия базировалась на LabVIEW, то есть по сути это и была LabVIEW, но сильно "редуцированная". Но там была, скажем так, не совсем документированная возможность возможность редактировать палитры - вот там и можно было "включить" доп элементы. Впрочем это года четыре назад было. А нынешняя NXT 2.0 способна только на то, на что она способна. Я даже скачал её и посмотрел - устроено довольно забавно, по сути она вся на LabVIEW написана. Причём для разработки использовалась версия 7.1.5, которой официально не существует. Но "скрытых" возможностей там я не нашёл (хотя чисто теоретически там можно кое-что поправить или расширить).

Ну а что касается по массивам и алгоритмам - то вот просто несколько ссылок, может пригодиться:
http://thenxtstep.blogspot.com/2006/06/ ... tions.html
http://www.teamhassenplug.org/NXT/NXT-GCodeIndex.html
http://www.brickshelf.com/cgi-bin/gallery.cgi?f=191310

Ну а если двигаться дальше, то надо, конечно ставить LabVIEW-Toolkit для LEGO MINDSTORM NXT 2.0 поверх LabVIEW. Например, когда код для вычисления абсолютного значения выглядит вот так:

Изображение

то двигаться в NXT-G в общем-то особо некуда - при чуть более-менее серьёзной задаче львиная часть времени уйдёт на создания подобных "костылей" (хотя это и развивает нестандартное мышление, это да).
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

Спасибо за развернутый ответ!

В ограничениях я вижу две стороны:
первая: с ними же невозможно жить! надо убегать на другие среды! вперед!
вторая: язык предназначен для обучения. В т.ч. для обучения программированию... ограничения позволяют начать думать как устроены "готовые" функции в других языках, ограничения могут побудить начать думать, как их обойти. (например, помнится, я решал задачу вычисления косинуса и синуса угла через афинные преобразования - и таки да, получилось). Это же весело! К тому же все костыли будут уже поняты и реализованы на первой серьезной задача, вторая уже пойдет легче, к третьей уже автоматически сложится понимание, зачем нужны функции, почему функциям нужно давать нормальные описания и названия, зачем писать комментарии и т.п.

Пусть я выгляжу фанатом NXT-G. Это отчасти так - это интересный продукт. Самое главное не нужно тратить практически никаких усилий на то, чтобы преподавать программирование на его примере детям. Но я прекрасно понимаю ваши доводы тоже.

Все чего мне хочется от NXT-G так это бережное отношение к ресурсам: CPU, памяти и т.п. и наличия каких-то более менее устоявшихся вещей (напр, массивы).
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Тюниг NXT-G

Сообщение AndreyDmitriev »

Да, для обучения штука хорошая, спору нет. Кроме того, NXT тулкит для LabVIEW - штука сама по себе дорогая, поскольку LabVIEW отнюдь не бесплатна. Да и взрослым тоже интересно поиграть... Я вот с удовольствием сегодня поковырялся (хоть и без робота).

Нарыл такой "хак": Если в редакторе картинок в режиме рисования нажать Ctrl + Shift и удерживая обе клавиши, нажать последовательно три клавиши N X T, то появятся четыре дополнительных инструмента:
Вложения
NXT.png
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

хм... это NXT-G 2.0... а какова технология "откапывания" такого яйца? брутфорс?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Тюниг NXT-G

Сообщение AndreyDmitriev »

Alex.Kolotov писал(а):хм... это NXT-G 2.0... а какова технология "откапывания" такого яйца? брутфорс?
Нет, не брутфорс конечно. Неужели Вы думаете, что я сидел всё утро и нажимал клавиши? Скажем так, я сделал небольшой реверс-инжиниринг...
Это действительно NXT-G 2.0 build 1336. А Вы другой версией пользуетесь?
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

Поскольку официальной версии NXT2.0 у меня нет, я пользуюсь NXT1.0...
От смены версии меня отдаляет факт, что на NXT-G 1.0 мне детишек учить...

Если конечно, это не Ваше know-how, поделитесь техникой реверс-инжениринга NXT-G?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Тюниг NXT-G

Сообщение AndreyDmitriev »

А, понятно. NXT 2.0 я скачал с торрентов, каюсь, грешен. Просто любопытно было посмотреть, что из себя представляет эта штука. А что, NXT 2.0 разве не поставляется с каждым конструктором?
Что касается реверс инжиниринга, то тут всё просто: поскольку там используется LabVIEW, то часть кода лежит в виде библиотек LabVIEW. Конкретно в данной ситуации нам нужна библиотека PictureEditor.llb, внутри которой есть файл LMS-PE ValidPW.vi - блок диаграмма там защищена, но пароль "NXT" лежит в строке на панели открытым текстом (вообще это пример разработчику - как не надо делать).
Кстати, файлы блоков LEGO представляют собой обычные VI, каждый блок представляет собой Express SubVI, то есть теоретически можно создавать их и в LabVIEW - например тот же abs() вероятно можно сделать в виде готового блока (но проще, конечно, просто поставить LEGO Toolkit для LabVIEW).
Alex.Kolotov

Professionalism Tutorials
beginner
beginner
Сообщения: 31
Зарегистрирован: 22 окт 2010, 09:24
Награды: 2
Версия LabVIEW: NXT-G 1.0
Откуда: Нижний Новгород
Контактная информация:

Re: Тюниг NXT-G

Сообщение Alex.Kolotov »

У нас NXT1.0 конструктор, вот почему и версия софта соответствующая.
За реверс-инжиниринг трюки спасибо! буду иметь ввиду, если освою, что либо, помещу у себя в блоге - на Вас сошлюсь как на "наставника" - не против?
То что, писать отдельные блоки можно в лабвью знал - осталось дело за малым освоить лабвью... ну и еще найти ее и поставить :)
На несколько NXT роботов у нас есть официальные лицензии на NXT-G, в то время как на LabView - нет... Поэтому нам просто поставить LEGO Toolkit для LabVIEW не проще :)
Ответить

Вернуться в «Robotics»