roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 11:46

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 352 ]  На страницу Пред.  1 ... 20, 21, 22, 23, 24  След.
Автор Сообщение
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 03 янв 2010, 21:14 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
ИМХО основная задача - это не решить ряд задачек типа "по линии кататься" и т.п., а - обучение школьников программированию. А уже исходя из этой задачи надо строить всё остальное.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 03 янв 2010, 21:17 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Есть уже такая готовая ОС и примеры программирования под неё в Си\Си++ или в чем-то еще?

В том объеме, в котором хочется - не знаю. Очевидно, низкоуровневые функции будут зависеть от периферии,
в том числе подключаемой снаружи.

А само по себе многозадачное ядро... сейчас откопаю самое тупое:
Вложение:
Preemptive.zip [7.31 КиБ]
Скачиваний: 16


Цитата:
мы ведь не ТЗ в лабораторию МИТ

Я ТЗ обсуждаю... а куда - какая разница, еще не известно, что сложнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 03 янв 2010, 21:24 
Не в сети

Зарегистрирован: 23 авг 2008, 22:28
Сообщения: 1158
Откуда: Санкт-Петербург
ФИО: Сергей
2Michael_K: разница в ресурсах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 03 янв 2010, 21:31 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ок, минимальное ядро для многозадачности имеется, её можно планировать в минимальном же варианте.
Хотя вообще её в программу минимум лучше не записывать.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 03 янв 2010, 22:23 
Не в сети

Зарегистрирован: 15 ноя 2009, 22:06
Сообщения: 129
Откуда: Санкт-Петербург
Skype: safilippov
ФИО: Сергей Александрович Филиппов
=DeaD= писал(а):
ИМХО основная задача - это не решить ряд задачек типа "по линии кататься" и т.п., а - обучение школьников программированию. А уже исходя из этой задачи надо строить всё остальное.

Предлагаю поправку: обучение не программированию, а УПРАВЛЕНИЮ (отсюда и "кибернетика" - наука об управлении). Программировать детей научат на уроках информатики, если повезет со школой и преподавателем. А здесь нам нужно сконцентрироваться на управлении с обратной связью.
SMT писал(а):
Можем обсудить примерный набор задач?

Набор задач будет постоянно меняться. Взятое в качестве примера - правильно. Движение в круге, по линии, объезд предметов, управлением манипулятором. Это чистые классические задачи, их решение может быть коротким и изящным. Но перед детьми будут вставать кОмплексные задачи, в которых придется воспользоваться полученными навыками из джентльменского набора. Например, такая: движение по линии с разрывом вдоль стенки, захват предмета, возвращение и установка его в нужный ангар, расположение которого определяется крупно нарисованным штрих-кодом. И тут наша среда программирования должна показать свои лучшие стороны :good:.
Цитата:
Уровень 1. Движение без обратной связи. "Таймерные" модели. Шаг вперед, два шага назад. Все действия вслепую.
Уровень 2. Обратная связь. Ориентация на плокости (круг, линия), идентификация препятствий, источника света.
Уровень 3. Идентификация объектов, определение размера, объезд. Движение вдоль кривой стенки. Задачи регулирования и слежения.
Уровень 4. Точное управление двигателями. Энкодеры. Перемещения, захваты, манипуляторы, "барабанщики", конвееры. Работа с объектом "наощупь". Андроиды без гиро.

Вот первые 4 уровня, пока что относящиеся к 5-7 классам. Надеюсь, что через пару лет им этого уже будет недостаточно.

В качестве комплексной задачи можно взять футбол роботов, в который могут играть даже семиклассники. Есть специальные соревнования для детей на Robocup.
Фото1
Фото2


Последний раз редактировалось Sergey Filippov 05 янв 2010, 00:25, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 04 янв 2010, 18:39 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Сергей, футбол роботов - это хорошо, но не могли бы вы, вместо ни о чем не говорящих фоток,
выложить несколько примеров графического "кода" (не самых навороченных и не самых тупых - типичных)
Я имею в виду 5-7 классы... (Думаю, что дальше при желании вполне можно переходить на более
"низкоуровневые" языки).

Может быть так нам будет проще оценить, какие элементы-конструкции языка используются
чаще, какие вызывают трудности, какие неоправданно "замусоривают" код и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 05 янв 2010, 10:38 
Не в сети

Зарегистрирован: 15 ноя 2009, 22:06
Сообщения: 129
Откуда: Санкт-Петербург
Skype: safilippov
ФИО: Сергей Александрович Филиппов
Michael_K писал(а):
Сергей, футбол роботов - это хорошо, но не могли бы вы, вместо ни о чем не говорящих фоток,
выложить несколько примеров графического "кода"

Извольте. Из подобных кирпичиков мы строим остальные программы.

Пример 1. Нечто аналогичное можно сделать прямо на NXT без компьютера.
Вложение:
Комментарий к файлу: Релейный регулятор для движения по линии. Модификаторов нет - значения по умолчанию.
rele01.jpg
rele01.jpg [ 5.46 КиБ | Просмотров: 2497 ]

Пример 2. Тоже самое с помощью ветвления.
Вложение:
Комментарий к файлу: Релейный регулятор для движения по линии. Используются абсолютные значения освещенности.
rele1.jpg
rele1.jpg [ 9.3 КиБ | Просмотров: 2493 ]

Пример 3. Вложенные ветвления.
Вложение:
Комментарий к файлу: Релейный регулятор для движения по линии с двумя датчиками освещенности и предварительной калибровкой.
rele2-calibrate.jpg
rele2-calibrate.jpg [ 27.17 КиБ | Просмотров: 2253 ]

Пример 4. Другой подход к решению той же задачи.
Вложение:
Комментарий к файлу: Пропорциональный регулятор для движения по линии с предварительной калибровкой на черном и белом.
pr1-50-calibrate-middle-touch.jpg
pr1-50-calibrate-middle-touch.jpg [ 21.55 КиБ | Просмотров: 2264 ]

Пример 5. Как обеспечить гарантированно прямолинейное движение?
Вложение:
Комментарий к файлу: Синхронизация моторов - пропорциональный регулятор.
motor2.jpg
motor2.jpg [ 11.53 КиБ | Просмотров: 2267 ]

Пример 6. Двигаться по азимуту, например, к воротам противника.
Вложение:
Комментарий к файлу: Использование компаса для движения по выбранному азимуту на пропорциональном регуляторе.
compass.jpg
compass.jpg [ 11.02 КиБ | Просмотров: 2281 ]

Пример 7. Двигаться вдоль неровной стенки с помощью ультразвукового датчика.
Вложение:
Комментарий к файлу: Пропорционально-дифференциальный регулятор для движения вдоль стенки.
pdwall-s1.jpg
pdwall-s1.jpg [ 14.6 КиБ | Просмотров: 2267 ]

Пример 8. Использование сторожевого таймера в параллельной задаче для защиты от застреваний.
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 05 янв 2010, 19:44 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Спасибо, Сергей. Это показательно.
По приведенным вами схемам есть несколько вопросов
(извините, если вопросы тупые - я прочитал "юзергайд" по роболабу,
но практического опыта программирования на нем не имею :oops: ).

- Я вижу, что параметры для функций (для блоков, кубиков... или как правильно назвать) - это в основном константы.
Даже когда, казалось бы, нарисована "веревка данных", обычно по ней идет константа, как здесь:
Вложение:
const.GIF
const.GIF [ 16.38 КиБ | Просмотров: 2449 ]

Или значение из контейнера, как здесь:
Вложение:
cont.GIF
cont.GIF [ 16.54 КиБ | Просмотров: 2426 ]

Так ли это на самом деле?

Чистых "веревок данных" (которые бы соединяли источник данных с получателем) я не увидел.
Это неудобно, или это ограничения языка, или это трудно в понимании?

- Используются ли пользовательские функции (подпрограммы, субвиайчики)? Насколько широко?

- Существует ли механизм передачи в них (в пользовательские функции) параметров и получения
из них результатов? Или все это делается через ручное назначение контейнеров ("баночек")?
Насколько такие параметрические подпрограммы и механизмы нужны или полезны на начальных этапах обучения?
Можно ли использовать одну и ту же пользовательскую функцию в разных (параллельно исполняющихся) задачах?

- Считаете ли вы нормальным использование "блокирующих" блоков? Например, "ждать пока не нажата кнопка"...
Обычно (в "нормальном" программировании) использование блокирующих функций подразумевает использование многозадачности... Например, пока один процесс (тред, задача) стоит колом, ожидая кнопку, вторая продолжает крутить головой или опрашивать радар.

- Если уж говорить о многозадачности и роболабе: как в роболабе реализован обмен данными между задачами,
через ручное назначение глобальных контейнеров? Читал в юзер-гайде про какие-то евенты (события), но не нашел
примеров использования.

- И совсем дурацкий вопрос... что-то везде по-разному пишут - там арифметика с плавающей точкой вообще есть?

Извините, если нагрузил :pardon: :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 07 янв 2010, 16:48 
Не в сети

Зарегистрирован: 15 ноя 2009, 22:06
Сообщения: 129
Откуда: Санкт-Петербург
Skype: safilippov
ФИО: Сергей Александрович Филиппов
Все празднуют... С Рождеством!
Michael_K писал(а):
- Я вижу, что параметры для функций (для блоков, кубиков... или как правильно назвать) - это в основном константы.
Так ли это на самом деле?

Да, Михаил. В стандартном Роболаб нет веревок данных между командами, весь обмен реализован через переменные-контейнеры или константы, которые называются модификаторами. Правда, там есть начинка Лабвью, которую можно достать через режим Исследователь (Projects->Oprions->Controls/Function Palettes->Palette View->Investigator 5new), в ней найдется всякое.
Цитата:
Чистых "веревок данных" (которые бы соединяли источник данных с получателем) я не увидел.
Это неудобно, или это ограничения языка, или это трудно в понимании?

Здесь некоторая недоработка. Например, детям не предлагается возможность прицепить на вход ветвления результат работы логического выражения (только через глубоко зарытые возможности Labview с преобразованием логики в число).
Цитата:
- Используются ли пользовательские функции (подпрограммы, субвиайчики)? Насколько широко?
- Существует ли механизм передачи в них (в пользовательские функции) параметров и получения из них результатов? Или все это делается через ручное назначение контейнеров ("баночек")?

Широко используются подпрограммы. Их может быть до 8 шт. Вызываются по номеру, причем, что удобно, номер можно параметризовать. Обмен данными исключительно через глобальные переменные (контейнеры).
Вложение:
Комментарий к файлу: Подпрограмма с номером 1 вызывается через 4 с вращения мотора
Sub.JPG
Sub.JPG [ 10.06 КиБ | Просмотров: 2381 ]

Программист может создать свой блок (полноценную функцию) с любым количеством входов и выходов и зашить туда подпрограмму, но для этого придется немного разобраться в лабвьюшном коде (который появляется при двойном щелчке по блоку на поле программы). Для пользователя это будет черный ящик, как для нас любой из блоков.
Цитата:
Насколько такие параметрические подпрограммы и механизмы нужны или полезны на начальных этапах обучения?
Можно ли использовать одну и ту же пользовательскую функцию в разных (параллельно исполняющихся) задачах?

Подпрограммы становятся нужны довольно быстро, как только появляются повторяющиеся куски кода в разных частях программы. Семиклассники активно используют передачу данных через глобальные параметры, но это нечитаемо, кошмар.
С параллельными задачами надо быть поосторожнее. Использовать подпрограммы можно, но обращение к моторам или датчикам из разных задач приводит к неожиданным последствиям. Поэтому мы предпочитаем в одной задаче производить чтение показаний в контейнеры или управление моторами, а из других задач эти контейнеры использовать или менять параметры управления.
Цитата:
- Если уж говорить о многозадачности и роболабе: как в роболабе реализован обмен данными между задачами, через ручное назначение глобальных контейнеров? Читал в юзер-гайде про какие-то евенты (события), но не нашел примеров использования.

Тоже через "глобальные" контейнеры.
Обработчики событий штука мощная, покруче безусловных переходов. Там даже возможны задания диапазонов значений, при которых срабатывает обработчик. Работают только в рамках одной задачи.
Вложение:
Комментарий к файлу: Объявляется событие нажатия на кнопку, стартует мониторинг события, бесконечно играется мелодия, а при нажатии на кнопку управление передается на метку перехода
Events.JPG
Events.JPG [ 6.27 КиБ | Просмотров: 2381 ]

Вообще в Роболабе есть хороший встроенный Help с примерами и контекстная подсказка. Для вызова надо установить блок на поле программы и через контекстное меню выбрать Help или нажать Ctrl-H и водить курсором по блокам.
Цитата:
- И совсем дурацкий вопрос... что-то везде по-разному пишут - там арифметика с плавающей точкой вообще есть?

Есть. Имеется тип float, а блок f(x) понимает основной набор математических функций. Для этого нужен патч 2.9.4.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 07 янв 2010, 16:53 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Вообще в Роболабе есть хороший встроенный Help

Да что-то качать его не хочется совсем :pardon: :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 07 янв 2010, 17:24 
Не в сети

Зарегистрирован: 15 ноя 2009, 22:06
Сообщения: 129
Откуда: Санкт-Петербург
Skype: safilippov
ФИО: Сергей Александрович Филиппов
Michael_K писал(а):
Да что-то качать его не хочется совсем

Из патриотических чувств?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 07 янв 2010, 17:29 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ну леги-то нету у меня :)
Скачать и поставить корягу в 80 метров только ради того, чтобы заглянуть в хелп?
(а потом избавляться от огрызков лабвью-рантаймов...) Ну его нафиг! :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 27 янв 2010, 19:59 
Не в сети

Зарегистрирован: 15 ноя 2009, 22:06
Сообщения: 129
Откуда: Санкт-Петербург
Skype: safilippov
ФИО: Сергей Александрович Филиппов
SMT писал(а):
В LegoMinobot-e я использовал телефонные разъемы (по аналогии с Лего), но они слишком крупные и ненадежные (в доступном исполнении). По этому смотрел в сторону аудиоджеков сигнал\+\-, но при вынимании такого джека, контакты могут замыкаться , а поскольку легко забыть выключить модуль, то что-нибудь закоротить можно. По этому вариант с разъемами питания разного размера - один на сигнал\GND, другой только питание (серв, датчиков).

Подглядел в биолоиде миниатюрные, но довольно прочные и удобные разъемы. Не знаю, как называются. Возможно, такие подойдут в нашем случае?
Вложение:
connector.jpg
connector.jpg [ 147.23 КиБ | Просмотров: 2135 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 28 янв 2010, 13:00 
Не в сети

Зарегистрирован: 23 авг 2008, 22:28
Сообщения: 1158
Откуда: Санкт-Петербург
ФИО: Сергей
Подобные могут подойти - есть ключ, механически прочные. Вчера как раз утром покупал и внимательно их рассмотрел
Вложение:
Power-connector-MPW-MHU.jpg
Power-connector-MPW-MHU.jpg [ 18.38 КиБ | Просмотров: 2188 ]

Недостаток - не предназначены для частых подключений\отключений, вытащить розетку из разъема можно только очень крепко удерживая пальцами и раскачивая, а то и за провод. Оба способа ведут к разрушению контактов или отрыву проводов :( Те разъемы на фото как вытаскивают?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 28 янв 2010, 13:02 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Разъемы типа SHARP'овских должны нормально подойти, они такого же типа как Sergey Filippov указал.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 352 ]  На страницу Пред.  1 ... 20, 21, 22, 23, 24  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO