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
8. moveByManualAsync
- 수동 모드로 제어
RC 제어를 사용하여 지정된 최대 속도(vx_max, vy_max, z_min) 준수
9. rotateToYawAsync
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
6. 상태 조회
1. getMultirotorState
2. getRotorStates
드론의 모든 회전날개(rotor)의 상태를 조회 (회전 속도, 추력, 토크 등)
