PX4 소스코드는 내용이 매우 방대하므로 터미널에서 개발하는것은 거의 불가능에 가깝고 

Eclipse를 사용하면 전체 소스를 보기는 편하지만 객체와 구조체가 연결되지 않아서 클래스에 어떤 것들이 포함되어 있는지 알기 어렵다.

그래서 PX4 개발진들은 QtCreator(이하 큐티)에서 개발 하는것을 권장한다.

mac 에 qt를 설치하는 과정은 여러곳에서 설명하고 있으므로 생략한다. 


자세한 내용은 https://dev.px4.io/en/setup/building_px4.html 에 정리되어 있는데 이 내용은 리눅스를 기본으로 하고 있다.


그래서 mac 에서 하는 방법을 정리해본다.


이전 튜토리얼에 따라 소스코드가 /home/src/Firmware 에 있다고 가정한다.

그리고 다음을 수행한다.

cd ~/src/Firmware
mkdir build_creator
cd build_creator
cmake .. -G "CodeBlocks - Unix Makefiles"

정리하면 소스코드 루트 폴더에 build_creator라는 폴더를 만든 후 cmake 파일을 생성하는 것이다.

Makefiles"

REINITIALIZING GIT SUBMODULES

no git repo found in NuttX/NxWidgets/.git

Synchronizing submodule url for 'NuttX'

Synchronizing submodule url for 'Tools/gencpp'

Synchronizing submodule url for 'Tools/genmsg'

Synchronizing submodule url for 'Tools/jMAVSim'

Synchronizing submodule url for 'Tools/sitl_gazebo'

Synchronizing submodule url for 'cmake/cmake_hexagon'

Synchronizing submodule url for 'mavlink/include/mavlink/v1.0'

Synchronizing submodule url for 'mavlink/include/mavlink/v2.0'

Synchronizing submodule url for 'src/drivers/gps/devices'

Synchronizing submodule url for 'src/lib/DriverFramework'

Synchronizing submodule url for 'src/lib/ecl'

Synchronizing submodule url for 'src/lib/matrix'

Synchronizing submodule url for 'src/modules/uavcan/libuavcan'

Synchronizing submodule url for 'unittests/googletest'

.

.

.

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Found PythonInterp: /usr/bin/python (found version "2.7.10") 

-- Found PY_jinja2: /Library/Python/2.7/site-packages/jinja2  

-- C compiler: Apple LLVM version 8.0.0 (clang-800.0.42.1)

-- C++ compiler: Apple LLVM version 8.0.0 (clang-800.0.42.1)

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/###########/px4/src/Firmware/build_creator

 



$ ls 를 하면 아래와 같은 파일들이 생성된다.


CMakeCache.txt Makefile msg

CMakeFiles Testing px4.cbp

CPackConfig.cmake build_gazebo src

CPackSourceConfig.cmake cmake_install.cmake tmp

CTestTestfile.cmake compile_commands.json

DartConfiguration.tcl external


이제 qt 를 실행시키고 프로젝트를 가져온다.


이렇게 가져오면 파일이 추가된다.

이제 빌드 환경을 꾸미는 일이 남아있다.

좌측 패널의 Project 를 선택하고 상단의 Manage Kits 를 선택한다.

Kits를 선택하고 Add 를 눌러 새로운 빌드 환경을 추가한다.

이제 추가한 PX4_Build 를 선택하면 아래와 같이 설정한다.

Sysroot 를 /Users/#######/px4/src/Firmware 로 설정 (여기서 #####는 사용자 이름이다)

이제 CMake 패널로 이동하고 ADD를 눌러 Cmake 항목을 아래와 같이 추가한다.


Cmake 의 Path: 를 "/usr/local/bin/cmake" 로 작성한다.


이제 Build할때 어떤 명령을 수행할지를 설정한다.

Build Directory: 는 ".../src/Firmware" 로 지정하고 Target을 설정한다.

픽스호크로 빌드하는 경우 px4fmu-v2_default 로 설정

다음은 빌드할때 호출하는 cmake 파일의 경로를 지정한다.

/usr/local/bin 을 PATH 사이에 추가한다.


이제 좌측 하단의 망치 모양의 빌드 버튼을 눌러 빌드가 되는지 확인하면 된다.

아래 그림처럼 나오면 성공



다음은 Run 을 수행하는 방법이다.




+ Recent posts