Разное
Robo-API Попытка описания минимального набора функций для мобильного робота
Страница: 1/2
Данный набор RoboAPI появился в результате обсуждения на форуме сайта roboclub.ru, которое инициировал ASin.
Принятые обозначения
Начало принятых обозначений
ФУНКЦИЯ
ИМЯ_ФУНКЦИИ (входной _ПАРАМЕТР_ [второй_ПАРАМЕТР]):выходной _ПАРАМЕТР_
где
_ПАРАМЕТР_ {Значение1, Значение2, ...} | {Альтернативный _набор_значений}
Описание
Описание ФУНКЦИИ, комментарии, примеры применения.
Конец принятых обозначений
СБРОС
СБРОС ():Код_ошибки
где
Код_ошибки {Ок, Ошибка} | {Ок, Код_ошибки}
где Код_ошибки {Отказ_сенсора, Разряд_батареи, Отказ_привода, ...}
Описание
Движение прекращается, сервоприводы отрабатывают на начальное положение, моторы выключаются, изменённые параметры сбрасываются на предустановленные.
СТОП
СТОП (Привод):Код_ошибки
где
Привод {Все, Правый, Левый, Рука, Нога, ...}
Код_ошибки {Ок, Ошибка} | {Ок, Код_ошибки}
где Код_ошибки {Отказ_привода, Разряд_батареи, ...}
Описание
Движение прекращается, но возврата в начальное положение не делается. Рука/Нога остаётся там, где застала команда.
БАТАРЕЯ
БАТАРЕЯ (): Код_ошибки [Код_ошибки]
где
Код_ошибки {Ок, Ошибка} | {Ок, Степень_разряда}
Описание
Контроль батареи. Возможен не замер напряжения, а подключение некоего нагрузочного элемента и замер падения напряжения.
Если батарей несколько, возвращается несколько значений.
ДВИЖЕНИЕ
ДВИЖЕНИЕ (Угол, Расстояние, Скорость):Код_ошибки,
где
- Угол {Вперёд, Назад, Вправо, Влево... } | {0...360}
- Расстояние {число}
- Скорость {малая, средняя, максимальная} | {0..100%}
- Код_ошибки {Ок, Ошибка} | {Ок, источник_ошибки + фактически_пройдено}
- где Источник_ошибки {внешний_сенсор, Датчик_двигателя, Индикатор_батареи}
Описание
Первый вариант аргументов - минимальный, второй - максимальный.
Это универсальная функция для перемещения в пространстве. Отрабатывается каждым шасси в зависимости от своих движителей. Угол задаёт направление.
Минимально шасси обязано отрабатывать "вперёд" и "назад",
среднее шасси отрабатывает 4 значения, через 90 градусов,
хорошее шасси - через 45, 30, 15 градусов.
Прецизионное шасси обязано отрабатывать, допустим, до 5 градусов. Не знаю, каковы граничные требования к точности механотроники...
Сразу определяемся с классом шасси.
Допустим, 1, 2 и 3 класс.
3-й обязан отрабатывать минимальные значения аргументов функций RoboAPI.
2-й класс - как бы промежуточный. Например, 3-й класс может иметь только 1 скорость, а вот 2-й уже как минимум 2.
1-й должен отрабатывать максимальные.
Этой функции должно хватить на все основные потребности.
Если Расстояние=0, а Угол не равен нулю то выполняется поворот на месте теми шасси, которые это могут. Колёсные шасси просто доворачивают управляемые колеса на требуемый градус.
Обратите внимание,
ДВИЖЕНИЕ(Вправо, 100, малый)
и последовательность
ДВИЖЕНИЕ (Вправо, 0, малый)
ДВИЖЕНИЕ (0, 100, малый)
приведут к разным результатам на гусеничном шасси. Первая будет выполнена по дуге с некоторым радиусом разворота, вторая - с поворотом на месте и движением по вектору. Для колёсного результаты будут отличаться не так сильно.
СОСТОЯНИЕ
СОСТОЯНИЕ (Устройство):Состояние
где
- Устройство {Бампер, Батарея, ИК, Привод, Камера, ...}
- Состояние {Ок, Код_ошибки}
- где Код_ошибки {Разряд _батареи, Активность_датчика, Отказ_привода, ...}
Описание
Предназначена для сбора данных о периферийных устройствах.
ПОДШАГ
ПОДШАГ (Нога, Замах, Ход, Направление): Код_ошибки
где
- Нога { Правая_передняя, Правая_средняя, Правая_задняя, ...}
Замах {Малый, Средний, Полный} | {0...100%}
- Ход {Малый, Средний, Полный} | {0...100%}
Направление {Вперёд, Назад, Вбок}
- Код_ошибки {Ок, Ошибка} | {Ок, Источник_ошибки}
- где Источник_ошибки {Сенсор, Отказ_привода, Разряд_Батареи, ...}
Описание
См. ниже, в описании ШАГ().
ШАГ
ШАГ ():Код_ошибки
Описание
Комбинацией команд ПОДШАГ() нужные ноги переносятся на величину требуемого шага, после чего командой ШАГ() выполняется движение.
Таким образом, никакого ограничения на тип походки нет.
Комбинация
ПОДШАГ(Правая_передняя, Средний, Средний, Вперёд)
ПОДШАГ(Левая_средняя, Средний, Средний, Вперёд)
ПОДШАГ(Правая_задняя, Средний, Средний, Вперёд)
ШАГ()
приведёт к классическому шагу тройкой ног.
Комбинация
ПОДШАГ(Правая_передняя, Полный, Малый, Вперёд)
ПОДШАГ(Правая_передняя, Полный, Средний, Вперёд)
ПОДШАГ(Правая_передняя, Полный, Полный, Вперёд)
ПОДШАГ(Правая_передняя, Полный, Полный, Назад)
приведёт к проверке поверхности впереди. При получении Ок на все команды можно смело топать дальше.
Замах зависит от состояния поверхности и характеризует высоту подъёма ноги при её перемещении.
ПОДЪЁМ
ПОДЪЁМ (Высота, Тип):Код_ошибки
где
- Высота {Малая, Средняя, Большая} | {0...100%}
Тип {Прямо, Вперёд, Назад}
- Код_ошибки {Ок, Ошибка} | {Ок, Тип_ошибки}
Описание
Задаёт подъём корпуса, определяется степенью сгиба ног при нейтральном положении. Функция ПОДШАГ() должна выдерживать эту высоту. Тип задаёт наклон корпуса при подъёме вперёд или назад.
Конец описания функций RoboAPI
P.S.
Данный набор RoboAPI не претендует на полноту и является минимальным, допуская расширение количества функций и уточнение уже описанных.
Здесь даны функции управления колёсными и шагающими мобильными роботами, а так и функции общего назначения.
Следующая страница (2/2) 
Остальные материалы раздела Разное Фильмы о роботах Умный дом Внешний вид и сознание Карта Мира Домашний робот Что есть Интеллект Робогенетика Закон и роботы Управление мыслью Правила мини-сумо
[ Назад | Начало ] |
|