Какие параметры перемещения выбрать для робота: двигаться в течение определенного количества оборотов двигателя (rotations), количества градусов для поворота двигателя (degrees) или же количества секунд (seconds)?
Несколько практических советов об использовании блоков Move и Motor описаны в http://nnxt.blogspot.com/2010/10/nxt-g-move-motor.html.
Блоки Move и Motor
-
- beginner
- Сообщения: 31
- Зарегистрирован: 22 окт 2010, 09:24
- Награды: 2
- Версия LabVIEW: NXT-G 1.0
- Откуда: Нижний Новгород
- Контактная информация:
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Блоки Move и Motor
А нельзя ли как то разделить движение на несколько этапов и например сначала двигаться одну секунду, потом сверить угловой поворот и в случае несовпадения в следующий этап двигаться не одну секунду, а например 1.2 секунды? То есть получается динамическая корректировка и зависимость от заряда батарейки уменьшается.
-
- beginner
- Сообщения: 31
- Зарегистрирован: 22 окт 2010, 09:24
- Награды: 2
- Версия LabVIEW: NXT-G 1.0
- Откуда: Нижний Новгород
- Контактная информация:
Re: Блоки Move и Motor
Но зачем тогда двигаться в секундах, если мы все равно замеряем угловое смещение моторов? Примемущество движения в секундах именно то, что при нем можно не заморачиваться с вычислением изменения состояния двигателя - не надо обрабатывать условие выключения двигателей - он и так выключиться... Если же решаем мерять смещение, то и движение по ротациям/градусам подойдет...
Alex Kolotov
http://nnxt.blogspot.com/
http://nnxt.blogspot.com/
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Блоки Move и Motor
Я отвечал/предлагал/спрашивал исходя из этого главного минуса.Очевидный минус - каждый раз, когда вы будете запускать робота, он будет проезжать за то же количество секунд меньше расстояние.
-
- beginner
- Сообщения: 31
- Зарегистрирован: 22 окт 2010, 09:24
- Награды: 2
- Версия LabVIEW: NXT-G 1.0
- Откуда: Нижний Новгород
- Контактная информация:
Re: Блоки Move и Motor
Ясно. Классно, что уточнили.
В действительности все зависит от задачи. Т.е. конкретно в случае описанном Вами, нужно знать почему именно нужно двигаться в секундах. Если нужно преодолеть какое-то расстояние, то не понятно почему сразу не градусах? Если нужно сохранить какую-то синхронизацию, то почему на разное кол-во секунд?
Как итог, - я думаю, что здесь тоже применим применим принцип TIMTOWTDT - "есть больше, чем один способ сделать это"
В действительности все зависит от задачи. Т.е. конкретно в случае описанном Вами, нужно знать почему именно нужно двигаться в секундах. Если нужно преодолеть какое-то расстояние, то не понятно почему сразу не градусах? Если нужно сохранить какую-то синхронизацию, то почему на разное кол-во секунд?
Как итог, - я думаю, что здесь тоже применим применим принцип TIMTOWTDT - "есть больше, чем один способ сделать это"
Alex Kolotov
http://nnxt.blogspot.com/
http://nnxt.blogspot.com/
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Блоки Move и Motor
Должен признаться, что тема на самом деле интересная. Я профессионально тесно связан с различными абсолютными и релятивными энкодерами (многоосевые стабилизационные платформы и ротационные симуляторы), поезда, автомобили, корабли, вертолёты и самолёты (трансляционное и смешанное движение). На самом деле всё зависит от задачи, сенсорики и акторики. Для ротаторных симуляторов обычно задаётся либо угол либо угловая скорость с учётом таймаута, либо поэтапно проверяется заданное значение с достигнутым. Иногда приходилось извращаться, задавая новый угол поворота, заранее, достигнув определённого значения угла поворота, для достижения постоянной угловой скорости. При трансляционном движении существует проблемы в сенсорике. Например одометр не может правильно определить расстояние, если колесо прокручивается, а GPS неточно определяет координаты, радары дорогие и тоже недостаточно неточные. Для плавного движения используется интер- и экстраполяция с использованием полиномов.
Но всё это скорее всего практически невозможно спрограмировать на NXT-G, хотя с ним я совсем незнаком. На при некоторых условиях (real time) это возможно.
Можно увидеть реализацию более менее интересного проекта на NXT-G ? Очень интересно
Но всё это скорее всего практически невозможно спрограмировать на NXT-G, хотя с ним я совсем незнаком. На при некоторых условиях (real time) это возможно.
Можно увидеть реализацию более менее интересного проекта на NXT-G ? Очень интересно
-
- beginner
- Сообщения: 31
- Зарегистрирован: 22 окт 2010, 09:24
- Награды: 2
- Версия LabVIEW: NXT-G 1.0
- Откуда: Нижний Новгород
- Контактная информация:
Re: Блоки Move и Motor
Да-а, видно, что у Вас все серьезно.
В NXT-G 2.0 появилась поддержка вычислений дробных чисел, так что может что-то из того, что было перечисленно и можно сделать.
Конкретно я бы на чистом NXT-G хотел организовать какую-нибудь внятную одометрию, но это пока только задумки.
В целом, NXT-G задумывался больше для обучения, так что даже среда программирования вряд ли позволит сделать что-то объемное. Вот если найти и реализовать что-то маленькое, элегантное и работающее :) - тогда реально можно чем-то хвастаться.
В NXT-G 2.0 появилась поддержка вычислений дробных чисел, так что может что-то из того, что было перечисленно и можно сделать.
Конкретно я бы на чистом NXT-G хотел организовать какую-нибудь внятную одометрию, но это пока только задумки.
В целом, NXT-G задумывался больше для обучения, так что даже среда программирования вряд ли позволит сделать что-то объемное. Вот если найти и реализовать что-то маленькое, элегантное и работающее :) - тогда реально можно чем-то хвастаться.
Alex Kolotov
http://nnxt.blogspot.com/
http://nnxt.blogspot.com/