hello_airsim -> Multirotor API

전민권·2025년 3월 11일

MultirotorClient

MultirotorClient의 메서드를 찾아보자~

takeoffAsync : 3m 높이로 띄운다 
landAsync : 차량 착륙
goHomeAsync : RTH

class DrivetrainType:
    MaxDegreeOfFreedom = 0
    ForwardOnly = 1

APIs for control

1. moveByVelocityBodyFrameAsync

  • NED 좌표계 사용
  • vx, vy, vz : X, Y, Z 방향 속도
  • duration : 속도 유지할 기간(초)
  • drivetrain: 드라이브 타입을 설정 (MaxDegreeOfFreedom 등)
  • yaw_mode: 비행체의 회전 상태를 설정
  • vehicle_name: 제어할 비행체 이름

2. moveByVelocityZBodyFrameAsync

  • Z축(고도) 값을 고정하고, vx, vy 속도를 로컬 좌표계에서 설정

3. moveByVelocityAsync

  • 월드 좌표계(NED)에서의 속도를 설정하여 비행체를 이동하는 명령

4. moveOnPathAsync

  • 비행체가 지정된 경로를 따라 이동하도록 명령
  • Velocity : 이동 속도
  • lookahead, adaptive_lookahead : 경로 추적의 예측 범위를 조절

5. moveToPositionAsync

  • 지정된 위치 (x, y, z)로 이동시키는 명령

6. moveToGPSAsync

  • GPS 좌표 (latitude, longitude, altitude)로 이동

7. moveToZAsync

  • 특정 고도 z로 이동

8. moveByManualAsync

  • 수동 모드로 제어
  • RC 제어를 사용하여 지정된 최대 속도(vx_max, vy_max, z_min) 준수

9. rotateToYawAsync

  • 주어진 yaw 값으로 회전

10. rotateByYawRateAsync

  • 주어진 회전 속도 yaw_rate에 따라 지정된 시간 동안 회전

11. hoverAsync

  • 공중에 정지

12. moveByRC

RC 컨트롤러 데이터를 받아 드론 제어



low - level control API

1. moveByMotorPWMsAsync

  • PWM 값을 사용해 모터 속도 제어
  • pwm값은 0.0에서 1.0 사이 값

2. moveByRollPitchYawZAsync

  • 롤, 피치, 요와 값(회전 각도)을 사용해 드론 자세 제어

3. moveByRollPitchYawThrottleAsync

  • 롤, 피치, 요, 스로틀 값을 사용하여 드론의 자세와 속도를 제어.
  • 스로틀은 0.0에서 1.0 사이의 값

4. moveByRollPitchYawrateThrottleAsync

  • 롤, 피치, 요 회전 속도와 고도를 사용하여 드론의 자세를 제어

5. PID 제어 API

1. setAngleRateControllerGains

  • 각도 속도 제어기의 PID gain 설정
  • move*() API에 영향
  • 기본 게인 값을 변경하고자 할 때 사용

2. setAngleLevelControllerGains

  • 각도 레벨 제어기의 PID gain 설정

6. 상태 조회

1. getMultirotorState

  • 현재 비행기의 상태 조회

2. getRotorStates

드론의 모든 회전날개(rotor)의 상태를 조회 (회전 속도, 추력, 토크 등)

0개의 댓글