2016-11-30 13 views
2

Arducopter에 guided_nogps 모드로 들어가려면 어떻게해야합니까? gps가 거부 된 환경에서 작업 할 계획입니다. 다른 게시물에서 ngups를 사용하여 가능하다고 나타내지 만 해당 모드를 설정하는 방법을 볼 수 없습니다. Dronekit (python) 사용 vehicle.mode = VehicleMode ("Guided_NoGPS")는 그러한 모드가 없음을 나타내는 오류를 반환합니다.Dronekit에서 Arducopter를 사용하여 GUIDED_NOGPS 모드를 설정하는 방법은 무엇입니까?

Mavlink도 모드를 승인하지 않습니다.

내 설정은 Pixhawk에서 Arducopter를 실행하며 Raspberry Pi 컴패니언을 사용합니다. 펌웨어는 DroneKit-SITL에서 v3.5 dev 및 v3.4입니다 (이 경우 자체 v3.4 바이너리를 컴파일했습니다).

그 밖의 모든 것이 효과적입니다 (예 : How to set copters Attitude via DroneKit -- SET_ATTITUDE_TARGET not working 덕분에 set_attitude_target을 (를) 통해 제어) - 실내에 갈 수 있어야합니다.

또한 - Arducopter v3.4 Controlling movement without GPS의 출시 전에이 글에서 광학 유량 센서가 필요할 수도 있음을 확인했습니다. 그 요구 사항이 통과 되었습니까?

다시 한번 감사드립니다!

모든 조언을 환영합니다.

감사의 말을 전합니다. 나는 flightmode (20)를 변경하는 기능 생성 :

def set_mode(flightmode): 
# create the MAV_CMD_DO_SET_MODE command 
msg = vehicle.message_factory.command_long_encode(
    0, 0, # target system, target component 
    mavutil.mavlink.MAV_CMD_DO_SET_MODE, #command 
    0, #confirmation 
    flightmode, 
    0, 0, 0, 0, 0, 0) 
# send command to vehicle 
vehicle.send_mavlink(msg) 

메시지가 정확하게 수신을하지만 (결과 3 반환) 실패했습니다. 필자가 확신하지 못했던 한 가지 사항은 매개 변수 2였습니다. 사양은 플랫폼에 따라 다릅니다. 나는 Arducopter를 위해 무엇을해야할지 확신하지 못했기 때문에 0을 넣었다.

다시 한번 제안을 환영하며 많은 감사를드립니다.

+0

이것은 mavlink 장치와 불행한 불일치입니다. 어떤 장치는'MAV_CMD_DO_SET_MODE'가'command_long'으로 압축되어 모드를 변경합니다. 그러나 ArduCopter의 경우, 당신은'SET_MODE' 메세지를 보내야 만합니다. – squilter

답변

1

모드를 20으로 설정하십시오. 이것은 모드의 내부 표현입니다. dronekit-python이 아직 이것을 모르는 것 같습니다.

guided_nogps가 아닌 일반 유도 모드에는 광학 플로우가 필요합니다. 그러나 guided_nogps는 속도 또는 위치 요청을 전송할 수 없으며 각도 만 허용합니다.

+0

감사합니다. 모드를 20으로 설정하려고 시도했습니다. 콘솔이 올바른 command_ack 코드를 제공하고 있지만 그 결과는 3입니다. 성공하지 못했다고 생각됩니다. 여기 내 기능은 다음과 같습니다. –

+0

위 기능을 추가하겠습니다. –

0

이 질문은 좀 오래된 것으로 알고 있지만 대답을 찾았습니다. MAVProxy 및 PyMAVLink의 설치를 업데이트하십시오.

pip install -U pymavlink mavproxy 

DroneKit은 새 모드를 사용하지 않고 이전 버전을 자동으로 설치합니다. 원하는 항목 PyMAVLink> = 2.2.4MAVProxy> = 1.6.1.