Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[프로젝트] Pixhawk 사에서 쓰는 controller 분석 (1) 본문

기타/설계 프로젝트 System Design

[프로젝트] Pixhawk 사에서 쓰는 controller 분석 (1)

보통의공대생 2022. 11. 14. 22:36

제어기에 대해서 검토하는 와중에 레퍼런스가 있었으면 좋겠다는 생각이 들어서 기록해놓는 글.

 

참고한 자료는 아래와 같다.

 

https://px4.github.io/Firmware-Doxygen/dd/d8c/mc__pos__control__main_8cpp.html

 

PX4 Firmware: src/modules/mc_pos_control/mc_pos_control_main.cpp File Reference

Multicopter position controller. Definition in file mc_pos_control_main.cpp.

px4.github.io


 

필자는 픽스호크를 직접 써본 적이 없기 때문에 그냥 내부 제어기만 확인하는 용도로써 코드를 참고하였다.

위의 링크에 들어가면 다음을 확인할 수 있다.

 

 

다음과 같이 각 코드의 관계를 나타내주면서 개별 코드에도 접근할 수 있다.

 

위의 go to document로 들어가면 각 코드 간의 include 관계도 확인할 수 있는 듯하다.

코드 간의 관계

 

위의 코드를 읽기에는 가독성이 떨어지는 것 같아서 아래 깃허브에서 코드를 다운받았다.

 

https://github.com/PX4/PX4-Autopilot

 

GitHub - PX4/PX4-Autopilot: PX4 Autopilot Software

PX4 Autopilot Software. Contribute to PX4/PX4-Autopilot development by creating an account on GitHub.

github.com

 

(지금 확인한 건데) 위의 사이트와 깃허브에서 제공하는 코드가 완벽하게 일치하지 않는 것을 확인했다.
제어기 확인해야하는데 덕분에 일이 늘었다(...)

 

 

참고로 저 깃허브에서 제어기 쪽을 보려면 src/modules로 들어가야한다.

그리고 pixhawk에서 제공해주는 platform이 autogyro, fixed wing, submarines(uuv), rovers, VTOL, multicopters 등 다양하고 각 시스템에 맞는 제어기를 다른 사람들이 커밋한 것으로 보인다.

 

https://docs.px4.io/main/en/airframes/airframe_reference.html#hexarotor-coaxial

위의 링크는 픽스호크에서 제공하는 airframe의 종류에 대해 소개하고 있다.

코드를 확인할 때도 시스템을 확인하고 봐야한다.

 

픽스호크 사이에서 제공하는 프레임

  • Airship
  • Autogyro : (위키) 헬리콥터와 달리 주회전날개가 자유회전하면서 비행에 필요한 양력을 얻어 비행하는 항공기의 일종. 다른 이름으로 자이로콥터라고 한다.
  • Balloon
  • Copter : 도데카콥터, 헥사콥터, 쿼트로터, 옥타로터 등
  • Plane : 일반 비행기, Flying wing, Plane A-Tail
  • Rover
  • VTOL

다음과 같다. 내가 살펴보고자 하는 시스템은 멀티콥터 (위의 Copter)이다.

 


다음에 다룰 내용

Position control

https://px4.github.io/Firmware-Doxygen/dir_4892fa330f71d17f65cfcd3ee8646b5e.html

Attitude control

https://px4.github.io/Firmware-Doxygen/db/de4/_attitude_control_8cpp_source.html

Rate control

https://px4.github.io/Firmware-Doxygen/dir_2cc0c9047201483ad095cd0b602beaa8.html

Comments