# 비글본 블루
PX4에서는 이 제품을 제조하지 않습니다. 하드웨어 지원과 호환 문제는 [제조사](https://beagleboard.org/blue)에 문의하십시오.
WARNING
이 비행 컨트롤러에 대한 PX4 지원은 테스트 단계입니다.
BeagleBone Blue (opens new window)는 올인원 리눅스 기반 컴퓨터입니다. 로봇 공학에 최적화되어 있지만, 이 작고 저렴한 보드에는 비행 콘트롤러에 필요한 모든 센서와 주변 장치가 있습니다. 이 항목에서는 librobotcontrol (opens new window) 로봇 패키지로 PX4를 실행하기 위한 보드 설정 방법을 설명합니다.
# OS 이미지
BeagleBone Blue 이미지는 여기에서 다운로드할 수 있습니다.
플래시 OS 이미지에 대한 정보는 이 페이지 (opens new window)를 참고하십시오. 기타 유용한 정보는 FAQ (opens new window)을 참고하십시오.
TIP
실시간 커널로 업데이트 할 수 있으며, 업데이트 하는경우 librobotcontrol이 실시간 커널에서 제대로 작동하는지 다시 확인합니다.
이 문서를 업데이트 시점의 최신 OS 이미지는 bone-debian-9.9-iot-armhf-2019-08-03-4gb.img.xz (opens new window)입니다.
# 크로스 컴파일러 빌드 (권장)
BeagleBone Blue에 대해 PX4를 구축 방법은 개발 컴퓨터에서 컴파일하여 PX4 실행 가능한 이진 파일을 BeagleBone Blue에 직접 업로드하는 것입니다.
TIP
이 접근 방식은 배포 속도와 사용 편의성 때문에 네이티브 빌드 보다 권장됩니다.
PX4 빌드에는 빌드에 자동으로 포함되는 [librobotcontrol](http://strawsondesign.com/docs/librobotcontrol/)이 필요합니다. 그러나, 필요한 경우 독립적으로 설치하고 테스트할 수 있습니다.
# Beaglebone Blue WIFI 설정
보드에 쉽게 액세스하려면 Wi-Fi를 통해 네트워크에 연결할 수 있습니다.
절차는 다음과 같습니다 (보드에서 실행).
sudo su
connmanctl
connmanctl>scan wifi
connmanctl>services
#(at this point you should see your network SSID appear.)
connmanctl>agent on
connmanctl>connect <SSID>
connmanctl>quit
# Beaglebone에서 SSH 루트 로그인
아래의 명령어로 보드에서 루트 로그인을 활성화 할 수 있습니다.
sudo su
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config && systemctl restart sshd
# 크로스 컴파일러 설정
먼저 * rsync*를 설정합니다. WiFi 또는 이더넷과 같은 네트워크를 통해 개발 컴퓨터에서 대상 보드로 파일을 전송하는 데 사용됩니다. 키 인증을 사용하는 SSH를 통한 rsync의 경우 다음 단계를 따르세요 (개발 머신에서).
이전에 생성하지 않은 경우 SSH 키를 생성합니다.
ssh-keygen -t rsa
- ENTER //no passphrase
- ENTER
- ENTER
/etc/hosts에서 BeagleBone Blue 보드를
beaglebone
으로 정의하고 암호없는 SSH 액세스를 위해 공개 SSH 키를 보드에 복사합니다.ssh-copy-id root@beaglebone
또는 beaglebone의 IP를 직접 사용할 수 있습니다.
ssh-copy-id root@<IP>
확인 메시지가 표시되면 : yes
루트 비밀번호 입력
크로스 컴파일러 설정
툴체인 다운로드
먼저 툴체인을 /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf에 설치합니다. 다음은 소프트 링크를 사용하여 사용할 도구 모음 버전을 선택하는 예입니다.
mkdir -p /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf chmod -R 777 /opt/bbblue_toolchain
BeagleBone Blue 용 ARM 크로스 컴파일러는 Linaro Toolchain Binaries 사이트 (opens new window)에서 찾을 수 있습니다.
TIP
툴체인의 GCC는 BeagleBone Blue의 커널과 호환되어야 합니다. 경험상 일반적으로 GCC 버전이 BeagleBone Blue의 OS 이미지와 함께 제공되는 GCC 버전보다 높지 않은 도구 모음을 선택합니다.
[gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf](https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz)를 bbblue_toolchain 폴더에 다운로드하고 압축을 해제합니다.
*BeagleBone Blue*를위한 다양한 ARM 크로스 컴파일러 버전은 [Linaro Toolchain Binaries 사이트](http://www.linaro.org/downloads/)에서 찾을 수 있습니다.
TIP
도구 모음의 GCC 버전은 BeagleBone Blue 커널과 호환되어야 합니다.
경험상 일반적으로 GCC 버전이 *BeagleBone Blue*의 OS 이미지와 함께 제공되는 GCC 버전보다 높지 않은 도구 모음을 선택합니다.
2. 아래와 같이 ~/.profile의 PATH에 추가합니다
```sh
export PATH=$PATH:/opt/bbblue_toolchain/gcc-arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin
```
Note
로그 아웃후 다시 로그인하여 변경 사항을 적용하거나 현재 셸에서 동일한 줄을 실행합니다.
[개발 환경 설정](../dev_setup/dev_env_linux_ubuntu.md) 지침을 따릅니다.
설정과 일치하도록 업로드 대상을 편집해야 할 수 있습니다.
nano PX4-Autopilot/boards/beaglebone/blue/cmake/upload.cmake
#in row 37 change debian@beaglebone.lan --> root@beaglebone (or root@<IP>)
# 교차 컴파일 및 업로드
컴파일 및 업로드
make beaglebone_blue_default upload
Note
업로드하지 않으면, 파일이 로컬 빌드 폴더에 저장됩니다.
업로드한 파일을 테스트하려면 BeagleBone Blue 보드에서 다음 명령을 실행합니다.
cd /home/debian/px4
sudo ./bin/px4 -s px4.config
Note
현재 librobotcontrol에는 루트 권한이 필요합니다.
# 네이티브 빌드(선택 사항)
BeagleBone Blue에서 직접 PX4를 빌드할 수 있습니다.
사전 구축된 라이브러리를 설치후
- librobotcontrol 설치 디렉터리를 선택하고, 원하지 않는 다른 헤더가 포함되지 않도록
LIBROBOTCONTROL_INSTALL_DIR
환경변수를 설정합니다. - robotcontrol.h 및 **rc/***를
$LIBROBOTCONTROL_INSTALL_DIR/include
폴더에 설치합니다. - 사전 빌드된 기본 (ARM) 버전의 librobotcontrol.\ *을
$LIBROBOTCONTROL_INSTALL_DIR/lib
폴더에 설치합니다.
BeagleBone Blue에서 다음 명령을 실행합니다 (예 : SSH를 통해).
종속성 설치: sh sudo apt-get update sudo apt-get install cmake python-empy
PX4 펌웨어를 BeagleBone Blue에 복제합니다.
표준 빌드 시스템 설치를 계속 진행합니다.
# 설정 변경
모든 변경은 beaglebone의 px4.config 파일에서 직접 수행할 수 있습니다. 예를 들어 WIFI를 wlan으로 변경할 수 있습니다.
Note
영구적으로 변경하려면, 빌드전에 빌드 머신에서 PX4-Autopilot/posix-configs/bbblue/px4.config를 변경하여야 합니다.
# 부팅 중 자동 시작
다음은 [/etc/rc.local] 예제입니다.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# wait for services to start up
/bin/sleep 25
cd /home/debian/px4
/home/debian/px4/bin/px4 -d -s /home/debian/px4/px4.config > /home/debian/px4/PX4.log &
exit 0
다음은 systemd 서비스 예제입니다. [/lib/systemd/system/px4-quad-copter.service] :
[Unit]
Description=PX4 Quadcopter Service
After=networking.service network-online.target
StartLimitIntervalSec=0
Conflicts=px4-fixed-wing.service
[Service]
WorkingDirectory=/home/debian/px4
User=root
ExecStart=/home/debian/px4/bin/px4 -d -s /home/debian/px4/px4.config
Restart=on-failure
RestartSec=1
[Install]
WantedBy=multi-user.target
# 기타
# 파워 서보 레일
PX4가 시작되면 자동으로 서보에 전원을 공급합니다.
# 독특한 기능
BeagleBone Blue에는 다양한 WiFi 인터페이스와 전원 소스와 같은 몇 가지 고유한 기능이 있습니다. 이러한 기능을 사용하려면 /home/debian/px4/px4.config의 주석을 참고하십시오.
# SBUS 신호 변환기
수신기의 SBUS 신호(예: FrSky X8R)는 반전된 신호입니다. BeagleBone Blue의 UART는 반전되지 않은 3.3V 레벨 신호에서만 작동할 수 있습니다. 이 자습서에는 SBUS 신호 인버터 회로가 포함되어 있습니다.
# 일반적인 연결
GPS와 SBUS 수신기가 있는 쿼드콥터의 경우의 일반적인 연결은 다음과 같습니다.
비글본 블루에서 모터 1, 2, 3 및 4의 ESC를 서보 출력의 채널 1, 2, 3 및 4에 연결합니다. 비글본 블루에서 ESC 커넥터에 전원 출력이 포함되어 있는 경우 핀, 제거 및 서보 채널의 전원 출력 핀에 연결하지 마십시오.
dsm2와 일치하는 커넥터가있는 경우 위에서 언급한 변환된 SBUS 신호를 dsm2 포트에 연결하고, 그렇지 않으면 사용 가능한 다른 UART 포트에 연결하고 /home/debian/px4/px4.config에서 해당 포트를 변경합니다.
GPS 모듈의 신호를 비글본 블루의 GPS 포트에 연결합니다 BeagleBone Blue에있는 GPS 포트의 신호 핀은 3.3V만 허용하므로 이에 적합한 GPS 모듈을 선택하십시오.