Estou tentando me conectar a uma unidade pixracer com mavros. Anteriormente, usei um computador complementar que se conecta ao pixhawk por meio de um cabo serial físico. Agora, desejo usar uma conexão wi-fi para me comunicar diretamente com o pixracer por meio da placa ESP8266. Eu configurei o wi-fi que funciona em modo de estação e felizmente se conecta com qGroundcontrol e meu roteador (então eu acho que o pixracer / ESP8266 está funcionando e configurado corretamente), mas estou lutando para me conectar através de mavros ao fcu.
O endereço udp que estou usando é: udp://:[email protected]:14540
- onde 192.168.1.9 é o endereço IP do pixracer
Este formato parece bom? Talvez haja alguns parâmetros que preciso definir também? Eu defini SYS_COMPANION
para ESP8266 (921600 baud, 8N1)
.
Mavros: 0.22.0
ROS: cinético
Ubuntu: 16.04
[] ArduPilot
[x] PX4
Versão: 1.6.5
copy output of mavros_node. Usually console where you run roslaunch
header:
seq: 15
stamp:
secs: 1523479866
nsecs: 896584974
frame_id: ''
status:
-
level: 1
name: "UAV_1/mavros: FCU connection"
message: "not connected"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Received packets:"
value: "0"
-
key: "Dropped packets:"
value: "0"
-
key: "Buffer overruns:"
value: "0"
-
key: "Parse errors:"
value: "0"
-
key: "Rx sequence number:"
value: "0"
-
key: "Tx sequence number:"
value: "141"
-
key: "Rx total bytes:"
value: "0"
-
key: "Tx total bytes:"
value: "36947"
-
key: "Rx speed:"
value: "0.000000"
-
key: "Tx speed:"
value: "9547.000000"
-
level: 2
name: "UAV_1/mavros: GPS"
message: "No satellites"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Satellites visible"
value: "0"
-
key: "Fix type"
value: "0"
-
key: "EPH (m)"
value: "Unknown"
-
key: "EPV (m)"
value: "Unknown"
-
level: 2
name: "UAV_1/mavros: Heartbeat"
message: "No events recorded."
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Heartbeats since startup"
value: "0"
-
key: "Frequency (Hz)"
value: "0.000000"
-
key: "Vehicle type"
value: "Generic micro air vehicle"
-
key: "Autopilot type"
value: "Generic autopilot"
-
key: "Mode"
value: ''
-
key: "System status"
value: "Uninit"
-
level: 0
name: "UAV_1/mavros: System"
message: "Normal"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Sensor present"
value: "0x00000000"
-
key: "Sensor enabled"
value: "0x00000000"
-
key: "Sensor helth"
value: "0x00000000"
-
key: "CPU Load (%)"
value: "0.0"
-
key: "Drop rate (%)"
value: "0.0"
-
key: "Errors comm"
value: "0"
-
key: "Errors count #1"
value: "0"
-
key: "Errors count #2"
value: "0"
-
key: "Errors count #3"
value: "0"
-
key: "Errors count #4"
value: "0"
-
level: 2
name: "UAV_1/mavros: Battery"
message: "No data"
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Voltage"
value: "-1.00"
-
key: "Current"
value: "0.0"
-
key: "Remaining"
value: "0.0"
-
level: 2
name: "UAV_1/mavros: Time Sync"
message: "No events recorded."
hardware_id: "udp://:[email protected]:14540"
values:
-
key: "Timesyncs since startup"
value: "0"
-
key: "Frequency (Hz)"
value: "0.000000"
-
key: "Last dt (ms)"
value: "0.000000"
-
key: "Mean dt (ms)"
value: "0.000000"
-
key: "Last system time (s)"
value: "0.000000000"
-
key: "Time offset (s)"
value: "0.000000000"
---
ERROR. I got 0 addresses, but not your target 1:1
Qual endereço você usa para QGC?
Estou usando udp://:[email protected]:14550
(onde 192.168.1.5 é o ip da minha estação de controle de solo - estava seguindo a convenção documentada em https://dev.px4.io/en/simulation/ros_interface.html, embora isso está relacionado a sitl).
É importante notar que o pixracer se conecta automaticamente ao QGroundControl na inicialização (externo ao mavros) - talvez possa haver um conflito aqui?
Muito provável que seja. Não tenho certeza se o firmware ESP segue essa especificação. Tente (sem QGC) a porta padrão, por exemplo, udp://@192.168.1.5
, ou mesmo udp://@
simples.
Ainda não consigo me conectar com esses endereços para a estação de controle de solo. Acho que isso pode exigir algumas atualizações no firmware do ESP, mas ainda não descobri a base de código. Vou atualizar aqui se houver algum sucesso com isso.
atualizações @ jannsta1 ?
Acabei de tentar isso novamente e consegui conectar definindo os valores da porta udp para corresponder aos valores de parâmetro WIFI_UDP_CPORT (14555) e WIFI_UDP_HPORT (14550) padrão (para o módulo ESP). Assim, meu fcu_url é; udp://:14550@<ip address of esp device>:14555
.
Eu não fiz um teste de vôo ainda e uma desvantagem é que isso não funciona com o QGC, mas estou mais do que feliz em encerrar o problema. Obrigado pelo conselho sobre os endereços UDP, foi uma grande ajuda saber em que área procurar.
Consegui me conectar com os valores de porta udp padrão usando a sintaxe fcu_url. Obrigada! Achei que deveria fazer isso apenas no caso de alguém ainda estar tendo problemas para fazer o QGC funcionar em conjunto com os mavros.
Consegui fazer o QGC e os mavros funcionarem alterando os valores cport e hport conforme mostrado aqui (eu escolhi 14556 e 14551, respectivamente), o que tornaria o fcu_url: udp://:14551:@<ip address of esp device>:14556
, mantendo o gcs_url: udp-b://127.0.0.1:14555@14550
.
Comentários muito úteis
Consegui me conectar com os valores de porta udp padrão usando a sintaxe fcu_url. Obrigada! Achei que deveria fazer isso apenas no caso de alguém ainda estar tendo problemas para fazer o QGC funcionar em conjunto com os mavros.
Consegui fazer o QGC e os mavros funcionarem alterando os valores cport e hport conforme mostrado aqui (eu escolhi 14556 e 14551, respectivamente), o que tornaria o fcu_url:
udp://:14551:@<ip address of esp device>:14556
, mantendo o gcs_url:udp-b://127.0.0.1:14555@14550
.