Архив за месяц: Январь 2016

Установка opencv 3 python на windows, инструкция

Чтобы понять как установить opencv на windows для использования c python, проделайте следующие шаги:
1) установка python 2.7 32 бита https://www.python.org/downloads/windows/
2) Устанавливаем numpy библиотеку — http://sourceforge.net/projects/numpy/files/NumPy/1.10.2/numpy-1.10.2-win32-superpack-python2.7.exe/download
3) Теперь надо добавить файл cv2.pyd в директорию с питоном. Для этого скачиваем opencv и разархивируем, затем идем в папку opencv/build/python/2.7 и скопировать файл cv2.pyd в директорию с питоном C:/Python27/lib/site-packages
4) Теперь создадим простую тестовую программу, которая откроет изображение и отобразит его в новом окне.

import cv2

img = cv2.imread("IMG.jpg")

cv2.imshow("Image", img)
cv2.waitKey(0)

Таким образом мы проверили корректность установки. Рекомендуется использовать все 32 битное для большей совместимости.

Вызов внешней C библиотеки из PL SQL

1. Напишите и откомпилируйте файл myC.c файл (в зависимости от операционной системы команда может быть разной)
gcc -m64 myC.c — fPIC -G -o myC.so

2. Полученный бинарный файл .so (shared object) расположить в каталог, из которого Oracle мог бы его извлечь, например рядом с другими бинарными библиотеками, которые уже используются

3. Модифицировать listener.ora (возможно еще и tnsnames.ora), добавив путь до библиотеки в EXTPROC_DLLS:
(ENVS=»EXTPROC_DLLS=/path/to/myC.so:/another/lib/ll.so:…»)

4. Перезапустить listener, выполнив команды
lsnrctl stop listener
lsnrctl start listener

5. Проверить статус listener, выполнив команду lsnrctl status listener

6. Создать библиотеку PL SQL под пользователем SYS:
CREATE OR REPLACE LIBRARY MY_LIB_NAME AS ‘/path/to/myC.so’;

7. Создать PL SQL пакет для вызова процедур, функций из внешней библиотеки

CREATE OR REPLACE PACKAGE BODY DS_Package AS 
     FUNCTION DS_Findmin(data  CLOB) RETURN PLS_INTEGER IS EXTERNAL 
     NAME "c_findmin" LIBRARY MY_LIB_NAME LANGUAGE C WITH CONTEXT; 
     FUNCTION DS_Findmax(data CLOB) RETURN PLS_INTEGER IS EXTERNAL 
     NAME "c_findmax" LIBRARY MY_LIB_NAME LANGUAGE C WITH CONTEXT; 
   END;

Таким образом можно вызывать си (C) функции из PL SQL

Gazebo создание модели робота, первый шаг

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

Вы уже наверняка поставили gazebo — установка не должна вызвать проблем, на официальном сайте есть подробное руководство об установке под различные операционные системы. Здесь я устанавливал на Ubuntu. После установки и выполнения команды gazebo — должен был запуститься виртуальный мир, примерно как на изображении.

Окно интерфейса визуализации gazebo

Выбрав в меню колонку Insert — можно добавить модель из существующих. По умолчанию модели находятся в директории ~/.gazebo/models . Зайдем в эту директорию и создадим свою модель:

mkdir -p ~/.gazebo/models/my_robot

После создания директории, для хранения робота — создадим обязательный конфигурационный файл нашей модели, с помощью команды

gedit ~/.gazebo/models/my_robot/model.config

Внутрь файла копируем следующий xml контент

<?xml version="1.0"?>
<model>
<name>My Robot</name>
<version>1.0</version>
<sdf version='1.4'>model.sdf</sdf><author>
<name>My Name</name>
<email>me@my.email</email>
</author>
  <description>
    My super awesome cube robot.
  </description>
</model>

Теперь необходимо описать структуру модели. Это делается в помощью общепринятого формата SDF . создаем файл model.sdf

gedit ~/.gazebo/models/my_robot/model.sdf

И заполняем следующим содержимым

<?xml version='1.0'?>
<sdf version='1.4'>
<model name="my_robot">
<static>true</static>
<link name='chassis'>
 <pose>0 0 .1 0 0 0</pose>

 <collision name='collision'>
 <geometry>
 <box>
 <size>.2 .2 .2</size>
 </box>
 </geometry>
 </collision>

 <visual name='visual'>
 <geometry>
 <box>
 <size>.2 .2 .2</size>
 </box>
 </geometry>
 </visual>
 </link>
</model>
</sdf>

Статическая модель куба готова. Запускаем команду gazebo в терминале и из списка моделей добавляем свою модель. Любуемся результатом виртуализации gazebo!