roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 223 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 08:47 
Не в сети
Аватара пользователя

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

Сделай программный блок отвечающий за взаимодействие с МК и все запросы через него, он отправляет запрос, получает ответ, только потом следующий запрос. Или в него сохраняй отправленные запросы и в каждый ответ в МК прицепляй ID запросы, чтобы получить асинхронный обмен. Но лучший вариант это сделать регистровую модель как у нас - все данные готовятся заранее и в момент обращения просто выдаются, как на МК, так и на таком программном блоке.

Добавлено спустя 1 минуту 36 секунд:
Scorpio писал(а):
Во, блин! А, если сделать так: МК в одном цикле считывает буфер UARTа и состояние всех датчиков. На основании полученных данных выполняет какие-нибудь действия и всегда передает на ПК текстовое сообщение фиксированной длины, в котором зишиты показания всех датчиков и текущее состояние МК. Тогда ПК не надо будет ничего запрашивать и ждать ответа, т.к. все данные всегда под рукой. Только комманды передавать.

Во-во! И команды также пиши в регистры, чтобы ответа долго не ждать!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 09:50 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
Можете попробовать мою программу AIAssistant. То, что может делать встроенная в нее Rules Engine, можно почитать в книге http://aiwinsoft.com/aiassistant/doc/djarr.djvu на странице 986. Пример задачи текущего контроля. Пример простенький, но показывает как можно наладить работу программы, управляемой данными. В моей программе есть возможность работы с COM портом. Поэтому можно легко получать факты, вызываемые событиями, получаемыми от МК. Любое правило в ECLIPS имеет параметр приоритета, который можно менять во время работы программы, а следовательно, и характер поведения робота. Т.о. можно запрограммировать чтобы однопоточная программа выполнялась не последовательно, а ситуативно, в зависимости от вновь появившихся фактов, в т.ч. и фактов требования выполнения какого-либо действия. Rules Engine очень хорошо подходит для различных распознаваний, например, тенденций, ситуаций и т.д.
Если после ознакомления с примером из книги появится желание попробовать мою программу, я выложу ее текущую версию. Правда, без огромной базы онтологии, из-за работы над которой я и не смог программу до сих пор опубликовать в полном виде. Но для ваших задач эта база пока не будет нужна.
У вас есть уже написанные вами программные модули и если вы хотите именно их использовать, а не написать их аналоги на языке ECLIPS, то мне потребуется некоторое время, чтобы сделать механизм плагинов с собственным API.

_________________
Проект Robosonic RS http://www.aigod.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 16:55 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Огромное спасибо всем за ответы. Буду разбираться с советами и повышать свой образовательный уровень.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 17:01 
Не в сети
Аватара пользователя

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

Для этого есть прерывания ;)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 19:25 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Пока решил сделать так:
Перейти к обмену сообщениями фиксированной длины индетификатор – 2 байта данных- контрольная сумма. (Что делать в случае несовпадения КС пока не знаю)
Отправлять комманды и запросы ПК->МК по мере поступления наплевав на приоритеты.
Ответы, либо аварийные сообщения от МК, по мере поступления сортировать по регистрам (показания сонара, код завершения комманды перемещения и т.д.) взводя соответствующий флаг обновления.
Процедура модуля, при запросе МК, сбрасывают флаг обновления соответствующего регистра, ждет обновления данных и считывают свой регистр. Для предотвращения зависания программы, контролируется время ожидания. Например, показания датчика должны вернуться в течении секунды, а время выполнения комманды перемещения рассчитывается в зависимости от расстояния и скорости.
Пойдет?
Книжка «экспертные системы» оказалась весьма увлекательной. Пожалуй я ее всю прочитаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 19:33 
Не в сети
Аватара пользователя

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

В идеале исключить все ожидания - висит обработчик на ПК срабатывающий либо по прерываниям от МК, либо по запросу от любого из процессов. Ему сказал что-то сделать - он сам дождался слота в линке до МК, отправил запрос, запомнил что запрашивал, потом по прерыванию полученного с МК ответа проверил что запрашивал, записал в регистры итог выполнения и при необходимости потом вернул, когда спросят. Плюс к этому в обработчик можно поставить команду регулярного опроса датчиков, тогда он сам их опрашивает, а по запросу вышестоящей программы только возвращает последнее показание + время его измерения.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 20:07 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Как то не очень хочется все вешать на ПК. Получаеется, что во время движения например, ПК кроме серьезных дел, типа обработки видео, должен еще заниматься всякой ерундой типа проверки состояния бамперов, чем вполне может заниматься МК. А если исключить все ожидания, как тогда организовать пошаговое выполнени программы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 20:43 
Не в сети
Аватара пользователя

Зарегистрирован: 16 май 2009, 12:50
Сообщения: 1530
Откуда: Россия
прог. языки: Java, C
Цитата:
Лучше еще упростить - сделать МК полностью пассивным, читать состояние нужных регистров МК с нужной частотой.

Так и нужно сделать. Отправил/прочел - не требуют широкого канала, конечно же если не _мильён_ раз в секунду опрашивать.

_________________
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 20:57 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
=DeaD= писал(а):
а по запросу вышестоящей программы только возвращает последнее показание + время его измерения.

А время зачем, и где он его берет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 08 фев 2011, 21:17 
Не в сети
Аватара пользователя

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

Если не нужно - забей, если нужно - записывает у себя инфу когда с МК получил этот параметр, если нужно точно - еще и МК передаёт локальное время замера относительно передачи измерения :)

Добавлено спустя 1 минуту 59 секунд:
Scorpio писал(а):
Как то не очень хочется все вешать на ПК. Получаеется, что во время движения например, ПК кроме серьезных дел, типа обработки видео, должен еще заниматься всякой ерундой типа проверки состояния бамперов, чем вполне может заниматься МК.

Ну так ПК и так должен этим заниматься, или ты боишься, что ПК будет успевать обрабатывать 25 кадров в секунду, но не будет успевать читать 10 раз в секунду состояние бамперов? :wink:

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 09 фев 2011, 17:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Что-то опасаюсь я все на ПК пока вешать. Программа в стадии разработки, т.е. периодически виснет. Давеча гонял робота с работы по скайпу, задавая ему точки перемешения. Что-то там вылетело за пределы массива, управление пропало, а робот не вписался в дверной проем, зацепился мордой за дверную ручку (бампер при этом был свободен), и если бы МК самостоятельно не остановил моторы по перегрузке, могло бы кончится плачевно.
С движением по карте пока похвастаться нечем. При перемещении с парой тройкой поворотов, робот довольно редко попадает в нужную клетку. И, что особенно противно, один и тот-же маршрут проезжает всегда немножко по разному, хотя задания на перемещения получает абсолютно одинаковые. Причем промахивается не только азимутом, но и расстоянием, чего я от него никак не ожидал (энкодер выдает 2 импульса на каждый мм пути). Думаю, что это связано с ПИД регулированием скорости в моторном блоке. Т.е. количество импульсов на единицу расстояния не постоянно из-за процесса регулирования. Зато едет идеально прямо, тут претензий нет. Короче, как и говорили аксакалы, без камеры не обойтись.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 09 фев 2011, 17:43 
Не в сети
Аватара пользователя

Зарегистрирован: 16 май 2009, 12:50
Сообщения: 1530
Откуда: Россия
прог. языки: Java, C
Исключения перехватывать не пробовали?

_________________
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 09 фев 2011, 17:56 
Не в сети
Аватара пользователя

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

1. Запретить продолженные команды исполнительным устройствам шасси;
2. Поставить общий контроль связи с ПК, если долгое время нет запросов от аплинка - вырубаем всё и засыпаем.

Добавлено спустя 1 минуту 6 секунд:
Scorpio писал(а):
И, что особенно противно, один и тот-же маршрут проезжает всегда немножко по разному, хотя задания на перемещения получает абсолютно одинаковые. Причем промахивается не только азимутом, но и расстоянием, чего я от него никак не ожидал (энкодер выдает 2 импульса на каждый мм пути).

Что-то не так, не должен так быстро погрешность накапливать, неужели есть проскальзывания? Если нет - проверь, по энкодерам сколько кликов каждый раз собирает система? И вообще - ты в каком формате команды ему даешь и как ПИД настроен - что поддерживает скорость или расстояние?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 09 фев 2011, 20:09 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Т.е. количество импульсов на единицу расстояния не постоянно из-за процесса регулирования.

как это?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерактивный мобильный робот Vanessa
СообщениеДобавлено: 09 фев 2011, 20:33 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Может банальные помехи?
У меня левый энкодер периодически насчитывал больше нужного, пока я провода идущие от него не заэкранировал.

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 223 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15  След.

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


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

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


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

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