PX4 overview
Pixhawk
- Flight Management Unit – Autopilot + Mission Manager
- 168 MHz Cortex M4F (FPU, 192 KB RAM, 1 MB flash)
- 10 DOF sensors
- Lots of connectivity (including CAN)
PX4 소프트웨어 디자인
- Reusing existing standards
- MAVLink
- UAVCAN comms
- POSIX-style threading
- POSIX-style C and driver API
- Publish /subscribe design
- BSD
PX4 Architeture
- Layer model
- Multiple applications per layer
- pub() / sub() application interface
- Generalized I/O interface (supports e.g. CAN or PWM)
PX4 Architeture
PX4 Control
With Onboard
I/O
Lightweight ORB – Pub/Sub
Flat address space in NuttX
- uORB, lightweight object request broker
- publish: topic_handle = orb_advertise(ORB_ID(random_integer), &rd);
- subscribe: topic_handle = orb_subscribe(ORB_ID(random_integer));
Shell
- UART/ USB Shell
- Init Script
- Posix 명령어 (top, ps ..)
이식성
Communication: Mavlink
여러 플랫폼이 사용. 심지어 DJI
PX4, APM, Parrot
Companion Computer (Onboard)
Mixer
제어신호 Motor를 매핑. 비행기 종류마다 최적의 Mixer 값이 다름
Testing
- unittest
- ci
- hardware testing http://dronetest.io/ http://results.dronetest.io/zurich01/107/index.html