PX4 hardware
- 회로도를 봐야 하는 목적.
- 회로도 볼때 노하우.
- pixhawk v2.4.5 하드웨어 읽기
대상
- PX4 하드웨어를 이해하고 새로운 하드웨어를 만들려고 하는 분
Airframe
Pixhawk
https://pixhawk.org/modules/pixhawk
실습:
- 하드웨어 읽고 발견하기
- 뭘 할 수 있는지 같은지 이야기 해보기
- 인터넷에서 검색!
Pixhawk Hardware Features
Advanced 32 bit ARM Cortex® M4 Processor running NuttX RTOS
14 PWM/servo outputs (8 with failsafe and manual override, 6 auxiliary, high-power compatible)
Abundant connectivity options for additional peripherals (UART, I2C, CAN)
Integrated backup system for in-flight recovery and manual override with dedicated processor and stand-alone power supply
Backup system integrates mixing, providing consistent autopilot and manual override mixing modes
Redundant power supply inputs and automatic failover
External safety button for easy motor activation
Multicolor LED indicator
High-power, multi-tone piezo audio indicator
microSD card for long-time high-rate logging
Microprocessor:
32-bit STM32F427 Cortex M4 core with FPU
168 MHz/256 KB RAM/2 MB Flash
32 bit STM32F103 failsafe co-processor
Sensors:
ST Micro L3GD20 3-axis 16-bit gyroscope
ST Micro LSM303D 3-axis 14-bit accelerometer / magnetometer
Invensense MPU 6000 3-axis accelerometer/gyroscope
MEAS MS5611 barometer
Interfaces:
5x UART (serial ports), one high-power capable, 2x with HW flow control
2x CAN
Spektrum DSM / DSM2 / DSM-X® Satellite compatible input
Futaba S.BUS® compatible input and output
PPM sum signal
RSSI (PWM or voltage) input
I2C®
SPI
3.3 and 6.6V ADC inputs
External microUSB port
Power System:
Ideal diode controller with automatic failover
Servo rail high-power (7 V) and high-current ready
All peripheral outputs over-current protected, all inputs ESD protected
Weight and Dimensions:
Weight: 38g (1.31oz)
Width: 50mm (1.96")
Thickness: 15.5mm (.613")
Length: 81.5mm (3.21")
Input/Processing/Output
Electonical
git clone https://github.com/PX4/Hardware
PX4 FMU 2.4
회로도 읽기
Pixhawk 2.1 회로도 (The Cube Autopilot)
회로도 읽는 순서
- 주연(Main) 찾기
- 조연(Sub) 찾기
- 흐름(Flow) 찾기
실습:
- 주인공 찾아보고 스펙 알아 보기. (뭘 봐야할지 토론)
- 조연 찾아보고 역활 예측. (공유)
STM32f427
실습:
- 데이터 쉬트 읽기. http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1789/PF253575
- PX4는 왜 MCU를 선택 했을까? 이야기 해보자.
STM32f100
실습:
- 데이터 쉬트 읽기. http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216839
- 이 MCU의 역활?
IMU (Inertial Measurement Unit)
- Gyro
- Acceleometer
- Magnetometer
질문
- 왜 여러개 일까?
- 위치 찾기
Power
- MIC5332, LTC4417 NTHD4102PT1G, BQ24313, BQ24315
질문
- MIC5332의 장점?
- BQ23415의 역활?
- LTC4417의 역활?
FM24V01
- 무슨 역활인가요?
- 왜 너여야만 하니?
LINE BUFFER
- TXS0108
74lvc2g240
실습:
무슨 역활인가요?
- 왜 너여야만 하니?
- B쪽 포트에 붙은 120옴은 왜?
PCB Line, Hole 정보
- 회로도에서 PCB line, hole, via, 동박두께 정보를 찾아보자! 어디에?
역활
왜 이런 선택을 하였나?
PX4 스펙 찾아보기
- 핵심. mcu cortex m4.
- flash 2mb/ 얼마나 들어가나?
- 32bit fail safe. 보조 인가?
- 자이로 센서 중복/
- autopilot 목적. 확장성. uart. ppm, pwm.
- servo rail hight power 10v/ hight current. 10a 이상. 어떨걸 심하게 돌리길래.
- 8개는 failsafe and manual override. 6개 고출력 pwm 어떻게 다를지 궁금하다. (?) pwm
센서
- IMU(Inertial Measurement Unit)
- GPS(Lat/Lon/Alt, local earth frame velocity)
- Magnetometer
- Barometer Altitude
- Airspeed
- Range finder (땅으로부터 높이)
- Opticalflow (광학/관성 델타값)
- Vision odometer(Realsense, ZED ...)
IMU
- 3축 각속도, 3축에 작용하는 힘
- 가장 중요함
작은 기체는 MEMS타입 (Micro Electro Mechanical System) 사용
- 온도에 따라 드리프트 심함 Sensor thermal calibration
- 고주파 진동에 예민
- 기계적 뒤틀림에 예민
예시 MPU6000, ICM 20609
Barometer Altitude
- 기압측정 하여 표준기압모델을 이용하여 고도로 변환
- Altitude from atmospheric pressure Calculator
- src/modules/sensors/voted_sensors_update.cpp
airdata.baro_alt_meter = (((powf((p / p1), (-(a * CONSTANTS_AIR_GAS_CONST) / CONSTANTS_ONE_G))) * T1) - T1) / a;
- 온도에 따른 드리프트
- 공기 흐름에 따라 기압이 변화
- 빛에 예민
Magnetometer
- 지구의 자기장을 측정
- 자북과 진북의 차이각도 입력 필수 (PX4에서는 기본으로 GPS위치를 기반으로 차이각 보정)
- 외부 자기장 에러소스(전류로 부터 나오는 자기장, 자석, 자기장 방해) 에 영향을 받음
- 참고: https://ibmhdd.tistory.com/2
GPS
- 위치와 속도 측정. WGS-84 지구 좌표계
- 위치와 속도의 메인 센서
- 2 ~ 5m 오차
- RTK 사용시 10cm