2017-09-14 18 views
0

Dronekit을 우리 헬리콥터로 작동시키는 데 문제가 있습니다. 지금까지 우리는 SITL을 사용하여 모든 것을 테스트했으며 모든 것이 잘 작동하지만이 성공은 실제 상황에 잘 전달되지 않았습니다.Dronekit python 차량 연결 제한 시간

우리의 설정은 Mavproxy (COM9를 통한 마스터, Dronekit 스크립트 및 Mission Planner의 UDP 출력) 및 기본 Dronekit 스크립트 (이륙 및 착륙)를 실행하는 Windows GCS입니다. 보다 명확한 설명은 도표를 참조하십시오. MAVProxy을 실행할 때

enter image description here

우리는 다음과 같은 명령을 사용 mavproxy.exe --master = com9,57600 --out = UDP : 127.0.0.1 : 14550 --out = UDP : 127.0.0.1 : 14551 - 콘솔

우리가 문제를 차량 (http://python.dronekit.io/guide/connecting_vehicle.html)에 연결하는 것입니다, 우리는 무인 비행기에 연결할 수있는 몇 가지 보드 정보를 얻을 수 있습니다. 그러나 우리는 30 초 동안 하트 비트 메시지를 수신하지 못하고 타임 아웃이 발생합니다.

>>> APM:Copter V3.5.2 (4322ffda) 
>>> PX4: 1d6bf64c NuttX: 1a99ba58 
>>> Frame: QUAD 
>>> PX4v3 0020002E 30365110 35323931 

Traceback (most recent call last): 
    File "C:/Users/simon/PycharmProjects/uas_lol/test_mission.py", line 32, in <module> 
    vehicle = connect(connection_string, wait_ready=True, baud=57600, heartbeat_timeout=120) 
    File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2849, in connect 
    vehicle.wait_ready(True) 
    File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2199, in wait_ready 
    timeout) 
dronekit.APIException: wait_ready experienced a timeout after 30 seconds. 

Process finished with exit code 1 

wait_ready = False로 설정하면 무시할 수 있습니다. 이것을 사용하여 차량에 연결하고 무인 항공기를 정지시킬 수 있습니다. 이륙에 관해서는, 그것은 시간의 일부만 작동합니다. 우리는 MAVProxy를 재설정 할 때 작동하는 경향이 있음을 발견했습니다.

미션 플래너와 udp 127.0.0.1:14550을 사용하여 무인 항공기로 연결하는 것이 완벽하게 작동하는지 확인하고 싶습니다.

우리가 잘못했을 수있는 것에 대한 통찰력이 있으면 대단히 감사하겠습니다. 감사합니다!

답변

0

우리가 57600의 전송 속도로 직렬 원격 측정을 통해 연결 되었기 때문에 매개 변수를 다운로드하는 데 2 ​​분이 걸렸고 30 초 후에 Dronekit 시간이 걸렸습니다.

설명서에 따르면 heartbeat_timeout = 180 (http://python.dronekit.io/automodule.html#dronekit.connect)을 사용하여 시간 초과를 설정할 수 있습니다. 그러나 30 초가 지났지 만 여전히 문제를 해결하지 못했습니다.

30 초가 라이브러리에 코딩되어 다음 줄에서 30 개에서 180 개가 바뀌는 것처럼 보입니다. 내 문제가 해결되었습니다. https://github.com/dronekit/dronekit-python/blob/754ce6223dd26179045eaa394d5df0a5f787ebb2/dronekit/init.py#L2216

+0

timeout 매개 변수는 wait_ready 함수로 액세스됩니다. 다음과 같이 할 수 있습니다 :'vehicle = connect (connection_string, wait_ready = False); vehicle.wait_ready (True, timeout = 300)'입니다. – Caleb