Способ управления устройствами с большим количеством управляемых элементов с помощью манипулятора "мышь"
METHOD OF CONTROLLING DEVICES WITH A LARGE NUMBER OF CONTROLLED ELEMENTS USING A "MOUSE"

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к вычислительной технике, в частности, к управлению устройствами, а точнее управлению устройствами посредством устройства ввода с использованием дополнительных средств, в том числе устройств ввода для управления курсором и передачи команд вычислительным устройствам с их обработкой и формированием управляющих команд для их исполнения управляемыми устройствами.
УРОВЕНЬ ТЕХНИКИ
Широко применяемой практикой для управления различными устройствами, например, автомобилями и их составными частями, в том числе различными механизмами, программно-аппаратными модулями и т.д., является предъявление пользователю с использованием интерфейса пользователя программного "окна" с несколькими однотипными линейными элементами управления, каждый из которых используется для управления одной из характеристик устройства (или его частью), частным случаем которых является "полоса прокрутки".
Необходимость использовать устройство ввода для перемещения указателя устройства ввода с одного упомянутого элемента управления на другой элемент управления для перехода к управлению от одной характеристики управляемого устройства к другой характеристике снижает скорость и точность, а следовательно и надежность, управления такими устройствами, поскольку для такого перемещения указателя устройства ввода пользователь должен совершить рукой, по крайней мере, одно амплитудное движение, и при этом переместить указатель устройства ввода точно в определенное место определенного программного элемента управления.
Из уровня техники известна система управления транспортным средством, включающая соответствующие способы и составные части (см. US20050004723, опубл. 06.01 2005), в котором оператор с использованием множества режимов работы, включающих различные уровни автономного управления, в интерфейсе управления выбирает между различными режимами управления и управляет транспортным средством с использованием устройства ввода, команды которого преобразуются в команды управления транспортным средством.
Недостатками такого решения является, по крайней мере, сложность переключения между режимами управления для управления различными характеристиками транспортного средства (скоростью, направлением движения и т.д.), отсутствие области управления и возможности задания и выбора формы и размеров области управления, а также отсутствие возможности сохранения параметров для предыдущего режима управления, что приводит, по крайней мере, к снижению скорости и точности управления транспортным средством и другими управляемыми устройствами.
Также из уровня техники известны способ и система для управления транспортным средством с использованием смартфона (см. US9569954, опубл. 14.02.2017), в котором описывается использованием пользователем приложения на смартфоне для управления таким управляемым устройством, как автомобиль, который оснащен радиоантенной, предназначенной для связи со смартфоном, источником электропитания, приводным двигателем сервоконтроллера и программируемым микроконтроллером (включая датчики), а также рулевым двигателем сервоконтроллера, причем приложение используется для управления автомобилем посредством программного регулятора ("ползунка").
Недостатками такого решения являются, по крайней мере, сложность переключения между режимами управления для управления различными характеристиками транспортного средства (скоростью, направлением движения и т.д.), отсутствие области управления и возможности задания и выбора формы и размеров области управления, а также отсутствие возможности сохранения параметров для предыдущего режима управления, что приводит, по крайней мере, к снижению скорости и точности управления транспортным средством и другими управляемыми устройствами.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
Технический результат, достигаемый предлагаемым изобретением, состоит в повышении точности и скорости управления устройствами, а также в обеспечении автоматизации обработки данных устройства ввода, используемого пользователем для осуществления управления устройствами.
Согласно одному из вариантов реализации, предлагается реализуемый процессором способ управления управляемым устройством, в котором: формируют область управления посредством задания формы и размеров области управления, в которой осуществляется перемещение программного указателя, контролируемое пользователем с использованием устройства ввода, причем регистрируются координаты указателя в области управления для формирования управляющих команд для управляемого устройства; задают одну из кнопок устройства ввода, при нажатии и удерживании которой осуществляется активация управления первой управляемой характеристикой управляемого устройства, соответствующего первого режиму управления управляемым устройством; задают одну из кнопок устройства ввода, отличную от заданной кнопки устройства ввода, при нажатии и удерживании которой осуществляется активация управления второй управляемой характеристикой управляемого устройства, соответствующего второму режиму управления управляемым устройством; задают массив координат местоположения указателя в области управления, в которые перемещается указатель при активации управляемой характеристикой управляемого устройства, причем в массив координат сохраняются координаты последнего местоположения указателя для соответствующего режима управления при переключении на другой режим управления; задают формулы расчета управляющих команд, содержащие координаты указателя для каждого режима управления; отображают на экране вычислительного устройства область управления; регистрируют события, формируемые устройством ввода в ответ на действия пользователя и содержащие информацию для перемещения указателя или о взаимодействии пользователя, по крайней мере, с одной кнопкой устройства ввода; при регистрации события, связанного с перемещением указателя получают координаты указателя и с использованием заданных формул формируют команду управления для управляемого устройства для одного из режимов управления в одном из известных форматов, пригодных для обработки управляемым устройством; при регистрации события, связанного с взаимодействием пользователя с одной из кнопок устройства управления сохраняют текущие координаты указателя для режима управления, с которого осуществляется переход на другой режим управления, и перемещают указатель в сохраненные ранее координаты указателя для активированного другого режима управления или в координаты указателя, заданные по умолчанию; передают команду управления в управляемое устройство, которое получает управляющую команду и исполняет такую управляющую команду для одной из независимо управляемых характеристик управляемого устройства.
В одном из частных вариантов реализации располагают начало координат в центре области управления.
В одном из частных вариантов реализации задается двухмерная или трехмерная область управления.
В одном из частных вариантов реализации при использовании двухмерной области управления система координат включает две оси координат и используется для управления по двум степеням свободы управляемого устройства.
В одном из частных вариантов реализации дополнительно задается форма области управления, причем форма области управления задается квадратной, прямоугольной или круглой при использовании двухмерной области управления или задается сферической или кубической при использовании трехмерной области управления.
В одном из частных вариантов реализации устройством ввода является манипулятор типа «мышь», джойстик, трекбол, сенсорный экран, перчатки виртуальной реальности, контроллеры для виртуальной реальности и/или устройства, использующие окулографию.
В одном из частных вариантов реализации кнопкой устройства ввода является аппаратная кнопка, связанная с управляемым устройством или являющаяся ее частью, или программная кнопка, предъявляемая пользователю с использованием устройства отображения данных.
В одном из частных вариантов реализации координатами указателя, заданными по умолчанию являются координаты центра области управления.
В одном из частных вариантов реализации события, формируемые устройством ввода и связанные с перемещением указателя, обрабатываются вычислительным устройством и преобразуются в координаты области управления.
В одном из частных вариантов реализации формулы расчета управляющих команд содержат линейную или степенную зависимость от координат.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
Дополнительные цели, признаки и преимущества настоящего технического решения будут понятны из прочтения последующего описания осуществления технического решения со ссылкой на прилагаемые чертежи, на которых:
ФИГ. 1 иллюстрирует примерный вариант системы, реализующей способ, описываемый в рамках настоящего изобретения;
ФИГ. 2 иллюстрирует пример перемещения указателя пользователем посредством манипулятора типа "Мышь" по вертикальной оси с нажатой и удерживаемой левой кнопки манипулятора типа "Мышь" (ЛКМ);
ФИГ. 3 иллюстрирует вариант, когда пользователь продолжает удерживать ЛКМ и переместил манипулятор типа "Мышь" от себя;
ФИГ. 4 иллюстрирует вариант, когда пользователь продолжает удерживать ЛКМ и переместил манипулятор типа "Мышь" вправо;
ФИГ. 5 иллюстрирует вариант, когда пользователь переключился между управляемыми элементами, для чего отпустил ЛКМ и нажал и удерживает правую клавишу манипулятора типа "Мышь" (ПКМ);
ФИГ. 6 иллюстрирует вариант, когда пользователь продолжает удерживать ПКМ и переместил манипулятор типа "Мышь" влево и к себе;
ФИГ. 7 иллюстрирует вариант, когда пользователь переключился обратно на первую группу из двух управляемых элементов для чего отпустил ПКМ и нажал и удерживает ЛКМ;
ФИГ. 8 иллюстрирует вариант, когда пользователь совершил амплитудное движение манипулятором типа "Мышь";
ФИГ. 9 иллюстрирует блок-схему примерного варианта осуществления настоящего изобретения для двумерного манипулятора типа «мышь» с двумя кнопками;
ФИГ. 10 иллюстрирует вариант, в котором ни одна клавиша манипулятора типа «Мышь» не нажата;
ФИГ. 11 иллюстрирует вариант, в котором нажата левая клавиша манипулятора типа «Мышь»;
ФИГ. 12 иллюстрирует вариант, в котором нажата правая клавиша манипулятора типа «Мышь».
ПОДРОБНОЕ ОПИСАНИЕ
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Используемые в настоящем описании изобретении термины «модуль», «компонент», «элемент», «часть», «составная часть» и подобные предназначены для обозначения компьютерных сущностей, которые могут являться аппаратным обеспечением, например, устройством или частью устройства, или программным обеспечением, например, компьютерной программой, «прошивкой» (от англ. firmware) и т.д.
На ФИГ. 1 показан примерный вариант системы, реализующей способ, описываемый в рамках настоящего изобретения.
Показанная на ФИГ. 1 система включает устройство ввода 111, с помощью которого пользователь 101 с использованием вычислительного устройства 121 осуществляет управление, по крайней мере, одним управляемым устройством 131, в частности, исполнительным устройством, например, по крайней мере, одной частью такого управляемого устройства 131, в частности, посредством изменения позиции устройства ввода типа манипулятор «мышь». Устройство ввода 111, в частности, контроллер, непрерывно, в частном случае в режиме реального времени, воспринимает действия пользователя, например, перемещение устройства ввода 111 в пространстве (например, мыши) или воспринимает местоположение пальца пользователя или цифрового пера (например, на сенсорном экране), и т.д. и передает эту информацию (данные) в вычислительное устройство 121 с целью дальнейшей обработки, как описано в рамках настоящего изобретения. Программное обеспечение (программа), исполняемая вычислительным устройством 121, в ответ на такую переданную информацию с целью визуализации действий пользователя осуществляет перемещение указателя, например, курсора, на экране средства визуализации информации, например, мониторе, связанным с вычислительным устройством или являющимся его частью. Вычислительное устройство 121, по крайней мере, принимает сигналы устройства ввода 111, а также, осуществляет отображение области управления, что более подробно описано в рамках настоящего изобретения, и визуализирует действия пользователя, осуществляемые с устройством ввода 111, а также формирует (генерирует) команды для управляемого устройства 131, которые исполняются таким управляемым устройством, например, процессором (микроконтроллером, микропроцессором и т.д.) такого управляемого устройства, в том числе, интерпретируются им с использованием программного обеспечения такого управляемого устройства. Управляемое устройство 131 получает передаваемые вычислительным устройством сформированные (управляющие) команды и исполняет такие команды, причем команды формируются и передаются в управляемое устройство в одном из известных форматов (например, цифровом), приемлемым для обработки («понимаемым») таким управляемым устройством и принимаемом на вход таким управляемым устройством.
Пользователь 101 посредством устройства ввода 111 управляет указателем на экране монитора, в частности, в пределах области управления и наблюдает действия управляемого устройства в ответ на команды, сгенерированные вычислительным устройством 121.
2
Перед управлением управляемым устройством 131 или в процессе управления управляемым устройством 131 пользователь 101 осуществляет настройку (калибровку и т.д.) описываемой системы, в частности, осуществляет настройку функции формирования управляющих команд. В процессе упомянутой настройки пользователь 101 вводит в вычислительное устройство 121 информацию и анализирует поведение указателя на экране монитора и ответную реакцию (действия) управляемого устройства 131. В процессе упомянутых наблюдения и анализа пользователь 101 задает (изменяет) соотношение координаты курсора, по крайней мере, с одним значением, соответствующим, по крайней мере, одной выполняемой функции управляемого устройства 131. Так, например, пользователь 101 может задать линейное соотношение координаты «Х» манипулятора «мышь» с углом поворота колёс автомобиля «А» как А = а*Х (угол поворота колес автомобиля (А) равен произведению координаты "Х" манипулятора «мышь» на коэффициент (а), в частности, являющийся константой), а также может задать квадратичное соотношение координаты "Y" манипулятора "мышь" со скоростью движения автомобиля «V», как V = b*Y (скорости движения автомобиля равна произведению квадрата координаты манипулятора «мышь» по оси «Y» на коэффициент (b), и далее настроить коэффициенты «a» и «b», например, в зависимости от требуемой точности управления управляемым устройством 111, или исходя из удобства управления. Так, например, в частном случае, чем меньше значение коэффициентов «a» и «b», тем выше точность поворота колес автомобиля и перемещение автомобиля. Также в процессе настройки пользователь может изменить форму и/или размеры области управления. Так, например, пользователь 101 может увеличить область управления (например, ширину, длину, высоту, диаметр и т.д.), если она слишком мала или курсор перемещается слишком быстро к краю такой области управления, или уменьшить область управления, если курсор перемещается слишком медленно к краю такой области управления. Пользователь 101 может изменять упомянутые коэффициенты и зависимости для большего или меньшего шага перемещения указателя в области управления или изменять настройки реакции управляемого устройства 131 на перемещение указателя. Также система может автоматически настраиваться, в частности, осуществлять настройку различных задаваемых, предустановленных и т.д. параметров, например, в зависимости от обратной связи управляемых устройств 131 и связанных с ними устройств, например, различных датчиков, серверов и т.д. Так, например, управляемое устройство 131 и/или  датчики такого устройства могут отправлять данные, например, регистрируемые значения в вычислительное устройство 121, в том числе при регистрации ими превышения допустимых значений, или команды в вычислительное устройство 121. Также, например, на вычислительное устройство могут быть переданы данные (информация) с серверов, например, внешних серверов, являющихся различными системами или связанными с такими системами, например, системами контроля скорости на дорогах, системами видеонаблюдения, системами отслеживания пробок, системами хранения данных о ситуациях на дорогах, воде, в небе и т.д. Такие сервера могут отправлять данные, в том числе значения, команды (включая управляющие команды) и т.д. на вычислительное устройство 121. Такие полученные данные обрабатываются вычислительным устройством 121 и вычислительным устройством 121 изменяются параметры области управления (размеры, форма и т.д.), значения коэффициентов, зависимости (в частности, формулы) и т.д., что, в частном случае, позволяет изменить параметры управления управляемыми устройствами 131, например, для повышения точности и/или скорости управления такими устройствами, ограничения или разрешения управления такими устройствами и т.д.
В настоящее время широко используются различные способы управления различными устройствами, в частности, управляемыми устройствами 131, с использованием различных устройств ввода (в частности, управляющих устройств) 111. Упомянутыми управляемыми устройствами 131 могут являться устройства с большим количеством  управляемых элементов, которые (устройства) имеют в составе несколько независимо управляемых характеристик, требующих управления пользователем (оператором) 101. Так, например, таким упомянутым управляемым устройством (с большим количеством управляемых элементов) 131 может являться автомобиль, в котором необходимо управлять скоростью поступательного движения, углом поворота колес, температурой в салоне, степенью открытия окон и т.д. Обычно для (непосредственного) управления такими упомянутыми устройствами 131 используются устройства ввода 111 различной степени специализации: от узкоспециализированных, до широко используемых типа джойстик или трекбол. Для встраивания устройства ввода 111 в IT инфраструктуру управляемых устройств 131, в частности, в программное и аппаратное окружение таких управляемых устройств 131 необходимо средство, позволяющее управлять упомянутыми устройствами 131. Так, для использования устройства ввода 111 с управляемыми устройствами в дополнение к устройству ввода 111, например, электромеханическому манипулятору, необходимо средство, позволяющее управлять упомянутыми устройствами. Такое управление может осуществляться в том числе из программной среды, например, операционной системы, «прошивки» и т.д. такого управляемого устройства 131 или вычислительного устройства 121, которое связано с таким устройством ввода 111 и/или с управляемым устройством 131 или которое содержит, по крайней мере, такое устройство ввода 111 и/или управляемое устройство 131.
Широко применяемой практикой для управления различными устройствами 131, в том числе с использованием программ (программного обеспечения, программных средств), является расположение в интерфейсном контейнере (программном "окне") программы нескольких однотипных линейных элементов управления (программных элементов управления), каждый из которых отвечает за управления одной из характеристик устройства. Так, например, таким упомянутым элементом управления может являться, по крайней мере, один элемент графического интерфейса пользователя, использующийся для отображения информации и элементов интерфейса, больших по размеру, чем используемый для их отображения контейнер, в частности, может использоваться программная (программно реализованная, реализованная с использованием программы) "полоса прокрутки". Однако описанный выше способ управления устройствами 131 с использованием упомянутых элементов управления обладает рядом недостатков, в том числе при использовании такого упомянутого способа управления пользователь 101 должен использовать устройство ввода (вычислительного устройства 121) 111, например, компьютерную «мышь», для перемещения указателя («курсора») такого устройства ввода 111 с одного упомянутого элемента управления на другой элемент управления для перехода к управлению от одной характеристики управляемого устройства 131 к другой характеристике. Для такого перемещения указателя устройства ввода 111 в пространстве (например, перемещения компьютерной «мыши» по поверхности компьютерного стола) пользователь 101 вынужден совершить рукой (или глазами, в случае использования систем айтрекинга и т.д.), по крайней мере, одно амплитудное движение, при этом переместить упомянутый указатель устройства ввода 111 точно в определенное место определенного программного элемента управления, что является, по крайней мере, достаточно сложным и, как правило, занимающим достаточно большое время, действием.
Упомянутым устройством ввода 111 могут являться указательные (координатные) устройства ввода, например, компьютерная «мышь», сенсорная панель (тачпад, от англ. touchpad: touch - касаться, pad - подушечка) и другие, а также другие устройства ввода, например, джойстик, трекбол (от англ. trackball), различного рода манипуляторы, световое перо, сенсорный экран, устройства виртуальной реальности (например, перчатки виртуальной реальности, джойстики и контроллеры для виртуальной реальности, устройства использующие окулографию (айтрекинг, от англ. eye tracking) и т.д.
Для уменьшения времени переключения между управлением различными элементами управляемых устройств (объектами) 131 или управляемыми устройствами 131, например, посредством изменения значений (величин), отвечающих за состояние управляемых устройств 131, а также для упрощения управления такими элементами, используется описываемое изобретение, в котором вместо линейной области, отвечающей за изменение одной из характеристик управляемого устройства 131, в частности, отвечающей за управление, по крайней мере, одним элементом в интерфейсной контейнере, создается область управления. Так, например, создается или выделяется область управления, например, двумерная (квадратная, прямоугольная, круглая и т.д.) или трехмерная (сферическая, кубическая и т.д.) область, в частном случае, ограниченная область, причем такая область используется для управления, по крайней мере, одним, а в частном случае, двумя элементами, в частности, являющиеся или соответствующие характеристикам (параметрам) управляемого устройства или отдельной части управляемого устройства. Область управления может занимать часть экрана или весь экран монитора, связанного с вычислительным устройством 121 (или являющегося его частью). В вычислительном устройстве 121 задаются пользователем 101 параметры области управления, например, форма и/или границы области управления, и сохраняются на устройстве хранения данных вычислительного устройства 121, причем параметры области управления используются вычислительным устройством 121 для вычисления значений и формирования управляющих команд для управляемых устройств 131, как описано в рамках настоящего изобретения. В частном случае указатель, как и область управления может не отображаться (не визуализироваться) пользователю 101 на экране монитора и являться виртуальной областью управления, причем вычислительное устройство 131 сохраняет параметры области управления, например, размеры, в том числе границы области управления. О достижении границы неотображаемой или отображаемой области управления неотображаемым (в частности, виртуальным) или отображаемым курсором или о нахождении указателя на границе области управления вычислительное устройство 121 может информировать пользователя 101, например, посредством звуковых, световых, механических (например, вибрация) оповещений. Так, например, устройство ввода 111 может быть снабжено вибродвигателем (вибромотором), с вычислительным устройством 121 и/или управляемым устройством 131 может быть связано средство светового, звукового и/или речевого оповещения пользователя 101, сообщающее пользователю 101 о том, что указатель находится на границе области управления. Также, область управления может быть визуализирована на графическом планшете. Также, в случае использования неотображаемой области управления границы области управления могут быть предъявлены пользователю, например, на одной из поверхностей, например, посредством рисунка таких границ на «коврике мыши», рисунка на столе, мониторе и т.д., а также посредством использования различного рода рамок, которые могут быть наложены на одну из упомянутых поверхностей для указания пользователю 101 границ области управления. При перемещении указателя устройства ввода (например, «курсора» манипулятора типа «мышь») 111 в определенном направлении изменяется одна изменяемая характеристика (величина) управляемого устройства 131, а при движении в другом направлении, в частности в перпендикулярном направлении, изменяется другая характеристика (величина) управляемого устройства 131. Так, пользователю 101 нет необходимости совершать дополнительных, в частности, специальных движений кистью руки для переключения с одного элемента на другой, а достаточно изменить направление движения указателя устройства ввода111. Отклик (в частности, управляющая команда, содержащая значение, формулу, команду для управляемого устройства 131 и т.д.), подаваемый на управляемое устройство 131, может быть настроен (например, пользователем 101), например, в зависимости от удаления указателя устройства ввода 111 от центральной точки или, по крайней мере, одной линии, расположенной в пределах упомянутой области управления. Так, упомянутый отклик может быть настроен линейно или в более сложной зависимости, например степенной, т.е. иметь линейную или более сложную зависимость в зависимости от удаления указателя устройства ввода 111 от центральной точки, линии и т.д. В случае использования ограниченной области управления, которая настроена таким образом, что указатель устройства ввода 111 не может ее покинуть (выйти за ее пределы), такая ограниченная область позволяет ограничивать подачу (передачу) отклика на управляемое устройство 131, например, при чрезмерно амплитудном движении кисти пользователя 101 при перемещении указателя устройства ввода 111. Таким образом, для достижения максимальных значений отклика, передаваемых на управляемое устройство 131, в частном случае, нет необходимости использовать точную мелкую моторику, а достаточно одного амплитудного движения кисти пользователя 101 в нужном направлении. Обратное изменение подаваемого отклика осуществляется сразу при обратном движении кисти пользователем 101, причем перед этим пользователю 101 не требуется возвращать указатель (точно) на границу области (управления), поскольку поведение указателя настроено таким образом, что он (указатель) автоматически остается на границе области (управления), что в частном случае, приводит, по крайней мере, к  упрощению управления устройством управления и повышению скорости управления таким устройством - управление устройством управления становится более простым и высокоскоростным. При совершении пользователем 101 действия, связанного с переключением с управления, по крайней мере, одной из характеристик управляемого устройства (отвечающей за управление, по крайней мере, одним элементом) 131, на, по крайней мере, одну другую характеристику, например, при нажатии (и, в частном случае, удерживании), по крайней мере, одной из клавиш (кнопок) компьютерной «мыши», выделенная область управления переключается на управление, по крайней мере, одной другой характеристикой, в частном случае с управления двумя элементами (например, с управления двумя степенями свободы управляемого устройства 131 на управление двумя другими степенями свободы) – на управление двумя другими элементами, т.е., в частном случае такое переключение между управлением характеристиками (и управляемыми характеристиками) происходит, в частности, осуществляется, без перемещения кисти руки пользователя 101. Упомянутым совершаемым пользователем 101 действием, связанным с переключением управления элементами или активацией управления элементами может являться нажатие пользователем 101, по крайней мере, одной клавиши (кнопки и т.д.) устройства ввода 111, выбор программного элемента, например, пункта меню, программы, исполняемой на вычислительном устройстве 121, касание пальцем или пером (стилусом) сенсорного экрана или сенсорной области (поверхности) устройства ввода 111 или экрана монитора, связанного с вычислительным устройством 121, а также может быть голосовой командой или любым другим видом (типов) команды или сигнала (например, сигнал электроэнцефалограммы электрокардиограммы, электромиограммы, пульса, любой другой активности человеческого тела, в частности, регистрируемого, по крайней мере, одним датчиком, связанным с вычислительным устройством 121 и/или устройством ввода 111, и т.д., в формате, подходящем для ввода в вычислительное устройство 121, и которую может обработать вычислительное устройство 121. Так, например, пользователь 101 может переключиться (например, нажав и удерживая клавишу компьютерной «мыши») с управления двумя степенями свободы управляемого устройства 131, например, с управления перемещением управляемого устройства 131 (например, передвижным краном) вперед-назад-вправо-влево, на управление двумя другими степенями свободы управляемого устройства 131, например, на управление вращением управляемого устройства 131 (или его части, например, стрелы крана) вправо-влево-вверх-вниз, и переключиться обратно на управление перемещением управляемого устройства 131, например, отпустив клавишу компьютерной «мыши». При повторении действия, связанного с переключением с управления, по крайней мере, одной из характеристик управляемого устройства на, по крайней мере, одну другую характеристику, например, при повторном нажатии, по крайней мере, одной из клавиш компьютерной «мыши» или при отпускании клавиши компьютерной «мыши» осуществляется возврат к управлению предыдущей, по крайней мере, одной характеристикой управляемого устройства 131. При упомянутых переключениях между элементами (парами элементов и т.д.), в частности, характеристиками управляемых устройства, положение указателя, в частности, курсора, на (в пределах) области запоминается, в частности, сохраняется, во временной или постоянной памяти вычислительного устройства и при возвращении к предыдущему элементу (паре элементов) указатель (программно) возвращается на запомненное местоположение (в сохраненные координаты), т.е. пользователю 101 не нужно совершать дополнительных действий для перемещения указателя устройства ввода 111 в нужное место (координаты).
На ФИГ. 2 – ФИГ. 8 показан вариант осуществления настоящего изобретения для двумерной области управления 222 квадратной формы (квадратного поля) с координатами от -10 до 10 по вертикальной и горизонтальной осям с использованием манипулятора «мышь» (компьютерной мыши).
В данном иллюстративном примере управляемое устройство (объект управления) имеет четыре управляемых элемента с соответствующими координатами «Коорд.1», «Коорд.2», «Коорд.3», «Коорд.4».
На ФИГ. 2 показан пример перемещения указателя 212 пользователем 101 посредством устройства ввода 111, в частности, компьютерной мыши, по вертикальной оси с зажатой (нажатой и удерживаемой) одной из клавиш компьютерной «мыши», в частности, левой кнопкой «мыши» (ЛКМ). Стоит отметить, что в данном примере удерживанием пользователем 101 ЛКМ соответствует первому режиму управления одними элементами управляемых устройств 131, в частности, двумя управляемыми элементами. Стоит отметить, что такой режим управления может осуществляться без нажатия и удерживания ЛКМ, т.е. простым перемещением компьютерной «мыши».
В показанном на ФИГ. 2 примере при нажатии пользователем 101 ЛКМ процессор вычислительного устройства 121 с использованием программного обеспечения активирует координаты «Коорд.1» и «Коорд.2», которые остаются активными до тех пор, пока пользователь 101 удерживает ЛКМ. Стоит отметить, что пользователь 101 может нажать клавишу компьютерной «мыши» для активации указанных координат, после чего отпустить ее, и указанные координаты останутся активными, при соответствующей настройке пользователем 101 вычислительного устройства 121, т.е. вычислительное устройство 121 запомнит данный режим и перейдет в другой режим (управления другими элементами), например, при повторной нажатии клавиши «мыши» или при нажатии пользователем другой «клавиши» мыши. Координаты указателя 212 непрерывно регистрируются вычислительным устройством 121 и сохраняются (запоминаются) в памяти вычислительного устройства 121, причем на основе этих координат формируются управляющие команды и передаются в управляемое устройство 131, как описано в рамках настоящего изобретения, причем управляющие команды могут содержать режим, к которому они относятся.
Так, на ФИГ. 2 показан вариант, в котором пользователь нажал ЛКМ и не перемещает «мышь», так что указатель 212 находится в центре области управления 222, и активны координаты «Коорд.1» и «Коорд.2», значения которых равны «0» и «0» соответственно.
В показанном на ФИГ. 3 варианте пользователь 101 продолжает удерживать ЛКМ, так что координаты «Коорд.1» и «Коорд.2» все еще активны, и переместил компьютерную «мышь» от себя (вперед, по вертикальной оси относительно области управления 222), так что указатель 212 переместился вверх на 5 единиц по вертикальной оси области управления 222, так что изменилась координата «Коорд.1», значение которой стало равно пяти «5». Вычислительное устройство 121 сохраняет в памяти вычислительного устройства 121 текущий режим управления, т.е. активность первых и вторых координат, для которого и будут переданы соответствующие управляющие команды на управляемое устройство 131. Таким образом, при перемещении «мыши» по вертикальной оси на 5 единиц вверх соответствующим образом меняется координата 1 (значение «Коорд.1»).
В показанном на ФИГ. 4 варианте пользователь 101 продолжает удерживать ЛКМ, так что координаты «Коорд.1» и «Коорд.2» все еще активны, и переместил компьютерную «мышь» вправо (по горизонтальной оси вправо относительно области управления 222), так что указатель 212 переместился вправо на 5 единиц по горизонтальной оси области управления 222, так что изменилась координата «Коорд.2», значение которой стало равно пяти «5». Таким образом, значение координат «Коорд.1» и «Коорд.2» стали равны пяти, т.е. «Коорд.1» = 5 и «Коорд.2» = 5. Таким образом, при перемещении «мыши» по горизонтальной оси на 5 единиц вправо соответствующим образом меняется координата 2 (значение «Коорд.2»). При этом пользователю не нужно производить никаких дополнительных действий, достаточно лишь изменить направление движения «мыши».
В показанном на ФИГ. 5 варианте пользователь 101 осуществляет, в частности, осуществил, переключение между управляемыми элементами, например, отпускает ЛКМ и нажимает и удерживает правую клавишу «мыши» (ПКМ), соответственно процессор вычислительного устройства 121 с использованием программного обеспечения активирует координаты «Коорд.3» и «Коорд.4», которые остаются активными до тех пор, пока пользователь 101 удерживает ПКМ, и деактивирует координаты «Коорд.1» и «Коорд.2». Таким образом, при переключении с ЛКМ на ПКМ соответственно меняются активные координаты: c координат «Коорд.1» и «Коорд.2» на координаты «Коорд.3» и «Коорд.4».При этом указатель (курсор "мыши") 212 автоматически переходит в текущее для координат 3 и 4 положение, в частности, в положение по умолчанию, например, «0,0» («Коорд.3» = «0», «Коорд.4» = 0) или сохраненное вычислительным устройством 121 для координат 3 и 4 («Коорд.3», «Коорд.4»). Пользователем 101 могут быть заданы начальные, по умолчанию, любые координаты, например, в зависимости от особенностей строения, состояния и т.д. управляемого устройства 131, назначения такого устройства, особенностей управления таким устройством, расположения, положения такого устройства или его отдельной управляемой части (частей) и т.д. Т.е. указатель 212 перемещается процессором вычислительного устройства 121 с использованием программного обеспечения в сохраненные ранее координаты указателя 212. Для этого, в частном случае, также не требуется никаких дополнительных действий со стороны пользователя 101, кроме переключения клавиш «мыши» с левой на правую.
В показанном на ФИГ. 6 варианте пользователь 101 продолжает удерживать ПКМ, так что координаты «Коорд.3» и «Коорд.4» все еще активны, и переместил компьютерную «мышь» наискосок, влево-вниз (по горизонтальной оси влево и вниз относительно области управления 222), так что указатель 212 переместился влево на 5 единиц по горизонтальной оси области управления 222, так что изменилась координата «Коорд.3», значение которой стало равно минус пяти «-5», и указатель 212 также переместился вниз на 5 единиц по вертикальной оси области управления 222, так что изменилась координата «Коорд.4», значение которой стало равно минус пяти «-5». Таким образом, значение координат «Коорд.3» и «Коорд.4» стали равны минус пяти, т.е. «Коорд.3» = «-5» и «Коорд.4» = «-5», т.е. значение координат стало равно (-5, -5). Таким образом, при перемещении «мыши» по горизонтальной оси на 5 единиц влево и вниз соответствующим образом меняются координата 3 (значение «Коорд.3») и координата 4 (значение «Коорд.4»). Таким образом реализуется возможность одновременного управления двумя элементами.
В показанном на ФИГ. 7 варианте пользователь 101 осуществляет обратное переключение между управляемыми элементами, в частности, переключился обратно на первую группу из двух элементов (элемент 1 и элемент 2), например, отпустил ПКМ и нажал и удерживает ЛКМ, соответственно процессор вычислительного устройства 121 с использованием программного обеспечения активирует координаты «Коорд.1» и «Коорд.2», которые остаются активными до тех пор, пока пользователь 101 удерживает ЛКМ, и деактивирует координаты «Коорд.3» и «Коорд.4». Таким образом, при переключении с ПКМ на ЛКМ соответственно меняются активные координаты: c координат «Коорд.3» и «Коорд.4» на координаты «Коорд.1» и «Коорд.2».При этом указатель (курсор "мыши") 212 автоматически переходит с текущего для координат 3 и 4 («Коорд.3», «Коорд.4») положения (-5, -5) на текущее для координат 1 и 2 положение (5,5), сохраненное вычислительным устройством 121 в памяти ранее. Таким образом, при переключении управления обратно на группу элементов 1 и 2, т.е. с ПКМ на ЛКМ, указатель 212 автоматически переходит c текущего для координат 3 и 4 положения (-5, -5) на текущее для координат 1 и 2 положение (5, 5).
В показанном на ФИГ. 8 при совершении пользователем 101 амплитудного движения устройством ввода 111, например, манипулятором «мышь», в частности, чрезмерно амплитудного движения, например, по вертикали, указатель 212 достигает верхней границы области управления и координата 1 (значение «Коорд.»1) становится равна максимально допустимому заданному значению (значению для верхней границы области управления), которое в проиллюстрированном варианте равно десяти («10»), т.е. значение «Коорд.1» = «10», так что при попытке дальнейшего перемещения указателя 212 пользователем 101 посредством устройства ввода 111, например, перемещения манипулятора «мышь» от себя (вверх, либо при наклоне джойстика от себя, либо при перемещении пальца или стилуса ((цифрового) пера) вперед (вверх по отношению к вертикальной оси области управления) и т.д., значение координаты 1 («Коорд.1») не превышает максимально заданного значения. Также, пользователь 101 может совершить чрезмерно амплитудное движение рукой для перемещения указателя 212 к левой или правой границе области управления 222 для достижения значения координаты 2 максимального значения (10 или -10 в данном частном случае).
Как было сказано выше координаты указателя 212 непрерывно регистрируются вычислительным устройством 121 и сохраняются (запоминаются) в памяти вычислительного устройства 121, причем на управляемое устройство 131 вычислительным устройством 121 передаются управляющие команды в зависимости от текущего режима (активных координат) и положения указателя 212 в области управления 222, например, команда управления, формируемая вычислительным устройством 121 может включать команду повернуть колеса автомобиля на угол равный значению второй координаты («Коорд.2»), т.е., например, «УголПоворотаКолес = Коорд.2», или повернуть колеса автомобиля на угол равный значению второй координаты («Коорд.2»), умноженной на коэффициент, равный двум, т.е., например, «УголПоворотаКолес = 2* Коорд.2», или повернуть колеса автомобиля на угол по формуле, например, угол поворота колес равен коэффициенту, равному трем, умноженному на квадрат значения второй координаты (УголПоворотаКолес = 3*«Коорд.2»^2) и т.д. Также, для первой координаты («Коорд.1», «Х»): команда управления, формируемая вычислительным устройством 121 может включать команду переместить автомобиль на расстояние, равное значению первой координаты («Коорд.1»), т.е., например, «ДвижениеВпередНазад = Коорд.1», или переместить автомобиль на расстояние, равное значению первой координаты («Коорд.1»), умноженной на коэффициент, равный двум, т.е., например, «ДвижениеВпередНазад = 2* Коорд.2», или переместить автомобиль по формуле, например, переместить автомобиль на расстояние, равное коэффициенту, равному четырем, умноженному на куб значения второй координаты (ДвижениеВпередНазад = 4*«Коорд.2»^3) и т.д. При смене пользователем 101 режима управления, например, нажатии ПКМ, команда управления, формируемая вычислительным устройством 121 может включать команду переместить стекло левой передней двери автомобиля на величину, равную значению третьей координаты («Коорд.3»), т.е., например, «ПоложениеСтеклаЛевойПереднейДвери = Коорд.3», или переместить стекло правой передней двери автомобиля на величину, равную значению четвертой координаты («Коорд.4»), т.е., например, «ПоложениеСтеклаПравойПереднейДвери = Коорд.4».
На ФИГ. 9 показана блок-схема примерного варианта осуществления изобретения для двумерного манипулятора типа «мышь» с двумя кнопками «мыши».
На этапе 909 осуществляется подготовительный этап, в котором осуществляется настройка системы, примерный вариант которой приведен на ФИГ. 1. Подготовительный этап 909 включает создание массива координат (X_пред, Y_пред), в которые перемещается указатель при нажатии соответствующей клавиши «мыши» и, в частном случае, заполняется нулями (количество точек соответствует количеству кнопок «мыши»):
«i = 0;// где i – количество кнопок «мыши», в данном примерном варианте равное двум (2)
while(i< 2 ) X_предi = 0, Y_предi = 0, i = i+1;//осуществляется заполнение массива нулями».
Пользователем задаются размеры области управления (поля), по которому может перемещаться указатель (курсор) во время управления: Xмин (минимальное значение координаты по оси Х области управления), Yмин (минимальное значение координаты по оси Yобласти управления), Xмакс (максимальное значение координаты по оси Х области управления), Yмакс (максимальное значение координаты по оси Yобласти управления). Также могут быть заданы формулы расчета команд «К» для управляемого устройства 131 в зависимости от нажатой клавиши и положения указателя и могут быть заданы коэффициенты, используемые в таких формулах. Например, пользователь 101 может выбрать линейную зависимость для всех координат Ki = Ai * X (i-тая команда «К» равна произведению коэффициента (А) на координату Х:
«Xмин = -10, Yмин = -10, Xмакс = 10, Yмакс = 10, A1 = 1.3 ,A2 = 0.3, A3 = 4.1, A4 = 1.3// минимальное значение координаты по оси Х области управления равно минус десяти, минимальное значение координаты по оси Yобласти управления равно минус десяти, максимальное значение координаты по оси Х области управления равно десяти, максимальное значение координаты по оси Yобласти управления равно десяти».
На этапе 919 вычислительное устройство 121 в совокупности с установленным на нем программным обеспечением переходит в режим приёма и обработки событий, происходящих с «мышью» (действий, осуществляемых пользователем с использованием устройством ввода 111).
На этапе 929 в вычислительное устройство 121 при появлении события устройством ввода 111 отсылается (передается), по крайней мере, тип события, номер нажатой кнопки (если нажата), текущая позиция указателя 212. После обработки каждого события вычислительное устройство 121  переходит к ожиданию следующего события:
while(true)  catch_mouse_events(event_type, button_num, mouse_pos_X, , mouse_pos_Y);// пока истинно осуществлять перехват событий мыши (тип события, номер клавиши мыши (левая или правая), позиция указателя по оси Х, позиция указателя по оси Y.
На этапе 939 осуществляется обработка вводимых пользователем 101 данных с использованием устройства ввода 101:
функцияобработкисобытиймыши catch_mouse_events(event_type, button_num, mouse_pos_X, , mouse_pos_Y).
Если не нажата ни одна из кнопок мыши (левая (1) или правая (2), то завершается обработка события:
«If NOT( button_num == 1 ) AND NOT( button_num == 2 ) return».
Действие пользователя 101: Нажатие кнопки номер N (если пользователь 101 нажал одну из кнопок «мыши» (N):
«if(event_type == button_pressed);//есликнопканажата, то
move_cursor(X_prevbutton_num, Y_prevbutton_num);// переместитьуказательвточку (Xпред [N], Yпред [N]), где «X_prevbutton_num» и « Y_prevbutton_num» - координаты X и Y указателядляпредыдущегорежима, т.е. дляпредыдущейнажатойклавишимыши.»
Действие пользователя 101: Курсор перемещен в точку (X, Y) (если пользователь 101 переместил указатель 212 в координаты Х и Y):
«if(event_type == mouse_move);// проверка – является ли событие событием перемещения указателя 212 («мыши»)».
Если указатель 212 вышел за пределы поля (области управления), заданные пользователем 101, остановить указатель 212 на границе
«if(mouse_pos_X < Xmin) mouse_pos_X = Xmin;
if(mouse_pos_Y < Ymin) mouse_pos_Y = Ymin;
if(mouse_pos_X > Xmax) mouse_pos_X = Xmax;
if(mouse_pos_Y > Ymax) mouse_pos_Y = Ymax;
move_cursor( mouse_pos_X, mouse_pos_Y) ;»
На этапе 939 вычислительным устройством 121 в зависимости от нажатой клавиши «мыши» и текущей координаты «мыши» осуществляется формирование (расчет) соответствующей команды для управляемого устройства 121, после чего на этапе 949 вычислительное устройство 121 передает сформированную управляющую команду на исполнение управляемым устройством 131 на этапе 959, в котором также осуществляется получение управляющей команды:
«if( button_num == 1 )  K1 = A1* mouse_pos_X, K2 = A2* mouse_pos_Y,   send_to_device( K1, K2);// если нажата клавиша мыши «1» (ЛКМ), то управляющая команда «К1» равна заданному пользователем коэффициенту «А1», умноженному на позицию указателя по оси Х (mouse_pos_X), а управляющая команда «К2» равна заданному пользователем коэффициенту «А2», умноженному на позицию указателя по оси Y (mouse_pos_Y)
if ( button_num == 2 )  K3 = A3* mouse_pos_X, K4 = A4* mouse_pos_Y,   send_to_device( K3, K4)»;// если нажата клавиша мыши «2» (ПКМ), то управляющая команда «К3» равна заданному пользователем коэффициенту «А3», умноженному на позицию указателя по оси Х (mouse_pos_X), а управляющая команда «К4» равна заданному пользователем коэффициенту «А4», умноженному на позицию указателя по оси Y (mouse_pos_Y)
На этапе 939 также вычислительным устройством осуществляется сохранение текущих координат (mouse_pos_X, mouse_pos_Y) на случай переключения клавиши «мыши», для последующего возвращения к ним:
«X_prevbutton_num = mouse_pos_X
Y_prevbutton_num = mouse_pos_Y».
В качестве примера управляемым устройством 131 может являться тележка с раздельным управлением скоростью вращения правых и левых колёс, например, как на танке, тракторе и т.д., направление (движения) которой показано на ФИГ. 10 – ФИГ. 12 (1010). Соответственно с помощью устройства ввода, в частности, манипулятора типа «Мышь», управляются три координаты: скорость движения вперед-назад, скорость поворота вправо-влево при движении, скорость разворота на месте.
При нажатой левой кнопки манипулятора типа «Мышь» (ФИГ. 11) при изменении координаты указателя (курсора) 212 в области управления 222 из координат курсора (X,Y) вычисляются скорости колёс V следующим образом:
Vлевых колёс = А*Хмыши + В*Yмыши;
Vправых колёс = А*Хмыши – В*Yмыши,
где А и В – коэффициенты. После этого на тележку отсылается команда типа «установить скорости Vлевых колёс и Vправых колёс».
Точка начала координат (0, 0) лежит в центре квадратной области. Например, если курсор выше горизонтальной центральной линии, то тележка едет вперёд, если курсор при этом смещается вправо, то скорость правых колёс уменьшается, а левых – увеличивается и тележка поворачивает вправо, как показано на ФИГ. 11.
При нажатии правой кнопки манипулятора типа «Мышь» (ФИГ. 12) из координат курсора (X,Y) вычисляются скорости колёс V следующим образом:
Vлевых колёс = А*arctg(Xмыши/Yмыши);
Vправых колёс = - Vлевых колёс.
Т.е. скорость колёс одинакова по величине, но имеет разный знак и пропорциональна углу между вертикальной осью и отрезком ( (0, 0), (X, Y) ), чем больше этот угол – тем быстрее разворачивается на месте тележка.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.