Виктор Казаринов писал(а):2MEXAHuK: Я бы рассматривал ресурс как бесплатный, если бы сильно не нуждался в денежках. У меня довольно давно нет постоянной работы и я изо всех сил пытаюсь продолжать работу над ИИ. Поэтому могу работать над всем чем угодно другим, лишь бы это способствовало продолжению работ над реализацией моих идей.
Жаль, конечно Проект, о котором я писал, бесплатный, образовательный, популяризаторский. Ребята работают на энтузиазме, экспериментируют, проверяют свои идеи. О самоокупаемости пока и не мечтают. Я просто думал, что было бы интересно "поселить" вашу мегатронную сеть в какую-то визуализируемую среду, понаблюдать за развитием, поэкспериментировать...
Добрался я до механики робота. Пока успел сделать простейший тест проверки работоспособности его подвижных частей.
Схему серв с измерением потребляемого тока и положения я нарисовал, но пока сделать и испытать не удается. Сейчас мне важнее разработка пространственных ощущений робота. Начинаю заниматься его зрением. Думаю, куда камеры переставить.
Виктор, кажется ребята поймали толстого спонсора, кагбы не сам НорНик Настя мне скинула предложение участия в проекте на одном фрилансерском сайте. Я скромно отказался, но обещал, что робофорум не подкачает и специалисты по ии у нас есть! PS Ссылка на Проект Robosonic RS http://www.aigod.com почему-то не работает, выдает тестовую страничку, можете исправить или какую-нибудь другую дать?
MEXAHuK писал(а):Виктор, кажется ребята поймали толстого спонсора, кагбы не сам НорНик Настя мне скинула предложение участия в проекте на одном фрилансерском сайте. Я скромно отказался, но обещал, что робофорум не подкачает и специалисты по ии у нас есть! PS Ссылка на Проект Robosonic RS http://www.aigod.com почему-то не работает, выдает тестовую страничку, можете исправить или какую-нибудь другую дать?
К сожалению, я пока не взялся за оформление своего сайта. Подумал так, что пока что-то реально действующее не сделаю, незачем отвлекаться. Но если нужно что-то презентабельное хоть чуточку сделать - отвлекусь и постараюсь по-быстрому что-то сделать. Сейчас я в сшивке роботом трехмерного объекта из частей 3D модели на основе стереокамеры погряз. Поэтому и не пишу ничего на публику. Если у вас есть желание и возможность, можем по скайпу парой слов переброситься. Мой скайп справа под моей фотографией. Сейчас особенно толстые спонсоры в красивые картинки мало верят им подавай действующий прототип. Так что особых надежд не возлагаю. Но пробовать всегда стоит.
Про сайт - да зачем тратить время, я просто думал, что какая-то ошибка, ссылка не туда или еще чего. Я скинул вам в личку ссылку на проект. Надеюсь, что все срастется и получится
Я написал простейший секвенсор и с клавиатуры теперь могу выставлять положение захвата в нужную точку пространства. Затем записываю эти координаты в файл. И делаю то же самое для других положений роборуки. После записи можно воспроизвести движение робота по записанным контрольным точкам. Движения робота порывистые потому, что в драйвер серв не успел добавить плавности движений. Это - довольно тривиальная программная система, но без таких простых тестов мне невозможно двигаться далее.
Scorpio писал(а):Работает однако. А чем тут сильно помогает ROS, если просто воспроизводятся движения из файла?
Дело в том, что для ROS понаделано множество пакетов, которые выполняют какие-то отдельные функции. Их с помощью ROS можно довольно легко использовать в своем проекте. И можно, конечно, создавать свои программные узлы. Этим достигается значительная экономия в разработке робота.
Да я понимаю. Но в данном конкретном случае, для воспроизведения движений из файла, ROS чем то лучше, или удобне других средств? Или ее стоит применять только для более серьезных задач?
Scorpio писал(а):Да я понимаю. Но в данном конкретном случае, для воспроизведения движений из файла, ROS чем то лучше, или удобне других средств? Или ее стоит применять только для более серьезных задач?
В данном конкретном случае, как только написал свой узел(а это в целом несложно), можно пользоваться стандарными утилитами ROS для управления.
Все последнее время я работал над доработкой ROS - операционной системы роботов. Оказалось, что обработка изображений там довольно сильно отстала от жизни. Я заметил, что в основном демонстрируются экспериментальные роботы с Кинектом или чем-то похожим в качестве основного источника получения карты глубины наблюдаемого пространства. И обычное стереозрение там часто играет вспомогательную роль, особенно если учесть низкое качество получаемого результатата от стереокамер.
В ROS используется версия OpenCV 2.4.8 без аппаратного ускорения. Мои попытки добавить внешний OpenCV 3.0 не привели к успеху. Два варианта библиотек компьютерного зрения мешались друг другу по крайней мере в моей ОС. Может быть кто-то их скрестил или смог заменить на 3.0 ? Мне пришлось сделать хак ROS, заменив ее библиотеку OpenCV 2.8 на 2.9 потому, что 2.8 почему-то отсутствует в официальньм хранилище. И, конечно, в ней появилась скомпилированная либа для GPU размером 420 мб. Кроме того, SDK CUDA от Nvidia пришлось понизить от 7.5 до 6.5 для совместимости с OpenCV 2.9 После этого мои приключения не закончились. Ноды ROS, предназначенные для стереозрения, были расчитаны на специальную стереокамеру, способную аппаратно синхронизировать левый и правый кадр по времени. Иначе при движении камеры происходило бы расстройство стереораспознавателя из-за слишком больших раличиях в кадрах стереопары. Я нашел прототип нужной мне ноды, но исходники оказались устаревшими. Прилось их допиливать. Далее, нода, способная выдавать облако точек в 3D пространстве со стереокамеры, не включала в себя возможность работать с графическим ускорителем. Я ее доработал. Кроме того, она брала файл, полученный от калибровки аппаратной стереокамеры. Пришлось дорабатывать и это. и последнее, один из алгоритмов с аппаратным ускорением получения карты глубины на основе стереопары мог работать как с черно-белым, так и с цветными изображениями, что приводит к существенному улучшению кчества результата. Это также было добавлено мною. Ниже представлен результат этой части моей работы по зрительной системе робота.
Была достигнута скорость около 100 кадров в секунду для алгоритма CSBP с цветными стереопарами - довольно ресурсоемкого. Для меня это довольно хороший результат, позволяющий иметь резерв производительности системы.
Впечатляет. Чем больше читаю постов про ROS, тем больше укрепляюсь во мнении, что гемороя в ней гораздо больше, чем реальной пользы и удобства. Основной принцип "не изобретать велосипед" похоже в ROS работает не всегда. Пожалуй подожду пока она устаканится, прежде, чем начинать изучение.
Я подключил к роботу Kinect XBox One (Kinect 2). Далось это нелегко. Пришлось новенький только что купленный Кинект распоторшить. Я подпаял питающий кабель прямо к плате Кинекта и заменил кабель на обычный USB3. Потом подал питание от простого компьютерного блока питания. Для подключения к компьютеру под Линкус требуется определенный тип чипа USB3 контроллера. Не все они работают с Кинектом. Контроллер USB3 с Кинектом работает только если он установлен в разъем PCI-Ex1 V2. На моем компьютере оказался лишь один разъем такого типа и то PCI-Ex16 V2. Пришлось вытащить из него видеокарту и установить контроллер USB3, который занял только часть разъема. Видеокарту я поставил в разъем PCI старенькую, выпуска 2009 года, которая поддерживает только OpenGL 3. а для программного подключения Кинекта требовалась более свежая версия OpenGL. Пришлось поковыряться в коде драйвера, поставить множество экспериментов и, вот чудо, все заработало. Но т.к. вся нагрузка по получению и обработке огромного потока информации от Кинекта легла на процессор, то мой двухъядерный Интел на 3 ггц стал работать с полной загрузкой на оба ядра. И выдавать не 30, а только 12-18 кадров в секунду. Но и это уже неплохо, т.к. разрешайка камеры у Кинекта 1920х1080 30 кадров в секунду. И еще идет поток от инфракрасной камеры и данные о глубине пространства. Наконец-то теперь можно полноценно заняться другим фунционалом робота, основанным на зрении. Заняться Кинектом меня заставило крайне неравномерное покрытие облаками точек объектов, видимых с помощью стереокамеры. Алгоритмы, основанные на зрении, такие как навигация и др. отказывались работать от такого нестабильного источника зрительной информации. Стереозрение нужно, но его реально использовать совместно с другими источниками зрительной информации, такими как Кинект.