вторник, Октябрь 31, 2006

Камера для ASUS

В моем роботе используется КПК ASUS MyPal A730W оснащенный камерой. И как следствие хотелось бы ей воспользоваться... Для решения этой задачи с огромным трудом был написан модуль который захватывает изображение с камеры. Язык реализации C#.
Исходник:
http://cvs.1adw.com/users/vkle/doc/asus.zip

среда, Октябрь 25, 2006

Мобильные роботы 2006

Посетил фестваль мобильные роботы. Приятно, что жизнь такого фестваля продолжается. Очень хочется привезти туда и свою команду... попытаемся.
ОГРОМНОЕ спасибо Москвичам за прием. Все было супер!

четверг, Октябрь 19, 2006

Система контроля компонент

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

пятница, Октябрь 13, 2006

Немного про ПО

Заложил первый камень в фундамент библиотеки работы со шлюзовым контроллером, первым камнем оказался менеджер доступа к последовательному порту и некоторые базовые классы.
В частности, вот что нужно будет сделать чтобы подключить свое или чужое устройство к шлюзу:
  • создать свой класс устройства;
  • унаследовать его от класса QSyncDevice;
  • использовать метод SyncSend для отправки данных в порт и ожидания ответа;
Пример класса для двигателей: http://cvs.1adw.com/users/vkle/doc/motor.txt

суббота, Октябрь 07, 2006

Энкодеры

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

вторник, Октябрь 03, 2006

Печатная плата




Более-менее освоил разводку плат в пакете Eagle. Вот, что у меня вышло, это пока-что тестовая версия.

понедельник, Октябрь 02, 2006

Не лезем ли мы в бутылку?


Вспомнился закон Амдала о том, что производительность системы в основном определяется самым медленным устройством в системе. Захотелось рассчитать некоторые параметры системы, а именно, параметры связанные с работой такого модуля, как диспетчер порта...
Итак, входные данные:
- скорость передачи данных коммуникационного порта: 9600 бит/с
- средняя длина пакета: 12 байт
Получаем:
Среднее среднее время на передачу данных и их обработку: 1/((9600/8)/12) = 0.01
Допустим, что среднее время обработки примерно равно времени передачи: 0.01
Итак, среднее время обслуживания заявки системы (туда, обратно, обработка):
0.01 + 0.01 + 0.01 = 0.03
Обращаю внимание, что речь идет именно о среднем времени т.е. о случайной величине.
Предположим, что заявки диспетчеру поступают с таким же средним временем: 0.03
Тогда:
коэффициент использования системы = 0.887
средняя задержка заявки в системе = 0.1823с
Вот такие вот неутешительные цифры. Выход один - уменьшать время обработки заявки.
(На графике - динамика очереди диспетчера)