1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 4

Универсальный робот Robosonic RS

Тема в разделе "Умный дом", создана пользователем Patison, 26.12.14.

  1. Medtech
    Регистрация:
    29.11.13
    Сообщения:
    1.276
    Благодарности:
    516

    Medtech

    Робототехник

    Medtech

    Робототехник

    Регистрация:
    29.11.13
    Сообщения:
    1.276
    Благодарности:
    516
    Адрес:
    Москва
    @Patison, Cпасибо, интересно, но я нахожусь на очень низком образовательном уровне программирования, потому вопросов даже не созрело. Могу только накапливать информацию.
     
  2. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Давненько я не писал здесь ничего. Но все это время ни на минуту не прекращалась моя работа над роботом.
    Основная работа идет над программным обеспечением. Но и железо нужно не забывать. Некоторое время назад установил на робота бортовой контроллер, написал программные тесты и проверил как робот может двигаться.
     
  3. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Занимаясь зрением робота, я установил, что камерам, установленным на нем, мешает сама роборука. Временно расположил стереокамеру на отдельной конструкции. Вот что пока получается: стереокамера получает карту глубины, которую потом программа преобразует в облако точек с реальными расстояниями до них от камеры. Каждую точку я окрашиваю цветом, который имеется в реальном изображении. И затем произвожу визуализацию полученной сцены, чтобы можно было и мне понаблюдать за полученным результатом. Видео я получил качественное, но Youtube при сжатии все перепортил. Но все равно кое-что видно:
     
  4. Medtech
    Регистрация:
    29.11.13
    Сообщения:
    1.276
    Благодарности:
    516

    Medtech

    Робототехник

    Medtech

    Робототехник

    Регистрация:
    29.11.13
    Сообщения:
    1.276
    Благодарности:
    516
    Адрес:
    Москва
    Очень интересно, а разрешение какое получается по шкале расстояний?
     
  5. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Я реальное разрешение не измерял пока что, т. к. позже включу камеры на более высокое разрешение. Расстояние до предметов очень небольшое, так что, думаю, моему роботу точности хватит.
     
  6. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Спасибо, я вчера уже слегка поизучал это.
     
  7. Robomow
    Регистрация:
    12.04.13
    Сообщения:
    985
    Благодарности:
    788

    Robomow

    Живу здесь

    Robomow

    Живу здесь

    Регистрация:
    12.04.13
    Сообщения:
    985
    Благодарности:
    788
    Адрес:
    Москва
    Пожалуйста, хорошо хоть кто то успел изучить:) Жалко что вы только часть моего сообщения процитировали, а то мне уже вкатили очередное предупрежление за эту ссылку и удалили пост, но уверен что кому то это интересно.
     
  8. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Вот кое-какие результаты моего использования ROS (Robot Operating System):

    Я написал простейший секвенсор и с клавиатуры теперь могу выставлять положение захвата в нужную точку пространства. Затем записываю эти координаты в файл. И делаю то же самое для других положений роборуки. После записи можно воспроизвести движение робота по записанным контрольным точкам. Движения робота порывистые потому, что в драйвер серв не успел добавить плавности движений.
    Это - довольно тривиальная программная система, но без таких простых тестов мне невозможно двигаться далее.
     
  9. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Все последнее время я работал над доработкой 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 с цветными стереопарами - довольно ресурсоемкого. Для меня это довольно хороший результат, позволяющий иметь резерв производительности системы.
     
  10. Mazur
    Регистрация:
    27.11.11
    Сообщения:
    424
    Благодарности:
    208

    Mazur

    Живу здесь

    Mazur

    Живу здесь

    Регистрация:
    27.11.11
    Сообщения:
    424
    Благодарности:
    208
    Адрес:
    поселок Терволово
    Я так и не смог поставить OpenCV на windows 8 64 бита.
     
  11. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Я подключил к роботу 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 кадров в секунду. И еще идет поток от инфракрасной камеры и данные о глубине пространства.
    Наконец-то теперь можно полноценно заняться другим фунционалом робота, основанным на зрении. Заняться Кинектом меня заставило крайне неравномерное покрытие облаками точек объектов, видимых с помощью стереокамеры. Алгоритмы, основанные на зрении, такие как навигация и др. отказывались работать от такого нестабильного источника зрительной информации. Стереозрение нужно, но его реально использовать совместно с другими источниками зрительной информации, такими как Кинект.
     
  12. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    В силу обстоятельств мне пришлось подойти к созданию моего робота немного с другой стороны. В декабре 2015 и начале января 2016 года я занимался и продолжаю заниматься аватарной технологией. Основные элементы у меня уже работают, но предстоит их соединить вместе. В результате эта подсистема должна будет состоять из двух частей.
    Первая - это робоголова с камерой. Предполагается ее поворот по трем осям с помощью сервоприводов.
    Вторая - пользовательский модуль, основной частью которого будут очки виртуальной реальности с отслеживанием положения головы человека.
    Работать это должно просто: в какую сторону пользователь повернул голову, туда должна немедленно повернуться робоголова. При этом должна обеспечиваться бесперебойная передача потокового видео с минимально возможными задержками. Робоголова может быть основной на роботе, либо дополнительной, наблюдательной, не мешающей роботу выполнять свои автономные функции.
    Вот такой макет робоголовы я начал делать сегодня вечером. 1.jpg
    На фото виден бортовой компьютер Raspberry PI 2, USB хаб, WiFi свисток для беспроводной связи. Еще я добавлю литиевую батарею и преобразователи напряжения до 5 в. Камера пока обычная USB Logitech C270. Позже планирую заменить ее на родную камеру Raspberry PI, т. к. она работает быстрее благодаря отдельной параллельной шине.
    Такая система обеспечивает потоковое видео 30 к/с в H. 264 по сети с очень маленькой нагрузкой на процессор благодаря использованию GPU.
    В качестве клиентского процессора также выбран Raspberry PI. К нему я подключил платку гироскопа-акселерометра GY-521. Правда, в ней нет компаса. Но учитывая его большую шумность, надеюсь, что смогу обойтись без него. Нужно лишь будет почаще калиброваться.
    Еще я подключил к клиентскому компьютеру 7 дюймовый экран. Макет очков я еще не начал делать, но на столе основные составные части работают.
     
    Последнее редактирование: 04.01.16
  13. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Вот результат моих трудов:
    С виду все простенько, но потребовалось много усилий, чтобы заставить все это работать. В макете желательно заменить камеру на родную Raspberry PI, т. к. через USB сейчас подключена и видеокамера и сеть. Здесь самое узкое место в макете камеры. Частично поэтому при высоком разрешении изображения не всегда передается нужное количество кадров. Есть и еще кое-что, над чем нужно потрудиться. Но это уже дело дальнейшей разработки.
    Видео озвучивает программный синтезатор речи.
     
  14. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Извиняюсь за офтоп, но пр моему это первая и единственная тема относящаяся к термину "умный".
    Такие автары смогут помогать во время пожаров и других спасательных операций, сохраняя жизни людей. Автор просто гений!
     
  15. Patison
    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496

    Patison

    Живу здесь

    Patison

    Живу здесь

    Регистрация:
    03.08.10
    Сообщения:
    411
    Благодарности:
    1.496
    Адрес:
    Омск
    Вчера мне удалось сделать стековый Soft - процессор J1 https://www.excamera.com/sphinx/fpga-j1.html внутри FPGA и запустить простую тестовую программу - при нажатии кнопки гасить светодиод на отладочной плате.
    Попытаюсь продвнуться в сторону аппаратноаго AI путем реализации в FPGA моей Мегатронной сети.