OFFBOARD 속도 제어 (BODY 기준)

저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo

이번 세션에서는 Offboard 모드에서 Local_Position_NED를 이용한 위치제어 방법에 대해 다룹니다.

offboard_velocity_body.py 코드 분석

EKF Origin 초기화

    print("-- Setting initial setpoint")
    await drone.offboard.set_velocity_body(
        VelocityBodyYawspeed(0.0, 0.0, 0.0, 0.0))

반드시set_velocity_body 메쏘드를 이용하여 초기화 하여야 합니다.

이륙 및 기수 방향 변경

    print("-- Turn clock-wise and climb")
    await drone.offboard.set_velocity_body(
        VelocityBodyYawspeed(0.0, 0.0, -1.0, 60.0))
    await asyncio.sleep(5)

1m 고도로 이륙하며 기수 방향을 시계방향으로 60도 회전 합니다.

원주 비행

Velocity Body를 이용하면 원주 비행이 쉽습니다.

    print("-- Fly a circle")
    await drone.offboard.set_velocity_body(
        VelocityBodyYawspeed(5.0, 0.0, 0.0, 30.0))
    await asyncio.sleep(15)

5m 속도로 전진하며 기수를 30도 시계방향으로 회전 시킵니다.

옆면 원주 비행

FRD 좌표계 기준으로 왼쪽으로 회전 시킵니다.

전체 코드

offboard_velocity_body.py

실행

Local Position NED 보다 움직임이 부드러워 진 것을 볼 수 있습니다.

Last updated