Friday, March 19, 2010

Движение робота с использованием одной телекамеры

Основными задачами при управлении мобильными роботами являются:
- Определение и объезд препятствий
- Определение местоположения робота и построение карты местности (SLAM)
- Построение траектории движения робота

Спрашивается, а каким минимальным набором датчиков можно обойтись, для того чтобы решить все эти задачи? И как дорого могут стоить все эти датчики?


Пока точного ответа на этот вопрос нет и трудно сказать, когда он появится. Здесь также очень многое зависит от типа поставленной задачи.

Хотелось бы отметить вот что, как известно, человек 90 % информации получает через зрение, следовательно, логично было бы делать упор именно на использовании видеокамер при управлении мобильными роботами. Но одними камерами не обойтись, и вот интересно было бы узнать, какой объем поставленных задач удалось бы решить, используя только видео зрение робота. А сколько камер лучше всего использовать: две или одну?

Человек же может управлять автомобилем, используя только один глаз, значит и робота можно заставить объезжать препятствия, используя только одну видеокамеру. Но стоит заметить одну очень важную деталь – человек для этой задачи использует свой большой объем накопленных знаний, а с роботом так сразу не получится.
Больших успехов в этой задачи добился профессор Михайлов Борис Борисович из института имени Баумана (к сожалению у меня нет реальных ссылок на его работы, но ему всегда можно написать письмо). На семинаре «Робототехника. Взгляд в будущее», организованном ЦНИИ РТК в марте 2010 года, он представил реальные результаты того, как робот объезжает препятствия, используя одну телекамеру с дополнительной специальной подсветкой. Единственное что, я бы отнес к недостаткам – представленная система очень громоздка в прямом смысле этого слова плюс вычисления требуют большого количества времени, т.е. роботу, чтобы объехать препятствие нужно определенное время простоять перед ним. Но по словам Михайлова они продолжают работать над усовершенствованием системы.

Навигацию также можно реализовать, используя только монозрение. В сети можно найти много информации на эту тему. Такие проекты как MonoSLAM показывают реальность этого подхода.

Казалось бы проще использовать стереозрение, но в этом случае до сих пор существует проблема нерешенности задачи сопоставления изображений с двух камер. Так при поиске попиксельного соответствия между двумя кадрами часто возникает ошибочное сопоставление точек, что приводит к ошибке в вычислении координат.

Конечно очень сильно облегчает решение поставленных задач мобильной робототехники использование лазерных дальномеров, но стоят они на данный момент очень дорого - 3-5 тысяч долларов. Правда стоит отметить, что в последнее время на рынке появились дальномеры размером небольших размеров, но цена их все равно высока

В данной статье мне хотелось бы представить результаты работы на тему решения задачи определения и объезда препятствий с использованием только одной телекамеры.
Данная работа проводилась совместно с Егором Исаевым, когда мы еще оба работали в ЦНИИ РТК.
Система далеко не идеальна и требует дальнейшего усовершенствования, но все же хотелось бы изложить алгоритм решения и промежуточные результаты.

Полный текст статьи можно скачать отсюда

Предлагаемый в данной работе алгоритм позволяет оценить расстояние до препятствий и направление на них по единственному нецветному кадру. Алгоритм основан на следующих допущениях:
1. Проведена предварительная калибровка камеры, и её положение относительно робота не изменяется.
2. Робот движется по плоской горизонтальной поверхности.
3. В окружающей среде нет нависающих объектов.
На основе второго предположения можно построить уравнение плоскости земли относительно камеры. Зная уравнение плоскости, можно для любой точки кадра определить координаты соответствующей ей точки реальной сцены относительно камеры, при непременном условии, что эта точка лежит в плоскости земли.



Поиск границы свободного пространства – процедура во многом эвристическая. В данном случае вводится предположение, что эта граница на изображении представлена наиболее резким перепадом яркости, образующим сплошной контур, тянущийся через весь кадр от левого края до правого. Практика показывает, что во многих случаях (хотя и не всегда) это действительно так.
Для поиска такого контура выполняется предварительная обработка кадра:

1. Производится линейная фильтрация для сглаживания высокочастотных шумов.
2. Для выделения контуров кадр с выхода линейного фильтра обрабатывается фильтром Собеля.

В результате получается новое изображение – того же размера, что и исходное, но содержащее только контуры объектов сцены.
Для поиска наиболее яркого контура вводится следующая формализация. Контурное изображение, полученное фильтром Собеля, рассматривается как взвешенный граф. Вершины графа – пиксели изображения, вес каждой вершины – яркость пикселя, взятая «в негативе», так что самым ярким участкам контуров должен соответствовать вес 0, а участкам, где контуров нет, 255.

Таким образом, необходимо найти путь минимального суммарного веса во взвешенном графе с неотрицательными весами. Это делается с помощью алгоритма Дейкстры. В качестве начальной точки контура фигурирует любой пиксель на левом краю кадра, а качестве конечной – любой пиксель на правом краю. Другими словами, ищется минимальная последовательность пикселей, для всех точек на левом краю кадра, до тех пор, пока не будет достигнут правый край кадра.

Алгоритм Дейкстры в данном случае был выбран неслучайно. Как известно, самым эффективным алгоритмом поиска кратчайшего пути является алгоритм А*, который в отличие от алгоритма Дейкстры использует эвристичекую оценку. Из-за отсутствия эвристики алгоритм Дейкстры ищет путь одновременно во все стороны и исследует намного больше точек на карте (графе). Это делает его медленнее алгоритма A*, но если нам важно достичь какой-то границы, и не важно точно, в какой точке, то в этом случае лучше использовать алгоритм Дейкстры. Дальнейшая практика показала, что для поиска пути в нашем случае так и получается.

На входе алгоритма мы имеем один кадр размером 320*240 пикселей, полученный с телекамеры. На выходе – массив с координатами точек в системе координат робота, описывающий свободное пространство перед ним.

В качестве экспериментального образца использовался робот Pioneer 3DX, созданный компанией Active Media Robots с установленной камерой на борту. Эксперимент проводился в лабораториях ЦНИИ РТК.


Ниже представлены некоторые кадры, обработанные алгоритмом: (слева исходный кадр, справа вид робота сверху и свободное пространство перед ним)


Препятствие в виде дверного проема:


Препятствие в виде бордюра тротуара:


Препятствие в виде предметов в комнате:


И еще одна картинка с комнаты:


Ниже представлено небольшое видео работы алгоритма на реальном роботе.
Заранее приношу свои извинение за не очень хорошее качество изображения. Сразу хочу заметить, что в эксперименте робот реально ехал по одной камере, все остальные датчики, а именно вторая видеокамера и ультразвуковые датчики, расположенные по всему периметру робота не используются. Тут уж как говорится, примите на веру и мое честное слово. К сожалению представлено только одно видео, так как больше по некоторым причинам не сохранилось.



Время, затраченное на обработку одного кадра и вычисления свободного пространства перед роботом в нашем случае при использовании процессора Pentium 3 с частотой 1,4 ГГц варьируется в зависимости от сложности изображения и в среднем составляет от 0.02 до 0.06 секунд.

Несмотря на то, что в реализацию алгоритма введено упрощение в виде отсутствия навесных объектов, избавиться от них в окружающей среде крайне сложно, поэтому на кадрах они присутствуют. В то же время, если количество такого рода объектов не превалирует над объектами, полностью находящимися на плоскости, то в целом результат определения свободной зоны перед роботом можно считать приемлемым.

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

Недостатком метода является то, что он плохо работает на поверхности, отличной от ровного пола. Кроме того, если на плоскости пола имеются выраженные контуры (фактура паркета, пороги, швы между плитками), то не исключена ошибка, при котором контуры будут ошибочно опознаны как препятствия. Однако такие ошибки могут быть сведены к минимуму оптимальным выбором параметров алгоритма.

Препятствия движению, встречающиеся в естественной среде (как в помещениях, так и на улице), столь бесконечно разнообразны, что создать единый алгоритм обнаружения препятствий «на все случаи жизни» невозможно. Также нецелесообразно разбивать задачу на множество частных случаев и анализировать их поочередно – этих частных случаев может оказаться очень много. Необходим разумный компромисс: разбить все возможные ситуации на две-три группы, и в процессе движения анализировать наблюдаемую обстановку параллельно с помощью двух или трех алгоритмов, реагирующих на разные особенности изображения.

В дальнейшем планируется несколько путей усовершенствований подхода, описанного в данной статье. Для того чтобы избавиться от ограничения, связанного с навесными препятствиями (например, комнатная мебель) описанный алгоритм необходимо комплексировать с другими алгоритмами, использующие другие принципы. Например, с алгоритмом, основанном на анализе оптического потока. Этот алгоритм не позволяет количественно оценивать расстояние до объектов, но позволяет только при движении робота обнаружить препятствие, оказавшееся на опасно близком расстоянии.

Read more

Thursday, March 18, 2010

Very good example of interacting between people and robots

Japan and Korea have often been the leading countries when it comes to developing robots for the elderly, mostly due to their aging populations, but a French company called Robosoft has dipped its toes in the field of elderly care as well (remember that another French company produces the Nao humanoid robot). The robot “Kompai” can interact with its owners by speaking, or it can take commands through the touch screen mounted on its torso. What‘s cool is that it can not only repeat programmed phrases, but it can recognize and understand voices as well.

Kompai is designed to work as a personal assistance robot, helping the elderly remember things like the items on their shopping list or important dates with their doctor. It also provides phone and video communication, through which its owner can contact whoever he or she wants. Besides helping older people, it can also be of great assistance to the disabled, who need help in their daily routines.

There might be those that think this is nothing special, and it’s true that this robot isn’t exactly the most advanced and capable piece of machinery the A.I field has to offer. But take a look at the video, and see just how Kompai helps an elderly person. For the most part, it seems to understand and obey commands very well, for example knowing exactly what to ask in a situation where its owner is not feeling too well. It seems to be lacking in the ability to form grammatically correct sentences, and sometimes it sounds a bit confusing, but it gets it main message across.

One of the best things about Kompai is that it is very easy to operate, and you don’t need any special training sessions to learn how to use it—you just talk and tell it what to do and where to go.

Watch Kompai in action in the video below.

Source

Read more

Monday, March 15, 2010

XV-11: Новый робот-пылесос бросает вызов Roomba?



Компания Neato Robotics разработала и создала новый робот пылесос Neato XV11, который призван перевести автоматизированную уборку пола на новый уровень.
Пока на данный момент самым известным роботом среди пылесосов является Roomba корпорации iRobot.

В XV-11 используется система RPS (Room Positioning System), в которой применяются лазерные сканеры для составления карты помещения, эта система навигации робота с большой точностью передаёт роботу уборщику особенности площади на которой планируется уборка и позволяет избежать большинство возможных препятствий.

Один из работников Neato Robotics Кэпм Пиви рассказал, что в основе работы этих двух роботов используются разные подходы.

Roomba использует подход, основанный на поглощающей архитектуре Родни Брукса.
XV-11, работает на основании более традиционного подхода с построением модели окружающей среды, используя лазерные дальномеры и SLAM. Другими словами, пока Roomba выглядит как блуждающее насекомое, XV-11 выглядит как Терминатор, использующий прямые линии и возвратно-поступательный подход.

По словам главного исполнительного директора компании Neato Robotics Макса Сафая, команда инженеров Neato, некоторые из которых являются профессиональными робототехниками, много работали и внедряли инновационные вычислительные и передовые компьютерные технологии в эту модель робота пылесоса, которая на данный момент является самой мощной и развитой на рынке роботов.



Read more