OFFBOARD 위치 제어 (NED 기준)

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

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

offboard_position_ned.py 코드 분석

EKF Origin 초기화

    print("-- EKF origin 초기화")
    await drone.offboard.set_position_ned(PositionNedYaw(0.0, 0.0, 0.0, 0.0))

    print("-- Starting offboard")
    try:
        await drone.offboard.start()
    except OffboardError as error:
        print(f"Starting offboard mode failed \
                with error code: {error._result.result}")
        print("-- Disarming")
        await drone.action.disarm()
        return

여기서 주의할 점은 Offboard 모드를 시작하기 전에 EKF Origin을 0,0,0 으로 초기화 해야 한다는 것 입니다.

에러가 발생되면 아밍을 종료 합니다.

Takeoff

Local coordinate 프레임을 기준으로 기체를 위로 이동 시킵니다. 고도는 NED 기준에서 항상 - 가 위쪽임을 주의 하십시오.

이륙 고도에 다다를 충분한 sleep(10) 타임을 주어야 합니다.

이동

NED 기준으로 북쪽으로 5m, 동쪽으로 10m, 고도 5m, 기수 방향 90도로 기체를 이동 시킵니다.

착륙

고도를 0으로 주어 기체를 착륙 시킵니다.

PX4는 기체가 지면에 닿으면 자동으로 아밍을 종료 합니다.

Offboard 모드 종료

전체 코드

offboard_position_ned.py

실행

드론의 움직임을 정밀히 관찰해 보시면 문제점을 파악할 수 있을 것입니다.

Last updated