robossembler.org/docs/technologies/machine-learning-in-robotics.md

115 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: machine-learning-in-robotics
title: 'Применение машинного обучения в робототехнике'
---
## События
### Conference on Robot Learning
Крупнейшая мировая конференция по обучению роботов (в 2020 году опубликовано [160 докладов](https://corlconf.github.io/corl2020/all) и всё доступно для изучения)
[Официальный Сайт](https://sites.google.com/robot-learning.org/corl2020/home) | [Youtube](https://www.youtube.com/c/ConferenceonRobotLearning)
## Организации
### Columbia Artificial Intelligence and Robotics Lab
[Github](https://github.com/columbia-ai-robotics)
Проекты лаборатории:
#### Decentralized Multi-arm Motion Planner
Децентрализованный планировщик движений для ассамблей роботов манипуляторов. Планировщик обучен на 1-4 манипуляторах, но при этом показал свою работоспособность на произвольном количестве манипуляторов. То есть является масштабируемым.
В проекте использованы следующие python-библиотеки: PyTorch 1.6.0, pybullet, numpy, numpy-quaternion, ray, tensorboardX. Для визуализации симуляций в Blender одним из авторов была разработана библиотека [pybullet-blender-recorder](https://github.com/huy-ha/pybullet-blender-recorder). Доступны предварительно обученные модели.
[Сайт](https://multiarm.cs.columbia.edu/) | [Github](https://github.com/columbia-ai-robotics/decentralized-multiarm) | [Видео](https://www.youtube.com/watch?v=GNos793PFG4) | [Paper](https://arxiv.org/pdf/2011.02608.pdf)
#### AdaGrasp: Learning an Adaptive Gripper-Aware Grasping Policy
Разработка универсальной стратегии захвата для всех популярных моделей устройств механического захвата. Исследователи обучали модель на разных приспособлениях.
[Сайт](https://adagrasp.cs.columbia.edu/) | [Github](https://github.com/columbia-ai-robotics/adagrasp) | [Видео](https://www.youtube.com/watch?v=MUawdWnQDyQ) | [Paper](https://arxiv.org/pdf/2011.14206.pdf)
## Исследования
### Sachin Vidyasagaran'2020
[Видео-обзор](https://www.youtube.com/watch?v=ub4ZyegbTSw) исследования по основным алгоритмам обучения с подкреплением
Используемое ПО: OpenAI Gym
Исследование проводилось на базе виртуальной среды [FetchReach-v1](https://gym.openai.com/envs/FetchReach-v1/) от OpenAI. [Обзор](https://openai.com/blog/ingredients-for-robotics-research/) решений для обучения роботов от OpenAI
Результат(в случае с манипулятором): DDPG показал крайне низкую производительность - достижение приемлемого результата к 600 эпохе обучения, остальные три намного лучше
* Deep Deterministic Policy Gradient (DDPG) - 600
* HindSight Experience Replay (DDPG+HER) - 100
* Twin-Delayed DDPG (TD3+HER) - 150
* Extended Twin-Delayed DDPG (ETD3+HER) - 100
## Инструменты машинного обучения
### OpenAI Gym
Наиболее распространённая библиотека для обучения с подкреплением
https://gym.openai.com
### Gym-UnrealCV
[Github](https://github.com/zfw1226/gym-unrealcv)
Реалистичные виртуальные миры для обучения с подкреплением. [UnrealCV](https://unrealcv.org/) используется для связи Unreal Engine и Gym.
### Unity ML Agents
[Github](https://github.com/Unity-Technologies/ml-agents)
Проект для обучения агентов на Unity, интегрирована с gym. Среды мультяшные, не очень фотореалистичные.
### Gym Ignition
[Github](https://github.com/robotology/gym-ignition) | [Документация](https://robotology.github.io/gym-ignition/master/index.html) | [Пример применения (видео)](https://youtu.be/mo4ZRi0mmSQ?t=145)
Фреймворк для создания воспроизводимых виртуальных сред для обучения с подкреплением. В Gym-ignition представлена попытка создания унифицированного программного интерфейса как для реальных роботов и сред, так и для виртуальных.
Фреймворк состоит из следующих компонентов:
* ScenarI/O (Scene Interfaces for Robot Input / Output) - слой абстракции C++ для взаимодействия с виртуальными и реальными роботами. Этот слой позволяет скрыть детали реализации конкретного физического движка.
* Gazebo ScenarI/O: Реализация интерфейсов ScenarI/O для взаимодействия с симулятором Ignition Gazebo. Предоставляются python-биндинги набором функций, сопоставимым с популярными альтернативами - например, pybullet и mujoco-py.
* gym_ignition: python-пакет с набором инструментов для создания OpenAI Gym сред и обучения в них роботов. Пакет предоставляет такие абстрации как `Task` и `Runtime` для облегчения создания сред, которые могут запускаться прозрачно во всех реализациях ScenarI/O (различные симуляторы, реальные роботы, ...). Пакет также содержит функции для расчёта инверсной кинематики и динамики с несколькими физическими телами, поддерживающей плавающих роботов на основе библиотеки iDynTree.
* gym_ignition_environments: Демонстрационные среды с образцовой структурой, созданные с помощью gym_ignition и gym-ignition-models.
### MoPA-RL
[Website](https://clvrai.github.io/mopa-rl/) | [Github](https://github.com/clvrai/mopa-rl) | [Paper](https://arxiv.org/pdf/2010.11940.pdf) | [Video](https://www.youtube.com/watch?v=AEiNyY257fs)
Фреймворк сочетает преимущества обучения с подкреплением без модели (model-free RL) и планировщика движения (motion planner, MP) на основе выборки с минимальными знаниями о конкретных задачах.
Для задач, требующих касания манипулятором или его приспособлением других предметов целесообразно использовать RL-policy, а в задачах, где нужно перемещение манипулятора в сложных стеснённых условиях, используется планировщик. Ключевая роль алгоритма состоит в том, что в ходе решения задач выбирается либо планировщик движения, либо прямое выполнение политики обучения с подкреплением. Тем самым достигается высокая производительность. В симуляциях использовался движок физики Mujoco.
### AirSim
[Github](https://github.com/microsoft/AirSim)
Open source симулятор для автономных транспортных средств от Microsoft AI & Research. Интересен тем, что поддерживаются оба игровых движка для рендеринга - Unreal Engine и Unity(пока экспериментальная поддержка). Разработаны python-обёртки для OpenAI Gym и ROS.
Для поддержки URDF в AirSim [разработан](http://www.mitchellspryn.com/2019/01/19/Simulating-Arbitrary-Robots-Using-the-Unreal-Engine.html) форк - UrdfSim ([Github]](https://github.com/mitchellspryn/UrdfSim)).
### RelMoGen
[Leveraging Motion Generation in Reinforcement Learning for Mobile Manipulation](http://svl.stanford.edu/projects/relmogen/) | [Paper](https://arxiv.org/abs/2008.07792)
### Gibson Environments
[Сайт](http://gibsonenv.stanford.edu/) | [Github](https://github.com/StanfordVL/GibsonEnv)
Набор виртуальных сред (в основном жилые помещения для людей) для обучение мобильных роботов. Используется bullet и gym-подобный интерфейс для взаимодействия с агентом.