이리듐/락블록 위성 통신 시스템
위성통신 시스템은 기체와 지상국간의 광역 통신을 제공합니다.
이리듐 SBD 위성 통신 시스템의 서비스 공급자 RockBlock을 이용한 시스템 설정 방법을 설명합니다. 신호 품질이 우수한 경우에도 10~15초 정도의 시간 지연이 있을 수 있습니다.
개요
위성 통신에는 다음의 요소들이 필요합니다.
- A RockBlock 9603 Iridium Satellite Modem module connected to a Pixhawk flashed with the PX4 Autopilot.
- Ubuntu Linux를 실행하는 메시지 릴레이 서버
- A ground station computer running QGroundControl on Ubuntu Linux
전체 시스템 아키텍처는 다음과 같습니다.
INFO
The setup was tested with the current release of QGroundControl running on Ubuntu 14.04 and 16.04.
- 다른 지상국 및 운영체제를 사용할 수 있지만, 아직 테스트되지 않았습니다.
- The RockBlock MK2 module can also be used. RockBlock 9603 모듈은 크기가 작고 가볍우면서도 동일한 기능을 제공하기 때문에 권장됩니다.
비용
영국 링크 실행 비용은 회선 대여 및 메시지 당 비용으로 구성됩니다.
- 각 모듈을 활성화해야 하며, 가격은 월 10파운드입니다
- Each message transmitted over the system costs one credit per 50 bytes. 번들 크기에 따라 RockBlock에서 신용당 0.04파운드 0.11파운드에 신용대출을 구입할 수 있습니다.
Refer to the RockBlock Documentation for a detailed explanation of the modules, running costs and RockBlock in general.
기체 설정
배선
RockBlock 모듈을 Pixhawk의 직렬 포트에 연결합니다. 모듈의 전원 요구 사항으로 인하여 5V에서 최대 0.5A가 필요하므로 고출력 직렬 포트를 통해서만 전원을 공급할 수 있습니다. 사용 가능한 별도의 전원을 사용시에는 Pixhawk와 동일한 접지이어야 합니다. The details of the connectors and the power requirements can be found in the RockBlock documentation.
모듈
모듈은 내부 안테나 또는 SMA 커넥터에 연결된 외부 안테나를 사용할 수 있습니다. To switch between the two antennas modes the position of a small RF link cable needs to changed. 외부 안테나를 사용하는 경우 모듈 손상을 방지하기 위해 안테나의 전원을 켜기 전에 항상 안테나가 모듈에 연결되어 있는 지 확인하십시오.
모듈의 기본 보드 속도는 19200입니다. However, the PX4 iridiumsbd driver requires a baud rate of 115200 so it needs to be changed using the AT commands.
Connect to the module with using a 19200/8-N-1 setting and check if the communication is working using the command:
AT
. The response should be:OK
.baudrate 속도를 변경합니다.
AT+IPR=9
이제 115200/8-N-1 설정을 사용하여 모델에 다시 연결하고 다음을 사용하여 설정을 저장합니다.
AT&W0
이제 이 모듈을 PX4에서 사용할 수 있습니다.
소프트웨어
Configure the serial port on which the RockBlock module will run using ISBD_CONFIG. 포트 전송속도는 드라이버에 의해 설정되므로, 추가로 설정하지 않아도 됩니다.
INFO
If the configuration parameter is not available in QGroundControl then you may need to add the driver to the firmware:
drivers/telemetry/iridiumsbd
RockBlock 설정
RockBlock의 첫 번째 모듈을 구입시의 첫 번째 단계는 사용자 계정을 생성하는 것입니다.
Log in to the account and register the RockBlock module under the My RockBLOCKs
. 모듈에 대한 라인 렌탈을 활성화하고 계정에서 예상 비행 시간에 충분한 크레딧을 사용할 수 있는 지 확인합니다. 기본 설정을 사용할 경우 분당 1개의 메시지가 차량에서 지상국으로 전송됩니다.
메시지 릴레이 서버에 대한 배달 그룹을 설정하고 모듈을 해당 배달 그룹에 추가합니다.
릴레이 서버 설정
릴레이 서버는 Ubuntu 16.04 또는 14.04 버전에서 실행하여야 합니다.
메시지 릴레이로 작동하는 서버에는 고정 IP 주소와 열린 TCP 포트 2개가 있어야 합니다.
5672
for the RabbitMQ message broker (can be changed in the rabbitmq settings)45679
for the HTTP POST interface (can be changed in the relay.cfg file)
필요한 Python 모듈을 설치합니다.
shsudo pip install pika tornado future
Install the
rabbitmq
message broker:shsudo apt install rabbitmq-server
브로커 자격 증명을 구성합니다(암호를 PWD로 변경).
shsudo rabbitmqctl add_user iridiumsbd PWD sudo rabbitmqctl set_permissions iridiumsbd ".*" ".*" ".*"
Clone the SatComInfrastructure repository:
shgit clone https://github.com/acfloria/SatComInfrastructure.git
Go to the location of the SatComInfrastructure repo and configure the broker's queues:
sh./setup_rabbit.py localhost iridiumsbd PWD
설정을 확인합니다.
shsudo rabbitmqctl list_queues
This should give you a list of 4 queues:
MO
,MO_LOG
,MT
,MT_LOG
Edit the
relay.cfg
configuration file to reflect your settings.분리 모드에서 릴레이 스크립트를 실행합니다.
shscreen -dm bash -c 'cd SatcomInfrastructure/; ./relay.py
기타 지침은 다음과 같습니다.
화면에서 분리:
shctrl+a d
스크립트 실행 중지:
shctrl+a :quit
Reattach to the screen:
shscreen -dr
지상국 컴퓨터
지상국을 설정 방법:
필요한 Python 모듈을 설치합니다.
shsudo pip install pika tornado future
SatComInfrarastructure 저장소 복제:
shgit clone https://github.com/acfloria/SatComInfrastructure.git
Edit the udp2rabbit.cfg configuration file to reflect your settings.
Install QGroundControl (daily build).
다음 매개 변수를 사용하여 QGC에서 UDP 연결을 추가합니다.
- 접속 포트: 10000
- 대상 호스트: 127.0.0.1:10001
- 높은 지연 시간: 확인됨
검증
Open a terminal on the ground station computer and change to the location of the SatComInfrastructure repository. Then start the udp2rabbit.py script:
sh./udp2rabbit.py
Send a test message from RockBlock Account to the created delivery group in the
Test Delivery Groups
tab.
If in the terminal where the udp2rabbit.py
script is running within a couple of seconds the acknowledge for a message can be observed, then the RockBlock delivery group, the relay server and the udp2rabbit script are set up correctly:
시스템 실행
Start QGroundControl. 먼저 높은 지연 시간 링크를 수동으로 연결한 다음, 일반 텔레메트리 링크를 연결합니다.
Open a terminal on the ground station computer and change to the location of the SatComInfrastructure repository. Then start the udp2rabbit.py script:
sh./udp2rabbit.py
기체의 전원을 켭니다.
Wait until the first
HIGH_LATENCY2
message is received on QGC. This can be checked either using the MAVLink Inspector widget or on the toolbar with the LinkIndicator. If more than one link is connected to the active vehicle the LinkIndicator shows all of them by clicking on the name of the shown link:링크 표시기는 항상 우선 순위 링크의 이름을 표시합니다.
이제 위성 통신 시스템을 사용할 준비가 되었습니다.우선 순위 링크(명령 전송 링크)는 다음 방법으로 결정됩니다.
사용자가 링크를 명령하지 않으면, 지연 시간이 큰 링크보다 일반적인 텔레메트리 링크가 선호됩니다.
기체가 시동을 켜고 텔레메트리 링크가 끊어지면(특정 시간 동안 MAVLink 메시지가 수신되지 않을 경우), 오토파일럿과 QGC는 일반 텔레메트리에서 긴 대기 시간 링크로 되돌아갑니다. 텔레메트리 링크가 복구되는 즉시 QGC와 자동 조종기가 다시 이 링크로 전환됩니다.
The user can select a priority link over the
LinkIndicator
on the toolbar. 이 링크가 활성화되어 있거나 사용자가 다른 우선 순위 링크를 선택하면 이 링크는 우선 순위 링크로 유지됩니다.
문제 해결
비행기에서 위성 통신 메시지를 수신하지만 명령을 전송할 수 없습니다(차량이 반응하지 않음).
- 릴레이 서버의 설정을 확인하고 해당 설정이 올바른지 확인합니다(특히 IMEI).
비행기의 위성 통신 메시지는 지상국에 도착하지 않습니다.
Check using the system console if the iridiumsbd driver started and if it did that a signal from any satellite is received by the module:
shiridiumsbd status
Make sure using the verification steps from above that the relay server, the delivery group and the
udp2rabbit.py
script are set up correctly.링크가 연결되어 있고 설정이 정확한 지 확인하십시오.
IridiumSBD 드라이버가 시작되지 않음:
- 기체를 재부팅합니다. If that helps increase the sleep time in the
extras.txt
before the driver is started. 그래도 Pixhawk와 모듈이 동일한 접지 레벨을 유지하는지 확인할 수 있습니다. 모듈의 보레이트가 115200으로 설정되어 있는 지 확인하십시오.
- 기체를 재부팅합니다. If that helps increase the sleep time in the
지상에서 첫 번째 메시지가 수신되지만, 기체가 비행하는 즉시 메시지를 전송할 수 없거나 대기 시간이 훨씬 더 길어집니다(분 단위).
- 비행 후 신호 품질을 확인합니다. 비행 중에 감소하는 경우 내부 안테나 보다 외부 안테나를 사용하는 것이 좋습니다. 이미 외부 안테나를 전자 장치 또는 신호를 방해 할 수있는 모든 것에서 최대한 멀리 이동하십시오. 또한 안테나가 손상되지 않았는 지 확인합니다.