Введение
1. Обзор литературы 15
2. Анализ и сравнение колесного, гусеничного и шагающего способов
передвижения 18
3. Разработка системы управления 24
3.1. Определение задач, решаемых системой управления 24
3.2. Аппаратное обеспечение системы управления 25
3.3. Разработка модуля локализации и построения карты 31
3.4. Разработка модуля ходьбы на основе обучения с подкреплением 40
3.5. Объединение разработанных модулей в систему навигации 53
4. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение ...57
5. Социальная ответственность 73
Заключение 84
Список публикаций 85
Список используемых источников 88
Приложения 92
В настоящее время мобильные роботы используются для выполнения множества разнообразных задач. Их список включает в себя обслуживание складских помещений, перевозку грузов, исследование и мониторинг труднодоступных или опасных зон, разведку, взятие проб. Для этих целей было создан и исследован широкий спектр конструкций роботов. Последнее десятилетие во многих областях все большее применение находят шагающие роботы. Они обладают рядом очевидных преимуществ перед своими колесными или гусеничными аналогами. Шагающие роботы могут двигаться на неровном ландшафте и проникать в труднодоступные места благодаря возможности гибкого выбора модели передвижения. Также они могут сохранять дееспособность при потере одной или нескольких конечностей, перестраивая модель передвижения на ходу (при наличии соответствующей конструкции и алгоритмов управления). В данной работе исследуется робот с шестью конечностями - гексапод, который копирует строение и передвижение паука. Такая конструкция имеет все преимущества шагающих роботов, вместе с тем обладая более высокой стабильностью, нежели, например, антропоморфные роботы с двумя конечностями для передвижения.
Основной задачей при создании робота - гексапода является разработка алгоритма для его передвижения. Правильный алгоритм должен обеспечивать сохранение стабильности походки и положения туловища робота при максимально возможной на данном ландшафте скорости. Принимая во внимание разнообразие форм, типов, рельефов, консистенций возможных поверхностей передвижения, становится очевидным, что с использованием классических методов управления невозможно учесть все возможные состояния окружающей среды для того, чтобы под каждое из них вручную подобрать соответствующий алгоритм передвижения.
Для решения подобных задач с высокой степенью неопределенности во входных данных (в данном случае, в данных о состоянии окружающей среды) широко используются методы машинного обучения. Эти модели используют
большое количество данных для настройки своих параметров (обучение модели), для того чтобы затем применить полученные “знания” на новых данных (применение модели). Методы машинного обучения доказали свою высокую эффективность для решения задач классификации и регрессии, и в настоящее время используются во многих отраслях науки и техники. Подход, при котором для обучения модели используются промаркированные данные, называется обучением с учителем. Например, в задаче классификации изображений модель обучается на множестве примеров, каждому из которых соответствует метка принадлежности к определенному классу. Подход, при котором не используются маркированные данные, называется обучением без учителя.
Глубокое обучение - ветвь машинного обучения, которая находится на гребне волны методов решения такой проблемы, как распознавание изображений. «Глубина» моделей глубокого обучения идет от группирования функций в серии нелинейных трансформаций от входа, через промежуточные преобразования, к выходу. Общая композиция представляет собой глубокую модель, состоящую из слоев, и на каждом слое происходит очередной шаг от низкоуровневых деталей к высокоуровневым концепциям. Это приводит к иерархическому представлению проблемы восприятия. В данной работе предлагается использование каскада нескольких моделей глубокого обучения, каждая из которых обрабатывает некоторую часть данных о состоянии окружающей среды и внутреннем состоянии робота. Такой тип обучения называются мультимодальным. Две свёрточных нейронных сети используются для изучения высокоуровневых признаков ландшафта из RGBD-изображений, получаемых с инфракрасного сенсора глубины. Также модель учитывает данные о текущем состоянии конечностей робота. Эффективно решая задачу понижения размерности входных данных, изучаемые признаки помогут роботу выбирать правильную модель передвижения.
Обучение с подкреплением занимает промежуточную позицию между обучением с учителем и обучением без учителя. Его принцип заключается в том, что агент (в нашем случае, робот) обучается оптимальному поведению
непосредственно от взаимодействия с окружающей средой, делая вывод о степени полезности своих действий, получая награды. В данной работе предлагается использование модели обучения с подкреплением, называемой глубоким Q-обучением. В качестве входов используются данные о состоянии окружающей среды, а также данные о состоянии каждой из конечностей робота. Выходами модели являются значения полезности каждого из возможных действий (переходов между состояниями).
Помимо решения задачи ходьбы на неровном ландшафте, для осуществления инженерной разведки робот должен обладать возможностью построения карты окружающей местности и определять своё местоположение на ней. Эта задача получила название simultaneous localization and mapping (SLAM). При разработке системы SLAM для робота — гексапода в данной работе было скомбинировано два подхода. Тип карты, которую должен построить робот, был определен как occupancy grid (сетка занятости), которая показывает, какие области доступны для перемещения, а какие заняты препятствиями. В качестве математического аппарата был использован фильтр частиц (метод Монте — Карло). В качестве сенсора был использован Microsoft Kinect - RGBD-сенсор, работающий в режиме эмуляции дорогостоящего лазерного дальномера.
Чтобы получить необходимую точность локализации, необходимо охватить как можно больше вероятных состояний робота, что ведет к увеличению числа частиц в системе. Это делает применение фильтра частиц в реальном времени очень затратным с точки зрения скорости вычислений. Необходимо отметить, что большинство шагов фильтра выполняются независимо для каждой частицы, что позволяет осуществлять параллельную обработку всех частиц.
CUDA (Compute Unified Device Architecture) - программно-аппаратная архитектура параллельных вычислений на графических процессорах (GPU) компании NVIDIA. Это одна из наиболее распространенных технологий для осуществления вычислений общего назначения на GPU.
В данной работе на архитектуру CUDA был перенесен наиболее ресурсоемкий шаг фильтра частиц - вычисление весов, который выполняется независимо для каждой частицы и пригоден для параллельного исполнения. Для повышения наглядности полученных результатов алгоритм был реализован как на многоядерном CPU, так и на устройстве с поддержкой CUDA - мобильном чипе Tegra TK1.
Результатом проведенной работы стала спроектированная аппаратная и алгоритмическая составляющие системы управления для класса шагающих мобильных роботов. В данной работе эта система была рассмотрена применительно к роботу - гексаподу. Отличительной особенностью спроектированной системы является использование метода машинного обучения, называемого глубоким обучением с подкреплением, для генерации походки шагающего робота. Данный метод позволяет роботу осуществлять походку в стиле «от сенсоров к двигателям», без жесткого программирования алгоритма походки и без учета динамики и кинематики робота. Именно благодаря этому данный метод может быть использован для всего класса шагающих роботов.
В ходе работы также были исследованы методы локализации и построения карты местности. Был сделан вывод о том, что методы на основе фильтра частиц являются наиболее эффективными в задаче локализации и построении двухмерной карты типа «сетка занятости». Были выделены основные проблемы данного метода, а именно привязанность к колесному типу роботов, высокая ресурсоёмкость и высокая стоимость аппаратной реализации, и были предложены пути решения этих проблем.
Разработанные модули интегрируются вместе с модулем поиска кратчайшего пути в единую систему навигации с помощью операционной системы Robot Operating System. Программная реализация проводилась с помощью языков Python и C++. Использовались открытые библиотеки OpenCV, OpenNI, CUDA, TensorFlow, Caffe, ROS.
1. M. Anthony Lewis, Andrew H. Fagg and George A. Bekey. Genetic algorithms for gate synthesis in hexapod a robot. Recent Trends in Mobile Robots, pp 317-331, World Scientific, New Jersey, 1994
2. Gary B. Parker, David W. Braun, Ingo Cyliax. Evolving hexapod gaits using cyclic genetic algorithm. Indiana University, 2000
3. I. Kecskes, E. Burkus, F. Bazso. Optimization of the hexapod robot walking by genetic algorithm. Intelligent Systems and Informatics (SISY), 2010 8th International Symposium, pp 121-126, IEEE, 2010.
4. Mohammadali Shahriari. Design, implementation and control of hexapod robot using reinforcement learning approach. Kish Island, Iran, 2013.
5. Hrdlicka Ivo, Kutilek Patrik. Reinforcement learning in control systems for walking hexapod robots. University of Brno, 2005.
6. Nick Vallidis. A Hexapod Robot and Novel Training Approach for Artificial Neural Networks.
7. J. Zico Kolter, Youngjun Kim, Andrew Ng. Stereo Vision and Terrain Modeling for Quadruped Robots. Proceedings of the IEEE International Conference on Robotics and Automation, 2009.
8. Mnih, Volodymyr, Kavukcuoglu, Koray, Silver, David, Rusu, Andrei A, Veness, Joel, Bellemare, Marc G, Graves, Alex, Riedmiller, Martin, Fidjeland, Andreas K, Ostrovski, Georg, et al. Human-level control through deep reinforcement learning. Nature, 518(7540):529-533, 2015.
9. Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., Silver, D., and Wierstra, D. Continuous control with deep reinforcement learning. ArXiv e-prints, September 2015.
10. Levine Sergey, Finn Chelsea, Darrell Trevor, and Abbeel Pieter. End-to-end training of deep visuomotor policies. arXivpreprint arXiv:1504.00702, 2015.
11. Krizhevsky, Alex, Sutskever, Ilya, and Hinton, Geoffrey E. Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems, pp. 1097-1105, 2012.
12. Daniel Maturana, Sebastian Scherer. VoxNet: A 3D Convolutional Neural Network for Real-Time Object Recognition. IEEE/RSJ International Conference on Intelligent Robots and Systems, September 2015.
13. Jonathan Masci, Ueli Meier, Dan Ciresan, and Jurgen Schmidhuber. Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction. Artificial Neural Networks and Machine Learning - ICANN 2011, pp 52-59.
14. Hafner, Roland and Riedmiller, Martin. Reinforcement learning in feedback control.
Machine Learning, 84(1-2):137-169, 2011. ISSN 0885-6125. doi: 10.1007/s10994-011-5235-x.
15. Hausknecht, Matthew J. and Stone, Peter. Deep recurrent q-learning for partially observable mdps. CoRR, abs/1507.06527, 2015
16. Kingma, Diederik P., Ba, Jimmy. Adam: A method for stochastic optimization. CoRR, abs/1412.6980, 2014
17. Masson, Warwick and Konidaris, George. Reinforcement learning with parameterized actions. CoRR, abs/1509.01644, 2015
18. Oh, Junhyuk, Guo, Xiaoxiao, Lee, Honglak, Lewis, Richard L., and Singh, Satinder P. Action-conditional video prediction using deep networks in atari games. CoRR, abs/1507.08750, 2015.
19. Riedmiller, Martin A. and Gabel, Thomas. On experiences in a complex and competitive gaming domain: Reinforcement learning meets robocup. In CIG, pp. 17-23. IEEE, 2007. ISBN 1-4244-0709-5.
20. Stadie, Bradly C., Levine, Sergey, and Abbeel, Pieter. Incentivizing exploration in reinforcement learning with deep predictive models. CoRR, abs/1507.00814, 2015
21. Морзеев Ю.. Технологии машинного зрения. Сделано в России. //
Компьютер - пресс. 2012. № 7. URL:
http://compress.ru/article.aspx?id=11273.
22. NVIDIA VisionWorks: [Электронный ресурс] / NVIDIA. URL: http://www.nvidia.com/object/visionworks-cv-toolkit.html, свободный. - Загл. с экрана. - Яз. англ. Дата обращения: 10.06.2014 г.
23. Alluse Y. GpuCV: A GPU - accelerated framework for image processing and computer vision [Электронный ресурс] // URL: http://www-public.int- edu.eu/~horain/Publications/ISCV08/ISCV08_Allusse.pdf
24. Ramos E. Arduino and Kinect Projects // Apress, Technology in Action, 2011, 314 p.
25. Встраиваемая платформа разработок Jetson TK1 [Электронный ресурс] / NVIDIA. URL: http://www.nvidia.ru/object/jetson-tk1-embedded-dev-kit- ru.html, свободный - Загл. с экрана. - Яз. рус. Дата обращения: 29.04.2014 г.
26. Telea A. An Image Inpainting Technique Based on the Fast Marching Method [Электронный ресурс] // Eindhoven Institute of Technology. URL: http://iwi.eldoc.ub.rug.nl/FILES/root/2004/JGraphToolsTelea/2004JGraphT oolsTelea.pdf
27. Brahmbhatt S. Practical OpenCV // Apress, Technology in action, 2012, 231
p.
28. Parker J. R. Algorithms for image processing and computer vision 2nd edition // Willey Publishing, 2011. 454 p.
29. Kinect Fusion [Электронный ресурс] / Microsoft. URL: http://msdn.microsoft.com/en-us/library/dn188670.aspx. свободный, - Загл. с экрана. - Яз. англ. Дата обращения: 25.03.2014 г.
30. Using kinfu large - scale to generate a texture mesh [Электронный ресурс]
/ PCL. URL:
http://pointclouds.org/documentation/tutorials/using kinfu large scale.php, свободный - Загл. с экрана. - Яз. англ. Дата обращения: 25.03.2014 г.
31. Сандерс Дж. Технология CUDA в примерах, введение в программирование графических процессоров // АМК, Москва, 2013, 246 с.
32. Programming guide :: CUDA Toolkit documentation [Электронный ресурс] // URL: http://docs.nvidia.com/cuda/cuda-c-programming- guide/#axzz34kxz8Yel.
33. Shreiner D. OpenGL Programming guide 8th edition // Addison - Wesley, 2013, 346 p.