Керування шасі для переміщення на вказану відстань – це сценарій управління діями завдання.
• Спочатку ініціалізуйте об’єкт робота, як описано в розділі Ініціалізація робота.
• Інтерфейс для управління шасі належить до модуля chassis. Тому спочатку отримайте об’єкт chassis, як описано в розділі Отримання об’єктів модуля. У цьому прикладі вам також потрібно отримати led модуль, оскільки ви також будете керувати світлом броні. У цьому прикладі використовується метод 1 для отримання об’єктів модуля.
ep_chassis = ep_robot.chassis ep_led = ep_robot.led
• У цьому прикладі, щоб продемонструвати характеристики дій із завданнями, ефект броньованого світла буде налаштований після того, як ви керуватимете переміщенням шасі. Використовуйте метод move() в об’єкті шасі, щоб контролювати відносне переміщення шасі. Параметри x і y методу представляють відстань переміщення осі x та осі y відповідно. Параметр z вказує швидкість обертання осі z. У цьому прикладі відстань переміщення осі x встановлено на 0,5 м, а параметри y та z встановлено на 0. Ви можете використовувати параметр xy_speed для визначення швидкості переміщення по осях x та y, а також використовуйте параметр z_speed, щоб вказати швидкість обертання осі z. У цьому прикладі швидкість руху осей x і y встановлено як 0,7 м/с, а швидкість обертання осі z встановлено на 0. Щоб встановити ефект світла броні, зверніться до Прикладу 2: Налаштуйте світло броні робота. Далі ми будемо використовувати три методи для контролю дій із переміщенням шасі:
○ Спосіб 1: Після виконання дії завдання негайно викликайте метод wait_for_completed () :
ep_chassis.move(x=x_val, y=0, z=0, xy_speed=0.7).wait_for_completed() ep_led.set_led(comp=led.COMP_ALL, r=255, g=0, b=0, effect=led.EFFECT_ON)
○ Спосіб 2: Викличте метод wait_for_completed () після виконання інших команд:
chassis_action = ep_chassis.move(x=x_val, y=0, z=0, xy_speed=0.7) ep_led.set_led(comp=led.COMP_ALL, r=255, g=0, b=0, effect=led.EFFECT_ON) chassis_action.wait_for_completed()
○ Спосіб 3: Не використовуйте метод wait_for_completed (), а використовуйте затримку, щоб забезпечити завершення дії:
ep_chassis.move(x=x_val, y=0, z=0, xy_speed=0.7) ep_led.set_led(comp=led.COMP_ALL, r=255, g=0, b=0, effect=led.EFFECT_ON) time.sleep(10)
Три механізми виклику інтерфейсу дій із завданнями відповідають різній поведінці робота. У методі 1 робот рухається у вказане положення, а потім встановлює броньоване світло на суцільно -червоний колір. У методах 2 та 3 під час руху світло броні буде світитися червоним кольором.
Порада
Ми рекомендуємо використовувати метод 1 та метод 2, оскільки викликати wait_for_completed () у відповідний час менш ризиковано.
• Звільніть відповідні ресурси, як описано в розділі Звільнення ресурсів роботів.
Повний процес керування шасі для переміщення на вказану відстань див. У прикладі програми /02_chassis/01_move.py.
from robomaster import robot if __name__ == '__main__': ep_robot = robot.Robot() ep_robot.initialize(conn_type="sta") ep_chassis = ep_robot.chassis x_val = 0.5 y_val = 0.6 z_val = 90 # 前进 0.5米 ep_chassis.move(x=x_val, y=0, z=0, xy_speed=0.7).wait_for_completed() # 后退 0.5米 ep_chassis.move(x=-x_val, y=0, z=0, xy_speed=0.7).wait_for_completed() # 左移 0.6米 ep_chassis.move(x=0, y=-y_val, z=0, xy_speed=0.7).wait_for_completed() # 右移 0.6米 ep_chassis.move(x=0, y=y_val, z=0, xy_speed=0.7).wait_for_completed() # 左转 90度 ep_chassis.move(x=0, y=0, z=z_val, z_speed=45).wait_for_completed() # 右转 90度 ep_chassis.move(x=0, y=0, z=-z_val, z_speed=45).wait_for_completed() ep_robot.close()