СПОСОБ УПРАВЛЕНИЯ РОБОТОМ С ПОМОЩЬЮ КОНТРОЛЛЕРОВ И ШЛЕМА ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ
ROBOT CONTROL METHOD USING VIRTUAL REALITY CONTROLLERS AND HELMET

Область техники, к которой относится изобретение
Изобретение относится к способу управления роботом, который может быть использован для антропоморфных роботов, роботов манипуляторов, медицинских, военных, а также космических роботов.
Уровень техники
Из уровня техники известен способ управления роботом (https://hi-news.ru/technology/v-mit-nauchilis-upravlyat-robotami-s-pomoshhyu-virtualnoj-realnosti.html, опубл. 06.10.2017).
Основным недостатком является, то что известный способ не имеет функцию калибровки системы координат шлема и контроллеров относительно тела пользователя, не производиться вычисление масштабного коэффициента кинематики робота по отношению к кинематике человека, в виртуальном пространстве используются дополнительные элементы управления манипуляторами робота. Для управления манипуляторами робота, в виртуальном пространстве необходимо взаимодействовать с дополнительными элементами управления, которые являются неким буфером. Так как параметры тела у разных пользователей разные, то и перемещение дополнительных элементов управления в виртуальном пространстве будет разное, что будет сказываться на перемещении манипулятора в реальном пространстве. В таком способе будет происходить эффект рассогласования, т.е. у одних пользователей на вытянутую руку манипулятор будет вытягиваться частично, у других при вытягивании руки на половину, манипулятор будет вытянут полностью. Это сказывается на скорости управления, точности управления и времени обучения.
Также данный способ не позволяет управлять всем телом робота (база, туловище, голова), а лишь его манипуляторами и системой компьютерного зрения (видеокамерами).
Заявленное изобретение устраняет указанные недостатки и позволяет достичь заявленный технический результат.
Раскрытие изобретения
Технической задачей, которую решает предлагаемое решение, является разработка способа управления роботом в режиме реального времени, повышающего эффективность работы оператора с роботом на удаленном расстоянии, обеспечивающего возникновение эффекта полного присутствия, повышенной точности и скорости управления роботом, в том числе всем его телом.
Технический результат заключается в повышении эффективности работы оператора с роботом на удаленном расстоянии в режиме реального времени, исключении эффекта рассогласования действий между пользователем и роботом, возникновении эффекта полного присутствия, повышении точности и скорости управления роботом, в том числе всем его телом.
Для решения поставленной задачи с достижением заявленного технического результата способ управления роботом с помощью контроллеров и шлема виртуальной реальности включает следующие этапы:
производят калибровку системы координат шлема и контроллеров относительно тела пользователя;
вычисляют масштабный коэффициент кинематики робота по отношению к кинематике человека;
получают текущие координаты углов Эйлера контроллеров и шлема виртуальной реальности и передают от сервера клиенту;
преобразовывают полученные координаты контроллеров и шлема виртуальной реальности в координаты робота используя ранее рассчитанный масштабный коэффициент;
рассчитывают углы сочленений робота по преобразованным координатам;
преобразовывают полученные углы Эйлера контроллеров и шлема виртуальной реальности в углы робота;
передают данные на исполнительные механизмы робота по проводному или беспроводному каналу связи.
При калибровке системы координат шлема и контроллеров относительно тела пользователя, определяют длину перемещения рук и длину перемещения тела пользователя.
При расчете углов сочленений робота по преобразованным координатам, используют метод обратной кинематики.
При преобразовании полученных углов Эйлера контроллеров и шлема виртуальной реальности в углы робота, используют матрицу вращения.
Осуществление изобретения
Для реализации способа необходимо: визуальная среда разработки (например, компьютерных игр типа Unity visual studio), шлем и контроллеры виртуальной реальности (например, типа HTC Vive), персональный компьютер поддерживающий систему виртуальной реальности, сервер - программное приложение работающее с контроллерами и шлемом виртуальной реальности, клиент - программное приложение подключаемое к серверу для приема данных от контроллеров и шлема, а также расчёта углов сочленений робота и преобразования рассчитанных данных в известный протокол для дальнейшей передачи преобразованных данных роботу, сервер робота - программное приложение принимающее преобразованные данные от клиента и передающее команды на исполнительные механизмы, а также для считывания текущих параметров исполнительных механизмов, таких как: температура, ток, напряжение, текущее положение и передача их клиенту; беспроводное или проводное интернет подключение, робот с известной кинематической схемой.
Заявленный способ включает следующие этапы:
производят калибровку системы координат шлема и контроллеров относительно тела пользователя;
вычисляют масштабный коэффициент кинематики робота по отношению к кинематике человека;
получают текущие координаты углов Эйлера контроллеров и шлема виртуальной реальности и передают от сервера клиенту;
преобразовывают полученные координаты контроллеров и шлема виртуальной реальности в координаты робота используя ранее рассчитанный масштабный коэффициент;
рассчитывают углы сочленений робота по преобразованным координатам;
преобразовывают полученные углы Эйлера контроллеров и шлема виртуальной реальности в углы робота;
передают данные на исполнительные механизмы робота по проводному или беспроводному каналу связи.
1) Калибровка шлема и контроллеров относительно тела пользователя;
На персональном компьютере с подключенной системой виртуальной реальности HTC Vive, в визуальной среде разработки Unity visual studio, производим калибровку системы координат шлема и контроллеров по отношению к пользователю. Основная цель калибровки заключается в определении параметров тела пользователя и его текущей позиции. Для решения поставленной задачи достаточно знать: длину перемещения рук пользователя из положения - руки согнуты в локтях, локти опущены вниз вдоль тела, запястья прижаты к груди, в положение - руки вытянуты перед собой, параллельно друг к другу и перпендикулярны туловищу, - руки вытянуты вверх параллельны друг другу, - руки вытянуты в стороны, перпендикулярно туловищу; длину перемещения тела из положения сидя - min в положение стоя - max; углы Эйлера контроллеров и шлема системы виртуальной реальности - голова расположена прямо, запястья рук не согнуты. Фиксация координат рук из точки min в точку max производиться путем нажатия и удержания кнопок на левом и правом контроллере системы виртуальной реальности. После того как руки будут вытянуты т.е. находится в точке max, кнопки на контроллерах отжимаются. Для фиксации координат туловища необходимо встать ровно, держа голову прямо, зажать кнопку на одном из контроллеров, после чего сесть и отпустить кнопку.
Во время выполнения данной процедуры производится считывание координат и углов Эйлера левого и правого контроллеров, а также шлема системы виртуальной реальности в визуальной среде разработки.
Считываются следующие параметры:
- начальное положение тела со шлемом в момент калибровки, в положении сидя;
- начальный поворот левой и/или правой руки с контроллерами;
- начальный поворот тела со шлемом;
- максимальная положение левой и/или правой руки с контроллерами;
- минимальное положение левой и/или правой руки с контроллерами;
- максимальное положение тела со шлемом вдоль оси OZ;
- минимальное положение тела со шлемом вдоль оси OZ.
Все данные передаются на сервер, где вычисляются параметры рук и туловища оператора, используя следующие формулы:
где
- длина перемещения левой и/или правой руки с контроллерами;
- длина перемещения тела со шлемом вдоль оси OZ.
2) Вычисление масштабного коэффициента кинематики робота по отношению к кинематике человека.
Зная кинематическую схему робота, а также вычисленные параметры тела пользователя можно посчитать масштабный коэффициент кинематики робота по отношению к кинематике человека:
где
- масштабный коэффициент для левого и/или правого манипулятора.
- длина перемещения левого и/или правого манипулятора;
- масштабный коэффициент высоты робота.
3) Получение текущих координат, углов Эйлера контроллеров и шлема виртуальной реальности и их дальнейшая передача от сервера клиенту.
После расчета масштабных коэффициентов начинается непрерывная передача следующих данных от сервера к клиенту:
, , , , , , ,
где
- текущие положение левой и/или правой руки с контроллерами;
- текущие положение тела со шлемом вдоль оси OZ;
- текущие углы Эйлера контроллеров;
- текущие углы Эйлера шлема.
4) Преобразование полученных координат системы виртуальной реальности, в координаты робота используя ранее рассчитанный масштабный коэффициент.
Для того чтобы координаты контроллеров изменялись относительно начальных координат шлема виртуальной реальности, необходимо учесть смещение этих координат:
- смещение координат шлема относительно начальной координаты в момент калибровки.
Тогда:
,
где  - координата, левого и/или правого, рабочего органа или захвата манипулятора;
- матрица смещения координат по осям OX, OY, OZ, левого и/или правого, рабочего органа или захвата манипулятора.
Координаты базы робота или туловища вдоль оси OZ получаем следующим образом:
5) Расчет углов сочленений робота по преобразованным координатам используя метод обратной кинематики. Преобразование полученных Эйлеровских углов системы виртуальной реальности, в углы робота, используя матрицу вращения.
Расчет углов сочленений робота можно произвести используя геометрический подход к решению обратной задачи кинематики. Также можно использовать любой другой известный способ для решения поставленной задачи.
При использовании геометрического подхода решение производится в два этапа:
• Сначала вычисляется вектор, направленный от плеча к запястью. Проекции этого вектора на плоскость  используются при нахождении присоединенного угла  сочленения  для первых трех сочленений.
• Использование предыдущего решения для решения последних трех сочленений, подматрицы поворота матриц  и  и проекции систем координат звеньев на плоскость .
Для различных манипуляторов с вращательными сочленениями возможны различные типы конфигурации, которые определяются по аналогии с геометрией руки человека. Типы конфигурации манипулятора устанавливаются следующим образом:
Для управления базой или туловищем, запястьем и головой робота в дополнении используется переключатель:
Значения индикаторов задаются пользователем до начала решения обратной задачи кинематики, а значения переключателей могут задаваться в процессе решения.
Для управления сочленением в области запястья манипулятора используем полученные от контроллеров углы Эйлера. Для управления сочленением в области головы робота используем углы Эйлера шлема системы виртуальной реальности. При необходимости производим вращение по углам Эйлера, тогда конечные углы сочленений в области запястья, и в области головы робота будут выражаться следующим образом:
;
.
6) Передача данных на исполнительные механизмы робота любым известным способом, по проводному или беспроводному каналу связи.
Полученные углы сочленений, углы Эйлера передаются любым известным способом на сервер робота, преобразуются в соответствующий интерфейс управления и передаются на исполнительные механизмы.
В отличии от известного решения, в предложенном способе производится калибровка системы координат шлема и контроллеров виртуальной реальности относительно тела пользователя, производиться вычисление масштабного коэффициента кинематики робота по отношению к кинематике человека, дополнительные виртуальные элементы управления исключены, все данные передаются напрямую от шлема и контроллеров виртуальной реальности. Таким образом, решается проблема эффекта рассогласования действий между пользователем и роботом. Т.е. манипулятор робота в реальном пространстве в собственной системе координат, будет перемещаться в том же соотношении, что и рука человека в своей системе координат.