====== Commander ======
PX4의 비즈니스 로직
Commander App은 비행 명령과 비행체 정보를 모아 수행할 명령을 결정하고, 다른 App에게 명령을 내린다.
===== Commander App =====
Firmware/src/modules/commander/commander.cpp
* 비행모드 전환 및 수행지시 (상태머신으로 구현)
* 파라미터 업데이트 (''%%parameter_update%%'')
* RC입력 읽기(''%%manual_control_setpoint%%'')
* 센서값(''%%sensor_combined%%'') 읽기
* 시스템 파워 관리: 파워를 선택
* Safety 스위치(''%%safety%%'') 체크
* 기체상태 관리(''%%vtol_vehicle_status%%'')
* 기체 위치(''%%vehicle_global_position%%'')
* 기체 로컬 위치(''%%vehicle_local_position%%'')
* 기체 자세(''%%vehicle_attitude%%'')
* 기체 착륙 여부(''%%vehicle_land_detected%%'')
* cpuload, batterystatus
Commander App은 PX4의 주요 uORB 토픽을 관리. Commander App이 구독 또는 발생하는 uORB 토픽를 읽고 이와 관련된 주변의 App 코드를 읽으면 이 지휘관이 하는일의 큰그림이 그려집니다.
==== Commander App에서 Publish하는 토픽입니다. ====
armed_pub
commander_state_pub
homePub
led_control_pub
mission_pub
command_ack_pub
control_mode_pub
roi_pub
status_pub
status_pub
vehicle_status_flags_pub
==== Subscribed Topic ====
다음은 Commander App에서 구독하는 토픽입니다. PX4의 왠만한 토픽은 다 구독합니다.
_VEHICLE_ATTITUDE_CONTROLS
battery_status
cpuload
differential_pressure
estimator_status
geofence_result
manual_control_setpoint
mission_result
offboard_control_mode
parameter_update
position_setpoint_triplet
safety
sensor_accel
sensor_combined
sensor_correction
sensor_gyro
sensor_mag
sensor_preflight
subsystem_info
system_power
telemetry_status
vehicle_attitude
vehicle_command
vehicle_global_position
vehicle_gps_position
vehicle_land_detected
vehicle_local_position
vehicle_status
vtol_vehicle_status