116 lines
9.4 KiB
Markdown
116 lines
9.4 KiB
Markdown
|
---
|
|||
|
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-подобный интерфейс для взаимодействия с агентом.
|