Движение#
Введение#
Робот-программист VEX AIM использует голономную трансмиссию для движения вперед, назад, влево, вправо или под углом, а также способен самостоятельно поворачиваться. Методы управления движением контролируют перемещение и повороты робота, скорость его движения и отслеживание его координат по осям X и Y.

Ниже приведён список доступных методов:
Действия — Перемещение и поворот робота.
move_at— Перемещает робота под определенным углом бесконечно.move_for— Перемещает робота под определенным углом на определенное расстояние.move_with_vectors— Перемещает робота, используя векторные значения x, y и вращения.turn— Поворачивает робота влево или вправо навсегда.turn_for— Поворачивает робота влево или вправо на определенное количество градусов.turn_to— Поворачивает робота в определенном направлении.stop_all_movement— Останавливает все движения робота.
Мутаторы — Задают значения параметров движения робота.
set_move_velocity— Указывает роботу, с какой скоростью двигаться.set_turn_velocity— Указывает роботу, с какой скоростью нужно поворачивать.set_xy_position— Изменяет текущее положение робота по осям x и y на новые значения.
Геттеры — возвращают состояние и положение робота.
get_x_position— Возвращает текущую x-координату робота.get_y_position— Возвращает текущую y-координату робота.is_move_active— Возвращает значение, указывающее, движется ли робот.is_turn_active— Возвращает значение, указывающее, поворачивается ли робот.is_stopped— Возвращает значение true, если робот не движется и не поворачивает.
Действия#
move_at#
move_at перемещает робота бесконечно под определенным углом. Угол задается относительно текущего положения робота. Робот будет продолжать двигаться, пока ему не будет дано другое действие, например, перемещение под другим углом, поворот или остановка.
Применение:
robot.move_at(angle, velocity, units)
Параметры |
Описание |
|---|---|
|
Угол поворота робота в градусах. Это может быть целое число или десятичная дробь от -360 до 360. |
|
Необязательно. Скорость движения от 0% до 100% при использовании параметра |
|
Необязательно. Единица измерения скорости: |
# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()
# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()
# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()
move_for#
move_for перемещает робота под определенным углом на определенное расстояние. Угол задается относительно текущего положения робота. Проект будет ждать, пока робот не завершит перемещение, прежде чем будет выполнена следующая строка кода.
Применение:
robot.move_for(distance, angle, velocity, units, wait)
Параметры |
Описание |
|---|---|
|
Расстояние, которое перемещает робот, в миллиметрах (мм). Это может быть целое число или десятичная дробь (число с плавающей запятой). |
|
Угол поворота робота в градусах. Это может быть целое число или десятичная дробь от -360 до 360. |
|
Необязательно. Скорость движения от 0% до 100% при использовании параметра |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)
# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)
# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
move_with_vectors#
Вектор — это способ описать скорость движения объекта и направление его движения. move_with_vectors перемещает робота, используя векторное движение. Робот комбинирует значения скорости движения вперед, вправо и вращения для создания плавного движения. Робот будет продолжать двигаться, используя этот вектор, пока ему не будет дано другое действие, например, движение под другим углом, поворот или остановка.
Примечание: Этот метод устанавливает значения скорости движения и поворота напрямую, поэтому он не использует set_move_velocity или set_turn_velocity.
Применение:
robot.move_with_vectors(forward, rightward, rotation)
Параметры |
Описание |
|---|---|
|
Скорость робота по оси Y изменяется от -100% до 100%. Отрицательные значения приводят к движению робота назад, а положительные — к движению вперед. |
|
Скорость робота по оси X изменяется от -100% до 100%. Отрицательные значения перемещают робота влево, а положительные — вправо. |
|
Скорость поворота робота изменяется от -100% до 100%. Отрицательные значения приводят к вращению робота против часовой стрелки, а положительные — по часовой стрелке. |
# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()
# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()
# Scaling movement using the controller joystick
while True:
# Move forward (and backwards) slower than axis1 input
forward = controller.axis1.position() * 0.7
# Move right (and left) faster than axis2 input
rightward = controller.axis2.position() * 1.5
robot.move_with_vectors(forward, rightward, 0)
wait(5, MSEC)
turn#
turn поворачивает робота влево или вправо бесконечно. Робот будет продолжать поворачиваться, пока ему не будет дано другое действие, например, движение или остановка.
Применение:
robot.turn(direction, velocity, units)
Параметры |
Описание |
|---|---|
|
Направление поворота робота: |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()
# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()
turn_for#
turn_for поворачивает робота влево или вправо на определенное количество градусов. Поворот осуществляется относительно текущего направления, в котором смотрит робот. Проект будет ждать, пока робот не завершит поворот, прежде чем будет выполнена следующая строка кода.
Применение:
robot.turn_for(direction, angle, velocity, units, wait)
Параметры |
Описание |
|---|---|
|
Направление поворота робота: |
|
Число градусов, на которое поворачивается робот, варьируется от -360 до 360 градусов. Это может быть целое число или десятичная дробь (число с плавающей запятой). |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)
# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
turn_to#
Направление движения — это направление, в котором смотрит робот, измеряемое в градусах. turn_to поворачивает робота в определенном направлении. Робот повернется по кратчайшему пути, чтобы достичь целевого направления.
Начальный курс робота составляет 0 градусов.
Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующая строка кода.
Применение:
robot.turn_to(heading, velocity, units, wait)
Параметры |
Описание |
|---|---|
|
Направление движения робота должно составлять от -360 до 360 градусов. |
|
Необязательно. Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
|
Необязательно. |
# Turn to face each cardinal directions.
robot.turn_to(90)
wait(2, SECONDS)
robot.turn_to(180)
wait(2, SECONDS)
robot.turn_to(270)
wait(2, SECONDS)
robot.turn_to(0)
# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)
# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
stop_all_movement#
stop_all_movement останавливает все движения робота.
Применение:
robot.stop_all_movement()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
Мутаторы#
set_move_velocity#
Параметр set_move_velocity указывает роботу, с какой скоростью двигаться. Более высокое значение в процентах приводит к более быстрому движению робота, а более низкое — к более медленному.
Каждый проект начинается с того, что робот по умолчанию движется со скоростью, составляющей 50% от его обычной скорости.
Скорость движения, равная 100%, эквивалентна 200 миллиметрам в секунду.
Применение:
robot.set_move_velocity(velocity, units)
Параметры |
Описание |
|---|---|
|
Скорость движения от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)
set_turn_velocity#
Параметр set_turn_velocity указывает роботу, с какой скоростью он должен поворачиваться. Более высокое значение в процентах приводит к более быстрому повороту робота, а более низкое — к более медленному.
Каждый проект начинается с того, что робот по умолчанию вращается со скоростью 50% от максимальной (75 градусов в секунду).
Применение:
robot.set_turn_velocity(velocity, units)
Параметры |
Описание |
|---|---|
|
Скорость поворота от 0% до 100% при использовании |
|
Необязательно. Единица измерения скорости: |
# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)
set_xy_position#
set_xy_position изменяет текущее положение робота по осям x и y на новые значения.
Например, если робот отдалился от начальной точки, установка значений x и y равными 0 делает текущее местоположение робота новой точкой отсчета 0, 0. Затем робот может отслеживать будущие положения на основе этого нового значения.
Применение:
robot.set_xy_position(x, y)
Параметры |
Описание |
|---|---|
|
Значение координаты X, которое необходимо задать для робота, в мм. Это может быть целое число или десятичная дробь (число с плавающей запятой). |
|
Значение координаты Y, которое необходимо задать для робота, в мм. Это может быть целое число или десятичная дробь (float). |
# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())
Геттеры#
get_x_position#
get_x_position возвращает текущую координату x робота в миллиметрах.
В начале проекта координата x робота устанавливается равной 0. Координата x изменяется по мере движения робота влево или вправо и может быть установлена с помощью метода set_xy_position.
Применение:
robot.get_x_position()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Print the start and end x-value
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())
get_y_position#
get_y_position возвращает текущую Y-координату робота в миллиметрах.
В начале проекта координата Y робота устанавливается равной 0. Координата Y изменяется по мере движения робота вперед или назад и может быть установлена с помощью метода set_xy_position.
Применение:
robot.get_y_position()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Print the start and end y-value
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())
is_move_active#
Параметр is_move_active возвращает значение логического типа (Boolean), указывающее, движется ли робот. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.
True— Робот движется.False— Робот не движется.
Этот метод работает совместно с методами Motion, имеющими параметр wait , например, move_for.
Применение:
robot.is_move_active()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, ORANGE)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_turn_active#
is_turn_active` возвращает значение логического типа (Boolean), указывающее, поворачивается ли робот. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.
True— Робот вращается.False— Робот не поворачивается.
Этот метод работает совместно с методами Motion, имеющими параметр wait , такими как turn_for и turn_to.
Применение:
robot.is_turn_active()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False)
while robot.is_turn_active():
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_stopped#
is_stopped возвращает значение логического типа (Boolean), указывающее, находится ли робот в движении или не поворачивает. Это можно использовать для управления синхронизацией других действий в зависимости от движения робота.
True— Робот не движется и не поворачивается.False— Робот движется или поворачивается.
Применение:
robot.is_stopped()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Blink all the LEDs while the robot is moving or turning
def light_show():
# Flash LEDs while the robot is moving or turning
while not robot.is_stopped():
robot.led.on(ALL_LEDS, GREEN)
wait(.5, SECONDS)
robot.led.on(ALL_LEDS, PURPLE)
wait(.5, SECONDS)
robot.led.off(ALL_LEDS)
robot.move_for(200, 0, wait=False)
light_show()
robot.turn_for(RIGHT, 180, wait=False)
light_show()