18. Limitation of private code
- The AR.Drone uses ultrasound data to measure its altitude
- However, when multiple quadrotors run in same area, the frequency interference happens because of
collision of same frequency
25. Key Maintainers (Early Members)
Loren Meier Julian Oes
Paul Reiseborough
[EKF2]
James Goppert
[LPE]
Architecture
Control &
Estimation
Anton Babuskin
[position_estimation_inav]
[attitude_estimator_q]
[mc_att_control]
[mc_pos_control]
27. DroneCode
- Setthe standards in the drone industry with open-source
- Start with PX4 and ArduPilot (2014)
- ArduPilot was no longer be associated with DroneCode (2016)
38. History (1976)
컴퓨터 애호가들에게 보내는 공개 편지 “Open Letter to Hobbyists”
모든 코드를 비공개 형태로 만들어 버리게 되는 계기
소프트웨어 저작권에 대한 인지, 시작된 상업용 소프트웨어 시대
39.
40. History (1980)
- 자유 소프트웨어 운동 주도
- 상용 소프트웨어에 대항한 자유로운 대안을 만들기 위한 의지
- GNU (GNU is Not a Unix) 프로젝트 시작
- Text editor(Emacs), Compiler(gcc), Debugger(gdb), make 개발
- Free Software 운동 시작 후 자유소프트웨어 재단(FSF) 설립
- 1989년 최초의 오픈소스 라이선스 GNU General Public License 배포
Richard Stallman (1953 ~)
41.
42. 라이센스
- GPL : General Public License. 저작권은 개발자에게 귀속되지만 소프트웨어의 복사, 수정 및 변경, 배포의 자유를 제3자에게 허용.
- LGPL : GNU Lesser General Public License. GPL을 변형해 더 허가된 형태로서, 소프트웨어 라이브러리를 염두에 둔 것.
- MPL : 모질라 공용 허가서(Mozilla Public License). 모질라 애플리케이션 스위트, 모질라 파이어폭스, 모질라 선더버드 및 그 외의 모질라 소프트웨어
들에 적용.
- BSD license : 유닉스(Unix) 의 양대 뿌리 중 하나인 버클리의 캘리포니아 대학에서 배포하는 공개 소프트웨어의 라이선스. GPL보다 훨씬 개방적인 4
개항의 간단한 문구로 되어 있음.
- Apache license : 아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이선스 규정. 누구나 해당 소프트웨어에서 파생된 프로그램을
제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이선스 규정을 의미.
43. History (1991)
Linux GNU
- 핀란드 헬싱키 대학의 대학원생인, 리누스 토발즈가 취미로 개발한 커널
리눅스의 탄생
- GNU GPL로 배포
…
Debian
Redhat
CentOS Ubuntu Linus Torvalds (1969 ~)
44. - 오픈소스 명칭 정의
- 넷스케이프 브라우저 코드에 대한 공개 형태를 결정하는 전략회의에서 붙여진 용어
- 넷스케이스 소스 코드 공개에 자극 받아, 오픈소스를 장려하기 위한 단체인 OSI(Open Source
Initiative) 설립
History (1998)
48. Why do you open your code?
48
*) 김형준, “오픈소스 프로젝트 따라 잡기”, SlideShare
하지만, 기술 공유 보다는 기술 종속이 목적이 아닐까?
Android
Eco-System
Tizen
Eco-System
좋은 회사에 취직/연봉인상 이 목적이 아닐까?
84. rcS (PX4-Autopilot/ROMFS/px4fmu_common/init.d/rcS)
- Run configuration script (rcS)
- Mounting file system
- Load parameters
- Run default tasks
- Run specific airframe tasks
- Ex. “4011_dji_f450”, “4052_holybro_qav250”
Ex1. 나만의 기체 모델 설정 파일을 만들고 싶다
Ex2. 자동 실행되는 task를 만들고 싶다
92. Run for Test
$ make px4_sitl_default gazebo
- Run for Test
- Tip #1: HEADLESS=1 (for no gazebo client)
- Tip #2: pxh> help (to show possible commands)
- Tip #3: pxh> task_lists (to show tasks)
pxh> monitoring start
100. Parameters
- PX4 uses the param subsystem
- a flat table of float and int32_t values
- PARAM_DEFINE_INT32
- PARAM_DEFINE_FLOAT
- Parameter names must be no more than 16 ASCII characters
143. PX4-ROS(2)
- PX4 supports native communication with ROS2 via FastRTPS.
- This enables integration of a companion computer using industry-standard middleware with safety-critical
implementations available. ROS nodes can communicate today natively with PX4 without the need for a
translation layer like MAVROS.
146. PX4-ROS2
• Real Time Publish Subscribe protocol, a Data Distribution Service (DDS) protocol for computer systems
• eprosima Fast RTPS is a C++ implementation of the RTPS (Real Time Publish Subscribe) protocol
• provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained
by the Object Management Group (OMG) consortium
Refer to PX4DevSummit
147. DDS
DDS uses the concept of Global Data Space. In this Space we define topics of data, and the publishers publish samples of
these topics. DDS distributes these samples to all the subscribers of those topics. Any node can be a publisher or a
subscriber.
Refer to PX4DevSummit
150. Problem with PX4-ROS2
- System Maturity
- Dependency of eProsima RTPS
- Most code is developed by eProsima RTPS
- However, eProsima RTPS is not enough to apply to commercial system
153. SkyNode
- Combining the latest Pixhawk flight controller (FMUv5x standard), mission computer, and wireless
networking (LTE, WiFi)
- Pre-installed with the Auterion Enterprise PX4 operating system (not open source)