Уроки технологии
Технология Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Шасси

  1. Цель: установка процентного значения выходного сигнала для порта ШИМ; чем больше используемое значение, тем дольше порт будет поддерживать высокий уровень вывода в течение указанного периода времени. (Базовая частота для порта ШИМ составляет 50 Гц.)
  2. Тип: Блок настроек
  3. Примеры: Включение/выключение светодиода, Вращение навигационного механизма

① Включение/выключение светодиода. Это позволяет подключить светодиод к любому порту ШИМ. а затем включите или выключите светодиод.

② Вращение навигационного механизма. Это позволяет подключить внешний навигационный механизм к любому порту ШИМ и затем управлять его вращением.

Примечания:

  1. Порты ШИМ расположены на модуле управления шасси. Чтобы получить к ним доступ, снимите прозрачную крышку.

Всего имеется шесть портов ШИМ.

  1. ШИМ (широтно-импульсная модуляция) контролирует продолжительность высокого уровня выходного сигнала в течение определенного периода и широко используется для управления светодиодами, навигационными устройствами и т. д.
  2. Для светодиодов выходная мощность ШИМ находится в диапазоне от 0% до 100%, причем 0% соответствует самой низкой яркости светодиода, а 100% — самой высокой яркости.
  3. Для навигационных устройств выходная мощность ШИМ составляет от 2,5% до 12,5%. Поскольку большинство навигационных устройств имеют частоту управляющего импульса 50 Гц и период управления 20 мс, а также поскольку ширина импульса высокого уровня на выходах с регулируемым диапазоном углов от -90° до 90° находится в диапазоне от 0,5 мс до 2,5 мс, Коэффициент заполнения навигационного оборудования колеблется от 0,5/20 до 2,5/20, то есть от 2,5% до 12,5%. Вы можете установить процент выходного сигнала ШИМ навигационного устройства в зависимости от углов поворота, которыми вы хотите управлять.
API Python:

Function: chassis_ctrl.set_pwm_value(pwm_port_enum, output_percent)

Parameters:

  • pwm_port_enum(enum)
    • rm_define.pwm_all
    • rm_define.pwm1
    • rm_define.pwm2
    • rm_define.pwm3
    • rm_define.pwm4
    • rm_define.pwm5
    • rm_define.pwm6
  • output_percent(int): [0, 100]
  • Цель: включение/отключение акселератора шасси

  • Тип: блок настроек

  • Пример: управление акселератором шасси. Когда шасси движется автоматически, это позволит вам использовать джойстик для ручного вращения или перемещения шасси и увеличения. скорость его перевода.

Примечания:

  • Если блок «Включить ускоритель шасси» не добавлен, вы не сможете вручную управлять шасси во время работы программы. Добавив этот блок, вы сможете вручную управлять и ускорять движения робота.

  • Чувствительность джойстика относится к диапазону нажатия джойстика; чувствительность джойстика варьируется от -1 до 1. На изображении ниже виртуальный джойстик, показанный в интерфейсе FPV, достиг своего верхнего предела, что означает, что его значение чувствительности равно 1.

  1. Когда ускоритель шасси включен, запрограммированная скорость будет добавляется к текущей скорости. Как показано на изображении ниже, шасси перемещается с запрограммированной скоростью 0,5 м/с. Когда джойстик доведен до предела и включен ускоритель шасси, робот суммирует две скорости и перемещается вперед с общей скоростью 1,5 м/с (0,5 м/с + 1 * максимальная скорость джойстика). ).
API Python:

Function:

  • chassis_ctrl.enable_stick_overlay()
  • chassis_ctrl.disable_stick_overlay()
  • Цель: в режиме опережения подвеса поддерживать определенный угол шасси относительно движения подвеса

  • Тип: блок настроек

  • Пример: режим опережения подвеса Угол между шасси и движением подвеса сначала увеличится, а затем упадет до нуля.

Примечания:

  • Этот блок не будет работать ни в ведущем режиме шасси, ни в свободном режиме.

  • Угол нулевого градуса между шасси и движением подвеса означает, что шасси и подвес вращаются в одном направлении вдоль оси отклонения от курса.

API Python:

Function: chassis_ctrl.set_follow_gimbal_offset(degree)

Parameters:

  • degree(int): [-180, 180]°
  • Цель: установить скорость перемещения шасси по умолчанию на 0,5 м/с; шасси будет двигаться быстрее, если установлено более высокое значение скорости.

  • Тип: Блок настроек

  • Пример: Уменьшить скорость заднего хода. Это позволит шасси перемещаться вперед со скоростью 1 м/с в течение 1,5 секунды, затем перемещаться назад со скоростью 0,5 м/с в течение трех секунд, чтобы вернуться в исходную точку.

Примечание. Прежде чем настраивать высокую скорость перемещения шасси, убедитесь, что на предполагаемом пути робота нет препятствий.

API Python:

Function: chassis_ctrl.set_trans_speed(speed)

Parameters:

  • speed(float): [0, 3.5] m/s
  • Цель: установить скорость вращения шасси по умолчанию на 30°/с; шасси будет вращаться быстрее, если установлено более высокое значение скорости вращения.

  • Тип: Блок настроек

  • Пример: Установка предупреждения об ускорении. При изменении цвета предупреждающего светодиода вращение шасси будет ускоряться.

API Python:

Function: chassis_ctrl.set_rotate_speed(speed)

Parameters:

  • speed(int): [0, 600]°/s
  • Цель: позволяет независимо устанавливать скорость вращения каждого колеса; будут действовать только допустимые комбинации направления вращения и скорости.

  • Тип: Блок выполнения

  • Примеры: Реверс по схеме «S», Перемещение по кругу ① Реверс по схеме «S» Это позволит шасси двигаться назад по S-образной траектории.

② Перемещение по кругу. Это позволит роботу перемещаться по круговой траектории.

Примечания:

  • Робот будет перемещаться вперед со скоростью вращения по умолчанию: 100 об/мин для переднего левого колеса, 100 об/мин для переднего правого колеса, 100 об/мин для заднего левого колеса и 100 об/мин для заднего правого колеса. колесо.

  • Чтобы определить допустимую комбинацию направлений и скоростей вращения колес, вручную подтолкните робота, чтобы переместить его по желаемой схеме, и наблюдайте за направлением вращения каждого колеса; Значение скорости вращения должно быть положительным для колес, вращающихся вперед, и отрицательным для колес, вращающихся назад. Например: когда робот перемещается вправо, переднее левое колесо и заднее правое колесо будут вращаться вперед, поэтому значения их скорости вращения должны быть положительными, в то время как переднее правое колесо и заднее левое колесо будут вращаться назад. поэтому их значения скорости вращения должны быть отрицательными.

Когда робот перемещается назад и влево, переднее левое колесо и заднее правое колесо будут вращаться назад, поэтому значения их скорости вращения должны быть отрицательными, в то время как переднее правое колесо и заднее левое колесо останутся неподвижными. поэтому их значения скорости вращения должны быть равны нулю.

Когда робот вращается влево, переднее правое колесо и заднее правое колесо будут вращаться вперед, поэтому значения скорости их вращения должны быть положительными, в то время как переднее левое колесо и заднее левое колесо будут вращаться назад, поэтому их значения скорости вращения должны быть положительными. Значения скорости вращения должны быть отрицательными.

API Python:

Function: chassis_ctrl.set_wheel_speed(lf_speed, rf_speed, lr_speed, rr_speed)

Parameters:

  • lf_speed(int): [-1000, 1000] rpm
  • rf_speed(int): [-1000, 1000] rpm
  • lr_speed(int): [-1000, 1000] rpm
  • rr_speed(int): [-1000, 1000] rpm
  • Цель: настроить шасси на перемещение в заданном направлении
  • Тип: Блок выполнения
  • Пример: совершить круговой обход

Это позволит S1 перемещаться вперед в течение одной секунды, затем развернуться и вернуться в исходное положение.

Примечание. Этот блок будет управлять шасси для непрерывного перемещения в заданном направлении до тех пор, пока робот не получит команду «установить шасси на остановку движения», «подождать - с» или другую команду, которая укажет ему на остановку.

API Python:

Function: chassis_ctrl.move(degree)

Parameters:

  • degree (int): [-180, 180]°
  • Цель: установка продолжительности времени, в течение которого шасси будет перемещаться в указанном направлении.

  • Тип: блок выполнения

  • Пример: перемещение по X-образному шаблону. Это позволит роботу перемещаться вправо, вперед-влево. , вправо и назад-влево в X-образной последовательности.

API Python:

Function: chassis_ctrl.move_with_time(degree, time)

Parameters:

  • degree(int): [-180, 180]°
  • time(float): [0, 20] s
  • Цель: Устанавливает расстояние, на которое шасси будет перемещаться в заданном направлении.

  • Тип: Блок выполнения

  • Пример: Перемещение по перекрестному шаблону. Это позволит роботу перемещаться вперед, назад, влево и вправо в крестообразная последовательность.

API Python:

Function: chassis_ctrl.move_with_distance(degree, distance)

Parameters:

  • degree(int): [-180, 180]°
  • distance(float): [0, 5] m
  • Цель: настройка перемещения шасси в заданном направлении и с заданной скоростью

  • Тип: блок выполнения

  • Пример: возврат в исходное положение. Это позволяет шасси перемещаться вперед и вправо на 1 м/ с, затем переместите назад и влево со скоростью 0,5 м/с, чтобы вернуться в исходное положение.

API Python:

Function: chassis_ctrl.move_degree_with_speed(speed, degree)

Parameters:

  • speed(float): [0, 3.5] m/s
  • degree(int): [-180, 180]°
  • Цель: установка шасси на вращение в заданном направлении

  • Тип: блок выполнения

  • Пример: вращение с переменной скоростью. Это позволит шасси все быстрее вращаться вправо.

Примечание.

  • Этот блок недоступен в режиме управления подвесом.
  • Прежде чем устанавливать высокую скорость вращения шасси, убедитесь, что вокруг робота нет препятствий.
  1. Этот блок заставит шасси постоянно вращаться в заданном направлении до тех пор, пока оно не получит команду «установить шасси на остановку движения», «подождите - с» или другую команду, которая заставит его остановиться.
API Python:

Function: chassis_ctrl.rotate(direction_enum)

Parameters:

  • direction_enum(enum):
    • rm_define.clockwise
    • rm_define.anticlockwise
  • Цель: установка продолжительности вращения шасси в заданном направлении

  • Тип: блок выполнения

  • Пример: перекрестное вращение подвеса и шасси.

Примечание. Этот блок недоступен в режиме опережения подвеса.

API Python:

Function: chassis_ctrl.rotate_with_time(direction_enum, time)

Parameters:

  • direction_enum(enum):
    • rm_define.clockwise
    • rm_define.anticlockwise
  • time(float): [0, 20] s
  • Цель: установка угла и направления поворота шасси

  • Тип: исполнительный блок

  • Пример: непрерывное перемещение вперед и назад. Это позволяет настроить S1 на непрерывное перемещение вперед и назад с направлением подвеса наружу.

Примечание. Этот блок недоступен в режиме управления подвесом.

API Python:

Function: chassis_ctrl.rotate_with_degree(direction_enum, degree) Parameters:

  • direction_enum(enum):
  • rm_define.clockwise
  • rm_define.anticlockwise
  • degree(int): [0, 1800]°
  • Цель: заставить шасси двигаться в заданном направлении при одновременном вращении

  • Тип: блок выполнения

  • Пример: перемещение по схеме восьмерки. Это позволяет роботу перемещаться по схеме восьмерки.

Примечание. Блок «Вращение шасси» недоступен в режиме управления подвесом; однако блок «настроить перемещение шасси» поддерживается в режиме Gimbal Lead.

API Python:

Function: chassis_ctrl.move_and_rotate(degree, direction_enum)

Parameters:

  • degree(int): [-180, 180]°
  • direction_enum(enum):
    • rm_define.clockwise
    • rm_define.anticlockwise
  • Цель: установка шасси для перемещения в заданном направлении и с заданной скоростью

  • Тип: блок выполнения

  • Пример: перемещение по кругу с подвесом, направленным в центральную точку

API Python:

Function: chassis_ctrl.move_with_speed(speed_x, speed_y, speed_rotation)

Parameters:

  • speed_x(float): [0, 3.5] m/s
  • speed_y(float): [0, 3.5] m/s
  • speed_rotation(int): [-600, 600]°/s
  • Цель: остановить все движения шасси

  • Тип: блок выполнения

  • Пример: поворот шасси вправо. Это заставляет шасси перемещаться вперед в течение 2 секунд со скоростью по умолчанию, затем поворачивать направо и прекращать движение.

API Python:
Function: chassis_ctrl.stop()
  • Цель: получить текущий угол наклона шасси вдоль его текущих осей рыскания/тангажа/крена на основе местоположения шасси, когда робот начинает движение

  • Тип: информационный блок (переменного типа)

  • Пример: сигнал поворот. При этом желтый светодиодный индикатор загорается, когда вы вручную управляете роботом для поворота налево, а синий светодиодный индикатор включается, когда вы вручную управляете роботом, чтобы повернуть направо.

Примечание:

  • Вращение шасси вдоль оси рыскания приводит к вращению влево и вправо.

  • Вращение шасси вдоль оси наклона приводит к вращению вверх и вниз.

  1. Вращение шасси вдоль оси крена приведет к перевороту робота.
API Python:

Function: chassis_ctrl.get_attitude(attitude_enum)

Parameters:

  • attitude_enum(enum):
    • rm_define.chassis_yaw
    • rm_define.chassis_pitch
    • rm_define.chassis_roll Return value:
  • degree(float)
  • Цель: Получить текущие координаты местоположения и ориентацию шасси

  • Тип: Информационный блок (переменного типа)

  • Пример: Получить информацию о текущем положении Это позволяет вручную проверять числовые данные для текущего положения шасси. толкая робота вперед и назад или поворачивая его влево и вправо.

Вы можете наблюдать численные изменения, используя интерфейс FPV.

Примечание. Поскольку шасси находится под управлением замкнутого контура, некоторое сопротивление при перемещении робота вручную является нормальным.

API Python:

Function: chassis_ctrl.get_position_based_power_on(action_enum)

Parameters:

  • action_enum(enum):
    • rm_define.chassis_forward
    • rm_define.chassis_translation
    • rm_define.chassis_rotate

Return value:

  • position(float)
  • Цель: Запускает программу для соответствующего блока, когда шасси сталкивается с препятствием во время движения.

  • Тип: Блок событий

  • Пример: Самозащита. Это позволяет активировать механизм самозащиты, когда шасси сталкивается с препятствием. , заставляя робота отступить и прекратить выполнение блока.

API Python:

Function: def chassis_impact_detection(msg)

Type: Event callback

  • Цель: возвращает «True», когда шасси сталкивается с препятствием во время движения; в противном случае возвращается «False»

  • Тип: логический блок

  • Пример: предупреждение об опасности Если шасси сталкивается с препятствием, когда робот управляется через интерфейс FPV, раздастся звук «удара» и все красные светодиодные индикаторы для шасси и подвеса будет мигать; во всех остальных сценариях эти показатели останутся в устойчивом состоянии.

API Python:

Function: chassis_ctrl.is_impact()

Return value:

  • impact_status(bool)