четверг, 18 октября 2012 г.

Собираем ArDrone SDK на OpenSuse 12.2

Уже скоро приедет долгожданный квадрокоптер ArDrone 2.0, и в преддверии этого события я решил посмотреть на официальный SDK для этой машинки. Наибольший интерес для меня вызывает его линуксовая часть.
Всё что касается линукса, и не только него, написано на старом добром Си с не менее старыми и добрыми мейкфайлами. Судя по приложенному гайду для разработчиков (Docs/ARDrone_Developer_Guide.pdf, если вдруг кто-то его не нашёл) разработчики SDK ориентируются на Ubuntu 10.04. С ним всё хорошо, чего я не могу сказать про свой OpenSuse.

Решение, впрочем, очень простое:
  1. Ставим дополнительные пакеты с зависимостями. А Именно: libsdl-devel, libiw-devel, libxml2-devel. Но не исключаю, что вам может понадобиться что-то ещё.

  2. Идём в файлик Examples/Linux/Navigation/Build/Makefile и ищем там строку начинающуюся с переменной GENERIC_LIBS  и дописываем в конец через пробел -lm. Таким образом мы добавляем библиотеку libm к списку библиотек линкера. Без этого маленького довеска билд не идёт, завершаясь сообщением:

    usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libiw.so: undefined reference to symbol 'floor@@GLIBC_2.2.5'
    /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: note: 'floor@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line
    /lib64/libm.so.6: could not read symbols: Invalid operation
    collect2: error: ld returned 1 exit status 

  3. После проделанных приготовлений переходим, как написано в инструкции, в Examples/Linux и зовём там make. Всё, что получилось, make складывает в Examples/Linux/Build/Release. У меня там: ardrone_navigation,  ardrone.xml,  common,  linux_sdk_demo, sym_ardrone_testing_tool, что вполне соответствует инструкции.

пятница, 12 октября 2012 г.

OpenCV4Android на MIPS архитектуре

Относительно недавно экосистему Android'a пополнили устройства на MIPS архитектуре. В месте с  появлением первых широко доступных устройств поддержка MIPS архитектуры появилась и в официальных NDK и SDK от Google. До этого инструменты для разработчика производитель развивал самостоятельно.
Но речь сейчас не об архитектуре так таковой, а о её поддержке в популярной библиотеке компьютерного зрения OpenCV. Сборка андроидной версии под MIPS была обеспечена ещё летом, но не было ни одного устройства на котором можно было бы "потрогать" полученный результат.
Недавно в руки попал девайс Novo 7 basic с SoC Ingenic JZ4770 на борту. С использованием открытого дерева Android для MIPS и системных библиотек, взятых с устройства, удалось построить плагин для нативной камеры. OpenCV чувствует себя на планшете вполне комфортно, тесты на core часть библиотеки проходят на ура. Примеры с Java камерой и нативной камерой в полном порядке. Кроме того, в OpenCV менеджер была добавлена экспериментальная поддержка этой архитектуры.
Судя по проделанной работе, официальную поддержку MIPS'a можно будет ожидать в будущих релизах библиотеки. Всем же, кому не терпится, могут попробовать библиотеку собрав её из публичного git репозитория.

воскресенье, 30 сентября 2012 г.

Intro

Доброго времени суток, всем кто читает этот блог. Это первое сообщение на блоге для проверки, а-ля "ping".

Пока здесь нет ничего полезного, но в ближайшее время здесь можно будет найти заметки на разнообразные темы касаемые Linux, Android, компьютерного зрения и робототехники. Т.е. всё то, чем я занимаюсь профессионально и в качестве хобби.