roboforum.ru

Технический форум по робототехнике.

Выбор среды разработки для OpenCV

Выбор среды разработки для OpenCV

Tsi329 » 06 июн 2012, 08:29

Не могли ли бы вы подсказать какую среду разработки лучше выбрать для написания приложения по управлению роботом?
Робот:
- роутер WR703N с прошивкой OR-WRT;
- Ethernet камера, подключенная к роутеру на борту;
- Arduino Mega с подключением к роутеру через USB. Ком-порт транслируется по сети, а я его ловлю и эмулирую на компе при помощи HW Virtual Serial Port;

Требования к программе(по важности):
- С++; (другими не владею ;) )
- поддержка OpenCV (основная цель);
- удобоваримая структура приложения и простота создания и работы с интерфейсом пользователя;
(В этом отношении меня расстроил очень VS C++ и его CLR-проекты. Вроде всё как в Borland Builder, но структура программы через _опу. Я всё заточено прежде всего для C#)
- наличие компонента для асинхронной работы с ком-портом; (опять же CLR имеет его, но всё через _опу)
- наличие компонента для работы с USB джойстиком; (желательно)

Я склоняюсь к VS C++ 2010+OpenCV+wxWidgets. Но не уверен. По шагам:
- С++; Да
- поддержка OpenCV; Да
- удобоваримая структура приложения и простота создания и работы с интерфейсом пользователя; Да.
- наличие компонента для асинхронной работы с ком-портом; Не нашел пока реализации!
- наличие компонента для работы с USB джойстиком; Есть встроенная

Хочу услышать мнения людей прошедших через это всё. Прав ли я в своем выборе или нет? Почему? Какие подводные камни?

P.S. Эх зря нет OpenCV под Builder :( Всё бы решило.

Заранее спасибо!

Re: Выбор среды разработки для OpenCV

=DeaD= » 06 июн 2012, 08:35

Есть еще QtCreator с кроссплатформенностью.

Re: Выбор среды разработки для OpenCV

noonv » 06 июн 2012, 08:44

я использую VC++ :)
работу с джойстиком можно организовать через SDL.
для работы с последовательным портом, у меня есть класс, который я использую в своём кроссплатформенном мини-фреймворке, который работает с OpenCV и затачивается именно для робо-приложений.
(недавно добавил туда класс и для получения видеопотока от MJPG-streamer)
если интересно - в ближайшее время постараюсь выложить :)

Re: Выбор среды разработки для OpenCV

elmot » 06 июн 2012, 08:47

Tsi329 писал(а):Ком-порт транслируется по сети, а я его ловлю и эмулирую на компе при помощи HW Virtual Serial Port;
Tsi329 писал(а):- наличие компонента для асинхронной работы с ком-портом; Не нашел пока реализации!

И не надо! Отменить эмуляцию порта = это абсолютно не нужный костыль! И работать напрямую через TCP сокет - поддержка асинхронной работы с сокетами должна быть в чем угодно.

Re: Выбор среды разработки для OpenCV

dccharacter » 06 июн 2012, 16:31

дададада
в Qt например ничем не отличается работа с ком-портом и с ТСП-сокетом. методы те же, формат данных тот же...

Re: Выбор среды разработки для OpenCV

Angel71 » 06 июн 2012, 17:19

"структура программы через _опу" :D так мило. а ничего, что в vs/qt/eclipse/borland... можно создавать пустой проект, добавить в него всё необходимое и создавать "структуру программы не через опу"? а если еще вспомнить, что визард тупо копирует заранее созданый проект, можно за пол часика набросать свой и пользоваться. и да, выбирать среду разработки исходя из того, что там есть/нет одного-двух простеньких класса, которые при знании языка написать совсем не сложно... круть.

Re: Выбор среды разработки для OpenCV

Tsi329 » 10 июн 2012, 18:07

=DeaD= писал(а):Есть еще QtCreator с кроссплатформенностью.

Есть. Подскажите, в чем сакраментальная разница между Qt и wxWindows. Что бы посоветовали использовать? Почему?
Кроссплатформенность не интересует.

Добавлено спустя 2 минуты 30 секунд:
noonv писал(а):я использую VC++ :)
работу с джойстиком можно организовать через SDL.

Согласен. Хорошая идея. Хотя и придется "тянуть" с собой еще одну библиотеку.
noonv писал(а):для работы с последовательным портом, у меня есть класс, который я использую в своём кроссплатформенном мини-фреймворке, который работает с OpenCV и затачивается именно для робо-приложений.
(недавно добавил туда класс и для получения видеопотока от MJPG-streamer)
если интересно - в ближайшее время постараюсь выложить :)

Очень буду обязан, если пришлешь лично или выложишь на форуме!

Добавлено спустя 2 минуты 58 секунд:
elmot писал(а):И не надо! Отменить эмуляцию порта = это абсолютно не нужный костыль! И работать напрямую через TCP сокет - поддержка асинхронной работы с сокетами должна быть в чем угодно.

Я только за! Но заново изобретать очередной велосипед не хочу. Дай plz ссылку или пришли свои наработки. Сам считаю, что виртуализировать ком-порт только для того, чтобы из него взять данные - лишние шаги. Но нужен пример реализации. Иначе игра не стоит свеч. Угадывать протокол на основе линуксовых исходников ser2net занятие очень трудоемкое. Есть наработки или готовые решения? Буду очень рад!

Добавлено спустя 1 минуту 25 секунд:
dccharacter писал(а):дададада
в Qt например ничем не отличается работа с ком-портом и с ТСП-сокетом. методы те же, формат данных тот же...

Спасибо. Сам, я так понимаю, пишешь под Win+OpenCV+Qt. Расскажи plz о своей реализации. Мне очень интересно. Заранее спасибо.

Добавлено спустя 15 минут 57 секунд:
Angel71 писал(а):"структура программы через _опу" :D так мило. а ничего, что в vs/qt/eclipse/borland... можно создавать пустой проект, добавить в него всё необходимое и создавать "структуру программы не через опу"?
а если еще вспомнить, что визард тупо копирует заранее созданый проект, можно за пол часика набросать свой и пользоваться.

В этом и вся прелесть. Надеюсь, что ты не будешь отрицать это? Если твой проект, например нацелен на работу с БД, то ты, как программист, не должен "замарачиваться" о создании диалоговых окон, о событиях отрисовки кнопок и о прочей ерунды, которую, например, навязывает MFC. Программист должен быть нацелен на работу з БД и только с ней.
Конечно, можно до хрипоты спорить, что WinAPI, например, позволяет реализовать почти всё, но какой ценой. И почему я должен позволять своим программистам в отделе разрабатывать с нуля в WinAPI то, что на Delphi набросать пара минут.
Angel71 писал(а):и да, выбирать среду разработки исходя из того, что там есть/нет одного-двух простеньких класса, которые при знании языка написать совсем не сложно... круть.

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

И вообще, я, конечно, староват уже для абсолютно новых решений, но CLR выносит мне мозг. Обрабатывать события элементов интерфейса (типа кнопок и прочей ерунды) в MainForm.h файле - header file - это сила! На такое способен только Microsoft.
Вот поэтому я говорю: "структура программы через _опу"
P.S. Еще раз повторюсь, если бы OpenCV интегрировался в Builder C++, то я бы здесь вопросы эти на задавал. Там всё есть.

Re: Выбор среды разработки для OpenCV

Angel71 » 10 июн 2012, 19:15

вы до сих пор используете mfc и накидываете примитивные интерфейсы перетаскиванием готовых компонент? :) мило. хотя дело ваше, на вкус и цвет фломастеры разные.

Re: Выбор среды разработки для OpenCV

Tsi329 » 10 июн 2012, 21:36

Angel71 писал(а):вы до сих пор используете mfc и накидываете примитивные интерфейсы перетаскиванием готовых компонент? :) мило. хотя дело ваше, на вкус и цвет фломастеры разные.

Господа, ну это уже троллинг в явном виде. Ни слова по существу! Даже наоборот - искажаются мои слова. Я в явном виде указал свою "нелюбовь" к MFC и своё "непонимание" CLR. Честно говоря, я ожидал совсем иного от человека с более четырьмя тысячами сообщений на этом форуме. :no:

Re: Выбор среды разработки для OpenCV

Angel71 » 11 июн 2012, 03:54

не многовато от других ждёте, когда при всей своей любви к билдеру вы его до сих пор не подружили с opencv? не нравиться троллинг? задумайтесь об оверквотинге и нежелании вспоминать другие гласные/негласные правила публикации тем и сообщений на форумах (сначала ищем ответы, потом задаём вопросы). :) хотя это лирика, по существу тоже можно. c++ билдер (6й, ..., xe2) прекрасно дружит с opencv. для opencv в данном случае даже не нужно создавать заголовочные или библиотечные файлы из dll`ок. и из исходников компилировать ничего тоже не нужно. максимум - это сконвертировать либ файлы или просто скачать архив со всем необходимым. :wink: давно уже всё сделано за вас и по пунктам разжевано.

Re: Выбор среды разработки для OpenCV

Grem » 11 июн 2012, 17:52

Если я не ошибаюсь - дед дружил билдер с опенцв, даже в вике статья была :pardon:
ТС холиварщик инфасто

Re: Выбор среды разработки для OpenCV

=DeaD= » 11 июн 2012, 17:54

Ну его нафиг дружить Delphi с OpenCV, вспоминаю как страшный сон :)

Re: Выбор среды разработки для OpenCV

Tsi329 » 11 июн 2012, 23:07

=DeaD= писал(а):Ну его нафиг дружить Delphi с OpenCV, вспоминаю как страшный сон :)

К сожалению абсолютно согласен.
Вот что пишет админ сайта http://www.compvision.ru/ Smorodov, мнение которого я всецело уважаю.
Билдер поддерживает Opencv не без проблем, не поддерживается C++ интерфейс.
Если проект небольшой, то можно и в билдере, для чего то побольше, и посерьезнее он не годится, сам мучаюсь, но заставляю себя все делать в студии, надо учиться.

Поэтому лучше vs2010 и/или QT, меньше будет проблем с совместимостью и в последующем сопровождении.

Re: Выбор среды разработки для OpenCV

Angel71 » 13 июн 2012, 12:05

2Tsi329, есть ряд неудобств, которые решаются различными техниками. нужны только знания и желание, а на нет и ... сами знаете.
п.с. что же будет, когда у вас не будет заголовочных файлов, исходников и документации, а будет только хорошо обфусцированная библиотека?

Re: Выбор среды разработки для OpenCV

Tsi329 » 16 июн 2012, 19:41

Вроде всё. С версией среды разработки определился: VC2010+QT+OpenCV+SDL

Всё собрал из сырцов, кроме SDL - идет в бинарниках, и успешно скомпоновал в один проект. Пока тестовый.
Спасибо, noonv, за идею считывать положение джойстика при помощи SDL. Реализовал - работает.
Спасибо, elmot, за идею работы с ser2net через сокет. Реализовал на QT - работает.
Спасибо всем, кто посоветовал выбрать QT. Шикарная библиотека. Есть почти всё. Реализовано просто замечательно. Работает на vc2010 как родная. Я просто в восторге от нее!

В настоящий момент работа на проектом только началась. Есть поддержка джойстика, работа с ser2net роутера и выводится окно OpenCV с ethernet камеры. Как только я этот тестовый проект переведу в рамки рабочего - читай перепишу с нуля, то обязательно выложу на форум.

noonv, в любом случае очень заинтересован посмотреть на твой проект. Как у тебя будет получаться, выложи, пожалуйста.


Rambler\'s Top100 Mail.ru counter