Технический форум по робототехнике.
Виктор Казаринов » 18 фев 2015, 10:24
Продолжается работа над роботами класса Robosonic. Некоторое время назад была начата разработка практически полезного робота Robosonic RS A, Проще говоря, глазорукого робота. Назначение этого робота - выполнение полезной работы на ровной горизонтальной поверхности. Планируется добиться от робота зрительного обнаружения, классификации, идентификации мелких предметов, таких как болтики, гаечки, шайбы, семена, зерна и т.д. А также планируется добиться от робота манипуляции данными предметами, например, сортировка в несколько кучек или коробочек. Особенность в том, что заранее типы сортируемых предметов не будут запрограммированы или каким-либо образом внесены в память. И то, какие манипуляции будет производить с ними робот, - также не будет заранее запрограммировано. Робот должен с помощью самообучения и декларативного программирования (указания пользователем заданных целей) самостоятельно планировать свою текущую деятельность, выполняя глобальные задачи пользователя.
По результатам выполнения данных планов будет принято решение, можно ли переходить к изготовлению более практичного и надежного в эксплуатации робота, пригодного к использованию в быту и на производстве.
Вот некоторые фотографии, полученные в процессе изготовления робота Robosonic RS A:
- Вложения
-
- 0000.jpg (22.44 КиБ) Просмотров: 5328
-
- 0001.jpg (23.64 КиБ) Просмотров: 5324
-
- 0002.jpg (21.38 КиБ) Просмотров: 5326
-
- 0004.jpg (18.79 КиБ) Просмотров: 5329
-
-
-
-
-
Vladimat » 18 фев 2015, 13:40
Очень любопытная задумка, но фотки ни о чём. Ибо суть не в этом рычажке, а в алгоритмах распознавания и самообучения.
Виктор Казаринов » 18 фев 2015, 13:54
Vladimat писал(а):Очень любопытная задумка, но фотки ни о чём. Ибо суть не в этом рычажке, а в алгоритмах распознавания и самообучения.
Все верно, такого добра кругом полно. Я лишь показал на основе какой платформы делаю свой проект. Сейчас начал собирать программную часть из фрагментов своих предыдущих проектов. И делаю кое-что новое. С результатами буду знакомить по мере их получения.
Виктор Казаринов » 22 апр 2015, 20:48
Такой вид пока у робота. На вертикальных панелях по бокам робота временно размещу две камеры для стереозрения. М.б. поменяю их место позже. А пока устанавливаем бортовой компьютер и прочее. И одновременно пишу экспериментальную программу автономного поведения робота.
- Вложения
-
Виктор Казаринов » 30 апр 2015, 08:50
Вчера мне удалось дойти в разработке программы управления этим роботом до реализации возможностей создания автоматического динамического создания алгоритмов. Простым языком это означает, что программа сама теперь может строить планы своего поведения и в любой момент корректировать эти планы в процессе их выполнения. Это очень важно т.к. заранее написать всевозможные алгоритмы поведения робота в изменяющемся внешнем мире невозможно. Моя программа будет создавать планы на основе текущих сенсорных данных и накопленного в памяти прежнего опыта.
Уже имеется небольшой набор атомарных операций, способных выполняться на элементарном процессоре. Этот набор я буду расширять по мере необходимости.
Элементарным процессором я назвал специальную структуру в памяти, которая похожа на нейрон, продукционное правило или простую функцию LISP. Элементарные процессоры могут работать параллельно либо псевдопараллельно в зависимости от возможностей аппаратуры.
В процессе разработки я измеряю скорость выполнения операций такими элементарными процессорами. На данный момент при скорости выполнения машинных команд 1, 9 млрд оп/с в моем компьютере происходит выполнение 26 млн операций моих процессоров. Т.е. скорости отличаются в 73 раза. Этот показатель постепенно падает от 31 раз в самом начале до 73 раз к настоящему времени из-за наращивания функционала моей программы. Однако я добился того, что замедление работы программы в законченом виде будет зависеть первую очередь от размера потока входных данных в единицу времени.
Виктор Казаринов » 05 май 2015, 19:37
Для робота Robosonic RS сделан захват манипулятора и установлены видеокамеры. Место их размещения временное. В ходе экспериментов поищу наиболее удобное их положение относительно самой роборуки.
Виктор Казаринов » 20 май 2015, 18:56
Делаю панель управления роботом в виде отдельной программы с GUI, соединенной с роботом сетью. Разрабатываю собственный протокол. Что-то аналогичное я раньше делал. Но тут нужно учесть, что в реальных особенно полевых условиях сетевое соединение может часто обрываться. Поэтому есть вариант разработать специальный помехоустойчивый протокол основанный на кратковременных подключениях. Однако на пользовательском уровне программе будет казаться, что соединение постоянное.
Виктор Казаринов » 25 май 2015, 11:14
Сейчас я дописываю панель взаимодействия с роботом. Затем берусь за доработку сервоприводов с целью получения от них информации о действительном положении их поворотных частей и об электропотреблении сервоприводами. Это даст "мышечные чувства" роботу, на основании которых можно будет сформировать чувственное восприятие мира роботом без зрения. Вторичными параметрами таких чувств будут усталость и боль. На основе этих сенсорных и индуцированных от них простых данных можно будет попробовать создать простейшее животное-робота. Я имею ввиду лишь какой-то вид программы. Железо будет одно и то же в моих экспериментах - этот робот. И далее - при определенных настройках его характера попробую провести различные опыты типа Павлова и другие.
Вот такая пока очень предварительная панель дистанционного управления:
Scorpio » 25 май 2015, 13:09
Весьма интресная тема, но пока не очень понятная. Будем следить за развитием.
Виктор Казаринов » 27 май 2015, 07:47
Вот как в преддерии реализации я представляю себе сенсорику робота:
Для каждой сервы задаем командой ее положение. В обычных сервах команда выполняется без обратной связи. Произошел доворот в нужное положение или нет, процессору это неизвестно. В доработанной серве процессор получает по отдельному каналу фактическое положение ее поворотного узла. Как я писал выше, имеется возможность измерения еще и тока потребления серв. Он имеет максимальное значение в момент старта и небольшое значение в режиме поддержания положения. Конечно, там имеются импульсы, которые можно сгладить. но суть такова, что чем больше усилие, тем больше ток.
Мы можем заранее установить болевой порог и усталость в виде кривых, зависящих от скорости поворота, и усилия а также частоты, количества поворотов и их амплитуды. Если серва на большой скорости столкнется с препятствием, то по кривой боли легко можно получить результат. При удержании твердого предмета в захвате также можно будет по кривым усталости и боли получить их численные значения. Все значения - это лишь измеренные процессором напряжения, пропорциональные углу поворота в сенсоре угла и току потребления.
Scorpio » 27 май 2015, 21:30
Т.е. робот будт стараться избгать "боли" самостоятельно подстраивая скорость поворота?
Виктор Казаринов » 27 май 2015, 22:00
Scorpio писал(а):Т.е. робот будт стараться избгать "боли" самостоятельно подстраивая скорость поворота?
Вначале робот будет похож на простое живое существо и ему я придам некоторые безусловные рефлексы, среди которых - избегание боли и стремление к получению удовольствия. Среди прочих удовольствий будет движение сервами и получение новой сенсорной информации через аккуратные столкновения с предметами (любопытство). Поэтому он будет интенсивно двигать рукой. Но тут начнут дейстововать усталость при чрезмерном движении и боль, если будут столкновения с препятствиями. Робот будет постоянно занят поиском компромисса, т.к. даже получение удовольствия и возбуждение приводит через некоторое время к обратному эффекту - отторжению и торможению. Посмотрим, что из этого получится при натурных экспериментах.
lorry » 29 май 2015, 00:35
Мне кажется что для поставленных целей, я имею ввиду перебор и сортировка гаечек, винтиков, семян, вы подобрали не очень удачные сервы. Мы собирали манипулятор на подобных машинках. Дело в том, что точность позиционирования у них не очень высока. На их основе манипулятор сможет захватывать предметы размером не менее 30 мм. Лучшем решением будет использование цифровых серв на протоколе DYNAMIXEL.
Виктор Казаринов » 29 май 2015, 08:26
2lori: Спасибо за совет. Я сознательно взял довольно неточные сервы, зная об их невысокой точности. Первое - это то, что было под руками. Второе - это то, что данный робот - чисто для моих экспериментов и роботу я могу подсунуть предметы требуемого размера и веса, а гаечки будет сортировать уже другой, более правильный экземпляр робота. И третье. Вы наверное видели, как пожилые люди или пьяные с трясущимися руками плохонько, но могут взять предметы в руки. Это потому, что алгоритмы движения их рук отличаются от манипуляторов нынешних роботов. Тремор присутствует даже у вполне здоровых людей. Видимо, он даже помогает точной координации движений.
Еще необходимо было бы регулировать силу сервы, т.е. ток, протекающий через ее двигатель. Поищу прототипы такого регулирования в интернете.
Виктор Казаринов » 07 июн 2015, 09:18
Я создаю несовершенного робота, основанного на неполноте его знаний о мире и собственных способностей. Вначале неполнота максимальна. На основании этого предположения я делаю следующие утверждения, касательные моего робота:
Утверждение 1: За всю жизнь робот никогда не сможет получить все знания о мире.
На основании утверждения 1:
Утверждение 2: Робот никогда не будет совершенным и в любое время он может допускать ошибки.
Утверждение 3: Знания и способности робота предельно субъективны, т. к. необходимы ему только для реального выполнения им умственных или физических операций.
Утверждение 4: Робот одновременно может иметь несколько борющихся между собой комплексов целеустремленного поведения.
Теперь о субъективности.
Каждый комплекс целеустремленного поведения отражает отличную от других точку зрения на мир, т. е. отдельный экземпляр субъективности.
Комплексы могут иметь значительные различия как в количестве использующихся знаний, так и в общности этих знаний, а также в силе целеустремленности.
Вышесказанное приводит меня к выводу о том, что верхним уровнем разума робота должен быть процессор - диспетчер взаимодействия комплексов целеустремленного поведения с соответствующей логикой своей работы. Эта логика должна иметь два уровня. Первый - встроенный, тот, который должен предоставить роботу его создатель. Второй - приобретенный, основанный на получении опыта разруливания конфликтов комплексов.